@lostgradient/cinder 0.2.0 → 0.3.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 +83 -0
- package/README.md +4 -2
- package/components.json +1465 -290
- package/dist/_internal/overlay.d.ts +26 -3
- package/dist/_internal/toast-context.d.ts +8 -0
- package/dist/_internal/tree-context.d.ts +18 -0
- package/dist/_internal/tree-data.d.ts +22 -0
- package/dist/_internal/tree-drag-controller.svelte.d.ts +47 -0
- package/dist/_internal/tree-registry.svelte.d.ts +19 -3
- package/dist/_internal/use-virtualizer.svelte.d.ts +21 -0
- package/dist/_internal/virtual-item.d.ts +1 -0
- package/dist/components/_timeline-item/index.d.ts +4 -0
- package/dist/components/_tree-expand-all/index.d.ts +4 -0
- package/dist/components/_tree-expand-all/tree-expand-all.svelte.d.ts +18 -0
- package/dist/components/_tree-expand-all/tree-expand-all.types.d.ts +15 -0
- package/dist/components/_visually-hidden-live-region.svelte.d.ts +9 -0
- package/dist/components/access-gate/access-gate-inline.svelte.d.ts +13 -0
- package/dist/components/access-gate/access-gate.css +129 -0
- package/dist/components/access-gate/access-gate.schema.js +68 -0
- package/dist/components/access-gate/access-gate.svelte.d.ts +20 -0
- package/dist/components/access-gate/access-gate.types.d.ts +40 -0
- package/dist/components/access-gate/access-gate.variables.js +31 -0
- package/dist/components/access-gate/index.d.ts +5 -0
- package/dist/components/access-gate/index.js +1836 -0
- package/dist/components/accordion/accordion.schema.js +12 -32
- package/dist/components/accordion/accordion.svelte.d.ts +9 -2
- package/dist/components/accordion/accordion.variables.js +1 -31
- package/dist/components/accordion/index.js +1 -31
- package/dist/components/accordion-item/accordion-item.schema.js +12 -32
- package/dist/components/accordion-item/accordion-item.variables.js +1 -31
- package/dist/components/accordion-item/index.js +1 -31
- package/dist/components/alert/alert.schema.js +19 -32
- package/dist/components/alert/alert.variables.js +1 -31
- package/dist/components/alert/index.js +1 -31
- package/dist/components/alert-dialog/alert-dialog.schema.js +17 -39
- package/dist/components/alert-dialog/alert-dialog.types.d.ts +7 -0
- package/dist/components/alert-dialog/alert-dialog.variables.js +1 -31
- package/dist/components/alert-dialog/index.js +453 -238
- package/dist/components/area-chart/area-chart.schema.js +42 -46
- package/dist/components/area-chart/area-chart.types.d.ts +14 -0
- package/dist/components/area-chart/area-chart.variables.js +1 -31
- package/dist/components/area-chart/index.js +1 -31
- package/dist/components/aspect-ratio/aspect-ratio.schema.js +12 -32
- package/dist/components/aspect-ratio/aspect-ratio.variables.js +1 -31
- package/dist/components/aspect-ratio/index.js +1 -31
- package/dist/components/autocomplete/autocomplete.css +10 -3
- package/dist/components/autocomplete/autocomplete.schema.js +29 -45
- package/dist/components/autocomplete/autocomplete.types.d.ts +14 -0
- package/dist/components/autocomplete/autocomplete.variables.js +1 -31
- package/dist/components/autocomplete/index.js +961 -529
- package/dist/components/avatar/avatar.css +1 -0
- package/dist/components/avatar/avatar.schema.js +3 -32
- package/dist/components/avatar/avatar.types.d.ts +6 -0
- package/dist/components/avatar/avatar.variables.js +1 -31
- package/dist/components/avatar/index.js +1 -31
- package/dist/components/avatar-group/avatar-group.schema.js +6 -31
- package/dist/components/avatar-group/avatar-group.types.d.ts +10 -0
- package/dist/components/avatar-group/avatar-group.variables.js +1 -31
- package/dist/components/avatar-group/index.js +994 -559
- package/dist/components/backdrop/backdrop.schema.js +5 -33
- package/dist/components/backdrop/backdrop.variables.js +1 -31
- package/dist/components/backdrop/index.js +2 -32
- package/dist/components/badge/badge.css +1 -1
- package/dist/components/badge/badge.schema.js +12 -32
- package/dist/components/badge/badge.variables.js +1 -31
- package/dist/components/badge/index.js +1 -31
- package/dist/components/banner/banner.schema.js +8 -34
- package/dist/components/banner/banner.variables.js +1 -31
- package/dist/components/banner/index.js +1 -31
- package/dist/components/bar-chart/bar-chart.css +4 -0
- package/dist/components/bar-chart/bar-chart.schema.js +42 -46
- package/dist/components/bar-chart/bar-chart.types.d.ts +14 -0
- package/dist/components/bar-chart/bar-chart.variables.js +1 -31
- package/dist/components/bar-chart/index.js +2 -31
- package/dist/components/breadcrumbs/breadcrumbs.schema.js +1 -31
- package/dist/components/breadcrumbs/breadcrumbs.variables.js +1 -31
- package/dist/components/breadcrumbs/index.js +1 -31
- package/dist/components/button/button.css +7 -0
- package/dist/components/button/button.schema.js +20 -32
- package/dist/components/button/button.variables.js +1 -31
- package/dist/components/button/index.js +1 -31
- package/dist/components/button-group/button-group.schema.js +8 -34
- package/dist/components/button-group/button-group.types.d.ts +2 -0
- package/dist/components/button-group/button-group.variables.js +1 -31
- package/dist/components/button-group/index.js +1 -31
- package/dist/components/callout/callout.schema.js +6 -33
- package/dist/components/callout/callout.variables.js +1 -31
- package/dist/components/callout/index.js +1 -31
- package/dist/components/capability-gate/capability-gate.css +5 -2
- package/dist/components/capability-gate/capability-gate.schema.js +9 -35
- package/dist/components/capability-gate/capability-gate.variables.js +1 -31
- package/dist/components/capability-gate/index.js +1 -31
- package/dist/components/card/card.schema.js +7 -34
- package/dist/components/card/card.types.d.ts +2 -0
- package/dist/components/card/card.variables.js +1 -31
- package/dist/components/card/index.js +1 -31
- package/dist/components/chart.types.d.ts +12 -0
- package/dist/components/chat/adapter/chat-adapter.d.ts +123 -0
- package/dist/components/chat/adapter/index.d.ts +8 -0
- package/dist/components/chat/chat.schema.js +161 -48
- package/dist/components/chat/chat.types.d.ts +166 -0
- package/dist/components/chat/chat.variables.js +1 -31
- package/dist/components/chat/container/chat-history-trigger.svelte.d.ts +15 -0
- package/dist/components/chat/container/chat-participant-typing.svelte.d.ts +31 -0
- package/dist/components/chat/container/chat-status-announcer.svelte.d.ts +4 -1
- package/dist/components/chat/container/chat.svelte.d.ts +2 -85
- package/dist/components/chat/container/use-chat-keyboard-nav.svelte.d.ts +8 -0
- package/dist/components/chat/container/use-chat-message-groups.svelte.d.ts +16 -0
- package/dist/components/chat/container/use-chat-read-receipts.svelte.d.ts +51 -0
- package/dist/components/chat/container/use-chat-reasoning-state.svelte.d.ts +55 -0
- package/dist/components/chat/container/use-chat-typing-indicator.svelte.d.ts +76 -0
- package/dist/components/chat/container/use-chat-virtualizer.svelte.d.ts +47 -0
- package/dist/components/chat/index.d.ts +2 -1
- package/dist/components/chat/index.js +9813 -7207
- package/dist/components/chat/message/chat-message-parts-renderer.svelte.d.ts +4 -0
- package/dist/components/chat/message/chat-message-parts.d.ts +96 -0
- package/dist/components/chat/message/chat-message.svelte.d.ts +37 -0
- package/dist/components/chat/message/chat-read-receipt.svelte.d.ts +27 -0
- package/dist/components/chat/message/parts/image-part.svelte.d.ts +17 -0
- package/dist/components/chat/message/parts/markdown-part.svelte.d.ts +8 -0
- package/dist/components/chat/message/parts/reasoning-part.svelte.d.ts +12 -0
- package/dist/components/chat/message/parts/step-part.svelte.d.ts +8 -0
- package/dist/components/chat/message/parts/suggestion-part.svelte.d.ts +18 -0
- package/dist/components/chat/message/parts/tool-approval-part.svelte.d.ts +12 -0
- package/dist/components/chat/message/parts/tool-call-part.svelte.d.ts +12 -0
- package/dist/components/chat/message/parts/tool-result-part.svelte.d.ts +8 -0
- package/dist/components/chat/utilities/index.d.ts +2 -2
- package/dist/components/chat/utilities/types.d.ts +242 -2
- package/dist/components/chat/utilities/utilities.d.ts +64 -0
- package/dist/components/chat-conversation-header/chat-conversation-header.css +51 -0
- package/dist/components/chat-conversation-header/chat-conversation-header.schema.d.ts +3 -0
- package/dist/components/chat-conversation-header/chat-conversation-header.schema.js +64 -0
- package/dist/components/chat-conversation-header/chat-conversation-header.svelte.d.ts +19 -0
- package/dist/components/chat-conversation-header/chat-conversation-header.types.d.ts +18 -0
- package/dist/components/chat-conversation-header/chat-conversation-header.variables.d.ts +2 -0
- package/dist/components/chat-conversation-header/chat-conversation-header.variables.js +31 -0
- package/dist/components/chat-conversation-header/index.d.ts +5 -0
- package/dist/components/chat-conversation-header/index.js +3825 -0
- package/dist/components/chat-conversation-list/chat-conversation-list.css +114 -0
- package/dist/components/chat-conversation-list/chat-conversation-list.schema.d.ts +3 -0
- package/dist/components/chat-conversation-list/chat-conversation-list.schema.js +75 -0
- package/dist/components/chat-conversation-list/chat-conversation-list.svelte.d.ts +21 -0
- package/dist/components/chat-conversation-list/chat-conversation-list.types.d.ts +17 -0
- package/dist/components/chat-conversation-list/chat-conversation-list.variables.d.ts +2 -0
- package/dist/components/chat-conversation-list/chat-conversation-list.variables.js +31 -0
- package/dist/components/chat-conversation-list/conversation-summary.d.ts +30 -0
- package/dist/components/chat-conversation-list/index.d.ts +6 -0
- package/dist/components/chat-conversation-list/index.js +464 -0
- package/dist/components/checkbox/checkbox.schema.js +3 -32
- package/dist/components/checkbox/checkbox.variables.js +1 -31
- package/dist/components/checkbox/index.js +1 -31
- package/dist/components/checkbox-group/checkbox-group.schema.js +4 -32
- package/dist/components/checkbox-group/checkbox-group.variables.js +1 -31
- package/dist/components/checkbox-group/index.js +1 -31
- package/dist/components/chip/chip.schema.js +19 -40
- package/dist/components/chip/chip.types.d.ts +22 -0
- package/dist/components/chip/chip.variables.js +1 -31
- package/dist/components/chip/index.js +7 -31
- package/dist/components/choice-grid/choice-grid.schema.js +6 -33
- package/dist/components/choice-grid/choice-grid.variables.js +1 -31
- package/dist/components/choice-grid/index.js +1 -31
- package/dist/components/choice-grid-item/choice-grid-item.schema.js +4 -32
- package/dist/components/choice-grid-item/choice-grid-item.variables.js +1 -31
- package/dist/components/choice-grid-item/index.js +1 -31
- package/dist/components/click-away-listener/click-away-listener.schema.js +9 -33
- package/dist/components/click-away-listener/click-away-listener.variables.js +1 -31
- package/dist/components/click-away-listener/index.js +1 -31
- package/dist/components/code-block/code-block.css +77 -47
- package/dist/components/code-block/code-block.schema.js +4 -33
- package/dist/components/code-block/code-block.types.d.ts +9 -6
- package/dist/components/code-block/code-block.variables.js +1 -31
- package/dist/components/code-block/index.js +24 -42
- package/dist/components/collapsible/collapsible.schema.js +17 -32
- package/dist/components/collapsible/collapsible.variables.js +1 -31
- package/dist/components/collapsible/index.js +1 -31
- package/dist/components/color-field/color-field.schema.js +3 -32
- package/dist/components/color-field/color-field.variables.js +1 -31
- package/dist/components/color-field/index.js +1 -31
- package/dist/components/color-picker/color-picker.schema.js +5 -33
- package/dist/components/color-picker/color-picker.variables.js +1 -31
- package/dist/components/color-picker/index.js +1 -31
- package/dist/components/color-swatch-picker/color-swatch-picker.schema.js +9 -34
- package/dist/components/color-swatch-picker/color-swatch-picker.variables.js +1 -31
- package/dist/components/color-swatch-picker/index.js +1 -31
- package/dist/components/combobox/combobox.schema.js +10 -34
- package/dist/components/combobox/combobox.variables.js +1 -31
- package/dist/components/combobox/index.js +970 -511
- package/dist/components/command-item/command-item.schema.js +10 -35
- package/dist/components/command-item/command-item.variables.js +1 -31
- package/dist/components/command-item/index.js +1 -31
- package/dist/components/command-menu/command-menu.schema.js +15 -37
- package/dist/components/command-menu/command-menu.variables.js +1 -31
- package/dist/components/command-menu/index.js +962 -531
- package/dist/components/command-palette/command-palette.css +26 -12
- package/dist/components/command-palette/command-palette.schema.js +12 -36
- package/dist/components/command-palette/command-palette.variables.js +1 -31
- package/dist/components/command-palette/index.js +2 -32
- package/dist/components/confirm-dialog/confirm-dialog.schema.js +11 -34
- package/dist/components/confirm-dialog/confirm-dialog.variables.js +1 -31
- package/dist/components/confirm-dialog/index.js +455 -240
- package/dist/components/connection-indicator/connection-indicator.schema.js +1 -31
- package/dist/components/connection-indicator/connection-indicator.variables.js +1 -31
- package/dist/components/connection-indicator/index.js +1 -31
- package/dist/components/container/container.schema.js +12 -32
- package/dist/components/container/container.variables.js +1 -31
- package/dist/components/container/index.js +1 -31
- package/dist/components/context-menu/context-menu.context.d.ts +2 -0
- package/dist/components/context-menu/context-menu.schema.js +13 -37
- package/dist/components/context-menu/context-menu.types.d.ts +5 -0
- package/dist/components/context-menu/context-menu.variables.js +1 -31
- package/dist/components/context-menu/index.js +2111 -1670
- package/dist/components/context-menu-trigger/context-menu-trigger.schema.js +5 -33
- package/dist/components/context-menu-trigger/context-menu-trigger.types.d.ts +1 -0
- package/dist/components/context-menu-trigger/context-menu-trigger.variables.js +1 -31
- package/dist/components/context-menu-trigger/index.js +7 -31
- package/dist/components/copy-button/copy-button.schema.js +5 -33
- package/dist/components/copy-button/copy-button.variables.js +1 -31
- package/dist/components/copy-button/index.js +5 -32
- package/dist/components/data-grid/_internal/column-model.svelte.d.ts +43 -0
- package/dist/components/data-grid/_internal/geometry.d.ts +19 -0
- package/dist/components/data-grid/_internal/keyboard-model.d.ts +22 -0
- package/dist/components/data-grid/_internal/selection-model.svelte.d.ts +28 -0
- package/dist/components/data-grid/_internal/sort-model.d.ts +6 -0
- package/dist/components/data-grid/_internal/virtualization-adapter.svelte.d.ts +44 -0
- package/dist/components/data-grid/data-grid-selection-bind-probe.d.ts +4 -0
- package/dist/components/data-grid/data-grid.css +283 -0
- package/dist/components/data-grid/data-grid.schema.d.ts +3 -0
- package/dist/components/data-grid/data-grid.schema.js +136 -0
- package/dist/components/data-grid/data-grid.svelte.d.ts +40 -0
- package/dist/components/data-grid/data-grid.types.d.ts +102 -0
- package/dist/components/data-grid/data-grid.variables.d.ts +2 -0
- package/dist/components/data-grid/data-grid.variables.js +31 -0
- package/dist/components/data-grid/index.d.ts +5 -0
- package/dist/components/data-grid/index.js +3088 -0
- package/dist/components/data-list/data-list.schema.js +24 -36
- package/dist/components/data-list/data-list.types.d.ts +1 -0
- package/dist/components/data-list/data-list.variables.js +1 -31
- package/dist/components/data-list/index.js +1 -31
- package/dist/components/data-table/data-table.css +25 -0
- package/dist/components/data-table/data-table.schema.js +35 -34
- package/dist/components/data-table/data-table.types.d.ts +31 -1
- package/dist/components/data-table/data-table.variables.js +2 -32
- package/dist/components/data-table/index.js +458 -123
- package/dist/components/date-range-field/date-range-field.css +211 -0
- package/dist/components/date-range-field/date-range-field.schema.d.ts +3 -0
- package/dist/components/date-range-field/date-range-field.schema.js +95 -0
- package/dist/components/date-range-field/date-range-field.svelte.d.ts +19 -0
- package/dist/components/date-range-field/date-range-field.types.d.ts +72 -0
- package/dist/components/date-range-field/date-range-field.variables.d.ts +2 -0
- package/dist/components/date-range-field/date-range-field.variables.js +31 -0
- package/dist/components/date-range-field/index.d.ts +5 -0
- package/dist/components/date-range-field/index.js +297 -0
- package/dist/components/description-list/description-list.schema.js +7 -34
- package/dist/components/description-list/description-list.types.d.ts +1 -0
- package/dist/components/description-list/description-list.variables.js +1 -31
- package/dist/components/description-list/index.js +1 -31
- package/dist/components/diff-statistics/diff-statistics.schema.js +2 -32
- package/dist/components/diff-statistics/diff-statistics.types.d.ts +5 -2
- package/dist/components/diff-statistics/diff-statistics.variables.js +1 -31
- package/dist/components/diff-statistics/index.js +1 -31
- package/dist/components/diff-viewer/diff-viewer.schema.js +15 -36
- package/dist/components/diff-viewer/diff-viewer.variables.js +1 -31
- package/dist/components/diff-viewer/index.js +1 -31
- package/dist/components/divider/divider.schema.js +1 -31
- package/dist/components/divider/divider.svelte.d.ts +1 -1
- package/dist/components/divider/divider.variables.js +1 -31
- package/dist/components/divider/index.js +1 -31
- package/dist/components/drawer/drawer.schema.js +12 -35
- package/dist/components/drawer/drawer.variables.js +1 -31
- package/dist/components/drawer/index.js +382 -180
- package/dist/components/dropdown/dropdown.schema.js +9 -35
- package/dist/components/dropdown/dropdown.types.d.ts +4 -0
- package/dist/components/dropdown/dropdown.variables.js +1 -31
- package/dist/components/dropdown/index.js +1258 -827
- package/dist/components/dropdown-group/dropdown-group.schema.js +7 -34
- package/dist/components/dropdown-group/dropdown-group.types.d.ts +2 -0
- package/dist/components/dropdown-group/dropdown-group.variables.js +1 -31
- package/dist/components/dropdown-group/index.js +1 -31
- package/dist/components/dropdown-item/dropdown-item.schema.js +9 -35
- package/dist/components/dropdown-item/dropdown-item.types.d.ts +4 -0
- package/dist/components/dropdown-item/dropdown-item.variables.js +1 -31
- package/dist/components/dropdown-item/index.js +1 -31
- package/dist/components/dropdown-label/dropdown-label.schema.js +3 -32
- package/dist/components/dropdown-label/dropdown-label.types.d.ts +1 -0
- package/dist/components/dropdown-label/dropdown-label.variables.js +1 -31
- package/dist/components/dropdown-label/index.js +1 -31
- package/dist/components/dropdown-menu/dropdown-menu.schema.js +3 -32
- package/dist/components/dropdown-menu/dropdown-menu.types.d.ts +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.variables.js +1 -31
- package/dist/components/dropdown-menu/index.js +786 -355
- package/dist/components/dropdown-separator/dropdown-separator.schema.js +3 -32
- package/dist/components/dropdown-separator/dropdown-separator.types.d.ts +1 -0
- package/dist/components/dropdown-separator/dropdown-separator.variables.js +1 -31
- package/dist/components/dropdown-separator/index.js +1 -31
- package/dist/components/dropdown-trigger/dropdown-trigger.schema.js +3 -32
- package/dist/components/dropdown-trigger/dropdown-trigger.types.d.ts +1 -0
- package/dist/components/dropdown-trigger/dropdown-trigger.variables.js +1 -31
- package/dist/components/dropdown-trigger/index.js +1 -31
- package/dist/components/empty-state/empty-state.schema.js +7 -34
- package/dist/components/empty-state/empty-state.types.d.ts +3 -0
- package/dist/components/empty-state/empty-state.variables.js +1 -31
- package/dist/components/empty-state/index.js +1 -31
- package/dist/components/event-stream-viewer/event-stream-viewer.css +474 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.schema.d.ts +3 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.schema.js +92 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.svelte.d.ts +19 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.types.d.ts +81 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.variables.d.ts +2 -0
- package/dist/components/event-stream-viewer/event-stream-viewer.variables.js +31 -0
- package/dist/components/event-stream-viewer/index.d.ts +5 -0
- package/dist/components/event-stream-viewer/index.js +1036 -0
- package/dist/components/experimental/connection-indicator/index.js +1 -31
- package/dist/components/experimental/json-viewer/index.js +1 -31
- package/dist/components/experimental/message/index.js +1 -31
- package/dist/components/faceted-filter-bar/faceted-filter-bar.css +121 -0
- package/dist/components/faceted-filter-bar/faceted-filter-bar.schema.d.ts +3 -0
- package/dist/components/faceted-filter-bar/faceted-filter-bar.schema.js +97 -0
- package/dist/components/faceted-filter-bar/faceted-filter-bar.svelte.d.ts +18 -0
- package/dist/components/faceted-filter-bar/faceted-filter-bar.types.d.ts +95 -0
- package/dist/components/faceted-filter-bar/faceted-filter-bar.variables.d.ts +2 -0
- package/dist/components/faceted-filter-bar/faceted-filter-bar.variables.js +31 -0
- package/dist/components/faceted-filter-bar/index.d.ts +5 -0
- package/dist/components/faceted-filter-bar/index.js +1062 -0
- package/dist/components/feed/feed.schema.js +6 -33
- package/dist/components/feed/feed.types.d.ts +1 -0
- package/dist/components/feed/feed.variables.js +1 -31
- package/dist/components/feed/index.js +1 -31
- package/dist/components/feed-event/feed-event.schema.js +16 -35
- package/dist/components/feed-event/feed-event.types.d.ts +1 -0
- package/dist/components/feed-event/feed-event.variables.js +1 -31
- package/dist/components/feed-event/index.js +1 -31
- package/dist/components/file-upload/file-upload.schema.js +15 -38
- package/dist/components/file-upload/file-upload.variables.js +1 -31
- package/dist/components/file-upload/index.js +1 -31
- package/dist/components/floating-action-button/floating-action-button.css +3 -1
- package/dist/components/floating-action-button/floating-action-button.schema.js +11 -32
- package/dist/components/floating-action-button/floating-action-button.variables.js +1 -31
- package/dist/components/floating-action-button/index.js +1 -31
- package/dist/components/focus-trap/focus-trap.schema.js +21 -37
- package/dist/components/focus-trap/focus-trap.types.d.ts +5 -0
- package/dist/components/focus-trap/focus-trap.utilities.svelte.d.ts +14 -0
- package/dist/components/focus-trap/focus-trap.variables.js +1 -31
- package/dist/components/focus-trap/index.js +6 -33
- package/dist/components/form-field/form-field.schema.js +4 -32
- package/dist/components/form-field/form-field.variables.js +1 -31
- package/dist/components/form-field/index.js +1 -31
- package/dist/components/form-section/form-section.schema.js +4 -32
- package/dist/components/form-section/form-section.variables.js +1 -31
- package/dist/components/form-section/index.js +1 -31
- package/dist/components/grid/grid.css +24 -0
- package/dist/components/grid/grid.schema.d.ts +3 -0
- package/dist/components/grid/grid.schema.js +83 -0
- package/dist/components/grid/grid.svelte.d.ts +18 -0
- package/dist/components/grid/grid.types.d.ts +29 -0
- package/dist/components/grid/grid.variables.d.ts +2 -0
- package/dist/components/grid/grid.variables.js +31 -0
- package/dist/components/grid/index.d.ts +13 -0
- package/dist/components/grid/index.js +147 -0
- package/dist/components/grid-item/grid-item.schema.d.ts +3 -0
- package/dist/components/grid-item/grid-item.schema.js +110 -0
- package/dist/components/grid-item/grid-item.svelte.d.ts +16 -0
- package/dist/components/grid-item/grid-item.types.d.ts +21 -0
- package/dist/components/grid-item/grid-item.variables.d.ts +2 -0
- package/dist/components/grid-item/grid-item.variables.js +31 -0
- package/dist/components/grid-item/index.d.ts +4 -0
- package/dist/components/grid-item/index.js +87 -0
- package/dist/components/grid-list/grid-list.schema.js +6 -33
- package/dist/components/grid-list/grid-list.variables.js +1 -31
- package/dist/components/grid-list/index.js +1 -31
- package/dist/components/grid-list-item/grid-list-item.schema.js +19 -40
- package/dist/components/grid-list-item/grid-list-item.types.d.ts +3 -0
- package/dist/components/grid-list-item/grid-list-item.variables.js +1 -31
- package/dist/components/grid-list-item/index.js +1 -31
- package/dist/components/hover-card/hover-card.schema.js +21 -41
- package/dist/components/hover-card/hover-card.types.d.ts +8 -0
- package/dist/components/hover-card/hover-card.variables.js +1 -31
- package/dist/components/hover-card/index.js +789 -358
- package/dist/components/image/image.schema.js +9 -35
- package/dist/components/image/image.variables.js +1 -31
- package/dist/components/image/index.js +1 -31
- package/dist/components/input/index.js +1 -31
- package/dist/components/input/input.schema.js +22 -41
- package/dist/components/input/input.types.d.ts +12 -0
- package/dist/components/input/input.variables.js +1 -31
- package/dist/components/invocation-rule-builder/index.d.ts +5 -0
- package/dist/components/invocation-rule-builder/index.js +526 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.css +281 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.d.ts +3 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +101 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +16 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +147 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.variables.d.ts +2 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.variables.js +31 -0
- package/dist/components/json-schema-editor/index.js +5328 -12274
- package/dist/components/json-schema-editor/json-schema-editor.schema.js +8 -34
- package/dist/components/json-schema-editor/json-schema-editor.types.d.ts +1 -0
- package/dist/components/json-schema-editor/json-schema-editor.variables.js +1 -31
- package/dist/components/json-viewer/index.js +5 -35
- package/dist/components/json-viewer/json-viewer.css +6 -0
- package/dist/components/json-viewer/json-viewer.schema.js +4 -32
- package/dist/components/json-viewer/json-viewer.variables.js +1 -31
- package/dist/components/kanban-board/index.js +1 -31
- package/dist/components/kanban-board/kanban-board.schema.js +19 -40
- package/dist/components/kanban-board/kanban-board.types.d.ts +4 -0
- package/dist/components/kanban-board/kanban-board.variables.js +1 -31
- package/dist/components/kbd/index.js +1 -31
- package/dist/components/kbd/kbd.schema.js +11 -32
- package/dist/components/kbd/kbd.variables.js +1 -31
- package/dist/components/keyboard-shortcuts/index.js +1 -31
- package/dist/components/keyboard-shortcuts/keyboard-shortcuts.schema.js +6 -33
- package/dist/components/keyboard-shortcuts/keyboard-shortcuts.variables.js +1 -31
- package/dist/components/label/index.js +1 -31
- package/dist/components/label/label.schema.js +6 -33
- package/dist/components/label/label.variables.js +1 -31
- package/dist/components/line-chart/index.js +1 -31
- package/dist/components/line-chart/line-chart.schema.js +40 -45
- package/dist/components/line-chart/line-chart.types.d.ts +13 -0
- package/dist/components/line-chart/line-chart.variables.js +1 -31
- package/dist/components/link/index.js +1 -31
- package/dist/components/link/link.schema.js +6 -33
- package/dist/components/link/link.variables.js +1 -31
- package/dist/components/load-more/index.js +3 -32
- package/dist/components/load-more/load-more.schema.js +10 -34
- package/dist/components/load-more/load-more.variables.js +1 -31
- package/dist/components/markdown-editor/index.js +3484 -3050
- package/dist/components/markdown-editor/markdown-editor.schema.js +29 -42
- package/dist/components/markdown-editor/markdown-editor.variables.js +1 -31
- package/dist/components/masonry/index.d.ts +5 -0
- package/dist/components/masonry/index.js +76 -0
- package/dist/components/masonry/masonry.css +12 -0
- package/dist/components/masonry/masonry.schema.d.ts +3 -0
- package/dist/components/masonry/masonry.schema.js +63 -0
- package/dist/components/masonry/masonry.svelte.d.ts +17 -0
- package/dist/components/masonry/masonry.types.d.ts +15 -0
- package/dist/components/masonry/masonry.variables.d.ts +2 -0
- package/dist/components/masonry/masonry.variables.js +31 -0
- package/dist/components/matrix-chart/index.js +9 -32
- package/dist/components/matrix-chart/matrix-chart.css +4 -0
- package/dist/components/matrix-chart/matrix-chart.schema.js +42 -45
- package/dist/components/matrix-chart/matrix-chart.types.d.ts +14 -1
- package/dist/components/matrix-chart/matrix-chart.variables.js +1 -31
- package/dist/components/media-controls/index.js +3 -32
- package/dist/components/media-controls/media-controls.schema.js +7 -34
- package/dist/components/media-controls/media-controls.variables.js +1 -31
- package/dist/components/menu-bar/index.js +1 -31
- package/dist/components/menu-bar/menu-bar.schema.js +11 -36
- package/dist/components/menu-bar/menu-bar.types.d.ts +4 -0
- package/dist/components/menu-bar/menu-bar.variables.js +1 -31
- package/dist/components/message/index.js +1 -31
- package/dist/components/message/message.schema.js +4 -32
- package/dist/components/message/message.variables.js +1 -31
- package/dist/components/modal/index.js +333 -118
- package/dist/components/modal/modal.schema.js +19 -40
- package/dist/components/modal/modal.types.d.ts +8 -0
- package/dist/components/modal/modal.variables.js +1 -31
- package/dist/components/navigation-bar/index.d.ts +1 -1
- package/dist/components/navigation-bar/index.js +19 -38
- package/dist/components/navigation-bar/navigation-bar.css +66 -0
- package/dist/components/navigation-bar/navigation-bar.schema.js +16 -33
- package/dist/components/navigation-bar/navigation-bar.svelte.d.ts +1 -1
- package/dist/components/navigation-bar/navigation-bar.types.d.ts +18 -0
- package/dist/components/navigation-bar/navigation-bar.variables.js +1 -31
- package/dist/components/navigation-item/index.js +1 -31
- package/dist/components/navigation-item/navigation-item.schema.js +16 -37
- package/dist/components/navigation-item/navigation-item.types.d.ts +4 -0
- package/dist/components/navigation-item/navigation-item.variables.js +1 -31
- package/dist/components/number-input/index.js +1 -31
- package/dist/components/number-input/number-input.schema.js +27 -44
- package/dist/components/number-input/number-input.types.d.ts +13 -0
- package/dist/components/number-input/number-input.variables.js +1 -31
- package/dist/components/pagination/index.js +1 -31
- package/dist/components/pagination/pagination.css +0 -1
- package/dist/components/pagination/pagination.schema.js +1 -31
- package/dist/components/pagination/pagination.variables.js +1 -31
- package/dist/components/payload-inspector/index.d.ts +5 -0
- package/dist/components/payload-inspector/index.js +2002 -0
- package/dist/components/payload-inspector/payload-inspector.css +173 -0
- package/dist/components/payload-inspector/payload-inspector.schema.d.ts +3 -0
- package/dist/components/payload-inspector/payload-inspector.schema.js +95 -0
- package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +19 -0
- package/dist/components/payload-inspector/payload-inspector.types.d.ts +69 -0
- package/dist/components/payload-inspector/payload-inspector.variables.d.ts +2 -0
- package/dist/components/payload-inspector/payload-inspector.variables.js +31 -0
- package/dist/components/permission-matrix/index.d.ts +5 -0
- package/dist/components/permission-matrix/index.js +474 -0
- package/dist/components/permission-matrix/permission-matrix.css +165 -0
- package/dist/components/permission-matrix/permission-matrix.schema.d.ts +3 -0
- package/dist/components/permission-matrix/permission-matrix.schema.js +100 -0
- package/dist/components/permission-matrix/permission-matrix.svelte.d.ts +20 -0
- package/dist/components/permission-matrix/permission-matrix.types.d.ts +58 -0
- package/dist/components/permission-matrix/permission-matrix.variables.d.ts +2 -0
- package/dist/components/permission-matrix/permission-matrix.variables.js +31 -0
- package/dist/components/phone-input/index.js +1 -31
- package/dist/components/phone-input/phone-input.schema.js +3 -32
- package/dist/components/phone-input/phone-input.variables.js +1 -31
- package/dist/components/pin-input/index.js +1 -31
- package/dist/components/pin-input/pin-input.schema.js +6 -33
- package/dist/components/pin-input/pin-input.variables.js +1 -31
- package/dist/components/popover/index.js +793 -362
- package/dist/components/popover/popover.schema.js +12 -34
- package/dist/components/popover/popover.types.d.ts +6 -0
- package/dist/components/popover/popover.variables.js +1 -31
- package/dist/components/portal/index.js +1 -31
- package/dist/components/portal/portal.schema.js +19 -36
- package/dist/components/portal/portal.types.d.ts +4 -0
- package/dist/components/portal/portal.variables.js +1 -31
- package/dist/components/pricing-card/index.js +1 -31
- package/dist/components/pricing-card/pricing-card.css +11 -3
- package/dist/components/pricing-card/pricing-card.schema.js +12 -32
- package/dist/components/pricing-card/pricing-card.variables.js +1 -31
- package/dist/components/progress/index.js +1 -31
- package/dist/components/progress/progress.schema.js +1 -31
- package/dist/components/progress/progress.variables.js +1 -31
- package/dist/components/radio-group/index.js +1 -31
- package/dist/components/radio-group/radio-group.schema.js +4 -32
- package/dist/components/radio-group/radio-group.variables.js +1 -31
- package/dist/components/rating/index.js +1 -31
- package/dist/components/rating/rating.schema.js +4 -32
- package/dist/components/rating/rating.variables.js +1 -31
- package/dist/components/resizable-panels/index.js +1 -31
- package/dist/components/resizable-panels/resizable-panels.schema.js +13 -37
- package/dist/components/resizable-panels/resizable-panels.types.d.ts +4 -0
- package/dist/components/resizable-panels/resizable-panels.variables.js +1 -31
- package/dist/components/review-editor/index.d.ts +1 -1
- package/dist/components/review-editor/index.js +3700 -3262
- package/dist/components/review-editor/review-editor-selection-geometry.d.ts +2 -0
- package/dist/components/review-editor/review-editor-selection-types.d.ts +62 -0
- package/dist/components/review-editor/review-editor-selection.svelte.d.ts +1 -58
- package/dist/components/review-editor/review-editor.schema.js +15 -38
- package/dist/components/review-editor/review-editor.variables.js +1 -31
- package/dist/components/run-step-timeline/index.d.ts +5 -0
- package/dist/components/run-step-timeline/index.js +658 -0
- package/dist/components/run-step-timeline/run-step-timeline.css +215 -0
- package/dist/components/run-step-timeline/run-step-timeline.schema.d.ts +3 -0
- package/dist/components/run-step-timeline/run-step-timeline.schema.js +129 -0
- package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +19 -0
- package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +111 -0
- package/dist/components/run-step-timeline/run-step-timeline.variables.d.ts +2 -0
- package/dist/components/run-step-timeline/run-step-timeline.variables.js +31 -0
- package/dist/components/schema-form/index.d.ts +6 -0
- package/dist/components/schema-form/index.js +1164 -0
- package/dist/components/schema-form/schema-form-model.d.ts +46 -0
- package/dist/components/schema-form/schema-form-validation.d.ts +33 -0
- package/dist/components/schema-form/schema-form.css +180 -0
- package/dist/components/schema-form/schema-form.schema.d.ts +3 -0
- package/dist/components/schema-form/schema-form.schema.js +69 -0
- package/dist/components/schema-form/schema-form.svelte.d.ts +43 -0
- package/dist/components/schema-form/schema-form.types.d.ts +22 -0
- package/dist/components/schema-form/schema-form.variables.d.ts +2 -0
- package/dist/components/schema-form/schema-form.variables.js +31 -0
- package/dist/components/scroll-area/index.js +1 -31
- package/dist/components/scroll-area/scroll-area.schema.js +4 -32
- package/dist/components/scroll-area/scroll-area.variables.js +1 -31
- package/dist/components/search-field/index.js +1 -31
- package/dist/components/search-field/search-field.schema.js +9 -35
- package/dist/components/search-field/search-field.variables.js +1 -31
- package/dist/components/secret-value-field/index.d.ts +5 -0
- package/dist/components/secret-value-field/index.js +316 -0
- package/dist/components/secret-value-field/secret-value-field.css +147 -0
- package/dist/components/secret-value-field/secret-value-field.schema.d.ts +3 -0
- package/dist/components/secret-value-field/secret-value-field.schema.js +87 -0
- package/dist/components/secret-value-field/secret-value-field.svelte.d.ts +18 -0
- package/dist/components/secret-value-field/secret-value-field.types.d.ts +37 -0
- package/dist/components/secret-value-field/secret-value-field.variables.d.ts +2 -0
- package/dist/components/secret-value-field/secret-value-field.variables.js +31 -0
- package/dist/components/section-heading/index.js +1 -31
- package/dist/components/section-heading/section-heading.schema.js +8 -34
- package/dist/components/section-heading/section-heading.variables.js +1 -31
- package/dist/components/segment/index.js +1 -31
- package/dist/components/segment/segment.schema.js +11 -35
- package/dist/components/segment/segment.variables.js +1 -31
- package/dist/components/segmented-control/index.js +1 -31
- package/dist/components/segmented-control/segmented-control.css +17 -0
- package/dist/components/segmented-control/segmented-control.schema.js +10 -35
- package/dist/components/segmented-control/segmented-control.types.d.ts +2 -0
- package/dist/components/segmented-control/segmented-control.variables.js +1 -31
- package/dist/components/select/index.js +1 -31
- package/dist/components/select/select.schema.js +8 -34
- package/dist/components/select/select.variables.js +1 -31
- package/dist/components/selection-popover/index.js +793 -361
- package/dist/components/selection-popover/selection-popover.schema.js +12 -36
- package/dist/components/selection-popover/selection-popover.types.d.ts +8 -0
- package/dist/components/selection-popover/selection-popover.variables.js +1 -31
- package/dist/components/share-card/index.js +159 -174
- package/dist/components/share-card/share-card.schema.js +5 -33
- package/dist/components/share-card/share-card.variables.js +1 -31
- package/dist/components/sheet/index.js +387 -172
- package/dist/components/sheet/sheet.schema.js +12 -35
- package/dist/components/sheet/sheet.variables.js +1 -31
- package/dist/components/shortcut-hint/index.js +1 -31
- package/dist/components/shortcut-hint/shortcut-hint.schema.js +3 -32
- package/dist/components/shortcut-hint/shortcut-hint.variables.js +1 -31
- package/dist/components/side-navigation/index.d.ts +1 -1
- package/dist/components/side-navigation/index.js +1 -31
- package/dist/components/side-navigation/side-navigation.schema.js +6 -33
- package/dist/components/side-navigation/side-navigation.variables.js +1 -31
- package/dist/components/side-navigation-group/index.js +1 -31
- package/dist/components/side-navigation-group/side-navigation-group.schema.js +10 -35
- package/dist/components/side-navigation-group/side-navigation-group.variables.js +1 -31
- package/dist/components/side-navigation-item/index.js +1 -31
- package/dist/components/side-navigation-item/side-navigation-item.schema.js +16 -37
- package/dist/components/side-navigation-item/side-navigation-item.variables.js +1 -31
- package/dist/components/sidebar/index.js +448 -246
- package/dist/components/sidebar/sidebar.schema.js +7 -34
- package/dist/components/sidebar/sidebar.variables.js +1 -31
- package/dist/components/skeleton/index.js +1 -31
- package/dist/components/skeleton/skeleton.schema.js +9 -35
- package/dist/components/skeleton/skeleton.types.d.ts +4 -0
- package/dist/components/skeleton/skeleton.variables.js +1 -31
- package/dist/components/skip-link/index.js +1 -31
- package/dist/components/skip-link/skip-link.schema.js +11 -32
- package/dist/components/skip-link/skip-link.variables.js +1 -31
- package/dist/components/slider/index.js +1 -31
- package/dist/components/slider/slider.schema.js +5 -33
- package/dist/components/slider/slider.types.d.ts +2 -0
- package/dist/components/slider/slider.variables.js +1 -31
- package/dist/components/sortable-list/index.js +1 -31
- package/dist/components/sortable-list/sortable-list.schema.js +27 -40
- package/dist/components/sortable-list/sortable-list.types.d.ts +1 -0
- package/dist/components/sortable-list/sortable-list.variables.js +1 -31
- package/dist/components/spectrogram/index.js +1 -31
- package/dist/components/spectrogram/spectrogram.css +2 -1
- package/dist/components/spectrogram/spectrogram.schema.js +51 -42
- package/dist/components/spectrogram/spectrogram.types.d.ts +12 -1
- package/dist/components/spectrogram/spectrogram.variables.js +1 -31
- package/dist/components/spectrum-chart/index.js +1 -31
- package/dist/components/spectrum-chart/spectrum-chart.schema.js +43 -41
- package/dist/components/spectrum-chart/spectrum-chart.types.d.ts +9 -0
- package/dist/components/spectrum-chart/spectrum-chart.variables.js +1 -31
- package/dist/components/speed-dial/index.d.ts +13 -0
- package/dist/components/speed-dial/index.js +529 -0
- package/dist/components/speed-dial/speed-dial.context.d.ts +5 -0
- package/dist/components/speed-dial/speed-dial.css +112 -0
- package/dist/components/speed-dial/speed-dial.schema.d.ts +3 -0
- package/dist/components/speed-dial/speed-dial.schema.js +76 -0
- package/dist/components/speed-dial/speed-dial.svelte.d.ts +17 -0
- package/dist/components/speed-dial/speed-dial.types.d.ts +54 -0
- package/dist/components/speed-dial/speed-dial.variables.d.ts +2 -0
- package/dist/components/speed-dial/speed-dial.variables.js +31 -0
- package/dist/components/speed-dial-action/index.d.ts +4 -0
- package/dist/components/speed-dial-action/index.js +264 -0
- package/dist/components/speed-dial-action/speed-dial-action.schema.d.ts +3 -0
- package/dist/components/speed-dial-action/speed-dial-action.schema.js +71 -0
- package/dist/components/speed-dial-action/speed-dial-action.svelte.d.ts +16 -0
- package/dist/components/speed-dial-action/speed-dial-action.types.d.ts +44 -0
- package/dist/components/speed-dial-action/speed-dial-action.variables.d.ts +2 -0
- package/dist/components/speed-dial-action/speed-dial-action.variables.js +31 -0
- package/dist/components/spinner/index.js +1 -31
- package/dist/components/spinner/spinner.schema.js +1 -31
- package/dist/components/spinner/spinner.variables.js +1 -31
- package/dist/components/stacked-list-item/index.js +1 -31
- package/dist/components/stacked-list-item/stacked-list-item.schema.js +20 -40
- package/dist/components/stacked-list-item/stacked-list-item.types.d.ts +4 -0
- package/dist/components/stacked-list-item/stacked-list-item.variables.js +1 -31
- package/dist/components/stat/index.js +1 -31
- package/dist/components/stat/stat.schema.js +7 -34
- package/dist/components/stat/stat.variables.js +1 -31
- package/dist/components/stat-group/index.js +1 -31
- package/dist/components/stat-group/stat-group.schema.js +4 -32
- package/dist/components/stat-group/stat-group.variables.js +1 -31
- package/dist/components/status-dot/index.js +1 -31
- package/dist/components/status-dot/status-dot.css +1 -1
- package/dist/components/status-dot/status-dot.schema.js +1 -31
- package/dist/components/status-dot/status-dot.variables.js +1 -31
- package/dist/components/steps/index.js +1 -31
- package/dist/components/steps/steps.css +30 -10
- package/dist/components/steps/steps.schema.js +4 -32
- package/dist/components/steps/steps.variables.js +1 -31
- package/dist/components/subscription-badge/index.js +2 -32
- package/dist/components/subscription-badge/subscription-badge.schema.js +1 -31
- package/dist/components/subscription-badge/subscription-badge.variables.js +1 -31
- package/dist/components/surface/index.js +1 -31
- package/dist/components/surface/surface.schema.js +11 -32
- package/dist/components/surface/surface.types.d.ts +1 -0
- package/dist/components/surface/surface.variables.js +1 -31
- package/dist/components/tab/index.js +1 -31
- package/dist/components/tab/tab.schema.js +6 -33
- package/dist/components/tab/tab.variables.js +1 -31
- package/dist/components/tab-list/index.js +1 -31
- package/dist/components/tab-list/tab-list.schema.js +4 -32
- package/dist/components/tab-list/tab-list.variables.js +1 -31
- package/dist/components/tab-panel/index.js +1 -31
- package/dist/components/tab-panel/tab-panel.schema.js +4 -32
- package/dist/components/tab-panel/tab-panel.variables.js +1 -31
- package/dist/components/table/index.js +94 -53
- package/dist/components/table/table.css +23 -4
- package/dist/components/table/table.schema.js +6 -33
- package/dist/components/table/table.types.d.ts +2 -1
- package/dist/components/table/table.variables.js +1 -31
- package/dist/components/table-body/index.js +1 -31
- package/dist/components/table-body/table-body.schema.js +4 -32
- package/dist/components/table-body/table-body.variables.js +1 -31
- package/dist/components/table-cell/index.js +1 -31
- package/dist/components/table-cell/table-cell.schema.js +11 -33
- package/dist/components/table-cell/table-cell.types.d.ts +4 -7
- package/dist/components/table-cell/table-cell.variables.js +1 -31
- package/dist/components/table-header/index.js +1 -31
- package/dist/components/table-header/table-header.schema.js +6 -33
- package/dist/components/table-header/table-header.variables.js +1 -31
- package/dist/components/table-header-cell/index.js +1 -31
- package/dist/components/table-header-cell/table-header-cell.schema.js +4 -32
- package/dist/components/table-header-cell/table-header-cell.variables.js +1 -31
- package/dist/components/table-row/index.js +13 -32
- package/dist/components/table-row/table-row.schema.js +8 -34
- package/dist/components/table-row/table-row.types.d.ts +4 -1
- package/dist/components/table-row/table-row.variables.js +1 -31
- package/dist/components/tabs/index.js +1 -31
- package/dist/components/tabs/tabs.css +1 -1
- package/dist/components/tabs/tabs.schema.js +4 -32
- package/dist/components/tabs/tabs.variables.js +1 -31
- package/dist/components/tag-input/index.js +1 -31
- package/dist/components/tag-input/tag-input.css +2 -2
- package/dist/components/tag-input/tag-input.schema.js +5 -33
- package/dist/components/tag-input/tag-input.variables.js +1 -31
- package/dist/components/textarea/index.js +1 -31
- package/dist/components/textarea/textarea.css +1 -0
- package/dist/components/textarea/textarea.schema.js +13 -33
- package/dist/components/textarea/textarea.types.d.ts +4 -0
- package/dist/components/textarea/textarea.variables.js +1 -31
- package/dist/components/timeline/index.js +2 -32
- package/dist/components/timeline/timeline.css +40 -8
- package/dist/components/timeline/timeline.schema.js +17 -33
- package/dist/components/timeline/timeline.svelte.d.ts +2 -2
- package/dist/components/timeline/timeline.types.d.ts +2 -2
- package/dist/components/timeline/timeline.variables.js +1 -31
- package/dist/components/toast-region/index.js +106 -81
- package/dist/components/toast-region/toast-region.schema.js +3 -32
- package/dist/components/toast-region/toast-region.variables.js +1 -31
- package/dist/components/toggle/index.js +1 -31
- package/dist/components/toggle/toggle.css +5 -2
- package/dist/components/toggle/toggle.schema.js +1 -31
- package/dist/components/toggle/toggle.variables.js +1 -31
- package/dist/components/toolbar/index.js +1 -31
- package/dist/components/toolbar/toolbar.schema.js +12 -32
- package/dist/components/toolbar/toolbar.variables.js +1 -31
- package/dist/components/tooltip/index.js +792 -361
- package/dist/components/tooltip/tooltip.css +11 -2
- package/dist/components/tooltip/tooltip.schema.js +10 -35
- package/dist/components/tooltip/tooltip.types.d.ts +4 -0
- package/dist/components/tooltip/tooltip.variables.js +1 -31
- package/dist/components/transfer-list/index.d.ts +5 -0
- package/dist/components/transfer-list/index.js +451 -0
- package/dist/components/transfer-list/transfer-list.css +114 -0
- package/dist/components/transfer-list/transfer-list.schema.d.ts +3 -0
- package/dist/components/transfer-list/transfer-list.schema.js +91 -0
- package/dist/components/transfer-list/transfer-list.svelte.d.ts +17 -0
- package/dist/components/transfer-list/transfer-list.types.d.ts +52 -0
- package/dist/components/transfer-list/transfer-list.variables.d.ts +2 -0
- package/dist/components/transfer-list/transfer-list.variables.js +31 -0
- package/dist/components/tree/index.d.ts +9 -4
- package/dist/components/tree/index.js +3433 -365
- package/dist/components/tree/tree.css +203 -3
- package/dist/components/tree/tree.schema.js +72 -34
- package/dist/components/tree/tree.svelte.d.ts +2 -2
- package/dist/components/tree/tree.types.d.ts +69 -3
- package/dist/components/tree/tree.variables.js +6 -32
- package/dist/components/tree-item/index.js +608 -169
- package/dist/components/tree-item/tree-item.schema.js +19 -36
- package/dist/components/tree-item/tree-item.types.d.ts +11 -3
- package/dist/components/tree-item/tree-item.variables.js +1 -31
- package/dist/components/typography/index.js +1 -31
- package/dist/components/typography/typography.schema.js +12 -32
- package/dist/components/typography/typography.variables.js +1 -31
- package/dist/components/virtual-list/index.d.ts +7 -0
- package/dist/components/virtual-list/index.js +266 -0
- package/dist/components/virtual-list/virtual-list.css +30 -0
- package/dist/components/virtual-list/virtual-list.schema.d.ts +3 -0
- package/dist/components/virtual-list/virtual-list.schema.js +88 -0
- package/dist/components/virtual-list/virtual-list.svelte.d.ts +42 -0
- package/dist/components/virtual-list/virtual-list.types.d.ts +54 -0
- package/dist/components/virtual-list/virtual-list.variables.d.ts +2 -0
- package/dist/components/virtual-list/virtual-list.variables.js +31 -0
- package/dist/components/visually-hidden/index.js +1 -31
- package/dist/components/visually-hidden/visually-hidden.schema.js +12 -32
- package/dist/components/visually-hidden/visually-hidden.variables.js +1 -31
- package/dist/components/waveform/index.js +1 -31
- package/dist/components/waveform/waveform.schema.js +34 -41
- package/dist/components/waveform/waveform.types.d.ts +9 -0
- package/dist/components/waveform/waveform.variables.js +1 -31
- package/dist/highlighters/shiki/index.js +9 -32
- package/dist/index.d.ts +41 -3
- package/dist/index.js +192 -180
- package/dist/markdown/rendering/rehype-shiki-sync.d.ts +9 -0
- package/dist/markdown/rendering/rehype-shiki-sync.js +23 -10
- package/dist/markdown/rendering/render.js +8 -2
- package/dist/schema-types.d.ts +10 -0
- package/dist/server/components/access-gate/access-gate.schema.js +49 -0
- package/dist/server/components/access-gate/access-gate.variables.js +12 -0
- package/dist/server/components/access-gate/index.css +130 -0
- package/dist/server/components/access-gate/index.js +1693 -0
- package/dist/server/components/accordion/accordion.schema.js +12 -33
- package/dist/server/components/accordion/accordion.variables.js +1 -32
- package/dist/server/components/accordion/index.js +1 -32
- package/dist/server/components/accordion-item/accordion-item.schema.js +12 -33
- package/dist/server/components/accordion-item/accordion-item.variables.js +1 -32
- package/dist/server/components/accordion-item/index.js +1 -32
- package/dist/server/components/alert/alert.schema.js +19 -33
- package/dist/server/components/alert/alert.variables.js +1 -32
- package/dist/server/components/alert/index.js +1 -32
- package/dist/server/components/alert-dialog/alert-dialog.schema.js +17 -40
- package/dist/server/components/alert-dialog/alert-dialog.variables.js +1 -32
- package/dist/server/components/alert-dialog/index.js +274 -84
- package/dist/server/components/area-chart/area-chart.schema.js +42 -47
- package/dist/server/components/area-chart/area-chart.variables.js +1 -32
- package/dist/server/components/area-chart/index.js +1 -32
- package/dist/server/components/aspect-ratio/aspect-ratio.schema.js +12 -33
- package/dist/server/components/aspect-ratio/aspect-ratio.variables.js +1 -32
- package/dist/server/components/aspect-ratio/index.js +1 -32
- package/dist/server/components/autocomplete/autocomplete.schema.js +29 -46
- package/dist/server/components/autocomplete/autocomplete.variables.js +1 -32
- package/dist/server/components/autocomplete/index.css +0 -4
- package/dist/server/components/autocomplete/index.js +9 -34
- package/dist/server/components/avatar/avatar.schema.js +3 -33
- package/dist/server/components/avatar/avatar.variables.js +1 -32
- package/dist/server/components/avatar/index.css +1 -0
- package/dist/server/components/avatar/index.js +1 -32
- package/dist/server/components/avatar-group/avatar-group.schema.js +6 -32
- package/dist/server/components/avatar-group/avatar-group.variables.js +1 -32
- package/dist/server/components/avatar-group/index.js +5 -32
- package/dist/server/components/backdrop/backdrop.schema.js +5 -34
- package/dist/server/components/backdrop/backdrop.variables.js +1 -32
- package/dist/server/components/backdrop/index.js +2 -33
- package/dist/server/components/badge/badge.schema.js +12 -33
- package/dist/server/components/badge/badge.variables.js +1 -32
- package/dist/server/components/badge/index.css +1 -1
- package/dist/server/components/badge/index.js +1 -32
- package/dist/server/components/banner/banner.schema.js +8 -35
- package/dist/server/components/banner/banner.variables.js +1 -32
- package/dist/server/components/banner/index.js +1 -32
- package/dist/server/components/bar-chart/bar-chart.schema.js +42 -47
- package/dist/server/components/bar-chart/bar-chart.variables.js +1 -32
- package/dist/server/components/bar-chart/index.css +4 -0
- package/dist/server/components/bar-chart/index.js +2 -33
- package/dist/server/components/breadcrumbs/breadcrumbs.schema.js +1 -32
- package/dist/server/components/breadcrumbs/breadcrumbs.variables.js +1 -32
- package/dist/server/components/breadcrumbs/index.js +1 -32
- package/dist/server/components/button/button.schema.js +20 -33
- package/dist/server/components/button/button.variables.js +1 -32
- package/dist/server/components/button/index.js +1 -32
- package/dist/server/components/button-group/button-group.schema.js +8 -35
- package/dist/server/components/button-group/button-group.variables.js +1 -32
- package/dist/server/components/button-group/index.js +1 -32
- package/dist/server/components/callout/callout.schema.js +6 -34
- package/dist/server/components/callout/callout.variables.js +1 -32
- package/dist/server/components/callout/index.js +1 -32
- package/dist/server/components/capability-gate/capability-gate.schema.js +9 -36
- package/dist/server/components/capability-gate/capability-gate.variables.js +1 -32
- package/dist/server/components/capability-gate/index.css +5 -2
- package/dist/server/components/capability-gate/index.js +1 -32
- package/dist/server/components/card/card.schema.js +7 -35
- package/dist/server/components/card/card.variables.js +1 -32
- package/dist/server/components/card/index.js +1 -32
- package/dist/server/components/chat/chat.schema.js +161 -49
- package/dist/server/components/chat/chat.variables.js +1 -32
- package/dist/server/components/chat/index.js +2665 -1064
- package/dist/server/components/chat-conversation-header/chat-conversation-header.schema.js +45 -0
- package/dist/server/components/chat-conversation-header/chat-conversation-header.variables.js +12 -0
- package/dist/server/components/chat-conversation-header/index.css +309 -0
- package/dist/server/components/chat-conversation-header/index.js +1468 -0
- package/dist/server/components/chat-conversation-list/chat-conversation-list.schema.js +56 -0
- package/dist/server/components/chat-conversation-list/chat-conversation-list.variables.js +12 -0
- package/dist/server/components/chat-conversation-list/index.css +115 -0
- package/dist/server/components/chat-conversation-list/index.js +355 -0
- package/dist/server/components/checkbox/checkbox.schema.js +3 -33
- package/dist/server/components/checkbox/checkbox.variables.js +1 -32
- package/dist/server/components/checkbox/index.js +1 -32
- package/dist/server/components/checkbox-group/checkbox-group.schema.js +4 -33
- package/dist/server/components/checkbox-group/checkbox-group.variables.js +1 -32
- package/dist/server/components/checkbox-group/index.js +1 -32
- package/dist/server/components/chip/chip.schema.js +19 -41
- package/dist/server/components/chip/chip.variables.js +1 -32
- package/dist/server/components/chip/index.js +7 -32
- package/dist/server/components/choice-grid/choice-grid.schema.js +6 -34
- package/dist/server/components/choice-grid/choice-grid.variables.js +1 -32
- package/dist/server/components/choice-grid/index.js +1 -32
- package/dist/server/components/choice-grid-item/choice-grid-item.schema.js +4 -33
- package/dist/server/components/choice-grid-item/choice-grid-item.variables.js +1 -32
- package/dist/server/components/choice-grid-item/index.js +1 -32
- package/dist/server/components/click-away-listener/click-away-listener.schema.js +9 -34
- package/dist/server/components/click-away-listener/click-away-listener.variables.js +1 -32
- package/dist/server/components/click-away-listener/index.js +1 -32
- package/dist/server/components/code-block/code-block.schema.js +4 -34
- package/dist/server/components/code-block/code-block.variables.js +1 -32
- package/dist/server/components/code-block/index.css +42 -22
- package/dist/server/components/code-block/index.js +14 -38
- package/dist/server/components/collapsible/collapsible.schema.js +17 -33
- package/dist/server/components/collapsible/collapsible.variables.js +1 -32
- package/dist/server/components/collapsible/index.js +1 -32
- package/dist/server/components/color-field/color-field.schema.js +3 -33
- package/dist/server/components/color-field/color-field.variables.js +1 -32
- package/dist/server/components/color-field/index.js +1 -32
- package/dist/server/components/color-picker/color-picker.schema.js +5 -34
- package/dist/server/components/color-picker/color-picker.variables.js +1 -32
- package/dist/server/components/color-picker/index.js +1 -32
- package/dist/server/components/color-swatch-picker/color-swatch-picker.schema.js +9 -35
- package/dist/server/components/color-swatch-picker/color-swatch-picker.variables.js +1 -32
- package/dist/server/components/color-swatch-picker/index.js +1 -32
- package/dist/server/components/combobox/combobox.schema.js +10 -35
- package/dist/server/components/combobox/combobox.variables.js +1 -32
- package/dist/server/components/combobox/index.js +53 -65
- package/dist/server/components/command-item/command-item.schema.js +10 -36
- package/dist/server/components/command-item/command-item.variables.js +1 -32
- package/dist/server/components/command-item/index.js +1 -32
- package/dist/server/components/command-menu/command-menu.schema.js +15 -38
- package/dist/server/components/command-menu/command-menu.variables.js +1 -32
- package/dist/server/components/command-menu/index.js +1 -32
- package/dist/server/components/command-palette/command-palette.schema.js +12 -37
- package/dist/server/components/command-palette/command-palette.variables.js +1 -32
- package/dist/server/components/command-palette/index.css +12 -12
- package/dist/server/components/command-palette/index.js +2 -33
- package/dist/server/components/confirm-dialog/confirm-dialog.schema.js +11 -35
- package/dist/server/components/confirm-dialog/confirm-dialog.variables.js +1 -32
- package/dist/server/components/confirm-dialog/index.js +274 -84
- package/dist/server/components/connection-indicator/connection-indicator.schema.js +1 -32
- package/dist/server/components/connection-indicator/connection-indicator.variables.js +1 -32
- package/dist/server/components/connection-indicator/index.js +1 -32
- package/dist/server/components/container/container.schema.js +12 -33
- package/dist/server/components/container/container.variables.js +1 -32
- package/dist/server/components/container/index.js +1 -32
- package/dist/server/components/context-menu/context-menu.schema.js +13 -38
- package/dist/server/components/context-menu/context-menu.variables.js +1 -32
- package/dist/server/components/context-menu/index.js +13 -34
- package/dist/server/components/context-menu-trigger/context-menu-trigger.schema.js +5 -34
- package/dist/server/components/context-menu-trigger/context-menu-trigger.variables.js +1 -32
- package/dist/server/components/context-menu-trigger/index.js +7 -32
- package/dist/server/components/copy-button/copy-button.schema.js +5 -34
- package/dist/server/components/copy-button/copy-button.variables.js +1 -32
- package/dist/server/components/copy-button/index.js +9 -33
- package/dist/server/components/data-grid/data-grid.schema.js +117 -0
- package/dist/server/components/data-grid/data-grid.variables.js +12 -0
- package/dist/server/components/data-grid/index.css +245 -0
- package/dist/server/components/data-grid/index.js +2822 -0
- package/dist/server/components/data-list/data-list.schema.js +24 -37
- package/dist/server/components/data-list/data-list.variables.js +1 -32
- package/dist/server/components/data-list/index.js +1 -32
- package/dist/server/components/data-table/data-table.schema.js +35 -35
- package/dist/server/components/data-table/data-table.variables.js +2 -33
- package/dist/server/components/data-table/index.css +37 -4
- package/dist/server/components/data-table/index.js +328 -81
- package/dist/server/components/date-range-field/date-range-field.schema.js +76 -0
- package/dist/server/components/date-range-field/date-range-field.variables.js +12 -0
- package/dist/server/components/date-range-field/index.css +178 -0
- package/dist/server/components/date-range-field/index.js +189 -0
- package/dist/server/components/description-list/description-list.schema.js +7 -35
- package/dist/server/components/description-list/description-list.variables.js +1 -32
- package/dist/server/components/description-list/index.js +1 -32
- package/dist/server/components/diff-statistics/diff-statistics.schema.js +2 -33
- package/dist/server/components/diff-statistics/diff-statistics.variables.js +1 -32
- package/dist/server/components/diff-statistics/index.js +1 -32
- package/dist/server/components/diff-viewer/diff-viewer.schema.js +15 -37
- package/dist/server/components/diff-viewer/diff-viewer.variables.js +1 -32
- package/dist/server/components/diff-viewer/index.js +1 -32
- package/dist/server/components/divider/divider.schema.js +1 -32
- package/dist/server/components/divider/divider.variables.js +1 -32
- package/dist/server/components/divider/index.js +1 -32
- package/dist/server/components/drawer/drawer.schema.js +12 -36
- package/dist/server/components/drawer/drawer.variables.js +1 -32
- package/dist/server/components/drawer/index.js +261 -68
- package/dist/server/components/dropdown/dropdown.schema.js +9 -36
- package/dist/server/components/dropdown/dropdown.variables.js +1 -32
- package/dist/server/components/dropdown/index.js +2 -33
- package/dist/server/components/dropdown-group/dropdown-group.schema.js +7 -35
- package/dist/server/components/dropdown-group/dropdown-group.variables.js +1 -32
- package/dist/server/components/dropdown-group/index.js +1 -32
- package/dist/server/components/dropdown-item/dropdown-item.schema.js +9 -36
- package/dist/server/components/dropdown-item/dropdown-item.variables.js +1 -32
- package/dist/server/components/dropdown-item/index.js +1 -32
- package/dist/server/components/dropdown-label/dropdown-label.schema.js +3 -33
- package/dist/server/components/dropdown-label/dropdown-label.variables.js +1 -32
- package/dist/server/components/dropdown-label/index.js +1 -32
- package/dist/server/components/dropdown-menu/dropdown-menu.schema.js +3 -33
- package/dist/server/components/dropdown-menu/dropdown-menu.variables.js +1 -32
- package/dist/server/components/dropdown-menu/index.js +1 -32
- package/dist/server/components/dropdown-separator/dropdown-separator.schema.js +3 -33
- package/dist/server/components/dropdown-separator/dropdown-separator.variables.js +1 -32
- package/dist/server/components/dropdown-separator/index.js +1 -32
- package/dist/server/components/dropdown-trigger/dropdown-trigger.schema.js +3 -33
- package/dist/server/components/dropdown-trigger/dropdown-trigger.variables.js +1 -32
- package/dist/server/components/dropdown-trigger/index.js +1 -32
- package/dist/server/components/empty-state/empty-state.schema.js +7 -35
- package/dist/server/components/empty-state/empty-state.variables.js +1 -32
- package/dist/server/components/empty-state/index.js +1 -32
- package/dist/server/components/event-stream-viewer/event-stream-viewer.schema.js +73 -0
- package/dist/server/components/event-stream-viewer/event-stream-viewer.variables.js +12 -0
- package/dist/server/components/event-stream-viewer/index.css +414 -0
- package/dist/server/components/event-stream-viewer/index.js +627 -0
- package/dist/server/components/experimental/connection-indicator/index.js +1 -32
- package/dist/server/components/experimental/json-viewer/index.js +1 -32
- package/dist/server/components/experimental/message/index.js +1 -32
- package/dist/server/components/faceted-filter-bar/faceted-filter-bar.schema.js +78 -0
- package/dist/server/components/faceted-filter-bar/faceted-filter-bar.variables.js +12 -0
- package/dist/server/components/faceted-filter-bar/index.css +108 -0
- package/dist/server/components/faceted-filter-bar/index.js +736 -0
- package/dist/server/components/feed/feed.schema.js +6 -34
- package/dist/server/components/feed/feed.variables.js +1 -32
- package/dist/server/components/feed/index.js +1 -32
- package/dist/server/components/feed-event/feed-event.schema.js +16 -36
- package/dist/server/components/feed-event/feed-event.variables.js +1 -32
- package/dist/server/components/feed-event/index.js +1 -32
- package/dist/server/components/file-upload/file-upload.schema.js +15 -39
- package/dist/server/components/file-upload/file-upload.variables.js +1 -32
- package/dist/server/components/file-upload/index.js +1 -32
- package/dist/server/components/floating-action-button/floating-action-button.schema.js +11 -33
- package/dist/server/components/floating-action-button/floating-action-button.variables.js +1 -32
- package/dist/server/components/floating-action-button/index.css +2 -1
- package/dist/server/components/floating-action-button/index.js +1 -32
- package/dist/server/components/focus-trap/focus-trap.schema.js +21 -38
- package/dist/server/components/focus-trap/focus-trap.variables.js +1 -32
- package/dist/server/components/focus-trap/index.js +6 -34
- package/dist/server/components/form-field/form-field.schema.js +4 -33
- package/dist/server/components/form-field/form-field.variables.js +1 -32
- package/dist/server/components/form-field/index.js +1 -32
- package/dist/server/components/form-section/form-section.schema.js +4 -33
- package/dist/server/components/form-section/form-section.variables.js +1 -32
- package/dist/server/components/form-section/index.js +1 -32
- package/dist/server/components/grid/grid.schema.js +64 -0
- package/dist/server/components/grid/grid.variables.js +12 -0
- package/dist/server/components/grid/index.css +26 -0
- package/dist/server/components/grid/index.js +113 -0
- package/dist/server/components/grid-item/grid-item.schema.js +91 -0
- package/dist/server/components/grid-item/grid-item.variables.js +12 -0
- package/dist/server/components/grid-item/index.js +62 -0
- package/dist/server/components/grid-list/grid-list.schema.js +6 -34
- package/dist/server/components/grid-list/grid-list.variables.js +1 -32
- package/dist/server/components/grid-list/index.js +1 -32
- package/dist/server/components/grid-list-item/grid-list-item.schema.js +19 -41
- package/dist/server/components/grid-list-item/grid-list-item.variables.js +1 -32
- package/dist/server/components/grid-list-item/index.js +1 -32
- package/dist/server/components/hover-card/hover-card.schema.js +21 -42
- package/dist/server/components/hover-card/hover-card.variables.js +1 -32
- package/dist/server/components/hover-card/index.js +1 -32
- package/dist/server/components/image/image.schema.js +9 -36
- package/dist/server/components/image/image.variables.js +1 -32
- package/dist/server/components/image/index.js +1 -32
- package/dist/server/components/input/index.js +1 -32
- package/dist/server/components/input/input.schema.js +22 -42
- package/dist/server/components/input/input.variables.js +1 -32
- package/dist/server/components/invocation-rule-builder/index.css +262 -0
- package/dist/server/components/invocation-rule-builder/index.js +333 -0
- package/dist/server/components/invocation-rule-builder/invocation-rule-builder.schema.js +82 -0
- package/dist/server/components/invocation-rule-builder/invocation-rule-builder.variables.js +12 -0
- package/dist/server/components/json-schema-editor/index.js +26 -7430
- package/dist/server/components/json-schema-editor/json-schema-editor.schema.js +8 -35
- package/dist/server/components/json-schema-editor/json-schema-editor.variables.js +1 -32
- package/dist/server/components/json-viewer/index.css +6 -0
- package/dist/server/components/json-viewer/index.js +3 -34
- package/dist/server/components/json-viewer/json-viewer.schema.js +4 -33
- package/dist/server/components/json-viewer/json-viewer.variables.js +1 -32
- package/dist/server/components/kanban-board/index.js +1 -32
- package/dist/server/components/kanban-board/kanban-board.schema.js +19 -41
- package/dist/server/components/kanban-board/kanban-board.variables.js +1 -32
- package/dist/server/components/kbd/index.js +1 -32
- package/dist/server/components/kbd/kbd.schema.js +11 -33
- package/dist/server/components/kbd/kbd.variables.js +1 -32
- package/dist/server/components/keyboard-shortcuts/index.js +1 -32
- package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.schema.js +6 -34
- package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.variables.js +1 -32
- package/dist/server/components/label/index.js +1 -32
- package/dist/server/components/label/label.schema.js +6 -34
- package/dist/server/components/label/label.variables.js +1 -32
- package/dist/server/components/line-chart/index.js +1 -32
- package/dist/server/components/line-chart/line-chart.schema.js +40 -46
- package/dist/server/components/line-chart/line-chart.variables.js +1 -32
- package/dist/server/components/link/index.js +1 -32
- package/dist/server/components/link/link.schema.js +6 -34
- package/dist/server/components/link/link.variables.js +1 -32
- package/dist/server/components/load-more/index.js +7 -33
- package/dist/server/components/load-more/load-more.schema.js +10 -35
- package/dist/server/components/load-more/load-more.variables.js +1 -32
- package/dist/server/components/markdown-editor/index.js +109 -137
- package/dist/server/components/markdown-editor/markdown-editor.schema.js +29 -43
- package/dist/server/components/markdown-editor/markdown-editor.variables.js +1 -32
- package/dist/server/components/masonry/index.css +14 -0
- package/dist/server/components/masonry/index.js +48 -0
- package/dist/server/components/masonry/masonry.schema.js +44 -0
- package/dist/server/components/masonry/masonry.variables.js +12 -0
- package/dist/server/components/matrix-chart/index.css +4 -0
- package/dist/server/components/matrix-chart/index.js +7 -34
- package/dist/server/components/matrix-chart/matrix-chart.schema.js +42 -46
- package/dist/server/components/matrix-chart/matrix-chart.variables.js +1 -32
- package/dist/server/components/media-controls/index.js +7 -33
- package/dist/server/components/media-controls/media-controls.schema.js +7 -35
- package/dist/server/components/media-controls/media-controls.variables.js +1 -32
- package/dist/server/components/menu-bar/index.js +1 -32
- package/dist/server/components/menu-bar/menu-bar.schema.js +11 -37
- package/dist/server/components/menu-bar/menu-bar.variables.js +1 -32
- package/dist/server/components/message/index.js +1 -32
- package/dist/server/components/message/message.schema.js +4 -33
- package/dist/server/components/message/message.variables.js +1 -32
- package/dist/server/components/modal/index.js +251 -61
- package/dist/server/components/modal/modal.schema.js +19 -41
- package/dist/server/components/modal/modal.variables.js +1 -32
- package/dist/server/components/navigation-bar/index.css +57 -0
- package/dist/server/components/navigation-bar/index.js +14 -38
- package/dist/server/components/navigation-bar/navigation-bar.schema.js +16 -34
- package/dist/server/components/navigation-bar/navigation-bar.variables.js +1 -32
- package/dist/server/components/navigation-item/index.js +1 -32
- package/dist/server/components/navigation-item/navigation-item.schema.js +16 -38
- package/dist/server/components/navigation-item/navigation-item.variables.js +1 -32
- package/dist/server/components/number-input/index.js +1 -32
- package/dist/server/components/number-input/number-input.schema.js +27 -45
- package/dist/server/components/number-input/number-input.variables.js +1 -32
- package/dist/server/components/pagination/index.css +0 -1
- package/dist/server/components/pagination/index.js +1 -32
- package/dist/server/components/pagination/pagination.schema.js +1 -32
- package/dist/server/components/pagination/pagination.variables.js +1 -32
- package/dist/server/components/payload-inspector/index.css +144 -0
- package/dist/server/components/payload-inspector/index.js +1322 -0
- package/dist/server/components/payload-inspector/payload-inspector.schema.js +76 -0
- package/dist/server/components/payload-inspector/payload-inspector.variables.js +12 -0
- package/dist/server/components/permission-matrix/index.css +161 -0
- package/dist/server/components/permission-matrix/index.js +294 -0
- package/dist/server/components/permission-matrix/permission-matrix.schema.js +81 -0
- package/dist/server/components/permission-matrix/permission-matrix.variables.js +12 -0
- package/dist/server/components/phone-input/index.js +1 -32
- package/dist/server/components/phone-input/phone-input.schema.js +3 -33
- package/dist/server/components/phone-input/phone-input.variables.js +1 -32
- package/dist/server/components/pin-input/index.js +1 -32
- package/dist/server/components/pin-input/pin-input.schema.js +6 -34
- package/dist/server/components/pin-input/pin-input.variables.js +1 -32
- package/dist/server/components/popover/index.js +3 -33
- package/dist/server/components/popover/popover.schema.js +12 -35
- package/dist/server/components/popover/popover.variables.js +1 -32
- package/dist/server/components/portal/index.js +1 -32
- package/dist/server/components/portal/portal.schema.js +19 -37
- package/dist/server/components/portal/portal.variables.js +1 -32
- package/dist/server/components/pricing-card/index.css +2 -2
- package/dist/server/components/pricing-card/index.js +1 -32
- package/dist/server/components/pricing-card/pricing-card.schema.js +12 -33
- package/dist/server/components/pricing-card/pricing-card.variables.js +1 -32
- package/dist/server/components/progress/index.js +1 -32
- package/dist/server/components/progress/progress.schema.js +1 -32
- package/dist/server/components/progress/progress.variables.js +1 -32
- package/dist/server/components/radio-group/index.js +1 -32
- package/dist/server/components/radio-group/radio-group.schema.js +4 -33
- package/dist/server/components/radio-group/radio-group.variables.js +1 -32
- package/dist/server/components/rating/index.js +1 -32
- package/dist/server/components/rating/rating.schema.js +4 -33
- package/dist/server/components/rating/rating.variables.js +1 -32
- package/dist/server/components/resizable-panels/index.js +1 -32
- package/dist/server/components/resizable-panels/resizable-panels.schema.js +13 -38
- package/dist/server/components/resizable-panels/resizable-panels.variables.js +1 -32
- package/dist/server/components/review-editor/index.js +116 -140
- package/dist/server/components/review-editor/review-editor.schema.js +15 -39
- package/dist/server/components/review-editor/review-editor.variables.js +1 -32
- package/dist/server/components/run-step-timeline/index.css +161 -0
- package/dist/server/components/run-step-timeline/index.js +414 -0
- package/dist/server/components/run-step-timeline/run-step-timeline.schema.js +110 -0
- package/dist/server/components/run-step-timeline/run-step-timeline.variables.js +12 -0
- package/dist/server/components/schema-form/index.css +165 -0
- package/dist/server/components/schema-form/index.js +911 -0
- package/dist/server/components/schema-form/schema-form.schema.js +50 -0
- package/dist/server/components/schema-form/schema-form.variables.js +12 -0
- package/dist/server/components/scroll-area/index.js +1 -32
- package/dist/server/components/scroll-area/scroll-area.schema.js +4 -33
- package/dist/server/components/scroll-area/scroll-area.variables.js +1 -32
- package/dist/server/components/search-field/index.js +1 -32
- package/dist/server/components/search-field/search-field.schema.js +9 -36
- package/dist/server/components/search-field/search-field.variables.js +1 -32
- package/dist/server/components/secret-value-field/index.css +124 -0
- package/dist/server/components/secret-value-field/index.js +173 -0
- package/dist/server/components/secret-value-field/secret-value-field.schema.js +68 -0
- package/dist/server/components/secret-value-field/secret-value-field.variables.js +12 -0
- package/dist/server/components/section-heading/index.js +1 -32
- package/dist/server/components/section-heading/section-heading.schema.js +8 -35
- package/dist/server/components/section-heading/section-heading.variables.js +1 -32
- package/dist/server/components/segment/index.js +1 -32
- package/dist/server/components/segment/segment.schema.js +11 -36
- package/dist/server/components/segment/segment.variables.js +1 -32
- package/dist/server/components/segmented-control/index.css +5 -0
- package/dist/server/components/segmented-control/index.js +1 -32
- package/dist/server/components/segmented-control/segmented-control.schema.js +10 -36
- package/dist/server/components/segmented-control/segmented-control.variables.js +1 -32
- package/dist/server/components/select/index.js +1 -32
- package/dist/server/components/select/select.schema.js +8 -35
- package/dist/server/components/select/select.variables.js +1 -32
- package/dist/server/components/selection-popover/index.js +5 -35
- package/dist/server/components/selection-popover/selection-popover.schema.js +12 -37
- package/dist/server/components/selection-popover/selection-popover.variables.js +1 -32
- package/dist/server/components/share-card/index.js +45 -66
- package/dist/server/components/share-card/share-card.schema.js +5 -34
- package/dist/server/components/share-card/share-card.variables.js +1 -32
- package/dist/server/components/sheet/index.js +254 -64
- package/dist/server/components/sheet/sheet.schema.js +12 -36
- package/dist/server/components/sheet/sheet.variables.js +1 -32
- package/dist/server/components/shortcut-hint/index.js +1 -32
- package/dist/server/components/shortcut-hint/shortcut-hint.schema.js +3 -33
- package/dist/server/components/shortcut-hint/shortcut-hint.variables.js +1 -32
- package/dist/server/components/side-navigation/index.js +1 -32
- package/dist/server/components/side-navigation/side-navigation.schema.js +6 -34
- package/dist/server/components/side-navigation/side-navigation.variables.js +1 -32
- package/dist/server/components/side-navigation-group/index.js +1 -32
- package/dist/server/components/side-navigation-group/side-navigation-group.schema.js +10 -36
- package/dist/server/components/side-navigation-group/side-navigation-group.variables.js +1 -32
- package/dist/server/components/side-navigation-item/index.js +1 -32
- package/dist/server/components/side-navigation-item/side-navigation-item.schema.js +16 -38
- package/dist/server/components/side-navigation-item/side-navigation-item.variables.js +1 -32
- package/dist/server/components/sidebar/index.js +272 -79
- package/dist/server/components/sidebar/sidebar.schema.js +7 -35
- package/dist/server/components/sidebar/sidebar.variables.js +1 -32
- package/dist/server/components/skeleton/index.js +1 -32
- package/dist/server/components/skeleton/skeleton.schema.js +9 -36
- package/dist/server/components/skeleton/skeleton.variables.js +1 -32
- package/dist/server/components/skip-link/index.js +1 -32
- package/dist/server/components/skip-link/skip-link.schema.js +11 -33
- package/dist/server/components/skip-link/skip-link.variables.js +1 -32
- package/dist/server/components/slider/index.js +1 -32
- package/dist/server/components/slider/slider.schema.js +5 -34
- package/dist/server/components/slider/slider.variables.js +1 -32
- package/dist/server/components/sortable-list/index.js +1 -32
- package/dist/server/components/sortable-list/sortable-list.schema.js +27 -41
- package/dist/server/components/sortable-list/sortable-list.variables.js +1 -32
- package/dist/server/components/spectrogram/index.css +2 -1
- package/dist/server/components/spectrogram/index.js +1 -32
- package/dist/server/components/spectrogram/spectrogram.schema.js +51 -43
- package/dist/server/components/spectrogram/spectrogram.variables.js +1 -32
- package/dist/server/components/spectrum-chart/index.js +1 -32
- package/dist/server/components/spectrum-chart/spectrum-chart.schema.js +43 -42
- package/dist/server/components/spectrum-chart/spectrum-chart.variables.js +1 -32
- package/dist/server/components/speed-dial/index.css +111 -0
- package/dist/server/components/speed-dial/index.js +393 -0
- package/dist/server/components/speed-dial/speed-dial.schema.js +57 -0
- package/dist/server/components/speed-dial/speed-dial.variables.js +12 -0
- package/dist/server/components/speed-dial-action/index.js +171 -0
- package/dist/server/components/speed-dial-action/speed-dial-action.schema.js +52 -0
- package/dist/server/components/speed-dial-action/speed-dial-action.variables.js +12 -0
- package/dist/server/components/spinner/index.js +1 -32
- package/dist/server/components/spinner/spinner.schema.js +1 -32
- package/dist/server/components/spinner/spinner.variables.js +1 -32
- package/dist/server/components/stacked-list-item/index.js +1 -32
- package/dist/server/components/stacked-list-item/stacked-list-item.schema.js +20 -41
- package/dist/server/components/stacked-list-item/stacked-list-item.variables.js +1 -32
- package/dist/server/components/stat/index.js +1 -32
- package/dist/server/components/stat/stat.schema.js +7 -35
- package/dist/server/components/stat/stat.variables.js +1 -32
- package/dist/server/components/stat-group/index.js +1 -32
- package/dist/server/components/stat-group/stat-group.schema.js +4 -33
- package/dist/server/components/stat-group/stat-group.variables.js +1 -32
- package/dist/server/components/status-dot/index.css +1 -1
- package/dist/server/components/status-dot/index.js +1 -32
- package/dist/server/components/status-dot/status-dot.schema.js +1 -32
- package/dist/server/components/status-dot/status-dot.variables.js +1 -32
- package/dist/server/components/steps/index.css +13 -3
- package/dist/server/components/steps/index.js +1 -32
- package/dist/server/components/steps/steps.schema.js +4 -33
- package/dist/server/components/steps/steps.variables.js +1 -32
- package/dist/server/components/subscription-badge/index.js +2 -33
- package/dist/server/components/subscription-badge/subscription-badge.schema.js +1 -32
- package/dist/server/components/subscription-badge/subscription-badge.variables.js +1 -32
- package/dist/server/components/surface/index.js +1 -32
- package/dist/server/components/surface/surface.schema.js +11 -33
- package/dist/server/components/surface/surface.variables.js +1 -32
- package/dist/server/components/tab/index.js +1 -32
- package/dist/server/components/tab/tab.schema.js +6 -34
- package/dist/server/components/tab/tab.variables.js +1 -32
- package/dist/server/components/tab-list/index.js +1 -32
- package/dist/server/components/tab-list/tab-list.schema.js +4 -33
- package/dist/server/components/tab-list/tab-list.variables.js +1 -32
- package/dist/server/components/tab-panel/index.js +1 -32
- package/dist/server/components/tab-panel/tab-panel.schema.js +4 -33
- package/dist/server/components/tab-panel/tab-panel.variables.js +1 -32
- package/dist/server/components/table/index.css +14 -4
- package/dist/server/components/table/index.js +52 -38
- package/dist/server/components/table/table.schema.js +6 -34
- package/dist/server/components/table/table.variables.js +1 -32
- package/dist/server/components/table-body/index.js +1 -32
- package/dist/server/components/table-body/table-body.schema.js +4 -33
- package/dist/server/components/table-body/table-body.variables.js +1 -32
- package/dist/server/components/table-cell/index.js +1 -32
- package/dist/server/components/table-cell/table-cell.schema.js +11 -34
- package/dist/server/components/table-cell/table-cell.variables.js +1 -32
- package/dist/server/components/table-header/index.js +1 -32
- package/dist/server/components/table-header/table-header.schema.js +6 -34
- package/dist/server/components/table-header/table-header.variables.js +1 -32
- package/dist/server/components/table-header-cell/index.js +1 -32
- package/dist/server/components/table-header-cell/table-header-cell.schema.js +4 -33
- package/dist/server/components/table-header-cell/table-header-cell.variables.js +1 -32
- package/dist/server/components/table-row/index.js +9 -34
- package/dist/server/components/table-row/table-row.schema.js +8 -35
- package/dist/server/components/table-row/table-row.variables.js +1 -32
- package/dist/server/components/tabs/index.css +1 -1
- package/dist/server/components/tabs/index.js +1 -32
- package/dist/server/components/tabs/tabs.schema.js +4 -33
- package/dist/server/components/tabs/tabs.variables.js +1 -32
- package/dist/server/components/tag-input/index.css +2 -2
- package/dist/server/components/tag-input/index.js +1 -32
- package/dist/server/components/tag-input/tag-input.schema.js +5 -34
- package/dist/server/components/tag-input/tag-input.variables.js +1 -32
- package/dist/server/components/textarea/index.css +1 -0
- package/dist/server/components/textarea/index.js +1 -32
- package/dist/server/components/textarea/textarea.schema.js +13 -34
- package/dist/server/components/textarea/textarea.variables.js +1 -32
- package/dist/server/components/timeline/index.css +9 -7
- package/dist/server/components/timeline/index.js +2 -33
- package/dist/server/components/timeline/timeline.schema.js +17 -34
- package/dist/server/components/timeline/timeline.variables.js +1 -32
- package/dist/server/components/toast-region/index.js +31 -34
- package/dist/server/components/toast-region/toast-region.schema.js +3 -33
- package/dist/server/components/toast-region/toast-region.variables.js +1 -32
- package/dist/server/components/toggle/index.css +2 -2
- package/dist/server/components/toggle/index.js +1 -32
- package/dist/server/components/toggle/toggle.schema.js +1 -32
- package/dist/server/components/toggle/toggle.variables.js +1 -32
- package/dist/server/components/toolbar/index.js +1 -32
- package/dist/server/components/toolbar/toolbar.schema.js +12 -33
- package/dist/server/components/toolbar/toolbar.variables.js +1 -32
- package/dist/server/components/tooltip/index.css +3 -2
- package/dist/server/components/tooltip/index.js +1 -32
- package/dist/server/components/tooltip/tooltip.schema.js +10 -36
- package/dist/server/components/tooltip/tooltip.variables.js +1 -32
- package/dist/server/components/transfer-list/index.css +116 -0
- package/dist/server/components/transfer-list/index.js +326 -0
- package/dist/server/components/transfer-list/transfer-list.schema.js +72 -0
- package/dist/server/components/transfer-list/transfer-list.variables.js +12 -0
- package/dist/server/components/tree/index.css +186 -2
- package/dist/server/components/tree/index.js +2651 -157
- package/dist/server/components/tree/tree.schema.js +72 -35
- package/dist/server/components/tree/tree.variables.js +6 -33
- package/dist/server/components/tree-item/index.js +374 -49
- package/dist/server/components/tree-item/tree-item.schema.js +19 -37
- package/dist/server/components/tree-item/tree-item.variables.js +1 -32
- package/dist/server/components/typography/index.js +1 -32
- package/dist/server/components/typography/typography.schema.js +12 -33
- package/dist/server/components/typography/typography.variables.js +1 -32
- package/dist/server/components/virtual-list/index.css +30 -0
- package/dist/server/components/virtual-list/index.js +186 -0
- package/dist/server/components/virtual-list/virtual-list.schema.js +69 -0
- package/dist/server/components/virtual-list/virtual-list.variables.js +12 -0
- package/dist/server/components/visually-hidden/index.js +1 -32
- package/dist/server/components/visually-hidden/visually-hidden.schema.js +12 -33
- package/dist/server/components/visually-hidden/visually-hidden.variables.js +1 -32
- package/dist/server/components/waveform/index.js +1 -32
- package/dist/server/components/waveform/waveform.schema.js +34 -42
- package/dist/server/components/waveform/waveform.variables.js +1 -32
- package/dist/server/highlighters/shiki/index.js +9 -33
- package/dist/server/index.css +5383 -2634
- package/dist/server/index.js +14950 -12212
- package/dist/server/markdown/rendering/rehype-shiki-sync.d.ts +9 -0
- package/dist/server/markdown/rendering/rehype-shiki-sync.js +23 -10
- package/dist/server/markdown/rendering/render.js +8 -2
- package/dist/server/styles/base-guard.js +1 -32
- package/dist/styles/base-guard.js +1 -31
- package/dist/utilities/fixed-virtual-window.d.ts +27 -0
- package/package.json +465 -369
- package/src/_internal/anchored-overlay.svelte.ts +72 -48
- package/src/_internal/overlay.ts +27 -12
- package/src/_internal/toast-context.ts +8 -0
- package/src/_internal/tree-context.ts +18 -0
- package/src/_internal/tree-data.ts +91 -0
- package/src/_internal/tree-drag-controller.svelte.ts +328 -0
- package/src/_internal/tree-registry.svelte.ts +89 -4
- package/src/_internal/use-virtualizer.svelte.ts +226 -0
- package/src/_internal/virtual-item.ts +1 -0
- package/src/components/_timeline-item/index.ts +5 -0
- package/src/components/_tree-expand-all/index.ts +5 -0
- package/src/components/_tree-expand-all/tree-expand-all.svelte +83 -0
- package/src/components/_tree-expand-all/tree-expand-all.types.ts +15 -0
- package/src/components/_visually-hidden-live-region.svelte +13 -0
- package/src/components/access-gate/README.md +55 -0
- package/src/components/access-gate/access-gate-inline.svelte +415 -0
- package/src/components/access-gate/access-gate.css +129 -0
- package/src/components/access-gate/access-gate.examples.json +19 -0
- package/src/components/access-gate/access-gate.svelte +92 -0
- package/src/components/access-gate/access-gate.types.ts +46 -0
- package/src/components/access-gate/index.ts +6 -0
- package/src/components/accordion/README.md +5 -4
- package/src/components/accordion/accordion.examples.json +1 -1
- package/src/components/accordion/accordion.svelte +9 -2
- package/src/components/accordion-item/README.md +7 -6
- package/src/components/alert/README.md +8 -5
- package/src/components/alert-dialog/README.md +14 -14
- package/src/components/alert-dialog/alert-dialog.types.ts +7 -0
- package/src/components/area-chart/README.md +18 -16
- package/src/components/area-chart/area-chart.examples.json +1 -0
- package/src/components/area-chart/area-chart.types.ts +14 -0
- package/src/components/aspect-ratio/README.md +7 -6
- package/src/components/autocomplete/README.md +14 -14
- package/src/components/autocomplete/autocomplete.css +10 -3
- package/src/components/autocomplete/autocomplete.examples.json +3 -2
- package/src/components/autocomplete/autocomplete.types.ts +14 -0
- package/src/components/avatar/README.md +8 -8
- package/src/components/avatar/avatar.css +1 -0
- package/src/components/avatar/avatar.types.ts +6 -0
- package/src/components/avatar-group/README.md +11 -10
- package/src/components/avatar-group/avatar-group.svelte +16 -0
- package/src/components/avatar-group/avatar-group.types.ts +10 -0
- package/src/components/backdrop/README.md +9 -9
- package/src/components/badge/README.md +7 -6
- package/src/components/badge/badge.css +1 -1
- package/src/components/banner/README.md +3 -3
- package/src/components/bar-chart/README.md +16 -14
- package/src/components/bar-chart/bar-chart.css +4 -0
- package/src/components/bar-chart/bar-chart.svelte +4 -0
- package/src/components/bar-chart/bar-chart.types.ts +14 -0
- package/src/components/button/README.md +13 -10
- package/src/components/button/button.css +7 -0
- package/src/components/button/button.examples.json +1 -1
- package/src/components/button-group/README.md +7 -7
- package/src/components/button-group/button-group.types.ts +12 -1
- package/src/components/callout/README.md +2 -2
- package/src/components/capability-gate/README.md +14 -14
- package/src/components/capability-gate/capability-gate.css +5 -2
- package/src/components/card/README.md +3 -3
- package/src/components/card/card.types.ts +2 -0
- package/src/components/chart.types.ts +12 -0
- package/src/components/chat/README.md +149 -36
- package/src/components/chat/adapter/chat-adapter.ts +132 -0
- package/src/components/chat/adapter/index.ts +15 -0
- package/src/components/chat/chat.examples.json +26 -2
- package/src/components/chat/chat.types.ts +173 -0
- package/src/components/chat/container/chat-history-trigger.svelte +107 -0
- package/src/components/chat/container/chat-participant-typing.svelte +156 -0
- package/src/components/chat/container/chat-status-announcer.svelte +13 -19
- package/src/components/chat/container/chat.svelte +1326 -226
- package/src/components/chat/container/use-chat-keyboard-nav.svelte.ts +41 -8
- package/src/components/chat/container/use-chat-message-groups.svelte.ts +66 -0
- package/src/components/chat/container/use-chat-read-receipts.svelte.ts +103 -0
- package/src/components/chat/container/use-chat-reasoning-state.svelte.ts +93 -0
- package/src/components/chat/container/use-chat-typing-indicator.svelte.ts +200 -0
- package/src/components/chat/container/use-chat-virtualizer.svelte.ts +328 -0
- package/src/components/chat/index.ts +10 -1
- package/src/components/chat/message/chat-message-parts-renderer.svelte +152 -0
- package/src/components/chat/message/chat-message-parts.ts +163 -0
- package/src/components/chat/message/chat-message.svelte +112 -78
- package/src/components/chat/message/chat-read-receipt.svelte +115 -0
- package/src/components/chat/message/parts/image-part.svelte +27 -0
- package/src/components/chat/message/parts/markdown-part.svelte +23 -0
- package/src/components/chat/message/parts/reasoning-part.svelte +280 -0
- package/src/components/chat/message/parts/step-part.svelte +134 -0
- package/src/components/chat/message/parts/suggestion-part.svelte +99 -0
- package/src/components/chat/message/parts/tool-approval-part.svelte +301 -0
- package/src/components/chat/message/parts/tool-call-part.svelte +31 -0
- package/src/components/chat/message/parts/tool-result-part.svelte +74 -0
- package/src/components/chat/utilities/index.ts +17 -1
- package/src/components/chat/utilities/types.ts +265 -2
- package/src/components/chat/utilities/utilities.ts +325 -1
- package/src/components/chat-conversation-header/README.md +40 -0
- package/src/components/chat-conversation-header/chat-conversation-header.css +51 -0
- package/src/components/chat-conversation-header/chat-conversation-header.examples.json +13 -0
- package/src/components/chat-conversation-header/chat-conversation-header.svelte +83 -0
- package/src/components/chat-conversation-header/chat-conversation-header.types.ts +20 -0
- package/src/components/chat-conversation-header/index.ts +9 -0
- package/src/components/chat-conversation-list/README.md +45 -0
- package/src/components/chat-conversation-list/chat-conversation-list.css +114 -0
- package/src/components/chat-conversation-list/chat-conversation-list.examples.json +13 -0
- package/src/components/chat-conversation-list/chat-conversation-list.svelte +110 -0
- package/src/components/chat-conversation-list/chat-conversation-list.types.ts +18 -0
- package/src/components/chat-conversation-list/conversation-summary.ts +88 -0
- package/src/components/chat-conversation-list/index.ts +11 -0
- package/src/components/checkbox/README.md +1 -1
- package/src/components/checkbox/checkbox.examples.json +1 -1
- package/src/components/checkbox-group/README.md +1 -1
- package/src/components/chip/README.md +9 -9
- package/src/components/chip/chip.svelte +12 -0
- package/src/components/chip/chip.types.ts +22 -0
- package/src/components/choice-grid/README.md +2 -2
- package/src/components/choice-grid-item/README.md +1 -1
- package/src/components/click-away-listener/README.md +6 -6
- package/src/components/code-block/README.md +11 -9
- package/src/components/code-block/code-block.css +77 -47
- package/src/components/code-block/code-block.examples.json +6 -0
- package/src/components/code-block/code-block.svelte +32 -37
- package/src/components/code-block/code-block.types.ts +9 -6
- package/src/components/collapsible/README.md +9 -7
- package/src/components/color-field/README.md +1 -1
- package/src/components/color-field/color-field.examples.json +1 -1
- package/src/components/color-picker/README.md +2 -2
- package/src/components/color-swatch-picker/README.md +13 -13
- package/src/components/combobox/README.md +3 -3
- package/src/components/combobox/combobox.examples.json +1 -1
- package/src/components/combobox/combobox.svelte +64 -6
- package/src/components/command-item/README.md +11 -11
- package/src/components/command-menu/README.md +15 -15
- package/src/components/command-menu/command-menu.examples.json +1 -1
- package/src/components/command-palette/README.md +5 -5
- package/src/components/command-palette/command-palette.css +26 -12
- package/src/components/confirm-dialog/README.md +14 -14
- package/src/components/container/README.md +10 -9
- package/src/components/context-menu/README.md +9 -9
- package/src/components/context-menu/context-menu.context.ts +2 -0
- package/src/components/context-menu/context-menu.svelte +4 -0
- package/src/components/context-menu/context-menu.types.ts +5 -0
- package/src/components/context-menu-trigger/README.md +2 -2
- package/src/components/context-menu-trigger/context-menu-trigger.svelte +6 -0
- package/src/components/context-menu-trigger/context-menu-trigger.types.ts +1 -0
- package/src/components/copy-button/README.md +2 -2
- package/src/components/data-grid/README.md +80 -0
- package/src/components/data-grid/_internal/column-model.svelte.ts +218 -0
- package/src/components/data-grid/_internal/geometry.ts +87 -0
- package/src/components/data-grid/_internal/keyboard-model.ts +131 -0
- package/src/components/data-grid/_internal/selection-model.svelte.ts +168 -0
- package/src/components/data-grid/_internal/sort-model.ts +134 -0
- package/src/components/data-grid/_internal/virtualization-adapter.svelte.ts +505 -0
- package/src/components/data-grid/data-grid-selection-bind-probe.ts +15 -0
- package/src/components/data-grid/data-grid.css +283 -0
- package/src/components/data-grid/data-grid.examples.json +19 -0
- package/src/components/data-grid/data-grid.svelte +1030 -0
- package/src/components/data-grid/data-grid.types.ts +118 -0
- package/src/components/data-grid/index.ts +16 -0
- package/src/components/data-list/README.md +8 -8
- package/src/components/data-list/data-list.types.ts +1 -0
- package/src/components/data-table/README.md +23 -12
- package/src/components/data-table/data-table.css +25 -0
- package/src/components/data-table/data-table.examples.json +6 -0
- package/src/components/data-table/data-table.svelte +305 -13
- package/src/components/data-table/data-table.types.ts +35 -1
- package/src/components/date-range-field/README.md +141 -0
- package/src/components/date-range-field/date-range-field.css +211 -0
- package/src/components/date-range-field/date-range-field.examples.json +31 -0
- package/src/components/date-range-field/date-range-field.svelte +246 -0
- package/src/components/date-range-field/date-range-field.types.ts +78 -0
- package/src/components/date-range-field/index.ts +10 -0
- package/src/components/description-list/README.md +3 -3
- package/src/components/description-list/description-list.types.ts +1 -0
- package/src/components/diff-statistics/README.md +11 -11
- package/src/components/diff-statistics/diff-statistics.types.ts +5 -2
- package/src/components/diff-viewer/README.md +13 -13
- package/src/components/divider/divider.svelte +1 -1
- package/src/components/drawer/README.md +6 -6
- package/src/components/drawer/drawer.examples.json +1 -1
- package/src/components/drawer/drawer.svelte +39 -27
- package/src/components/dropdown/README.md +4 -4
- package/src/components/dropdown/dropdown.examples.json +1 -1
- package/src/components/dropdown/dropdown.types.ts +4 -0
- package/src/components/dropdown-group/README.md +6 -6
- package/src/components/dropdown-group/dropdown-group.types.ts +12 -1
- package/src/components/dropdown-item/README.md +4 -4
- package/src/components/dropdown-item/dropdown-item.types.ts +4 -0
- package/src/components/dropdown-label/README.md +1 -1
- package/src/components/dropdown-label/dropdown-label.types.ts +1 -0
- package/src/components/dropdown-menu/README.md +1 -1
- package/src/components/dropdown-menu/dropdown-menu.types.ts +1 -0
- package/src/components/dropdown-separator/README.md +3 -3
- package/src/components/dropdown-separator/dropdown-separator.types.ts +1 -0
- package/src/components/dropdown-trigger/README.md +1 -1
- package/src/components/dropdown-trigger/dropdown-trigger.types.ts +1 -0
- package/src/components/empty-state/README.md +3 -3
- package/src/components/empty-state/empty-state.types.ts +3 -0
- package/src/components/event-stream-viewer/README.md +147 -0
- package/src/components/event-stream-viewer/event-stream-viewer.css +474 -0
- package/src/components/event-stream-viewer/event-stream-viewer.examples.json +31 -0
- package/src/components/event-stream-viewer/event-stream-viewer.svelte +298 -0
- package/src/components/event-stream-viewer/event-stream-viewer.types.ts +85 -0
- package/src/components/event-stream-viewer/index.ts +11 -0
- package/src/components/faceted-filter-bar/README.md +170 -0
- package/src/components/faceted-filter-bar/faceted-filter-bar.css +121 -0
- package/src/components/faceted-filter-bar/faceted-filter-bar.examples.json +25 -0
- package/src/components/faceted-filter-bar/faceted-filter-bar.svelte +193 -0
- package/src/components/faceted-filter-bar/faceted-filter-bar.types.ts +98 -0
- package/src/components/faceted-filter-bar/index.ts +13 -0
- package/src/components/feed/README.md +2 -2
- package/src/components/feed/feed.types.ts +1 -0
- package/src/components/feed-event/README.md +4 -4
- package/src/components/feed-event/feed-event.types.ts +1 -0
- package/src/components/file-upload/README.md +15 -15
- package/src/components/floating-action-button/README.md +9 -8
- package/src/components/floating-action-button/floating-action-button.css +3 -1
- package/src/components/focus-trap/README.md +8 -7
- package/src/components/focus-trap/focus-trap.types.ts +5 -0
- package/src/components/focus-trap/focus-trap.utilities.svelte.ts +32 -3
- package/src/components/form-field/README.md +10 -10
- package/src/components/form-field/form-field.examples.json +1 -1
- package/src/components/form-section/README.md +9 -9
- package/src/components/grid/README.md +61 -0
- package/src/components/grid/grid.css +24 -0
- package/src/components/grid/grid.examples.json +19 -0
- package/src/components/grid/grid.svelte +62 -0
- package/src/components/grid/grid.types.ts +31 -0
- package/src/components/grid/index.ts +17 -0
- package/src/components/grid-item/README.md +50 -0
- package/src/components/grid-item/grid-item.svelte +55 -0
- package/src/components/grid-item/grid-item.types.ts +22 -0
- package/src/components/grid-item/index.ts +5 -0
- package/src/components/grid-list/README.md +2 -2
- package/src/components/grid-list-item/README.md +11 -11
- package/src/components/grid-list-item/grid-list-item.types.ts +3 -0
- package/src/components/hover-card/README.md +10 -10
- package/src/components/hover-card/hover-card.types.ts +8 -0
- package/src/components/image/README.md +4 -4
- package/src/components/input/README.md +10 -10
- package/src/components/input/input.examples.json +1 -1
- package/src/components/input/input.types.ts +12 -0
- package/src/components/invocation-rule-builder/README.md +128 -0
- package/src/components/invocation-rule-builder/index.ts +13 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.css +281 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.examples.json +19 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +545 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +144 -0
- package/src/components/json-schema-editor/README.md +14 -14
- package/src/components/json-schema-editor/json-schema-editor.examples.json +1 -1
- package/src/components/json-schema-editor/json-schema-editor.types.ts +1 -0
- package/src/components/json-viewer/README.md +7 -7
- package/src/components/json-viewer/_json-viewer-node.svelte +7 -7
- package/src/components/json-viewer/json-viewer.css +6 -0
- package/src/components/json-viewer/json-viewer.examples.json +37 -0
- package/src/components/kanban-board/README.md +9 -9
- package/src/components/kanban-board/kanban-board.types.ts +4 -0
- package/src/components/kbd/README.md +6 -5
- package/src/components/keyboard-shortcuts/README.md +6 -6
- package/src/components/label/README.md +7 -7
- package/src/components/line-chart/README.md +17 -15
- package/src/components/line-chart/line-chart.examples.json +1 -0
- package/src/components/line-chart/line-chart.types.ts +13 -0
- package/src/components/link/README.md +2 -2
- package/src/components/load-more/README.md +13 -13
- package/src/components/markdown-editor/README.md +11 -11
- package/src/components/markdown-editor/markdown-editor.examples.json +1 -1
- package/src/components/masonry/README.md +49 -0
- package/src/components/masonry/index.ts +6 -0
- package/src/components/masonry/masonry.css +12 -0
- package/src/components/masonry/masonry.examples.json +13 -0
- package/src/components/masonry/masonry.svelte +39 -0
- package/src/components/masonry/masonry.types.ts +16 -0
- package/src/components/matrix-chart/README.md +17 -15
- package/src/components/matrix-chart/matrix-chart.css +4 -0
- package/src/components/matrix-chart/matrix-chart.svelte +19 -1
- package/src/components/matrix-chart/matrix-chart.types.ts +14 -1
- package/src/components/media-controls/README.md +14 -14
- package/src/components/menu-bar/README.md +7 -7
- package/src/components/menu-bar/menu-bar.svelte +9 -0
- package/src/components/menu-bar/menu-bar.types.ts +4 -0
- package/src/components/message/README.md +8 -8
- package/src/components/modal/README.md +16 -16
- package/src/components/modal/modal.examples.json +1 -1
- package/src/components/modal/modal.svelte +19 -1
- package/src/components/modal/modal.types.ts +8 -0
- package/src/components/navigation-bar/README.md +42 -12
- package/src/components/navigation-bar/index.ts +2 -0
- package/src/components/navigation-bar/navigation-bar.css +66 -0
- package/src/components/navigation-bar/navigation-bar.examples.json +6 -0
- package/src/components/navigation-bar/navigation-bar.svelte +16 -6
- package/src/components/navigation-bar/navigation-bar.types.ts +18 -0
- package/src/components/navigation-item/README.md +6 -6
- package/src/components/navigation-item/navigation-item.types.ts +4 -0
- package/src/components/number-input/README.md +13 -13
- package/src/components/number-input/number-input.types.ts +13 -0
- package/src/components/pagination/pagination.css +0 -1
- package/src/components/payload-inspector/README.md +147 -0
- package/src/components/payload-inspector/index.ts +10 -0
- package/src/components/payload-inspector/payload-inspector.css +173 -0
- package/src/components/payload-inspector/payload-inspector.examples.json +31 -0
- package/src/components/payload-inspector/payload-inspector.svelte +386 -0
- package/src/components/payload-inspector/payload-inspector.types.ts +72 -0
- package/src/components/permission-matrix/README.md +61 -0
- package/src/components/permission-matrix/index.ts +12 -0
- package/src/components/permission-matrix/permission-matrix.css +165 -0
- package/src/components/permission-matrix/permission-matrix.examples.json +13 -0
- package/src/components/permission-matrix/permission-matrix.svelte +181 -0
- package/src/components/permission-matrix/permission-matrix.types.ts +73 -0
- package/src/components/phone-input/README.md +18 -18
- package/src/components/phone-input/phone-input.examples.json +1 -1
- package/src/components/pin-input/README.md +19 -19
- package/src/components/pin-input/pin-input.examples.json +1 -1
- package/src/components/popover/README.md +19 -18
- package/src/components/popover/popover.svelte +10 -3
- package/src/components/popover/popover.types.ts +6 -0
- package/src/components/portal/README.md +7 -6
- package/src/components/portal/portal.types.ts +4 -0
- package/src/components/pricing-card/README.md +10 -9
- package/src/components/pricing-card/pricing-card.css +11 -3
- package/src/components/radio-group/README.md +12 -12
- package/src/components/radio-group/radio-group.examples.json +1 -1
- package/src/components/rating/README.md +18 -18
- package/src/components/rating/rating.examples.json +1 -1
- package/src/components/resizable-panels/resizable-panels.types.ts +4 -0
- package/src/components/review-editor/README.md +7 -7
- package/src/components/review-editor/index.ts +1 -1
- package/src/components/review-editor/review-editor-impl.svelte +5 -2
- package/src/components/review-editor/review-editor-selection-geometry.ts +3 -0
- package/src/components/review-editor/review-editor-selection-types.ts +68 -0
- package/src/components/review-editor/review-editor-selection.svelte.ts +2 -63
- package/src/components/review-editor/review-editor.examples.json +1 -1
- package/src/components/run-step-timeline/README.md +152 -0
- package/src/components/run-step-timeline/index.ts +11 -0
- package/src/components/run-step-timeline/run-step-timeline.css +215 -0
- package/src/components/run-step-timeline/run-step-timeline.examples.json +25 -0
- package/src/components/run-step-timeline/run-step-timeline.svelte +234 -0
- package/src/components/run-step-timeline/run-step-timeline.types.ts +123 -0
- package/src/components/schema-form/README.md +59 -0
- package/src/components/schema-form/index.ts +14 -0
- package/src/components/schema-form/schema-form-model.ts +409 -0
- package/src/components/schema-form/schema-form-validation.ts +199 -0
- package/src/components/schema-form/schema-form.css +180 -0
- package/src/components/schema-form/schema-form.examples.json +19 -0
- package/src/components/schema-form/schema-form.svelte +626 -0
- package/src/components/schema-form/schema-form.types.ts +36 -0
- package/src/components/scroll-area/README.md +1 -1
- package/src/components/search-field/README.md +4 -4
- package/src/components/search-field/search-field.examples.json +1 -1
- package/src/components/secret-value-field/README.md +85 -0
- package/src/components/secret-value-field/index.ts +6 -0
- package/src/components/secret-value-field/secret-value-field.css +147 -0
- package/src/components/secret-value-field/secret-value-field.examples.json +31 -0
- package/src/components/secret-value-field/secret-value-field.svelte +223 -0
- package/src/components/secret-value-field/secret-value-field.types.ts +47 -0
- package/src/components/section-heading/README.md +9 -9
- package/src/components/segment/README.md +9 -9
- package/src/components/segmented-control/README.md +4 -4
- package/src/components/segmented-control/segmented-control.css +17 -0
- package/src/components/segmented-control/segmented-control.types.ts +2 -0
- package/src/components/select/README.md +11 -11
- package/src/components/select/select.examples.json +7 -1
- package/src/components/selection-popover/README.md +13 -13
- package/src/components/selection-popover/selection-popover.examples.json +4 -4
- package/src/components/selection-popover/selection-popover.svelte +9 -2
- package/src/components/selection-popover/selection-popover.types.ts +8 -0
- package/src/components/share-card/README.md +12 -12
- package/src/components/share-card/share-card.svelte +159 -141
- package/src/components/sheet/README.md +6 -6
- package/src/components/sheet/sheet.svelte +6 -0
- package/src/components/shortcut-hint/README.md +7 -7
- package/src/components/side-navigation/README.md +5 -5
- package/src/components/side-navigation/side-navigation.examples.json +2 -2
- package/src/components/side-navigation-group/README.md +10 -10
- package/src/components/side-navigation-item/README.md +10 -10
- package/src/components/sidebar/README.md +3 -3
- package/src/components/skeleton/README.md +6 -6
- package/src/components/skeleton/skeleton.types.ts +4 -0
- package/src/components/skip-link/README.md +5 -4
- package/src/components/skip-link/skip-link.examples.json +1 -1
- package/src/components/slider/README.md +16 -16
- package/src/components/slider/slider.types.ts +2 -0
- package/src/components/sortable-list/README.md +12 -12
- package/src/components/sortable-list/sortable-list.types.ts +1 -0
- package/src/components/spectrogram/README.md +13 -11
- package/src/components/spectrogram/spectrogram.css +2 -1
- package/src/components/spectrogram/spectrogram.examples.json +12 -0
- package/src/components/spectrogram/spectrogram.types.ts +12 -1
- package/src/components/spectrum-chart/README.md +12 -10
- package/src/components/spectrum-chart/spectrum-chart.types.ts +9 -0
- package/src/components/speed-dial/README.md +54 -0
- package/src/components/speed-dial/index.ts +25 -0
- package/src/components/speed-dial/speed-dial.context.ts +16 -0
- package/src/components/speed-dial/speed-dial.css +112 -0
- package/src/components/speed-dial/speed-dial.examples.json +19 -0
- package/src/components/speed-dial/speed-dial.svelte +205 -0
- package/src/components/speed-dial/speed-dial.types.ts +59 -0
- package/src/components/speed-dial-action/README.md +51 -0
- package/src/components/speed-dial-action/index.ts +8 -0
- package/src/components/speed-dial-action/speed-dial-action.svelte +77 -0
- package/src/components/speed-dial-action/speed-dial-action.types.ts +50 -0
- package/src/components/stacked-list-item/README.md +21 -11
- package/src/components/stacked-list-item/stacked-list-item.examples.json +25 -0
- package/src/components/stacked-list-item/stacked-list-item.types.ts +4 -0
- package/src/components/stat/README.md +11 -11
- package/src/components/stat-group/README.md +1 -1
- package/src/components/stat-group/stat-group.examples.json +18 -0
- package/src/components/status-dot/status-dot.css +1 -1
- package/src/components/status-dot/status-dot.examples.json +2 -2
- package/src/components/steps/README.md +10 -3
- package/src/components/steps/steps.css +30 -10
- package/src/components/steps/steps.examples.json +12 -0
- package/src/components/subscription-badge/subscription-badge.examples.json +1 -1
- package/src/components/subscription-badge/subscription-badge.svelte +1 -1
- package/src/components/surface/README.md +6 -5
- package/src/components/surface/surface.types.ts +1 -0
- package/src/components/tab/README.md +8 -8
- package/src/components/tab-list/README.md +6 -6
- package/src/components/tab-panel/README.md +1 -1
- package/src/components/table/README.md +2 -2
- package/src/components/table/table.css +23 -4
- package/src/components/table/table.svelte +26 -1
- package/src/components/table/table.types.ts +2 -1
- package/src/components/table-body/README.md +4 -4
- package/src/components/table-cell/README.md +6 -6
- package/src/components/table-cell/table-cell.types.ts +4 -7
- package/src/components/table-header/README.md +2 -2
- package/src/components/table-header-cell/README.md +1 -1
- package/src/components/table-row/README.md +3 -3
- package/src/components/table-row/table-row.svelte +2 -1
- package/src/components/table-row/table-row.types.ts +4 -1
- package/src/components/tabs/README.md +1 -1
- package/src/components/tabs/tabs.css +1 -1
- package/src/components/tag-input/README.md +29 -29
- package/src/components/tag-input/tag-input.css +2 -2
- package/src/components/tag-input/tag-input.examples.json +7 -1
- package/src/components/tag-input/tag-input.svelte +18 -0
- package/src/components/textarea/README.md +4 -2
- package/src/components/textarea/textarea.css +1 -0
- package/src/components/textarea/textarea.examples.json +19 -1
- package/src/components/textarea/textarea.types.ts +10 -0
- package/src/components/timeline/README.md +12 -10
- package/src/components/timeline/timeline.css +40 -8
- package/src/components/timeline/timeline.examples.json +9 -3
- package/src/components/timeline/timeline.svelte +6 -3
- package/src/components/timeline/timeline.types.ts +2 -2
- package/src/components/toast-region/README.md +7 -7
- package/src/components/toast-region/toast-region.svelte +54 -1
- package/src/components/toggle/README.md +1 -1
- package/src/components/toggle/toggle.css +5 -2
- package/src/components/toggle/toggle.examples.json +7 -1
- package/src/components/toolbar/README.md +5 -4
- package/src/components/tooltip/README.md +7 -7
- package/src/components/tooltip/tooltip.css +11 -2
- package/src/components/tooltip/tooltip.types.ts +4 -0
- package/src/components/transfer-list/README.md +52 -0
- package/src/components/transfer-list/index.ts +10 -0
- package/src/components/transfer-list/transfer-list.css +114 -0
- package/src/components/transfer-list/transfer-list.examples.json +13 -0
- package/src/components/transfer-list/transfer-list.svelte +394 -0
- package/src/components/transfer-list/transfer-list.types.ts +55 -0
- package/src/components/tree/README.md +29 -15
- package/src/components/tree/index.ts +16 -3
- package/src/components/tree/tree.css +203 -3
- package/src/components/tree/tree.examples.json +12 -0
- package/src/components/tree/tree.svelte +981 -45
- package/src/components/tree/tree.types.ts +80 -3
- package/src/components/tree-item/README.md +14 -12
- package/src/components/tree-item/tree-item.svelte +410 -7
- package/src/components/tree-item/tree-item.types.ts +11 -3
- package/src/components/typography/README.md +8 -7
- package/src/components/virtual-list/README.md +70 -0
- package/src/components/virtual-list/index.ts +16 -0
- package/src/components/virtual-list/virtual-list.css +30 -0
- package/src/components/virtual-list/virtual-list.examples.json +13 -0
- package/src/components/virtual-list/virtual-list.svelte +192 -0
- package/src/components/virtual-list/virtual-list.types.ts +60 -0
- package/src/components/visually-hidden/README.md +6 -5
- package/src/components/waveform/README.md +13 -11
- package/src/components/waveform/waveform.examples.json +12 -0
- package/src/components/waveform/waveform.types.ts +9 -0
- package/src/highlighters/shiki/index.ts +11 -1
- package/src/index.ts +145 -3
- package/src/schema-types.ts +10 -0
- package/src/styles/all.css.d.ts +7 -0
- package/src/styles/base-guard.ts +95 -0
- package/src/styles/components/_dismiss-button.css +1 -1
- package/src/styles/components/_floating-surface.css +32 -2
- package/src/styles/components/_input-frame.css +29 -0
- package/src/styles/components.css +19 -2
- package/src/styles/foundation.css.d.ts +7 -0
- package/src/styles/index.css.d.ts +7 -0
- package/src/styles/tokens-base.css +110 -42
- package/src/styles/tokens.css.d.ts +7 -0
- package/src/styles/utilities.css.d.ts +7 -0
- package/src/utilities/clipboard.ts +2 -0
- package/src/utilities/fixed-virtual-window.ts +99 -0
- package/dist/components/accordion/accordion.fixture.svelte.d.ts +0 -8
- package/dist/components/dropdown/dropdown.fixture.svelte.d.ts +0 -7
- package/dist/components/experimental/timeline/index.d.ts +0 -2
- package/dist/components/experimental/timeline/index.js +0 -70
- package/dist/components/experimental/timeline-item/index.d.ts +0 -2
- package/dist/components/experimental/timeline-item/index.js +0 -70
- package/dist/components/modal/modal.fixture.svelte.d.ts +0 -9
- package/dist/components/navigation-item/navigation-item.fixture.svelte.d.ts +0 -7
- package/dist/components/segmented-control/segmented-control.fixture.svelte.d.ts +0 -7
- package/dist/components/side-navigation/side-navigation.fixture.svelte.d.ts +0 -8
- package/dist/components/table/table.fixture.svelte.d.ts +0 -4
- package/dist/components/tabs/tabs.fixture.svelte.d.ts +0 -7
- package/dist/components/timeline-item/index.d.ts +0 -5
- package/dist/components/timeline-item/index.js +0 -171
- package/dist/components/timeline-item/timeline-item.css +0 -7
- package/dist/components/timeline-item/timeline-item.schema.js +0 -103
- package/dist/components/timeline-item/timeline-item.variables.js +0 -61
- package/dist/server/components/experimental/timeline/index.js +0 -54
- package/dist/server/components/experimental/timeline-item/index.js +0 -54
- package/dist/server/components/timeline-item/index.css +0 -2
- package/dist/server/components/timeline-item/index.js +0 -108
- package/dist/server/components/timeline-item/timeline-item.schema.js +0 -85
- package/dist/server/components/timeline-item/timeline-item.variables.js +0 -43
- package/src/components/_radio/radio.schema.json +0 -36
- package/src/components/_radio/radio.schema.ts +0 -41
- package/src/components/_radio/radio.variables.json +0 -1
- package/src/components/_radio/radio.variables.ts +0 -3
- package/src/components/_tree-select-all/tree-select-all.css +0 -38
- package/src/components/_tree-select-all/tree-select-all.schema.json +0 -38
- package/src/components/_tree-select-all/tree-select-all.schema.ts +0 -43
- package/src/components/_tree-select-all/tree-select-all.variables.json +0 -1
- package/src/components/_tree-select-all/tree-select-all.variables.ts +0 -3
- package/src/components/accordion/accordion.fixture.svelte +0 -32
- package/src/components/accordion/accordion.schema.json +0 -16
- package/src/components/accordion/accordion.schema.ts +0 -20
- package/src/components/accordion/accordion.variables.json +0 -1
- package/src/components/accordion/accordion.variables.ts +0 -3
- package/src/components/accordion-item/accordion-item.schema.json +0 -25
- package/src/components/accordion-item/accordion-item.schema.ts +0 -29
- package/src/components/accordion-item/accordion-item.variables.json +0 -1
- package/src/components/accordion-item/accordion-item.variables.ts +0 -3
- package/src/components/alert/alert.schema.json +0 -21
- package/src/components/alert/alert.schema.ts +0 -26
- package/src/components/alert/alert.variables.json +0 -1
- package/src/components/alert/alert.variables.ts +0 -3
- package/src/components/alert-dialog/alert-dialog.schema.json +0 -45
- package/src/components/alert-dialog/alert-dialog.schema.ts +0 -49
- package/src/components/alert-dialog/alert-dialog.variables.json +0 -1
- package/src/components/alert-dialog/alert-dialog.variables.ts +0 -3
- package/src/components/area-chart/area-chart.schema.json +0 -117
- package/src/components/area-chart/area-chart.schema.ts +0 -121
- package/src/components/area-chart/area-chart.variables.json +0 -1
- package/src/components/area-chart/area-chart.variables.ts +0 -3
- package/src/components/aspect-ratio/aspect-ratio.schema.json +0 -133
- package/src/components/aspect-ratio/aspect-ratio.schema.ts +0 -137
- package/src/components/aspect-ratio/aspect-ratio.variables.json +0 -1
- package/src/components/aspect-ratio/aspect-ratio.variables.ts +0 -3
- package/src/components/autocomplete/autocomplete.schema.json +0 -65
- package/src/components/autocomplete/autocomplete.schema.ts +0 -69
- package/src/components/autocomplete/autocomplete.variables.json +0 -1
- package/src/components/autocomplete/autocomplete.variables.ts +0 -3
- package/src/components/avatar/avatar.schema.json +0 -35
- package/src/components/avatar/avatar.schema.ts +0 -40
- package/src/components/avatar/avatar.variables.json +0 -1
- package/src/components/avatar/avatar.variables.ts +0 -3
- package/src/components/avatar-group/avatar-group.schema.json +0 -64
- package/src/components/avatar-group/avatar-group.schema.ts +0 -69
- package/src/components/avatar-group/avatar-group.variables.json +0 -1
- package/src/components/avatar-group/avatar-group.variables.ts +0 -3
- package/src/components/backdrop/backdrop.schema.json +0 -42
- package/src/components/backdrop/backdrop.schema.ts +0 -49
- package/src/components/backdrop/backdrop.variables.json +0 -1
- package/src/components/backdrop/backdrop.variables.ts +0 -3
- package/src/components/badge/badge.schema.json +0 -26
- package/src/components/badge/badge.schema.ts +0 -31
- package/src/components/badge/badge.variables.json +0 -1
- package/src/components/badge/badge.variables.ts +0 -3
- package/src/components/banner/banner.schema.json +0 -35
- package/src/components/banner/banner.schema.ts +0 -40
- package/src/components/banner/banner.variables.json +0 -1
- package/src/components/banner/banner.variables.ts +0 -3
- package/src/components/bar-chart/bar-chart.schema.json +0 -118
- package/src/components/bar-chart/bar-chart.schema.ts +0 -125
- package/src/components/bar-chart/bar-chart.variables.json +0 -1
- package/src/components/bar-chart/bar-chart.variables.ts +0 -3
- package/src/components/breadcrumbs/breadcrumbs.schema.json +0 -21
- package/src/components/breadcrumbs/breadcrumbs.schema.ts +0 -25
- package/src/components/breadcrumbs/breadcrumbs.variables.json +0 -1
- package/src/components/breadcrumbs/breadcrumbs.variables.ts +0 -3
- package/src/components/button/button.schema.json +0 -44
- package/src/components/button/button.schema.ts +0 -48
- package/src/components/button/button.variables.json +0 -1
- package/src/components/button/button.variables.ts +0 -3
- package/src/components/button-group/button-group.schema.json +0 -29
- package/src/components/button-group/button-group.schema.ts +0 -33
- package/src/components/button-group/button-group.variables.json +0 -1
- package/src/components/button-group/button-group.variables.ts +0 -3
- package/src/components/callout/callout.schema.json +0 -31
- package/src/components/callout/callout.schema.ts +0 -37
- package/src/components/callout/callout.variables.json +0 -1
- package/src/components/callout/callout.variables.ts +0 -3
- package/src/components/capability-gate/capability-gate.schema.json +0 -68
- package/src/components/capability-gate/capability-gate.schema.ts +0 -72
- package/src/components/capability-gate/capability-gate.variables.json +0 -1
- package/src/components/capability-gate/capability-gate.variables.ts +0 -3
- package/src/components/card/card.schema.json +0 -57
- package/src/components/card/card.schema.ts +0 -63
- package/src/components/card/card.variables.json +0 -1
- package/src/components/card/card.variables.ts +0 -3
- package/src/components/chat/chat.schema.json +0 -131
- package/src/components/chat/chat.schema.ts +0 -135
- package/src/components/chat/chat.variables.json +0 -1
- package/src/components/chat/chat.variables.ts +0 -3
- package/src/components/checkbox/checkbox.schema.json +0 -43
- package/src/components/checkbox/checkbox.schema.ts +0 -48
- package/src/components/checkbox/checkbox.variables.json +0 -1
- package/src/components/checkbox/checkbox.variables.ts +0 -3
- package/src/components/checkbox-group/checkbox-group.schema.json +0 -43
- package/src/components/checkbox-group/checkbox-group.schema.ts +0 -51
- package/src/components/checkbox-group/checkbox-group.variables.json +0 -1
- package/src/components/checkbox-group/checkbox-group.variables.ts +0 -3
- package/src/components/chip/chip.schema.json +0 -51
- package/src/components/chip/chip.schema.ts +0 -55
- package/src/components/chip/chip.variables.json +0 -1
- package/src/components/chip/chip.variables.ts +0 -3
- package/src/components/choice-grid/choice-grid.schema.json +0 -61
- package/src/components/choice-grid/choice-grid.schema.ts +0 -70
- package/src/components/choice-grid/choice-grid.variables.json +0 -1
- package/src/components/choice-grid/choice-grid.variables.ts +0 -3
- package/src/components/choice-grid-item/choice-grid-item.schema.json +0 -32
- package/src/components/choice-grid-item/choice-grid-item.schema.ts +0 -38
- package/src/components/choice-grid-item/choice-grid-item.variables.json +0 -1
- package/src/components/choice-grid-item/choice-grid-item.variables.ts +0 -3
- package/src/components/click-away-listener/click-away-listener.schema.json +0 -27
- package/src/components/click-away-listener/click-away-listener.schema.ts +0 -32
- package/src/components/click-away-listener/click-away-listener.variables.json +0 -1
- package/src/components/click-away-listener/click-away-listener.variables.ts +0 -3
- package/src/components/code-block/code-block.schema.json +0 -36
- package/src/components/code-block/code-block.schema.ts +0 -42
- package/src/components/code-block/code-block.variables.json +0 -1
- package/src/components/code-block/code-block.variables.ts +0 -3
- package/src/components/collapsible/collapsible.schema.json +0 -30
- package/src/components/collapsible/collapsible.schema.ts +0 -36
- package/src/components/collapsible/collapsible.variables.json +0 -1
- package/src/components/collapsible/collapsible.variables.ts +0 -3
- package/src/components/color-field/color-field.schema.json +0 -79
- package/src/components/color-field/color-field.schema.ts +0 -90
- package/src/components/color-field/color-field.variables.json +0 -1
- package/src/components/color-field/color-field.variables.ts +0 -3
- package/src/components/color-picker/color-picker.schema.json +0 -54
- package/src/components/color-picker/color-picker.schema.ts +0 -60
- package/src/components/color-picker/color-picker.variables.json +0 -1
- package/src/components/color-picker/color-picker.variables.ts +0 -3
- package/src/components/color-swatch-picker/color-swatch-picker.schema.json +0 -56
- package/src/components/color-swatch-picker/color-swatch-picker.schema.ts +0 -62
- package/src/components/color-swatch-picker/color-swatch-picker.variables.json +0 -1
- package/src/components/color-swatch-picker/color-swatch-picker.variables.ts +0 -3
- package/src/components/combobox/combobox.schema.json +0 -64
- package/src/components/combobox/combobox.schema.ts +0 -69
- package/src/components/combobox/combobox.variables.json +0 -1
- package/src/components/combobox/combobox.variables.ts +0 -3
- package/src/components/command-item/command-item.schema.json +0 -48
- package/src/components/command-item/command-item.schema.ts +0 -52
- package/src/components/command-item/command-item.variables.json +0 -1
- package/src/components/command-item/command-item.variables.ts +0 -3
- package/src/components/command-menu/command-menu.schema.json +0 -73
- package/src/components/command-menu/command-menu.schema.ts +0 -77
- package/src/components/command-menu/command-menu.variables.json +0 -1
- package/src/components/command-menu/command-menu.variables.ts +0 -3
- package/src/components/command-palette/command-palette.schema.json +0 -52
- package/src/components/command-palette/command-palette.schema.ts +0 -58
- package/src/components/command-palette/command-palette.variables.json +0 -1
- package/src/components/command-palette/command-palette.variables.ts +0 -3
- package/src/components/confirm-dialog/confirm-dialog.schema.json +0 -52
- package/src/components/confirm-dialog/confirm-dialog.schema.ts +0 -60
- package/src/components/confirm-dialog/confirm-dialog.variables.json +0 -1
- package/src/components/confirm-dialog/confirm-dialog.variables.ts +0 -3
- package/src/components/connection-indicator/connection-indicator.schema.json +0 -20
- package/src/components/connection-indicator/connection-indicator.schema.ts +0 -24
- package/src/components/connection-indicator/connection-indicator.variables.json +0 -1
- package/src/components/connection-indicator/connection-indicator.variables.ts +0 -3
- package/src/components/container/container.schema.json +0 -130
- package/src/components/container/container.schema.ts +0 -134
- package/src/components/container/container.variables.json +0 -1
- package/src/components/container/container.variables.ts +0 -3
- package/src/components/context-menu/context-menu.schema.json +0 -44
- package/src/components/context-menu/context-menu.schema.ts +0 -48
- package/src/components/context-menu/context-menu.variables.json +0 -1
- package/src/components/context-menu/context-menu.variables.ts +0 -3
- package/src/components/context-menu-trigger/context-menu-trigger.schema.json +0 -18
- package/src/components/context-menu-trigger/context-menu-trigger.schema.ts +0 -22
- package/src/components/context-menu-trigger/context-menu-trigger.variables.json +0 -1
- package/src/components/context-menu-trigger/context-menu-trigger.variables.ts +0 -3
- package/src/components/copy-button/copy-button.schema.json +0 -44
- package/src/components/copy-button/copy-button.schema.ts +0 -50
- package/src/components/copy-button/copy-button.variables.json +0 -1
- package/src/components/copy-button/copy-button.variables.ts +0 -3
- package/src/components/data-list/data-list.schema.json +0 -34
- package/src/components/data-list/data-list.schema.ts +0 -39
- package/src/components/data-list/data-list.variables.json +0 -1
- package/src/components/data-list/data-list.variables.ts +0 -3
- package/src/components/data-table/data-table.schema.json +0 -43
- package/src/components/data-table/data-table.schema.ts +0 -50
- package/src/components/data-table/data-table.variables.json +0 -1
- package/src/components/data-table/data-table.variables.ts +0 -3
- package/src/components/description-list/description-list.schema.json +0 -26
- package/src/components/description-list/description-list.schema.ts +0 -31
- package/src/components/description-list/description-list.variables.json +0 -1
- package/src/components/description-list/description-list.variables.ts +0 -3
- package/src/components/diff-statistics/diff-statistics.schema.json +0 -36
- package/src/components/diff-statistics/diff-statistics.schema.ts +0 -41
- package/src/components/diff-statistics/diff-statistics.variables.json +0 -1
- package/src/components/diff-statistics/diff-statistics.variables.ts +0 -3
- package/src/components/diff-viewer/diff-viewer.schema.json +0 -56
- package/src/components/diff-viewer/diff-viewer.schema.ts +0 -62
- package/src/components/diff-viewer/diff-viewer.variables.json +0 -1
- package/src/components/diff-viewer/diff-viewer.variables.ts +0 -3
- package/src/components/divider/divider.schema.json +0 -31
- package/src/components/divider/divider.schema.ts +0 -35
- package/src/components/divider/divider.variables.json +0 -1
- package/src/components/divider/divider.variables.ts +0 -3
- package/src/components/drawer/drawer.schema.json +0 -52
- package/src/components/drawer/drawer.schema.ts +0 -58
- package/src/components/drawer/drawer.variables.json +0 -1
- package/src/components/drawer/drawer.variables.ts +0 -3
- package/src/components/dropdown/dropdown.fixture.svelte +0 -28
- package/src/components/dropdown/dropdown.schema.json +0 -31
- package/src/components/dropdown/dropdown.schema.ts +0 -35
- package/src/components/dropdown/dropdown.variables.json +0 -1
- package/src/components/dropdown/dropdown.variables.ts +0 -3
- package/src/components/dropdown-group/dropdown-group.schema.json +0 -25
- package/src/components/dropdown-group/dropdown-group.schema.ts +0 -29
- package/src/components/dropdown-group/dropdown-group.variables.json +0 -1
- package/src/components/dropdown-group/dropdown-group.variables.ts +0 -3
- package/src/components/dropdown-item/dropdown-item.schema.json +0 -39
- package/src/components/dropdown-item/dropdown-item.schema.ts +0 -45
- package/src/components/dropdown-item/dropdown-item.variables.json +0 -1
- package/src/components/dropdown-item/dropdown-item.variables.ts +0 -3
- package/src/components/dropdown-label/dropdown-label.schema.json +0 -18
- package/src/components/dropdown-label/dropdown-label.schema.ts +0 -22
- package/src/components/dropdown-label/dropdown-label.variables.json +0 -1
- package/src/components/dropdown-label/dropdown-label.variables.ts +0 -3
- package/src/components/dropdown-menu/dropdown-menu.schema.json +0 -18
- package/src/components/dropdown-menu/dropdown-menu.schema.ts +0 -22
- package/src/components/dropdown-menu/dropdown-menu.variables.json +0 -1
- package/src/components/dropdown-menu/dropdown-menu.variables.ts +0 -3
- package/src/components/dropdown-separator/dropdown-separator.schema.json +0 -10
- package/src/components/dropdown-separator/dropdown-separator.schema.ts +0 -14
- package/src/components/dropdown-separator/dropdown-separator.variables.json +0 -1
- package/src/components/dropdown-separator/dropdown-separator.variables.ts +0 -3
- package/src/components/dropdown-trigger/dropdown-trigger.schema.json +0 -22
- package/src/components/dropdown-trigger/dropdown-trigger.schema.ts +0 -26
- package/src/components/dropdown-trigger/dropdown-trigger.variables.json +0 -1
- package/src/components/dropdown-trigger/dropdown-trigger.variables.ts +0 -3
- package/src/components/empty-state/empty-state.schema.json +0 -34
- package/src/components/empty-state/empty-state.schema.ts +0 -38
- package/src/components/empty-state/empty-state.variables.json +0 -1
- package/src/components/empty-state/empty-state.variables.ts +0 -3
- package/src/components/experimental/timeline/index.ts +0 -25
- package/src/components/experimental/timeline-item/index.ts +0 -17
- package/src/components/feed/feed.schema.json +0 -22
- package/src/components/feed/feed.schema.ts +0 -27
- package/src/components/feed/feed.variables.json +0 -1
- package/src/components/feed/feed.variables.ts +0 -3
- package/src/components/feed-event/feed-event.schema.json +0 -39
- package/src/components/feed-event/feed-event.schema.ts +0 -45
- package/src/components/feed-event/feed-event.variables.json +0 -1
- package/src/components/feed-event/feed-event.variables.ts +0 -3
- package/src/components/file-upload/file-upload.schema.json +0 -63
- package/src/components/file-upload/file-upload.schema.ts +0 -67
- package/src/components/file-upload/file-upload.variables.json +0 -6
- package/src/components/file-upload/file-upload.variables.ts +0 -8
- package/src/components/floating-action-button/floating-action-button.schema.json +0 -35
- package/src/components/floating-action-button/floating-action-button.schema.ts +0 -39
- package/src/components/floating-action-button/floating-action-button.variables.json +0 -1
- package/src/components/floating-action-button/floating-action-button.variables.ts +0 -3
- package/src/components/focus-trap/focus-trap.schema.json +0 -36
- package/src/components/focus-trap/focus-trap.schema.ts +0 -40
- package/src/components/focus-trap/focus-trap.variables.json +0 -1
- package/src/components/focus-trap/focus-trap.variables.ts +0 -3
- package/src/components/form-field/form-field.schema.json +0 -44
- package/src/components/form-field/form-field.schema.ts +0 -50
- package/src/components/form-field/form-field.variables.json +0 -1
- package/src/components/form-field/form-field.variables.ts +0 -3
- package/src/components/form-section/form-section.schema.json +0 -39
- package/src/components/form-section/form-section.schema.ts +0 -43
- package/src/components/form-section/form-section.variables.json +0 -1
- package/src/components/form-section/form-section.variables.ts +0 -3
- package/src/components/grid-list/grid-list.schema.json +0 -23
- package/src/components/grid-list/grid-list.schema.ts +0 -28
- package/src/components/grid-list/grid-list.variables.json +0 -1
- package/src/components/grid-list/grid-list.variables.ts +0 -3
- package/src/components/grid-list-item/grid-list-item.schema.json +0 -51
- package/src/components/grid-list-item/grid-list-item.schema.ts +0 -55
- package/src/components/grid-list-item/grid-list-item.variables.json +0 -1
- package/src/components/grid-list-item/grid-list-item.variables.ts +0 -3
- package/src/components/hover-card/hover-card.schema.json +0 -64
- package/src/components/hover-card/hover-card.schema.ts +0 -68
- package/src/components/hover-card/hover-card.variables.json +0 -1
- package/src/components/hover-card/hover-card.variables.ts +0 -3
- package/src/components/image/image.schema.json +0 -60
- package/src/components/image/image.schema.ts +0 -68
- package/src/components/image/image.variables.json +0 -1
- package/src/components/image/image.variables.ts +0 -3
- package/src/components/input/input.schema.json +0 -55
- package/src/components/input/input.schema.ts +0 -59
- package/src/components/input/input.variables.json +0 -1
- package/src/components/input/input.variables.ts +0 -3
- package/src/components/json-schema-editor/json-schema-editor.schema.json +0 -59
- package/src/components/json-schema-editor/json-schema-editor.schema.ts +0 -63
- package/src/components/json-schema-editor/json-schema-editor.variables.json +0 -1
- package/src/components/json-schema-editor/json-schema-editor.variables.ts +0 -3
- package/src/components/json-viewer/json-viewer.schema.json +0 -31
- package/src/components/json-viewer/json-viewer.schema.ts +0 -36
- package/src/components/json-viewer/json-viewer.variables.json +0 -1
- package/src/components/json-viewer/json-viewer.variables.ts +0 -3
- package/src/components/kanban-board/kanban-board.schema.json +0 -55
- package/src/components/kanban-board/kanban-board.schema.ts +0 -59
- package/src/components/kanban-board/kanban-board.variables.json +0 -6
- package/src/components/kanban-board/kanban-board.variables.ts +0 -8
- package/src/components/kbd/kbd.schema.json +0 -20
- package/src/components/kbd/kbd.schema.ts +0 -24
- package/src/components/kbd/kbd.variables.json +0 -1
- package/src/components/kbd/kbd.variables.ts +0 -3
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.schema.json +0 -27
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.schema.ts +0 -31
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.variables.json +0 -1
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.variables.ts +0 -3
- package/src/components/label/label.schema.json +0 -32
- package/src/components/label/label.schema.ts +0 -37
- package/src/components/label/label.variables.json +0 -1
- package/src/components/label/label.variables.ts +0 -3
- package/src/components/line-chart/line-chart.schema.json +0 -114
- package/src/components/line-chart/line-chart.schema.ts +0 -118
- package/src/components/line-chart/line-chart.variables.json +0 -1
- package/src/components/line-chart/line-chart.variables.ts +0 -3
- package/src/components/link/link.schema.json +0 -58
- package/src/components/link/link.schema.ts +0 -68
- package/src/components/link/link.variables.json +0 -1
- package/src/components/link/link.variables.ts +0 -3
- package/src/components/load-more/load-more.schema.json +0 -55
- package/src/components/load-more/load-more.schema.ts +0 -59
- package/src/components/load-more/load-more.variables.json +0 -1
- package/src/components/load-more/load-more.variables.ts +0 -3
- package/src/components/markdown-editor/markdown-editor.schema.json +0 -100
- package/src/components/markdown-editor/markdown-editor.schema.ts +0 -105
- package/src/components/markdown-editor/markdown-editor.variables.json +0 -1
- package/src/components/markdown-editor/markdown-editor.variables.ts +0 -3
- package/src/components/matrix-chart/matrix-chart.schema.json +0 -63
- package/src/components/matrix-chart/matrix-chart.schema.ts +0 -67
- package/src/components/matrix-chart/matrix-chart.variables.json +0 -1
- package/src/components/matrix-chart/matrix-chart.variables.ts +0 -3
- package/src/components/media-controls/media-controls.schema.json +0 -65
- package/src/components/media-controls/media-controls.schema.ts +0 -69
- package/src/components/media-controls/media-controls.variables.json +0 -1
- package/src/components/media-controls/media-controls.variables.ts +0 -3
- package/src/components/menu-bar/menu-bar.schema.json +0 -27
- package/src/components/menu-bar/menu-bar.schema.ts +0 -31
- package/src/components/menu-bar/menu-bar.variables.json +0 -1
- package/src/components/menu-bar/menu-bar.variables.ts +0 -3
- package/src/components/message/message.schema.json +0 -36
- package/src/components/message/message.schema.ts +0 -42
- package/src/components/message/message.variables.json +0 -1
- package/src/components/message/message.variables.ts +0 -3
- package/src/components/modal/modal.fixture.svelte +0 -89
- package/src/components/modal/modal.schema.json +0 -68
- package/src/components/modal/modal.schema.ts +0 -8
- package/src/components/modal/modal.variables.json +0 -1
- package/src/components/modal/modal.variables.ts +0 -3
- package/src/components/navigation-bar/navigation-bar.schema.json +0 -39
- package/src/components/navigation-bar/navigation-bar.schema.ts +0 -44
- package/src/components/navigation-bar/navigation-bar.variables.json +0 -1
- package/src/components/navigation-bar/navigation-bar.variables.ts +0 -3
- package/src/components/navigation-item/navigation-item.fixture.svelte +0 -21
- package/src/components/navigation-item/navigation-item.schema.json +0 -39
- package/src/components/navigation-item/navigation-item.schema.ts +0 -45
- package/src/components/navigation-item/navigation-item.variables.json +0 -1
- package/src/components/navigation-item/navigation-item.variables.ts +0 -3
- package/src/components/number-input/number-input.schema.json +0 -77
- package/src/components/number-input/number-input.schema.ts +0 -81
- package/src/components/number-input/number-input.variables.json +0 -1
- package/src/components/number-input/number-input.variables.ts +0 -3
- package/src/components/pagination/pagination.schema.json +0 -24
- package/src/components/pagination/pagination.schema.ts +0 -28
- package/src/components/pagination/pagination.variables.json +0 -1
- package/src/components/pagination/pagination.variables.ts +0 -3
- package/src/components/phone-input/phone-input.schema.json +0 -571
- package/src/components/phone-input/phone-input.schema.ts +0 -577
- package/src/components/phone-input/phone-input.variables.json +0 -1
- package/src/components/phone-input/phone-input.variables.ts +0 -3
- package/src/components/pin-input/pin-input.schema.json +0 -80
- package/src/components/pin-input/pin-input.schema.ts +0 -86
- package/src/components/pin-input/pin-input.variables.json +0 -1
- package/src/components/pin-input/pin-input.variables.ts +0 -3
- package/src/components/popover/popover.schema.json +0 -80
- package/src/components/popover/popover.schema.ts +0 -84
- package/src/components/popover/popover.variables.json +0 -1
- package/src/components/popover/popover.variables.ts +0 -3
- package/src/components/portal/portal.schema.json +0 -26
- package/src/components/portal/portal.schema.ts +0 -30
- package/src/components/portal/portal.variables.json +0 -1
- package/src/components/portal/portal.variables.ts +0 -3
- package/src/components/pricing-card/pricing-card.schema.json +0 -40
- package/src/components/pricing-card/pricing-card.schema.ts +0 -44
- package/src/components/pricing-card/pricing-card.variables.json +0 -1
- package/src/components/pricing-card/pricing-card.variables.ts +0 -3
- package/src/components/progress/progress.schema.json +0 -39
- package/src/components/progress/progress.schema.ts +0 -46
- package/src/components/progress/progress.variables.json +0 -1
- package/src/components/progress/progress.variables.ts +0 -3
- package/src/components/radio-group/radio-group.schema.json +0 -52
- package/src/components/radio-group/radio-group.schema.ts +0 -58
- package/src/components/radio-group/radio-group.variables.json +0 -1
- package/src/components/radio-group/radio-group.variables.ts +0 -3
- package/src/components/rating/rating.schema.json +0 -76
- package/src/components/rating/rating.schema.ts +0 -83
- package/src/components/rating/rating.variables.json +0 -1
- package/src/components/rating/rating.variables.ts +0 -3
- package/src/components/resizable-panels/resizable-panels.schema.json +0 -47
- package/src/components/resizable-panels/resizable-panels.schema.ts +0 -51
- package/src/components/resizable-panels/resizable-panels.variables.json +0 -1
- package/src/components/resizable-panels/resizable-panels.variables.ts +0 -3
- package/src/components/review-editor/review-editor.schema.json +0 -76
- package/src/components/review-editor/review-editor.schema.ts +0 -81
- package/src/components/review-editor/review-editor.variables.json +0 -1
- package/src/components/review-editor/review-editor.variables.ts +0 -3
- package/src/components/scroll-area/scroll-area.schema.json +0 -43
- package/src/components/scroll-area/scroll-area.schema.ts +0 -49
- package/src/components/scroll-area/scroll-area.variables.json +0 -1
- package/src/components/scroll-area/scroll-area.variables.ts +0 -3
- package/src/components/search-field/search-field.schema.json +0 -59
- package/src/components/search-field/search-field.schema.ts +0 -64
- package/src/components/search-field/search-field.variables.json +0 -1
- package/src/components/search-field/search-field.variables.ts +0 -3
- package/src/components/section-heading/section-heading.schema.json +0 -40
- package/src/components/section-heading/section-heading.schema.ts +0 -46
- package/src/components/section-heading/section-heading.variables.json +0 -1
- package/src/components/section-heading/section-heading.variables.ts +0 -3
- package/src/components/segment/segment.schema.json +0 -39
- package/src/components/segment/segment.schema.ts +0 -44
- package/src/components/segment/segment.variables.json +0 -1
- package/src/components/segment/segment.variables.ts +0 -3
- package/src/components/segmented-control/segmented-control.fixture.svelte +0 -31
- package/src/components/segmented-control/segmented-control.schema.json +0 -75
- package/src/components/segmented-control/segmented-control.schema.ts +0 -82
- package/src/components/segmented-control/segmented-control.variables.json +0 -1
- package/src/components/segmented-control/segmented-control.variables.ts +0 -3
- package/src/components/select/select.schema.json +0 -48
- package/src/components/select/select.schema.ts +0 -53
- package/src/components/select/select.variables.json +0 -1
- package/src/components/select/select.variables.ts +0 -3
- package/src/components/selection-popover/selection-popover.schema.json +0 -44
- package/src/components/selection-popover/selection-popover.schema.ts +0 -48
- package/src/components/selection-popover/selection-popover.variables.json +0 -1
- package/src/components/selection-popover/selection-popover.variables.ts +0 -3
- package/src/components/share-card/share-card.schema.json +0 -53
- package/src/components/share-card/share-card.schema.ts +0 -57
- package/src/components/share-card/share-card.variables.json +0 -1
- package/src/components/share-card/share-card.variables.ts +0 -3
- package/src/components/sheet/sheet.schema.json +0 -48
- package/src/components/sheet/sheet.schema.ts +0 -55
- package/src/components/sheet/sheet.variables.json +0 -1
- package/src/components/sheet/sheet.variables.ts +0 -3
- package/src/components/shortcut-hint/shortcut-hint.schema.json +0 -36
- package/src/components/shortcut-hint/shortcut-hint.schema.ts +0 -40
- package/src/components/shortcut-hint/shortcut-hint.variables.json +0 -1
- package/src/components/shortcut-hint/shortcut-hint.variables.ts +0 -3
- package/src/components/side-navigation/side-navigation.fixture.svelte +0 -39
- package/src/components/side-navigation/side-navigation.schema.json +0 -24
- package/src/components/side-navigation/side-navigation.schema.ts +0 -29
- package/src/components/side-navigation/side-navigation.variables.json +0 -1
- package/src/components/side-navigation/side-navigation.variables.ts +0 -3
- package/src/components/side-navigation-group/side-navigation-group.schema.json +0 -44
- package/src/components/side-navigation-group/side-navigation-group.schema.ts +0 -49
- package/src/components/side-navigation-group/side-navigation-group.variables.json +0 -1
- package/src/components/side-navigation-group/side-navigation-group.variables.ts +0 -3
- package/src/components/side-navigation-item/side-navigation-item.schema.json +0 -39
- package/src/components/side-navigation-item/side-navigation-item.schema.ts +0 -44
- package/src/components/side-navigation-item/side-navigation-item.variables.json +0 -1
- package/src/components/side-navigation-item/side-navigation-item.variables.ts +0 -3
- package/src/components/sidebar/sidebar.schema.json +0 -35
- package/src/components/sidebar/sidebar.schema.ts +0 -41
- package/src/components/sidebar/sidebar.variables.json +0 -1
- package/src/components/sidebar/sidebar.variables.ts +0 -3
- package/src/components/skeleton/skeleton.schema.json +0 -19
- package/src/components/skeleton/skeleton.schema.ts +0 -23
- package/src/components/skeleton/skeleton.variables.json +0 -1
- package/src/components/skeleton/skeleton.variables.ts +0 -3
- package/src/components/skip-link/skip-link.schema.json +0 -16
- package/src/components/skip-link/skip-link.schema.ts +0 -20
- package/src/components/skip-link/skip-link.variables.json +0 -1
- package/src/components/skip-link/skip-link.variables.ts +0 -3
- package/src/components/slider/slider.schema.json +0 -80
- package/src/components/slider/slider.schema.ts +0 -85
- package/src/components/slider/slider.variables.json +0 -1
- package/src/components/slider/slider.variables.ts +0 -3
- package/src/components/sortable-list/sortable-list.schema.json +0 -50
- package/src/components/sortable-list/sortable-list.schema.ts +0 -54
- package/src/components/sortable-list/sortable-list.variables.json +0 -1
- package/src/components/sortable-list/sortable-list.variables.ts +0 -3
- package/src/components/spectrogram/spectrogram.schema.json +0 -43
- package/src/components/spectrogram/spectrogram.schema.ts +0 -47
- package/src/components/spectrogram/spectrogram.variables.json +0 -1
- package/src/components/spectrogram/spectrogram.variables.ts +0 -3
- package/src/components/spectrum-chart/spectrum-chart.schema.json +0 -37
- package/src/components/spectrum-chart/spectrum-chart.schema.ts +0 -41
- package/src/components/spectrum-chart/spectrum-chart.variables.json +0 -1
- package/src/components/spectrum-chart/spectrum-chart.variables.ts +0 -3
- package/src/components/spinner/spinner.schema.json +0 -21
- package/src/components/spinner/spinner.schema.ts +0 -25
- package/src/components/spinner/spinner.variables.json +0 -1
- package/src/components/spinner/spinner.variables.ts +0 -3
- package/src/components/stacked-list-item/stacked-list-item.schema.json +0 -66
- package/src/components/stacked-list-item/stacked-list-item.schema.ts +0 -71
- package/src/components/stacked-list-item/stacked-list-item.variables.json +0 -1
- package/src/components/stacked-list-item/stacked-list-item.variables.ts +0 -3
- package/src/components/stat/stat.schema.json +0 -47
- package/src/components/stat/stat.schema.ts +0 -51
- package/src/components/stat/stat.variables.json +0 -1
- package/src/components/stat/stat.variables.ts +0 -3
- package/src/components/stat-group/stat-group.schema.json +0 -33
- package/src/components/stat-group/stat-group.schema.ts +0 -39
- package/src/components/stat-group/stat-group.variables.json +0 -1
- package/src/components/stat-group/stat-group.variables.ts +0 -3
- package/src/components/status-dot/status-dot.schema.json +0 -30
- package/src/components/status-dot/status-dot.schema.ts +0 -36
- package/src/components/status-dot/status-dot.variables.json +0 -1
- package/src/components/status-dot/status-dot.variables.ts +0 -3
- package/src/components/steps/steps.schema.json +0 -36
- package/src/components/steps/steps.schema.ts +0 -42
- package/src/components/steps/steps.variables.json +0 -1
- package/src/components/steps/steps.variables.ts +0 -3
- package/src/components/subscription-badge/subscription-badge.schema.json +0 -16
- package/src/components/subscription-badge/subscription-badge.schema.ts +0 -21
- package/src/components/subscription-badge/subscription-badge.variables.json +0 -1
- package/src/components/subscription-badge/subscription-badge.variables.ts +0 -3
- package/src/components/surface/surface.schema.json +0 -16
- package/src/components/surface/surface.schema.ts +0 -20
- package/src/components/surface/surface.variables.json +0 -1
- package/src/components/surface/surface.variables.ts +0 -3
- package/src/components/tab/tab.schema.json +0 -36
- package/src/components/tab/tab.schema.ts +0 -40
- package/src/components/tab/tab.variables.json +0 -1
- package/src/components/tab/tab.variables.ts +0 -3
- package/src/components/tab-list/tab-list.schema.json +0 -27
- package/src/components/tab-list/tab-list.schema.ts +0 -31
- package/src/components/tab-list/tab-list.variables.json +0 -1
- package/src/components/tab-list/tab-list.variables.ts +0 -3
- package/src/components/tab-panel/tab-panel.schema.json +0 -28
- package/src/components/tab-panel/tab-panel.schema.ts +0 -33
- package/src/components/tab-panel/tab-panel.variables.json +0 -1
- package/src/components/tab-panel/tab-panel.variables.ts +0 -3
- package/src/components/table/table.fixture.svelte +0 -87
- package/src/components/table/table.schema.json +0 -39
- package/src/components/table/table.schema.ts +0 -45
- package/src/components/table/table.variables.json +0 -1
- package/src/components/table/table.variables.ts +0 -3
- package/src/components/table-body/table-body.schema.json +0 -19
- package/src/components/table-body/table-body.schema.ts +0 -23
- package/src/components/table-body/table-body.variables.json +0 -1
- package/src/components/table-body/table-body.variables.ts +0 -3
- package/src/components/table-cell/table-cell.schema.json +0 -27
- package/src/components/table-cell/table-cell.schema.ts +0 -32
- package/src/components/table-cell/table-cell.variables.json +0 -1
- package/src/components/table-cell/table-cell.variables.ts +0 -3
- package/src/components/table-header/table-header.schema.json +0 -35
- package/src/components/table-header/table-header.schema.ts +0 -42
- package/src/components/table-header/table-header.variables.json +0 -1
- package/src/components/table-header/table-header.variables.ts +0 -3
- package/src/components/table-header-cell/table-header-cell.schema.json +0 -35
- package/src/components/table-header-cell/table-header-cell.schema.ts +0 -41
- package/src/components/table-header-cell/table-header-cell.variables.json +0 -1
- package/src/components/table-header-cell/table-header-cell.variables.ts +0 -3
- package/src/components/table-row/table-row.schema.json +0 -33
- package/src/components/table-row/table-row.schema.ts +0 -38
- package/src/components/table-row/table-row.variables.json +0 -1
- package/src/components/table-row/table-row.variables.ts +0 -3
- package/src/components/tabs/tabs.fixture.svelte +0 -35
- package/src/components/tabs/tabs.schema.json +0 -31
- package/src/components/tabs/tabs.schema.ts +0 -36
- package/src/components/tabs/tabs.variables.json +0 -1
- package/src/components/tabs/tabs.variables.ts +0 -3
- package/src/components/tag-input/tag-input.schema.json +0 -160
- package/src/components/tag-input/tag-input.schema.ts +0 -169
- package/src/components/tag-input/tag-input.variables.json +0 -1
- package/src/components/tag-input/tag-input.variables.ts +0 -3
- package/src/components/textarea/textarea.schema.json +0 -48
- package/src/components/textarea/textarea.schema.ts +0 -53
- package/src/components/textarea/textarea.variables.json +0 -1
- package/src/components/textarea/textarea.variables.ts +0 -3
- package/src/components/timeline/timeline.schema.json +0 -76
- package/src/components/timeline/timeline.schema.ts +0 -81
- package/src/components/timeline/timeline.variables.json +0 -1
- package/src/components/timeline/timeline.variables.ts +0 -3
- package/src/components/timeline-item/README.md +0 -51
- package/src/components/timeline-item/index.ts +0 -6
- package/src/components/timeline-item/timeline-item.css +0 -7
- package/src/components/timeline-item/timeline-item.schema.json +0 -43
- package/src/components/timeline-item/timeline-item.schema.ts +0 -48
- package/src/components/timeline-item/timeline-item.variables.json +0 -1
- package/src/components/timeline-item/timeline-item.variables.ts +0 -3
- package/src/components/toast-region/toast-region.schema.json +0 -38
- package/src/components/toast-region/toast-region.schema.ts +0 -35
- package/src/components/toast-region/toast-region.variables.json +0 -1
- package/src/components/toast-region/toast-region.variables.ts +0 -3
- package/src/components/toggle/toggle.schema.json +0 -44
- package/src/components/toggle/toggle.schema.ts +0 -54
- package/src/components/toggle/toggle.variables.json +0 -1
- package/src/components/toggle/toggle.variables.ts +0 -3
- package/src/components/toolbar/toolbar.schema.json +0 -16
- package/src/components/toolbar/toolbar.schema.ts +0 -20
- package/src/components/toolbar/toolbar.variables.json +0 -1
- package/src/components/toolbar/toolbar.variables.ts +0 -3
- package/src/components/tooltip/tooltip.schema.json +0 -29
- package/src/components/tooltip/tooltip.schema.ts +0 -33
- package/src/components/tooltip/tooltip.variables.json +0 -1
- package/src/components/tooltip/tooltip.variables.ts +0 -3
- package/src/components/tree/tree.schema.json +0 -60
- package/src/components/tree/tree.schema.ts +0 -67
- package/src/components/tree/tree.variables.json +0 -1
- package/src/components/tree/tree.variables.ts +0 -3
- package/src/components/tree-item/tree-item.schema.json +0 -55
- package/src/components/tree-item/tree-item.schema.ts +0 -61
- package/src/components/tree-item/tree-item.variables.json +0 -1
- package/src/components/tree-item/tree-item.variables.ts +0 -3
- package/src/components/typography/typography.schema.json +0 -144
- package/src/components/typography/typography.schema.ts +0 -148
- package/src/components/typography/typography.variables.json +0 -1
- package/src/components/typography/typography.variables.ts +0 -3
- package/src/components/visually-hidden/visually-hidden.schema.json +0 -121
- package/src/components/visually-hidden/visually-hidden.schema.ts +0 -125
- package/src/components/visually-hidden/visually-hidden.variables.json +0 -1
- package/src/components/visually-hidden/visually-hidden.variables.ts +0 -3
- package/src/components/waveform/waveform.schema.json +0 -38
- package/src/components/waveform/waveform.schema.ts +0 -42
- package/src/components/waveform/waveform.variables.json +0 -1
- package/src/components/waveform/waveform.variables.ts +0 -3
- /package/dist/components/{timeline-item → _timeline-item}/timeline-item.svelte.d.ts +0 -0
- /package/dist/components/{timeline-item → _timeline-item}/timeline-item.types.d.ts +0 -0
- /package/dist/components/{timeline-item/timeline-item.schema.d.ts → access-gate/access-gate.schema.d.ts} +0 -0
- /package/dist/components/{timeline-item/timeline-item.variables.d.ts → access-gate/access-gate.variables.d.ts} +0 -0
- /package/src/components/{timeline-item → _timeline-item}/timeline-item.svelte +0 -0
- /package/src/components/{timeline-item → _timeline-item}/timeline-item.types.ts +0 -0
|
@@ -1,129 +1,72 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type { Snippet } from 'svelte';
|
|
3
2
|
import type { Attachment } from 'svelte/attachments';
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
3
|
+
import type { ChatAdapter, ChatCommand, ChatPushHandlers } from '../adapter/chat-adapter.ts';
|
|
4
|
+
import type { Message, MessageInput } from '../conversation-model.ts';
|
|
6
5
|
import type { ChatAttachment } from '../input/chat-attachment.ts';
|
|
7
|
-
import type {
|
|
8
|
-
ChatScrollStateChangeEvent,
|
|
9
|
-
ChatStopGeneratingEvent,
|
|
10
|
-
ChatSubmitEvent,
|
|
11
|
-
ChatUnreadIndicatorChangeEvent,
|
|
12
|
-
} from './chat-events.ts';
|
|
13
6
|
|
|
7
|
+
// `ChatProps` is owned by `../chat.types.ts` (the analyzer + schema generator
|
|
8
|
+
// read that symbol). The implementation imports it from there rather than
|
|
9
|
+
// redeclaring it, so the public type and the `$props()` shape can never drift.
|
|
10
|
+
import type { ChatProps } from '../chat.types.ts';
|
|
11
|
+
|
|
12
|
+
export type { ChatProps };
|
|
14
13
|
export type {
|
|
15
14
|
ChatScrollStateChangeEvent,
|
|
16
15
|
ChatStopGeneratingEvent,
|
|
17
16
|
ChatSubmitEvent,
|
|
18
17
|
ChatUnreadIndicatorChangeEvent,
|
|
19
18
|
} from './chat-events.ts';
|
|
20
|
-
|
|
21
|
-
// ==========================================================================
|
|
22
|
-
// Props Type
|
|
23
|
-
// ==========================================================================
|
|
24
|
-
|
|
25
|
-
export type ChatProps = Omit<HTMLAttributes<HTMLElement>, 'class' | 'onsubmit'> & {
|
|
26
|
-
/** Unique ID for accessibility (required) */
|
|
27
|
-
id: string;
|
|
28
|
-
/** The conversation to render */
|
|
29
|
-
conversation: ConversationHistory;
|
|
30
|
-
/** Whether the viewport is at bottom (bindable) */
|
|
31
|
-
isAtBottom?: boolean;
|
|
32
|
-
/** Count of unread messages (bindable) */
|
|
33
|
-
unreadCount?: number;
|
|
34
|
-
/** Whether the new message indicator is visible (bindable) */
|
|
35
|
-
hasNewMessageIndicator?: boolean;
|
|
36
|
-
/** Additional CSS class */
|
|
37
|
-
class?: string;
|
|
38
|
-
/** Surface rendering mode for embedded contexts */
|
|
39
|
-
surfaceMode?: 'default' | 'transparent';
|
|
40
|
-
|
|
41
|
-
// Configuration
|
|
42
|
-
/**
|
|
43
|
-
* Pixels from bottom to consider "at bottom" (default: 150).
|
|
44
|
-
* NOTE: This value should remain constant after initialization.
|
|
45
|
-
* Changing it dynamically may cause unexpected behavior with IntersectionObserver.
|
|
46
|
-
*/
|
|
47
|
-
bottomThreshold?: number;
|
|
48
|
-
/**
|
|
49
|
-
* Pixels scrolled before showing jump button (default: 200).
|
|
50
|
-
* NOTE: This value should remain constant after initialization.
|
|
51
|
-
* Changing it dynamically may cause unexpected behavior.
|
|
52
|
-
*/
|
|
53
|
-
jumpThreshold?: number;
|
|
54
|
-
/** Whether streaming is in progress (shows stop button) */
|
|
55
|
-
isStreaming?: boolean;
|
|
56
|
-
/** Contextual status label during streaming (e.g., "Thinking...", "Analyzing file...") */
|
|
57
|
-
streamingStatus?: string;
|
|
58
|
-
/** Whether file attachments are allowed (default: true). When false, drag-and-drop is suppressed. */
|
|
59
|
-
allowAttachments?: boolean;
|
|
60
|
-
/** Whether in-conversation search (Ctrl+F) is enabled (default: true) */
|
|
61
|
-
allowSearch?: boolean;
|
|
62
|
-
/** Whether per-message copy buttons are shown (default: true) */
|
|
63
|
-
allowCopy?: boolean;
|
|
64
|
-
/** Whether user messages can be edited (default: true) */
|
|
65
|
-
allowEditing?: boolean;
|
|
66
|
-
/** Whether failed messages show a retry button (default: true) */
|
|
67
|
-
allowRetry?: boolean;
|
|
68
|
-
|
|
69
|
-
// Snippets for extensibility
|
|
70
|
-
/** Custom header above messages */
|
|
71
|
-
header?: Snippet;
|
|
72
|
-
/** Custom empty state when no messages */
|
|
73
|
-
empty?: Snippet;
|
|
74
|
-
/** Suggested starter prompts shown in the empty state */
|
|
75
|
-
emptyPrompts?: string[];
|
|
76
|
-
/** Custom message actions snippet */
|
|
77
|
-
messageActions?: Snippet<[Message]>;
|
|
78
|
-
/** Custom message status snippet */
|
|
79
|
-
messageStatus?: Snippet<[Message]>;
|
|
80
|
-
/** Attachment for the viewport element */
|
|
81
|
-
viewportAttachment?: Attachment<HTMLElement>;
|
|
82
|
-
|
|
83
|
-
// Event handlers
|
|
84
|
-
/** Called when a message is submitted */
|
|
85
|
-
onsubmit?: (event: ChatSubmitEvent) => void;
|
|
86
|
-
/** Called when retry is requested for a failed message */
|
|
87
|
-
onretry?: (messageId: string) => void;
|
|
88
|
-
/** Called when a user message is edited */
|
|
89
|
-
onedit?: (event: { messageId: string; content: string }) => void;
|
|
90
|
-
/** Called when stop generating is requested */
|
|
91
|
-
onstopgenerating?: (event: ChatStopGeneratingEvent) => void;
|
|
92
|
-
/** Called when jump-to-latest is clicked */
|
|
93
|
-
onjumptolatest?: () => void;
|
|
94
|
-
/** Called when scroll state changes */
|
|
95
|
-
onscrollstatechange?: (event: ChatScrollStateChangeEvent) => void;
|
|
96
|
-
/** Called when unread indicator state changes */
|
|
97
|
-
onunreadindicatorchange?: (event: ChatUnreadIndicatorChangeEvent) => void;
|
|
98
|
-
/** Called when a message's expanded state changes */
|
|
99
|
-
onexpandedchange?: (expanded: boolean) => void;
|
|
100
|
-
/** Called when an attachment is added to the input */
|
|
101
|
-
onattachmentadd?: (attachment: ChatAttachment) => void;
|
|
102
|
-
/** Called when an attachment is removed from the input */
|
|
103
|
-
onattachmentremove?: (attachment: ChatAttachment) => void;
|
|
104
|
-
/** Called when an attachment fails validation */
|
|
105
|
-
onattachmentfailure?: (file: File, error: string) => void;
|
|
106
|
-
};
|
|
107
19
|
</script>
|
|
108
20
|
|
|
109
21
|
<script lang="ts">
|
|
110
|
-
import { tick, untrack } from 'svelte';
|
|
22
|
+
import { onMount, tick, untrack } from 'svelte';
|
|
111
23
|
import { classNames } from '../../../utilities/class-names.ts';
|
|
112
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
getMessages,
|
|
26
|
+
pairToolCallsWithResults,
|
|
27
|
+
resolveMessageReasoning,
|
|
28
|
+
resolveMessageSteps,
|
|
29
|
+
resolveMessageSuggestions,
|
|
30
|
+
} from '../utilities';
|
|
113
31
|
import { ChatMessage, ChatDateSeparator } from '../message';
|
|
114
32
|
import { ChatInput } from '../input';
|
|
115
33
|
import { DEFAULT_SCROLL_CONFIGURATION } from './scroll-utilities';
|
|
116
34
|
import { useChatScrollState } from './use-chat-scroll-state.svelte';
|
|
117
35
|
import { useChatUnreadState } from './use-chat-unread-state.svelte';
|
|
118
36
|
import { useChatKeyboardNav } from './use-chat-keyboard-nav.svelte';
|
|
119
|
-
import { useChatMessageGroups } from './use-chat-message-groups.svelte';
|
|
120
37
|
import { useChatSearch } from './use-chat-search.svelte';
|
|
121
38
|
import { useIntersection } from '../../../utilities/use-intersection.svelte.ts';
|
|
122
39
|
import ChatJumpControls from './chat-jump-controls.svelte';
|
|
40
|
+
import ChatHistoryTrigger from './chat-history-trigger.svelte';
|
|
123
41
|
import ChatStatusAnnouncer from './chat-status-announcer.svelte';
|
|
124
42
|
import ChatSearchBar from './chat-search-bar.svelte';
|
|
43
|
+
import {
|
|
44
|
+
buildChatRenderRows,
|
|
45
|
+
buildMessagesWithDateSeparators,
|
|
46
|
+
chatRenderRowKey,
|
|
47
|
+
findPairedToolResultIds,
|
|
48
|
+
findRenderRowIndexByMessageId,
|
|
49
|
+
type ChatRenderRow,
|
|
50
|
+
} from './use-chat-message-groups.svelte.ts';
|
|
51
|
+
import { ChatVirtualizer } from './use-chat-virtualizer.svelte.ts';
|
|
52
|
+
import { useChatReasoningState } from './use-chat-reasoning-state.svelte.ts';
|
|
53
|
+
import type { VirtualItem } from '../../../_internal/virtual-item.ts';
|
|
54
|
+
import { useChatTypingIndicator } from './use-chat-typing-indicator.svelte.ts';
|
|
55
|
+
import { useChatReadReceipts } from './use-chat-read-receipts.svelte.ts';
|
|
56
|
+
import ChatParticipantTyping from './chat-participant-typing.svelte';
|
|
57
|
+
import ChatReadReceipt from '../message/chat-read-receipt.svelte';
|
|
125
58
|
|
|
126
59
|
const noopAttachment: Attachment<HTMLElement> = () => {};
|
|
60
|
+
type ChatMessageRenderRow = Extract<ChatRenderRow, { type: 'message' }>;
|
|
61
|
+
type PendingHistoryScroll = {
|
|
62
|
+
previousFirstMessageId: string | null;
|
|
63
|
+
previousFirstTranscriptMessageId: string | null;
|
|
64
|
+
previousFirstMessageViewportOffset: number;
|
|
65
|
+
previousCount: number;
|
|
66
|
+
previousScrollTop: number;
|
|
67
|
+
previousScrollHeight: number;
|
|
68
|
+
previousTotalSize: number;
|
|
69
|
+
};
|
|
127
70
|
|
|
128
71
|
let {
|
|
129
72
|
id,
|
|
@@ -133,12 +76,21 @@
|
|
|
133
76
|
hasNewMessageIndicator = $bindable(false),
|
|
134
77
|
class: className,
|
|
135
78
|
surfaceMode = 'default',
|
|
79
|
+
density = 'comfortable',
|
|
80
|
+
variant = 'bubble',
|
|
136
81
|
bottomThreshold = DEFAULT_SCROLL_CONFIGURATION.bottomThreshold,
|
|
137
82
|
jumpThreshold = DEFAULT_SCROLL_CONFIGURATION.jumpThreshold,
|
|
138
83
|
isStreaming = false,
|
|
139
84
|
streamingStatus,
|
|
140
85
|
allowAttachments = true,
|
|
141
86
|
allowSearch = true,
|
|
87
|
+
virtualized = false,
|
|
88
|
+
virtualizationEstimatedRowHeight = 88,
|
|
89
|
+
virtualizationOverscan = 3,
|
|
90
|
+
virtualizationInitialHeight = 640,
|
|
91
|
+
hasMoreHistory = true,
|
|
92
|
+
loadEarlierLabel = 'Load earlier messages',
|
|
93
|
+
loadingEarlierLabel = 'Loading earlier messages',
|
|
142
94
|
allowCopy = true,
|
|
143
95
|
allowEditing = true,
|
|
144
96
|
allowRetry = true,
|
|
@@ -147,10 +99,26 @@
|
|
|
147
99
|
emptyPrompts,
|
|
148
100
|
messageActions,
|
|
149
101
|
messageStatus,
|
|
102
|
+
row,
|
|
103
|
+
messagePart,
|
|
150
104
|
viewportAttachment,
|
|
105
|
+
typingParticipants,
|
|
106
|
+
readReceipts,
|
|
107
|
+
adapter,
|
|
108
|
+
onadaptererror,
|
|
109
|
+
onpushmessage,
|
|
110
|
+
ontypingchange,
|
|
111
|
+
onreadreceipt,
|
|
151
112
|
onsubmit,
|
|
152
113
|
onretry,
|
|
153
114
|
onedit,
|
|
115
|
+
onapprove,
|
|
116
|
+
ondeny,
|
|
117
|
+
messageReasoning,
|
|
118
|
+
messageSteps,
|
|
119
|
+
messageSuggestions,
|
|
120
|
+
onsuggestionselect,
|
|
121
|
+
onloadhistory,
|
|
154
122
|
onstopgenerating,
|
|
155
123
|
onjumptolatest,
|
|
156
124
|
onscrollstatechange,
|
|
@@ -177,6 +145,9 @@
|
|
|
177
145
|
}
|
|
178
146
|
| undefined;
|
|
179
147
|
let searchBarRef = $state<{ focusInput: () => void } | undefined>(undefined);
|
|
148
|
+
let historyTriggerRef = $state<{ focus: (options?: FocusOptions) => void } | undefined>(
|
|
149
|
+
undefined,
|
|
150
|
+
);
|
|
180
151
|
|
|
181
152
|
// Container-level drag-and-drop state for full-window drop zone
|
|
182
153
|
let isContainerDragOver = $state(false);
|
|
@@ -184,6 +155,7 @@
|
|
|
184
155
|
// Streaming state: separate from the Conversation to avoid re-rendering the message list
|
|
185
156
|
let streamingContent = $state('');
|
|
186
157
|
let streamingMessageId = $state<string | null>(null);
|
|
158
|
+
let streamingRowElement = $state<HTMLElement | null>(null);
|
|
187
159
|
|
|
188
160
|
// Token buffer: accumulate tokens as an array; joined and flushed once per animation frame
|
|
189
161
|
// to avoid O(n²) string work from calling join() on every push.
|
|
@@ -191,6 +163,54 @@
|
|
|
191
163
|
// rAF handle for batching token flushes and scroll throttling during streaming
|
|
192
164
|
let streamingScrollRaf: number | undefined;
|
|
193
165
|
|
|
166
|
+
// C3 — tool approval state. Keyed by tool call id. Both sets are UI-only and
|
|
167
|
+
// are never written back to the transcript. A pending tool-approval part has
|
|
168
|
+
// its call id in neither set (approved === undefined). Once the consumer or
|
|
169
|
+
// adapter resolves the approval, the id moves into one of the sets and the
|
|
170
|
+
// part re-derives to show the resolved state.
|
|
171
|
+
let approvedToolCallIds = $state(new Set<string>());
|
|
172
|
+
let deniedToolCallIds = $state(new Set<string>());
|
|
173
|
+
|
|
174
|
+
// C4 — reasoning expansion state. UI-only; not written to the transcript.
|
|
175
|
+
// Collapsed by default; toggling triggers a virtualizer remeasure when wired.
|
|
176
|
+
const reasoningState = useChatReasoningState({
|
|
177
|
+
onRemeasureRow: (messageId) => {
|
|
178
|
+
if (!isVirtualized || !viewport) return;
|
|
179
|
+
// Find the message row DOM node via the stable id and re-measure it so
|
|
180
|
+
// the virtualizer updates the row's height after the disclosure transitions.
|
|
181
|
+
const rowNode = viewport.querySelector<HTMLElement>(`#message-${CSS.escape(messageId)}`);
|
|
182
|
+
if (rowNode) {
|
|
183
|
+
chatVirtualizer.measureElementNode(rowNode);
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
// Reset UI-only approval/reasoning/typing/receipt state on conversation change
|
|
189
|
+
// so stale approved/denied sets, expanded reasoning blocks, adapter-derived
|
|
190
|
+
// typing state, and accumulated read receipts from the previous conversation
|
|
191
|
+
// are cleared (their message ids can collide). The void reference to
|
|
192
|
+
// `conversationId` at the start of the effect body is the Svelte 5 pattern for
|
|
193
|
+
// declaring a reactive dependency on a derived without reading its value.
|
|
194
|
+
$effect(() => {
|
|
195
|
+
conversationId;
|
|
196
|
+
approvedToolCallIds = new Set();
|
|
197
|
+
deniedToolCallIds = new Set();
|
|
198
|
+
reasoningState.reset();
|
|
199
|
+
typingIndicatorState.reset();
|
|
200
|
+
readReceiptsState.reset();
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
let isLoadingHistory = $state(false);
|
|
204
|
+
let adapterHasMoreHistory = $state<boolean | undefined>(undefined);
|
|
205
|
+
let historyAnnouncement = $state('');
|
|
206
|
+
let pendingHistoryScroll: PendingHistoryScroll | null = $state(null);
|
|
207
|
+
let deferredAdapterHasMoreHistory: boolean | null = null;
|
|
208
|
+
let historyAnchorMessageId = $state<string | null>(null);
|
|
209
|
+
let historyAnchorViewportOffset = $state<number | null>(null);
|
|
210
|
+
let historyAnchorRestoredScrollTop: number | null = null;
|
|
211
|
+
let previousHistoryConversationId: string | undefined;
|
|
212
|
+
let previousHistoryAdapter: ChatAdapter | undefined;
|
|
213
|
+
|
|
194
214
|
// ==========================================================================
|
|
195
215
|
// Initialize Helpers
|
|
196
216
|
// ==========================================================================
|
|
@@ -198,7 +218,7 @@
|
|
|
198
218
|
const scrollState = useChatScrollState({
|
|
199
219
|
getBottomThreshold: () => bottomThreshold,
|
|
200
220
|
getJumpThreshold: () => jumpThreshold,
|
|
201
|
-
onScrollStateChange:
|
|
221
|
+
onScrollStateChange: handleScrollStateChange,
|
|
202
222
|
onReachBottom: () => {
|
|
203
223
|
if (unreadState.unreadCount > 0 || unreadState.hasNewMessageIndicator) {
|
|
204
224
|
unreadState.markAllAsRead();
|
|
@@ -212,34 +232,212 @@
|
|
|
212
232
|
|
|
213
233
|
const keyboardNav = useChatKeyboardNav({
|
|
214
234
|
onJumpToLatest: handleJumpToLatest,
|
|
235
|
+
onJumpToStart: () => {
|
|
236
|
+
if (isVirtualized) {
|
|
237
|
+
chatVirtualizer.scrollToOffset(0, { behavior: scrollState.getScrollBehavior() });
|
|
238
|
+
}
|
|
239
|
+
},
|
|
215
240
|
getScrollBehavior: scrollState.getScrollBehavior,
|
|
241
|
+
getHistoryTrigger: () => (showHistoryTrigger ? historyTriggerRef : null),
|
|
242
|
+
onVirtualMessageNavigation: (direction) => navigateVirtualMessage(direction),
|
|
216
243
|
});
|
|
217
244
|
|
|
218
245
|
const messages = $derived(getMessages(conversation));
|
|
246
|
+
// C5 — suggested replies are a per-TURN affordance shown only beneath the last
|
|
247
|
+
// message, not on every historical message that still carries the metadata.
|
|
248
|
+
const lastMessageId = $derived(messages.at(-1)?.id);
|
|
249
|
+
let previousAutoScrollMessageCount = getMessages(conversation).length;
|
|
250
|
+
|
|
251
|
+
// The conversation id as a stable VALUE dependency. The subscribe effect keys
|
|
252
|
+
// on this (not on `conversation.id` read inline) so a consumer passing a fresh
|
|
253
|
+
// `conversation` snapshot on every transcript update — but with the same id —
|
|
254
|
+
// does not tear down and reopen the real-time subscription each render.
|
|
255
|
+
const conversationId = $derived(conversation.id);
|
|
256
|
+
|
|
257
|
+
const showTypingIndicator = $derived(isStreaming && !streamingMessageId);
|
|
258
|
+
const toolCallPairsByCallId = $derived.by(() => {
|
|
259
|
+
const toolCallPairs = pairToolCallsWithResults(messages);
|
|
260
|
+
const map = new Map<string, ReturnType<typeof pairToolCallsWithResults>>();
|
|
261
|
+
for (const pair of toolCallPairs) {
|
|
262
|
+
const existing = map.get(pair.call.id);
|
|
263
|
+
if (existing) {
|
|
264
|
+
existing.push(pair);
|
|
265
|
+
} else {
|
|
266
|
+
map.set(pair.call.id, [pair]);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return map;
|
|
270
|
+
});
|
|
271
|
+
const renderRows = $derived.by(() => {
|
|
272
|
+
const pairedToolResultIds = findPairedToolResultIds(messages);
|
|
273
|
+
const messagesWithDates = buildMessagesWithDateSeparators(messages, pairedToolResultIds);
|
|
274
|
+
return buildChatRenderRows(messagesWithDates, {
|
|
275
|
+
firstUnreadId: unreadState.firstUnreadId,
|
|
276
|
+
showTypingIndicator,
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
let hasMounted = $state(false);
|
|
280
|
+
onMount(() => {
|
|
281
|
+
hasMounted = true;
|
|
282
|
+
});
|
|
219
283
|
|
|
220
|
-
const
|
|
221
|
-
|
|
284
|
+
const isVirtualized = $derived(virtualized && hasMounted && messages.length > 0);
|
|
285
|
+
const timelineResetIdentity = $derived(
|
|
286
|
+
`${conversationId}:${isVirtualized ? 'virtualized' : 'full'}`,
|
|
287
|
+
);
|
|
288
|
+
const staticRowsResetIdentity = $derived(messages[0]?.id ?? '');
|
|
289
|
+
|
|
290
|
+
const chatVirtualizer = new ChatVirtualizer({
|
|
291
|
+
getScrollElement: () => viewport,
|
|
292
|
+
getCount: () => (isVirtualized ? renderRows.length : 0),
|
|
293
|
+
getItemKey: (index) => chatRenderRowKey(renderRows[index] ?? { type: 'typing' }),
|
|
294
|
+
getEstimatedSize: () => virtualizationEstimatedRowHeight,
|
|
295
|
+
getOverscan: () => virtualizationOverscan,
|
|
296
|
+
getInitialHeight: () => virtualizationInitialHeight,
|
|
297
|
+
getScrollPaddingStart: () => virtualSpacerOffsetTop(),
|
|
222
298
|
});
|
|
223
299
|
|
|
300
|
+
const virtualRows = $derived.by(() => {
|
|
301
|
+
if (!isVirtualized) return [];
|
|
302
|
+
|
|
303
|
+
const renderedIndexes = new Set<number>();
|
|
304
|
+
const rows: { row: ChatRenderRow; virtualItem: VirtualItem }[] = [];
|
|
305
|
+
for (const virtualItem of chatVirtualizer.virtualItems) {
|
|
306
|
+
const row = renderRows[virtualItem.index];
|
|
307
|
+
if (!row) continue;
|
|
308
|
+
renderedIndexes.add(virtualItem.index);
|
|
309
|
+
rows.push({ row, virtualItem: pinHistoryAnchorVirtualItem(row, virtualItem) });
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
if (streamingMessageId) {
|
|
313
|
+
const streamingIndex = findRenderRowIndexByMessageId(renderRows, streamingMessageId);
|
|
314
|
+
if (streamingIndex >= 0 && !renderedIndexes.has(streamingIndex)) {
|
|
315
|
+
const virtualItem = chatVirtualizer.getVirtualItem(streamingIndex);
|
|
316
|
+
if (!virtualItem) return rows;
|
|
317
|
+
rows.push({
|
|
318
|
+
row: renderRows[streamingIndex]!,
|
|
319
|
+
virtualItem,
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
if (historyAnchorMessageId) {
|
|
325
|
+
const historyAnchorIndex = findRenderRowIndexByMessageId(renderRows, historyAnchorMessageId);
|
|
326
|
+
if (historyAnchorIndex >= 0 && !renderedIndexes.has(historyAnchorIndex)) {
|
|
327
|
+
const virtualItem = chatVirtualizer.getVirtualItem(historyAnchorIndex);
|
|
328
|
+
if (!virtualItem) return rows;
|
|
329
|
+
const row = renderRows[historyAnchorIndex];
|
|
330
|
+
if (row) {
|
|
331
|
+
rows.push({
|
|
332
|
+
row,
|
|
333
|
+
virtualItem: pinHistoryAnchorVirtualItem(row, virtualItem),
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
rows.sort((a, b) => a.virtualItem.index - b.virtualItem.index);
|
|
340
|
+
return rows;
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
function pinHistoryAnchorVirtualItem(row: ChatRenderRow, virtualItem: VirtualItem): VirtualItem {
|
|
344
|
+
if (
|
|
345
|
+
historyAnchorViewportOffset === null ||
|
|
346
|
+
row.type !== 'message' ||
|
|
347
|
+
row.message.id !== historyAnchorMessageId
|
|
348
|
+
) {
|
|
349
|
+
return virtualItem;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
const scrollTop = viewport?.scrollTop ?? chatVirtualizer.scrollOffset;
|
|
353
|
+
const start = Math.max(
|
|
354
|
+
0,
|
|
355
|
+
scrollTop - chatVirtualizer.scrollPaddingStart + historyAnchorViewportOffset,
|
|
356
|
+
);
|
|
357
|
+
return {
|
|
358
|
+
...virtualItem,
|
|
359
|
+
start,
|
|
360
|
+
end: start + virtualItem.size,
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
|
|
224
364
|
const searchState = useChatSearch({
|
|
225
365
|
getMessages: () => messages,
|
|
226
366
|
});
|
|
227
367
|
|
|
368
|
+
// ==========================================================================
|
|
369
|
+
// C6 — Per-participant typing indicators + read receipts (out-of-band state)
|
|
370
|
+
// ==========================================================================
|
|
371
|
+
|
|
372
|
+
const typingIndicatorState = useChatTypingIndicator({
|
|
373
|
+
getTypingParticipants: () => typingParticipants,
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
const readReceiptsState = useChatReadReceipts({
|
|
377
|
+
getReadReceipts: () => readReceipts,
|
|
378
|
+
});
|
|
379
|
+
|
|
228
380
|
// ==========================================================================
|
|
229
381
|
// Derived Values
|
|
230
382
|
// ==========================================================================
|
|
231
383
|
|
|
232
384
|
const viewportAttach = $derived(viewportAttachment ?? noopAttachment);
|
|
385
|
+
const effectiveHasMoreHistory = $derived(adapterHasMoreHistory ?? hasMoreHistory);
|
|
386
|
+
const hasHistoryLoader = $derived(
|
|
387
|
+
onloadhistory !== undefined || adapter?.loadOlderMessages !== undefined,
|
|
388
|
+
);
|
|
389
|
+
const showHistoryTrigger = $derived(hasHistoryLoader && effectiveHasMoreHistory);
|
|
390
|
+
|
|
391
|
+
$effect(() => {
|
|
392
|
+
chatVirtualizer.setScrollElement(isVirtualized ? viewport : null);
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
$effect(() => {
|
|
396
|
+
for (const renderRow of renderRows) {
|
|
397
|
+
chatRenderRowKey(renderRow);
|
|
398
|
+
}
|
|
399
|
+
chatVirtualizer.syncOptions();
|
|
400
|
+
});
|
|
401
|
+
|
|
402
|
+
$effect(() => {
|
|
403
|
+
const currentConversationId = conversationId;
|
|
404
|
+
const currentAdapter = adapter;
|
|
405
|
+
if (previousHistoryConversationId === undefined) {
|
|
406
|
+
previousHistoryConversationId = currentConversationId;
|
|
407
|
+
previousHistoryAdapter = currentAdapter;
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
if (
|
|
412
|
+
currentConversationId !== previousHistoryConversationId ||
|
|
413
|
+
currentAdapter !== previousHistoryAdapter
|
|
414
|
+
) {
|
|
415
|
+
adapterHasMoreHistory = undefined;
|
|
416
|
+
pendingHistoryScroll = null;
|
|
417
|
+
deferredAdapterHasMoreHistory = null;
|
|
418
|
+
clearHistoryAnchor();
|
|
419
|
+
}
|
|
420
|
+
previousHistoryConversationId = currentConversationId;
|
|
421
|
+
previousHistoryAdapter = currentAdapter;
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
// A retry/edit affordance shows when EITHER a callback OR the adapter can
|
|
425
|
+
// handle it — so an adapter-only consumer (no `onretry`/`onedit`) still gets
|
|
426
|
+
// working buttons, and a callback-only consumer is unchanged.
|
|
427
|
+
const canRetry = $derived(onretry !== undefined || adapter?.retryMessage !== undefined);
|
|
428
|
+
const canEdit = $derived(onedit !== undefined || adapter?.editMessage !== undefined);
|
|
233
429
|
|
|
234
430
|
// Stable bottom-sentinel attachment. Wrapping useIntersection in $derived (matching
|
|
235
431
|
// load-more) means the IntersectionObserver is only torn down + recreated when
|
|
236
432
|
// `viewport` or `bottomThreshold` actually change — NOT on every chat re-render
|
|
237
433
|
// (which is frequent during streaming and would otherwise make bottom detection flicker).
|
|
238
434
|
const sentinelAttach = $derived(
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
435
|
+
isVirtualized
|
|
436
|
+
? noopAttachment
|
|
437
|
+
: useIntersection(scrollState.handleSentinelEntry, {
|
|
438
|
+
root: viewport,
|
|
439
|
+
rootMargin: `0px 0px ${bottomThreshold}px 0px`,
|
|
440
|
+
}),
|
|
243
441
|
);
|
|
244
442
|
|
|
245
443
|
// Accessibility IDs
|
|
@@ -247,6 +445,28 @@
|
|
|
247
445
|
const inputId = $derived(`${id}-input`);
|
|
248
446
|
const statusId = $derived(`${id}-status`);
|
|
249
447
|
|
|
448
|
+
// C3 — assertive announcement for action-required tool approvals. Derived from
|
|
449
|
+
// the first pending tool-approval part in the current transcript. When a new
|
|
450
|
+
// tool-approval part appears (outcome === 'action_required' + action present),
|
|
451
|
+
// this updates and the assertive live region interrupts screen readers.
|
|
452
|
+
const toolApprovalAssertiveMessage = $derived.by(() => {
|
|
453
|
+
for (const message of messages) {
|
|
454
|
+
if (
|
|
455
|
+
message.role === 'tool-result' &&
|
|
456
|
+
message.toolResult?.outcome === 'action_required' &&
|
|
457
|
+
message.toolResult.action &&
|
|
458
|
+
!approvedToolCallIds.has(message.toolResult.callId) &&
|
|
459
|
+
!deniedToolCallIds.has(message.toolResult.callId)
|
|
460
|
+
) {
|
|
461
|
+
const actionMessage =
|
|
462
|
+
message.toolResult.action.message ??
|
|
463
|
+
'This tool call requires your approval before it can continue.';
|
|
464
|
+
return `Action required: ${actionMessage}`;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
return '';
|
|
468
|
+
});
|
|
469
|
+
|
|
250
470
|
// ==========================================================================
|
|
251
471
|
// Sync Bindable Props with Helper State
|
|
252
472
|
// ==========================================================================
|
|
@@ -278,25 +498,197 @@
|
|
|
278
498
|
* then use `tick()` to wait for DOM updates before scrolling.
|
|
279
499
|
*/
|
|
280
500
|
$effect.pre(() => {
|
|
281
|
-
if (!viewport) return;
|
|
501
|
+
if (!viewport) return undefined;
|
|
282
502
|
|
|
283
503
|
// Register dependency on message count
|
|
284
504
|
const currentCount = messages.length;
|
|
505
|
+
const isTranscriptAppend = currentCount > previousAutoScrollMessageCount;
|
|
506
|
+
previousAutoScrollMessageCount = currentCount;
|
|
507
|
+
// Keep the scroll extent as a dependency so virtual row measurement can
|
|
508
|
+
// trigger one final bottom correction after the appended row is measured.
|
|
509
|
+
const currentScrollExtent = isVirtualized ? chatVirtualizer.scrollSize : viewport.scrollHeight;
|
|
510
|
+
void currentScrollExtent;
|
|
285
511
|
|
|
286
512
|
// Read isAtBottom without making it a dependency (prevents loops)
|
|
287
513
|
const atBottom = untrack(() => scrollState.isAtBottom);
|
|
288
514
|
|
|
289
515
|
// Skip if user initiated a smooth scroll (e.g., via jump button)
|
|
290
|
-
if (scrollState.isUserScrolling) return;
|
|
516
|
+
if (scrollState.isUserScrolling) return undefined;
|
|
517
|
+
|
|
518
|
+
// Explicit history anchoring owns scroll restoration while a prepend is pending
|
|
519
|
+
// and until the user scrolls away from the restored anchor.
|
|
520
|
+
const hasActiveHistoryAnchor = untrack(
|
|
521
|
+
() => pendingHistoryScroll !== null || historyAnchorMessageId !== null,
|
|
522
|
+
);
|
|
523
|
+
if (hasActiveHistoryAnchor) return undefined;
|
|
291
524
|
|
|
292
525
|
if (atBottom && currentCount > 0) {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
526
|
+
let cancelled = false;
|
|
527
|
+
const waitForBottomTarget = isTranscriptAppend ? waitForLayoutFrame() : tick();
|
|
528
|
+
void waitForBottomTarget.then(() => {
|
|
529
|
+
if (cancelled || !viewport || pendingHistoryScroll || historyAnchorMessageId !== null) {
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
if (isVirtualized) {
|
|
533
|
+
chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, { behavior: 'instant' });
|
|
534
|
+
} else {
|
|
535
|
+
viewport?.scrollTo({ top: viewport.scrollHeight, behavior: 'instant' });
|
|
536
|
+
}
|
|
296
537
|
});
|
|
538
|
+
|
|
539
|
+
return () => {
|
|
540
|
+
cancelled = true;
|
|
541
|
+
};
|
|
297
542
|
}
|
|
543
|
+
|
|
544
|
+
return undefined;
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
$effect.pre(() => {
|
|
548
|
+
if (!viewport || !pendingHistoryScroll) return;
|
|
549
|
+
|
|
550
|
+
const pending = pendingHistoryScroll;
|
|
551
|
+
messages.length;
|
|
552
|
+
messages[0]?.id;
|
|
553
|
+
void restorePendingHistoryScrollAfterLayout(pending);
|
|
298
554
|
});
|
|
299
555
|
|
|
556
|
+
async function waitForLayoutFrame(): Promise<void> {
|
|
557
|
+
await tick();
|
|
558
|
+
if (typeof requestAnimationFrame !== 'function') return;
|
|
559
|
+
|
|
560
|
+
await new Promise<void>((resolve) => {
|
|
561
|
+
requestAnimationFrame(() => resolve());
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
async function restorePendingHistoryScrollAfterLayout(
|
|
566
|
+
pending: PendingHistoryScroll,
|
|
567
|
+
): Promise<boolean> {
|
|
568
|
+
await waitForLayoutFrame();
|
|
569
|
+
if (pendingHistoryScroll !== pending) return false;
|
|
570
|
+
return restoreHistoryScroll(pending);
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
function restoreHistoryScroll(pending: PendingHistoryScroll): boolean {
|
|
574
|
+
if (!viewport) return false;
|
|
575
|
+
|
|
576
|
+
const currentFirstMessageId = messages[0]?.id ?? null;
|
|
577
|
+
const currentCount = messages.length;
|
|
578
|
+
if (
|
|
579
|
+
currentCount <= pending.previousCount ||
|
|
580
|
+
currentFirstMessageId === pending.previousFirstTranscriptMessageId
|
|
581
|
+
) {
|
|
582
|
+
return false;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
const prependedCount = currentCount - pending.previousCount;
|
|
586
|
+
pendingHistoryScroll = null;
|
|
587
|
+
finishDeferredAdapterHistoryLoading();
|
|
588
|
+
if (isVirtualized) {
|
|
589
|
+
setHistoryAnchor(pending);
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
if (isVirtualized) {
|
|
593
|
+
const newTotalSize = chatVirtualizer.scrollSize;
|
|
594
|
+
const delta = newTotalSize - pending.previousTotalSize;
|
|
595
|
+
const targetScrollTop = pending.previousScrollTop + delta;
|
|
596
|
+
chatVirtualizer.scrollToOffset(targetScrollTop, { behavior: 'instant' });
|
|
597
|
+
historyAnchorRestoredScrollTop = viewport?.scrollTop ?? chatVirtualizer.scrollOffset;
|
|
598
|
+
} else {
|
|
599
|
+
clearHistoryAnchor();
|
|
600
|
+
const newTotalSize = viewport.scrollHeight;
|
|
601
|
+
const delta = newTotalSize - pending.previousScrollHeight;
|
|
602
|
+
viewport.scrollTo({
|
|
603
|
+
top: pending.previousScrollTop + delta,
|
|
604
|
+
behavior: 'instant',
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
const announcement =
|
|
608
|
+
prependedCount === 1
|
|
609
|
+
? '1 earlier message loaded.'
|
|
610
|
+
: `${prependedCount} earlier messages loaded.`;
|
|
611
|
+
historyAnnouncement = announcement;
|
|
612
|
+
setTimeout(() => {
|
|
613
|
+
if (historyAnnouncement === announcement) {
|
|
614
|
+
historyAnnouncement = '';
|
|
615
|
+
}
|
|
616
|
+
}, 1000);
|
|
617
|
+
void tick().then(() => {
|
|
618
|
+
focusAfterHistoryRestore(pending);
|
|
619
|
+
});
|
|
620
|
+
return true;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
function setHistoryAnchor(pending: PendingHistoryScroll): void {
|
|
624
|
+
historyAnchorMessageId = pending.previousFirstMessageId;
|
|
625
|
+
historyAnchorViewportOffset = pending.previousFirstMessageViewportOffset;
|
|
626
|
+
historyAnchorRestoredScrollTop = null;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
function clearHistoryAnchor(): void {
|
|
630
|
+
historyAnchorMessageId = null;
|
|
631
|
+
historyAnchorViewportOffset = null;
|
|
632
|
+
historyAnchorRestoredScrollTop = null;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
function clearHistoryAnchorAfterScroll(scrollTop: number): void {
|
|
636
|
+
if (
|
|
637
|
+
historyAnchorMessageId !== null &&
|
|
638
|
+
historyAnchorRestoredScrollTop !== null &&
|
|
639
|
+
Math.abs(scrollTop - historyAnchorRestoredScrollTop) > 2
|
|
640
|
+
) {
|
|
641
|
+
clearHistoryAnchor();
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
function handleScrollStateChange(event: {
|
|
646
|
+
isAtBottom: boolean;
|
|
647
|
+
scrollTop: number;
|
|
648
|
+
scrollHeight: number;
|
|
649
|
+
}): void {
|
|
650
|
+
clearHistoryAnchorAfterScroll(event.scrollTop);
|
|
651
|
+
|
|
652
|
+
onscrollstatechange?.(event);
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
function virtualSpacerOffsetTop(): number {
|
|
656
|
+
if (!viewport) return 0;
|
|
657
|
+
|
|
658
|
+
const spacer = viewport.querySelector<HTMLElement>('.chat-virtual-spacer');
|
|
659
|
+
if (!spacer) return 0;
|
|
660
|
+
|
|
661
|
+
const offsetTop = spacer.offsetTop;
|
|
662
|
+
const spacerRect = spacer.getBoundingClientRect();
|
|
663
|
+
const viewportRect = viewport.getBoundingClientRect();
|
|
664
|
+
const hasLayoutBox =
|
|
665
|
+
spacerRect.top !== 0 ||
|
|
666
|
+
spacerRect.bottom !== 0 ||
|
|
667
|
+
viewportRect.top !== 0 ||
|
|
668
|
+
viewportRect.bottom !== 0;
|
|
669
|
+
if (!hasLayoutBox) return Math.max(0, offsetTop);
|
|
670
|
+
|
|
671
|
+
const rectOffset = spacerRect.top - viewportRect.top + viewport.scrollTop;
|
|
672
|
+
return Math.max(0, Number.isFinite(rectOffset) ? rectOffset : offsetTop);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
function focusAfterHistoryRestore(pending: PendingHistoryScroll): void {
|
|
676
|
+
if (!viewport) return;
|
|
677
|
+
|
|
678
|
+
if (showHistoryTrigger && historyTriggerRef) {
|
|
679
|
+
historyTriggerRef.focus({ preventScroll: true });
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
const anchor = pending.previousFirstMessageId
|
|
684
|
+
? viewport.querySelector<HTMLElement>(
|
|
685
|
+
`#message-${CSS.escape(pending.previousFirstMessageId)}`,
|
|
686
|
+
)
|
|
687
|
+
: null;
|
|
688
|
+
const target = anchor ?? viewport.querySelector<HTMLElement>('.chat-message');
|
|
689
|
+
target?.focus({ preventScroll: true });
|
|
690
|
+
}
|
|
691
|
+
|
|
300
692
|
// ==========================================================================
|
|
301
693
|
// Process Messages for Unread Detection
|
|
302
694
|
// ==========================================================================
|
|
@@ -322,33 +714,406 @@
|
|
|
322
714
|
};
|
|
323
715
|
});
|
|
324
716
|
|
|
717
|
+
// ==========================================================================
|
|
718
|
+
// Adapter Real-Time Subscription
|
|
719
|
+
// ==========================================================================
|
|
720
|
+
|
|
721
|
+
// When an adapter exposes `subscribe`, open a real-time subscription keyed on
|
|
722
|
+
// the conversation id and tear it down on cleanup. `$effect` never runs on the
|
|
723
|
+
// server, so no browser guard is needed. Streaming pushes drive Chat's own
|
|
724
|
+
// imperative buffer (so a push-driven stream is self-contained); transcript /
|
|
725
|
+
// peripheral pushes forward to the consumer (Chat never mutates `conversation`).
|
|
726
|
+
//
|
|
727
|
+
// The effect re-subscribes ONLY when the adapter reference or the
|
|
728
|
+
// `conversationId` VALUE changes — keying on the derived id value (not on
|
|
729
|
+
// `conversation.id` read inline) means a new `conversation` snapshot bearing
|
|
730
|
+
// the same id does not churn the subscription. The forwarding callbacks are
|
|
731
|
+
// read through `untrack` at invocation time so a consumer passing inline arrow
|
|
732
|
+
// functions (whose identity churns every render) does not tear down and reopen
|
|
733
|
+
// the transport on every render — each handler still calls the LATEST callback,
|
|
734
|
+
// it just isn't a dependency of the subscription effect.
|
|
735
|
+
$effect(() => {
|
|
736
|
+
const resolvedAdapter = adapter;
|
|
737
|
+
if (!resolvedAdapter?.subscribe) return;
|
|
738
|
+
|
|
739
|
+
const currentConversationId = conversationId;
|
|
740
|
+
const handlers: ChatPushHandlers = {
|
|
741
|
+
onMessage: (message) => untrack(() => onpushmessage)?.(message),
|
|
742
|
+
onTypingChange: (isTyping) => {
|
|
743
|
+
// Drive the C6 per-participant typing indicator via the adapter path.
|
|
744
|
+
typingIndicatorState.handleAdapterTypingChange(isTyping);
|
|
745
|
+
untrack(() => ontypingchange)?.(isTyping);
|
|
746
|
+
},
|
|
747
|
+
onReadReceipt: (event) => {
|
|
748
|
+
// Accumulate the receipt into C6 read receipt state.
|
|
749
|
+
readReceiptsState.handleAdapterReadReceipt(event);
|
|
750
|
+
untrack(() => onreadreceipt)?.(event);
|
|
751
|
+
},
|
|
752
|
+
onStreamBegin: (messageId) => beginStreaming(messageId),
|
|
753
|
+
onTokenPush: (token) => pushToken(token),
|
|
754
|
+
onStreamEnd: () => endStreaming(),
|
|
755
|
+
};
|
|
756
|
+
|
|
757
|
+
const unsubscribe = resolvedAdapter.subscribe(currentConversationId, handlers);
|
|
758
|
+
|
|
759
|
+
// Teardown: close the transport (guarding a contract-violating non-function
|
|
760
|
+
// return so a bad adapter can't crash Svelte's cleanup), clear the imperative
|
|
761
|
+
// streaming buffer, AND clear the adapter-derived C6 typing/receipt state.
|
|
762
|
+
// Without the `endStreaming()`, a resubscribe or conversation switch mid-stream
|
|
763
|
+
// (no `onStreamEnd` fired) would leave `streamingMessageId`/`streamingContent`
|
|
764
|
+
// driving a row. Without the typing/receipt resets, an adapter that changed or
|
|
765
|
+
// was removed for the SAME conversation would leave a synthetic typing
|
|
766
|
+
// participant, a pending live-region timer, and accumulated receipts alive
|
|
767
|
+
// (the conversation-change effect above only fires on an id change).
|
|
768
|
+
return () => {
|
|
769
|
+
if (typeof unsubscribe === 'function') unsubscribe();
|
|
770
|
+
endStreaming();
|
|
771
|
+
typingIndicatorState.reset();
|
|
772
|
+
readReceiptsState.reset();
|
|
773
|
+
};
|
|
774
|
+
});
|
|
775
|
+
|
|
325
776
|
// ==========================================================================
|
|
326
777
|
// Create Scroll Attachment
|
|
327
778
|
// ==========================================================================
|
|
328
779
|
|
|
329
780
|
const scrollAttachment = scrollState.createScrollAttachment();
|
|
330
|
-
|
|
781
|
+
const historyAnchorScrollAttachment = $derived<Attachment<HTMLElement>>(
|
|
782
|
+
historyAnchorMessageId === null || historyAnchorRestoredScrollTop === null
|
|
783
|
+
? noopAttachment
|
|
784
|
+
: (node) => {
|
|
785
|
+
const handleScroll = () => clearHistoryAnchorAfterScroll(node.scrollTop);
|
|
786
|
+
node.addEventListener('scroll', handleScroll, { passive: true });
|
|
787
|
+
|
|
788
|
+
return () => node.removeEventListener('scroll', handleScroll);
|
|
789
|
+
},
|
|
790
|
+
);
|
|
331
791
|
// ==========================================================================
|
|
332
792
|
// Actions
|
|
333
793
|
// ==========================================================================
|
|
334
794
|
|
|
335
795
|
function handleJumpToLatest(): void {
|
|
796
|
+
if (isVirtualized) {
|
|
797
|
+
chatVirtualizer.scrollToIndex(Math.max(0, renderRows.length - 1), {
|
|
798
|
+
align: 'end',
|
|
799
|
+
behavior: scrollState.getScrollBehavior(),
|
|
800
|
+
});
|
|
801
|
+
unreadState.markAllAsRead();
|
|
802
|
+
onjumptolatest?.();
|
|
803
|
+
tick().then(() => {
|
|
804
|
+
const lastMessage = viewport?.querySelector<HTMLElement>(
|
|
805
|
+
`.chat-message-wrapper:last-of-type .chat-message`,
|
|
806
|
+
);
|
|
807
|
+
lastMessage?.focus();
|
|
808
|
+
});
|
|
809
|
+
return;
|
|
810
|
+
}
|
|
811
|
+
|
|
336
812
|
scrollState.jumpToLatest(viewport, () => {
|
|
337
813
|
unreadState.markAllAsRead();
|
|
338
814
|
onjumptolatest?.();
|
|
339
815
|
});
|
|
340
816
|
}
|
|
341
817
|
|
|
818
|
+
// ==========================================================================
|
|
819
|
+
// Command Dispatch (callbacks + optional adapter, one path)
|
|
820
|
+
// ==========================================================================
|
|
821
|
+
|
|
822
|
+
// One internal path for every user command so callback-driven and
|
|
823
|
+
// adapter-driven usage behave identically. The adapter method takes
|
|
824
|
+
// precedence when present (a transport owner); otherwise the callback fires.
|
|
825
|
+
//
|
|
826
|
+
// "Present" is decided by `runAdapterMethod` returning a value (not by the
|
|
827
|
+
// method's own return value): the call site returns `undefined` ONLY when the
|
|
828
|
+
// adapter lacks that optional method, and otherwise returns the method's
|
|
829
|
+
// result wrapped in `Promise.resolve(...)`. This means a synchronously-
|
|
830
|
+
// returning adapter method (one that resolves to `undefined` rather than a
|
|
831
|
+
// promise) is still treated as "handled" — the callback does NOT also fire, so
|
|
832
|
+
// there's no double-dispatch even for a type-violating sync method.
|
|
833
|
+
//
|
|
834
|
+
// The whole adapter path is wrapped so BOTH a rejected promise AND a
|
|
835
|
+
// synchronous throw from the adapter route to `onadaptererror` rather than
|
|
836
|
+
// escaping. `onadaptererror` is scoped to ADAPTER failures only — the fallback
|
|
837
|
+
// callback path is the consumer's own code, so a throw there propagates
|
|
838
|
+
// synchronously rather than being converted into a rejected dispatcher promise.
|
|
839
|
+
function dispatchCommand(
|
|
840
|
+
command: ChatCommand,
|
|
841
|
+
runAdapterMethod: (adapter: ChatAdapter) => Promise<void> | undefined,
|
|
842
|
+
callback: (() => void) | undefined,
|
|
843
|
+
): Promise<void> | void {
|
|
844
|
+
if (adapter) {
|
|
845
|
+
try {
|
|
846
|
+
const run = runAdapterMethod(adapter);
|
|
847
|
+
// `undefined` means the adapter has no such method → fall through to the
|
|
848
|
+
// callback. Any other return (a promise, including one wrapping a sync
|
|
849
|
+
// `undefined` result) means the adapter handled it — never fire the callback.
|
|
850
|
+
if (run !== undefined) {
|
|
851
|
+
return run.catch((error: unknown) => {
|
|
852
|
+
onadaptererror?.({ command, error });
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
} catch (error) {
|
|
856
|
+
onadaptererror?.({ command, error });
|
|
857
|
+
return;
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
callback?.();
|
|
861
|
+
}
|
|
862
|
+
|
|
342
863
|
function handleSubmit(message: MessageInput, attachments: ChatAttachment[]): void {
|
|
343
|
-
|
|
864
|
+
// Fire-and-forget the command (the dispatcher owns awaiting + error routing);
|
|
865
|
+
// scroll immediately so the round-trip latency never delays the auto-scroll.
|
|
866
|
+
// `Promise.resolve(...)` normalizes a sync-returning method to a promise so
|
|
867
|
+
// the dispatcher always treats a present method as "handled" (sendMessage is
|
|
868
|
+
// required, so it's always present here).
|
|
869
|
+
void dispatchCommand(
|
|
870
|
+
'sendMessage',
|
|
871
|
+
(resolvedAdapter) => Promise.resolve(resolvedAdapter.sendMessage(message, attachments)),
|
|
872
|
+
() => onsubmit?.({ message, attachments }),
|
|
873
|
+
);
|
|
344
874
|
|
|
345
875
|
// Auto-scroll after sending
|
|
346
876
|
scrollState.setIsAtBottom(true);
|
|
347
877
|
tick().then(() => {
|
|
348
|
-
|
|
878
|
+
if (isVirtualized) {
|
|
879
|
+
chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, { behavior: 'instant' });
|
|
880
|
+
} else {
|
|
881
|
+
viewport?.scrollTo({ top: viewport.scrollHeight, behavior: 'instant' });
|
|
882
|
+
}
|
|
349
883
|
});
|
|
350
884
|
}
|
|
351
885
|
|
|
886
|
+
function captureHistoryScroll(): void {
|
|
887
|
+
const previousFirstTranscriptMessageId = messages[0]?.id ?? null;
|
|
888
|
+
const visibleAnchor = firstVisibleRenderedMessage();
|
|
889
|
+
const previousFirstMessageId = visibleAnchor?.messageId ?? previousFirstTranscriptMessageId;
|
|
890
|
+
const previousScrollTop = viewport?.scrollTop ?? chatVirtualizer.scrollOffset;
|
|
891
|
+
const previousFirstMessageElement =
|
|
892
|
+
previousFirstMessageId !== null ? renderedMessageById(previousFirstMessageId) : null;
|
|
893
|
+
const previousFirstMessageViewportOffset =
|
|
894
|
+
visibleAnchor?.viewportOffset ??
|
|
895
|
+
(previousFirstMessageElement && viewport
|
|
896
|
+
? previousFirstMessageElement.getBoundingClientRect().top -
|
|
897
|
+
viewport.getBoundingClientRect().top
|
|
898
|
+
: 0);
|
|
899
|
+
pendingHistoryScroll = {
|
|
900
|
+
previousFirstMessageId,
|
|
901
|
+
previousFirstTranscriptMessageId,
|
|
902
|
+
previousFirstMessageViewportOffset,
|
|
903
|
+
previousCount: messages.length,
|
|
904
|
+
previousScrollTop,
|
|
905
|
+
previousScrollHeight: viewport?.scrollHeight ?? 0,
|
|
906
|
+
previousTotalSize: chatVirtualizer.scrollSize,
|
|
907
|
+
};
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
async function settlePendingHistoryScroll(pending: PendingHistoryScroll): Promise<void> {
|
|
911
|
+
for (let attempt = 0; attempt < 5; attempt += 1) {
|
|
912
|
+
if (pendingHistoryScroll !== pending) return;
|
|
913
|
+
if (await restorePendingHistoryScrollAfterLayout(pending)) return;
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
if (pendingHistoryScroll === pending) {
|
|
917
|
+
pendingHistoryScroll = null;
|
|
918
|
+
finishDeferredAdapterHistoryLoading();
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
function finishDeferredAdapterHistoryLoading(): void {
|
|
923
|
+
if (deferredAdapterHasMoreHistory === null) return;
|
|
924
|
+
|
|
925
|
+
adapterHasMoreHistory = deferredAdapterHasMoreHistory;
|
|
926
|
+
deferredAdapterHasMoreHistory = null;
|
|
927
|
+
isLoadingHistory = false;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
function historyTranscriptChanged(pending: PendingHistoryScroll): boolean {
|
|
931
|
+
return (
|
|
932
|
+
messages.length > pending.previousCount ||
|
|
933
|
+
messages[0]?.id !== pending.previousFirstTranscriptMessageId
|
|
934
|
+
);
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
async function handleLoadHistory(): Promise<void> {
|
|
938
|
+
if (isLoadingHistory || !showHistoryTrigger) return;
|
|
939
|
+
|
|
940
|
+
isLoadingHistory = true;
|
|
941
|
+
captureHistoryScroll();
|
|
942
|
+
const pending = pendingHistoryScroll;
|
|
943
|
+
if (pending === null) {
|
|
944
|
+
isLoadingHistory = false;
|
|
945
|
+
return;
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
if (adapter?.loadOlderMessages) {
|
|
949
|
+
let nextHasMoreHistory: boolean | undefined;
|
|
950
|
+
try {
|
|
951
|
+
const result = await adapter.loadOlderMessages(conversationId);
|
|
952
|
+
nextHasMoreHistory = result.hasMore;
|
|
953
|
+
} catch (error) {
|
|
954
|
+
pendingHistoryScroll = null;
|
|
955
|
+
isLoadingHistory = false;
|
|
956
|
+
onadaptererror?.({ command: 'loadOlderMessages', error });
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
const transcriptChanged = historyTranscriptChanged(pending);
|
|
961
|
+
if (isVirtualized && !transcriptChanged) {
|
|
962
|
+
deferredAdapterHasMoreHistory = nextHasMoreHistory ?? null;
|
|
963
|
+
await tick();
|
|
964
|
+
if (historyTranscriptChanged(pending)) {
|
|
965
|
+
await settlePendingHistoryScroll(pending);
|
|
966
|
+
} else if (pendingHistoryScroll === pending) {
|
|
967
|
+
pendingHistoryScroll = null;
|
|
968
|
+
finishDeferredAdapterHistoryLoading();
|
|
969
|
+
} else {
|
|
970
|
+
finishDeferredAdapterHistoryLoading();
|
|
971
|
+
}
|
|
972
|
+
return;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
if (isVirtualized || transcriptChanged) {
|
|
976
|
+
await settlePendingHistoryScroll(pending);
|
|
977
|
+
} else {
|
|
978
|
+
pendingHistoryScroll = null;
|
|
979
|
+
}
|
|
980
|
+
adapterHasMoreHistory = nextHasMoreHistory;
|
|
981
|
+
isLoadingHistory = false;
|
|
982
|
+
return;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
try {
|
|
986
|
+
await onloadhistory?.();
|
|
987
|
+
await settlePendingHistoryScroll(pending);
|
|
988
|
+
} catch (error) {
|
|
989
|
+
pendingHistoryScroll = null;
|
|
990
|
+
throw error;
|
|
991
|
+
} finally {
|
|
992
|
+
isLoadingHistory = false;
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
function handleRetry(messageId: string): void {
|
|
997
|
+
void dispatchCommand(
|
|
998
|
+
'retryMessage',
|
|
999
|
+
// Return `undefined` ONLY when the optional method is absent; otherwise
|
|
1000
|
+
// wrap its result so a present-but-sync method still counts as handled.
|
|
1001
|
+
(resolvedAdapter) =>
|
|
1002
|
+
resolvedAdapter.retryMessage
|
|
1003
|
+
? Promise.resolve(resolvedAdapter.retryMessage(messageId))
|
|
1004
|
+
: undefined,
|
|
1005
|
+
() => onretry?.(messageId),
|
|
1006
|
+
);
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
function handleEdit(event: { messageId: string; content: string }): void {
|
|
1010
|
+
void dispatchCommand(
|
|
1011
|
+
'editMessage',
|
|
1012
|
+
(resolvedAdapter) =>
|
|
1013
|
+
resolvedAdapter.editMessage
|
|
1014
|
+
? Promise.resolve(resolvedAdapter.editMessage(event))
|
|
1015
|
+
: undefined,
|
|
1016
|
+
() => onedit?.(event),
|
|
1017
|
+
);
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
// C5 — suggestion selection handler. Calls the consumer callback then
|
|
1021
|
+
// moves focus to the composer so keyboard users are not left stranded on a
|
|
1022
|
+
// chip button that gets removed from the DOM when the suggestion set clears.
|
|
1023
|
+
function handleSuggestionSelect(label: string): void {
|
|
1024
|
+
onsuggestionselect?.(label);
|
|
1025
|
+
inputRef?.focus();
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
// C3 — an approve/deny affordance only resolves when SOMETHING can handle it —
|
|
1029
|
+
// the adapter command OR the consumer callback. `canApprove`/`canDeny` gate
|
|
1030
|
+
// both the button-enabled state (passed to ToolApprovalPart) and the resolve
|
|
1031
|
+
// guard, so a consumer that wires neither path gets disabled buttons rather
|
|
1032
|
+
// than a click that commits UI-only state to nowhere (matches canRetry/canEdit).
|
|
1033
|
+
const canApprove = $derived(onapprove !== undefined || adapter?.approveToolCall !== undefined);
|
|
1034
|
+
const canDeny = $derived(ondeny !== undefined || adapter?.denyToolCall !== undefined);
|
|
1035
|
+
|
|
1036
|
+
// C3 — tool approval handlers. The resolution is recorded optimistically in the
|
|
1037
|
+
// UI-only id sets for immediate feedback, then the adapter command (if present)
|
|
1038
|
+
// runs and, on SUCCESS, the consumer callback fires (adapter-first-then-callback
|
|
1039
|
+
// contract). Guard double-resolution: if the call id is already in either set,
|
|
1040
|
+
// skip so a second tap/Escape cannot flip a resolved state. If the ADAPTER
|
|
1041
|
+
// command REJECTS (or throws), the optimistic resolution is rolled back so the
|
|
1042
|
+
// prompt returns to pending instead of being stuck "approved"/"denied" on a
|
|
1043
|
+
// transport failure — the error routes to onadaptererror and the callback does
|
|
1044
|
+
// NOT fire. With no adapter method, the callback fires synchronously.
|
|
1045
|
+
function resolveToolApproval(
|
|
1046
|
+
toolCallId: string,
|
|
1047
|
+
command: 'approveToolCall' | 'denyToolCall',
|
|
1048
|
+
canHandle: boolean,
|
|
1049
|
+
commit: (id: string) => void,
|
|
1050
|
+
rollback: (id: string) => void,
|
|
1051
|
+
runAdapter: (adapter: ChatAdapter) => Promise<void> | undefined,
|
|
1052
|
+
callback: (() => void) | undefined,
|
|
1053
|
+
): void {
|
|
1054
|
+
if (!canHandle) return;
|
|
1055
|
+
if (approvedToolCallIds.has(toolCallId) || deniedToolCallIds.has(toolCallId)) return;
|
|
1056
|
+
commit(toolCallId);
|
|
1057
|
+
|
|
1058
|
+
if (adapter) {
|
|
1059
|
+
let run: Promise<void> | undefined;
|
|
1060
|
+
try {
|
|
1061
|
+
run = runAdapter(adapter);
|
|
1062
|
+
} catch (error) {
|
|
1063
|
+
rollback(toolCallId);
|
|
1064
|
+
onadaptererror?.({ command, error });
|
|
1065
|
+
return;
|
|
1066
|
+
}
|
|
1067
|
+
if (run !== undefined) {
|
|
1068
|
+
void run.then(
|
|
1069
|
+
() => callback?.(),
|
|
1070
|
+
(error: unknown) => {
|
|
1071
|
+
rollback(toolCallId);
|
|
1072
|
+
onadaptererror?.({ command, error });
|
|
1073
|
+
},
|
|
1074
|
+
);
|
|
1075
|
+
return;
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
callback?.();
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
function handleApprove(toolCallId: string): void {
|
|
1082
|
+
resolveToolApproval(
|
|
1083
|
+
toolCallId,
|
|
1084
|
+
'approveToolCall',
|
|
1085
|
+
canApprove,
|
|
1086
|
+
(id) => (approvedToolCallIds = new Set([...approvedToolCallIds, id])),
|
|
1087
|
+
(id) => (approvedToolCallIds = removeFromSet(approvedToolCallIds, id)),
|
|
1088
|
+
(resolvedAdapter) =>
|
|
1089
|
+
resolvedAdapter.approveToolCall
|
|
1090
|
+
? Promise.resolve(resolvedAdapter.approveToolCall(toolCallId))
|
|
1091
|
+
: undefined,
|
|
1092
|
+
() => onapprove?.(toolCallId),
|
|
1093
|
+
);
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
function handleDeny(toolCallId: string): void {
|
|
1097
|
+
resolveToolApproval(
|
|
1098
|
+
toolCallId,
|
|
1099
|
+
'denyToolCall',
|
|
1100
|
+
canDeny,
|
|
1101
|
+
(id) => (deniedToolCallIds = new Set([...deniedToolCallIds, id])),
|
|
1102
|
+
(id) => (deniedToolCallIds = removeFromSet(deniedToolCallIds, id)),
|
|
1103
|
+
(resolvedAdapter) =>
|
|
1104
|
+
resolvedAdapter.denyToolCall
|
|
1105
|
+
? Promise.resolve(resolvedAdapter.denyToolCall(toolCallId))
|
|
1106
|
+
: undefined,
|
|
1107
|
+
() => ondeny?.(toolCallId),
|
|
1108
|
+
);
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
function removeFromSet(set: Set<string>, value: string): Set<string> {
|
|
1112
|
+
const next = new Set(set);
|
|
1113
|
+
next.delete(value);
|
|
1114
|
+
return next;
|
|
1115
|
+
}
|
|
1116
|
+
|
|
352
1117
|
function handleStopGenerating(): void {
|
|
353
1118
|
// Find the streaming message (last assistant message)
|
|
354
1119
|
// Using backwards loop instead of findLast() for broader browser compatibility
|
|
@@ -361,7 +1126,16 @@
|
|
|
361
1126
|
}
|
|
362
1127
|
}
|
|
363
1128
|
if (streamingMessage) {
|
|
364
|
-
|
|
1129
|
+
// Local name avoids shadowing the module-level `streamingMessageId` $state.
|
|
1130
|
+
const targetMessageId = streamingMessage.id;
|
|
1131
|
+
void dispatchCommand(
|
|
1132
|
+
'stopGenerating',
|
|
1133
|
+
(resolvedAdapter) =>
|
|
1134
|
+
resolvedAdapter.stopGenerating
|
|
1135
|
+
? Promise.resolve(resolvedAdapter.stopGenerating(targetMessageId))
|
|
1136
|
+
: undefined,
|
|
1137
|
+
() => onstopgenerating?.({ messageId: targetMessageId }),
|
|
1138
|
+
);
|
|
365
1139
|
}
|
|
366
1140
|
}
|
|
367
1141
|
|
|
@@ -396,18 +1170,108 @@
|
|
|
396
1170
|
keyboardNav.handleKeyDown(event, viewport);
|
|
397
1171
|
}
|
|
398
1172
|
|
|
1173
|
+
function messageIdFromElement(element: HTMLElement): string | null {
|
|
1174
|
+
if (!element.id.startsWith('message-')) return null;
|
|
1175
|
+
return element.id.slice('message-'.length);
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
function renderedMessageById(messageId: string): HTMLElement | null {
|
|
1179
|
+
return viewport?.querySelector<HTMLElement>(`#message-${CSS.escape(messageId)}`) ?? null;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
function firstVisibleRenderedMessage(): { messageId: string; viewportOffset: number } | null {
|
|
1183
|
+
if (!viewport) return null;
|
|
1184
|
+
|
|
1185
|
+
const viewportRect = viewport.getBoundingClientRect();
|
|
1186
|
+
for (const message of viewport.querySelectorAll<HTMLElement>('.chat-message')) {
|
|
1187
|
+
const messageId = messageIdFromElement(message);
|
|
1188
|
+
if (!messageId) continue;
|
|
1189
|
+
|
|
1190
|
+
const rect = message.getBoundingClientRect();
|
|
1191
|
+
if (rect.bottom <= viewportRect.top || rect.top >= viewportRect.bottom) continue;
|
|
1192
|
+
|
|
1193
|
+
return {
|
|
1194
|
+
messageId,
|
|
1195
|
+
viewportOffset: rect.top - viewportRect.top,
|
|
1196
|
+
};
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
return null;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
async function focusVirtualMessage(messageId: string): Promise<void> {
|
|
1203
|
+
const existing = renderedMessageById(messageId);
|
|
1204
|
+
if (existing) {
|
|
1205
|
+
existing.focus();
|
|
1206
|
+
existing.scrollIntoView({ behavior: scrollState.getScrollBehavior(), block: 'nearest' });
|
|
1207
|
+
return;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
const targetIndex = findRenderRowIndexByMessageId(renderRows, messageId);
|
|
1211
|
+
if (targetIndex < 0) return;
|
|
1212
|
+
|
|
1213
|
+
chatVirtualizer.scrollToIndex(targetIndex, {
|
|
1214
|
+
align: 'auto',
|
|
1215
|
+
behavior: scrollState.getScrollBehavior(),
|
|
1216
|
+
});
|
|
1217
|
+
await tick();
|
|
1218
|
+
const target = renderedMessageById(messageId);
|
|
1219
|
+
target?.focus();
|
|
1220
|
+
target?.scrollIntoView({ behavior: scrollState.getScrollBehavior(), block: 'nearest' });
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
function navigateVirtualMessage(direction: 'next' | 'previous'): boolean {
|
|
1224
|
+
if (!isVirtualized || !viewport) return false;
|
|
1225
|
+
const activeElement =
|
|
1226
|
+
document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
1227
|
+
if (!activeElement?.classList.contains('chat-message')) return false;
|
|
1228
|
+
|
|
1229
|
+
const currentMessageId = messageIdFromElement(activeElement);
|
|
1230
|
+
if (!currentMessageId) return false;
|
|
1231
|
+
|
|
1232
|
+
const currentIndex = findRenderRowIndexByMessageId(renderRows, currentMessageId);
|
|
1233
|
+
if (currentIndex < 0) return false;
|
|
1234
|
+
|
|
1235
|
+
const step = direction === 'next' ? 1 : -1;
|
|
1236
|
+
for (
|
|
1237
|
+
let targetIndex = currentIndex + step;
|
|
1238
|
+
targetIndex >= 0 && targetIndex < renderRows.length;
|
|
1239
|
+
targetIndex += step
|
|
1240
|
+
) {
|
|
1241
|
+
const targetRow = renderRows[targetIndex];
|
|
1242
|
+
if (targetRow?.type !== 'message') continue;
|
|
1243
|
+
|
|
1244
|
+
void focusVirtualMessage(targetRow.message.id);
|
|
1245
|
+
return true;
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
return true;
|
|
1249
|
+
}
|
|
1250
|
+
|
|
399
1251
|
// Scroll to the currently matched message when the current match changes
|
|
400
1252
|
$effect(() => {
|
|
401
1253
|
const match = searchState.currentMatch;
|
|
402
1254
|
if (!match || !viewport) return;
|
|
403
1255
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
1256
|
+
void scrollCurrentSearchMatch(match.message.id);
|
|
1257
|
+
});
|
|
1258
|
+
|
|
1259
|
+
async function scrollCurrentSearchMatch(messageId: string): Promise<void> {
|
|
1260
|
+
if (!viewport) return;
|
|
1261
|
+
|
|
1262
|
+
if (isVirtualized) {
|
|
1263
|
+
const targetIndex = findRenderRowIndexByMessageId(renderRows, messageId);
|
|
1264
|
+
if (targetIndex >= 0) {
|
|
1265
|
+
chatVirtualizer.scrollToIndex(targetIndex, { align: 'center', behavior: 'auto' });
|
|
1266
|
+
await tick();
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
const messageElement = viewport.querySelector<HTMLElement>(`#message-${CSS.escape(messageId)}`);
|
|
407
1271
|
if (messageElement) {
|
|
408
1272
|
messageElement.scrollIntoView({ behavior: 'auto', block: 'nearest' });
|
|
409
1273
|
}
|
|
410
|
-
}
|
|
1274
|
+
}
|
|
411
1275
|
|
|
412
1276
|
// ==========================================================================
|
|
413
1277
|
// Container-Level Drag and Drop
|
|
@@ -467,11 +1331,21 @@
|
|
|
467
1331
|
// ==========================================================================
|
|
468
1332
|
|
|
469
1333
|
export function scrollToBottom(): void {
|
|
470
|
-
|
|
1334
|
+
if (isVirtualized) {
|
|
1335
|
+
chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, {
|
|
1336
|
+
behavior: scrollState.getScrollBehavior(),
|
|
1337
|
+
});
|
|
1338
|
+
} else {
|
|
1339
|
+
scrollState.scrollToBottom(viewport);
|
|
1340
|
+
}
|
|
471
1341
|
}
|
|
472
1342
|
|
|
473
1343
|
export function scrollToTop(): void {
|
|
474
|
-
|
|
1344
|
+
if (isVirtualized) {
|
|
1345
|
+
chatVirtualizer.scrollToOffset(0, { behavior: scrollState.getScrollBehavior() });
|
|
1346
|
+
} else {
|
|
1347
|
+
scrollState.scrollToTop(viewport);
|
|
1348
|
+
}
|
|
475
1349
|
}
|
|
476
1350
|
|
|
477
1351
|
export function focusInput(): void {
|
|
@@ -512,9 +1386,20 @@
|
|
|
512
1386
|
streamingScrollRaf = undefined;
|
|
513
1387
|
// Flush: join the entire buffer once per frame
|
|
514
1388
|
streamingContent = tokenBuffer.join('');
|
|
1389
|
+
if (streamingRowElement) {
|
|
1390
|
+
tick().then(() => {
|
|
1391
|
+
if (streamingRowElement) {
|
|
1392
|
+
chatVirtualizer.measureElementNode(streamingRowElement);
|
|
1393
|
+
}
|
|
1394
|
+
});
|
|
1395
|
+
}
|
|
515
1396
|
// Auto-scroll if at bottom
|
|
516
1397
|
if (scrollState.isAtBottom && viewport) {
|
|
517
|
-
|
|
1398
|
+
if (isVirtualized) {
|
|
1399
|
+
chatVirtualizer.scrollToOffset(chatVirtualizer.scrollSize, { behavior: 'instant' });
|
|
1400
|
+
} else {
|
|
1401
|
+
viewport.scrollTo({ top: viewport.scrollHeight, behavior: 'instant' });
|
|
1402
|
+
}
|
|
518
1403
|
}
|
|
519
1404
|
});
|
|
520
1405
|
}
|
|
@@ -534,6 +1419,30 @@
|
|
|
534
1419
|
streamingContent = '';
|
|
535
1420
|
tokenBuffer = [];
|
|
536
1421
|
}
|
|
1422
|
+
|
|
1423
|
+
function virtualizedSpacerStyle(): string {
|
|
1424
|
+
return `height: ${chatVirtualizer.totalSize}px; position: relative; width: 100%;`;
|
|
1425
|
+
}
|
|
1426
|
+
|
|
1427
|
+
function virtualizedRowStyle(virtualItem: VirtualItem): string {
|
|
1428
|
+
return `position: absolute; inset-inline: 0; top: 0; transform: translateY(${virtualItem.start}px);`;
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
function virtualRowAttachment(row: ChatRenderRow): Attachment<HTMLElement> {
|
|
1432
|
+
return (node) => {
|
|
1433
|
+
const detachMeasurement = chatVirtualizer.measureElement(node);
|
|
1434
|
+
if (row.type === 'message' && row.message.id === streamingMessageId) {
|
|
1435
|
+
streamingRowElement = node;
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
return () => {
|
|
1439
|
+
detachMeasurement?.();
|
|
1440
|
+
if (streamingRowElement === node) {
|
|
1441
|
+
streamingRowElement = null;
|
|
1442
|
+
}
|
|
1443
|
+
};
|
|
1444
|
+
};
|
|
1445
|
+
}
|
|
537
1446
|
</script>
|
|
538
1447
|
|
|
539
1448
|
<div
|
|
@@ -541,6 +1450,8 @@
|
|
|
541
1450
|
{id}
|
|
542
1451
|
class={classNames('chat-container', className)}
|
|
543
1452
|
data-surface-mode={surfaceMode}
|
|
1453
|
+
data-cinder-density={density}
|
|
1454
|
+
data-cinder-variant={variant}
|
|
544
1455
|
role="region"
|
|
545
1456
|
aria-label="Chat conversation"
|
|
546
1457
|
onkeydown={handleKeyDown}
|
|
@@ -574,112 +1485,199 @@
|
|
|
574
1485
|
/>
|
|
575
1486
|
{/if}
|
|
576
1487
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
aria-live="polite"
|
|
586
|
-
aria-relevant="additions"
|
|
587
|
-
tabindex="0"
|
|
588
|
-
{@attach scrollAttachment}
|
|
589
|
-
{@attach viewportAttach}
|
|
590
|
-
>
|
|
591
|
-
{#if messages.length === 0}
|
|
592
|
-
{#if empty}
|
|
593
|
-
{@render empty()}
|
|
1488
|
+
{#snippet renderTypingIndicator()}
|
|
1489
|
+
<div
|
|
1490
|
+
class="chat-typing-indicator"
|
|
1491
|
+
role="status"
|
|
1492
|
+
aria-label={streamingStatus ?? 'Assistant is typing'}
|
|
1493
|
+
>
|
|
1494
|
+
{#if streamingStatus}
|
|
1495
|
+
<span class="chat-typing-status">{streamingStatus}</span>
|
|
594
1496
|
{:else}
|
|
595
|
-
<
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
<div class="chat-empty-prompts" role="group" aria-label="Suggested prompts">
|
|
599
|
-
{#each emptyPrompts as prompt, index (index)}
|
|
600
|
-
<button
|
|
601
|
-
type="button"
|
|
602
|
-
class="chat-empty-prompt"
|
|
603
|
-
onclick={() => handlePromptClick(prompt)}
|
|
604
|
-
>
|
|
605
|
-
{prompt}
|
|
606
|
-
</button>
|
|
607
|
-
{/each}
|
|
608
|
-
</div>
|
|
609
|
-
{/if}
|
|
610
|
-
</div>
|
|
1497
|
+
<span class="chat-typing-dot" aria-hidden="true"></span>
|
|
1498
|
+
<span class="chat-typing-dot" aria-hidden="true"></span>
|
|
1499
|
+
<span class="chat-typing-dot" aria-hidden="true"></span>
|
|
611
1500
|
{/if}
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
1501
|
+
</div>
|
|
1502
|
+
{/snippet}
|
|
1503
|
+
|
|
1504
|
+
{#snippet renderMessageRow(messageRow: ChatMessageRenderRow)}
|
|
1505
|
+
{@const message = messageRow.message}
|
|
1506
|
+
{@const pairs = message.toolCall?.id
|
|
1507
|
+
? (toolCallPairsByCallId.get(message.toolCall.id) ?? [])
|
|
1508
|
+
: []}
|
|
1509
|
+
{@const isStreamingMessage = streamingMessageId === message.id}
|
|
1510
|
+
{@const isCurrentSearchMatch =
|
|
1511
|
+
searchState.isOpen &&
|
|
1512
|
+
searchState.currentMatch !== null &&
|
|
1513
|
+
searchState.currentMatch.message.id === message.id}
|
|
1514
|
+
<!-- C4/C5: resolve reasoning/steps/suggestions overlays. Each prefers an
|
|
1515
|
+
explicit per-message prop over `cinder:`-namespaced metadata, validates
|
|
1516
|
+
both paths identically, and guards consumer-callback throws — so a
|
|
1517
|
+
malformed callback can never break the chat render (see resolve* in
|
|
1518
|
+
chat/utilities). A plain transcript yields `undefined` for all three. -->
|
|
1519
|
+
{@const derivedReasoning = resolveMessageReasoning(message, messageReasoning)}
|
|
1520
|
+
{@const derivedSteps = resolveMessageSteps(message, messageSteps)}
|
|
1521
|
+
{@const derivedSuggestions =
|
|
1522
|
+
message.id === lastMessageId
|
|
1523
|
+
? resolveMessageSuggestions(message, messageSuggestions)
|
|
1524
|
+
: undefined}
|
|
1525
|
+
|
|
1526
|
+
<!-- The built-in row. Wrapped in a snippet so the optional `row`
|
|
1527
|
+
override can render it (inversion of control) or replace it. The
|
|
1528
|
+
per-part `messagePart` override flows through into the message's
|
|
1529
|
+
parts renderer. -->
|
|
1530
|
+
{#snippet renderDefaultRow()}
|
|
1531
|
+
{@const receipt =
|
|
1532
|
+
message.role === 'user' ? readReceiptsState.getReceipt(message.id) : undefined}
|
|
1533
|
+
<ChatMessage
|
|
1534
|
+
{message}
|
|
1535
|
+
toolCallPairs={pairs}
|
|
1536
|
+
{messagePart}
|
|
1537
|
+
onretry={allowRetry && canRetry ? handleRetry : undefined}
|
|
1538
|
+
onedit={allowEditing && canEdit ? handleEdit : undefined}
|
|
1539
|
+
showDefaultActions={allowCopy}
|
|
1540
|
+
{onexpandedchange}
|
|
1541
|
+
streaming={isStreamingMessage}
|
|
1542
|
+
overrideContent={isStreamingMessage ? streamingContent : undefined}
|
|
1543
|
+
searchMatch={isCurrentSearchMatch}
|
|
1544
|
+
tabindex={-1}
|
|
1545
|
+
approvedToolCallIds={approvedToolCallIds.size > 0 ? approvedToolCallIds : undefined}
|
|
1546
|
+
deniedToolCallIds={deniedToolCallIds.size > 0 ? deniedToolCallIds : undefined}
|
|
1547
|
+
onapprove={canApprove ? handleApprove : undefined}
|
|
1548
|
+
ondeny={canDeny ? handleDeny : undefined}
|
|
1549
|
+
reasoning={derivedReasoning}
|
|
1550
|
+
steps={derivedSteps}
|
|
1551
|
+
suggestions={derivedSuggestions}
|
|
1552
|
+
reasoningExpanded={reasoningState.isExpanded(message.id)}
|
|
1553
|
+
onreasoning={() => reasoningState.toggle(message.id)}
|
|
1554
|
+
onsuggestionselect={handleSuggestionSelect}
|
|
1555
|
+
>
|
|
1556
|
+
{#snippet actions()}
|
|
1557
|
+
{#if messageActions}
|
|
1558
|
+
{@render messageActions(message)}
|
|
1559
|
+
{/if}
|
|
1560
|
+
{/snippet}
|
|
1561
|
+
{#snippet status()}
|
|
1562
|
+
{#if messageStatus}
|
|
1563
|
+
{@render messageStatus(message)}
|
|
1564
|
+
{:else if receipt}
|
|
1565
|
+
<ChatReadReceipt {receipt} />
|
|
629
1566
|
{/if}
|
|
1567
|
+
{/snippet}
|
|
1568
|
+
</ChatMessage>
|
|
1569
|
+
{/snippet}
|
|
630
1570
|
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
1571
|
+
{#if row}
|
|
1572
|
+
{@render row(message, renderDefaultRow)}
|
|
1573
|
+
{:else}
|
|
1574
|
+
{@render renderDefaultRow()}
|
|
1575
|
+
{/if}
|
|
1576
|
+
{/snippet}
|
|
1577
|
+
|
|
1578
|
+
{#snippet renderChatRow(renderRow: ChatRenderRow)}
|
|
1579
|
+
{#if renderRow.type === 'date'}
|
|
1580
|
+
<ChatDateSeparator date={renderRow.date} />
|
|
1581
|
+
{:else if renderRow.type === 'unread-divider'}
|
|
1582
|
+
<div class="chat-unread-divider" role="separator" aria-label="New messages below">
|
|
1583
|
+
<span class="chat-unread-divider-line" aria-hidden="true"></span>
|
|
1584
|
+
<span class="chat-unread-divider-label">New</span>
|
|
1585
|
+
<span class="chat-unread-divider-line" aria-hidden="true"></span>
|
|
1586
|
+
</div>
|
|
1587
|
+
{:else if renderRow.type === 'typing'}
|
|
1588
|
+
{@render renderTypingIndicator()}
|
|
1589
|
+
{:else}
|
|
1590
|
+
{@render renderMessageRow(renderRow)}
|
|
1591
|
+
{/if}
|
|
1592
|
+
{/snippet}
|
|
1593
|
+
|
|
1594
|
+
{#key timelineResetIdentity}
|
|
1595
|
+
<!-- svelte-ignore a11y_no_noninteractive_tabindex -->
|
|
1596
|
+
<div
|
|
1597
|
+
bind:this={viewport}
|
|
1598
|
+
id={timelineId}
|
|
1599
|
+
class="chat-timeline"
|
|
1600
|
+
role="log"
|
|
1601
|
+
aria-label="Messages"
|
|
1602
|
+
aria-describedby={statusId}
|
|
1603
|
+
aria-live={isVirtualized ? 'off' : 'polite'}
|
|
1604
|
+
aria-relevant={isVirtualized ? undefined : 'additions'}
|
|
1605
|
+
data-cinder-virtualized={isVirtualized ? '' : undefined}
|
|
1606
|
+
tabindex="0"
|
|
1607
|
+
{@attach scrollAttachment}
|
|
1608
|
+
{@attach historyAnchorScrollAttachment}
|
|
1609
|
+
{@attach viewportAttach}
|
|
1610
|
+
>
|
|
1611
|
+
{#if showHistoryTrigger}
|
|
1612
|
+
<ChatHistoryTrigger
|
|
1613
|
+
bind:this={historyTriggerRef}
|
|
1614
|
+
loading={isLoadingHistory}
|
|
1615
|
+
label={loadEarlierLabel}
|
|
1616
|
+
loadingLabel={loadingEarlierLabel}
|
|
1617
|
+
onload={() => void handleLoadHistory()}
|
|
1618
|
+
/>
|
|
1619
|
+
{/if}
|
|
1620
|
+
|
|
1621
|
+
{#if messages.length === 0}
|
|
1622
|
+
{#if empty}
|
|
1623
|
+
{@render empty()}
|
|
1624
|
+
{:else}
|
|
1625
|
+
<div class="chat-empty" role="status">
|
|
1626
|
+
<p>No messages yet</p>
|
|
1627
|
+
{#if emptyPrompts && emptyPrompts.length > 0}
|
|
1628
|
+
<div class="chat-empty-prompts" role="group" aria-label="Suggested prompts">
|
|
1629
|
+
{#each emptyPrompts as prompt, index (index)}
|
|
1630
|
+
<button
|
|
1631
|
+
type="button"
|
|
1632
|
+
class="chat-empty-prompt"
|
|
1633
|
+
onclick={() => handlePromptClick(prompt)}
|
|
1634
|
+
>
|
|
1635
|
+
{prompt}
|
|
1636
|
+
</button>
|
|
1637
|
+
{/each}
|
|
1638
|
+
</div>
|
|
1639
|
+
{/if}
|
|
1640
|
+
</div>
|
|
659
1641
|
{/if}
|
|
660
|
-
{
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
{
|
|
672
|
-
<span class="chat-typing-dot" aria-hidden="true"></span>
|
|
673
|
-
<span class="chat-typing-dot" aria-hidden="true"></span>
|
|
674
|
-
<span class="chat-typing-dot" aria-hidden="true"></span>
|
|
675
|
-
{/if}
|
|
1642
|
+
{:else if isVirtualized}
|
|
1643
|
+
<div class="chat-virtual-spacer" style={virtualizedSpacerStyle()}>
|
|
1644
|
+
{#each virtualRows as virtualRow (chatRenderRowKey(virtualRow.row))}
|
|
1645
|
+
<div
|
|
1646
|
+
class="chat-virtual-row"
|
|
1647
|
+
data-cinder-virtual-index={virtualRow.virtualItem.index}
|
|
1648
|
+
style={virtualizedRowStyle(virtualRow.virtualItem)}
|
|
1649
|
+
{@attach virtualRowAttachment(virtualRow.row)}
|
|
1650
|
+
>
|
|
1651
|
+
{@render renderChatRow(virtualRow.row)}
|
|
1652
|
+
</div>
|
|
1653
|
+
{/each}
|
|
676
1654
|
</div>
|
|
1655
|
+
{:else}
|
|
1656
|
+
{#key staticRowsResetIdentity}
|
|
1657
|
+
{#each renderRows as renderRow (chatRenderRowKey(renderRow))}
|
|
1658
|
+
{@render renderChatRow(renderRow)}
|
|
1659
|
+
{/each}
|
|
1660
|
+
{/key}
|
|
677
1661
|
{/if}
|
|
678
1662
|
|
|
1663
|
+
<!-- Per-participant typing indicator: above the bottom sentinel.
|
|
1664
|
+
Always in DOM regardless of message count — the aria-live region must
|
|
1665
|
+
exist before the first update fires so screen readers receive the
|
|
1666
|
+
announcement even in an empty chat. The outer wrapper is always rendered;
|
|
1667
|
+
the inner indicator mounts/unmounts via {#if isActive} inside the
|
|
1668
|
+
component to replay the entrance animation on each typing start.
|
|
1669
|
+
Virtualized path: sits outside the virtual spacer so it does not affect
|
|
1670
|
+
row measurement. The sentinel remains the last element so
|
|
1671
|
+
IntersectionObserver fires correctly when the typing region gains height. -->
|
|
1672
|
+
<ChatParticipantTyping
|
|
1673
|
+
typingLabel={typingIndicatorState.typingLabel}
|
|
1674
|
+
participantCount={typingIndicatorState.participantCount}
|
|
1675
|
+
/>
|
|
1676
|
+
|
|
679
1677
|
<!-- Bottom sentinel for IntersectionObserver -->
|
|
680
1678
|
<div class="chat-bottom-sentinel" aria-hidden="true" {@attach sentinelAttach}></div>
|
|
681
|
-
|
|
682
|
-
|
|
1679
|
+
</div>
|
|
1680
|
+
{/key}
|
|
683
1681
|
|
|
684
1682
|
<!-- Input Area with Jump Buttons -->
|
|
685
1683
|
<div class="chat-input-wrapper">
|
|
@@ -712,8 +1710,16 @@
|
|
|
712
1710
|
<ChatStatusAnnouncer
|
|
713
1711
|
{statusId}
|
|
714
1712
|
messageCount={messages.length}
|
|
715
|
-
announcerMessage={unreadState.announcerMessage}
|
|
1713
|
+
announcerMessage={historyAnnouncement || unreadState.announcerMessage}
|
|
1714
|
+
assertiveMessage={toolApprovalAssertiveMessage}
|
|
716
1715
|
/>
|
|
1716
|
+
|
|
1717
|
+
<!-- Typing-participant live region: outside role="log" to avoid double announcement.
|
|
1718
|
+
(ChatStatusAnnouncer is similarly placed outside the log for the same reason.)
|
|
1719
|
+
Text is empty when nobody is typing, debounced for brief-burst suppression. -->
|
|
1720
|
+
<div class="cinder-sr-only" aria-live="polite" aria-atomic="true">
|
|
1721
|
+
{typingIndicatorState.announcedLabel}
|
|
1722
|
+
</div>
|
|
717
1723
|
</div>
|
|
718
1724
|
|
|
719
1725
|
<style>
|
|
@@ -730,6 +1736,31 @@
|
|
|
730
1736
|
background: transparent;
|
|
731
1737
|
}
|
|
732
1738
|
|
|
1739
|
+
/* ==========================================================================
|
|
1740
|
+
* Density tokens — intermediate contract between container and its children.
|
|
1741
|
+
* ONLY the container reads `data-cinder-density`; children consume the
|
|
1742
|
+
* custom properties below. The defaults match the historical hard-coded
|
|
1743
|
+
* --cinder-space values (comfortable = no visual change from before).
|
|
1744
|
+
* ========================================================================== */
|
|
1745
|
+
|
|
1746
|
+
.chat-container {
|
|
1747
|
+
--cinder-chat-message-gap: var(--cinder-space-3);
|
|
1748
|
+
--cinder-chat-message-padding-inline: var(--cinder-space-4);
|
|
1749
|
+
--cinder-chat-timeline-padding: var(--cinder-space-4);
|
|
1750
|
+
/* Narrow-viewport tokens: tighter padding/gap at ≤480px (comfortable density). */
|
|
1751
|
+
--cinder-chat-narrow-padding: var(--cinder-space-3);
|
|
1752
|
+
--cinder-chat-narrow-gap: var(--cinder-space-2);
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1755
|
+
.chat-container[data-cinder-density='compact'] {
|
|
1756
|
+
--cinder-chat-message-gap: var(--cinder-space-1-5);
|
|
1757
|
+
--cinder-chat-message-padding-inline: var(--cinder-space-2);
|
|
1758
|
+
--cinder-chat-timeline-padding: var(--cinder-space-2);
|
|
1759
|
+
/* Narrow-viewport tokens: proportionally tighter for compact density. */
|
|
1760
|
+
--cinder-chat-narrow-padding: var(--cinder-space-1-5);
|
|
1761
|
+
--cinder-chat-narrow-gap: var(--cinder-space-1);
|
|
1762
|
+
}
|
|
1763
|
+
|
|
733
1764
|
/* Full-window drop zone overlay */
|
|
734
1765
|
.chat-drop-overlay {
|
|
735
1766
|
position: absolute;
|
|
@@ -763,10 +1794,29 @@
|
|
|
763
1794
|
flex: 1;
|
|
764
1795
|
overflow-y: auto;
|
|
765
1796
|
overflow-anchor: auto;
|
|
766
|
-
padding: var(--cinder-
|
|
1797
|
+
padding: var(--cinder-chat-timeline-padding);
|
|
767
1798
|
display: flex;
|
|
768
1799
|
flex-direction: column;
|
|
769
|
-
gap: var(--cinder-
|
|
1800
|
+
gap: var(--cinder-chat-message-gap);
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
.chat-timeline[data-cinder-virtualized] {
|
|
1804
|
+
display: block;
|
|
1805
|
+
overflow-anchor: none;
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1808
|
+
.chat-timeline[data-cinder-virtualized] > :global(.chat-history-trigger) {
|
|
1809
|
+
margin-block-end: var(--cinder-chat-message-gap);
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
.chat-virtual-spacer {
|
|
1813
|
+
flex-shrink: 0;
|
|
1814
|
+
}
|
|
1815
|
+
|
|
1816
|
+
.chat-virtual-row {
|
|
1817
|
+
box-sizing: border-box;
|
|
1818
|
+
width: 100%;
|
|
1819
|
+
padding-block-end: var(--cinder-chat-message-gap);
|
|
770
1820
|
}
|
|
771
1821
|
|
|
772
1822
|
/* Inset surface separates assistant bubbles (--cinder-surface) from the
|
|
@@ -972,7 +2022,7 @@
|
|
|
972
2022
|
/* Input Area */
|
|
973
2023
|
.chat-input-area {
|
|
974
2024
|
flex-shrink: 0;
|
|
975
|
-
padding: var(--cinder-
|
|
2025
|
+
padding: var(--cinder-chat-timeline-padding);
|
|
976
2026
|
border-top: 1px solid var(--cinder-border);
|
|
977
2027
|
background: var(--cinder-surface);
|
|
978
2028
|
}
|
|
@@ -981,15 +2031,65 @@
|
|
|
981
2031
|
background: transparent;
|
|
982
2032
|
}
|
|
983
2033
|
|
|
984
|
-
/* Responsive adjustments
|
|
2034
|
+
/* Responsive adjustments: tighten padding at narrow widths.
|
|
2035
|
+
Uses --cinder-chat-narrow-* tokens so each density gets an appropriate
|
|
2036
|
+
reduced value (comfortable → space-3/space-2; compact → space-1-5/space-1). */
|
|
985
2037
|
@container (max-width: 480px) {
|
|
986
2038
|
.chat-timeline {
|
|
987
|
-
padding: var(--cinder-
|
|
988
|
-
gap: var(--cinder-
|
|
2039
|
+
padding: var(--cinder-chat-narrow-padding);
|
|
2040
|
+
gap: var(--cinder-chat-narrow-gap);
|
|
989
2041
|
}
|
|
990
2042
|
|
|
991
2043
|
.chat-input-area {
|
|
992
|
-
padding: var(--cinder-
|
|
2044
|
+
padding: var(--cinder-chat-narrow-padding);
|
|
993
2045
|
}
|
|
994
2046
|
}
|
|
2047
|
+
|
|
2048
|
+
/* ==========================================================================
|
|
2049
|
+
* Variant — flat: remove bubble backgrounds; role is communicated via
|
|
2050
|
+
* alignment and role label only. Text renders on --cinder-surface-inset
|
|
2051
|
+
* (the timeline background in default surfaceMode), which meets WCAG AA
|
|
2052
|
+
* for --cinder-text. The `:global()` reach is required because bubble CSS
|
|
2053
|
+
* lives in chat-message.svelte (a child component).
|
|
2054
|
+
* ========================================================================== */
|
|
2055
|
+
|
|
2056
|
+
/* Strip user bubble background + distinctive border radius */
|
|
2057
|
+
.chat-container[data-cinder-variant='flat']
|
|
2058
|
+
:global(.chat-message-wrapper[data-role='user'] .chat-message) {
|
|
2059
|
+
background: transparent;
|
|
2060
|
+
border-radius: var(--cinder-radius-lg);
|
|
2061
|
+
}
|
|
2062
|
+
|
|
2063
|
+
/* Strip assistant bubble background + border + shadow */
|
|
2064
|
+
.chat-container[data-cinder-variant='flat']
|
|
2065
|
+
:global(.chat-message-wrapper[data-role='assistant'] .chat-message) {
|
|
2066
|
+
background: transparent;
|
|
2067
|
+
border: none;
|
|
2068
|
+
box-shadow: none;
|
|
2069
|
+
border-radius: var(--cinder-radius-lg);
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
/* In flat mode, the user header must flow in-document (not absolutely
|
|
2073
|
+
positioned) so the role label appears above the message content.
|
|
2074
|
+
The label itself is un-clipped below so it reads as visible text. */
|
|
2075
|
+
.chat-container[data-cinder-variant='flat']
|
|
2076
|
+
:global(.chat-message-wrapper[data-role='user'] .chat-message-header) {
|
|
2077
|
+
position: static;
|
|
2078
|
+
inset: unset;
|
|
2079
|
+
}
|
|
2080
|
+
|
|
2081
|
+
/* Un-hide the role label for user messages: in bubble mode alignment
|
|
2082
|
+
communicates role; in flat mode there is no colored background, so the
|
|
2083
|
+
label is the primary visible role signal. */
|
|
2084
|
+
.chat-container[data-cinder-variant='flat']
|
|
2085
|
+
:global(.chat-message-wrapper[data-role='user'] .chat-message-role) {
|
|
2086
|
+
position: static;
|
|
2087
|
+
width: auto;
|
|
2088
|
+
height: auto;
|
|
2089
|
+
padding: 0;
|
|
2090
|
+
margin: 0;
|
|
2091
|
+
overflow: visible;
|
|
2092
|
+
clip: auto;
|
|
2093
|
+
white-space: normal;
|
|
2094
|
+
}
|
|
995
2095
|
</style>
|