@exegia/corpora-ui 3.0.0 → 4.0.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/README.md +20 -0
- package/dist-lib/autocomplete-DzjspdKa.js +151 -0
- package/dist-lib/base-CiR7nLAD.js +37 -0
- package/dist-lib/breadcrumb-DtFOhTfs.js +83 -0
- package/dist-lib/button-DDBbG_zF.js +143 -0
- package/dist-lib/button.js +3 -0
- package/dist-lib/calendar-Dyut8HPa.js +62 -0
- package/dist-lib/card.js +150 -0
- package/dist-lib/checkbox-group-B0BPFc-K.js +12 -0
- package/dist-lib/combobox-BwfmU1S_.js +267 -0
- package/dist-lib/components/atoms/text/default.d.ts +2 -1143
- package/dist-lib/components/blocks/shell/index.d.ts +1 -0
- package/dist-lib/components/blocks/sidebar-primitives/content.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/context.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/footer.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/group-action.d.ts +3 -0
- package/dist-lib/components/blocks/sidebar-primitives/group-content.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/group-label.d.ts +3 -0
- package/dist-lib/components/blocks/sidebar-primitives/group.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/header.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/index.d.ts +26 -0
- package/dist-lib/components/blocks/sidebar-primitives/input.d.ts +3 -0
- package/dist-lib/components/blocks/sidebar-primitives/inset.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-action.d.ts +5 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-badge.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-button.d.ts +9 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-item.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-skeleton.d.ts +4 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-sub-button.d.ts +6 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-sub-item.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu-sub.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/menu.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/provider.d.ts +3 -0
- package/dist-lib/components/blocks/sidebar-primitives/rail.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar-primitives/separator.d.ts +3 -0
- package/dist-lib/components/blocks/sidebar-primitives/sidebar-atom.d.ts +32 -0
- package/dist-lib/components/blocks/sidebar-primitives/sidebar.d.ts +6 -0
- package/dist-lib/components/blocks/sidebar-primitives/trigger.d.ts +3 -0
- package/dist-lib/components/blocks/sidebar-primitives/types.d.ts +26 -0
- package/dist-lib/components/blocks/sidebar-primitives/use-mobile.d.ts +1 -0
- package/dist-lib/components/blocks/sidebar-primitives/use-sidebar.d.ts +4 -0
- package/dist-lib/components/blocks/sidebar-primitives/utils.d.ts +10 -0
- package/dist-lib/components/ui/alert.d.ts +1 -1
- package/dist-lib/components/ui/badge.d.ts +2 -2
- package/dist-lib/components/ui/breadcrumb/base.d.ts +2 -0
- package/dist-lib/components/ui/breadcrumb/ellipsis.d.ts +2 -0
- package/dist-lib/components/ui/breadcrumb/index.d.ts +7 -0
- package/dist-lib/components/ui/breadcrumb/item.d.ts +2 -0
- package/dist-lib/components/ui/breadcrumb/link.d.ts +3 -0
- package/dist-lib/components/ui/breadcrumb/list.d.ts +2 -0
- package/dist-lib/components/ui/breadcrumb/page.d.ts +2 -0
- package/dist-lib/components/ui/breadcrumb/separator.d.ts +2 -0
- package/dist-lib/components/ui/button.d.ts +2 -2
- package/dist-lib/components/ui/calendar/base.d.ts +3 -0
- package/dist-lib/components/ui/calendar/index.d.ts +1 -0
- package/dist-lib/components/ui/calendar/utils.d.ts +1 -0
- package/dist-lib/components/ui/checkbox-group/base.d.ts +3 -0
- package/dist-lib/components/ui/checkbox-group/index.d.ts +2 -0
- package/dist-lib/components/ui/combobox/chip-remove.d.ts +3 -0
- package/dist-lib/components/ui/combobox/chip.d.ts +5 -0
- package/dist-lib/components/ui/combobox/chips-input.d.ts +6 -0
- package/dist-lib/components/ui/combobox/chips.d.ts +5 -0
- package/dist-lib/components/ui/combobox/clear.d.ts +3 -0
- package/dist-lib/components/ui/combobox/collection.d.ts +3 -0
- package/dist-lib/components/ui/combobox/context.d.ts +5 -0
- package/dist-lib/components/ui/combobox/empty.d.ts +3 -0
- package/dist-lib/components/ui/combobox/group-label.d.ts +3 -0
- package/dist-lib/components/ui/combobox/group.d.ts +3 -0
- package/dist-lib/components/ui/combobox/index.d.ts +22 -0
- package/dist-lib/components/ui/combobox/input.d.ts +11 -0
- package/dist-lib/components/ui/combobox/item.d.ts +3 -0
- package/dist-lib/components/ui/combobox/list.d.ts +3 -0
- package/dist-lib/components/ui/combobox/popup.d.ts +10 -0
- package/dist-lib/components/ui/combobox/root.d.ts +3 -0
- package/dist-lib/components/ui/combobox/row.d.ts +3 -0
- package/dist-lib/components/ui/combobox/separator.d.ts +3 -0
- package/dist-lib/components/ui/combobox/status.d.ts +3 -0
- package/dist-lib/components/ui/combobox/trigger.d.ts +3 -0
- package/dist-lib/components/ui/combobox/utils.d.ts +2 -0
- package/dist-lib/components/ui/combobox/value.d.ts +3 -0
- package/dist-lib/components/ui/dialog/backdrop.d.ts +3 -0
- package/dist-lib/components/ui/dialog/close.d.ts +3 -0
- package/dist-lib/components/ui/dialog/description.d.ts +3 -0
- package/dist-lib/components/ui/dialog/footer.d.ts +5 -0
- package/dist-lib/components/ui/dialog/header.d.ts +3 -0
- package/dist-lib/components/ui/dialog/index.d.ts +16 -0
- package/dist-lib/components/ui/dialog/panel.d.ts +5 -0
- package/dist-lib/components/ui/dialog/popup.d.ts +8 -0
- package/dist-lib/components/ui/dialog/title.d.ts +3 -0
- package/dist-lib/components/ui/dialog/trigger.d.ts +3 -0
- package/dist-lib/components/ui/dialog/utils.d.ts +4 -0
- package/dist-lib/components/ui/dialog/viewport.d.ts +3 -0
- package/dist-lib/components/ui/drawer/backdrop.d.ts +3 -0
- package/dist-lib/components/ui/drawer/bar.d.ts +6 -0
- package/dist-lib/components/ui/drawer/close.d.ts +3 -0
- package/dist-lib/components/ui/drawer/content.d.ts +3 -0
- package/dist-lib/components/ui/drawer/context.d.ts +5 -0
- package/dist-lib/components/ui/drawer/description.d.ts +3 -0
- package/dist-lib/components/ui/drawer/footer.d.ts +6 -0
- package/dist-lib/components/ui/drawer/header.d.ts +5 -0
- package/dist-lib/components/ui/drawer/index.d.ts +26 -0
- package/dist-lib/components/ui/drawer/menu-checkbox-item.d.ts +6 -0
- package/dist-lib/components/ui/drawer/menu-group-label.d.ts +3 -0
- package/dist-lib/components/ui/drawer/menu-group.d.ts +3 -0
- package/dist-lib/components/ui/drawer/menu-item.d.ts +5 -0
- package/dist-lib/components/ui/drawer/menu-radio-group.d.ts +3 -0
- package/dist-lib/components/ui/drawer/menu-radio-item.d.ts +6 -0
- package/dist-lib/components/ui/drawer/menu-separator.d.ts +3 -0
- package/dist-lib/components/ui/drawer/menu-trigger.d.ts +3 -0
- package/dist-lib/components/ui/drawer/menu.d.ts +3 -0
- package/dist-lib/components/ui/drawer/panel.d.ts +7 -0
- package/dist-lib/components/ui/drawer/popup.d.ts +10 -0
- package/dist-lib/components/ui/drawer/portal.d.ts +3 -0
- package/dist-lib/components/ui/drawer/root.d.ts +6 -0
- package/dist-lib/components/ui/drawer/swipe-area.d.ts +6 -0
- package/dist-lib/components/ui/drawer/title.d.ts +3 -0
- package/dist-lib/components/ui/drawer/trigger.d.ts +3 -0
- package/dist-lib/components/ui/drawer/types.d.ts +1 -0
- package/dist-lib/components/ui/drawer/utils.d.ts +4 -0
- package/dist-lib/components/ui/drawer/viewport.d.ts +7 -0
- package/dist-lib/components/ui/empty/base.d.ts +2 -0
- package/dist-lib/components/ui/empty/content.d.ts +2 -0
- package/dist-lib/components/ui/empty/description.d.ts +2 -0
- package/dist-lib/components/ui/empty/header.d.ts +2 -0
- package/dist-lib/components/ui/empty/index.d.ts +6 -0
- package/dist-lib/components/ui/empty/media.d.ts +4 -0
- package/dist-lib/components/ui/empty/title.d.ts +2 -0
- package/dist-lib/components/ui/empty/utils.d.ts +3 -0
- package/dist-lib/components/ui/fieldset/base.d.ts +3 -0
- package/dist-lib/components/ui/fieldset/index.d.ts +3 -0
- package/dist-lib/components/ui/fieldset/legend.d.ts +3 -0
- package/dist-lib/components/ui/form/base.d.ts +3 -0
- package/dist-lib/components/ui/form/index.d.ts +2 -0
- package/dist-lib/components/ui/glasscn/lazy-glass-surface.d.ts +6 -0
- package/dist-lib/components/ui/meter/base.d.ts +3 -0
- package/dist-lib/components/ui/meter/index.d.ts +6 -0
- package/dist-lib/components/ui/meter/indicator.d.ts +3 -0
- package/dist-lib/components/ui/meter/label.d.ts +3 -0
- package/dist-lib/components/ui/meter/track.d.ts +3 -0
- package/dist-lib/components/ui/meter/value.d.ts +3 -0
- package/dist-lib/components/ui/modal.d.ts +10 -0
- package/dist-lib/components/ui/number-field/base.d.ts +5 -0
- package/dist-lib/components/ui/number-field/context.d.ts +4 -0
- package/dist-lib/components/ui/number-field/cursor-grow-icon.d.ts +2 -0
- package/dist-lib/components/ui/number-field/decrement.d.ts +3 -0
- package/dist-lib/components/ui/number-field/group.d.ts +3 -0
- package/dist-lib/components/ui/number-field/increment.d.ts +3 -0
- package/dist-lib/components/ui/number-field/index.d.ts +9 -0
- package/dist-lib/components/ui/number-field/input.d.ts +3 -0
- package/dist-lib/components/ui/number-field/scrub-area.d.ts +5 -0
- package/dist-lib/components/ui/overlays.d.ts +4 -0
- package/dist-lib/components/ui/pagination/base.d.ts +2 -0
- package/dist-lib/components/ui/pagination/content.d.ts +2 -0
- package/dist-lib/components/ui/pagination/ellipsis.d.ts +2 -0
- package/dist-lib/components/ui/pagination/index.d.ts +8 -0
- package/dist-lib/components/ui/pagination/item.d.ts +2 -0
- package/dist-lib/components/ui/pagination/link.d.ts +3 -0
- package/dist-lib/components/ui/pagination/next.d.ts +3 -0
- package/dist-lib/components/ui/pagination/previous.d.ts +3 -0
- package/dist-lib/components/ui/pagination/types.d.ts +7 -0
- package/dist-lib/components/ui/preview-card.d.ts +2 -1
- package/dist-lib/components/ui/progress/base.d.ts +3 -0
- package/dist-lib/components/ui/progress/index.d.ts +6 -0
- package/dist-lib/components/ui/progress/indicator.d.ts +3 -0
- package/dist-lib/components/ui/progress/label.d.ts +3 -0
- package/dist-lib/components/ui/progress/track.d.ts +3 -0
- package/dist-lib/components/ui/progress/value.d.ts +3 -0
- package/dist-lib/components/ui/radio-group/base.d.ts +3 -0
- package/dist-lib/components/ui/radio-group/index.d.ts +5 -0
- package/dist-lib/components/ui/radio-group/radio.d.ts +3 -0
- package/dist-lib/components/ui/select.d.ts +1 -1
- package/dist-lib/components/ui/sheet-parts/backdrop.d.ts +2 -0
- package/dist-lib/components/ui/sheet-parts/overlay.d.ts +2 -0
- package/dist-lib/components/ui/sheet-parts/panel.d.ts +5 -0
- package/dist-lib/components/ui/sheet-parts/popup.d.ts +10 -0
- package/dist-lib/components/ui/sheet-parts/portal.d.ts +2 -0
- package/dist-lib/components/ui/sheet-parts/viewport.d.ts +6 -0
- package/dist-lib/components/ui/sheet.d.ts +19 -9
- package/dist-lib/components/ui/slider/base.d.ts +3 -0
- package/dist-lib/components/ui/slider/index.d.ts +3 -0
- package/dist-lib/components/ui/slider/value.d.ts +3 -0
- package/dist-lib/components/ui/table/base.d.ts +3 -0
- package/dist-lib/components/ui/table/body.d.ts +2 -0
- package/dist-lib/components/ui/table/caption.d.ts +2 -0
- package/dist-lib/components/ui/table/cell.d.ts +2 -0
- package/dist-lib/components/ui/table/footer.d.ts +2 -0
- package/dist-lib/components/ui/table/head.d.ts +2 -0
- package/dist-lib/components/ui/table/header.d.ts +2 -0
- package/dist-lib/components/ui/table/index.d.ts +10 -0
- package/dist-lib/components/ui/table/row.d.ts +2 -0
- package/dist-lib/components/ui/table/types.d.ts +7 -0
- package/dist-lib/components/ui/toast.d.ts +2 -0
- package/dist-lib/components/ui/toggle/base.d.ts +5 -0
- package/dist-lib/components/ui/toggle/index.d.ts +3 -0
- package/dist-lib/components/ui/toggle/utils.d.ts +4 -0
- package/dist-lib/components/ui/toggle-group/base.d.ts +5 -0
- package/dist-lib/components/ui/toggle-group/context.d.ts +4 -0
- package/dist-lib/components/ui/toggle-group/index.d.ts +5 -0
- package/dist-lib/components/ui/toggle-group/item.d.ts +5 -0
- package/dist-lib/components/ui/toggle-group/separator.d.ts +5 -0
- package/dist-lib/dialog-BF9rLVsx.js +135 -0
- package/dist-lib/drawer-DuQtc_IN.js +350 -0
- package/dist-lib/ease-C9At8rnB.js +120 -0
- package/dist-lib/empty-CUO4MoHd.js +87 -0
- package/dist-lib/exegia-provider-CDYMDsSW.js +126 -0
- package/dist-lib/fieldset-C3YDowBt.js +22 -0
- package/dist-lib/form-DdxBnCxo.js +12 -0
- package/dist-lib/index.css +3 -0
- package/dist-lib/index.d.ts +4 -0
- package/dist-lib/index.js +6649 -10344
- package/dist-lib/input.js +28 -0
- package/dist-lib/label.js +19 -0
- package/dist-lib/lib/segmented-control.d.ts +1 -1
- package/dist-lib/lib/state/exegia-provider.d.ts +17 -8
- package/dist-lib/lib/state/index.d.ts +2 -0
- package/dist-lib/lib/state/portal-context.d.ts +5 -0
- package/dist-lib/lib/state/sound-loading.d.ts +4 -0
- package/dist-lib/liquid-glass-BrmOha12.js +50 -0
- package/dist-lib/meter-B5i2cf7m.js +49 -0
- package/dist-lib/modal-BSBLNZfo.js +24 -0
- package/dist-lib/number-field-D5p-WTn_.js +97 -0
- package/dist-lib/overlays.js +5 -0
- package/dist-lib/pagination-CPOVfufE.js +94 -0
- package/dist-lib/popover-BKYgU_p3.js +62 -0
- package/dist-lib/portal-context-oIZFl3NP.js +9 -0
- package/dist-lib/progress-ByAk9CV5.js +50 -0
- package/dist-lib/radio-group-CMwDkKFE.js +27 -0
- package/dist-lib/rolldown-runtime-Dy4uBu1J.js +11 -0
- package/dist-lib/scaffold-DjS8eLk9.js +925 -0
- package/dist-lib/scaffold.js +2 -0
- package/dist-lib/scroll-area-BNcHlmRX.js +39 -0
- package/dist-lib/separator-D7T-98IV.js +14 -0
- package/dist-lib/sheet-BAYosIsg.js +148 -0
- package/dist-lib/sheet-D4fmEZW5.js +22 -0
- package/dist-lib/shell-WTIa9_ul.js +722 -0
- package/dist-lib/shell.js +2 -0
- package/dist-lib/sidebar-1j5RYZ2t.js +529 -0
- package/dist-lib/skeleton-CwqQoMiY.js +12 -0
- package/dist-lib/slider-_1H30BMt.js +48 -0
- package/dist-lib/sound-knGH4lj-.js +19 -0
- package/dist-lib/spinner-cwaneGYM.js +14 -0
- package/dist-lib/state.js +2 -0
- package/dist-lib/table-D43_yedE.js +87 -0
- package/dist-lib/tabs-CwWnKxRI.js +66 -0
- package/dist-lib/textarea-CxycYTkF.js +27 -0
- package/dist-lib/toast-BLwJEhKU.js +151 -0
- package/dist-lib/toggle-group-BzDvDKL0.js +55 -0
- package/dist-lib/tooltip-aPB3pyrl.js +39 -0
- package/dist-lib/ui/accordion.d.ts +1 -0
- package/dist-lib/ui/accordion.js +45 -0
- package/dist-lib/ui/alert-dialog.d.ts +1 -0
- package/dist-lib/ui/alert-dialog.js +74 -0
- package/dist-lib/ui/alert.d.ts +1 -0
- package/dist-lib/ui/alert.js +45 -0
- package/dist-lib/ui/autocomplete.d.ts +1 -0
- package/dist-lib/ui/autocomplete.js +2 -0
- package/dist-lib/ui/avatar.d.ts +2 -0
- package/dist-lib/ui/avatar.js +50 -0
- package/dist-lib/ui/badge.d.ts +2 -0
- package/dist-lib/ui/badge.js +72 -0
- package/dist-lib/ui/breadcrumb.d.ts +1 -0
- package/dist-lib/ui/breadcrumb.js +2 -0
- package/dist-lib/ui/button.d.ts +2 -0
- package/dist-lib/ui/button.js +2 -0
- package/dist-lib/ui/calendar.d.ts +1 -0
- package/dist-lib/ui/calendar.js +2 -0
- package/dist-lib/ui/card.d.ts +1 -0
- package/dist-lib/ui/card.js +2 -0
- package/dist-lib/ui/checkbox-group.d.ts +1 -0
- package/dist-lib/ui/checkbox-group.js +2 -0
- package/dist-lib/ui/checkbox.d.ts +1 -0
- package/dist-lib/ui/checkbox.js +51 -0
- package/dist-lib/ui/collapsible.d.ts +1 -0
- package/dist-lib/ui/collapsible.js +26 -0
- package/dist-lib/ui/combobox.d.ts +1 -0
- package/dist-lib/ui/combobox.js +2 -0
- package/dist-lib/ui/command.d.ts +1 -0
- package/dist-lib/ui/command.js +125 -0
- package/dist-lib/ui/context-menu.d.ts +1 -0
- package/dist-lib/ui/context-menu.js +178 -0
- package/dist-lib/ui/dialog.d.ts +1 -0
- package/dist-lib/ui/dialog.js +2 -0
- package/dist-lib/ui/drawer.d.ts +1 -0
- package/dist-lib/ui/drawer.js +2 -0
- package/dist-lib/ui/empty.d.ts +1 -0
- package/dist-lib/ui/empty.js +2 -0
- package/dist-lib/ui/field.d.ts +1 -0
- package/dist-lib/ui/field.js +42 -0
- package/dist-lib/ui/fieldset.d.ts +1 -0
- package/dist-lib/ui/fieldset.js +2 -0
- package/dist-lib/ui/form.d.ts +1 -0
- package/dist-lib/ui/form.js +2 -0
- package/dist-lib/ui/frame.d.ts +1 -0
- package/dist-lib/ui/frame.js +47 -0
- package/dist-lib/ui/group.d.ts +1 -0
- package/dist-lib/ui/group.js +44 -0
- package/dist-lib/ui/index.d.ts +55 -0
- package/dist-lib/ui/index.js +497 -0
- package/dist-lib/ui/input-group.d.ts +1 -0
- package/dist-lib/ui/input-group.js +59 -0
- package/dist-lib/ui/input.d.ts +2 -0
- package/dist-lib/ui/input.js +2 -0
- package/dist-lib/ui/kbd.d.ts +1 -0
- package/dist-lib/ui/kbd.js +19 -0
- package/dist-lib/ui/label.d.ts +1 -0
- package/dist-lib/ui/label.js +2 -0
- package/dist-lib/ui/menu.d.ts +1 -0
- package/dist-lib/ui/menu.js +178 -0
- package/dist-lib/ui/meter.d.ts +1 -0
- package/dist-lib/ui/meter.js +2 -0
- package/dist-lib/ui/number-field.d.ts +1 -0
- package/dist-lib/ui/number-field.js +2 -0
- package/dist-lib/ui/otp-field.d.ts +1 -0
- package/dist-lib/ui/otp-field.js +36 -0
- package/dist-lib/ui/pagination.d.ts +1 -0
- package/dist-lib/ui/pagination.js +2 -0
- package/dist-lib/ui/popover.d.ts +1 -0
- package/dist-lib/ui/popover.js +2 -0
- package/dist-lib/ui/preview-card.d.ts +1 -0
- package/dist-lib/ui/preview-card.js +35 -0
- package/dist-lib/ui/progress.d.ts +1 -0
- package/dist-lib/ui/progress.js +2 -0
- package/dist-lib/ui/radio-group.d.ts +1 -0
- package/dist-lib/ui/radio-group.js +2 -0
- package/dist-lib/ui/scroll-area.d.ts +1 -0
- package/dist-lib/ui/scroll-area.js +2 -0
- package/dist-lib/ui/select.d.ts +2 -0
- package/dist-lib/ui/select.js +145 -0
- package/dist-lib/ui/separator.d.ts +2 -0
- package/dist-lib/ui/separator.js +3 -0
- package/dist-lib/ui/sheet.d.ts +1 -0
- package/dist-lib/ui/sheet.js +3 -0
- package/dist-lib/ui/sidebar.d.ts +1 -0
- package/dist-lib/ui/sidebar.js +2 -0
- package/dist-lib/ui/skeleton.d.ts +1 -0
- package/dist-lib/ui/skeleton.js +2 -0
- package/dist-lib/ui/slider.d.ts +1 -0
- package/dist-lib/ui/slider.js +2 -0
- package/dist-lib/ui/spinner.d.ts +1 -0
- package/dist-lib/ui/spinner.js +2 -0
- package/dist-lib/ui/switch.d.ts +1 -0
- package/dist-lib/ui/switch.js +17 -0
- package/dist-lib/ui/table.d.ts +1 -0
- package/dist-lib/ui/table.js +2 -0
- package/dist-lib/ui/tabs.d.ts +1 -0
- package/dist-lib/ui/tabs.js +2 -0
- package/dist-lib/ui/textarea.d.ts +2 -0
- package/dist-lib/ui/textarea.js +2 -0
- package/dist-lib/ui/toast.d.ts +1 -0
- package/dist-lib/ui/toast.js +2 -0
- package/dist-lib/ui/toggle-group.d.ts +1 -0
- package/dist-lib/ui/toggle-group.js +2 -0
- package/dist-lib/ui/toggle.d.ts +1 -0
- package/dist-lib/ui/toggle.js +3 -0
- package/dist-lib/ui/toolbar.d.ts +1 -0
- package/dist-lib/ui/toolbar.js +48 -0
- package/dist-lib/ui/tooltip.d.ts +1 -0
- package/dist-lib/ui/tooltip.js +2 -0
- package/dist-lib/utils-BO0qfoA6.js +61 -0
- package/package.json +285 -23
- package/dist-lib/components/atoms/_layout.d.ts +0 -4
- package/dist-lib/components/atoms/bubble/__tests__/bubble.test.d.ts +0 -1
- package/dist-lib/components/atoms/bubble/__tests__/reference.test.d.ts +0 -1
- package/dist-lib/components/atoms/text/__tests__/text.test.d.ts +0 -1
- package/dist-lib/components/atoms/text-selection/__tests__/click-popover.test.d.ts +0 -1
- package/dist-lib/components/atoms/text-selection/__tests__/text-selection.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/auth-flow-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/auth-state-atom.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/linked-accounts-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/onboarding-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/passkey-manager-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/passkey-sign-in-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/signup-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/auth/__tests__/update-password-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/chat/__tests__/ai-panel.test.d.ts +0 -1
- package/dist-lib/components/blocks/profile/__tests__/profile-card-block.test.d.ts +0 -1
- package/dist-lib/components/blocks/scaffold/__tests__/scaffold-atom.test.d.ts +0 -1
- package/dist-lib/components/blocks/scaffold/__tests__/scaffold.test.d.ts +0 -1
- package/dist-lib/components/blocks/shell/__tests__/shell-fit-atom.test.d.ts +0 -1
- package/dist-lib/components/blocks/shell/__tests__/shell-layout.test.d.ts +0 -1
- package/dist-lib/components/blocks/shell/__tests__/shell-metrics.test.d.ts +0 -1
- package/dist-lib/components/blocks/sidebar/__tests__/ai-sidebar-atom.test.d.ts +0 -1
- package/dist-lib/components/blocks/sidebar/__tests__/ai-sidebar.test.d.ts +0 -1
- package/dist-lib/components/blocks/sidebar/__tests__/use-ai-sidebar.test.d.ts +0 -1
- package/dist-lib/components/composed/__tests__/logo.test.d.ts +0 -1
- package/dist-lib/components/composed/action-bar/__tests__/action-bar.test.d.ts +0 -1
- package/dist-lib/components/composed/ai/__tests__/ai.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/attachment.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/beautiful-ui.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/chart.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/code-block.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/composer-attachments.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/composer.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/flowchart.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/glass-material.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/markdown.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/menu-command.test.d.ts +0 -1
- package/dist-lib/components/composed/chat/__tests__/recommendation.test.d.ts +0 -1
- package/dist-lib/components/composed/tree/__tests__/tree-atom.test.d.ts +0 -1
- package/dist-lib/components/composed/tree/__tests__/tree.test.d.ts +0 -1
- package/dist-lib/components/composed/tree/__tests__/use-tree.test.d.ts +0 -1
- package/dist-lib/components/composed/user/__tests__/message.test.d.ts +0 -1
- package/dist-lib/components/composed/verse/__tests__/verse.test.d.ts +0 -1
- package/dist-lib/components/docs/atoms-gallery.d.ts +0 -12
- package/dist-lib/components/docs/block-demo-stage.d.ts +0 -7
- package/dist-lib/components/docs/blocks-gallery.d.ts +0 -2
- package/dist-lib/components/docs/browser.d.ts +0 -10
- package/dist-lib/components/docs/code-block.d.ts +0 -4
- package/dist-lib/components/docs/components-gallery.d.ts +0 -2
- package/dist-lib/components/docs/demo-controls.d.ts +0 -21
- package/dist-lib/components/docs/hero.d.ts +0 -5
- package/dist-lib/components/docs/mermaid.d.ts +0 -3
- package/dist-lib/components/icons/__tests__/icons.test.d.ts +0 -1
- package/dist-lib/components/stories/attachment.story.d.ts +0 -11
- package/dist-lib/components/stories/auth-flow-block.story.d.ts +0 -2
- package/dist-lib/components/stories/avatar.story.d.ts +0 -6
- package/dist-lib/components/stories/base.story.d.ts +0 -6
- package/dist-lib/components/stories/bubble.story.d.ts +0 -6
- package/dist-lib/components/stories/button.story.d.ts +0 -9
- package/dist-lib/components/stories/card.story.d.ts +0 -8
- package/dist-lib/components/stories/chart.story.d.ts +0 -71
- package/dist-lib/components/stories/checkbox.story.d.ts +0 -6
- package/dist-lib/components/stories/code-auth-block.story.d.ts +0 -2
- package/dist-lib/components/stories/code-block.story.d.ts +0 -12
- package/dist-lib/components/stories/composed-password-input.story.d.ts +0 -6
- package/dist-lib/components/stories/context-cards.story.d.ts +0 -3
- package/dist-lib/components/stories/emoji-action-bar.story.d.ts +0 -3
- package/dist-lib/components/stories/field.story.d.ts +0 -6
- package/dist-lib/components/stories/file-icons.story.d.ts +0 -5
- package/dist-lib/components/stories/filter-table.story.d.ts +0 -21
- package/dist-lib/components/stories/flowchart.story.d.ts +0 -3
- package/dist-lib/components/stories/forgot-password-block.story.d.ts +0 -2
- package/dist-lib/components/stories/frame.story.d.ts +0 -8
- package/dist-lib/components/stories/index.d.ts +0 -54
- package/dist-lib/components/stories/input-group.story.d.ts +0 -6
- package/dist-lib/components/stories/input.story.d.ts +0 -8
- package/dist-lib/components/stories/insight-cards.story.d.ts +0 -74
- package/dist-lib/components/stories/label.story.d.ts +0 -8
- package/dist-lib/components/stories/linked-accounts-block.story.d.ts +0 -2
- package/dist-lib/components/stories/login-block.story.d.ts +0 -2
- package/dist-lib/components/stories/logo.story.d.ts +0 -3
- package/dist-lib/components/stories/markdown.story.d.ts +0 -7
- package/dist-lib/components/stories/menu-command.story.d.ts +0 -13
- package/dist-lib/components/stories/onboarding-block.story.d.ts +0 -2
- package/dist-lib/components/stories/otp-field.story.d.ts +0 -8
- package/dist-lib/components/stories/passkey-manager-block.story.d.ts +0 -2
- package/dist-lib/components/stories/passkey-sign-in-block.story.d.ts +0 -2
- package/dist-lib/components/stories/password-input.story.d.ts +0 -9
- package/dist-lib/components/stories/profile-card-block.story.d.ts +0 -6
- package/dist-lib/components/stories/recommendation-card.story.d.ts +0 -3
- package/dist-lib/components/stories/records-table.story.d.ts +0 -23
- package/dist-lib/components/stories/reference.story.d.ts +0 -9
- package/dist-lib/components/stories/research-answer.story.d.ts +0 -10
- package/dist-lib/components/stories/scaffold-root.story.d.ts +0 -6
- package/dist-lib/components/stories/separator.story.d.ts +0 -6
- package/dist-lib/components/stories/shell-layout.story.d.ts +0 -2
- package/dist-lib/components/stories/signup-block.story.d.ts +0 -2
- package/dist-lib/components/stories/social-providers.story.d.ts +0 -3
- package/dist-lib/components/stories/streaming-text.story.d.ts +0 -3
- package/dist-lib/components/stories/text.story.d.ts +0 -8
- package/dist-lib/components/stories/textarea.story.d.ts +0 -6
- package/dist-lib/components/stories/tree.story.d.ts +0 -4
- package/dist-lib/components/stories/update-password-block.story.d.ts +0 -2
- package/dist-lib/components/stories/user.story.d.ts +0 -8
- package/dist-lib/components/stories/verse.story.d.ts +0 -6
- package/dist-lib/components/ui/chat/__tests__/segmented-toggle.test.d.ts +0 -1
- package/dist-lib/index.js.map +0 -1
- package/dist-lib/lib/state/__tests__/sound.test.d.ts +0 -1
- package/dist-lib/lib/utils.test.d.ts +0 -1
- package/src/assets/css/base.css +0 -62
- package/src/assets/css/chat.css +0 -229
- package/src/assets/css/shadows.css +0 -157
- package/src/assets/css/theme.css +0 -321
- package/src/components/AGENTS.md +0 -0
- package/src/components/atoms/_layout.tsx +0 -9
- package/src/components/atoms/avatar/base.tsx +0 -70
- package/src/components/atoms/avatar/index.ts +0 -10
- package/src/components/atoms/avatar/types.ts +0 -24
- package/src/components/atoms/avatar/utils.ts +0 -54
- package/src/components/atoms/avatar/verified.tsx +0 -16
- package/src/components/atoms/background/index.ts +0 -8
- package/src/components/atoms/background/texture.tsx +0 -29
- package/src/components/atoms/background/type.ts +0 -10
- package/src/components/atoms/background/utils.ts +0 -13
- package/src/components/atoms/bubble/__tests__/bubble.test.tsx +0 -193
- package/src/components/atoms/bubble/__tests__/reference.test.tsx +0 -25
- package/src/components/atoms/bubble/actions.tsx +0 -28
- package/src/components/atoms/bubble/context.ts +0 -11
- package/src/components/atoms/bubble/default.tsx +0 -46
- package/src/components/atoms/bubble/header.tsx +0 -36
- package/src/components/atoms/bubble/index.ts +0 -37
- package/src/components/atoms/bubble/message.tsx +0 -32
- package/src/components/atoms/bubble/reactions.tsx +0 -191
- package/src/components/atoms/bubble/types.ts +0 -82
- package/src/components/atoms/bubble/utils.ts +0 -46
- package/src/components/atoms/chip.tsx +0 -61
- package/src/components/atoms/field.tsx +0 -43
- package/src/components/atoms/index.ts +0 -26
- package/src/components/atoms/loader.tsx +0 -33
- package/src/components/atoms/reference.tsx +0 -41
- package/src/components/atoms/text/__tests__/text.test.tsx +0 -47
- package/src/components/atoms/text/default.tsx +0 -59
- package/src/components/atoms/text/heading.tsx +0 -58
- package/src/components/atoms/text/index.ts +0 -28
- package/src/components/atoms/text/label.tsx +0 -16
- package/src/components/atoms/text/paragraph.tsx +0 -55
- package/src/components/atoms/text/span.tsx +0 -14
- package/src/components/atoms/text/types.ts +0 -41
- package/src/components/atoms/text/utils.ts +0 -16
- package/src/components/atoms/text-selection/__tests__/click-popover.test.tsx +0 -61
- package/src/components/atoms/text-selection/__tests__/text-selection.test.tsx +0 -90
- package/src/components/atoms/text-selection/click-popover.tsx +0 -62
- package/src/components/atoms/text-selection/index.ts +0 -30
- package/src/components/atoms/text-selection/popover.tsx +0 -103
- package/src/components/atoms/text-selection/selection-atom.ts +0 -51
- package/src/components/atoms/text-selection/selection.tsx +0 -56
- package/src/components/atoms/text-selection/types.ts +0 -125
- package/src/components/atoms/text-selection/use-selection.ts +0 -84
- package/src/components/atoms/types.ts +0 -46
- package/src/components/blocks/.gitkeep +0 -0
- package/src/components/blocks/auth/__tests__/auth-flow-block.test.tsx +0 -183
- package/src/components/blocks/auth/__tests__/auth-state-atom.test.tsx +0 -247
- package/src/components/blocks/auth/__tests__/linked-accounts-block.test.tsx +0 -128
- package/src/components/blocks/auth/__tests__/onboarding-block.test.tsx +0 -183
- package/src/components/blocks/auth/__tests__/passkey-manager-block.test.tsx +0 -131
- package/src/components/blocks/auth/__tests__/passkey-sign-in-block.test.tsx +0 -59
- package/src/components/blocks/auth/__tests__/signup-block.test.tsx +0 -176
- package/src/components/blocks/auth/__tests__/update-password-block.test.tsx +0 -95
- package/src/components/blocks/auth/auth-flow-atom.ts +0 -238
- package/src/components/blocks/auth/auth-flow-block.tsx +0 -211
- package/src/components/blocks/auth/auth-session-atom.ts +0 -82
- package/src/components/blocks/auth/auth-shell.tsx +0 -265
- package/src/components/blocks/auth/auth-state.ts +0 -40
- package/src/components/blocks/auth/code-auth-block.tsx +0 -176
- package/src/components/blocks/auth/forgot-password-block.tsx +0 -112
- package/src/components/blocks/auth/linked-accounts-block.tsx +0 -203
- package/src/components/blocks/auth/login-block.tsx +0 -217
- package/src/components/blocks/auth/onboarding/profile-step.tsx +0 -216
- package/src/components/blocks/auth/onboarding-block.tsx +0 -183
- package/src/components/blocks/auth/passkey-manager-block.tsx +0 -316
- package/src/components/blocks/auth/passkey-sign-in-block.tsx +0 -67
- package/src/components/blocks/auth/signup-block.tsx +0 -256
- package/src/components/blocks/auth/type.ts +0 -436
- package/src/components/blocks/auth/update-password-block.tsx +0 -139
- package/src/components/blocks/auth/use-auth-state.ts +0 -127
- package/src/components/blocks/chat/__tests__/ai-panel.test.tsx +0 -65
- package/src/components/blocks/chat/banners.tsx +0 -61
- package/src/components/blocks/chat/base.tsx +0 -84
- package/src/components/blocks/chat/header.tsx +0 -60
- package/src/components/blocks/chat/index.ts +0 -37
- package/src/components/blocks/chat/recommendation-stack.tsx +0 -41
- package/src/components/blocks/chat/shared.tsx +0 -27
- package/src/components/blocks/chat/suggested-prompts.tsx +0 -45
- package/src/components/blocks/chat/type.ts +0 -96
- package/src/components/blocks/chat/version-history-record.tsx +0 -37
- package/src/components/blocks/layout.ts +0 -35
- package/src/components/blocks/profile/__tests__/profile-card-block.test.tsx +0 -362
- package/src/components/blocks/profile/index.ts +0 -28
- package/src/components/blocks/profile/profile-card-atom.ts +0 -247
- package/src/components/blocks/profile/profile-card-block.tsx +0 -369
- package/src/components/blocks/profile/type.ts +0 -93
- package/src/components/blocks/profile/use-profile-card-state.ts +0 -67
- package/src/components/blocks/profile/use-profile-card.ts +0 -132
- package/src/components/blocks/scaffold/__tests__/scaffold-atom.test.tsx +0 -236
- package/src/components/blocks/scaffold/__tests__/scaffold.test.tsx +0 -524
- package/src/components/blocks/scaffold/constants.ts +0 -39
- package/src/components/blocks/scaffold/index.ts +0 -60
- package/src/components/blocks/scaffold/panel-close-button.tsx +0 -36
- package/src/components/blocks/scaffold/panel-menu-button.tsx +0 -221
- package/src/components/blocks/scaffold/scaffold-actions.tsx +0 -92
- package/src/components/blocks/scaffold/scaffold-atom.ts +0 -427
- package/src/components/blocks/scaffold/scaffold-canvas.tsx +0 -162
- package/src/components/blocks/scaffold/scaffold-context.ts +0 -20
- package/src/components/blocks/scaffold/scaffold-inspector.tsx +0 -137
- package/src/components/blocks/scaffold/scaffold-main.tsx +0 -28
- package/src/components/blocks/scaffold/scaffold-panel.tsx +0 -186
- package/src/components/blocks/scaffold/scaffold-root.tsx +0 -120
- package/src/components/blocks/scaffold/scaffold-sidebar.tsx +0 -31
- package/src/components/blocks/scaffold/scaffold-sub-panel.tsx +0 -122
- package/src/components/blocks/scaffold/scaffold-tab.tsx +0 -108
- package/src/components/blocks/scaffold/type.ts +0 -264
- package/src/components/blocks/scaffold/use-scaffold-state.ts +0 -85
- package/src/components/blocks/scaffold/use-scaffold.ts +0 -59
- package/src/components/blocks/scaffold/utils.ts +0 -112
- package/src/components/blocks/shell/__tests__/shell-fit-atom.test.tsx +0 -362
- package/src/components/blocks/shell/__tests__/shell-layout.test.tsx +0 -596
- package/src/components/blocks/shell/__tests__/shell-metrics.test.ts +0 -154
- package/src/components/blocks/shell/animated-panel-inset.tsx +0 -27
- package/src/components/blocks/shell/animated-panel-provider.tsx +0 -269
- package/src/components/blocks/shell/animated-panel-trigger.tsx +0 -51
- package/src/components/blocks/shell/animated-panel.tsx +0 -180
- package/src/components/blocks/shell/index.ts +0 -30
- package/src/components/blocks/shell/shell-fit-atom.ts +0 -246
- package/src/components/blocks/shell/shell-layout.tsx +0 -139
- package/src/components/blocks/shell/shell-metrics.ts +0 -133
- package/src/components/blocks/shell/shell-panel-atom.ts +0 -74
- package/src/components/blocks/shell/type.ts +0 -361
- package/src/components/blocks/shell/use-shell-fit-state.ts +0 -49
- package/src/components/blocks/shell/use-shell-fit.ts +0 -153
- package/src/components/blocks/shell/use-shell-panels.ts +0 -126
- package/src/components/blocks/shell/utils.ts +0 -187
- package/src/components/blocks/sidebar/__tests__/ai-sidebar-atom.test.tsx +0 -325
- package/src/components/blocks/sidebar/__tests__/ai-sidebar.test.tsx +0 -93
- package/src/components/blocks/sidebar/__tests__/use-ai-sidebar.test.tsx +0 -310
- package/src/components/blocks/sidebar/ai-sidebar-atom.ts +0 -698
- package/src/components/blocks/sidebar/ai-sidebar.tsx +0 -150
- package/src/components/blocks/sidebar/index.ts +0 -67
- package/src/components/blocks/sidebar/marquee-label.tsx +0 -59
- package/src/components/blocks/sidebar/sidebar-context.ts +0 -15
- package/src/components/blocks/sidebar/sidebar-icon.tsx +0 -14
- package/src/components/blocks/sidebar/sidebar-row.tsx +0 -378
- package/src/components/blocks/sidebar/type.ts +0 -294
- package/src/components/blocks/sidebar/use-ai-sidebar-state.ts +0 -123
- package/src/components/blocks/sidebar/use-ai-sidebar.ts +0 -619
- package/src/components/blocks/sidebar/utils.ts +0 -170
- package/src/components/blocks/types.ts +0 -6
- package/src/components/composed/.gitkeep +0 -0
- package/src/components/composed/__tests__/logo.test.tsx +0 -60
- package/src/components/composed/action-bar/__tests__/action-bar.test.tsx +0 -125
- package/src/components/composed/action-bar/action.tsx +0 -77
- package/src/components/composed/action-bar/emojis.tsx +0 -97
- package/src/components/composed/action-bar/index.ts +0 -24
- package/src/components/composed/action-bar/toolbar.tsx +0 -66
- package/src/components/composed/action-bar/types.ts +0 -58
- package/src/components/composed/action-bar/utils.ts +0 -140
- package/src/components/composed/ai/__tests__/ai.test.tsx +0 -66
- package/src/components/composed/ai/avatar.tsx +0 -19
- package/src/components/composed/ai/index.ts +0 -36
- package/src/components/composed/ai/message.tsx +0 -49
- package/src/components/composed/ai/research-answer.tsx +0 -157
- package/src/components/composed/ai/shared.tsx +0 -94
- package/src/components/composed/ai/streaming-text.tsx +0 -94
- package/src/components/composed/ai/suggested-prompt.tsx +0 -183
- package/src/components/composed/ai/types.ts +0 -81
- package/src/components/composed/chat/__tests__/attachment.test.tsx +0 -218
- package/src/components/composed/chat/__tests__/beautiful-ui.test.tsx +0 -57
- package/src/components/composed/chat/__tests__/chart.test.tsx +0 -316
- package/src/components/composed/chat/__tests__/code-block.test.tsx +0 -12
- package/src/components/composed/chat/__tests__/composer-attachments.test.tsx +0 -101
- package/src/components/composed/chat/__tests__/composer.test.tsx +0 -248
- package/src/components/composed/chat/__tests__/flowchart.test.tsx +0 -145
- package/src/components/composed/chat/__tests__/glass-material.test.tsx +0 -54
- package/src/components/composed/chat/__tests__/markdown.test.tsx +0 -25
- package/src/components/composed/chat/__tests__/menu-command.test.tsx +0 -35
- package/src/components/composed/chat/__tests__/recommendation.test.tsx +0 -43
- package/src/components/composed/chat/actions.tsx +0 -81
- package/src/components/composed/chat/attachment-file.ts +0 -82
- package/src/components/composed/chat/attachment.tsx +0 -498
- package/src/components/composed/chat/chart/chart-atom.ts +0 -55
- package/src/components/composed/chat/chart/chart-context.ts +0 -9
- package/src/components/composed/chat/chart/chart-legend.tsx +0 -75
- package/src/components/composed/chat/chart/chart-plot.tsx +0 -233
- package/src/components/composed/chat/chart/chart-root.tsx +0 -229
- package/src/components/composed/chat/chart/chart-tooltip.tsx +0 -74
- package/src/components/composed/chat/chart/constants.ts +0 -8
- package/src/components/composed/chat/chart/evilcharts/README.md +0 -8
- package/src/components/composed/chat/chart/evilcharts/echarts-area-chart.tsx +0 -2358
- package/src/components/composed/chat/chart/evilcharts/echarts-bar-chart.tsx +0 -2261
- package/src/components/composed/chat/chart/evilcharts/echarts-brush.tsx +0 -233
- package/src/components/composed/chat/chart/evilcharts/echarts-chart.tsx +0 -214
- package/src/components/composed/chat/chart/evilcharts/echarts-dot.tsx +0 -111
- package/src/components/composed/chat/chart/evilcharts/echarts-legend.tsx +0 -131
- package/src/components/composed/chat/chart/evilcharts/echarts-line-chart.tsx +0 -2112
- package/src/components/composed/chat/chart/evilcharts/echarts-pie-chart.tsx +0 -1235
- package/src/components/composed/chat/chart/evilcharts/echarts-tooltip.tsx +0 -125
- package/src/components/composed/chat/chart/index.ts +0 -13
- package/src/components/composed/chat/chart/type.ts +0 -88
- package/src/components/composed/chat/chart/use-chart-state.ts +0 -22
- package/src/components/composed/chat/chart/use-chart.ts +0 -70
- package/src/components/composed/chat/chart/utils.ts +0 -47
- package/src/components/composed/chat/chart.tsx +0 -3
- package/src/components/composed/chat/code-block.tsx +0 -123
- package/src/components/composed/chat/composer/add-button.tsx +0 -29
- package/src/components/composed/chat/composer/base.tsx +0 -573
- package/src/components/composed/chat/composer/command-menu.tsx +0 -47
- package/src/components/composed/chat/composer/hooks.ts +0 -29
- package/src/components/composed/chat/composer/index.ts +0 -19
- package/src/components/composed/chat/composer/send-button.tsx +0 -36
- package/src/components/composed/chat/composer/suggestions.tsx +0 -115
- package/src/components/composed/chat/composer/use-dictation.ts +0 -123
- package/src/components/composed/chat/composer/utils.ts +0 -74
- package/src/components/composed/chat/context-cards.tsx +0 -63
- package/src/components/composed/chat/filter-table.tsx +0 -119
- package/src/components/composed/chat/flowchart/chart-node.tsx +0 -162
- package/src/components/composed/chat/flowchart/connector.tsx +0 -32
- package/src/components/composed/chat/flowchart/constant.ts +0 -26
- package/src/components/composed/chat/flowchart/default.tsx +0 -230
- package/src/components/composed/chat/flowchart/edge-toolbar.tsx +0 -73
- package/src/components/composed/chat/flowchart/hooks.tsx +0 -347
- package/src/components/composed/chat/flowchart/index.ts +0 -14
- package/src/components/composed/chat/flowchart/step-body.tsx +0 -82
- package/src/components/composed/chat/flowchart/types.ts +0 -89
- package/src/components/composed/chat/flowchart/utils.ts +0 -78
- package/src/components/composed/chat/hint.tsx +0 -59
- package/src/components/composed/chat/index.ts +0 -92
- package/src/components/composed/chat/insight-cards.tsx +0 -199
- package/src/components/composed/chat/markdown-atom.ts +0 -15
- package/src/components/composed/chat/markdown.tsx +0 -213
- package/src/components/composed/chat/recommendation/checkbox.tsx +0 -122
- package/src/components/composed/chat/recommendation/constant.ts +0 -54
- package/src/components/composed/chat/recommendation/default.tsx +0 -25
- package/src/components/composed/chat/recommendation/group.tsx +0 -36
- package/src/components/composed/chat/recommendation/index.ts +0 -17
- package/src/components/composed/chat/recommendation/item.tsx +0 -215
- package/src/components/composed/chat/recommendation/types.ts +0 -76
- package/src/components/composed/chat/records-table.tsx +0 -130
- package/src/components/composed/chat/type.ts +0 -157
- package/src/components/composed/logo.tsx +0 -171
- package/src/components/composed/password-input.tsx +0 -179
- package/src/components/composed/reader/applied-mark.tsx +0 -32
- package/src/components/composed/reader/apply-toast.tsx +0 -49
- package/src/components/composed/reader/index.ts +0 -10
- package/src/components/composed/reader/selection-highlight.tsx +0 -26
- package/src/components/composed/reader/selection-popover.tsx +0 -149
- package/src/components/composed/reader/type.ts +0 -48
- package/src/components/composed/social-providers.tsx +0 -154
- package/src/components/composed/tree/CLAUDE.md +0 -145
- package/src/components/composed/tree/__tests__/tree-atom.test.tsx +0 -217
- package/src/components/composed/tree/__tests__/tree.test.tsx +0 -522
- package/src/components/composed/tree/__tests__/use-tree.test.tsx +0 -333
- package/src/components/composed/tree/constants.ts +0 -55
- package/src/components/composed/tree/index.ts +0 -51
- package/src/components/composed/tree/tree-atom.ts +0 -590
- package/src/components/composed/tree/tree-context.ts +0 -13
- package/src/components/composed/tree/tree-node.tsx +0 -496
- package/src/components/composed/tree/tree.tsx +0 -233
- package/src/components/composed/tree/type.ts +0 -322
- package/src/components/composed/tree/use-tree-dnd.ts +0 -179
- package/src/components/composed/tree/use-tree-state.ts +0 -105
- package/src/components/composed/tree/use-tree.ts +0 -311
- package/src/components/composed/tree/utils.ts +0 -172
- package/src/components/composed/types.ts +0 -9
- package/src/components/composed/user/__tests__/message.test.tsx +0 -79
- package/src/components/composed/user/index.ts +0 -14
- package/src/components/composed/user/info.tsx +0 -56
- package/src/components/composed/user/message.tsx +0 -36
- package/src/components/composed/user/pill.tsx +0 -20
- package/src/components/composed/user/types.ts +0 -47
- package/src/components/composed/user/utils.ts +0 -0
- package/src/components/composed/verse/__tests__/verse.test.tsx +0 -57
- package/src/components/composed/verse/index.ts +0 -2
- package/src/components/composed/verse/types.ts +0 -24
- package/src/components/composed/verse/verse.tsx +0 -100
- package/src/components/docs/atoms-gallery.tsx +0 -286
- package/src/components/docs/block-demo-stage.tsx +0 -38
- package/src/components/docs/blocks-gallery.tsx +0 -224
- package/src/components/docs/browser.tsx +0 -87
- package/src/components/docs/code-block.tsx +0 -10
- package/src/components/docs/components-gallery.tsx +0 -182
- package/src/components/docs/demo-controls.tsx +0 -142
- package/src/components/docs/hero.tsx +0 -197
- package/src/components/docs/mermaid.tsx +0 -55
- package/src/components/icons/README.md +0 -91
- package/src/components/icons/__tests__/icons.test.tsx +0 -58
- package/src/components/icons/file-badge-cfm.tsx +0 -615
- package/src/components/icons/file-badge-corpus.tsx +0 -604
- package/src/components/icons/file-badge-pdf.tsx +0 -570
- package/src/components/icons/file-badge-tei.tsx +0 -524
- package/src/components/icons/file-badge-tf.tsx +0 -620
- package/src/components/icons/file-badge-txt.tsx +0 -607
- package/src/components/icons/file-badge-xml.tsx +0 -576
- package/src/components/icons/file-wordmark-cfm.tsx +0 -424
- package/src/components/icons/file-wordmark-corpus.tsx +0 -454
- package/src/components/icons/file-wordmark-pdf.tsx +0 -470
- package/src/components/icons/file-wordmark-tei.tsx +0 -424
- package/src/components/icons/file-wordmark-tf.tsx +0 -406
- package/src/components/icons/file-wordmark-txt.tsx +0 -421
- package/src/components/icons/file-wordmark-xml.tsx +0 -424
- package/src/components/icons/index.ts +0 -16
- package/src/components/icons/types.ts +0 -8
- package/src/components/motion/index.ts +0 -0
- package/src/components/motion/overflow-actions.tsx +0 -376
- package/src/components/motion/popover-morph.tsx +0 -292
- package/src/components/motion/popover-position.ts +0 -86
- package/src/components/motion/shared-layout-bg.tsx +0 -151
- package/src/components/stories/attachment.story.tsx +0 -40
- package/src/components/stories/auth-flow-block.story.tsx +0 -17
- package/src/components/stories/avatar.story.tsx +0 -33
- package/src/components/stories/base.story.tsx +0 -70
- package/src/components/stories/bubble.story.tsx +0 -61
- package/src/components/stories/button.story.tsx +0 -32
- package/src/components/stories/card.story.tsx +0 -36
- package/src/components/stories/chart.story.tsx +0 -69
- package/src/components/stories/checkbox.story.tsx +0 -30
- package/src/components/stories/code-auth-block.story.tsx +0 -20
- package/src/components/stories/code-block.story.tsx +0 -35
- package/src/components/stories/composed-password-input.story.tsx +0 -41
- package/src/components/stories/context-cards.story.tsx +0 -30
- package/src/components/stories/emoji-action-bar.story.tsx +0 -20
- package/src/components/stories/field.story.tsx +0 -32
- package/src/components/stories/file-icons.story.tsx +0 -20
- package/src/components/stories/filter-table.story.tsx +0 -63
- package/src/components/stories/flowchart.story.tsx +0 -25
- package/src/components/stories/forgot-password-block.story.tsx +0 -14
- package/src/components/stories/frame.story.tsx +0 -32
- package/src/components/stories/index.ts +0 -57
- package/src/components/stories/input-group.story.tsx +0 -27
- package/src/components/stories/input.story.tsx +0 -42
- package/src/components/stories/insight-cards.story.tsx +0 -67
- package/src/components/stories/label.story.tsx +0 -32
- package/src/components/stories/linked-accounts-block.story.tsx +0 -23
- package/src/components/stories/login-block.story.tsx +0 -18
- package/src/components/stories/logo.story.tsx +0 -21
- package/src/components/stories/markdown.story.tsx +0 -31
- package/src/components/stories/menu-command.story.tsx +0 -43
- package/src/components/stories/onboarding-block.story.tsx +0 -14
- package/src/components/stories/otp-field.story.tsx +0 -35
- package/src/components/stories/passkey-manager-block.story.tsx +0 -18
- package/src/components/stories/passkey-sign-in-block.story.tsx +0 -15
- package/src/components/stories/password-input.story.tsx +0 -35
- package/src/components/stories/profile-card-block.story.tsx +0 -29
- package/src/components/stories/recommendation-card.story.tsx +0 -37
- package/src/components/stories/records-table.story.tsx +0 -52
- package/src/components/stories/reference.story.tsx +0 -33
- package/src/components/stories/research-answer.story.tsx +0 -32
- package/src/components/stories/scaffold-root.story.tsx +0 -47
- package/src/components/stories/separator.story.tsx +0 -37
- package/src/components/stories/shell-layout.story.tsx +0 -19
- package/src/components/stories/signup-block.story.tsx +0 -18
- package/src/components/stories/social-providers.story.tsx +0 -26
- package/src/components/stories/streaming-text.story.tsx +0 -25
- package/src/components/stories/text.story.tsx +0 -31
- package/src/components/stories/textarea.story.tsx +0 -34
- package/src/components/stories/tree.story.tsx +0 -31
- package/src/components/stories/update-password-block.story.tsx +0 -14
- package/src/components/stories/user.story.tsx +0 -32
- package/src/components/stories/verse.story.tsx +0 -42
- package/src/components/theme-provider.tsx +0 -230
- package/src/components/types.ts +0 -106
- package/src/components/ui/accordion.tsx +0 -68
- package/src/components/ui/alert-dialog.tsx +0 -167
- package/src/components/ui/alert.tsx +0 -84
- package/src/components/ui/autocomplete.tsx +0 -303
- package/src/components/ui/avatar.tsx +0 -109
- package/src/components/ui/badge.tsx +0 -101
- package/src/components/ui/button-group.tsx +0 -88
- package/src/components/ui/button.tsx +0 -192
- package/src/components/ui/card.tsx +0 -253
- package/src/components/ui/chat/__tests__/segmented-toggle.test.tsx +0 -27
- package/src/components/ui/chat/avatar-handle.tsx +0 -30
- package/src/components/ui/chat/badges.tsx +0 -85
- package/src/components/ui/chat/buttons.tsx +0 -94
- package/src/components/ui/chat/chips.tsx +0 -106
- package/src/components/ui/chat/dot.tsx +0 -81
- package/src/components/ui/chat/icon-button.tsx +0 -43
- package/src/components/ui/chat/icon-tile.tsx +0 -33
- package/src/components/ui/chat/index.ts +0 -12
- package/src/components/ui/chat/inline-source.tsx +0 -94
- package/src/components/ui/chat/segmented-toggle.tsx +0 -99
- package/src/components/ui/chat/tag.tsx +0 -61
- package/src/components/ui/chat/thumbnail.tsx +0 -31
- package/src/components/ui/chat/waveform.tsx +0 -30
- package/src/components/ui/checkbox.tsx +0 -83
- package/src/components/ui/collapsible.tsx +0 -42
- package/src/components/ui/command.tsx +0 -263
- package/src/components/ui/context-menu.tsx +0 -342
- package/src/components/ui/emoji-picker.tsx +0 -161
- package/src/components/ui/field.tsx +0 -89
- package/src/components/ui/frame.tsx +0 -87
- package/src/components/ui/glasscn/glass-button-group.tsx +0 -34
- package/src/components/ui/glasscn/glass-button.tsx +0 -25
- package/src/components/ui/glasscn/glass-container.tsx +0 -94
- package/src/components/ui/glasscn/glass-separator.tsx +0 -39
- package/src/components/ui/glasscn/liquid-glass.tsx +0 -59
- package/src/components/ui/group.tsx +0 -92
- package/src/components/ui/input-group.tsx +0 -105
- package/src/components/ui/input.tsx +0 -70
- package/src/components/ui/kbd.tsx +0 -32
- package/src/components/ui/label.tsx +0 -36
- package/src/components/ui/menu-command.tsx +0 -156
- package/src/components/ui/menu.tsx +0 -352
- package/src/components/ui/otp-field.tsx +0 -88
- package/src/components/ui/popover-glass.tsx +0 -158
- package/src/components/ui/popover.tsx +0 -120
- package/src/components/ui/preview-card.tsx +0 -61
- package/src/components/ui/scroll-area.tsx +0 -80
- package/src/components/ui/select.tsx +0 -257
- package/src/components/ui/separator.tsx +0 -23
- package/src/components/ui/sheet.tsx +0 -135
- package/src/components/ui/skeleton.tsx +0 -18
- package/src/components/ui/spinner.tsx +0 -17
- package/src/components/ui/switch.tsx +0 -30
- package/src/components/ui/tabs.tsx +0 -120
- package/src/components/ui/textarea.tsx +0 -58
- package/src/components/ui/toast.tsx +0 -325
- package/src/components/ui/toolbar.tsx +0 -92
- package/src/components/ui/tooltip.tsx +0 -67
- package/src/index.css +0 -10
- package/src/index.ts +0 -102
- package/src/lib/attachment-content.ts +0 -28
- package/src/lib/auth-accent.ts +0 -49
- package/src/lib/ease.ts +0 -90
- package/src/lib/glass-variants.ts +0 -22
- package/src/lib/hooks/use-hover-capable.ts +0 -23
- package/src/lib/hooks/use-mobile.ts +0 -21
- package/src/lib/keyed-atom.ts +0 -60
- package/src/lib/segmented-control.ts +0 -42
- package/src/lib/sound.ts +0 -39
- package/src/lib/specular.ts +0 -10
- package/src/lib/state/__tests__/sound.test.tsx +0 -53
- package/src/lib/state/exegia-provider.tsx +0 -83
- package/src/lib/state/index.ts +0 -4
- package/src/lib/state/store.ts +0 -19
- package/src/lib/use-motion-panel.ts +0 -78
- package/src/lib/utils.test.ts +0 -22
- package/src/lib/utils.ts +0 -100
- package/src/specular.js +0 -4
- /package/{src/components/composed/chat/composer → dist-lib}/BEAUTIFUL-UI-LICENSE.txt +0 -0
- /package/{src/components/composed/chat/chart/evilcharts/LICENSE → dist-lib/EVILCHARTS-LICENSE.txt} +0 -0
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import { useReducedMotion } from "motion/react"
|
|
4
|
-
import * as React from "react"
|
|
5
|
-
import { useAtomValue, useSetAtom } from "jotai"
|
|
6
|
-
|
|
7
|
-
import { cn } from "@/lib/utils"
|
|
8
|
-
import { SPRING_LAYOUT } from "@/lib/ease.ts"
|
|
9
|
-
import {
|
|
10
|
-
scaffoldPanelHiddenAtom,
|
|
11
|
-
setScaffoldPanelHoveredAtom,
|
|
12
|
-
toggleScaffoldPanelAtom,
|
|
13
|
-
} from "./scaffold-atom"
|
|
14
|
-
import { useScaffoldContext } from "./scaffold-context"
|
|
15
|
-
import type { IScaffoldTabProps } from "./type"
|
|
16
|
-
import { segmentVariants } from "./utils"
|
|
17
|
-
import { Button } from "@/components/ui/button"
|
|
18
|
-
import { LucideAppWindow, LucideEyeOff, LucideX } from "lucide-react"
|
|
19
|
-
import { GlassButtonGroup } from "@/components/ui/glasscn/glass-button-group.tsx"
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A panel's tab inside the action cluster: its label plus a close
|
|
23
|
-
* affordance. Render one per open panel as Actions children, keyed —
|
|
24
|
-
* closes animate out of the pill. Omit `onClose` on the last remaining
|
|
25
|
-
* panel's tab; the canvas keeps at least one panel open.
|
|
26
|
-
*
|
|
27
|
-
* With `panelId` (matching a `Scaffold.Panel`'s `id`), the tab also fronts
|
|
28
|
-
* that panel's visibility: a hidden panel dims its tab behind an eye-off
|
|
29
|
-
* icon, and pressing the label toggles the panel — showing one past
|
|
30
|
-
* capacity hides the least-recently-activated panel in its place.
|
|
31
|
-
*/
|
|
32
|
-
export function ScaffoldTab({
|
|
33
|
-
children,
|
|
34
|
-
panelId,
|
|
35
|
-
onClose,
|
|
36
|
-
closeLabel = "Close panel",
|
|
37
|
-
sound = true,
|
|
38
|
-
className,
|
|
39
|
-
...rest
|
|
40
|
-
}: IScaffoldTabProps): React.ReactElement {
|
|
41
|
-
const { scaffoldId } = useScaffoldContext()
|
|
42
|
-
// The per-panel atom keeps this tab still while its siblings toggle; the
|
|
43
|
-
// empty-key sentinel reads false for a tab without a `panelId`.
|
|
44
|
-
const hidden = useAtomValue(scaffoldPanelHiddenAtom(scaffoldId, panelId ?? ""))
|
|
45
|
-
const togglePanel = useSetAtom(toggleScaffoldPanelAtom(scaffoldId))
|
|
46
|
-
const setPanelHovered = useSetAtom(setScaffoldPanelHoveredAtom(scaffoldId))
|
|
47
|
-
const reduce = useReducedMotion()
|
|
48
|
-
const transition = reduce ? { duration: 0 } : SPRING_LAYOUT
|
|
49
|
-
|
|
50
|
-
// A tab closed mid-hover never fires pointer-leave — release the
|
|
51
|
-
// spotlight it holds so the canvas doesn't stay dimmed.
|
|
52
|
-
React.useEffect(() => {
|
|
53
|
-
if (panelId === undefined) return
|
|
54
|
-
return () => setPanelHovered(panelId, false)
|
|
55
|
-
}, [panelId, setPanelHovered])
|
|
56
|
-
|
|
57
|
-
return (
|
|
58
|
-
<GlassButtonGroup
|
|
59
|
-
layout
|
|
60
|
-
animate={reduce ? { opacity: 1, width: "auto" } : "visible"}
|
|
61
|
-
data-slot="scaffold-tab"
|
|
62
|
-
data-panel-hidden={hidden ? "" : undefined}
|
|
63
|
-
onPointerEnter={
|
|
64
|
-
panelId !== undefined ? () => setPanelHovered(panelId, true) : undefined
|
|
65
|
-
}
|
|
66
|
-
onPointerLeave={
|
|
67
|
-
panelId !== undefined
|
|
68
|
-
? () => setPanelHovered(panelId, false)
|
|
69
|
-
: undefined
|
|
70
|
-
}
|
|
71
|
-
exit={reduce ? { opacity: 0, width: 0 } : "exit"}
|
|
72
|
-
initial={reduce ? { opacity: 0, width: 0 } : "hidden"}
|
|
73
|
-
transition={transition}
|
|
74
|
-
variants={segmentVariants}
|
|
75
|
-
glassVariant="subtle"
|
|
76
|
-
className={cn("h-full rounded-sm", className)}
|
|
77
|
-
{...rest}
|
|
78
|
-
>
|
|
79
|
-
<Button
|
|
80
|
-
aria-pressed={panelId !== undefined ? !hidden : undefined}
|
|
81
|
-
onClick={panelId !== undefined ? () => togglePanel(panelId) : undefined}
|
|
82
|
-
size="sm"
|
|
83
|
-
sound={sound}
|
|
84
|
-
variant="ghost"
|
|
85
|
-
className={cn(
|
|
86
|
-
"gap-2.5 rounded-sm pl-2",
|
|
87
|
-
onClose && "pr-2",
|
|
88
|
-
hidden && "text-muted-foreground/70"
|
|
89
|
-
)}
|
|
90
|
-
>
|
|
91
|
-
{hidden ? <LucideEyeOff size={16} /> : <LucideAppWindow size={16} />}
|
|
92
|
-
{children}
|
|
93
|
-
</Button>
|
|
94
|
-
{onClose && (
|
|
95
|
-
<Button
|
|
96
|
-
aria-label={closeLabel}
|
|
97
|
-
onClick={onClose}
|
|
98
|
-
size="icon-sm"
|
|
99
|
-
sound={sound}
|
|
100
|
-
variant="ghost"
|
|
101
|
-
className="self-center rounded-none!"
|
|
102
|
-
>
|
|
103
|
-
<LucideX size={16} />
|
|
104
|
-
</Button>
|
|
105
|
-
)}
|
|
106
|
-
</GlassButtonGroup>
|
|
107
|
-
)
|
|
108
|
-
}
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
type ComponentProps,
|
|
3
|
-
type ReactElement,
|
|
4
|
-
type ReactNode,
|
|
5
|
-
} from "react"
|
|
6
|
-
|
|
7
|
-
/** Key of one scaffold's slice of the store. */
|
|
8
|
-
export type TScaffoldInstanceId = string
|
|
9
|
-
|
|
10
|
-
/** The identity every scaffold part shares through ScaffoldContext. State
|
|
11
|
-
* itself lives in the store — parts subscribe to the atoms they render from,
|
|
12
|
-
* so this value never changes identity while the scaffold is mounted. */
|
|
13
|
-
export interface IScaffoldContextValue {
|
|
14
|
-
scaffoldId: TScaffoldInstanceId
|
|
15
|
-
/** Drawer width in px — Actions reads it to slide out of the drawer's way. */
|
|
16
|
-
inspectorWidth: number
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface IScaffoldPanelLayout {
|
|
20
|
-
width?: number
|
|
21
|
-
secondarySize?: number
|
|
22
|
-
secondaryExpanded?: boolean
|
|
23
|
-
swapped?: boolean
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/** One scaffold's whole state, as `useScaffoldState` returns it. A component
|
|
27
|
-
* that watches one field should subscribe to that field's atom instead. */
|
|
28
|
-
export interface IScaffoldState {
|
|
29
|
-
inspectorWidth: number | null
|
|
30
|
-
panelLayouts: Record<string, IScaffoldPanelLayout>
|
|
31
|
-
/** Whether the inspector drawer is currently shown. */
|
|
32
|
-
inspectorOpen: boolean
|
|
33
|
-
/** How many panels currently fit side by side, from the measured canvas
|
|
34
|
-
* width at `SCAFFOLD_PANEL_MIN_WIDTH` per panel (1..`SCAFFOLD_PANEL_CAPACITY`). */
|
|
35
|
-
panelCapacity: number
|
|
36
|
-
/** Ids of id'd panels the scaffold is currently hiding — auto-hidden by
|
|
37
|
-
* capacity pressure or toggled away from a tab. */
|
|
38
|
-
hiddenPanelIds: readonly string[]
|
|
39
|
-
/** Id of the panel whose tab the pointer is resting on — the canvas
|
|
40
|
-
* spotlights it by fading every other id'd panel to 0.35 opacity. */
|
|
41
|
-
hoveredPanelId: string | null
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** Drive a scaffold by id from anywhere, as `useScaffoldActions` returns it. */
|
|
45
|
-
export interface IScaffoldStateActions {
|
|
46
|
-
resizePanel: (panelId: string, width: number) => void
|
|
47
|
-
resizeInspector: (width: number) => void
|
|
48
|
-
resizeSecondaryPanel: (panelId: string, height: number) => void
|
|
49
|
-
setSecondaryExpanded: (panelId: string, expanded: boolean) => void
|
|
50
|
-
setPanelSwapped: (panelId: string, swapped: boolean) => void
|
|
51
|
-
setInspectorOpen: (open: boolean) => void
|
|
52
|
-
toggleInspector: () => void
|
|
53
|
-
/** Show/hide an id'd panel. Showing past capacity auto-hides the
|
|
54
|
-
* least-recently-activated visible panel; the last visible one never hides. */
|
|
55
|
-
togglePanel: (panelId: string) => void
|
|
56
|
-
reset: () => void
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/** @internal Which props currently control the scaffold — write gates for
|
|
60
|
-
* the action atoms, so the store never overwrites a prop. */
|
|
61
|
-
export interface IScaffoldConfig {
|
|
62
|
-
controlsInspector: boolean
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/** @internal The mounted root's callbacks, published into the store so
|
|
66
|
-
* action atoms can report changes wherever they were fired from. */
|
|
67
|
-
export interface IScaffoldHandlers {
|
|
68
|
-
onInspectorOpenChange?: (open: boolean) => void
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** @internal Bookkeeping for responsive panel hiding.
|
|
72
|
-
* - `visibleOrder`: visible panel ids, least-recently-activated first — the
|
|
73
|
-
* front is what capacity pressure evicts next.
|
|
74
|
-
* - `autoHidden`: panels the scaffold hid because the canvas shrank, most
|
|
75
|
-
* recent last. They return on their own when room comes back.
|
|
76
|
-
* - `userHidden`: panels hidden by a tab press. They stay hidden until the
|
|
77
|
-
* tab is pressed again, however wide the canvas grows. */
|
|
78
|
-
export interface IScaffoldPanelVisibility {
|
|
79
|
-
visibleOrder: string[]
|
|
80
|
-
autoHidden: string[]
|
|
81
|
-
userHidden: string[]
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface IScaffoldRootProps extends ComponentProps<"div"> {
|
|
85
|
-
/** Names this scaffold's slice of the store, so `useScaffoldState` /
|
|
86
|
-
* `useScaffoldActions` can drive it by id and its state outlives the
|
|
87
|
-
* component. Omitted, the root keys off `useId` and drops its state on
|
|
88
|
-
* unmount. `useScaffold().providerProps` carries one. */
|
|
89
|
-
scaffoldId?: TScaffoldInstanceId
|
|
90
|
-
/** Controlled inspector state — pair with `onInspectorOpenChange`. The
|
|
91
|
-
* prop stays the source of truth: store writes are gated off, and actions
|
|
92
|
-
* report through the callback instead. */
|
|
93
|
-
inspectorOpen?: boolean
|
|
94
|
-
/** Initial inspector state when uncontrolled. Closed by default. */
|
|
95
|
-
defaultInspectorOpen?: boolean
|
|
96
|
-
onInspectorOpenChange?: (open: boolean) => void
|
|
97
|
-
/** Drawer width in px. Also drives how far Actions slides aside. */
|
|
98
|
-
inspectorWidth?: number
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export type TScaffoldSidebarProps = ComponentProps<"nav">
|
|
102
|
-
|
|
103
|
-
export type TScaffoldMainProps = ComponentProps<"div">
|
|
104
|
-
|
|
105
|
-
export type TScaffoldCanvasProps = ComponentProps<"div">
|
|
106
|
-
|
|
107
|
-
/** React's drag/animation DOM handlers collide with motion's gesture props
|
|
108
|
-
* on `motion.*` elements — strip them from pass-through HTML props. */
|
|
109
|
-
type TMotionSafe<T> = Omit<
|
|
110
|
-
T,
|
|
111
|
-
| "onDrag"
|
|
112
|
-
| "onDragStart"
|
|
113
|
-
| "onDragEnd"
|
|
114
|
-
| "onAnimationStart"
|
|
115
|
-
| "onAnimationEnd"
|
|
116
|
-
| "onAnimationIteration"
|
|
117
|
-
>
|
|
118
|
-
|
|
119
|
-
export interface IScaffoldActionsProps extends TMotionSafe<
|
|
120
|
-
Omit<ComponentProps<"div">, "children">
|
|
121
|
-
> {
|
|
122
|
-
/** Called when the Add segment is pressed. The segment renders only
|
|
123
|
-
* while this is present — omit it to hide Add, e.g. once the canvas
|
|
124
|
-
* holds `SCAFFOLD_PANEL_CAPACITY` panels. */
|
|
125
|
-
onAdd?: () => void
|
|
126
|
-
/** Label of the Add segment. */
|
|
127
|
-
addLabel?: ReactNode
|
|
128
|
-
/** Replaces the default add icon. */
|
|
129
|
-
addIcon?: ReactNode
|
|
130
|
-
/** The panel tabs (`Scaffold.Tab`, one per open panel) and any extra
|
|
131
|
-
* segments, rendered before Add. Key each tab — closes animate out. */
|
|
132
|
-
children?: ReactNode
|
|
133
|
-
/** Emit interaction-sound attributes (inert until an app binds cuelume). */
|
|
134
|
-
sound?: boolean
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export type TScaffoldPanelChild<
|
|
138
|
-
T extends IScaffoldSubPanelProps = IScaffoldSubPanelProps,
|
|
139
|
-
> = ReactElement<T, React.JSXElementConstructor<T>>
|
|
140
|
-
|
|
141
|
-
export interface IScaffoldPanelProps {
|
|
142
|
-
/** Stable id opting the panel into responsive hiding: the canvas hides
|
|
143
|
-
* id'd panels when it can't grant each `SCAFFOLD_PANEL_MIN_WIDTH`, and a
|
|
144
|
-
* `Scaffold.Tab` with the matching `panelId` reflects and toggles it.
|
|
145
|
-
* Omitted, the panel always renders. */
|
|
146
|
-
id?: string
|
|
147
|
-
/** The panel's content, rendered in a card with a drop shadow. */
|
|
148
|
-
children: ReactNode
|
|
149
|
-
/** The panel's content, rendered in a card with a drop shadow. */
|
|
150
|
-
SecondaryPanel?: TScaffoldPanelChild
|
|
151
|
-
/** Reveals the Swap action in the seam menu (needs `SecondaryPanel`).
|
|
152
|
-
* Swapping trades the two cards with a layout morph — flip the slot
|
|
153
|
-
* content here so each card carries its subject to its new home. */
|
|
154
|
-
onSwap?: () => void
|
|
155
|
-
/** Reveals the Close action in the seam menu — remove `SecondaryPanel`
|
|
156
|
-
* here; the strip and the menu leave together. */
|
|
157
|
-
onCloseSecondary?: () => void
|
|
158
|
-
/** Accessible name of the panel region. */
|
|
159
|
-
name?: string
|
|
160
|
-
/** Emit interaction-sound attributes on the floating buttons. */
|
|
161
|
-
sound?: boolean
|
|
162
|
-
/** Accessible name of the seam-menu toggle. */
|
|
163
|
-
swapLabel?: string
|
|
164
|
-
/** Extra class names for the panel's root element. */
|
|
165
|
-
className?: string
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export interface IScaffoldTabProps extends TMotionSafe<
|
|
169
|
-
Omit<ComponentProps<"div">, "children">
|
|
170
|
-
> {
|
|
171
|
-
/** The tab's label. */
|
|
172
|
-
children?: ReactNode
|
|
173
|
-
/** Id of the panel this tab fronts (`Scaffold.Panel`'s `id`). The tab
|
|
174
|
-
* then shows whether the panel is hidden and pressing its label toggles
|
|
175
|
-
* visibility — showing past capacity hides another panel in its place. */
|
|
176
|
-
panelId?: string
|
|
177
|
-
/** Renders the tab's close button. The button renders only while this
|
|
178
|
-
* is present — omit it to pin the tab, e.g. on the last remaining
|
|
179
|
-
* panel (the canvas keeps at least one open). */
|
|
180
|
-
onClose?: () => void
|
|
181
|
-
/** Accessible name of the close button. */
|
|
182
|
-
closeLabel?: string
|
|
183
|
-
/** Emit interaction-sound attributes on the close button. */
|
|
184
|
-
sound?: boolean
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
export type TSubPanelPosition = "bottom" | "top"
|
|
188
|
-
export type TSubPanelVariant = "card" | "subtle" | "inset"
|
|
189
|
-
|
|
190
|
-
export interface IScaffoldSubPanelProps extends TMotionSafe<
|
|
191
|
-
Omit<ComponentProps<"div">, "children">
|
|
192
|
-
> {
|
|
193
|
-
children?: ReactNode
|
|
194
|
-
/** Accessible name of the sub-panel region. */
|
|
195
|
-
name?: string
|
|
196
|
-
/** Whether this is the primary or secondary sub-panel. */
|
|
197
|
-
primary?: boolean
|
|
198
|
-
/** Whether this sub-panel holds the flexible slot. Defaults to `primary` —
|
|
199
|
-
* the panel flips it when the Expand action trades the slots. */
|
|
200
|
-
expanded?: boolean
|
|
201
|
-
/** Visual style of the sub-panel. */
|
|
202
|
-
variant?: TSubPanelVariant
|
|
203
|
-
/** Fixed width in px; omitted, the sub-panel flexes to share the canvas. */
|
|
204
|
-
width?: number
|
|
205
|
-
/** Emit interaction-sound attributes on the floating buttons. */
|
|
206
|
-
sound?: boolean
|
|
207
|
-
/** Extra class names for the sub-panel's root element. */
|
|
208
|
-
className?: string
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
export interface IScaffoldInspectorProps extends TMotionSafe<
|
|
212
|
-
Omit<ComponentProps<"aside">, "children">
|
|
213
|
-
> {
|
|
214
|
-
children?: ReactNode
|
|
215
|
-
/** Accessible name of the drawer region. */
|
|
216
|
-
name?: string
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
export interface IPanelFloatingButtonProps {
|
|
220
|
-
onClick?: () => void
|
|
221
|
-
/** Accessible name — the button is icon-only. */
|
|
222
|
-
label: string
|
|
223
|
-
sound?: boolean
|
|
224
|
-
className?: string
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
export interface IPanelMenuButtonProps extends IPanelFloatingButtonProps {
|
|
228
|
-
/** Called when the Expand action is pressed — the panel trades which
|
|
229
|
-
* sub-panel holds the flexible slot. */
|
|
230
|
-
onExpand?: () => void
|
|
231
|
-
/** Renders the Close action; called when it is pressed — the consumer
|
|
232
|
-
* removes the secondary strip. */
|
|
233
|
-
onCloseSecondary?: () => void
|
|
234
|
-
/** Whether the secondary strip currently holds the flexible slot —
|
|
235
|
-
* flips the Expand chevron between down and up. */
|
|
236
|
-
secondaryExpanded?: boolean
|
|
237
|
-
/** Whether the panel is swapped (column-reverse). Mirrors the Expand
|
|
238
|
-
* chevron so it keeps pointing at the sub-panel that grows next. */
|
|
239
|
-
swapped?: boolean
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
export interface IUseScaffoldOptions {
|
|
243
|
-
/** Names the scaffold's slice of the store. Omitted, the hook generates
|
|
244
|
-
* one and drops its state on unmount. */
|
|
245
|
-
scaffoldId?: TScaffoldInstanceId
|
|
246
|
-
/** Initial inspector state. Closed by default. */
|
|
247
|
-
defaultInspectorOpen?: boolean
|
|
248
|
-
/** Fires on every inspector open/close. */
|
|
249
|
-
onInspectorChange?: (open: boolean) => void
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
export interface IScaffoldControls {
|
|
253
|
-
/** The id the hook and the root share — hand it to `useScaffoldState` /
|
|
254
|
-
* `useScaffoldActions` to drive the scaffold from elsewhere. */
|
|
255
|
-
scaffoldId: TScaffoldInstanceId
|
|
256
|
-
inspectorOpen: boolean
|
|
257
|
-
setInspectorOpen: (open: boolean) => void
|
|
258
|
-
toggleInspector: () => void
|
|
259
|
-
/** Spread onto Scaffold.Root. */
|
|
260
|
-
providerProps: Pick<
|
|
261
|
-
IScaffoldRootProps,
|
|
262
|
-
"scaffoldId" | "defaultInspectorOpen" | "onInspectorOpenChange"
|
|
263
|
-
>
|
|
264
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import { useMemo } from "react"
|
|
4
|
-
import { useAtomValue, useSetAtom } from "jotai"
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
resetScaffoldAtom,
|
|
8
|
-
resizeScaffoldInspectorAtom,
|
|
9
|
-
updateScaffoldPanelLayoutAtom,
|
|
10
|
-
scaffoldStateAtom,
|
|
11
|
-
setScaffoldInspectorOpenAtom,
|
|
12
|
-
toggleScaffoldInspectorAtom,
|
|
13
|
-
toggleScaffoldPanelAtom,
|
|
14
|
-
} from "./scaffold-atom"
|
|
15
|
-
import type {
|
|
16
|
-
TScaffoldInstanceId,
|
|
17
|
-
IScaffoldState,
|
|
18
|
-
IScaffoldStateActions,
|
|
19
|
-
} from "./type"
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Read the scaffold registered under `scaffoldId` from anywhere below
|
|
23
|
-
* `ExegiaProvider` — no controller, no props, no provider of its own.
|
|
24
|
-
*
|
|
25
|
-
* ```tsx
|
|
26
|
-
* const { inspectorOpen, hiddenPanelIds } = useScaffoldState("workspace")
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* This returns the whole state object, so the caller re-renders on every
|
|
30
|
-
* change, hovers included. A component that reads one field should subscribe
|
|
31
|
-
* to that field's atom instead:
|
|
32
|
-
* `useAtomValue(scaffoldInspectorOpenAtom("workspace"))`.
|
|
33
|
-
*/
|
|
34
|
-
export function useScaffoldState(
|
|
35
|
-
scaffoldId: TScaffoldInstanceId
|
|
36
|
-
): IScaffoldState {
|
|
37
|
-
return useAtomValue(scaffoldStateAtom(scaffoldId))
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Drive the scaffold registered under `scaffoldId` from anywhere. Writes
|
|
42
|
-
* only — the caller never re-renders when the scaffold changes, so this is
|
|
43
|
-
* what a command palette or a keyboard shortcut should reach for.
|
|
44
|
-
*
|
|
45
|
-
* ```tsx
|
|
46
|
-
* const scaffold = useScaffoldActions("workspace")
|
|
47
|
-
* <Button onClick={scaffold.toggleInspector}>Inspect</Button>
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
export function useScaffoldActions(
|
|
51
|
-
scaffoldId: TScaffoldInstanceId
|
|
52
|
-
): IScaffoldStateActions {
|
|
53
|
-
const setInspectorOpen = useSetAtom(setScaffoldInspectorOpenAtom(scaffoldId))
|
|
54
|
-
const toggleInspector = useSetAtom(toggleScaffoldInspectorAtom(scaffoldId))
|
|
55
|
-
const togglePanel = useSetAtom(toggleScaffoldPanelAtom(scaffoldId))
|
|
56
|
-
const updatePanel = useSetAtom(updateScaffoldPanelLayoutAtom(scaffoldId))
|
|
57
|
-
const resizeInspector = useSetAtom(resizeScaffoldInspectorAtom(scaffoldId))
|
|
58
|
-
const reset = useSetAtom(resetScaffoldAtom(scaffoldId))
|
|
59
|
-
|
|
60
|
-
return useMemo(
|
|
61
|
-
() => ({
|
|
62
|
-
setInspectorOpen,
|
|
63
|
-
toggleInspector,
|
|
64
|
-
togglePanel,
|
|
65
|
-
reset,
|
|
66
|
-
resizeInspector,
|
|
67
|
-
resizePanel: (panelId: string, width: number) =>
|
|
68
|
-
updatePanel(panelId, { width }),
|
|
69
|
-
resizeSecondaryPanel: (panelId: string, secondarySize: number) =>
|
|
70
|
-
updatePanel(panelId, { secondarySize }),
|
|
71
|
-
setSecondaryExpanded: (panelId: string, secondaryExpanded: boolean) =>
|
|
72
|
-
updatePanel(panelId, { secondaryExpanded }),
|
|
73
|
-
setPanelSwapped: (panelId: string, swapped: boolean) =>
|
|
74
|
-
updatePanel(panelId, { swapped }),
|
|
75
|
-
}),
|
|
76
|
-
[
|
|
77
|
-
setInspectorOpen,
|
|
78
|
-
toggleInspector,
|
|
79
|
-
togglePanel,
|
|
80
|
-
reset,
|
|
81
|
-
resizeInspector,
|
|
82
|
-
updatePanel,
|
|
83
|
-
]
|
|
84
|
-
)
|
|
85
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import { useEffect, useId, useMemo } from "react"
|
|
4
|
-
import { useAtomValue, useSetAtom } from "jotai"
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
removeScaffoldInstance,
|
|
8
|
-
scaffoldInspectorOpenAtom,
|
|
9
|
-
setScaffoldInspectorOpenAtom,
|
|
10
|
-
toggleScaffoldInspectorAtom,
|
|
11
|
-
} from "./scaffold-atom"
|
|
12
|
-
import type { IScaffoldControls, IUseScaffoldOptions } from "./type"
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Owns the scaffold's inspector state for UI living outside the scaffold
|
|
16
|
-
* (title-bar buttons, command palette, shortcuts). Spread the returned
|
|
17
|
-
* `providerProps` onto `Scaffold.Root`; without this hook the root manages
|
|
18
|
-
* the same state internally via `defaultInspectorOpen`.
|
|
19
|
-
*
|
|
20
|
-
* The hook and the root meet in the store: `providerProps` carries a
|
|
21
|
-
* `scaffoldId`, both sides read and write that instance's atoms, and
|
|
22
|
-
* `useScaffoldState` / `useScaffoldActions` reach the same slice from
|
|
23
|
-
* anywhere else by id. Unnamed scaffolds key off `useId` and are dropped on
|
|
24
|
-
* unmount; an explicit `scaffoldId` outlives its component.
|
|
25
|
-
*/
|
|
26
|
-
export function useScaffold({
|
|
27
|
-
scaffoldId: scaffoldIdProp,
|
|
28
|
-
defaultInspectorOpen,
|
|
29
|
-
onInspectorChange,
|
|
30
|
-
}: IUseScaffoldOptions = {}): IScaffoldControls {
|
|
31
|
-
const generatedId = useId()
|
|
32
|
-
const scaffoldId = scaffoldIdProp ?? generatedId
|
|
33
|
-
|
|
34
|
-
const inspectorOpen = useAtomValue(scaffoldInspectorOpenAtom(scaffoldId))
|
|
35
|
-
const setInspectorOpen = useSetAtom(setScaffoldInspectorOpenAtom(scaffoldId))
|
|
36
|
-
const toggleInspector = useSetAtom(toggleScaffoldInspectorAtom(scaffoldId))
|
|
37
|
-
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
if (scaffoldIdProp !== undefined) return
|
|
40
|
-
return () => removeScaffoldInstance(scaffoldId)
|
|
41
|
-
}, [scaffoldIdProp, scaffoldId])
|
|
42
|
-
|
|
43
|
-
const providerProps = useMemo<IScaffoldControls["providerProps"]>(
|
|
44
|
-
() => ({
|
|
45
|
-
scaffoldId,
|
|
46
|
-
defaultInspectorOpen,
|
|
47
|
-
onInspectorOpenChange: onInspectorChange,
|
|
48
|
-
}),
|
|
49
|
-
[scaffoldId, defaultInspectorOpen, onInspectorChange]
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
return {
|
|
53
|
-
scaffoldId,
|
|
54
|
-
inspectorOpen,
|
|
55
|
-
setInspectorOpen,
|
|
56
|
-
toggleInspector,
|
|
57
|
-
providerProps,
|
|
58
|
-
}
|
|
59
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import type { Variants } from "motion/react"
|
|
2
|
-
import type { ClassNameValue } from "tailwind-merge"
|
|
3
|
-
import type {
|
|
4
|
-
IScaffoldPanelVisibility,
|
|
5
|
-
TSubPanelVariant,
|
|
6
|
-
} from "@/components/blocks/scaffold/type.ts"
|
|
7
|
-
import { EASE_OUT } from "@/lib/ease.ts"
|
|
8
|
-
import {
|
|
9
|
-
SCAFFOLD_CANVAS_GAP,
|
|
10
|
-
SCAFFOLD_PANEL_CAPACITY,
|
|
11
|
-
SCAFFOLD_PANEL_MIN_WIDTH,
|
|
12
|
-
} from "./constants"
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* How many panels fit on a canvas of `width` px, granting each
|
|
16
|
-
* `SCAFFOLD_PANEL_MIN_WIDTH` plus the gaps between them. Clamped to
|
|
17
|
-
* [1, SCAFFOLD_PANEL_CAPACITY]; an unmeasured canvas (`null`) fits the cap.
|
|
18
|
-
*/
|
|
19
|
-
export function getPanelCapacity(width: number | null): number {
|
|
20
|
-
if (width === null) return SCAFFOLD_PANEL_CAPACITY
|
|
21
|
-
const fits = Math.floor(
|
|
22
|
-
(width + SCAFFOLD_CANVAS_GAP) /
|
|
23
|
-
(SCAFFOLD_PANEL_MIN_WIDTH + SCAFFOLD_CANVAS_GAP)
|
|
24
|
-
)
|
|
25
|
-
return Math.max(1, Math.min(SCAFFOLD_PANEL_CAPACITY, fits))
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** @internal An untracked scaffold: nothing registered, nothing hidden. */
|
|
29
|
-
export const EMPTY_SCAFFOLD_VISIBILITY: IScaffoldPanelVisibility = {
|
|
30
|
-
visibleOrder: [],
|
|
31
|
-
autoHidden: [],
|
|
32
|
-
userHidden: [],
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @internal Fold the registered ids and current capacity into a settled
|
|
37
|
-
* visibility: prune departed panels, admit new ones, evict the
|
|
38
|
-
* least-recently-activated visible panels past capacity, and restore
|
|
39
|
-
* auto-hidden ones when room returns. Returns `prev` untouched when nothing
|
|
40
|
-
* changes, so callers can compare identities instead of contents.
|
|
41
|
-
*/
|
|
42
|
-
export function reconcileVisibility(
|
|
43
|
-
prev: IScaffoldPanelVisibility,
|
|
44
|
-
ids: readonly string[],
|
|
45
|
-
capacity: number
|
|
46
|
-
): IScaffoldPanelVisibility {
|
|
47
|
-
const known = new Set(ids)
|
|
48
|
-
const visibleOrder = prev.visibleOrder.filter((id) => known.has(id))
|
|
49
|
-
const autoHidden = prev.autoHidden.filter((id) => known.has(id))
|
|
50
|
-
const userHidden = prev.userHidden.filter((id) => known.has(id))
|
|
51
|
-
|
|
52
|
-
const tracked = new Set([...visibleOrder, ...autoHidden, ...userHidden])
|
|
53
|
-
for (const id of ids) if (!tracked.has(id)) visibleOrder.push(id)
|
|
54
|
-
|
|
55
|
-
while (visibleOrder.length > capacity && visibleOrder.length > 1) {
|
|
56
|
-
autoHidden.push(visibleOrder.shift() as string)
|
|
57
|
-
}
|
|
58
|
-
while (visibleOrder.length < capacity && autoHidden.length > 0) {
|
|
59
|
-
visibleOrder.push(autoHidden.pop() as string)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const unchanged =
|
|
63
|
-
visibleOrder.join(" ") === prev.visibleOrder.join(" ") &&
|
|
64
|
-
autoHidden.join(" ") === prev.autoHidden.join(" ") &&
|
|
65
|
-
userHidden.join(" ") === prev.userHidden.join(" ")
|
|
66
|
-
return unchanged ? prev : { visibleOrder, autoHidden, userHidden }
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Desktop backdrop the whole scaffold sits on — a soft warm-gray wash. */
|
|
70
|
-
export const scaffoldBackgroundClass: ClassNameValue =
|
|
71
|
-
"bg-linear-to-tr/increasing from-neutral-400 via-stone-200 to-neutral-300 dark:from-neutral-900 dark:via-neutral-950 dark:to-stone-950"
|
|
72
|
-
|
|
73
|
-
export const SCAFFOLD_BEZEL_CLASSES =
|
|
74
|
-
"bezel-lit-t-2 bezel-lit-blur-2 bezel-lit/57 bezel-dim-b-2 bezel-dim-blur-3 bezel-dim/11 dark:bezel-lit-blur-3 dark:bezel-lit/14 dark:bezel-dim/78"
|
|
75
|
-
|
|
76
|
-
/** Card surface shared by a panel's primary area and secondary strip. */
|
|
77
|
-
export const panelSurfaceClass: ClassNameValue =
|
|
78
|
-
`rounded-md bg-slate-100 dark:bg-neutral-900 ${SCAFFOLD_BEZEL_CLASSES}`
|
|
79
|
-
|
|
80
|
-
/** Floating icon button hovering over a panel (close, swap). */
|
|
81
|
-
export const floatingButtonClass: ClassNameValue =
|
|
82
|
-
"transition-[opacity,scale,box-shadow] duration-200 ease-smooth-out hover:text-neutral-900 hover:shadow-md active:scale-97 dark:bg-neutral-800/95 dark:text-neutral-300 dark:inset-ring-white/10 dark:hover:text-white motion-reduce:transition-none motion-reduce:active:scale-100 z-20"
|
|
83
|
-
|
|
84
|
-
/** Hidden until the pointer rests on the panel (always shown for touch and
|
|
85
|
-
* while focused) — the affordances stay quiet until the panel is engaged. */
|
|
86
|
-
export const revealOnPanelHoverClass: ClassNameValue =
|
|
87
|
-
"opacity-0 scale-95 group-hover/panel:opacity-100 group-hover/panel:scale-100 focus-visible:opacity-100 focus-visible:scale-100 pointer-coarse:opacity-100 pointer-coarse:scale-100"
|
|
88
|
-
|
|
89
|
-
/** Pill segment inside the actions cluster (Add, browse). */
|
|
90
|
-
export const actionSegmentClass: ClassNameValue =
|
|
91
|
-
"flex h-[30px] items-center rounded-full text-neutral-700 transition-[background-color,color,scale,box-shadow] duration-150 ease-smooth-out hover:bg-white hover:text-neutral-900 hover:shadow-xs active:scale-97 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:hover:text-white motion-reduce:transition-none motion-reduce:active:scale-100"
|
|
92
|
-
|
|
93
|
-
/** Pill segments (seam-menu actions, tabs, Add) blur/fade in place while
|
|
94
|
-
* the track morphs around them. The exit is a fast tween, not the layout
|
|
95
|
-
* spring — the track stays overflow-visible, so popped-out segments must be
|
|
96
|
-
* gone before the shrinking pill leaves them behind as a ghost. */
|
|
97
|
-
export const segmentVariants: Variants = {
|
|
98
|
-
hidden: { opacity: 0, filter: "blur(4px)" },
|
|
99
|
-
visible: { opacity: 1, filter: "blur(0px)" },
|
|
100
|
-
exit: {
|
|
101
|
-
opacity: 0,
|
|
102
|
-
filter: "blur(4px)",
|
|
103
|
-
transition: { duration: 0.18, ease: EASE_OUT },
|
|
104
|
-
},
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/** Map of sub-panel variants to their corresponding side. */
|
|
108
|
-
export const subPanelVariant: Record<TSubPanelVariant, ClassNameValue> = {
|
|
109
|
-
card: `bg-neutral-50 dark:bg-neutral-900 rounded-md ${SCAFFOLD_BEZEL_CLASSES}`,
|
|
110
|
-
subtle: "bg-neutral-100 dark:bg-neutral-800",
|
|
111
|
-
inset: "bg-neutral-200 dark:bg-neutral-700",
|
|
112
|
-
} as const
|