Changelog#

The format is based on Keep a Changelog.

[3.1.2]#

Fixed#

  • Kept inline Gradient previews subscribed to model notifications after popup dismissal and in read-only fields, releasing the subscription on field destruction.

Changed#

  • Added preview rendering regression coverage and its direct renderer capture test dependency.

[3.1.1]#

Fixed#

  • Preserve square checkerboard cells when resizing inline Gradient previews while keeping the full gradient range visible.

[3.1.0]#

Added#

  • Added a protected popup-window key handler for editor shortcuts while preserving Escape dismissal.

[3.0.0]#

Changed#

  • Standardized property-window placement, dismissal, keyboard handling, and app-owned inline Gradient styling, with disposable Gradient editors sharing the field’s model and preview.

[2.0.1]#

Added#

  • Added optional persistent-selection styling for shared property labels.

  • Added reusable linked drag-field controls with synchronized values, active-row coordination, and first-field text focus.

Changed#

  • Kept linked drag rows active when focus moves away until explicitly unlinked or another row is linked.

Fixed#

  • Kept active-row coordination distinct for linked rows with matching labels.

[2.0.0]#

Changed#

  • Added shared ComboBox and stable native property identifiers, and required relative file pickers to receive an explicit stage resolver.

[1.16.4]#

Added#

  • Added IntSliderField for integer slider widgets with configurable min, max, and step (default step: 1 for range <=100, else max(1, int(range * 0.01)))

Changed#

  • Updated extension metadata for Kit SDK 110 compatibility.

[1.16.3]#

Changed#

  • Removed obsolete USD gradient-builder integration coverage from the generic delegates extension.

  • ColorGradientField now embeds the shared model-backed ColorGradientWidget through GroupedKeysModel payload storage.

Fixed#

  • Fixed ColorGradientField.build_ui type references so generated documentation can resolve the property-widget item type.

[1.16.2]#

Removed#

  • Removed numeric edit controller wiring from drag delegates so float and int fields use native drag widget behavior directly

[1.16.1]#

Added#

  • Added E2E coverage for Ctrl-click numeric edit retargeting and row-local tab looping

[1.16.0]#

Changed#

  • Numeric drag delegates now use the shared numeric edit controller and the drag widget step for keyboard arrow edits

  • Updated drag field bounds and step typing to use shared scalar aliases

Removed#

  • Removed the public BoundsValue export in favor of shared scalar typing

[1.15.1]#

Fixed#

  • Kept soft drag bounds from hard-clamping typed drag-field values unless explicit hard bounds are provided

[1.15.0]#

Changed#

  • Renamed drag delegate APIs to *DragFieldGroup; groups now resolve per-channel scalar bounds/step and forward canonical soft/hard inputs to shared drag widgets for clamping

Added#

  • Added unit regression coverage for soft-fallback typed clamping and explicit hard-bound precedence

[1.14.1]#

Fixed#

  • Fixed drag fields to batch only mouse-drag edits so typed values still write immediately while drag undo stays grouped

[1.14.0]#

Fixed#

  • AbstractDragField now registers a pre_set_value callback to clamp typed numeric input to hard bounds before the value is written to USD, preventing crashes in synchronous downstream systems (e.g. particle allocators)

Changed#

  • IntDragField and FloatDragField now forward identifier to the underlying ui.IntDrag/ui.FloatDrag widget for test automation support

  • Updated MockValueModel in test helpers to implement the set_callback_pre_set_value interface so e2e hard-bound clamping tests exercise the full clamp path

[1.13.0]#

Changed#

  • REMIX-5117: Consolidated AbstractValueField and AbstractSliderField into a single AbstractDragField base class with optional min/max bounds and independent hard-bound clamping

  • REMIX-5117: Renamed FloatSliderField to FloatDragField and IntSliderField to IntDragField; both now accept optional (None) min/max for unbounded drag fields

  • REMIX-5117: Removed AbstractValueField, FloatField, and IntField (internal-only, replaced by AbstractDragField / FloatDragField / IntDragField)

