@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
|
@@ -23,37 +23,60 @@
|
|
|
23
23
|
import X from 'lucide-svelte/icons/x';
|
|
24
24
|
import { createFocusTrap } from '../../focus-trap/index.ts';
|
|
25
25
|
import { createBodyScrollLock } from '../../../utilities/attachments.ts';
|
|
26
|
+
import { useReducedMotion } from '../../../utilities/use-reduced-motion.svelte.ts';
|
|
26
27
|
|
|
27
28
|
let { images, initialIndex = 0, open = $bindable(false), onclose }: ImageLightboxProps = $props();
|
|
28
29
|
|
|
29
|
-
//
|
|
30
|
-
|
|
30
|
+
// Respect prefers-reduced-motion: collapse the fade to an instant show/hide so
|
|
31
|
+
// the lightbox does not animate for users who have opted out of motion.
|
|
32
|
+
// CSS @media (prefers-reduced-motion) overrides do not cover JS-driven Svelte
|
|
33
|
+
// transitions, so we must derive the duration imperatively here.
|
|
34
|
+
const reducedMotion = useReducedMotion();
|
|
35
|
+
const LIGHTBOX_FADE_MS = 150;
|
|
36
|
+
const fadeDuration = $derived(reducedMotion.current ? 0 : LIGHTBOX_FADE_MS);
|
|
31
37
|
|
|
32
|
-
//
|
|
33
|
-
|
|
38
|
+
// clampedInitialIndex is the clamped version of the `initialIndex` prop.
|
|
39
|
+
const clampedInitialIndex = $derived(
|
|
40
|
+
images.length > 0 ? Math.max(0, Math.min(initialIndex, images.length - 1)) : 0,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
// navigationIndex is null when no user navigation has occurred in the current
|
|
44
|
+
// open session. effectiveIndex falls back to clampedInitialIndex.
|
|
45
|
+
//
|
|
46
|
+
// Reset semantics WITHOUT a write-back loop: when the lightbox is closed
|
|
47
|
+
// (`open === false`) effectiveIndex ignores navigationIndex entirely, so the
|
|
48
|
+
// displayed index is always clampedInitialIndex while closed — regardless of
|
|
49
|
+
// how it was closed (the close() button OR a parent setting `bind:open`
|
|
50
|
+
// false). On the next open, a single guarded $effect clears the stale
|
|
51
|
+
// navigationIndex so navigation starts fresh from initialIndex. This effect
|
|
52
|
+
// only writes navigationIndex in response to `open` (two distinct values), so
|
|
53
|
+
// it is not the read-and-write-back-the-same-bindable pattern #464 removes.
|
|
54
|
+
let navigationIndex = $state<number | null>(null);
|
|
55
|
+
const effectiveIndex = $derived(
|
|
56
|
+
open ? (navigationIndex ?? clampedInitialIndex) : clampedInitialIndex,
|
|
57
|
+
);
|
|
34
58
|
$effect(() => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (isOpening) {
|
|
38
|
-
currentIndex = images.length > 0 ? Math.max(0, Math.min(initialIndex, images.length - 1)) : 0;
|
|
59
|
+
if (!open && navigationIndex !== null) {
|
|
60
|
+
navigationIndex = null;
|
|
39
61
|
}
|
|
40
62
|
});
|
|
41
63
|
|
|
42
64
|
const hasMultiple = $derived(images.length > 1);
|
|
43
|
-
const currentImage = $derived(images[
|
|
44
|
-
const counterText = $derived(`${
|
|
65
|
+
const currentImage = $derived(images[effectiveIndex]);
|
|
66
|
+
const counterText = $derived(`${effectiveIndex + 1} of ${images.length}`);
|
|
45
67
|
|
|
46
68
|
function close() {
|
|
69
|
+
navigationIndex = null;
|
|
47
70
|
open = false;
|
|
48
71
|
onclose?.();
|
|
49
72
|
}
|
|
50
73
|
|
|
51
74
|
function previous() {
|
|
52
|
-
|
|
75
|
+
navigationIndex = (effectiveIndex - 1 + images.length) % images.length;
|
|
53
76
|
}
|
|
54
77
|
|
|
55
78
|
function next() {
|
|
56
|
-
|
|
79
|
+
navigationIndex = (effectiveIndex + 1) % images.length;
|
|
57
80
|
}
|
|
58
81
|
|
|
59
82
|
function handleOverlayClick(event: MouseEvent) {
|
|
@@ -93,7 +116,7 @@
|
|
|
93
116
|
onclick={handleOverlayClick}
|
|
94
117
|
onkeydown={handleKeyDown}
|
|
95
118
|
tabindex="-1"
|
|
96
|
-
transition:fade={{ duration:
|
|
119
|
+
transition:fade={{ duration: fadeDuration }}
|
|
97
120
|
{@attach createBodyScrollLock()}
|
|
98
121
|
{@attach createFocusTrap()}
|
|
99
122
|
>
|
|
@@ -174,7 +197,7 @@
|
|
|
174
197
|
border-radius: var(--cinder-radius-sm);
|
|
175
198
|
color: white;
|
|
176
199
|
cursor: pointer;
|
|
177
|
-
transition: background
|
|
200
|
+
transition: background var(--cinder-duration-fast) var(--cinder-ease-standard);
|
|
178
201
|
z-index: 1;
|
|
179
202
|
}
|
|
180
203
|
|
|
@@ -210,7 +233,7 @@
|
|
|
210
233
|
border-radius: var(--cinder-radius-sm);
|
|
211
234
|
color: white;
|
|
212
235
|
cursor: pointer;
|
|
213
|
-
transition: background
|
|
236
|
+
transition: background var(--cinder-duration-fast) var(--cinder-ease-standard);
|
|
214
237
|
z-index: 1;
|
|
215
238
|
}
|
|
216
239
|
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
border-radius: var(--cinder-radius-md);
|
|
188
188
|
/* Use contain to preserve full image content and avoid cropping */
|
|
189
189
|
object-fit: contain;
|
|
190
|
-
transition: opacity
|
|
190
|
+
transition: opacity var(--cinder-duration-fast) var(--cinder-ease-standard);
|
|
191
191
|
}
|
|
192
192
|
|
|
193
193
|
.message-attachment-button:hover .message-attachment-image {
|
|
@@ -165,6 +165,14 @@
|
|
|
165
165
|
outline-offset: -2px;
|
|
166
166
|
box-shadow: var(--_cinder-focus-ring-shadow);
|
|
167
167
|
}
|
|
168
|
+
|
|
169
|
+
@media (forced-colors: active) {
|
|
170
|
+
&:focus-visible {
|
|
171
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
172
|
+
outline-offset: 2px;
|
|
173
|
+
box-shadow: none;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
168
176
|
}
|
|
169
177
|
|
|
170
178
|
.chat-reasoning-label {
|
|
@@ -248,21 +248,34 @@
|
|
|
248
248
|
outline-offset: 2px;
|
|
249
249
|
box-shadow: var(--_cinder-focus-ring-shadow);
|
|
250
250
|
}
|
|
251
|
+
|
|
252
|
+
@media (forced-colors: active) {
|
|
253
|
+
&:focus-visible {
|
|
254
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
255
|
+
outline-offset: 3px;
|
|
256
|
+
box-shadow: none;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
251
259
|
}
|
|
252
260
|
|
|
253
261
|
.chat-tool-approval-btn-approve {
|
|
254
|
-
background: var(--cinder-
|
|
255
|
-
color: var(--cinder-
|
|
256
|
-
border-color: var(--cinder-
|
|
262
|
+
background: var(--cinder-success);
|
|
263
|
+
color: var(--cinder-success-contrast, var(--cinder-text));
|
|
264
|
+
border-color: var(--cinder-success);
|
|
257
265
|
|
|
258
|
-
/* Background darkening, not opacity, so foreground text contrast is
|
|
259
|
-
preserved (opacity would dim text + bg together, risking WCAG 1.4.11). */
|
|
260
266
|
@media (hover: hover) {
|
|
261
267
|
&:not(:disabled):hover {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
268
|
+
/* cinder-allow-raw-color: structural-pattern — neutral hover overlay tint, not a themeable surface */
|
|
269
|
+
--_cinder-chat-tool-approval-hover-overlay: light-dark(
|
|
270
|
+
/* cinder-allow-raw-color: structural-pattern — neutral hover overlay tint, not a themeable surface */
|
|
271
|
+
oklch(0% 0 0 / 0.08),
|
|
272
|
+
/* cinder-allow-raw-color: structural-pattern — neutral hover overlay tint, not a themeable surface */
|
|
273
|
+
oklch(100% 0 0 / 0.1)
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
background-image: linear-gradient(
|
|
277
|
+
var(--_cinder-chat-tool-approval-hover-overlay),
|
|
278
|
+
var(--_cinder-chat-tool-approval-hover-overlay)
|
|
266
279
|
);
|
|
267
280
|
}
|
|
268
281
|
}
|
|
@@ -53,6 +53,19 @@
|
|
|
53
53
|
box-shadow: var(--_cinder-focus-ring-shadow);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
@media (forced-colors: active) {
|
|
57
|
+
.cinder-chat-conversation-list__button[data-cinder-conversation-interactive]:focus-visible {
|
|
58
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
59
|
+
/* ButtonText is correct here: this is a button/navigation control using
|
|
60
|
+
aria-current="page" (page-nav semantics, not aria-selected list-selection).
|
|
61
|
+
Highlight/HighlightText would be wrong — those are for selected listbox items.
|
|
62
|
+
3px separates the ring from ButtonBorder, which renders in forced-colors
|
|
63
|
+
mode on all button elements regardless of their standard-mode border color. */
|
|
64
|
+
outline-offset: 3px;
|
|
65
|
+
box-shadow: none;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
56
69
|
.cinder-chat-conversation-list__title {
|
|
57
70
|
grid-column: 1;
|
|
58
71
|
grid-row: 1;
|
|
@@ -26,6 +26,7 @@ Single boolean toggle for opt-in selections within forms or settings.
|
|
|
26
26
|
| `indeterminate` | `boolean` | no | — | Bound indeterminate state. Mutually exclusive with `checked` visually. |
|
|
27
27
|
| `label` | `string` | no | — | Visible label rendered in a `<label>` element associated via `for`. |
|
|
28
28
|
| `class` | `(opaque)` | no | — | Extra class names merged with `.cinder-checkbox`. Not expressible in JSON Schema; see the component types for the signature. |
|
|
29
|
+
| `onValueChange` | `(opaque)` | no | — | Intercept a proposed checked state 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. |
|
|
29
30
|
|
|
30
31
|
<!-- generated:props:end -->
|
|
31
32
|
|
|
@@ -165,6 +165,9 @@
|
|
|
165
165
|
|
|
166
166
|
/* Label */
|
|
167
167
|
.cinder-checkbox-field__label {
|
|
168
|
+
display: inline-flex;
|
|
169
|
+
align-items: center;
|
|
170
|
+
gap: var(--cinder-space-1);
|
|
168
171
|
font-size: var(--cinder-text-sm);
|
|
169
172
|
line-height: var(--cinder-leading-normal);
|
|
170
173
|
color: var(--cinder-text);
|
|
@@ -21,10 +21,12 @@
|
|
|
21
21
|
import { getFormFieldContext } from '../../_internal/form-field-context.ts';
|
|
22
22
|
import { classNames } from '../../utilities/class-names.ts';
|
|
23
23
|
import { devWarn } from '../../utilities/dev-warn.ts';
|
|
24
|
+
import { commitValue } from '../../utilities/value-change.ts';
|
|
24
25
|
|
|
25
26
|
let {
|
|
26
27
|
id,
|
|
27
28
|
checked = $bindable(false),
|
|
29
|
+
onValueChange,
|
|
28
30
|
indeterminate = $bindable(false),
|
|
29
31
|
label,
|
|
30
32
|
description,
|
|
@@ -34,6 +36,7 @@
|
|
|
34
36
|
class: className,
|
|
35
37
|
'aria-describedby': consumerDescribedBy,
|
|
36
38
|
'aria-invalid': consumerInvalid,
|
|
39
|
+
onchange: consumerOnchange,
|
|
37
40
|
...rest
|
|
38
41
|
}: CheckboxProps = $props();
|
|
39
42
|
|
|
@@ -82,6 +85,41 @@
|
|
|
82
85
|
inputElement.indeterminate = indeterminate && !checked;
|
|
83
86
|
}
|
|
84
87
|
});
|
|
88
|
+
let resetSyncTimeout: ReturnType<typeof setTimeout> | undefined;
|
|
89
|
+
|
|
90
|
+
function syncCheckedAfterFormReset(): void {
|
|
91
|
+
if (resetSyncTimeout !== undefined) clearTimeout(resetSyncTimeout);
|
|
92
|
+
resetSyncTimeout = setTimeout(() => {
|
|
93
|
+
resetSyncTimeout = undefined;
|
|
94
|
+
if (!inputElement) return;
|
|
95
|
+
checked = inputElement.checked;
|
|
96
|
+
inputElement.indeterminate = indeterminate && !inputElement.checked;
|
|
97
|
+
}, 0);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
$effect(() => {
|
|
101
|
+
const form = inputElement?.form;
|
|
102
|
+
if (!form) return;
|
|
103
|
+
|
|
104
|
+
form.addEventListener('reset', syncCheckedAfterFormReset);
|
|
105
|
+
return () => {
|
|
106
|
+
form.removeEventListener('reset', syncCheckedAfterFormReset);
|
|
107
|
+
if (resetSyncTimeout !== undefined) {
|
|
108
|
+
clearTimeout(resetSyncTimeout);
|
|
109
|
+
resetSyncTimeout = undefined;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
function handleChange(event: Event): void {
|
|
115
|
+
const target = event.currentTarget as HTMLInputElement;
|
|
116
|
+
const committed = commitValue(target.checked, onValueChange, (next) => {
|
|
117
|
+
checked = next;
|
|
118
|
+
});
|
|
119
|
+
target.checked = committed;
|
|
120
|
+
target.indeterminate = indeterminate && !committed;
|
|
121
|
+
consumerOnchange?.(event as Parameters<NonNullable<CheckboxProps['onchange']>>[0]);
|
|
122
|
+
}
|
|
85
123
|
</script>
|
|
86
124
|
|
|
87
125
|
<div class="cinder-checkbox-field">
|
|
@@ -91,13 +129,14 @@
|
|
|
91
129
|
bind:this={inputElement}
|
|
92
130
|
id={field.id}
|
|
93
131
|
type="checkbox"
|
|
132
|
+
{...rest}
|
|
94
133
|
disabled={field.disabled}
|
|
95
134
|
required={field.required}
|
|
96
|
-
|
|
135
|
+
{checked}
|
|
136
|
+
onchange={handleChange}
|
|
97
137
|
class={classNames('cinder-checkbox', className)}
|
|
98
138
|
aria-invalid={field.ariaInvalid}
|
|
99
139
|
aria-describedby={field.describedBy}
|
|
100
|
-
{...rest}
|
|
101
140
|
/>
|
|
102
141
|
<span class="cinder-checkbox-field__indicator" aria-hidden="true"></span>
|
|
103
142
|
</span>
|
|
@@ -108,6 +147,9 @@
|
|
|
108
147
|
data-disabled={field.disabled || undefined}
|
|
109
148
|
>
|
|
110
149
|
{label}
|
|
150
|
+
{#if field.required}
|
|
151
|
+
<span class="cinder-_required-marker" aria-hidden="true">*</span>
|
|
152
|
+
{/if}
|
|
111
153
|
</label>
|
|
112
154
|
{/if}
|
|
113
155
|
</div>
|
|
@@ -20,6 +20,8 @@ export type CheckboxProps = HTMLInputAttributes & {
|
|
|
20
20
|
id?: string;
|
|
21
21
|
/** Bound checked state. */
|
|
22
22
|
checked?: boolean;
|
|
23
|
+
/** Intercept a proposed checked state before the bindable value is written. Return a replacement value to transform it. */
|
|
24
|
+
onValueChange?: (next: boolean) => boolean | void;
|
|
23
25
|
/** Bound indeterminate state. Mutually exclusive with `checked` visually. */
|
|
24
26
|
indeterminate?: boolean;
|
|
25
27
|
/** Visible label rendered in a `<label>` element associated via `for`. */
|
|
@@ -22,8 +22,8 @@ Wraps multiple checkboxes under a shared label and validation context.
|
|
|
22
22
|
| `description` | `string` | no | — | Helper text below the group; wired via `aria-describedby` on the fieldset. |
|
|
23
23
|
| `disabled` | `boolean` | no | — | Disables every native form control inside via the fieldset's built-in cascade. Renders as the native `disabled` attribute on `<fieldset>`. |
|
|
24
24
|
| `error` | `string` | no | — | Group-level validation message. Rendered as a polite live region and referenced by the fieldset's `aria-describedby`. Also sets `aria-invalid="true"` on the fieldset itself as a supplementary signal. Note: fieldset-level `aria-describedby` is not reliably re-announced as focus moves between descendants. This is best-effort supplemental context — if a specific control must announce as invalid on focus, pass `error` to that `<Checkbox>` directly. |
|
|
25
|
-
| `
|
|
26
|
-
| `required` | `boolean` | no | — | Marks the group
|
|
25
|
+
| `label` | `string` | no | — | Visible group caption. Rendered as a `<legend>` inside the `<fieldset>`. Named `label` for consistency with every other form control — the element is a `<legend>` because the group is a fieldset. |
|
|
26
|
+
| `required` | `boolean` | no | — | Marks the group required: sets `aria-required="true"` and `data-cinder-required` on the fieldset and renders the required asterisk in the legend. It does NOT set `required` on any child `<input>` and does NOT enforce native constraint validation. Per-control `required` must be set on the individual `<Checkbox>`. |
|
|
27
27
|
| `variant` | `"default"` \| `"card"` | no | — | Layout variant. `'default'` is a stacked column. `'card'` styles each direct child `.cinder-checkbox-field` as a bordered card row. Always emitted as `data-variant` on the fieldset. Card variant assumes each direct child of the items container is a single `<Checkbox>`. |
|
|
28
28
|
| `children` | `(opaque)` | yes | — | Checkbox children. Not expressible in JSON Schema; see the component types for the signature. |
|
|
29
29
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schemas/examples.schema.json",
|
|
3
|
+
"component": "checkbox-group",
|
|
4
|
+
"import": "@lostgradient/cinder/checkbox-group",
|
|
5
|
+
"examples": [
|
|
6
|
+
{
|
|
7
|
+
"id": "basic",
|
|
8
|
+
"title": "Basic checkbox group",
|
|
9
|
+
"description": "Grouped checkboxes under a shared legend with independent checked states.",
|
|
10
|
+
"code": "<script lang=\"ts\">\n import { Checkbox } from '@lostgradient/cinder/checkbox';\n import { CheckboxGroup } from '@lostgradient/cinder/checkbox-group';\n\n let email = $state(true);\n let sms = $state(false);\n let push = $state(false);\n</script>\n\n<CheckboxGroup label=\"Notification channels\">\n <Checkbox id=\"email\" label=\"Email\" bind:checked={email} />\n <Checkbox id=\"sms\" label=\"SMS\" bind:checked={sms} />\n <Checkbox id=\"push\" label=\"Push notifications\" bind:checked={push} />\n</CheckboxGroup>\n"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -23,11 +23,12 @@
|
|
|
23
23
|
errorId as buildErrorId,
|
|
24
24
|
} from '../../_internal/field-control.ts';
|
|
25
25
|
import { classNames } from '../../utilities/class-names.ts';
|
|
26
|
+
import { devWarn } from '../../utilities/dev-warn.ts';
|
|
26
27
|
|
|
27
28
|
const groupId = $props.id();
|
|
28
29
|
|
|
29
30
|
let {
|
|
30
|
-
legend,
|
|
31
|
+
label: legend,
|
|
31
32
|
description,
|
|
32
33
|
error,
|
|
33
34
|
disabled = false,
|
|
@@ -39,6 +40,20 @@
|
|
|
39
40
|
const descriptionId = $derived(describeId(groupId, !!description));
|
|
40
41
|
const errId = $derived(buildErrorId(groupId, !!error));
|
|
41
42
|
const describedBy = $derived(composeDescribedBy(descriptionId, errId));
|
|
43
|
+
|
|
44
|
+
// Warn once when no accessible group name is provided. The `hasWarned` flag
|
|
45
|
+
// stops the effect re-firing on every `legend` change — matching the
|
|
46
|
+
// tree.svelte convention and dev-warn.ts's guidance against a warn-only
|
|
47
|
+
// effect that re-subscribes on each update.
|
|
48
|
+
let hasWarnedNoLegend = false;
|
|
49
|
+
$effect(() => {
|
|
50
|
+
if (!legend && !hasWarnedNoLegend) {
|
|
51
|
+
hasWarnedNoLegend = true;
|
|
52
|
+
devWarn(
|
|
53
|
+
'[cinder/CheckboxGroup] A <fieldset> was rendered without a label prop. The fieldset will have no <legend>, which makes it inaccessible. Provide a label prop to describe the group.',
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
42
57
|
</script>
|
|
43
58
|
|
|
44
59
|
<!--
|
|
@@ -58,12 +73,18 @@
|
|
|
58
73
|
{disabled}
|
|
59
74
|
aria-invalid={ariaInvalid(!!error)}
|
|
60
75
|
aria-describedby={describedBy}
|
|
76
|
+
aria-required={required || undefined}
|
|
61
77
|
data-cinder-disabled={disabled || undefined}
|
|
62
78
|
data-cinder-required={required || undefined}
|
|
63
79
|
data-variant={variant}
|
|
64
80
|
>
|
|
65
81
|
{#if legend}
|
|
66
|
-
<legend class="cinder-checkbox-group__legend">
|
|
82
|
+
<legend class="cinder-checkbox-group__legend">
|
|
83
|
+
{legend}
|
|
84
|
+
{#if required}
|
|
85
|
+
<span class="cinder-_required-marker" aria-hidden="true">*</span>
|
|
86
|
+
{/if}
|
|
87
|
+
</legend>
|
|
67
88
|
{/if}
|
|
68
89
|
|
|
69
90
|
<div class="cinder-checkbox-group__items">
|
|
@@ -9,8 +9,12 @@ import type { Snippet } from 'svelte';
|
|
|
9
9
|
* handles the disabled cascade without any Svelte context.
|
|
10
10
|
*/
|
|
11
11
|
export type CheckboxGroupProps = {
|
|
12
|
-
/**
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Visible group caption. Rendered as a `<legend>` inside the `<fieldset>`.
|
|
14
|
+
* Named `label` for consistency with every other form control — the element
|
|
15
|
+
* is a `<legend>` because the group is a fieldset.
|
|
16
|
+
*/
|
|
17
|
+
label?: string;
|
|
14
18
|
/** Helper text below the group; wired via `aria-describedby` on the fieldset. */
|
|
15
19
|
description?: string;
|
|
16
20
|
/**
|
|
@@ -30,12 +34,13 @@ export type CheckboxGroupProps = {
|
|
|
30
34
|
*/
|
|
31
35
|
disabled?: boolean;
|
|
32
36
|
/**
|
|
33
|
-
* Marks the group
|
|
34
|
-
*
|
|
37
|
+
* Marks the group required: sets `aria-required="true"` and
|
|
38
|
+
* `data-cinder-required` on the fieldset and renders the required asterisk in
|
|
39
|
+
* the legend.
|
|
35
40
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
41
|
+
* It does NOT set `required` on any child `<input>` and does NOT enforce
|
|
42
|
+
* native constraint validation. Per-control `required` must be set on the
|
|
43
|
+
* individual `<Checkbox>`.
|
|
39
44
|
*/
|
|
40
45
|
required?: boolean;
|
|
41
46
|
/**
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
aria-disabled={isDisabled || undefined}
|
|
128
128
|
tabindex={tabIndex}
|
|
129
129
|
class={classNames('cinder-choice-grid-item', className)}
|
|
130
|
-
data-cinder-selected={isSelected
|
|
130
|
+
data-cinder-selected={isSelected ? '' : undefined}
|
|
131
131
|
data-cinder-disabled={isDisabled || undefined}
|
|
132
132
|
data-cinder-state={feedbackState !== 'neutral' ? feedbackState : undefined}
|
|
133
133
|
onclick={handleClick}
|
|
@@ -27,9 +27,9 @@ Headless utility that calls a function when the user clicks or taps outside a su
|
|
|
27
27
|
| Prop | Type | Required | Default | Description |
|
|
28
28
|
| ------------- | ---------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
29
29
|
| `class` | `string` | no | — | Additional class names merged with the root element. |
|
|
30
|
-
| `enabled` | `boolean` | no | — | When false the document listener is detached and `
|
|
30
|
+
| `enabled` | `boolean` | no | — | When false the document listener is detached and `onclickaway` is never called. Defaults to `true`. |
|
|
31
31
|
| `children` | `(opaque)` | yes | — | Content rendered inside the root element. Required. Not expressible in JSON Schema; see the component types for the signature. |
|
|
32
|
-
| `
|
|
32
|
+
| `onclickaway` | `(opaque)` | yes | — | Called with the triggering PointerEvent (or MouseEvent/TouchEvent on browsers that do not support the Pointer Events API) when the user presses a pointer device outside the root element. Not expressible in JSON Schema; see the component types for the signature. |
|
|
33
33
|
|
|
34
34
|
<!-- generated:props:end -->
|
|
35
35
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"id": "basic",
|
|
8
8
|
"title": "Basic click-away listener",
|
|
9
9
|
"description": "Calls a function when the user presses a pointer outside the wrapped subtree.",
|
|
10
|
-
"code": "<script lang=\"ts\">\n import { Button, ClickAwayListener } from '@lostgradient/cinder';\n\n let open = $state(false);\n</script>\n\n<Button onclick={() => (open = true)}>Open inline editor</Button>\n\n{#if open}\n <ClickAwayListener\n
|
|
10
|
+
"code": "<script lang=\"ts\">\n import { Button, ClickAwayListener } from '@lostgradient/cinder';\n\n let open = $state(false);\n</script>\n\n<Button onclick={() => (open = true)}>Open inline editor</Button>\n\n{#if open}\n <ClickAwayListener\n onclickaway={() => (open = false)}\n style=\"\n display: inline-flex;\n flex-direction: column;\n gap: var(--cinder-space-3);\n margin-block-start: var(--cinder-space-4);\n padding: var(--cinder-space-4);\n border: 1px solid var(--cinder-border);\n border-radius: var(--cinder-radius-lg);\n background: var(--cinder-surface-raised);\n \"\n >\n <p style=\"margin: 0;\">Click outside this box to dismiss it.</p>\n <Button variant=\"secondary\" onclick={() => (open = false)}>Close</Button>\n </ClickAwayListener>\n{/if}\n"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import type { ClickAwayListenerProps } from './click-away-listener.types.ts';
|
|
20
20
|
|
|
21
21
|
let {
|
|
22
|
-
|
|
22
|
+
onclickaway,
|
|
23
23
|
enabled = true,
|
|
24
24
|
class: className,
|
|
25
25
|
children,
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
|
|
51
51
|
const isInside = target instanceof Node && rootElement.contains(target);
|
|
52
52
|
if (!isInside) {
|
|
53
|
-
|
|
53
|
+
onclickaway(event);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -4,7 +4,7 @@ import type { HTMLAttributes } from 'svelte/elements';
|
|
|
4
4
|
/**
|
|
5
5
|
* Props for the ClickAwayListener component.
|
|
6
6
|
*
|
|
7
|
-
* A headless utility that fires `
|
|
7
|
+
* A headless utility that fires `onclickaway` when the user presses a pointer
|
|
8
8
|
* (mouse or touch) outside the component's root element. Useful for closing
|
|
9
9
|
* inline-edit fields, custom dropdowns, or any overlay that should dismiss on
|
|
10
10
|
* outside interaction without requiring a full Popover or Modal.
|
|
@@ -15,9 +15,9 @@ export type ClickAwayListenerProps = Omit<HTMLAttributes<HTMLDivElement>, 'class
|
|
|
15
15
|
* browsers that do not support the Pointer Events API) when the user presses
|
|
16
16
|
* a pointer device outside the root element.
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
onclickaway: (event: PointerEvent | MouseEvent | TouchEvent) => void;
|
|
19
19
|
/**
|
|
20
|
-
* When false the document listener is detached and `
|
|
20
|
+
* When false the document listener is detached and `onclickaway` is never
|
|
21
21
|
* called. Defaults to `true`.
|
|
22
22
|
*/
|
|
23
23
|
enabled?: boolean;
|
|
@@ -157,8 +157,8 @@
|
|
|
157
157
|
display: inline-flex;
|
|
158
158
|
align-items: center;
|
|
159
159
|
justify-content: center;
|
|
160
|
-
inline-size:
|
|
161
|
-
min-block-size:
|
|
160
|
+
inline-size: 2rem;
|
|
161
|
+
min-block-size: 2rem;
|
|
162
162
|
border: 1px solid transparent;
|
|
163
163
|
border-radius: var(--cinder-radius-sm);
|
|
164
164
|
background: var(--cinder-surface-raised);
|
|
@@ -176,7 +176,8 @@
|
|
|
176
176
|
|
|
177
177
|
@media (forced-colors: active) {
|
|
178
178
|
.cinder-code-block .cinder-code-block__header .cinder-copy-button:focus-visible {
|
|
179
|
-
outline
|
|
179
|
+
outline: var(--cinder-ring-width) solid ButtonText;
|
|
180
|
+
outline-offset: 3px;
|
|
180
181
|
box-shadow: none;
|
|
181
182
|
}
|
|
182
183
|
}
|
|
@@ -32,7 +32,7 @@ Controlled — the parent owns the state with `bind:open`:
|
|
|
32
32
|
|
|
33
33
|
### State model
|
|
34
34
|
|
|
35
|
-
Without `bind:open`, `open` is the initial local value and the component manages subsequent toggles; pass `open={true}` to render initially open. With `bind:open`, the parent owns the state. `
|
|
35
|
+
Without `bind:open`, `open` is the initial local value and the component manages subsequent toggles; pass `open={true}` to render initially open. With `bind:open`, the parent owns the state. `ontoggle` fires on every toggle with the next boolean, so one-way observers stay in sync.
|
|
36
36
|
|
|
37
37
|
The `trigger` prop is either a string or a snippet receiving `{ open, disabled }`, letting the label react to state (for example, swapping "Show" and "Hide").
|
|
38
38
|
|
|
@@ -57,7 +57,7 @@ For multiple coordinated sections where opening one may close others, use [`Acco
|
|
|
57
57
|
| `open` | `boolean` | no | `false` | Bindable open state. Without binding, the initial value the component then manages. |
|
|
58
58
|
| `trigger` | `string` | yes | — | Trigger label text. (The snippet form is template-only; see the type above.) |
|
|
59
59
|
| `children` | `(opaque)` | yes | — | Panel content shown when open. Not expressible in JSON Schema; see the component types for the signature. |
|
|
60
|
-
| `
|
|
60
|
+
| `ontoggle` | `(opaque)` | no | — | Fired on every successful toggle with the next open state. Not called while disabled. Not expressible in JSON Schema; see the component types for the signature. |
|
|
61
61
|
|
|
62
62
|
<!-- generated:props:end -->
|
|
63
63
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
trigger,
|
|
28
28
|
children,
|
|
29
29
|
open = $bindable(false),
|
|
30
|
-
|
|
30
|
+
ontoggle,
|
|
31
31
|
disabled = false,
|
|
32
32
|
idBase,
|
|
33
33
|
class: className,
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
if (disabled) return;
|
|
50
50
|
const next = !open;
|
|
51
51
|
open = next;
|
|
52
|
-
|
|
52
|
+
ontoggle?.(next);
|
|
53
53
|
}
|
|
54
54
|
</script>
|
|
55
55
|
|
|
@@ -4,7 +4,10 @@ import type { HTMLAttributes } from 'svelte/elements';
|
|
|
4
4
|
/** State passed to a trigger snippet so labels can react to open/disabled. */
|
|
5
5
|
export type CollapsibleTriggerState = { open: boolean; disabled: boolean };
|
|
6
6
|
|
|
7
|
-
export type CollapsibleProps = Omit<
|
|
7
|
+
export type CollapsibleProps = Omit<
|
|
8
|
+
HTMLAttributes<HTMLDivElement>,
|
|
9
|
+
'class' | 'children' | 'ontoggle'
|
|
10
|
+
> & {
|
|
8
11
|
/** Trigger label: a plain string, or a snippet receiving `{ open, disabled }`. */
|
|
9
12
|
trigger: string | Snippet<[CollapsibleTriggerState]>;
|
|
10
13
|
/** Panel content shown when open. */
|
|
@@ -16,7 +19,7 @@ export type CollapsibleProps = Omit<HTMLAttributes<HTMLDivElement>, 'class' | 'c
|
|
|
16
19
|
*/
|
|
17
20
|
open?: boolean;
|
|
18
21
|
/** Fired on every successful toggle with the next open state. Not called while disabled. */
|
|
19
|
-
|
|
22
|
+
ontoggle?: (open: boolean) => void;
|
|
20
23
|
/**
|
|
21
24
|
* When true, the trigger cannot be toggled.
|
|
22
25
|
* @default false
|