@lostgradient/cinder 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +146 -0
- package/README.md +2 -2
- package/components.json +138 -86
- package/dist/_internal/locale-context.d.ts +9 -0
- package/dist/_internal/text-direction.d.ts +4 -0
- package/dist/_internal/tree-context.d.ts +2 -0
- package/dist/api-contract.d.ts +1 -1
- package/dist/components/_internal/create-command-list-state.svelte.d.ts +43 -0
- package/dist/components/_internal/create-sliding-dialog-state.svelte.d.ts +26 -0
- package/dist/components/access-gate/index.js +379 -513
- package/dist/components/alert/alert.css +1 -1
- package/dist/components/alert/alert.schema.js +4 -4
- package/dist/components/alert/alert.types.d.ts +4 -4
- package/dist/components/alert/index.js +4 -4
- package/dist/components/alert-dialog/index.js +9 -3
- package/dist/components/approval-card/approval-card-state.d.ts +3 -0
- package/dist/components/approval-card/approval-card.css +239 -0
- package/dist/components/approval-card/approval-card.schema.js +236 -0
- package/dist/components/approval-card/approval-card.svelte.d.ts +21 -0
- package/dist/components/approval-card/approval-card.types.d.ts +155 -0
- package/dist/components/{subscription-badge/subscription-badge.variables.js → approval-card/approval-card.variables.js} +4 -4
- package/dist/components/approval-card/index.d.ts +5 -0
- package/dist/components/approval-card/index.js +3794 -0
- package/dist/components/autocomplete/autocomplete.css +12 -1
- package/dist/components/autocomplete/index.js +106 -81
- package/dist/components/avatar-group/index.js +3 -2
- package/dist/components/badge/badge.schema.js +6 -3
- package/dist/components/badge/badge.svelte.d.ts +4 -0
- package/dist/components/badge/badge.types.d.ts +18 -4
- package/dist/components/badge/index.d.ts +1 -1
- package/dist/components/badge/index.js +99 -3
- package/dist/components/banner/banner.schema.js +2 -2
- package/dist/components/banner/banner.types.d.ts +1 -1
- package/dist/components/banner/index.js +3 -3
- package/dist/components/button/button.css +1 -1
- package/dist/components/capability-gate/capability-gate.css +15 -2
- package/dist/components/capability-gate/capability-gate.schema.js +4 -4
- package/dist/components/capability-gate/capability-gate.types.d.ts +6 -6
- package/dist/components/capability-gate/index.js +7 -7
- package/dist/components/chat/chat.schema.js +11 -26
- package/dist/components/chat/chat.types.d.ts +30 -15
- package/dist/components/chat/container/chat-events.d.ts +2 -2
- package/dist/components/chat/container/chat-history-trigger.svelte.d.ts +1 -1
- package/dist/components/chat/container/chat.svelte.d.ts +1 -1
- package/dist/components/chat/container/use-chat-scroll-state.svelte.d.ts +4 -4
- package/dist/components/chat/container/use-chat-unread-state.svelte.d.ts +6 -6
- package/dist/components/chat/index.d.ts +1 -1
- package/dist/components/chat/index.js +2257 -1913
- package/dist/components/chat/input/chat-input.svelte.d.ts +3 -1
- package/dist/components/chat-conversation-header/index.js +261 -29
- package/dist/components/chat-conversation-list/chat-conversation-list.css +13 -0
- package/dist/components/checkbox/checkbox.css +3 -0
- package/dist/components/checkbox/checkbox.schema.js +6 -1
- package/dist/components/checkbox/checkbox.types.d.ts +2 -0
- package/dist/components/checkbox/index.js +78 -22
- package/dist/components/checkbox-group/checkbox-group.css +3 -0
- package/dist/components/checkbox-group/checkbox-group.schema.js +4 -4
- package/dist/components/checkbox-group/checkbox-group.types.d.ts +12 -7
- package/dist/components/checkbox-group/index.js +50 -21
- package/dist/components/choice-grid/index.js +2 -2
- package/dist/components/choice-grid-item/index.js +2 -2
- package/dist/components/click-away-listener/click-away-listener.schema.js +3 -3
- package/dist/components/click-away-listener/click-away-listener.types.d.ts +3 -3
- package/dist/components/click-away-listener/index.js +3 -3
- package/dist/components/code-block/code-block.css +4 -3
- package/dist/components/code-block/index.js +6 -5
- package/dist/components/collapsible/collapsible.schema.js +2 -2
- package/dist/components/collapsible/collapsible.types.d.ts +2 -2
- package/dist/components/collapsible/index.js +3 -3
- package/dist/components/color-field/color-field.schema.js +3 -3
- package/dist/components/color-field/color-field.types.d.ts +2 -2
- package/dist/components/color-field/index.js +133 -69
- package/dist/components/color-picker/index.js +29 -18
- package/dist/components/color-swatch-picker/index.js +29 -18
- package/dist/components/combobox/combobox.schema.js +6 -2
- package/dist/components/combobox/combobox.types.d.ts +7 -1
- package/dist/components/combobox/index.js +112 -60
- package/dist/components/command-item/command-item.css +10 -0
- package/dist/components/command-item/command-item.schema.js +9 -1
- package/dist/components/command-item/command-item.types.d.ts +4 -0
- package/dist/components/command-item/index.js +9 -1
- package/dist/components/command-menu/index.js +257 -161
- package/dist/components/command-palette/command-palette.schema.js +2 -3
- package/dist/components/command-palette/command-palette.types.d.ts +1 -2
- package/dist/components/command-palette/index.js +282 -192
- package/dist/components/confirm-dialog/index.js +9 -3
- package/dist/components/context-menu/context-menu.context.d.ts +2 -0
- package/dist/components/context-menu/index.js +300 -40
- package/dist/components/context-menu-trigger/index.js +11 -8
- package/dist/components/copy-button/index.js +6 -5
- package/dist/components/data-grid/_internal/column-model.svelte.d.ts +1 -0
- package/dist/components/data-grid/data-grid.css +25 -0
- package/dist/components/data-grid/data-grid.schema.js +3 -3
- package/dist/components/data-grid/data-grid.types.d.ts +8 -2
- package/dist/components/data-grid/index.js +11 -8
- package/dist/components/data-list/data-list.schema.js +7 -10
- package/dist/components/data-list/data-list.types.d.ts +5 -9
- package/dist/components/data-list/index.js +15 -39
- package/dist/components/data-table/data-table.css +13 -0
- package/dist/components/data-table/index.js +32 -19
- package/dist/components/date-range-field/date-range-field.schema.js +7 -3
- package/dist/components/date-range-field/date-range-field.svelte.d.ts +2 -2
- package/dist/components/date-range-field/date-range-field.types.d.ts +15 -10
- package/dist/components/date-range-field/index.d.ts +1 -1
- package/dist/components/date-range-field/index.js +160 -17
- package/dist/components/diff-viewer/diff-front-matter.svelte.d.ts +2 -2
- package/dist/components/diff-viewer/diff-line.svelte.d.ts +2 -2
- package/dist/components/diff-viewer/diff-toolbar.svelte.d.ts +2 -2
- package/dist/components/diff-viewer/diff-viewer.svelte.d.ts +1 -1
- package/dist/components/diff-viewer/diff-viewer.types.d.ts +3 -3
- package/dist/components/diff-viewer/index.d.ts +1 -1
- package/dist/components/diff-viewer/index.js +171 -67
- package/dist/components/drawer/index.js +353 -283
- package/dist/components/dropdown/dropdown.css +7 -1
- package/dist/components/dropdown/dropdown.types.d.ts +3 -0
- package/dist/components/dropdown/index.js +267 -35
- package/dist/components/dropdown-group/dropdown-group.schema.js +4 -4
- package/dist/components/dropdown-group/dropdown-group.types.d.ts +4 -4
- package/dist/components/dropdown-group/index.js +7 -7
- package/dist/components/dropdown-item/dropdown-item.schema.js +9 -1
- package/dist/components/dropdown-item/dropdown-item.types.d.ts +5 -0
- package/dist/components/dropdown-item/index.js +13 -8
- package/dist/components/dropdown-menu/index.js +236 -14
- package/dist/components/dropdown-trigger/index.js +11 -12
- package/dist/components/event-stream-viewer/event-stream-viewer-keys.d.ts +6 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.css +46 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.schema.js +83 -10
- package/dist/components/event-stream-viewer/event-stream-viewer.svelte.d.ts +3 -3
- package/dist/components/event-stream-viewer/event-stream-viewer.types.d.ts +124 -3
- package/dist/components/event-stream-viewer/index.d.ts +1 -1
- package/dist/components/event-stream-viewer/index.js +764 -409
- package/dist/components/faceted-filter-bar/faceted-filter-bar.css +9 -0
- package/dist/components/faceted-filter-bar/index.js +25 -6
- package/dist/components/file-upload/file-upload.css +5 -5
- package/dist/components/floating-action-button/floating-action-button.css +22 -22
- package/dist/components/floating-action-button/floating-action-button.schema.js +5 -5
- package/dist/components/floating-action-button/floating-action-button.svelte.d.ts +1 -1
- package/dist/components/floating-action-button/floating-action-button.types.d.ts +21 -21
- package/dist/components/floating-action-button/index.d.ts +1 -1
- package/dist/components/floating-action-button/index.js +8 -8
- package/dist/components/form-field/form-field.css +3 -13
- package/dist/components/form-field/index.js +2 -2
- package/dist/components/hover-card/index.js +3 -2
- package/dist/components/input/index.js +131 -67
- package/dist/components/input/input.schema.js +6 -1
- package/dist/components/input/input.types.d.ts +2 -0
- package/dist/components/invocation-rule-builder/index.d.ts +1 -1
- package/dist/components/invocation-rule-builder/index.js +184 -107
- package/dist/components/invocation-rule-builder/invocation-rule-builder.css +63 -6
- package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +133 -35
- package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -2
- package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +85 -8
- package/dist/components/json-schema-editor/form-view.svelte.d.ts +1 -0
- package/dist/components/json-schema-editor/index.js +677 -357
- package/dist/components/json-schema-editor/json-schema-editor.css +6 -1
- package/dist/components/json-schema-editor/json-schema-toolbar.svelte.d.ts +1 -0
- package/dist/components/json-schema-editor/property-editor.svelte.d.ts +2 -0
- package/dist/components/json-schema-editor/property-list-validation.d.ts +1 -0
- package/dist/components/json-schema-editor/property-list.svelte.d.ts +1 -0
- package/dist/components/json-viewer/_json-viewer-node.svelte.d.ts +3 -0
- package/dist/components/json-viewer/index.js +112 -26
- package/dist/components/json-viewer/json-viewer.css +11 -0
- package/dist/components/kanban-board/index.js +18 -13
- package/dist/components/kanban-board/kanban-board.css +56 -3
- package/dist/components/keyboard-shortcuts/index.js +2 -2
- package/dist/components/keyboard-shortcuts/keyboard-shortcuts.css +2 -2
- package/dist/components/label/index.js +2 -2
- package/dist/components/label/label.css +2 -9
- package/dist/components/load-more/index.js +4 -4
- package/dist/components/load-more/load-more.css +13 -5
- package/dist/components/load-more/load-more.schema.js +4 -4
- package/dist/components/load-more/load-more.types.d.ts +3 -3
- package/dist/components/locale-provider/index.d.ts +4 -0
- package/dist/components/locale-provider/index.js +76 -0
- package/dist/components/{connection-indicator/connection-indicator.schema.js → locale-provider/locale-provider.schema.js} +18 -14
- package/dist/components/locale-provider/locale-provider.svelte.d.ts +17 -0
- package/dist/components/locale-provider/locale-provider.types.d.ts +17 -0
- package/dist/components/{connection-indicator/connection-indicator.variables.js → locale-provider/locale-provider.variables.js} +4 -4
- package/dist/components/markdown-editor/editor-toolbar/editor-toolbar.svelte.d.ts +2 -0
- package/dist/components/markdown-editor/index.js +437 -128
- package/dist/components/markdown-editor/markdown-editor.schema.js +4 -4
- package/dist/components/markdown-editor/markdown-editor.types.d.ts +4 -4
- package/dist/components/masonry/masonry.schema.js +4 -3
- package/dist/components/masonry/masonry.types.d.ts +13 -2
- package/dist/components/matrix-chart/index.js +245 -224
- package/dist/components/media-controls/index.js +7 -7
- package/dist/components/media-controls/media-controls.css +15 -4
- package/dist/components/media-controls/media-controls.schema.js +4 -4
- package/dist/components/media-controls/media-controls.types.d.ts +7 -7
- package/dist/components/menu-bar/menu-bar.css +11 -0
- package/dist/components/menu-bar/menu-bar.svelte.d.ts +1 -0
- package/dist/components/modal/index.js +9 -3
- package/dist/components/navigation-bar/index.js +4 -4
- package/dist/components/navigation-bar/navigation-bar.schema.js +2 -2
- package/dist/components/navigation-bar/navigation-bar.types.d.ts +1 -1
- package/dist/components/number-input/index.js +88 -42
- package/dist/components/number-input/number-input.schema.js +4 -3
- package/dist/components/number-input/number-input.types.d.ts +16 -5
- package/dist/components/payload-inspector/index.d.ts +1 -1
- package/dist/components/payload-inspector/index.js +271 -64
- package/dist/components/payload-inspector/payload-inspector.css +6 -0
- package/dist/components/payload-inspector/payload-inspector.schema.js +27 -15
- package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +2 -2
- package/dist/components/payload-inspector/payload-inspector.types.d.ts +52 -3
- package/dist/components/permission-matrix/permission-matrix.css +10 -0
- package/dist/components/phone-input/index.js +56 -33
- package/dist/components/phone-input/phone-input.schema.js +2 -2
- package/dist/components/phone-input/phone-input.types.d.ts +3 -2
- package/dist/components/pin-input/index.js +46 -41
- package/dist/components/pin-input/pin-input.schema.js +9 -2
- package/dist/components/pin-input/pin-input.types.d.ts +10 -1
- package/dist/components/popover/index.js +11 -4
- package/dist/components/portal/index.js +3 -2
- package/dist/components/pricing-card/index.js +22 -7
- package/dist/components/radio-group/index.js +51 -21
- package/dist/components/radio-group/radio-group.css +3 -0
- package/dist/components/radio-group/radio-group.schema.js +3 -3
- package/dist/components/radio-group/radio-group.types.d.ts +6 -2
- package/dist/components/rating/index.js +1 -6
- package/dist/components/rating/rating.schema.js +9 -2
- package/dist/components/rating/rating.types.d.ts +6 -0
- package/dist/components/review-editor/comment-list.svelte.d.ts +1 -1
- package/dist/components/review-editor/index.d.ts +1 -1
- package/dist/components/review-editor/index.js +789 -314
- package/dist/components/review-editor/review-editor-controls.svelte.d.ts +1 -1
- package/dist/components/review-editor/review-editor-impl.svelte.d.ts +4 -4
- package/dist/components/review-editor/review-editor-selection-types.d.ts +1 -1
- package/dist/components/review-editor/review-editor-state.svelte.d.ts +1 -1
- package/dist/components/review-editor/review-editor-threads.svelte.d.ts +2 -2
- package/dist/components/review-editor/review-editor.svelte.d.ts +2 -1
- package/dist/components/review-editor/review-editor.types.d.ts +77 -3
- package/dist/components/review-editor/thread-popover.svelte.d.ts +1 -1
- package/dist/components/run-step-timeline/index.d.ts +1 -1
- package/dist/components/run-step-timeline/index.js +747 -273
- package/dist/components/run-step-timeline/run-step-timeline.css +25 -5
- package/dist/components/run-step-timeline/run-step-timeline.schema.js +351 -21
- package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -1
- package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +184 -3
- package/dist/components/schema-form/index.d.ts +1 -1
- package/dist/components/schema-form/index.js +1916 -474
- package/dist/components/schema-form/schema-form-async.fixture.d.ts +1 -0
- package/dist/components/schema-form/schema-form-body.svelte.d.ts +25 -0
- package/dist/components/schema-form/schema-form-model.d.ts +1 -4
- package/dist/components/schema-form/schema-form-validation.d.ts +1 -2
- package/dist/components/schema-form/schema-form.css +12 -74
- package/dist/components/schema-form/schema-form.schema.js +10 -3
- package/dist/components/schema-form/schema-form.svelte.d.ts +3 -3
- package/dist/components/schema-form/schema-form.types.d.ts +15 -8
- package/dist/components/scroll-area/index.js +3 -3
- package/dist/components/scroll-area/scroll-area.schema.js +2 -2
- package/dist/components/scroll-area/scroll-area.types.d.ts +1 -1
- package/dist/components/secret-value-field/index.js +10 -4
- package/dist/components/secret-value-field/secret-value-field.svelte.d.ts +1 -1
- package/dist/components/segmented-control/segmented-control.css +22 -1
- package/dist/components/select/index.js +37 -24
- package/dist/components/select/select.css +9 -2
- package/dist/components/selection-popover/index.js +11 -4
- package/dist/components/share-card/index.js +3 -4
- package/dist/components/share-card/share-card.css +15 -4
- package/dist/components/sheet/index.js +365 -300
- package/dist/components/shortcut-hint/index.js +3 -3
- package/dist/components/sidebar/index.js +423 -353
- package/dist/components/sidebar/sidebar.schema.js +2 -2
- package/dist/components/sidebar/sidebar.types.d.ts +1 -1
- package/dist/components/slider/index.js +211 -9
- package/dist/components/slider/slider.css +14 -9
- package/dist/components/sortable-list/sortable-list.css +1 -1
- package/dist/components/spectrogram/index.js +224 -203
- package/dist/components/spectrum-chart/index.js +208 -187
- package/dist/components/speed-dial/index.js +11 -11
- package/dist/components/speed-dial/speed-dial.css +3 -3
- package/dist/components/speed-dial-action/index.js +9 -9
- package/dist/components/stat/index.js +26 -4
- package/dist/components/stat/stat.schema.js +2 -2
- package/dist/components/stat/stat.types.d.ts +2 -2
- package/dist/components/stat-group/index.js +26 -4
- package/dist/components/stat-group/stat-group.css +1 -1
- package/dist/components/status-dot/index.d.ts +1 -1
- package/dist/components/status-dot/index.js +47 -8
- package/dist/components/status-dot/status-dot.css +45 -1
- package/dist/components/status-dot/status-dot.schema.js +12 -5
- package/dist/components/status-dot/status-dot.svelte.d.ts +5 -1
- package/dist/components/status-dot/status-dot.types.d.ts +16 -6
- package/dist/components/steps/steps.css +3 -3
- package/dist/components/table/index.js +23 -17
- package/dist/components/table/table.css +10 -0
- package/dist/components/table/table.types.d.ts +3 -3
- package/dist/components/table-header/index.js +5 -5
- package/dist/components/table-header/table-header.schema.js +3 -3
- package/dist/components/table-header/table-header.types.d.ts +2 -2
- package/dist/components/table-header-cell/index.js +11 -5
- package/dist/components/table-row/index.js +7 -7
- package/dist/components/table-row/table-row.schema.js +3 -3
- package/dist/components/table-row/table-row.types.d.ts +6 -6
- package/dist/components/tabs/index.js +17 -4
- package/dist/components/tabs/tabs.schema.js +6 -1
- package/dist/components/tabs/tabs.types.d.ts +2 -0
- package/dist/components/textarea/index.js +37 -24
- package/dist/components/textarea/textarea.css +16 -1
- package/dist/components/time-field/index.d.ts +5 -0
- package/dist/components/time-field/index.js +456 -0
- package/dist/components/time-field/time-field.css +60 -0
- package/dist/components/time-field/time-field.schema.d.ts +3 -0
- package/dist/components/time-field/time-field.schema.js +107 -0
- package/dist/components/time-field/time-field.svelte.d.ts +18 -0
- package/dist/components/time-field/time-field.types.d.ts +63 -0
- package/dist/components/time-field/time-field.variables.d.ts +2 -0
- package/dist/components/{experimental/connection-indicator/index.js → time-field/time-field.variables.js} +5 -14
- package/dist/components/toggle/index.js +39 -7
- package/dist/components/toggle/toggle.schema.js +11 -2
- package/dist/components/toggle/toggle.types.d.ts +2 -0
- package/dist/components/tooltip/index.js +3 -2
- package/dist/components/transfer-list/index.js +41 -11
- package/dist/components/transfer-list/transfer-list.css +22 -0
- package/dist/components/transfer-list/transfer-list.schema.js +2 -2
- package/dist/components/transfer-list/transfer-list.types.d.ts +2 -2
- package/dist/components/tree/index.js +238 -153
- package/dist/components/tree/tree.css +69 -0
- package/dist/components/tree/tree.schema.js +3 -3
- package/dist/components/tree/tree.types.d.ts +2 -2
- package/dist/components/tree-item/index.js +107 -68
- package/dist/components/tree-item/tree-item.schema.js +5 -5
- package/dist/components/tree-item/tree-item.types.d.ts +4 -4
- package/dist/components/virtual-list/index.js +98 -63
- package/dist/components/waveform/index.js +185 -164
- package/dist/editor/attach.d.ts +2 -2
- package/dist/editor/attach.js +10 -16
- package/dist/editor/editor.js +6 -6
- package/dist/editor/keymap-plugin.d.ts +2 -2
- package/dist/editor/keymap-plugin.js +4 -4
- package/dist/editor/types.d.ts +11 -11
- package/dist/index.d.ts +14 -12
- package/dist/index.js +106 -105
- package/dist/server/components/access-gate/index.js +176 -305
- package/dist/server/components/alert/alert.schema.js +4 -4
- package/dist/server/components/alert/index.css +1 -1
- package/dist/server/components/alert/index.js +4 -4
- package/dist/server/components/alert-dialog/index.js +9 -3
- package/dist/server/components/approval-card/approval-card.schema.js +217 -0
- package/dist/server/components/approval-card/approval-card.variables.js +12 -0
- package/dist/server/components/approval-card/index.css +1767 -0
- package/dist/server/components/approval-card/index.js +2499 -0
- package/dist/server/components/autocomplete/index.css +12 -1
- package/dist/server/components/autocomplete/index.js +34 -24
- package/dist/server/components/badge/badge.schema.js +6 -3
- package/dist/server/components/badge/index.js +71 -4
- package/dist/server/components/banner/banner.schema.js +2 -2
- package/dist/server/components/banner/index.js +3 -3
- package/dist/server/components/button/index.css +1 -1
- package/dist/server/components/capability-gate/capability-gate.schema.js +4 -4
- package/dist/server/components/capability-gate/index.css +10 -2
- package/dist/server/components/capability-gate/index.js +5 -5
- package/dist/server/components/chat/chat.schema.js +11 -26
- package/dist/server/components/chat/index.js +695 -438
- package/dist/server/components/chat-conversation-header/index.css +7 -1
- package/dist/server/components/chat-conversation-header/index.js +215 -17
- package/dist/server/components/chat-conversation-list/index.css +8 -0
- package/dist/server/components/checkbox/checkbox.schema.js +6 -1
- package/dist/server/components/checkbox/index.css +3 -0
- package/dist/server/components/checkbox/index.js +41 -4
- package/dist/server/components/checkbox-group/checkbox-group.schema.js +4 -4
- package/dist/server/components/checkbox-group/index.css +3 -0
- package/dist/server/components/checkbox-group/index.js +23 -4
- package/dist/server/components/choice-grid/index.js +2 -2
- package/dist/server/components/choice-grid-item/index.js +2 -2
- package/dist/server/components/click-away-listener/click-away-listener.schema.js +3 -3
- package/dist/server/components/click-away-listener/index.js +2 -2
- package/dist/server/components/code-block/index.css +4 -3
- package/dist/server/components/code-block/index.js +1 -6
- package/dist/server/components/collapsible/collapsible.schema.js +2 -2
- package/dist/server/components/collapsible/index.js +3 -3
- package/dist/server/components/color-field/color-field.schema.js +3 -3
- package/dist/server/components/color-field/index.js +61 -17
- package/dist/server/components/color-picker/index.js +29 -12
- package/dist/server/components/color-swatch-picker/index.js +29 -12
- package/dist/server/components/combobox/combobox.schema.js +6 -2
- package/dist/server/components/combobox/index.js +61 -12
- package/dist/server/components/command-item/command-item.schema.js +9 -1
- package/dist/server/components/command-item/index.css +1 -0
- package/dist/server/components/command-item/index.js +10 -2
- package/dist/server/components/command-menu/index.css +1 -0
- package/dist/server/components/command-menu/index.js +193 -102
- package/dist/server/components/command-palette/command-palette.schema.js +2 -3
- package/dist/server/components/command-palette/index.css +1 -0
- package/dist/server/components/command-palette/index.js +190 -106
- package/dist/server/components/confirm-dialog/index.js +9 -3
- package/dist/server/components/context-menu/index.css +7 -1
- package/dist/server/components/context-menu/index.js +244 -26
- package/dist/server/components/context-menu-trigger/index.js +7 -4
- package/dist/server/components/copy-button/index.js +1 -6
- package/dist/server/components/data-grid/data-grid.schema.js +3 -3
- package/dist/server/components/data-grid/index.css +23 -0
- package/dist/server/components/data-grid/index.js +9 -7
- package/dist/server/components/data-list/data-list.schema.js +7 -10
- package/dist/server/components/data-list/index.js +7 -21
- package/dist/server/components/data-table/index.css +20 -0
- package/dist/server/components/data-table/index.js +26 -16
- package/dist/server/components/date-range-field/date-range-field.schema.js +7 -3
- package/dist/server/components/date-range-field/index.js +146 -12
- package/dist/server/components/diff-viewer/index.js +79 -7
- package/dist/server/components/drawer/index.js +260 -193
- package/dist/server/components/dropdown/index.css +7 -1
- package/dist/server/components/dropdown/index.js +221 -23
- package/dist/server/components/dropdown-group/dropdown-group.schema.js +4 -4
- package/dist/server/components/dropdown-group/index.js +7 -7
- package/dist/server/components/dropdown-item/dropdown-item.schema.js +9 -1
- package/dist/server/components/dropdown-item/index.js +12 -7
- package/dist/server/components/dropdown-menu/index.js +197 -13
- package/dist/server/components/dropdown-trigger/index.js +5 -2
- package/dist/server/components/event-stream-viewer/event-stream-viewer.schema.js +83 -10
- package/dist/server/components/event-stream-viewer/index.css +323 -0
- package/dist/server/components/event-stream-viewer/index.js +406 -139
- package/dist/server/components/faceted-filter-bar/index.css +10 -1
- package/dist/server/components/faceted-filter-bar/index.js +24 -6
- package/dist/server/components/file-upload/index.css +3 -3
- package/dist/server/components/floating-action-button/floating-action-button.schema.js +5 -5
- package/dist/server/components/floating-action-button/index.css +16 -16
- package/dist/server/components/floating-action-button/index.js +5 -5
- package/dist/server/components/form-field/index.css +0 -10
- package/dist/server/components/form-field/index.js +2 -2
- package/dist/server/components/input/index.js +59 -15
- package/dist/server/components/input/input.schema.js +6 -1
- package/dist/server/components/invocation-rule-builder/index.css +51 -6
- package/dist/server/components/invocation-rule-builder/index.js +56 -17
- package/dist/server/components/invocation-rule-builder/invocation-rule-builder.schema.js +133 -35
- package/dist/server/components/json-schema-editor/index.css +4 -1
- package/dist/server/components/json-schema-editor/index.js +282 -52
- package/dist/server/components/json-viewer/index.css +7 -1
- package/dist/server/components/json-viewer/index.js +83 -11
- package/dist/server/components/kanban-board/index.css +42 -3
- package/dist/server/components/kanban-board/index.js +7 -6
- package/dist/server/components/keyboard-shortcuts/index.css +2 -2
- package/dist/server/components/keyboard-shortcuts/index.js +2 -2
- package/dist/server/components/label/index.css +0 -10
- package/dist/server/components/label/index.js +2 -2
- package/dist/server/components/load-more/index.css +12 -4
- package/dist/server/components/load-more/index.js +5 -5
- package/dist/server/components/load-more/load-more.schema.js +4 -4
- package/dist/server/components/locale-provider/index.js +55 -0
- package/dist/server/components/locale-provider/locale-provider.schema.js +35 -0
- package/dist/server/components/locale-provider/locale-provider.variables.js +12 -0
- package/dist/server/components/markdown-editor/index.js +297 -60
- package/dist/server/components/markdown-editor/markdown-editor.schema.js +4 -4
- package/dist/server/components/masonry/masonry.schema.js +4 -3
- package/dist/server/components/matrix-chart/index.js +62 -39
- package/dist/server/components/media-controls/index.css +11 -3
- package/dist/server/components/media-controls/index.js +7 -7
- package/dist/server/components/media-controls/media-controls.schema.js +4 -4
- package/dist/server/components/menu-bar/index.css +15 -1
- package/dist/server/components/modal/index.js +9 -3
- package/dist/server/components/navigation-bar/index.js +3 -3
- package/dist/server/components/navigation-bar/navigation-bar.schema.js +2 -2
- package/dist/server/components/number-input/index.js +56 -18
- package/dist/server/components/number-input/number-input.schema.js +4 -3
- package/dist/server/components/payload-inspector/index.css +616 -0
- package/dist/server/components/payload-inspector/index.js +181 -22
- package/dist/server/components/payload-inspector/payload-inspector.schema.js +27 -15
- package/dist/server/components/permission-matrix/index.css +8 -0
- package/dist/server/components/phone-input/index.js +21 -3
- package/dist/server/components/phone-input/phone-input.schema.js +2 -2
- package/dist/server/components/pin-input/index.js +12 -7
- package/dist/server/components/pin-input/pin-input.schema.js +9 -2
- package/dist/server/components/popover/index.js +9 -3
- package/dist/server/components/pricing-card/index.js +22 -7
- package/dist/server/components/radio-group/index.css +3 -0
- package/dist/server/components/radio-group/index.js +24 -3
- package/dist/server/components/radio-group/radio-group.schema.js +3 -3
- package/dist/server/components/rating/rating.schema.js +9 -2
- package/dist/server/components/review-editor/index.js +426 -80
- package/dist/server/components/run-step-timeline/index.css +503 -6
- package/dist/server/components/run-step-timeline/index.js +455 -109
- package/dist/server/components/run-step-timeline/run-step-timeline.schema.js +351 -21
- package/dist/server/components/schema-form/index.css +11 -69
- package/dist/server/components/schema-form/index.js +1291 -218
- package/dist/server/components/schema-form/schema-form.schema.js +10 -3
- package/dist/server/components/scroll-area/index.js +3 -3
- package/dist/server/components/scroll-area/scroll-area.schema.js +2 -2
- package/dist/server/components/secret-value-field/index.js +4 -4
- package/dist/server/components/segmented-control/index.css +15 -1
- package/dist/server/components/select/index.css +9 -2
- package/dist/server/components/select/index.js +9 -2
- package/dist/server/components/selection-popover/index.js +9 -3
- package/dist/server/components/share-card/index.css +11 -3
- package/dist/server/components/share-card/index.js +1 -5
- package/dist/server/components/sheet/index.js +265 -195
- package/dist/server/components/sidebar/index.js +274 -207
- package/dist/server/components/sidebar/sidebar.schema.js +2 -2
- package/dist/server/components/slider/index.css +13 -9
- package/dist/server/components/slider/index.js +173 -4
- package/dist/server/components/sortable-list/index.css +1 -1
- package/dist/server/components/spectrogram/index.js +68 -45
- package/dist/server/components/spectrum-chart/index.js +54 -31
- package/dist/server/components/speed-dial/index.css +3 -3
- package/dist/server/components/speed-dial/index.js +8 -8
- package/dist/server/components/speed-dial-action/index.js +6 -6
- package/dist/server/components/stat/index.js +26 -4
- package/dist/server/components/stat/stat.schema.js +2 -2
- package/dist/server/components/stat-group/index.css +1 -1
- package/dist/server/components/stat-group/index.js +26 -4
- package/dist/server/components/status-dot/index.css +45 -1
- package/dist/server/components/status-dot/index.js +35 -7
- package/dist/server/components/status-dot/status-dot.schema.js +12 -5
- package/dist/server/components/steps/index.css +3 -3
- package/dist/server/components/table/index.css +8 -0
- package/dist/server/components/table/index.js +22 -16
- package/dist/server/components/table-header/index.js +6 -6
- package/dist/server/components/table-header/table-header.schema.js +3 -3
- package/dist/server/components/table-header-cell/index.js +9 -3
- package/dist/server/components/table-row/index.js +7 -7
- package/dist/server/components/table-row/table-row.schema.js +3 -3
- package/dist/server/components/tabs/index.js +18 -4
- package/dist/server/components/tabs/tabs.schema.js +6 -1
- package/dist/server/components/textarea/index.css +16 -1
- package/dist/server/components/textarea/index.js +9 -2
- package/dist/server/components/time-field/index.css +58 -0
- package/dist/server/components/time-field/index.js +291 -0
- package/dist/server/components/time-field/time-field.schema.js +88 -0
- package/dist/server/components/time-field/time-field.variables.js +12 -0
- package/dist/server/components/toggle/index.js +40 -7
- package/dist/server/components/toggle/toggle.schema.js +11 -2
- package/dist/server/components/transfer-list/index.css +16 -0
- package/dist/server/components/transfer-list/index.js +37 -11
- package/dist/server/components/transfer-list/transfer-list.schema.js +2 -2
- package/dist/server/components/tree/index.css +68 -0
- package/dist/server/components/tree/index.js +67 -20
- package/dist/server/components/tree/tree.schema.js +3 -3
- package/dist/server/components/tree-item/index.js +34 -13
- package/dist/server/components/tree-item/tree-item.schema.js +5 -5
- package/dist/server/components/virtual-list/index.js +36 -13
- package/dist/server/components/waveform/index.js +51 -28
- package/dist/server/editor/attach.d.ts +2 -2
- package/dist/server/editor/attach.js +10 -16
- package/dist/server/editor/editor.js +6 -6
- package/dist/server/editor/keymap-plugin.d.ts +2 -2
- package/dist/server/editor/keymap-plugin.js +4 -4
- package/dist/server/editor/types.d.ts +11 -11
- package/dist/server/index.css +2033 -1463
- package/dist/server/index.js +7203 -5135
- package/dist/utilities/attachments.d.ts +6 -6
- package/dist/utilities/value-change.d.ts +2 -0
- package/package.json +96 -63
- package/src/_internal/locale-context.ts +21 -0
- package/src/_internal/text-direction.ts +213 -0
- package/src/_internal/tree-context.ts +2 -0
- package/src/components/_internal/create-command-list-state.svelte.ts +171 -0
- package/src/components/_internal/create-sliding-dialog-state.svelte.ts +170 -0
- package/src/components/_radio/README.md +1 -1
- package/src/components/access-gate/access-gate-inline.svelte +3 -1
- package/src/components/alert/README.md +8 -8
- package/src/components/alert/alert.css +1 -1
- package/src/components/alert/alert.examples.json +4 -4
- package/src/components/alert/alert.svelte +3 -5
- package/src/components/alert/alert.types.ts +4 -4
- package/src/components/approval-card/README.md +92 -0
- package/src/components/approval-card/approval-card-state.ts +24 -0
- package/src/components/approval-card/approval-card.css +239 -0
- package/src/components/approval-card/approval-card.examples.json +25 -0
- package/src/components/approval-card/approval-card.svelte +583 -0
- package/src/components/approval-card/approval-card.types.ts +180 -0
- package/src/components/approval-card/index.ts +16 -0
- package/src/components/autocomplete/autocomplete.css +12 -1
- package/src/components/autocomplete/autocomplete.svelte +53 -27
- package/src/components/badge/README.md +8 -7
- package/src/components/badge/badge.svelte +80 -3
- package/src/components/badge/badge.types.ts +36 -13
- package/src/components/badge/index.ts +1 -1
- package/src/components/banner/README.md +2 -2
- package/src/components/banner/banner.examples.json +19 -0
- package/src/components/banner/banner.svelte +2 -2
- package/src/components/banner/banner.types.ts +1 -1
- package/src/components/button/button.css +1 -1
- package/src/components/callout/callout.examples.json +19 -0
- package/src/components/capability-gate/README.md +3 -3
- package/src/components/capability-gate/capability-gate.css +15 -2
- package/src/components/capability-gate/capability-gate.examples.json +1 -1
- package/src/components/capability-gate/capability-gate.svelte +7 -7
- package/src/components/capability-gate/capability-gate.types.ts +6 -6
- package/src/components/chat/README.md +6 -10
- package/src/components/chat/chat.examples.json +8 -8
- package/src/components/chat/chat.types.ts +31 -15
- package/src/components/chat/container/chat-events.ts +2 -2
- package/src/components/chat/container/chat-history-trigger.svelte +9 -1
- package/src/components/chat/container/chat.svelte +47 -46
- package/src/components/chat/container/use-chat-scroll-state.svelte.ts +21 -18
- package/src/components/chat/container/use-chat-unread-state.svelte.ts +19 -19
- package/src/components/chat/index.ts +1 -1
- package/src/components/chat/input/chat-input.svelte +35 -13
- package/src/components/chat/message/image-lightbox.svelte +38 -15
- package/src/components/chat/message/message-attachments.svelte +1 -1
- package/src/components/chat/message/parts/reasoning-part.svelte +8 -0
- package/src/components/chat/message/parts/tool-approval-part.svelte +22 -9
- package/src/components/chat-conversation-list/chat-conversation-list.css +13 -0
- package/src/components/checkbox/README.md +1 -0
- package/src/components/checkbox/checkbox.css +3 -0
- package/src/components/checkbox/checkbox.svelte +44 -2
- package/src/components/checkbox/checkbox.types.ts +2 -0
- package/src/components/checkbox-group/README.md +2 -2
- package/src/components/checkbox-group/checkbox-group.css +3 -0
- package/src/components/checkbox-group/checkbox-group.examples.json +13 -0
- package/src/components/checkbox-group/checkbox-group.svelte +23 -2
- package/src/components/checkbox-group/checkbox-group.types.ts +12 -7
- package/src/components/choice-grid-item/choice-grid-item.svelte +1 -1
- package/src/components/click-away-listener/README.md +2 -2
- package/src/components/click-away-listener/click-away-listener.examples.json +1 -1
- package/src/components/click-away-listener/click-away-listener.svelte +2 -2
- package/src/components/click-away-listener/click-away-listener.types.ts +3 -3
- package/src/components/code-block/code-block.css +4 -3
- package/src/components/collapsible/README.md +2 -2
- package/src/components/collapsible/collapsible.svelte +2 -2
- package/src/components/collapsible/collapsible.types.ts +5 -2
- package/src/components/color-field/README.md +18 -18
- package/src/components/color-field/color-field.svelte +2 -2
- package/src/components/color-field/color-field.types.ts +2 -2
- package/src/components/color-swatch-picker/color-swatch-picker.examples.json +13 -0
- package/src/components/color-swatch-picker/color-swatch-picker.svelte +38 -24
- package/src/components/combobox/README.md +2 -1
- package/src/components/combobox/combobox.svelte +38 -17
- package/src/components/combobox/combobox.types.ts +7 -1
- package/src/components/command-item/README.md +13 -11
- package/src/components/command-item/command-item.css +10 -0
- package/src/components/command-item/command-item.svelte +11 -0
- package/src/components/command-item/command-item.types.ts +4 -0
- package/src/components/command-menu/command-menu.svelte +21 -102
- package/src/components/command-palette/README.md +12 -12
- package/src/components/command-palette/command-palette.examples.json +3 -3
- package/src/components/command-palette/command-palette.svelte +17 -134
- package/src/components/command-palette/command-palette.types.ts +1 -2
- package/src/components/context-menu/context-menu.context.ts +2 -0
- package/src/components/context-menu/context-menu.svelte +35 -9
- package/src/components/context-menu-trigger/context-menu-trigger.svelte +9 -6
- package/src/components/copy-button/copy-button.svelte +4 -3
- package/src/components/data-grid/README.md +3 -3
- package/src/components/data-grid/_internal/column-model.svelte.ts +2 -0
- package/src/components/data-grid/data-grid.css +25 -0
- package/src/components/data-grid/data-grid.svelte +7 -7
- package/src/components/data-grid/data-grid.types.ts +8 -2
- package/src/components/data-list/README.md +9 -9
- package/src/components/data-list/data-list.examples.json +1 -1
- package/src/components/data-list/data-list.svelte +3 -9
- package/src/components/data-list/data-list.types.ts +5 -9
- package/src/components/data-table/data-table.css +13 -0
- package/src/components/data-table/data-table.svelte +13 -3
- package/src/components/date-range-field/README.md +9 -8
- package/src/components/date-range-field/date-range-field.svelte +193 -19
- package/src/components/date-range-field/date-range-field.types.ts +16 -10
- package/src/components/date-range-field/index.ts +1 -0
- package/src/components/diff-viewer/diff-front-matter.svelte +2 -2
- package/src/components/diff-viewer/diff-line.svelte +32 -8
- package/src/components/diff-viewer/diff-toolbar.svelte +3 -3
- package/src/components/diff-viewer/diff-viewer.svelte +4 -4
- package/src/components/diff-viewer/diff-viewer.types.ts +3 -3
- package/src/components/diff-viewer/index.ts +1 -1
- package/src/components/drawer/drawer.svelte +26 -145
- package/src/components/dropdown/dropdown.css +7 -1
- package/src/components/dropdown/dropdown.types.ts +3 -0
- package/src/components/dropdown-group/README.md +6 -6
- package/src/components/dropdown-group/dropdown-group.svelte +8 -8
- package/src/components/dropdown-group/dropdown-group.types.ts +4 -4
- package/src/components/dropdown-item/README.md +2 -0
- package/src/components/dropdown-item/dropdown-item.svelte +14 -11
- package/src/components/dropdown-item/dropdown-item.types.ts +5 -0
- package/src/components/dropdown-menu/dropdown-menu.svelte +42 -9
- package/src/components/dropdown-trigger/dropdown-trigger.svelte +4 -6
- package/src/components/event-stream-viewer/README.md +38 -16
- package/src/components/event-stream-viewer/event-stream-viewer-keys.ts +74 -0
- package/src/components/event-stream-viewer/event-stream-viewer.css +46 -0
- package/src/components/event-stream-viewer/event-stream-viewer.examples.json +6 -0
- package/src/components/event-stream-viewer/event-stream-viewer.svelte +262 -69
- package/src/components/event-stream-viewer/event-stream-viewer.types.ts +130 -3
- package/src/components/event-stream-viewer/index.ts +6 -0
- package/src/components/faceted-filter-bar/faceted-filter-bar.css +9 -0
- package/src/components/faceted-filter-bar/faceted-filter-bar.svelte +31 -5
- package/src/components/file-upload/file-upload.css +5 -5
- package/src/components/file-upload/file-upload.examples.json +13 -0
- package/src/components/floating-action-button/README.md +9 -9
- package/src/components/floating-action-button/floating-action-button.css +22 -22
- package/src/components/floating-action-button/floating-action-button.examples.json +1 -1
- package/src/components/floating-action-button/floating-action-button.svelte +7 -7
- package/src/components/floating-action-button/floating-action-button.types.ts +21 -21
- package/src/components/floating-action-button/index.ts +1 -1
- package/src/components/form-field/form-field.css +3 -13
- package/src/components/form-field/form-field.svelte +4 -1
- package/src/components/image/image.examples.json +13 -0
- package/src/components/input/README.md +16 -15
- package/src/components/input/input.examples.json +1 -1
- package/src/components/input/input.svelte +65 -28
- package/src/components/input/input.types.ts +2 -0
- package/src/components/invocation-rule-builder/README.md +14 -14
- package/src/components/invocation-rule-builder/index.ts +1 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.css +63 -6
- package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +73 -16
- package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +99 -8
- package/src/components/json-schema-editor/form-view.svelte +3 -1
- package/src/components/json-schema-editor/json-schema-editor-impl.svelte +30 -18
- package/src/components/json-schema-editor/json-schema-editor.css +6 -1
- package/src/components/json-schema-editor/json-schema-toolbar.svelte +6 -0
- package/src/components/json-schema-editor/json-view.svelte +1 -1
- package/src/components/json-schema-editor/property-editor.svelte +38 -2
- package/src/components/json-schema-editor/property-list-validation.ts +10 -0
- package/src/components/json-schema-editor/property-list.svelte +48 -3
- package/src/components/json-viewer/_json-viewer-node.svelte +55 -9
- package/src/components/json-viewer/json-viewer.css +11 -0
- package/src/components/json-viewer/json-viewer.svelte +63 -1
- package/src/components/kanban-board/kanban-board.css +56 -3
- package/src/components/kanban-board/kanban-board.svelte +10 -3
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.css +2 -2
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.svelte +1 -1
- package/src/components/label/README.md +1 -1
- package/src/components/label/label.css +2 -9
- package/src/components/label/label.svelte +4 -2
- package/src/components/load-more/README.md +4 -4
- package/src/components/load-more/load-more.css +13 -5
- package/src/components/load-more/load-more.examples.json +2 -2
- package/src/components/load-more/load-more.svelte +4 -4
- package/src/components/load-more/load-more.types.ts +3 -3
- package/src/components/locale-provider/README.md +43 -0
- package/src/components/locale-provider/index.ts +5 -0
- package/src/components/locale-provider/locale-provider.svelte +40 -0
- package/src/components/locale-provider/locale-provider.types.ts +21 -0
- package/src/components/markdown-editor/README.md +3 -3
- package/src/components/markdown-editor/editor-toolbar/editor-toolbar.svelte +5 -2
- package/src/components/markdown-editor/editor-toolbar/link-popover.svelte +13 -0
- package/src/components/markdown-editor/editor-toolbar/toolbar-dropdown.svelte +2 -0
- package/src/components/markdown-editor/markdown-editor.svelte +14 -12
- package/src/components/markdown-editor/markdown-editor.types.ts +4 -4
- package/src/components/masonry/README.md +7 -7
- package/src/components/masonry/masonry.types.ts +24 -2
- package/src/components/matrix-chart/matrix-chart.svelte +7 -21
- package/src/components/media-controls/README.md +3 -3
- package/src/components/media-controls/media-controls.css +15 -4
- package/src/components/media-controls/media-controls.examples.json +1 -1
- package/src/components/media-controls/media-controls.svelte +6 -6
- package/src/components/media-controls/media-controls.types.ts +10 -7
- package/src/components/menu-bar/menu-bar.css +11 -0
- package/src/components/menu-bar/menu-bar.svelte +81 -12
- package/src/components/navigation-bar/README.md +1 -1
- package/src/components/navigation-bar/navigation-bar.examples.json +1 -1
- package/src/components/navigation-bar/navigation-bar.svelte +2 -2
- package/src/components/navigation-bar/navigation-bar.types.ts +1 -1
- package/src/components/number-input/README.md +18 -18
- package/src/components/number-input/number-input.examples.json +13 -0
- package/src/components/number-input/number-input.svelte +77 -38
- package/src/components/number-input/number-input.types.ts +15 -5
- package/src/components/pagination/README.md +3 -1
- package/src/components/payload-inspector/README.md +11 -11
- package/src/components/payload-inspector/index.ts +2 -0
- package/src/components/payload-inspector/payload-inspector.css +6 -0
- package/src/components/payload-inspector/payload-inspector.svelte +22 -4
- package/src/components/payload-inspector/payload-inspector.types.ts +54 -3
- package/src/components/permission-matrix/permission-matrix.css +10 -0
- package/src/components/phone-input/README.md +1 -1
- package/src/components/phone-input/phone-input.svelte +7 -1
- package/src/components/phone-input/phone-input.types.ts +3 -2
- package/src/components/pin-input/README.md +19 -19
- package/src/components/pin-input/pin-input.svelte +16 -12
- package/src/components/pin-input/pin-input.types.ts +10 -1
- package/src/components/portal/portal.utilities.svelte.ts +4 -1
- package/src/components/pricing-card/pricing-card.svelte +26 -1
- package/src/components/radio-group/README.md +12 -12
- package/src/components/radio-group/radio-group.css +3 -0
- package/src/components/radio-group/radio-group.examples.json +3 -3
- package/src/components/radio-group/radio-group.svelte +22 -2
- package/src/components/radio-group/radio-group.types.ts +6 -2
- package/src/components/rating/README.md +18 -18
- package/src/components/rating/rating.svelte +0 -8
- package/src/components/rating/rating.types.ts +6 -0
- package/src/components/review-editor/comment-list.svelte +1 -1
- package/src/components/review-editor/index.ts +1 -1
- package/src/components/review-editor/review-editor-controls.svelte +8 -3
- package/src/components/review-editor/review-editor-impl.svelte +11 -7
- package/src/components/review-editor/review-editor-selection-types.ts +1 -1
- package/src/components/review-editor/review-editor-selection.svelte.ts +1 -1
- package/src/components/review-editor/review-editor-state.svelte.ts +1 -1
- package/src/components/review-editor/review-editor-threads.svelte.ts +2 -2
- package/src/components/review-editor/review-editor.types.ts +91 -3
- package/src/components/review-editor/thread-popover.svelte +1 -1
- package/src/components/run-step-timeline/README.md +53 -6
- package/src/components/run-step-timeline/index.ts +6 -0
- package/src/components/run-step-timeline/run-step-timeline.css +25 -5
- package/src/components/run-step-timeline/run-step-timeline.examples.json +3 -3
- package/src/components/run-step-timeline/run-step-timeline.svelte +314 -78
- package/src/components/run-step-timeline/run-step-timeline.types.ts +190 -3
- package/src/components/schema-form/README.md +9 -9
- package/src/components/schema-form/index.ts +0 -1
- package/src/components/schema-form/schema-form-async.fixture.ts +101 -0
- package/src/components/schema-form/schema-form-body.svelte +646 -0
- package/src/components/schema-form/schema-form-model.ts +4 -44
- package/src/components/schema-form/schema-form-validation.ts +83 -46
- package/src/components/schema-form/schema-form.css +12 -74
- package/src/components/schema-form/schema-form.examples.json +0 -6
- package/src/components/schema-form/schema-form.svelte +30 -598
- package/src/components/schema-form/schema-form.types.ts +16 -12
- package/src/components/scroll-area/README.md +1 -1
- package/src/components/scroll-area/scroll-area.examples.json +3 -3
- package/src/components/scroll-area/scroll-area.svelte +5 -5
- package/src/components/scroll-area/scroll-area.types.ts +1 -1
- package/src/components/secret-value-field/secret-value-field.svelte +10 -6
- package/src/components/segmented-control/segmented-control.css +22 -1
- package/src/components/segmented-control/segmented-control.examples.json +2 -2
- package/src/components/select/select.css +9 -2
- package/src/components/select/select.svelte +6 -1
- package/src/components/selection-popover/selection-popover.examples.json +1 -1
- package/src/components/share-card/share-card.css +15 -4
- package/src/components/share-card/share-card.svelte +2 -4
- package/src/components/sheet/sheet.svelte +30 -145
- package/src/components/shortcut-hint/shortcut-hint.svelte +1 -1
- package/src/components/side-navigation/side-navigation.examples.json +1 -1
- package/src/components/sidebar/README.md +6 -2
- package/src/components/sidebar/sidebar.examples.json +1 -1
- package/src/components/sidebar/sidebar.svelte +4 -4
- package/src/components/sidebar/sidebar.types.ts +1 -1
- package/src/components/slider/slider.css +14 -9
- package/src/components/slider/slider.svelte +33 -2
- package/src/components/sortable-list/README.md +18 -1
- package/src/components/sortable-list/sortable-list.css +1 -1
- package/src/components/sortable-list/sortable-list.examples.json +13 -0
- package/src/components/spectrogram/spectrogram.examples.json +1 -0
- package/src/components/spectrogram/spectrogram.svelte +7 -19
- package/src/components/spectrum-chart/spectrum-chart.svelte +8 -20
- package/src/components/speed-dial/speed-dial.css +3 -3
- package/src/components/speed-dial/speed-dial.examples.json +1 -1
- package/src/components/speed-dial/speed-dial.svelte +2 -2
- package/src/components/speed-dial-action/speed-dial-action.svelte +1 -1
- package/src/components/stacked-list-item/stacked-list-item.examples.json +1 -1
- package/src/components/stat/README.md +1 -1
- package/src/components/stat/stat.svelte +7 -2
- package/src/components/stat/stat.types.ts +2 -2
- package/src/components/stat-group/stat-group.css +1 -1
- package/src/components/status-dot/README.md +9 -7
- package/src/components/status-dot/index.ts +6 -1
- package/src/components/status-dot/status-dot.css +45 -1
- package/src/components/status-dot/status-dot.examples.json +1 -1
- package/src/components/status-dot/status-dot.svelte +57 -8
- package/src/components/status-dot/status-dot.types.ts +17 -6
- package/src/components/steps/steps.css +3 -3
- package/src/components/table/table.css +10 -0
- package/src/components/table/table.examples.json +1 -1
- package/src/components/table/table.svelte +2 -2
- package/src/components/table/table.types.ts +3 -3
- package/src/components/table-header/README.md +2 -2
- package/src/components/table-header/table-header.svelte +5 -5
- package/src/components/table-header/table-header.types.ts +2 -2
- package/src/components/table-header-cell/table-header-cell.svelte +13 -2
- package/src/components/table-row/README.md +2 -2
- package/src/components/table-row/table-row.svelte +6 -6
- package/src/components/table-row/table-row.types.ts +6 -6
- package/src/components/tabs/README.md +1 -0
- package/src/components/tabs/tabs.svelte +11 -3
- package/src/components/tabs/tabs.types.ts +2 -0
- package/src/components/textarea/textarea.css +16 -1
- package/src/components/textarea/textarea.svelte +6 -1
- package/src/components/time-field/README.md +60 -0
- package/src/components/time-field/index.ts +6 -0
- package/src/components/time-field/time-field.css +60 -0
- package/src/components/time-field/time-field.examples.json +13 -0
- package/src/components/time-field/time-field.svelte +277 -0
- package/src/components/time-field/time-field.types.ts +70 -0
- package/src/components/toggle/README.md +12 -11
- package/src/components/toggle/toggle.svelte +19 -6
- package/src/components/toggle/toggle.types.ts +2 -0
- package/src/components/transfer-list/README.md +1 -1
- package/src/components/transfer-list/transfer-list.css +22 -0
- package/src/components/transfer-list/transfer-list.svelte +44 -10
- package/src/components/transfer-list/transfer-list.types.ts +5 -2
- package/src/components/tree/README.md +2 -2
- package/src/components/tree/tree.css +69 -0
- package/src/components/tree/tree.examples.json +1 -1
- package/src/components/tree/tree.svelte +52 -9
- package/src/components/tree/tree.types.ts +2 -2
- package/src/components/tree-item/README.md +4 -4
- package/src/components/tree-item/tree-item.svelte +42 -12
- package/src/components/tree-item/tree-item.types.ts +4 -4
- package/src/components/virtual-list/virtual-list.svelte +5 -5
- package/src/components/waveform/waveform.svelte +7 -19
- package/src/index.ts +40 -16
- package/src/styles/components/_field-label.css +20 -0
- package/src/styles/components/_input-frame.css +2 -1
- package/src/styles/components.css +3 -2
- package/src/styles/index.css +1 -0
- package/src/styles/tokens-base.css +3 -0
- package/src/utilities/attachments.ts +15 -12
- package/src/utilities/value-change.ts +11 -0
- package/dist/components/connection-indicator/connection-indicator.css +0 -63
- package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +0 -18
- package/dist/components/connection-indicator/connection-indicator.types.d.ts +0 -14
- package/dist/components/connection-indicator/index.d.ts +0 -5
- package/dist/components/connection-indicator/index.js +0 -75
- package/dist/components/experimental/connection-indicator/index.d.ts +0 -2
- package/dist/components/review-editor/review-editor-types.d.ts +0 -77
- package/dist/components/subscription-badge/index.d.ts +0 -5
- package/dist/components/subscription-badge/index.js +0 -353
- package/dist/components/subscription-badge/subscription-badge.css +0 -18
- package/dist/components/subscription-badge/subscription-badge.schema.js +0 -47
- package/dist/components/subscription-badge/subscription-badge.svelte.d.ts +0 -19
- package/dist/components/subscription-badge/subscription-badge.types.d.ts +0 -28
- package/dist/server/components/connection-indicator/connection-indicator.schema.js +0 -31
- package/dist/server/components/connection-indicator/connection-indicator.variables.js +0 -12
- package/dist/server/components/connection-indicator/index.css +0 -60
- package/dist/server/components/connection-indicator/index.js +0 -42
- package/dist/server/components/experimental/connection-indicator/index.js +0 -23
- package/dist/server/components/subscription-badge/index.css +0 -2
- package/dist/server/components/subscription-badge/index.js +0 -308
- package/dist/server/components/subscription-badge/subscription-badge.schema.js +0 -28
- package/dist/server/components/subscription-badge/subscription-badge.variables.js +0 -12
- package/src/components/connection-indicator/README.md +0 -41
- package/src/components/connection-indicator/connection-indicator.css +0 -63
- package/src/components/connection-indicator/connection-indicator.svelte +0 -44
- package/src/components/connection-indicator/connection-indicator.types.ts +0 -18
- package/src/components/connection-indicator/index.ts +0 -6
- package/src/components/experimental/connection-indicator/index.ts +0 -20
- package/src/components/review-editor/review-editor-types.ts +0 -92
- package/src/components/subscription-badge/README.md +0 -50
- package/src/components/subscription-badge/index.ts +0 -6
- package/src/components/subscription-badge/subscription-badge.css +0 -18
- package/src/components/subscription-badge/subscription-badge.examples.json +0 -19
- package/src/components/subscription-badge/subscription-badge.svelte +0 -69
- package/src/components/subscription-badge/subscription-badge.types.ts +0 -37
- /package/dist/components/{connection-indicator/connection-indicator.schema.d.ts → approval-card/approval-card.schema.d.ts} +0 -0
- /package/dist/components/{connection-indicator/connection-indicator.variables.d.ts → approval-card/approval-card.variables.d.ts} +0 -0
- /package/dist/components/{subscription-badge/subscription-badge.schema.d.ts → locale-provider/locale-provider.schema.d.ts} +0 -0
- /package/dist/components/{subscription-badge/subscription-badge.variables.d.ts → locale-provider/locale-provider.variables.d.ts} +0 -0
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
</script>
|
|
16
16
|
|
|
17
17
|
<script lang="ts">
|
|
18
|
+
import { tick } from 'svelte';
|
|
18
19
|
import { SvelteSet } from 'svelte/reactivity';
|
|
19
20
|
|
|
20
21
|
import { classNames } from '../../utilities/class-names.ts';
|
|
@@ -28,7 +29,7 @@
|
|
|
28
29
|
value = $bindable([]),
|
|
29
30
|
leftLabel = 'Available',
|
|
30
31
|
rightLabel = 'Selected',
|
|
31
|
-
|
|
32
|
+
onchange,
|
|
32
33
|
class: customClassName,
|
|
33
34
|
...rest
|
|
34
35
|
}: TransferListProps = $props();
|
|
@@ -37,6 +38,9 @@
|
|
|
37
38
|
let rightSelectedIds = $state<string[]>([]);
|
|
38
39
|
let leftActiveId = $state<string | null>(null);
|
|
39
40
|
let rightActiveId = $state<string | null>(null);
|
|
41
|
+
let focusedSide = $state<'left' | 'right' | null>(null);
|
|
42
|
+
let leftListElement: HTMLUListElement | undefined = $state();
|
|
43
|
+
let rightListElement: HTMLUListElement | undefined = $state();
|
|
40
44
|
|
|
41
45
|
const announcer = useAnnouncer({ clearDelay: 5000 });
|
|
42
46
|
|
|
@@ -146,7 +150,7 @@
|
|
|
146
150
|
function commitValue(nextValue: string[], announcement: string): void {
|
|
147
151
|
const dedupedKnownValue = [...new Set(nextValue)].filter((id) => itemById.has(id));
|
|
148
152
|
value = dedupedKnownValue;
|
|
149
|
-
|
|
153
|
+
onchange?.(dedupedKnownValue);
|
|
150
154
|
announcer.announce(announcement);
|
|
151
155
|
}
|
|
152
156
|
|
|
@@ -154,25 +158,35 @@
|
|
|
154
158
|
return count === 1 ? 'item' : 'items';
|
|
155
159
|
}
|
|
156
160
|
|
|
157
|
-
function
|
|
161
|
+
function focusList(side: 'left' | 'right'): void {
|
|
162
|
+
const listElement = side === 'left' ? leftListElement : rightListElement;
|
|
163
|
+
listElement?.focus();
|
|
164
|
+
focusedSide = side;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
async function moveSelectedRight(): Promise<void> {
|
|
158
168
|
if (movableLeftSelectedIds.length === 0) return;
|
|
159
169
|
commitValue(
|
|
160
170
|
[...knownValue, ...movableLeftSelectedIds],
|
|
161
171
|
`${movableLeftSelectedIds.length} ${pluralize(movableLeftSelectedIds.length)} moved to ${rightLabel}.`,
|
|
162
172
|
);
|
|
163
173
|
leftSelectedIds = [];
|
|
174
|
+
await tick();
|
|
175
|
+
focusList(leftItems.some((item) => canMoveItem('left', item)) ? 'left' : 'right');
|
|
164
176
|
}
|
|
165
177
|
|
|
166
|
-
function moveAllRight(): void {
|
|
178
|
+
async function moveAllRight(): Promise<void> {
|
|
167
179
|
if (movableLeftItemIds.length === 0) return;
|
|
168
180
|
commitValue(
|
|
169
181
|
[...knownValue, ...movableLeftItemIds],
|
|
170
182
|
`${movableLeftItemIds.length} ${pluralize(movableLeftItemIds.length)} moved to ${rightLabel}.`,
|
|
171
183
|
);
|
|
172
184
|
leftSelectedIds = [];
|
|
185
|
+
await tick();
|
|
186
|
+
focusList('right');
|
|
173
187
|
}
|
|
174
188
|
|
|
175
|
-
function moveSelectedLeft(): void {
|
|
189
|
+
async function moveSelectedLeft(): Promise<void> {
|
|
176
190
|
if (movableRightSelectedIds.length === 0) return;
|
|
177
191
|
const removing = new Set(movableRightSelectedIds);
|
|
178
192
|
commitValue(
|
|
@@ -180,9 +194,11 @@
|
|
|
180
194
|
`${movableRightSelectedIds.length} ${pluralize(movableRightSelectedIds.length)} moved to ${leftLabel}.`,
|
|
181
195
|
);
|
|
182
196
|
rightSelectedIds = [];
|
|
197
|
+
await tick();
|
|
198
|
+
focusList(rightItems.length > 0 ? 'right' : 'left');
|
|
183
199
|
}
|
|
184
200
|
|
|
185
|
-
function moveAllLeft(): void {
|
|
201
|
+
async function moveAllLeft(): Promise<void> {
|
|
186
202
|
if (movableRightItemIds.length === 0) return;
|
|
187
203
|
const removing = new Set(movableRightItemIds);
|
|
188
204
|
commitValue(
|
|
@@ -190,6 +206,8 @@
|
|
|
190
206
|
`${movableRightItemIds.length} ${pluralize(movableRightItemIds.length)} moved to ${leftLabel}.`,
|
|
191
207
|
);
|
|
192
208
|
rightSelectedIds = [];
|
|
209
|
+
await tick();
|
|
210
|
+
focusList('left');
|
|
193
211
|
}
|
|
194
212
|
|
|
195
213
|
function toggleId(side: 'left' | 'right', id: string): void {
|
|
@@ -238,6 +256,7 @@
|
|
|
238
256
|
}
|
|
239
257
|
|
|
240
258
|
function handleListFocus(side: 'left' | 'right'): void {
|
|
259
|
+
focusedSide = side;
|
|
241
260
|
if (side === 'left') {
|
|
242
261
|
leftActiveId = resolvedLeftActiveId;
|
|
243
262
|
} else {
|
|
@@ -245,6 +264,13 @@
|
|
|
245
264
|
}
|
|
246
265
|
}
|
|
247
266
|
|
|
267
|
+
function handleListBlur(event: FocusEvent, side: 'left' | 'right'): void {
|
|
268
|
+
const nextTarget = event.relatedTarget instanceof Node ? event.relatedTarget : null;
|
|
269
|
+
const currentTarget = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;
|
|
270
|
+
if (currentTarget && nextTarget && currentTarget.contains(nextTarget)) return;
|
|
271
|
+
if (focusedSide === side) focusedSide = null;
|
|
272
|
+
}
|
|
273
|
+
|
|
248
274
|
function handleListKeydown(event: KeyboardEvent, side: 'left' | 'right'): void {
|
|
249
275
|
const sideItems = side === 'left' ? leftItems : rightItems;
|
|
250
276
|
const activeId = side === 'left' ? resolvedLeftActiveId : resolvedRightActiveId;
|
|
@@ -292,13 +318,15 @@
|
|
|
292
318
|
<section class="cinder-transfer-list__panel" aria-labelledby={`${baseId}-left-label`}>
|
|
293
319
|
<h3 id={`${baseId}-left-label`} class="cinder-transfer-list__label">{leftLabel}</h3>
|
|
294
320
|
<ul
|
|
321
|
+
bind:this={leftListElement}
|
|
295
322
|
class="cinder-transfer-list__list"
|
|
296
323
|
role="listbox"
|
|
297
324
|
aria-multiselectable="true"
|
|
298
325
|
aria-labelledby={`${baseId}-left-label`}
|
|
299
|
-
aria-activedescendant={leftActiveOptionId}
|
|
326
|
+
aria-activedescendant={focusedSide === 'left' ? leftActiveOptionId : undefined}
|
|
300
327
|
tabindex="0"
|
|
301
328
|
onfocus={() => handleListFocus('left')}
|
|
329
|
+
onblur={(event) => handleListBlur(event, 'left')}
|
|
302
330
|
onclick={(event) => handleListClick(event, 'left')}
|
|
303
331
|
onkeydown={(event) => handleListKeydown(event, 'left')}
|
|
304
332
|
>
|
|
@@ -309,7 +337,9 @@
|
|
|
309
337
|
role="option"
|
|
310
338
|
aria-selected={leftSelectedSet.has(item.id) ? 'true' : 'false'}
|
|
311
339
|
aria-disabled={item.disabled ? 'true' : undefined}
|
|
312
|
-
data-cinder-active={resolvedLeftActiveId === item.id
|
|
340
|
+
data-cinder-active={focusedSide === 'left' && resolvedLeftActiveId === item.id
|
|
341
|
+
? 'true'
|
|
342
|
+
: undefined}
|
|
313
343
|
data-cinder-transfer-list-item-id={item.id}
|
|
314
344
|
>
|
|
315
345
|
{item.label}
|
|
@@ -362,13 +392,15 @@
|
|
|
362
392
|
<section class="cinder-transfer-list__panel" aria-labelledby={`${baseId}-right-label`}>
|
|
363
393
|
<h3 id={`${baseId}-right-label`} class="cinder-transfer-list__label">{rightLabel}</h3>
|
|
364
394
|
<ul
|
|
395
|
+
bind:this={rightListElement}
|
|
365
396
|
class="cinder-transfer-list__list"
|
|
366
397
|
role="listbox"
|
|
367
398
|
aria-multiselectable="true"
|
|
368
399
|
aria-labelledby={`${baseId}-right-label`}
|
|
369
|
-
aria-activedescendant={rightActiveOptionId}
|
|
400
|
+
aria-activedescendant={focusedSide === 'right' ? rightActiveOptionId : undefined}
|
|
370
401
|
tabindex="0"
|
|
371
402
|
onfocus={() => handleListFocus('right')}
|
|
403
|
+
onblur={(event) => handleListBlur(event, 'right')}
|
|
372
404
|
onclick={(event) => handleListClick(event, 'right')}
|
|
373
405
|
onkeydown={(event) => handleListKeydown(event, 'right')}
|
|
374
406
|
>
|
|
@@ -378,7 +410,9 @@
|
|
|
378
410
|
class="cinder-transfer-list__option"
|
|
379
411
|
role="option"
|
|
380
412
|
aria-selected={rightSelectedSet.has(item.id) ? 'true' : 'false'}
|
|
381
|
-
data-cinder-active={resolvedRightActiveId === item.id
|
|
413
|
+
data-cinder-active={focusedSide === 'right' && resolvedRightActiveId === item.id
|
|
414
|
+
? 'true'
|
|
415
|
+
: undefined}
|
|
382
416
|
data-cinder-transfer-list-item-id={item.id}
|
|
383
417
|
>
|
|
384
418
|
{item.label}
|
|
@@ -13,7 +13,10 @@ export type TransferListItem = {
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
/** Props for the TransferList component. */
|
|
16
|
-
export type TransferListProps = Omit<
|
|
16
|
+
export type TransferListProps = Omit<
|
|
17
|
+
HTMLAttributes<HTMLDivElement>,
|
|
18
|
+
'children' | 'class' | 'onchange'
|
|
19
|
+
> & {
|
|
17
20
|
/** Full item pool. Item IDs must be unique; duplicate IDs after the first are ignored. The component never mutates this array. */
|
|
18
21
|
items: TransferListItem[];
|
|
19
22
|
/** Unique IDs currently assigned to the right-side selected list. Supports `bind:value`. Unknown IDs are ignored and dropped on the next transfer. */
|
|
@@ -29,7 +32,7 @@ export type TransferListProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'
|
|
|
29
32
|
*/
|
|
30
33
|
rightLabel?: string;
|
|
31
34
|
/** Called with the next right-side value after a transfer. */
|
|
32
|
-
|
|
35
|
+
onchange?: (value: string[]) => void;
|
|
33
36
|
/** Custom class merged with `.cinder-transfer-list`. */
|
|
34
37
|
class?: string;
|
|
35
38
|
};
|
|
@@ -53,8 +53,8 @@ The leaf remains importable individually for à-la-carte builds — see
|
|
|
53
53
|
| `children` | `(opaque)` | no | — | Tree items (snippet). Required when virtualized is false or omitted; mutually exclusive with items. Not expressible in JSON Schema; see the component types for the signature. |
|
|
54
54
|
| `filterPredicate` | `(opaque)` | no | — | Custom filter predicate. Default: case-insensitive label substring matching. Not expressible in JSON Schema; see the component types for the signature. |
|
|
55
55
|
| `items` | `(opaque)` | no | — | Data-driven Tree items. Required when virtualized is true; mutually exclusive with children. Not expressible in JSON Schema; see the component types for the signature. |
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
56
|
+
| `onfilterchange` | `(opaque)` | no | — | Fires whenever the built-in search input changes the filter query. Not expressible in JSON Schema; see the component types for the signature. |
|
|
57
|
+
| `onreorder` | `(opaque)` | no | — | Called when a draggable item is dropped before, after, or into another tree item. Not expressible in JSON Schema; see the component types for the signature. |
|
|
58
58
|
| `ref` | `(opaque)` | no | — | Typed programmatic handle. Use `bind:ref` to receive it. Not expressible in JSON Schema; see the component types for the signature. |
|
|
59
59
|
| `selectionControls` | `(opaque)` | no | — | Optional selection controls rendered before the role="tree" element. Not expressible in JSON Schema; see the component types for the signature. |
|
|
60
60
|
| `virtualizedItem` | `(opaque)` | no | — | Optional custom virtualized row renderer. Not expressible in JSON Schema; see the component types for the signature. |
|
|
@@ -52,6 +52,14 @@
|
|
|
52
52
|
box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
@media (forced-colors: active) {
|
|
56
|
+
.cinder-tree__filter-input:focus-visible {
|
|
57
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
58
|
+
outline-offset: 3px;
|
|
59
|
+
box-shadow: none;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
55
63
|
.cinder-tree__selection-controls {
|
|
56
64
|
display: flex;
|
|
57
65
|
flex-wrap: wrap;
|
|
@@ -151,6 +159,51 @@
|
|
|
151
159
|
user-select: none;
|
|
152
160
|
}
|
|
153
161
|
|
|
162
|
+
.cinder-tree-item__disclosure,
|
|
163
|
+
.cinder-tree-item__disclosure-spacer {
|
|
164
|
+
flex: 0 0 auto;
|
|
165
|
+
inline-size: 1rem;
|
|
166
|
+
block-size: 1rem;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.cinder-tree-item__disclosure {
|
|
170
|
+
display: inline-flex;
|
|
171
|
+
align-items: center;
|
|
172
|
+
justify-content: center;
|
|
173
|
+
padding: 0;
|
|
174
|
+
border: 0;
|
|
175
|
+
border-radius: var(--cinder-radius-sm);
|
|
176
|
+
background: transparent;
|
|
177
|
+
color: currentcolor;
|
|
178
|
+
cursor: pointer;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.cinder-tree-item__disclosure > span {
|
|
182
|
+
inline-size: 0.45rem;
|
|
183
|
+
block-size: 0.45rem;
|
|
184
|
+
border-inline-end: 1.5px solid currentcolor;
|
|
185
|
+
border-block-end: 1.5px solid currentcolor;
|
|
186
|
+
transform: rotate(-45deg);
|
|
187
|
+
transition: transform var(--cinder-duration-fast) var(--cinder-ease-standard);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.cinder-tree-item__disclosure[aria-expanded='true'] > span {
|
|
191
|
+
transform: rotate(45deg);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.cinder-tree-item__disclosure:focus-visible {
|
|
195
|
+
outline: var(--cinder-ring-width) solid transparent;
|
|
196
|
+
box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
@media (forced-colors: active) {
|
|
200
|
+
.cinder-tree-item__disclosure:focus-visible {
|
|
201
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
202
|
+
outline-offset: 2px;
|
|
203
|
+
box-shadow: none;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
154
207
|
.cinder-tree-item__checkbox {
|
|
155
208
|
flex: 0 0 auto;
|
|
156
209
|
width: 1rem;
|
|
@@ -186,6 +239,14 @@
|
|
|
186
239
|
box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
|
|
187
240
|
}
|
|
188
241
|
|
|
242
|
+
@media (forced-colors: active) {
|
|
243
|
+
.cinder-tree-item__drag-handle:focus-visible {
|
|
244
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
245
|
+
outline-offset: 2px;
|
|
246
|
+
box-shadow: none;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
189
250
|
/* Long labels must not force the tree wider than its container or overlap the
|
|
190
251
|
* checkbox at narrow (mobile) widths. The element also carries `cinder-_truncate`
|
|
191
252
|
* (the shared utility), which supplies overflow:hidden / text-overflow:ellipsis /
|
|
@@ -273,6 +334,14 @@
|
|
|
273
334
|
box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
|
|
274
335
|
}
|
|
275
336
|
|
|
337
|
+
@media (forced-colors: active) {
|
|
338
|
+
.cinder-tree-item__rename-input:focus-visible {
|
|
339
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
340
|
+
outline-offset: 3px;
|
|
341
|
+
box-shadow: none;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
276
345
|
.cinder-tree-item__rename-input[aria-invalid='true'] {
|
|
277
346
|
border-color: var(--cinder-danger);
|
|
278
347
|
}
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"id": "reorder",
|
|
38
38
|
"title": "Drag reorder",
|
|
39
39
|
"description": "Draggable tree items emit a consumer-owned reorder target. The example records the last drop so pointer behavior can be verified.",
|
|
40
|
-
"code": "<script lang=\"ts\">\n import { Tree } from '@lostgradient/cinder/tree';\n\n type ReorderTarget = {\n id: string;\n position: 'before' | 'after' | 'child';\n };\n\n const items = [\n { id: 'alpha', label: 'Alpha' },\n { id: 'beta', label: 'Beta', branch: true },\n { id: 'gamma', label: 'Gamma' },\n { id: 'delta', label: 'Delta' },\n { id: 'epsilon', label: 'Epsilon' },\n { id: 'zeta', label: 'Zeta' },\n ];\n\n let lastDrop = $state('none');\n\n function handleReorder(draggedId: string, target: ReorderTarget): void {\n lastDrop = `${draggedId}:${target.position}:${target.id}`;\n }\n</script>\n\n<Tree\n class=\"reorder-tree\"\n aria-label=\"Reorder files\"\n
|
|
40
|
+
"code": "<script lang=\"ts\">\n import { Tree } from '@lostgradient/cinder/tree';\n\n type ReorderTarget = {\n id: string;\n position: 'before' | 'after' | 'child';\n };\n\n const items = [\n { id: 'alpha', label: 'Alpha' },\n { id: 'beta', label: 'Beta', branch: true },\n { id: 'gamma', label: 'Gamma' },\n { id: 'delta', label: 'Delta' },\n { id: 'epsilon', label: 'Epsilon' },\n { id: 'zeta', label: 'Zeta' },\n ];\n\n let lastDrop = $state('none');\n\n function handleReorder(draggedId: string, target: ReorderTarget): void {\n lastDrop = `${draggedId}:${target.position}:${target.id}`;\n }\n</script>\n\n<Tree\n class=\"reorder-tree\"\n aria-label=\"Reorder files\"\n onreorder={handleReorder}\n style=\"max-block-size: 7rem; overflow: auto; border: 1px solid var(--cinder-border); border-radius: var(--cinder-radius-md);\"\n>\n {#each items as item (item.id)}\n {#if item.branch}\n <Tree.Item id={item.id} label={item.label} branch draggable />\n {:else}\n <Tree.Item id={item.id} label={item.label} draggable />\n {/if}\n {/each}\n</Tree>\n\n<p data-testid=\"last-drop\" style=\"margin-block-start: 0.75rem;\">\n {lastDrop}\n</p>\n"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"id": "virtualized",
|
|
@@ -76,11 +76,11 @@
|
|
|
76
76
|
style: styleAttribute,
|
|
77
77
|
selectionControls,
|
|
78
78
|
filterValue,
|
|
79
|
-
|
|
79
|
+
onfilterchange,
|
|
80
80
|
filterPlaceholder = 'Search tree',
|
|
81
81
|
showSearch = false,
|
|
82
82
|
filterPredicate = defaultFilterPredicate,
|
|
83
|
-
|
|
83
|
+
onreorder,
|
|
84
84
|
children,
|
|
85
85
|
...rest
|
|
86
86
|
}: TreeProps = $props();
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
() => new Map(flattenedDataItems.map((item) => [item.id, item])),
|
|
193
193
|
);
|
|
194
194
|
const hasTreeChrome = $derived(
|
|
195
|
-
selectionControls != null || showSearch || filtering ||
|
|
195
|
+
selectionControls != null || showSearch || filtering || onreorder != null,
|
|
196
196
|
);
|
|
197
197
|
const hasRegisteredItems = $derived(
|
|
198
198
|
isVirtualizedTree ? flattenedDataItems.length > 0 : registry.size > 0,
|
|
@@ -386,6 +386,17 @@
|
|
|
386
386
|
);
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
+
function virtualizedFilterForcedOpen(item: FlattenedTreeDataItem): boolean {
|
|
390
|
+
return (
|
|
391
|
+
item.branch &&
|
|
392
|
+
filtering &&
|
|
393
|
+
!expandedIds.includes(item.id) &&
|
|
394
|
+
visibleDataItems.some(
|
|
395
|
+
(visibleItem) => visibleItem.id !== item.id && visibleItem.ancestorIds.includes(item.id),
|
|
396
|
+
)
|
|
397
|
+
);
|
|
398
|
+
}
|
|
399
|
+
|
|
389
400
|
function firstVisibleVirtualizedChildIndex(parentId: string): number {
|
|
390
401
|
return visibleDataItems.findIndex((item) => item.parentId === parentId);
|
|
391
402
|
}
|
|
@@ -430,7 +441,7 @@
|
|
|
430
441
|
}
|
|
431
442
|
|
|
432
443
|
$effect(() => {
|
|
433
|
-
if (!
|
|
444
|
+
if (!onreorder) {
|
|
434
445
|
dragController = null;
|
|
435
446
|
return;
|
|
436
447
|
}
|
|
@@ -443,7 +454,7 @@
|
|
|
443
454
|
isBranch: (id) => registry.getNode(id)?.isBranch() ?? false,
|
|
444
455
|
focus: focusNode,
|
|
445
456
|
announce: announceDrag,
|
|
446
|
-
commit: (draggedId, target) =>
|
|
457
|
+
commit: (draggedId, target) => onreorder?.(draggedId, target),
|
|
447
458
|
})),
|
|
448
459
|
);
|
|
449
460
|
});
|
|
@@ -561,7 +572,7 @@
|
|
|
561
572
|
focusItem(id);
|
|
562
573
|
}
|
|
563
574
|
|
|
564
|
-
function scrollToRow(id: string, options
|
|
575
|
+
function scrollToRow(id: string, options: ScrollIntoViewOptions | undefined = undefined): void {
|
|
565
576
|
if (isVirtualizedTree) {
|
|
566
577
|
const index = visibleIds.indexOf(id);
|
|
567
578
|
if (index !== -1) {
|
|
@@ -805,6 +816,15 @@
|
|
|
805
816
|
isFocused(id) {
|
|
806
817
|
return effectiveFocusedId === id;
|
|
807
818
|
},
|
|
819
|
+
positionInSet(id) {
|
|
820
|
+
const siblings = registry.siblingsOf(id).filter((siblingId) => visibleIdSet.has(siblingId));
|
|
821
|
+
const index = siblings.indexOf(id);
|
|
822
|
+
return index === -1 ? undefined : index + 1;
|
|
823
|
+
},
|
|
824
|
+
setSize(id) {
|
|
825
|
+
const siblings = registry.siblingsOf(id).filter((siblingId) => visibleIdSet.has(siblingId));
|
|
826
|
+
return siblings.length || undefined;
|
|
827
|
+
},
|
|
808
828
|
isVisible(id) {
|
|
809
829
|
return visibleIdSet.has(id);
|
|
810
830
|
},
|
|
@@ -1053,7 +1073,7 @@
|
|
|
1053
1073
|
|
|
1054
1074
|
function updateFilterValue(next: string): void {
|
|
1055
1075
|
if (!isFilterControlled) uncontrolledFilterValue = next;
|
|
1056
|
-
|
|
1076
|
+
onfilterchange?.(next);
|
|
1057
1077
|
}
|
|
1058
1078
|
|
|
1059
1079
|
function handleFilterInput(event: Event): void {
|
|
@@ -1165,12 +1185,21 @@
|
|
|
1165
1185
|
focusedId = item.id;
|
|
1166
1186
|
treeElement?.focus();
|
|
1167
1187
|
if (event.detail > 1) return;
|
|
1188
|
+
|
|
1168
1189
|
if (!item.disabled) toggleSelectedInternal(item.id, event);
|
|
1190
|
+
|
|
1169
1191
|
if (item.branch && !event.shiftKey && !event.metaKey && !event.ctrlKey) {
|
|
1170
1192
|
setExpandedInternal(item.id, !expandedIds.includes(item.id));
|
|
1171
1193
|
}
|
|
1172
1194
|
}
|
|
1173
1195
|
|
|
1196
|
+
function handleVirtualizedDisclosureClick(item: FlattenedTreeDataItem, event: MouseEvent): void {
|
|
1197
|
+
event.stopPropagation();
|
|
1198
|
+
focusedId = item.id;
|
|
1199
|
+
treeElement?.focus();
|
|
1200
|
+
setExpandedInternal(item.id, !expandedIds.includes(item.id));
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1174
1203
|
function syncVirtualizedCheckboxElement(element: HTMLInputElement, id: string): void {
|
|
1175
1204
|
const state = selectionStateForId(id);
|
|
1176
1205
|
element.checked = state.checked;
|
|
@@ -1248,6 +1277,20 @@
|
|
|
1248
1277
|
onkeydown={(event) => handleVirtualizedItemKeydown(item, event)}
|
|
1249
1278
|
>
|
|
1250
1279
|
<div class="cinder-tree-item__row" style={`padding-inline-start: ${item.level * 1.25}rem;`}>
|
|
1280
|
+
{#if item.branch && !virtualizedFilterForcedOpen(item)}
|
|
1281
|
+
<button
|
|
1282
|
+
type="button"
|
|
1283
|
+
class="cinder-tree-item__disclosure"
|
|
1284
|
+
aria-label={`${virtualizedItemExpanded(item) ? 'Collapse' : 'Expand'} ${item.label}`}
|
|
1285
|
+
aria-expanded={virtualizedItemExpanded(item)}
|
|
1286
|
+
tabindex="-1"
|
|
1287
|
+
onclick={(event) => handleVirtualizedDisclosureClick(item, event)}
|
|
1288
|
+
>
|
|
1289
|
+
<span aria-hidden="true"></span>
|
|
1290
|
+
</button>
|
|
1291
|
+
{:else}
|
|
1292
|
+
<span class="cinder-tree-item__disclosure-spacer" aria-hidden="true"></span>
|
|
1293
|
+
{/if}
|
|
1251
1294
|
{#if checkboxSelectionActive()}
|
|
1252
1295
|
<input
|
|
1253
1296
|
type="checkbox"
|
|
@@ -1339,7 +1382,7 @@
|
|
|
1339
1382
|
</div>
|
|
1340
1383
|
{/if}
|
|
1341
1384
|
|
|
1342
|
-
{#if
|
|
1385
|
+
{#if onreorder}
|
|
1343
1386
|
<div id={dragInstructionsId} class="cinder-sr-only">
|
|
1344
1387
|
Press Control Shift Space to lift the focused item, or Space from the reorder handle. Use
|
|
1345
1388
|
arrow keys to move. Press Space to drop, Escape to cancel.
|
|
@@ -1358,7 +1401,7 @@
|
|
|
1358
1401
|
priority="polite"
|
|
1359
1402
|
/>
|
|
1360
1403
|
|
|
1361
|
-
{#if
|
|
1404
|
+
{#if onreorder}
|
|
1362
1405
|
<VisuallyHiddenLiveRegion
|
|
1363
1406
|
message={dragAnnouncement}
|
|
1364
1407
|
announcementSequence={dragAnnouncementSequence}
|
|
@@ -69,7 +69,7 @@ type TreeSharedProps = Omit<
|
|
|
69
69
|
/** Controlled filter query. When provided, matching is driven by this value. */
|
|
70
70
|
filterValue?: string;
|
|
71
71
|
/** Fires whenever the built-in search input changes the filter query. */
|
|
72
|
-
|
|
72
|
+
onfilterchange?: (value: string) => void;
|
|
73
73
|
/** Placeholder and accessible label for the built-in search input. Default: 'Search tree'. */
|
|
74
74
|
filterPlaceholder?: string;
|
|
75
75
|
/** Render the built-in search input before the role="tree" element. Default: false. */
|
|
@@ -77,7 +77,7 @@ type TreeSharedProps = Omit<
|
|
|
77
77
|
/** Custom filter predicate. Default: case-insensitive label substring matching. */
|
|
78
78
|
filterPredicate?: TreeFilterPredicate;
|
|
79
79
|
/** Called when a draggable item is dropped before, after, or into another tree item. */
|
|
80
|
-
|
|
80
|
+
onreorder?: (draggedId: string, target: TreeReorderTarget) => void;
|
|
81
81
|
/** Additional CSS class merged with `.cinder-tree`. */
|
|
82
82
|
class?: string;
|
|
83
83
|
/** Optional selection controls rendered before the role="tree" element. */
|
|
@@ -19,14 +19,14 @@ snippet. The flat `@lostgradient/cinder/tree-item` subpath remains exported for
|
|
|
19
19
|
| `branch` | `boolean` | no | — | Marks the node as an expandable branch. A node is a leaf unless it sets `branch` or `loadChildren`; supplying a `children` snippet alone is not enough. Marking the node as a branch lets the tree render the correct expand affordance and `aria-expanded` state before any children exist (for example, before an async `loadChildren` resolves). |
|
|
20
20
|
| `class` | `string` | no | — | Additional CSS class merged with `.cinder-tree-item`. |
|
|
21
21
|
| `disabled` | `boolean` | no | — | When true, the item cannot be selected or actioned. Still keyboard-reachable. |
|
|
22
|
-
| `draggable` | `boolean` | no | — | Render a reorder handle when the parent Tree provides
|
|
22
|
+
| `draggable` | `boolean` | no | — | Render a reorder handle when the parent Tree provides onreorder. |
|
|
23
23
|
| `id` | `string` | yes | — | Stable unique id within the tree. |
|
|
24
24
|
| `label` | `string` | yes | — | Accessible name for the item. Also used as the typeahead key. |
|
|
25
25
|
| `selectionScopeIds` | `string`[] | no | — | Explicit selectable ids controlled by this item in cascade checkbox-selection mode. |
|
|
26
26
|
| `children` | `(opaque)` | no | — | Nested TreeItem children for branch nodes. Not expressible in JSON Schema; see the component types for the signature. |
|
|
27
|
-
| `loadChildren` | `(opaque)` | no | — | Async loader called the first time the item is expanded. Implies `branch=true`. The loader mutates consumer-owned reactive state; it returns no data. Errors are forwarded to `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
27
|
+
| `loadChildren` | `(opaque)` | no | — | Async loader called the first time the item is expanded. Implies `branch=true`. The loader mutates consumer-owned reactive state; it returns no data. Errors are forwarded to `onloaderror` if provided, otherwise logged via `console.error` with a `[cinder-tree]` prefix. Not expressible in JSON Schema; see the component types for the signature. |
|
|
28
|
+
| `onloaderror` | `(opaque)` | no | — | Called when `loadChildren` rejects with a non-abort error. Not expressible in JSON Schema; see the component types for the signature. |
|
|
29
|
+
| `onrename` | `(opaque)` | no | — | Called when inline label editing commits a new label. Not expressible in JSON Schema; see the component types for the signature. |
|
|
30
30
|
| `row` | `(opaque)` | no | — | Optional row content snippet override. Default renders `label`. Not expressible in JSON Schema; see the component types for the signature. |
|
|
31
31
|
|
|
32
32
|
<!-- generated:props:end -->
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
draggable = false,
|
|
46
46
|
branch = false,
|
|
47
47
|
loadChildren,
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
onloaderror,
|
|
49
|
+
onrename,
|
|
50
50
|
selectionScopeIds,
|
|
51
51
|
row,
|
|
52
52
|
children,
|
|
@@ -105,6 +105,8 @@
|
|
|
105
105
|
const isExpanded = $derived(context.expandedIds.includes(id));
|
|
106
106
|
const isSelected = $derived(context.selectedIds.includes(id));
|
|
107
107
|
const isFocused = $derived(context.focusedId === id);
|
|
108
|
+
const positionInSet = $derived(context.positionInSet(id));
|
|
109
|
+
const setSize = $derived(context.setSize(id));
|
|
108
110
|
const isFiltering = $derived(context.filtering);
|
|
109
111
|
const isVisible = $derived(
|
|
110
112
|
!isFiltering ||
|
|
@@ -113,6 +115,7 @@
|
|
|
113
115
|
);
|
|
114
116
|
const hasVisibleDescendant = $derived(context.hasVisibleDescendant(id));
|
|
115
117
|
const renderedExpanded = $derived(isExpanded || (isFiltering && hasVisibleDescendant));
|
|
118
|
+
const filterForcedOpen = $derived(isBranch && isFiltering && hasVisibleDescendant && !isExpanded);
|
|
116
119
|
const shouldProbeFilterChildren = $derived(
|
|
117
120
|
isBranch && isFiltering && !isExpanded && probedFilterValue !== context.filterValue,
|
|
118
121
|
);
|
|
@@ -122,7 +125,7 @@
|
|
|
122
125
|
const checkboxSelectionActive = $derived(context.checkboxSelectionActive());
|
|
123
126
|
const selectionState = $derived(context.selectionStateFor(id));
|
|
124
127
|
const labelSegments = $derived.by(() => splitLabelForHighlight(label, context.filterValue));
|
|
125
|
-
const canRename = $derived(!disabled &&
|
|
128
|
+
const canRename = $derived(!disabled && onrename != null);
|
|
126
129
|
const editingLabel = $derived(`Editing: ${label}`);
|
|
127
130
|
const dragController = $derived(context.dragController);
|
|
128
131
|
const canDrag = $derived(draggable && !disabled && dragController != null);
|
|
@@ -248,8 +251,8 @@
|
|
|
248
251
|
loaded = false;
|
|
249
252
|
// Collapse the branch on error
|
|
250
253
|
context.setExpanded(id, false);
|
|
251
|
-
if (
|
|
252
|
-
|
|
254
|
+
if (onloaderror) {
|
|
255
|
+
onloaderror(error, id);
|
|
253
256
|
} else {
|
|
254
257
|
console.error('[cinder-tree] loadChildren failed for item', id, error);
|
|
255
258
|
}
|
|
@@ -352,7 +355,7 @@
|
|
|
352
355
|
announceRename(`Editing ${label}. Press Enter to confirm, Escape to cancel.`);
|
|
353
356
|
}
|
|
354
357
|
|
|
355
|
-
function finishEdit(afterFocus
|
|
358
|
+
function finishEdit(afterFocus: (() => void) | undefined = undefined): void {
|
|
356
359
|
editing = false;
|
|
357
360
|
renameError = '';
|
|
358
361
|
renamePending = false;
|
|
@@ -368,7 +371,7 @@
|
|
|
368
371
|
finishEdit();
|
|
369
372
|
}
|
|
370
373
|
|
|
371
|
-
async function commitEdit(afterFocus
|
|
374
|
+
async function commitEdit(afterFocus: (() => void) | undefined = undefined): Promise<boolean> {
|
|
372
375
|
if (!editing || renamePending) return false;
|
|
373
376
|
|
|
374
377
|
if (editValue.trim().length === 0) {
|
|
@@ -378,7 +381,7 @@
|
|
|
378
381
|
return false;
|
|
379
382
|
}
|
|
380
383
|
|
|
381
|
-
if (!
|
|
384
|
+
if (!onrename) {
|
|
382
385
|
finishEdit(afterFocus);
|
|
383
386
|
return true;
|
|
384
387
|
}
|
|
@@ -386,7 +389,7 @@
|
|
|
386
389
|
renamePending = true;
|
|
387
390
|
renameError = '';
|
|
388
391
|
try {
|
|
389
|
-
await
|
|
392
|
+
await onrename(id, editValue);
|
|
390
393
|
announceRename(`${editValue}, renamed.`);
|
|
391
394
|
finishEdit(afterFocus);
|
|
392
395
|
return true;
|
|
@@ -671,14 +674,24 @@
|
|
|
671
674
|
|
|
672
675
|
if (event.detail > 1) return;
|
|
673
676
|
|
|
674
|
-
if (
|
|
677
|
+
if (disabled) {
|
|
678
|
+
if (isBranch) context.setExpanded(id, !isExpanded);
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
if (!checkboxSelectionActive) context.toggleSelected(id, event);
|
|
675
683
|
|
|
676
684
|
if (isBranch && !event.shiftKey && !event.metaKey && !event.ctrlKey) {
|
|
677
|
-
// Plain click on a branch row toggles expand, including disabled branches.
|
|
678
685
|
context.setExpanded(id, !isExpanded);
|
|
679
686
|
}
|
|
680
687
|
}
|
|
681
688
|
|
|
689
|
+
function handleDisclosureClick(event: MouseEvent): void {
|
|
690
|
+
event.stopPropagation();
|
|
691
|
+
outerElement?.focus();
|
|
692
|
+
context.setExpanded(id, !isExpanded);
|
|
693
|
+
}
|
|
694
|
+
|
|
682
695
|
function handleLabelDoubleClick(event: MouseEvent): void {
|
|
683
696
|
event.preventDefault();
|
|
684
697
|
event.stopPropagation();
|
|
@@ -754,6 +767,8 @@
|
|
|
754
767
|
aria-labelledby={editing ? undefined : `${treeItemElementId}-label`}
|
|
755
768
|
aria-level={level}
|
|
756
769
|
aria-expanded={isBranch ? renderedExpanded : undefined}
|
|
770
|
+
aria-posinset={positionInSet}
|
|
771
|
+
aria-setsize={setSize}
|
|
757
772
|
aria-selected={context.selectionMode === 'none' || checkboxSelectionActive
|
|
758
773
|
? undefined
|
|
759
774
|
: isSelected}
|
|
@@ -778,6 +793,21 @@
|
|
|
778
793
|
>
|
|
779
794
|
<span id={`${treeItemElementId}-label`} class="cinder-sr-only">{label}</span>
|
|
780
795
|
<div class="cinder-tree-item__row">
|
|
796
|
+
{#if isBranch && !filterForcedOpen}
|
|
797
|
+
<button
|
|
798
|
+
type="button"
|
|
799
|
+
class="cinder-tree-item__disclosure"
|
|
800
|
+
aria-label={`${renderedExpanded ? 'Collapse' : 'Expand'} ${label}`}
|
|
801
|
+
aria-expanded={renderedExpanded}
|
|
802
|
+
tabindex="-1"
|
|
803
|
+
onclick={handleDisclosureClick}
|
|
804
|
+
>
|
|
805
|
+
<span aria-hidden="true"></span>
|
|
806
|
+
</button>
|
|
807
|
+
{:else}
|
|
808
|
+
<span class="cinder-tree-item__disclosure-spacer" aria-hidden="true"></span>
|
|
809
|
+
{/if}
|
|
810
|
+
|
|
781
811
|
{#if canDrag}
|
|
782
812
|
<button
|
|
783
813
|
bind:this={dragHandleElement}
|
|
@@ -885,7 +915,7 @@
|
|
|
885
915
|
{@render children?.()}
|
|
886
916
|
</div>
|
|
887
917
|
{/if}
|
|
888
|
-
{#if
|
|
918
|
+
{#if onrename}
|
|
889
919
|
<VisuallyHiddenLiveRegion
|
|
890
920
|
message={renameAnnouncement}
|
|
891
921
|
announcementSequence={renameAnnouncementSequence}
|