@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
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
* @cinder
|
|
4
4
|
* @category feedback
|
|
5
5
|
* @status stable
|
|
6
|
-
* @purpose
|
|
6
|
+
* @purpose Colored dot indicator that communicates static entity state or live realtime connection state with an accessible text label.
|
|
7
|
+
* @tag connection
|
|
7
8
|
* @tag feedback
|
|
9
|
+
* @tag realtime
|
|
8
10
|
* @tag status
|
|
9
11
|
* @useWhen Indicating the current state of a list row, user, deployment, or other entity alongside its name.
|
|
10
12
|
* @useWhen Communicating status compactly when many indicators appear together without triggering live-region announcements.
|
|
13
|
+
* @useWhen Surfacing whether a realtime channel is connected, connecting, disconnected, or errored on a dashboard or app chrome.
|
|
14
|
+
* @useWhen Giving operators an at-a-glance health signal for a long-lived transport.
|
|
11
15
|
* @avoidWhen Counting items or showing a numeric value — use badge instead.
|
|
12
16
|
* @avoidWhen Announcing a transient status change — use toast-region or alert so assistive tech reads it.
|
|
13
17
|
* @related badge
|
|
@@ -17,11 +21,31 @@
|
|
|
17
21
|
|
|
18
22
|
<script lang="ts">
|
|
19
23
|
import { classNames } from '../../utilities/class-names.ts';
|
|
20
|
-
import type {
|
|
24
|
+
import type {
|
|
25
|
+
StatusDotConnectionState,
|
|
26
|
+
StatusDotProps,
|
|
27
|
+
StatusDotStatus,
|
|
28
|
+
} from './status-dot.types.ts';
|
|
29
|
+
|
|
30
|
+
const connectionStatusMap: Record<StatusDotConnectionState, StatusDotStatus> = {
|
|
31
|
+
connected: 'online',
|
|
32
|
+
connecting: 'warning',
|
|
33
|
+
disconnected: 'offline',
|
|
34
|
+
error: 'danger',
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const connectionLabels: Record<StatusDotConnectionState, string> = {
|
|
38
|
+
connected: 'Connected',
|
|
39
|
+
connecting: 'Connecting',
|
|
40
|
+
disconnected: 'Disconnected',
|
|
41
|
+
error: 'Error',
|
|
42
|
+
};
|
|
21
43
|
|
|
22
44
|
let {
|
|
23
45
|
status,
|
|
46
|
+
connectionState,
|
|
24
47
|
label,
|
|
48
|
+
live,
|
|
25
49
|
showLabel = true,
|
|
26
50
|
size = 'md',
|
|
27
51
|
class: className,
|
|
@@ -30,12 +54,28 @@
|
|
|
30
54
|
}: StatusDotProps = $props();
|
|
31
55
|
|
|
32
56
|
const normalizedAriaLabel = $derived(ariaLabel?.trim() ? ariaLabel.trim() : undefined);
|
|
33
|
-
const
|
|
57
|
+
const resolvedStatus = $derived(
|
|
58
|
+
status ?? (connectionState === undefined ? 'neutral' : connectionStatusMap[connectionState]),
|
|
59
|
+
);
|
|
60
|
+
const resolvedLive = $derived(live ?? connectionState !== undefined);
|
|
61
|
+
const normalizedLabel = $derived(
|
|
62
|
+
label?.trim()
|
|
63
|
+
? label.trim()
|
|
64
|
+
: connectionState === undefined
|
|
65
|
+
? undefined
|
|
66
|
+
: connectionLabels[connectionState],
|
|
67
|
+
);
|
|
34
68
|
const hasVisibleLabel = $derived(showLabel && normalizedLabel !== undefined);
|
|
35
69
|
|
|
36
70
|
// `role="img"` needs an author-provided name. Blank labels are treated as
|
|
37
71
|
// absent so status is never communicated by color alone.
|
|
38
|
-
const resolvedAriaLabel = $derived(normalizedAriaLabel ?? normalizedLabel ??
|
|
72
|
+
const resolvedAriaLabel = $derived(normalizedAriaLabel ?? normalizedLabel ?? resolvedStatus);
|
|
73
|
+
const visibleLabelIsLiveDuplicate = $derived(
|
|
74
|
+
resolvedLive && normalizedLabel !== undefined && resolvedAriaLabel !== normalizedLabel,
|
|
75
|
+
);
|
|
76
|
+
const needsHiddenLiveLabel = $derived(
|
|
77
|
+
resolvedLive && (!hasVisibleLabel || visibleLabelIsLiveDuplicate),
|
|
78
|
+
);
|
|
39
79
|
</script>
|
|
40
80
|
|
|
41
81
|
<!--
|
|
@@ -51,13 +91,22 @@
|
|
|
51
91
|
<span
|
|
52
92
|
{...rest}
|
|
53
93
|
class={classNames('cinder-status-dot', className)}
|
|
54
|
-
data-cinder-status={
|
|
94
|
+
data-cinder-status={resolvedStatus}
|
|
95
|
+
data-cinder-state={connectionState}
|
|
55
96
|
data-cinder-size={size}
|
|
56
|
-
role=
|
|
57
|
-
aria-
|
|
97
|
+
role={resolvedLive ? 'status' : 'img'}
|
|
98
|
+
aria-live={resolvedLive ? 'polite' : undefined}
|
|
99
|
+
aria-atomic={resolvedLive ? 'true' : undefined}
|
|
100
|
+
aria-label={resolvedLive ? undefined : resolvedAriaLabel}
|
|
58
101
|
>
|
|
59
102
|
<span class="cinder-status-dot__indicator" aria-hidden="true"></span>
|
|
60
103
|
{#if hasVisibleLabel}
|
|
61
|
-
<span
|
|
104
|
+
<span
|
|
105
|
+
class="cinder-status-dot__label"
|
|
106
|
+
aria-hidden={visibleLabelIsLiveDuplicate ? 'true' : undefined}>{normalizedLabel}</span
|
|
107
|
+
>
|
|
108
|
+
{/if}
|
|
109
|
+
{#if needsHiddenLiveLabel}
|
|
110
|
+
<span class="cinder-sr-only">{resolvedAriaLabel}</span>
|
|
62
111
|
{/if}
|
|
63
112
|
</span>
|
|
@@ -6,7 +6,7 @@ import type { HTMLAttributes } from 'svelte/elements';
|
|
|
6
6
|
* The string values are stamped onto the root as `data-cinder-status` and
|
|
7
7
|
* drive color exclusively via CSS — there are no hard-coded color classes
|
|
8
8
|
* on the component. The token mapping (e.g. `online` → `--cinder-success`,
|
|
9
|
-
* `
|
|
9
|
+
* `danger` → `--cinder-danger`) lives in `status-dot.css` so consumers can
|
|
10
10
|
* theme without forking the component.
|
|
11
11
|
*
|
|
12
12
|
* - `success` maps to `--cinder-success` (same hue as `online`).
|
|
@@ -19,7 +19,7 @@ export type StatusDotStatus =
|
|
|
19
19
|
| 'online'
|
|
20
20
|
| 'offline'
|
|
21
21
|
| 'warning'
|
|
22
|
-
| '
|
|
22
|
+
| 'danger'
|
|
23
23
|
| 'pending'
|
|
24
24
|
| 'neutral'
|
|
25
25
|
| 'success'
|
|
@@ -27,6 +27,9 @@ export type StatusDotStatus =
|
|
|
27
27
|
|
|
28
28
|
export type StatusDotSize = 'sm' | 'md';
|
|
29
29
|
|
|
30
|
+
/** Realtime connection states that StatusDot can render as a live-region preset. */
|
|
31
|
+
export type StatusDotConnectionState = 'connected' | 'connecting' | 'disconnected' | 'error';
|
|
32
|
+
|
|
30
33
|
/**
|
|
31
34
|
* Props for StatusDot.
|
|
32
35
|
*
|
|
@@ -37,10 +40,14 @@ export type StatusDotSize = 'sm' | 'md';
|
|
|
37
40
|
* fallback.
|
|
38
41
|
*/
|
|
39
42
|
export type StatusDotProps = Omit<HTMLAttributes<HTMLSpanElement>, 'class'> & {
|
|
40
|
-
/**
|
|
41
|
-
status
|
|
43
|
+
/** Semantic status. Drives color via `data-cinder-status`; defaults to a neutral dot or derives from `connectionState`. */
|
|
44
|
+
status?: StatusDotStatus;
|
|
45
|
+
/** Realtime connection preset. Sets status, default label, and live-region semantics. */
|
|
46
|
+
connectionState?: StatusDotConnectionState;
|
|
42
47
|
/** Optional human label. Rendered visibly when `showLabel` is true; used as the accessible name either way. */
|
|
43
48
|
label?: string;
|
|
49
|
+
/** Use role="status" with polite live-region attributes. Defaults true when connectionState is provided. */
|
|
50
|
+
live?: boolean;
|
|
44
51
|
/** Whether to render the visible label. Default `true`. */
|
|
45
52
|
showLabel?: boolean;
|
|
46
53
|
/** Dot size. Default `'md'`. */
|
|
@@ -50,12 +57,16 @@ export type StatusDotProps = Omit<HTMLAttributes<HTMLSpanElement>, 'class'> & {
|
|
|
50
57
|
};
|
|
51
58
|
|
|
52
59
|
export interface StatusDotSchemaProps {
|
|
53
|
-
/**
|
|
54
|
-
status
|
|
60
|
+
/** Semantic status. Drives color via `data-cinder-status`; defaults to a neutral dot or derives from `connectionState`. `success` maps to `--cinder-success`; `accent` maps to `--cinder-accent`. */
|
|
61
|
+
status?: StatusDotStatus;
|
|
62
|
+
/** Realtime connection preset. Sets status, default label, and live-region semantics. */
|
|
63
|
+
connectionState?: StatusDotConnectionState;
|
|
55
64
|
/** Optional human label. Rendered visibly when `showLabel` is true; used as the accessible name either way. */
|
|
56
65
|
label?: string;
|
|
57
66
|
/** Whether to render the visible label. @default true */
|
|
58
67
|
showLabel?: boolean;
|
|
68
|
+
/** Use role="status" with polite live-region attributes. Defaults true when connectionState is provided. */
|
|
69
|
+
live?: boolean;
|
|
59
70
|
/** Dot size. @default "md" */
|
|
60
71
|
size?: StatusDotSize;
|
|
61
72
|
/** Extra classes appended to the root element. */
|
|
@@ -191,14 +191,14 @@
|
|
|
191
191
|
/* Ring uses --cinder-ring-color: the bright fill-accent (L 0.72) is only
|
|
192
192
|
~1.8:1 against the white marker surface, so the current-step indicator
|
|
193
193
|
would be near-invisible in light mode. */
|
|
194
|
-
box-shadow: 0 0 0
|
|
194
|
+
box-shadow: 0 0 0 var(--cinder-ring-width) var(--cinder-ring-color);
|
|
195
195
|
color: var(--cinder-accent-text);
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
@media (forced-colors: active) {
|
|
199
199
|
[data-cinder-state='current'] .cinder-steps__marker {
|
|
200
|
-
outline:
|
|
201
|
-
outline-offset:
|
|
200
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
201
|
+
outline-offset: var(--cinder-ring-width);
|
|
202
202
|
box-shadow: none;
|
|
203
203
|
}
|
|
204
204
|
}
|
|
@@ -162,6 +162,16 @@
|
|
|
162
162
|
z-index: 2;
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
+
@media (forced-colors: active) {
|
|
166
|
+
.cinder-table__sort-button:focus-visible {
|
|
167
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
168
|
+
/* 2px is correct here: sort-button has border:none so there is no
|
|
169
|
+
ButtonBorder to merge with at 2px. */
|
|
170
|
+
outline-offset: 2px;
|
|
171
|
+
box-shadow: none;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
165
175
|
@media (hover: hover) {
|
|
166
176
|
.cinder-table__sort-button:hover {
|
|
167
177
|
background: var(--cinder-surface-hover);
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"id": "selection",
|
|
20
20
|
"title": "Selectable rows",
|
|
21
21
|
"description": "Table with a select-all checkbox in the header and per-row selection. One row is explicitly disabled from selection.",
|
|
22
|
-
"code": "<script lang=\"ts\">\n import { Table } from '@lostgradient/cinder/table';\n const people = [\n {\n id: '1',\n name: 'Ada Lovelace',\n role: 'Mathematician',\n commits: 142,\n selectionDisabled: false,\n },\n {\n id: '2',\n name: 'Grace Hopper',\n role: 'Computer Scientist',\n commits: 98,\n selectionDisabled: false,\n },\n { id: '3', name: 'Alan Turing', role: 'Cryptanalyst', commits: 76, selectionDisabled: true },\n ];\n\n let selectedIds = $state(new Set<string>());\n\n const selectableRows = $derived(people.filter((p) => !p.selectionDisabled));\n const allSelected = $derived(\n selectableRows.length > 0 && selectableRows.every((p) => selectedIds.has(p.id)),\n );\n const someSelected = $derived(selectableRows.some((p) => selectedIds.has(p.id)));\n\n function onSelectAll(next: boolean): void {\n if (next) {\n selectedIds = new Set(selectableRows.map((p) => p.id));\n } else {\n selectedIds = new Set();\n }\n }\n\n function onRowChange(id: string, next: boolean): void {\n const updated = new Set(selectedIds);\n if (next) {\n updated.add(id);\n } else {\n updated.delete(id);\n }\n selectedIds = updated;\n }\n</script>\n\n<Table caption=\"Recent contributors\" selectable>\n <Table.Header\n {allSelected}\n {someSelected}\n {onSelectAll}\n selectAllLabel=\"Select all selectable rows\"\n >\n <Table.Row>\n <Table.HeaderCell>Name</Table.HeaderCell>\n <Table.HeaderCell>Role</Table.HeaderCell>\n <Table.HeaderCell align=\"right\">Commits</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {#each people as person (person.id)}\n {#if person.selectionDisabled}\n <Table.Row selectionDisabled={true}>\n <Table.Cell>{person.name}</Table.Cell>\n <Table.Cell>{person.role}</Table.Cell>\n <Table.Cell align=\"right\">{person.commits}</Table.Cell>\n </Table.Row>\n {:else}\n <Table.Row\n selected={selectedIds.has(person.id)}\n
|
|
22
|
+
"code": "<script lang=\"ts\">\n import { Table } from '@lostgradient/cinder/table';\n const people = [\n {\n id: '1',\n name: 'Ada Lovelace',\n role: 'Mathematician',\n commits: 142,\n selectionDisabled: false,\n },\n {\n id: '2',\n name: 'Grace Hopper',\n role: 'Computer Scientist',\n commits: 98,\n selectionDisabled: false,\n },\n { id: '3', name: 'Alan Turing', role: 'Cryptanalyst', commits: 76, selectionDisabled: true },\n ];\n\n let selectedIds = $state(new Set<string>());\n\n const selectableRows = $derived(people.filter((p) => !p.selectionDisabled));\n const allSelected = $derived(\n selectableRows.length > 0 && selectableRows.every((p) => selectedIds.has(p.id)),\n );\n const someSelected = $derived(selectableRows.some((p) => selectedIds.has(p.id)));\n\n function onSelectAll(next: boolean): void {\n if (next) {\n selectedIds = new Set(selectableRows.map((p) => p.id));\n } else {\n selectedIds = new Set();\n }\n }\n\n function onRowChange(id: string, next: boolean): void {\n const updated = new Set(selectedIds);\n if (next) {\n updated.add(id);\n } else {\n updated.delete(id);\n }\n selectedIds = updated;\n }\n</script>\n\n<Table caption=\"Recent contributors\" selectable>\n <Table.Header\n {allSelected}\n {someSelected}\n onselectall={onSelectAll}\n selectAllLabel=\"Select all selectable rows\"\n >\n <Table.Row>\n <Table.HeaderCell>Name</Table.HeaderCell>\n <Table.HeaderCell>Role</Table.HeaderCell>\n <Table.HeaderCell align=\"right\">Commits</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {#each people as person (person.id)}\n {#if person.selectionDisabled}\n <Table.Row selectionDisabled={true}>\n <Table.Cell>{person.name}</Table.Cell>\n <Table.Cell>{person.role}</Table.Cell>\n <Table.Cell align=\"right\">{person.commits}</Table.Cell>\n </Table.Row>\n {:else}\n <Table.Row\n selected={selectedIds.has(person.id)}\n onselectedchange={(next) => onRowChange(person.id, next)}\n selectionLabel={`Select ${person.name}`}\n >\n <Table.Cell>{person.name}</Table.Cell>\n <Table.Cell>{person.role}</Table.Cell>\n <Table.Cell align=\"right\">{person.commits}</Table.Cell>\n </Table.Row>\n {/if}\n {/each}\n </Table.Body>\n</Table>\n\n{#if selectedIds.size > 0}\n <p style=\"margin-top: 0.75rem; font-size: 0.875rem; color: var(--cinder-text-muted)\">\n {selectedIds.size} row{selectedIds.size !== 1 ? 's' : ''} selected\n </p>\n{/if}\n"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"id": "sticky-sortable",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
{ box: 'border-box', enabled: () => stickyHeader },
|
|
63
63
|
);
|
|
64
64
|
|
|
65
|
-
function
|
|
65
|
+
function onsortchange(column: string): void {
|
|
66
66
|
if (!sort || sort.column !== column) {
|
|
67
67
|
sort = { column, direction: 'ascending' };
|
|
68
68
|
return;
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
get selectionEnabled() {
|
|
82
82
|
return selectable;
|
|
83
83
|
},
|
|
84
|
-
|
|
84
|
+
onsortchange,
|
|
85
85
|
});
|
|
86
86
|
</script>
|
|
87
87
|
|
|
@@ -20,13 +20,13 @@ export type TableSectionContext = 'header' | 'body';
|
|
|
20
20
|
export type TableHeaderSelectionContext = {
|
|
21
21
|
readonly allSelected: boolean;
|
|
22
22
|
readonly someSelected: boolean;
|
|
23
|
-
readonly
|
|
23
|
+
readonly onselectall: (next: boolean) => void;
|
|
24
24
|
readonly selectAllLabel: string;
|
|
25
25
|
claimSelectionHeaderCell: () => void;
|
|
26
26
|
};
|
|
27
27
|
/**
|
|
28
28
|
* Shape of the table context provided to child components. Header cells call
|
|
29
|
-
* `
|
|
29
|
+
* `onsortchange` with their column key when activated; the table propagates
|
|
30
30
|
* the new sort state to its bindable `sort` prop. Children read
|
|
31
31
|
* `selectionEnabled` to render the leading selection cell.
|
|
32
32
|
*
|
|
@@ -36,7 +36,7 @@ export type TableHeaderSelectionContext = {
|
|
|
36
36
|
*/
|
|
37
37
|
export type TableContext = {
|
|
38
38
|
readonly sort: TableSort | undefined;
|
|
39
|
-
|
|
39
|
+
onsortchange: (column: string) => void;
|
|
40
40
|
/** Mirror of Table.selectable. Set synchronously at construction time. */
|
|
41
41
|
readonly selectionEnabled?: boolean;
|
|
42
42
|
};
|
|
@@ -19,9 +19,9 @@ snippet. The flat `@lostgradient/cinder/table-header` subpath remains exported f
|
|
|
19
19
|
| `allSelected` | `boolean` | no | — | Checked state for the select-all checkbox. Required when `Table.selectable` is true. |
|
|
20
20
|
| `class` | `string` | no | — | Additional class names merged with `.cinder-table__header`. |
|
|
21
21
|
| `selectAllLabel` | `string` | no | — | Accessible name for the select-all checkbox. Defaults to "Select all rows". When the table contains rows with `selectionDisabled={true}`, pass a more accurate label such as "Select all selectable rows". |
|
|
22
|
-
| `someSelected` | `boolean` | no | — | When true and `allSelected` is false, the select-all checkbox renders as indeterminate. The browser exposes that as `aria-checked="mixed"` to assistive tech. Required (alongside `allSelected` and `
|
|
22
|
+
| `someSelected` | `boolean` | no | — | When true and `allSelected` is false, the select-all checkbox renders as indeterminate. The browser exposes that as `aria-checked="mixed"` to assistive tech. Required (alongside `allSelected` and `onselectall`) when `Table.selectable` is true for accurate checkbox state. |
|
|
23
23
|
| `children` | `(opaque)` | yes | — | TableRow children — typically a single header row. Not expressible in JSON Schema; see the component types for the signature. |
|
|
24
|
-
| `
|
|
24
|
+
| `onselectall` | `(opaque)` | no | — | Called when the user activates the select-all checkbox. Required when `Table.selectable` is true. Not expressible in JSON Schema; see the component types for the signature. |
|
|
25
25
|
|
|
26
26
|
<!-- generated:props:end -->
|
|
27
27
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
children,
|
|
30
30
|
allSelected,
|
|
31
31
|
someSelected,
|
|
32
|
-
|
|
32
|
+
onselectall,
|
|
33
33
|
selectAllLabel = 'Select all rows',
|
|
34
34
|
}: TableHeaderProps = $props();
|
|
35
35
|
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
// One-time mount-time guard; read the props untracked.
|
|
40
40
|
if (
|
|
41
41
|
selectionEnabled &&
|
|
42
|
-
untrack(() => allSelected === undefined || someSelected === undefined || !
|
|
42
|
+
untrack(() => allSelected === undefined || someSelected === undefined || !onselectall)
|
|
43
43
|
) {
|
|
44
44
|
throw new Error(
|
|
45
|
-
'[Cinder] TableHeader: `allSelected`, `someSelected`, and `
|
|
45
|
+
'[Cinder] TableHeader: `allSelected`, `someSelected`, and `onselectall` are required when Table.selectable is true.',
|
|
46
46
|
);
|
|
47
47
|
}
|
|
48
48
|
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
get someSelected() {
|
|
67
67
|
return someSelected ?? false;
|
|
68
68
|
},
|
|
69
|
-
get
|
|
70
|
-
return
|
|
69
|
+
get onselectall() {
|
|
70
|
+
return onselectall ?? (() => {});
|
|
71
71
|
},
|
|
72
72
|
get selectAllLabel() {
|
|
73
73
|
return selectAllLabel;
|
|
@@ -9,12 +9,12 @@ export type TableHeaderProps = {
|
|
|
9
9
|
/**
|
|
10
10
|
* When true and `allSelected` is false, the select-all checkbox renders as indeterminate.
|
|
11
11
|
* The browser exposes that as `aria-checked="mixed"` to assistive tech.
|
|
12
|
-
* Required (alongside `allSelected` and `
|
|
12
|
+
* Required (alongside `allSelected` and `onselectall`) when `Table.selectable`
|
|
13
13
|
* is true for accurate checkbox state.
|
|
14
14
|
*/
|
|
15
15
|
someSelected?: boolean;
|
|
16
16
|
/** Called when the user activates the select-all checkbox. Required when `Table.selectable` is true. */
|
|
17
|
-
|
|
17
|
+
onselectall?: (next: boolean) => void;
|
|
18
18
|
/**
|
|
19
19
|
* Accessible name for the select-all checkbox. Defaults to "Select all rows".
|
|
20
20
|
* When the table contains rows with `selectionDisabled={true}`, pass a more
|
|
@@ -48,10 +48,16 @@
|
|
|
48
48
|
? 'none'
|
|
49
49
|
: undefined,
|
|
50
50
|
);
|
|
51
|
+
const nextSortDescription = $derived(
|
|
52
|
+
ariaSort === 'ascending' ? 'Activate to sort descending' : 'Activate to sort ascending',
|
|
53
|
+
);
|
|
54
|
+
const sortButtonDescriptionAttributes = $derived({
|
|
55
|
+
'aria-description': nextSortDescription,
|
|
56
|
+
});
|
|
51
57
|
|
|
52
58
|
function handleClick(): void {
|
|
53
59
|
if (!sortable || !column) return;
|
|
54
|
-
table.
|
|
60
|
+
table.onsortchange(column);
|
|
55
61
|
}
|
|
56
62
|
</script>
|
|
57
63
|
|
|
@@ -64,7 +70,12 @@
|
|
|
64
70
|
aria-sort={ariaSort}
|
|
65
71
|
>
|
|
66
72
|
{#if isSortable}
|
|
67
|
-
<button
|
|
73
|
+
<button
|
|
74
|
+
{...sortButtonDescriptionAttributes}
|
|
75
|
+
type="button"
|
|
76
|
+
class="cinder-table__sort-button"
|
|
77
|
+
onclick={handleClick}
|
|
78
|
+
>
|
|
68
79
|
{@render children()}
|
|
69
80
|
<span
|
|
70
81
|
class="cinder-table__sort-indicator"
|
|
@@ -17,11 +17,11 @@ snippet. The flat `@lostgradient/cinder/table-row` subpath remains exported for
|
|
|
17
17
|
| Prop | Type | Required | Default | Description |
|
|
18
18
|
| ------------------- | ---------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
19
19
|
| `class` | `string` | no | — | Additional class names merged with `.cinder-table__row`. |
|
|
20
|
-
| `selected` | `boolean` | no | — | Whether the row's selection checkbox is checked. Required in selectable tables alongside `
|
|
20
|
+
| `selected` | `boolean` | no | — | Whether the row's selection checkbox is checked. Required in selectable tables alongside `onselectedchange` and `selectionLabel`. |
|
|
21
21
|
| `selectionDisabled` | `boolean` | no | — | When true, renders a disabled selection checkbox for this row, preventing selection while keeping the alignment cell. |
|
|
22
22
|
| `selectionLabel` | `string` | no | — | Accessible name for the disabled selection checkbox. Provide a localised string to override the English default ("Selection not allowed for this row"). The library cannot localise on the consumer's behalf, so this is the seam for non-English applications or custom phrasing. |
|
|
23
23
|
| `children` | `(opaque)` | yes | — | Cell children (TableCell or TableHeaderCell). Not expressible in JSON Schema; see the component types for the signature. |
|
|
24
|
-
| `
|
|
24
|
+
| `onselectedchange` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
|
|
25
25
|
|
|
26
26
|
<!-- generated:props:end -->
|
|
27
27
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
class: className,
|
|
31
31
|
children,
|
|
32
32
|
selected,
|
|
33
|
-
|
|
33
|
+
onselectedchange,
|
|
34
34
|
selectionLabel,
|
|
35
35
|
selectionDisabled,
|
|
36
36
|
...rest
|
|
@@ -50,13 +50,13 @@
|
|
|
50
50
|
if (!hasDisabled) {
|
|
51
51
|
// All three must be present — reject partial trios.
|
|
52
52
|
const hasSelected = selected !== undefined;
|
|
53
|
-
const hasOnChange =
|
|
53
|
+
const hasOnChange = onselectedchange !== undefined;
|
|
54
54
|
const hasLabel = selectionLabel !== undefined;
|
|
55
55
|
if (!hasSelected || !hasOnChange || !hasLabel) {
|
|
56
56
|
throw new Error(
|
|
57
57
|
'[Cinder] TableRow: when Table.selectable is true, each body row must supply ' +
|
|
58
|
-
'selected +
|
|
59
|
-
`Missing: ${[!hasSelected && 'selected', !hasOnChange && '
|
|
58
|
+
'selected + onselectedchange + selectionLabel together, or set selectionDisabled={true}. ' +
|
|
59
|
+
`Missing: ${[!hasSelected && 'selected', !hasOnChange && 'onselectedchange', !hasLabel && 'selectionLabel'].filter(Boolean).join(', ')}.`,
|
|
60
60
|
);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -73,12 +73,12 @@
|
|
|
73
73
|
|
|
74
74
|
function handleSelectAllChange(event: Event): void {
|
|
75
75
|
const input = event.currentTarget as HTMLInputElement;
|
|
76
|
-
headerSelection?.
|
|
76
|
+
headerSelection?.onselectall(input.checked);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
function handleRowChange(event: Event): void {
|
|
80
80
|
const input = event.currentTarget as HTMLInputElement;
|
|
81
|
-
|
|
81
|
+
onselectedchange?.(input.checked);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
const shouldRenderHeaderSelectionCell =
|
|
@@ -4,7 +4,7 @@ import type { HTMLAttributes } from 'svelte/elements';
|
|
|
4
4
|
/**
|
|
5
5
|
* Discriminated union for row selection props.
|
|
6
6
|
*
|
|
7
|
-
* - Active branch: supply `selected` + `
|
|
7
|
+
* - Active branch: supply `selected` + `onselectedchange` + `selectionLabel`.
|
|
8
8
|
* - Opt-out branch: supply `selectionDisabled: true` — renders an empty alignment cell.
|
|
9
9
|
* - Inert branch: supply nothing — only valid when `Table.selectable` is false or
|
|
10
10
|
* the row is inside `TableHeader`.
|
|
@@ -13,13 +13,13 @@ import type { HTMLAttributes } from 'svelte/elements';
|
|
|
13
13
|
* object at destructuring time. TypeScript cannot narrow the active vs inert
|
|
14
14
|
* branch after destructuring. Runtime validation enforces the contract when
|
|
15
15
|
* `Table.selectable` is true — both `selected` and `selectionLabel` are
|
|
16
|
-
* required together and `
|
|
16
|
+
* required together and `onselectedchange` must be present.
|
|
17
17
|
*/
|
|
18
18
|
export type TableRowSelectionProps =
|
|
19
19
|
| {
|
|
20
|
-
/** Whether the row's selection checkbox is checked. Required in selectable tables alongside `
|
|
20
|
+
/** Whether the row's selection checkbox is checked. Required in selectable tables alongside `onselectedchange` and `selectionLabel`. */
|
|
21
21
|
selected: boolean;
|
|
22
|
-
|
|
22
|
+
onselectedchange: (next: boolean) => void;
|
|
23
23
|
selectionLabel: string;
|
|
24
24
|
selectionDisabled?: false;
|
|
25
25
|
}
|
|
@@ -27,7 +27,7 @@ export type TableRowSelectionProps =
|
|
|
27
27
|
/** When true, renders a disabled selection checkbox for this row, preventing selection while keeping the alignment cell. */
|
|
28
28
|
selectionDisabled: true;
|
|
29
29
|
selected?: undefined;
|
|
30
|
-
|
|
30
|
+
onselectedchange?: undefined;
|
|
31
31
|
/**
|
|
32
32
|
* Accessible name for the disabled selection checkbox. Provide a localised
|
|
33
33
|
* string to override the English default ("Selection not allowed for this
|
|
@@ -38,7 +38,7 @@ export type TableRowSelectionProps =
|
|
|
38
38
|
}
|
|
39
39
|
| {
|
|
40
40
|
selected?: undefined;
|
|
41
|
-
|
|
41
|
+
onselectedchange?: undefined;
|
|
42
42
|
selectionLabel?: undefined;
|
|
43
43
|
selectionDisabled?: undefined;
|
|
44
44
|
};
|
|
@@ -65,6 +65,7 @@ trailing badge alone to convey it.
|
|
|
65
65
|
| `orientation` | `"horizontal"` \| `"vertical"` | no | — | Layout orientation. Affects which arrow keys move between tabs. |
|
|
66
66
|
| `value` | `string` | no | — | Bound active tab value. |
|
|
67
67
|
| `children` | `(opaque)` | yes | — | Tab and TabPanel children. Not expressible in JSON Schema; see the component types for the signature. |
|
|
68
|
+
| `onValueChange` | `(opaque)` | no | — | Intercept a proposed tab value before the bindable value is written. Return a replacement value to transform it. Not expressible in JSON Schema; see the component types for the signature. |
|
|
68
69
|
|
|
69
70
|
<!-- generated:props:end -->
|
|
70
71
|
|
|
@@ -21,11 +21,13 @@
|
|
|
21
21
|
|
|
22
22
|
import { handleRovingKeydown, isRovingKey } from '../../utilities/roving-tabindex.ts';
|
|
23
23
|
import { classNames } from '../../utilities/class-names.ts';
|
|
24
|
+
import { commitValue } from '../../utilities/value-change.ts';
|
|
24
25
|
|
|
25
26
|
const baseId = $props.id();
|
|
26
27
|
|
|
27
28
|
let {
|
|
28
29
|
value = $bindable(''),
|
|
30
|
+
onValueChange,
|
|
29
31
|
orientation = 'horizontal',
|
|
30
32
|
activateOnFocus,
|
|
31
33
|
class: className,
|
|
@@ -124,7 +126,9 @@
|
|
|
124
126
|
const focusedValue = order[focused];
|
|
125
127
|
if (focusedValue === undefined) return;
|
|
126
128
|
event.preventDefault();
|
|
127
|
-
|
|
129
|
+
commitValue(focusedValue, onValueChange, (next) => {
|
|
130
|
+
value = next;
|
|
131
|
+
});
|
|
128
132
|
return;
|
|
129
133
|
}
|
|
130
134
|
|
|
@@ -154,7 +158,9 @@
|
|
|
154
158
|
if (nextValue === undefined) return;
|
|
155
159
|
focusValue(nextValue);
|
|
156
160
|
if (effectiveActivateOnFocus) {
|
|
157
|
-
|
|
161
|
+
commitValue(nextValue, onValueChange, (next) => {
|
|
162
|
+
value = next;
|
|
163
|
+
});
|
|
158
164
|
}
|
|
159
165
|
}
|
|
160
166
|
|
|
@@ -172,7 +178,9 @@
|
|
|
172
178
|
return baseId;
|
|
173
179
|
},
|
|
174
180
|
select(next) {
|
|
175
|
-
|
|
181
|
+
commitValue(next, onValueChange, (nextValue) => {
|
|
182
|
+
value = nextValue;
|
|
183
|
+
});
|
|
176
184
|
},
|
|
177
185
|
isActive(candidate) {
|
|
178
186
|
return value === candidate;
|
|
@@ -58,6 +58,8 @@ export type TabsContext = {
|
|
|
58
58
|
export type TabsProps = {
|
|
59
59
|
/** Bound active tab value. */
|
|
60
60
|
value?: string;
|
|
61
|
+
/** Intercept a proposed tab value before the bindable value is written. Return a replacement value to transform it. */
|
|
62
|
+
onValueChange?: (next: string) => string | void;
|
|
61
63
|
/** Layout orientation. Affects which arrow keys move between tabs. */
|
|
62
64
|
orientation?: TabsOrientation;
|
|
63
65
|
/**
|
|
@@ -21,13 +21,20 @@
|
|
|
21
21
|
* ---------------------------------------- */
|
|
22
22
|
|
|
23
23
|
.cinder-textarea-label {
|
|
24
|
-
display:
|
|
24
|
+
display: inline-flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
gap: var(--cinder-space-1);
|
|
25
27
|
font-size: var(--cinder-text-xs);
|
|
26
28
|
font-weight: var(--cinder-font-medium);
|
|
27
29
|
line-height: 1;
|
|
28
30
|
color: var(--cinder-text);
|
|
29
31
|
}
|
|
30
32
|
|
|
33
|
+
.cinder-textarea-label[data-disabled] {
|
|
34
|
+
color: var(--cinder-text-disabled);
|
|
35
|
+
cursor: not-allowed;
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
/* ----------------------------------------
|
|
32
39
|
* Textarea control
|
|
33
40
|
* ---------------------------------------- */
|
|
@@ -99,6 +106,14 @@
|
|
|
99
106
|
0 0 0 calc(var(--cinder-ring-offset) + var(--cinder-ring-width)) var(--cinder-danger);
|
|
100
107
|
}
|
|
101
108
|
|
|
109
|
+
@media (forced-colors: active) {
|
|
110
|
+
.cinder-textarea[aria-invalid='true']:focus-visible {
|
|
111
|
+
outline: var(--cinder-ring-width) solid Mark;
|
|
112
|
+
outline-offset: 3px;
|
|
113
|
+
box-shadow: none;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
102
117
|
/* ----------------------------------------
|
|
103
118
|
* Disabled state
|
|
104
119
|
* ---------------------------------------- */
|
|
@@ -62,7 +62,12 @@
|
|
|
62
62
|
|
|
63
63
|
<div class="cinder-textarea-field">
|
|
64
64
|
{#if label}
|
|
65
|
-
<label for={id} class="cinder-textarea-label"
|
|
65
|
+
<label for={id} class="cinder-textarea-label" data-disabled={field.disabled || undefined}>
|
|
66
|
+
{label}
|
|
67
|
+
{#if field.required}
|
|
68
|
+
<span class="cinder-_required-marker" aria-hidden="true">*</span>
|
|
69
|
+
{/if}
|
|
70
|
+
</label>
|
|
66
71
|
{/if}
|
|
67
72
|
<textarea
|
|
68
73
|
{id}
|