[1.12.1]#

Changed#

  • Minor cleanup and better highlighting for color gradient field

[1.12.0]#

Added#

  • Added ColorGradientField delegate for editing color gradient attributes via a popup gradient editor

[1.11.0]#

Changed#

  • REMIX-1088: FloatField and IntField delegates now use ui.FloatDrag / ui.IntDrag widgets, enabling drag-to-scrub on all unbounded numeric fields

[1.10.0]#

Added#

  • REMIX-3411: Added _validate_selection and _on_validation_failed overridable hook methods to FilePicker for subclass-driven file selection validation

[1.9.1]#

Changed#

  • Applied new lint rules

[1.9.0]#

Added#

  • REMIX-5012: FloatField and IntField delegates with optional min/max clamping for partially-bounded attributes

  • REMIX-5012: Hard-bound clamping support on slider delegates (hard_min_value / hard_max_value)

[1.8.0]#

Added#

  • Added AbstractSliderField base class with shared min/max/step handling, undo grouping (begin_edit/end_edit), and abstract build_drag_widget() for slider UI

  • Added IntSliderField for integer slider widgets with configurable min, max, and step (default step: 1 for range ≤100, else max(1, int(range * 0.01)))

  • Added E2E tests for AbstractSliderField, FloatSliderField, and IntSliderField

Changed#

  • FloatSliderField now extends AbstractSliderField; min_value and max_value are optional (defaults 0.0 and 100.0); step is optional with computed default (max - min) * 0.005

  • De-duplicated slider build logic between int and float sliders via shared base class

[1.7.2]#

Changed#

  • Modernize python style and enable more ruff checks

[1.7.1]#

Changed#

  • Switched to ruff for linting and formatting

[1.7.0]#

Added#

  • Added use_relative_paths parameter to FilePicker to convert paths relative to USD edit target

[1.6.2]#

Fixed#

  • Suppressed unnecessary file path validation error logging in FilePicker

[1.6.1]#

Fixed#

  • Fixed Test assets to large to work without LFS

[1.6.0]#

Changed#

  • Update the documentation for Pydantic V2 compatbility

[1.5.0]#

Added#

  • Added the ability to left-align property names

[1.4.4]#

Changed#

  • Update to Kit 106.5

[1.4.3]#

Fixed#

  • Fixed color widget default value

[1.4.2]#

Fixed#

  • Fixed tests flakiness

[1.4.1]#

Added#

  • Added dynamic tooltips for displaying mixed values

[1.4.0]#

Added#

  • Added identifier for UI elements

[1.3.4]#

Changed#

  • Update deps

[1.3.3]#

Changed#

  • Update test deps

[1.3.2]#

Changed#

  • FloatSliderField now calculates step size lazily

[1.3.1]#

Changed#

  • Update deps

[1.3.0] - 2024-04-02#

Added#

  • Added FloatSliderField for creating a slider widget for items representing color Vec

  • Added NameField to create a simple label widget

Changed#

  • Removed (unused) ui.AbstractItemDelegate base class

  • Moved unique args into init so the UI build call have the same Callable[[Item], ui.Widget | list[ui.Widget] | None] interface

[1.2.2]#

Changed#

  • Set Apache 2 license headers

[1.2.1] - 2024-03-25#

Fixed#

  • Fixed various issues with ColorField

[1.2.0] - 2023-10-05#

Changed#

  • Changed DefaultStringField to DefaultField

  • Make readonly widget follow the widget_type extra data

[1.1.3] - 2023-06-01#

Fixed#

  • Fixed import

[1.1.2] - 2022-11-03#

Fixed#

  • Fixed casting issues with color widget

[1.1.1] - 2022-10-31#

Fixed#

  • Fix color widget (to not re-order colors)

[1.1.0] - 2022-10-06#

Changed#

  • Added a multiline delegate for the property widget builder

[1.0.0] - 2022-09-26#

Added#

  • Init commit.