@vireo-ai/trellis-ui 0.1.61 → 0.1.62
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/THIRD_PARTY_NOTICES.md +9 -0
- package/package.json +14 -35
- package/packages/client/src/components/accordion/styles.css +21 -9
- package/packages/client/src/components/badge/styles.css +12 -0
- package/packages/client/src/components/button/styles.css +31 -5
- package/packages/client/src/components/card/styles.css +16 -0
- package/packages/client/src/components/checkbox/styles.css +29 -5
- package/packages/client/src/components/date-picker/styles.css +22 -17
- package/packages/client/src/components/field/styles.css +16 -16
- package/packages/client/src/components/input/styles.css +1 -0
- package/packages/client/src/components/keybinding/styles.css +9 -2
- package/packages/client/src/components/menu/styles.css +13 -0
- package/packages/client/src/components/panels/styles.css +12 -2
- package/packages/client/src/components/scroll-area/styles.css +169 -2
- package/packages/client/src/components/select/styles.css +28 -8
- package/packages/client/src/components/sidebar/styles.css +218 -0
- package/packages/client/src/components/slider/styles.css +57 -0
- package/packages/client/src/components/tabs/styles.css +26 -24
- package/packages/client/src/components/toast/styles.css +31 -0
- package/packages/client/src/directives/sortable.css +5 -0
- package/packages/client/src/runtime/drag-and-drop/resize-handle.css +2 -2
- package/packages/client/src/styles/components.css +8 -4
- package/packages/client/src/styles/fonts/fira-code/5.3.0/LICENSE +93 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/download.json +47 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-cyrillic-ext-wght-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-cyrillic-wght-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-greek-ext-wght-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-greek-wght-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-latin-ext-wght-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-latin-wght-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-symbols2-wght-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/font.css +62 -0
- package/packages/client/src/styles/fonts/fira-code/5.3.0/resource.json +82 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/LICENSE +93 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/download.json +47 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/font.css +62 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/inter-cyrillic-ext-standard-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/inter-cyrillic-standard-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/inter-greek-ext-standard-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/inter-greek-standard-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/inter-latin-ext-standard-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/inter-latin-standard-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/inter-vietnamese-standard-normal.woff2 +0 -0
- package/packages/client/src/styles/fonts/inter/5.3.0/resource.json +82 -0
- package/packages/client/src/styles/generated/theme-fonts.css +3 -3
- package/packages/client/src/styles/generated/theme-palette.css +1001 -634
- package/packages/client/src/styles/generated/theme-runtime.css +905 -580
- package/packages/client/src/styles/generated-sources.css +1 -1
- package/packages/client/src/styles/layout.css +88 -0
- package/packages/client/src/styles/recipes/action.css +4 -16
- package/packages/client/src/styles/recipes/disabled.css +8 -0
- package/packages/client/src/styles/recipes/option.css +0 -44
- package/packages/client/src/styles/recipes/selection.css +28 -39
- package/packages/client/src/styles/theme-support.css +19 -42
- package/packages/client/src/styles/typography.css +26 -0
- package/packages/client/types/assets/bridge.d.ts +1 -2
- package/packages/client/types/capabilities/collection.d.ts +7 -0
- package/packages/client/types/capabilities/collection.entry.generated.d.ts +3 -0
- package/packages/client/types/capabilities/shortcut.d.ts +4 -3
- package/packages/client/types/components/accordion/machine.d.ts +4 -4
- package/packages/client/types/components/app/contract.d.ts +5 -5
- package/packages/client/types/components/badge/contract.d.ts +1 -0
- package/packages/client/types/components/box/contract.d.ts +17 -12
- package/packages/client/types/components/box/index.d.ts +1 -1
- package/packages/client/types/components/button/contract.d.ts +3 -2
- package/packages/client/types/components/card/contract.d.ts +27 -16
- package/packages/client/types/components/checkbox/contract.d.ts +13 -13
- package/packages/client/types/components/common.d.ts +13 -11
- package/packages/client/types/components/container/contract.d.ts +4 -3
- package/packages/client/types/components/data-grid/contract.d.ts +3 -2
- package/packages/client/types/components/date-picker/contract.d.ts +2 -2
- package/packages/client/types/components/date-picker/machine.d.ts +11 -11
- package/packages/client/types/components/dropdown/contract.d.ts +1 -1
- package/packages/client/types/components/dropdown/machine.d.ts +5 -3
- package/packages/client/types/components/field/contract.d.ts +4 -4
- package/packages/client/types/components/file-upload/contract.d.ts +3 -3
- package/packages/client/types/components/file-upload/machine.d.ts +4 -4
- package/packages/client/types/components/flex/contract.d.ts +10 -8
- package/packages/client/types/components/frame/contract.d.ts +14 -11
- package/packages/client/types/components/grid/contract.d.ts +8 -7
- package/packages/client/types/components/image/contract.d.ts +1 -0
- package/packages/client/types/components/input/contract.d.ts +1 -0
- package/packages/client/types/components/input/machine.d.ts +2 -2
- package/packages/client/types/components/layout.d.ts +91 -35
- package/packages/client/types/components/menu/contract.d.ts +27 -10
- package/packages/client/types/components/modal/contract.d.ts +22 -5
- package/packages/client/types/components/panels/contract.d.ts +2 -2
- package/packages/client/types/components/panels/index.d.ts +2 -1
- package/packages/client/types/components/panels/machine.d.ts +9 -8
- package/packages/client/types/components/radio/contract.d.ts +8 -8
- package/packages/client/types/components/scroll-area/contract.d.ts +1 -20
- package/packages/client/types/components/section/contract.d.ts +4 -3
- package/packages/client/types/components/select/contract.d.ts +3 -3
- package/packages/client/types/components/select/machine.d.ts +13 -13
- package/packages/client/types/components/select/presentation.d.ts +1 -0
- package/packages/client/types/components/sidebar/contract.d.ts +26 -8
- package/packages/client/types/components/sidebar/groups.d.ts +4 -0
- package/packages/client/types/components/sidebar/index.d.ts +5 -4
- package/packages/client/types/components/slider/contract.d.ts +1 -0
- package/packages/client/types/components/slider/machine.d.ts +10 -5
- package/packages/client/types/components/stack/contract.d.ts +10 -8
- package/packages/client/types/components/switch/contract.d.ts +8 -8
- package/packages/client/types/components/table/contract.d.ts +6 -5
- package/packages/client/types/components/tabs/index.d.ts +2 -1
- package/packages/client/types/components/tabs/machine.d.ts +2 -2
- package/packages/client/types/components/textarea/contract.d.ts +1 -1
- package/packages/client/types/components/toast/machine.d.ts +2 -2
- package/packages/client/types/components/tooltip/contract.d.ts +13 -13
- package/packages/client/types/components/tooltip/machine.d.ts +3 -7
- package/packages/client/types/core.d.ts +2 -0
- package/packages/client/types/directives/anchor.d.ts +1 -0
- package/packages/client/types/directives/animate.d.ts +3 -0
- package/packages/client/types/directives/collection.d.ts +9 -0
- package/packages/client/types/directives/index.d.ts +2 -2
- package/packages/client/types/docs/transition-docs.d.ts +0 -2
- package/packages/client/types/motion/animate.d.ts +7 -2
- package/packages/client/types/motion/config.d.ts +118 -0
- package/packages/client/types/motion/feedback.d.ts +3 -0
- package/packages/client/types/motion/index.d.ts +8 -107
- package/packages/client/types/motion/layout.d.ts +25 -0
- package/packages/client/types/motion/lifecycle.d.ts +10 -0
- package/packages/client/types/motion/owned.d.ts +15 -4
- package/packages/client/types/motion/properties.d.ts +17 -0
- package/packages/client/types/motion/recipe.d.ts +8 -75
- package/packages/client/types/motion/reduced-motion.d.ts +7 -8
- package/packages/client/types/motion/registry.d.ts +37 -0
- package/packages/client/types/motion/resize-preview.d.ts +26 -0
- package/packages/client/types/motion/resize.d.ts +3 -1
- package/packages/client/types/motion/size.d.ts +7 -4
- package/packages/client/types/runtime/anchored-popover.d.ts +11 -2
- package/packages/client/types/runtime/collection-navigation.d.ts +12 -4
- package/packages/client/types/runtime/control-size.d.ts +4 -0
- package/packages/client/types/runtime/drag-and-drop/index.d.ts +10 -3
- package/packages/client/types/runtime/drag-and-drop/sortable/ghost.d.ts +2 -1
- package/packages/client/types/runtime/engine/fragment.d.ts +2 -1
- package/packages/client/types/runtime/engine/stream.d.ts +5 -9
- package/packages/client/types/runtime/focus.d.ts +3 -1
- package/packages/client/types/runtime/index.d.ts +1 -1
- package/packages/client/types/runtime/layout-participant.d.ts +10 -9
- package/packages/client/types/runtime/layout-task.d.ts +9 -0
- package/packages/client/types/runtime/morph-engine.d.ts +1 -0
- package/packages/client/types/runtime/option-data.d.ts +2 -1
- package/packages/client/types/runtime/preferences.d.ts +14 -0
- package/packages/client/types/runtime/scroll-area-schema.d.ts +23 -0
- package/packages/client/types/runtime/ui.d.ts +3 -5
- package/packages/client/types/runtime/virtualizer-schema.d.ts +3 -1
- package/packages/client/types/runtime/virtualizer-size.d.ts +7 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-B7apK0M-.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-B7apK0M-.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +984 -1132
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{anchor-B-CbpFFU.js → anchor-DXCLxWw-.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{anchor-B-CbpFFU.js.map → anchor-DXCLxWw-.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection-CSrnChwy.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection-CSrnChwy.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-DlgeSL0c.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{resizable-Ctqx_OoS.js.map → resizable-DlgeSL0c.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-Qa2EByIB.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{shortcut-D2NgvMgw.js.map → shortcut-Qa2EByIB.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{sortable-CbIOS4Lm.js → sortable-Do3a0LA9.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{sortable-CbIOS4Lm.js.map → sortable-Do3a0LA9.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-BqejlBjS.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-BqejlBjS.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-DPMSJ1AR.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-DPMSJ1AR.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BFvGIAs8.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BFvGIAs8.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bm1phXnj.js +5 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bm1phXnj.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-et2se66r.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-et2se66r.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-DnEHZCqy.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-DnEHZCqy.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/control-size-BcDu1m1N.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/control-size-BcDu1m1N.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-de7TruDm.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-de7TruDm.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DdiMUeJM.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DdiMUeJM.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-MzcgNRti.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-MzcgNRti.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-zFOeeob-.js +6 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{element-adapter-native-data-key-DrqJDAVH.js.map → element-adapter-native-data-key-zFOeeob-.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/feedback-DP_ydw-J.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/feedback-DP_ydw-J.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/floating-ui.dom-B05VsV_p.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/floating-ui.dom-B05VsV_p.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-pk_lz9sg.js → focus-BvBkrIcj.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-pk_lz9sg.js.map → focus-BvBkrIcj.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-DYfME-Rk.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-scope-BrYxsrhc.js.map → focus-scope-DYfME-Rk.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-DVphuQVV.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-DVphuQVV.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/frame-DsKHMcuL.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/frame-DsKHMcuL.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/hover-CqeHOHpJ.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/hover-CqeHOHpJ.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/identity-BMTQyLbq.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/identity-BMTQyLbq.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-mHPk9rxi.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-mHPk9rxi.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-task-B6P8q7BH.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-task-B6P8q7BH.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-wLgk8rAu.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-wLgk8rAu.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Do4tL7nc.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Do4tL7nc.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/option-data-Du9mqQPo.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/option-data-Du9mqQPo.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preferences-BZyZ-kK6.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preferences-BZyZ-kK6.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preload-helper-BZ1Pz5am.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/properties-D8pFWF8g.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/properties-D8pFWF8g.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-DRGrWivx.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-DRGrWivx.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-preview-hnUhGcMX.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-preview-hnUhGcMX.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-area-schema-DZgYyysJ.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-area-schema-DZgYyysJ.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/size-DAtboz8G.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/size-DAtboz8G.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-CQDZhwd_.js → styles-BvLCjUXV.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-BvLCjUXV.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CZ7fEQL2.js +4 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CZ7fEQL2.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-size-CTy2gO64.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-size-CTy2gO64.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DGWRKBdw.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DGWRKBdw.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-DA4Ii46-.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-DA4Ii46-.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-omt0I9Rh.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-omt0I9Rh.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-Dm3rQfQ_.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-Dm3rQfQ_.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-CtTM4Gf6.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-CtTM4Gf6.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-B4dcq4bn.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-B4dcq4bn.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-BEMZqp_I.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-BEMZqp_I.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-BeqlTp38.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-BeqlTp38.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DCluNmYW.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DCluNmYW.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-DkPKkwlt.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-DkPKkwlt.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-aSuqkRen.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-aSuqkRen.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-2UqpKKXs.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-2UqpKKXs.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-DjUHW-EE.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-DjUHW-EE.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-DYn805Mg.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-DYn805Mg.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-C4TtKM8_.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-C4TtKM8_.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-gAYZVe11.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-gAYZVe11.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-SBruA-pr.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-SBruA-pr.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-C3hjgwMw.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-C3hjgwMw.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-b0T3yohM.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-b0T3yohM.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-B08DRTzI.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-B08DRTzI.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CO-1hVz6.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CO-1hVz6.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-BlPgZVqW.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-BlPgZVqW.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-CDbYmlUb.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-CDbYmlUb.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-Dxht5Hhg.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-Dxht5Hhg.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-Ck_ZV7RN.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-Ck_ZV7RN.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-BfCjewp3.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-BfCjewp3.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-CX4J7tsN.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-CX4J7tsN.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +297 -441
- package/packages/theme-engine/README.md +70 -18
- package/packages/theme-engine/THEME_AUTHORING.md +34 -0
- package/packages/theme-engine/dist/trellis.js +544 -279
- package/packages/theme-engine/fonts/fira-code/5.3.0/LICENSE +93 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/download.json +47 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-cyrillic-ext-wght-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-cyrillic-wght-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-greek-ext-wght-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-greek-wght-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-latin-ext-wght-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-latin-wght-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-symbols2-wght-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/font.css +62 -0
- package/packages/theme-engine/fonts/fira-code/5.3.0/resource.json +82 -0
- package/packages/theme-engine/fonts/inter/5.3.0/LICENSE +93 -0
- package/packages/theme-engine/fonts/inter/5.3.0/download.json +47 -0
- package/packages/theme-engine/fonts/inter/5.3.0/font.css +62 -0
- package/packages/theme-engine/fonts/inter/5.3.0/inter-cyrillic-ext-standard-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/inter/5.3.0/inter-cyrillic-standard-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/inter/5.3.0/inter-greek-ext-standard-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/inter/5.3.0/inter-greek-standard-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/inter/5.3.0/inter-latin-ext-standard-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/inter/5.3.0/inter-latin-standard-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/inter/5.3.0/inter-vietnamese-standard-normal.woff2 +0 -0
- package/packages/theme-engine/fonts/inter/5.3.0/resource.json +82 -0
- package/packages/theme-engine/generated/knobs/v1/color-alpha.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/color-foundations.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/color-ink.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/color-lighting.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/color-normalization.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/color-ramps.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/composition.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/depth.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/edges.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/index.json +398 -85
- package/packages/theme-engine/generated/knobs/v1/manifest.json +16 -52
- package/packages/theme-engine/generated/knobs/v1/radii.json +50 -1
- package/packages/theme-engine/generated/knobs/v1/semantic-actions.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/semantic-disabled.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/semantic-disclosure.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/semantic-intents.json +856 -37
- package/packages/theme-engine/generated/knobs/v1/semantic-scrim.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/semantic-selection.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/semantic-structure.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/sizing-anatomy.json +4 -4
- package/packages/theme-engine/generated/knobs/v1/sizing-controls.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/sizing-measures.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/spacing.json +2 -2
- package/packages/theme-engine/generated/knobs/v1/substrates.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/surfaces.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/typography-anatomy.json +1 -1
- package/packages/theme-engine/generated/knobs/v1/typography-fonts.json +158 -40
- package/packages/theme-engine/generated/knobs/v1/typography-scale.json +1 -1
- package/packages/theme-engine/generated/schemas/theme-config-v1.json +57 -36
- package/packages/theme-engine/generated/schemas/theme-manifest-v1.json +10 -37
- package/packages/theme-engine/skills/create-trellis-theme/SKILL.md +4 -5
- package/packages/client/src/components/app/styles.css +0 -1
- package/packages/client/src/components/brand/styles.css +0 -8
- package/packages/client/src/styles/motion.css +0 -26
- package/packages/client/src/styles/static.css +0 -3
- package/packages/client/types/assets/full-runtime.generated.d.ts +0 -2
- package/packages/client/types/capabilities/motion.d.ts +0 -6
- package/packages/client/types/capabilities/motion.entry.generated.d.ts +0 -3
- package/packages/client/types/cdn.d.ts +0 -2
- package/packages/client/types/components/entry.generated.d.ts +0 -37
- package/packages/client/types/directives/bounds.d.ts +0 -4
- package/packages/client/types/directives/layout.d.ts +0 -3
- package/packages/client/types/index.d.ts +0 -8
- package/packages/client/types/motion/bounds.d.ts +0 -20
- package/packages/client/types/motion/controller.d.ts +0 -33
- package/packages/client/types/motion/flip.d.ts +0 -14
- package/packages/client/types/motion/plan.d.ts +0 -52
- package/packages/client/types/motion/stream.d.ts +0 -18
- package/packages/client/types/motion/targets.d.ts +0 -23
- package/packages/client/types/motion/view.d.ts +0 -27
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis-103fb43eb5e1.css +0 -14030
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +0 -14030
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min-584dec82495c.css +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-COxhbtRZ.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-Ctqx_OoS.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-D2NgvMgw.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-CE2UN4Qu.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-CE2UN4Qu.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js +0 -5
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-DrqJDAVH.js +0 -6
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BQNpmLZO.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BQNpmLZO.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BRaKxvab.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BRaKxvab.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_SxTqg5.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_SxTqg5.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EqHVGr1d.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EqHVGr1d.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-HqE8R7N1.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-HqE8R7N1.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-O0hEhk-2.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-O0hEhk-2.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oJwO9fIY.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oJwO9fIY.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-BKThFI4L.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-BKThFI4L.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-BrYxsrhc.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-9OT0mn7F.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-9OT0mn7F.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-RwlK04Cy.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-RwlK04Cy.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-CQDZhwd_.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js +0 -4
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DpoqsP_I.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-Dnf0aKac.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-BpFFtrfY.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-CCPYnOuT.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-BCkP5gtC.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-DaT6-YFL.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-Cc84envj.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-CtQbyblj.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DARtpJDT.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-CPO4XZkB.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-C-3lKsKm.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-BKEbDkKa.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-RIi2q1IT.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-MUHGUsup.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-DNAroAhk.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-DrGFMWGq.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-CyUCAbgG.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-BjLF548F.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-GpvEBW3K.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-OztnTlqr.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CZ7aiASg.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-G3G5d2Eo.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-bq7j1uwx.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-DkP0-rBO.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-OITEWczP.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-CkRX2qVO.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-Z4zMCScs.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis-ecb43dfd3b7b.js +0 -11
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +0 -11
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min-ecb43dfd3b7b.js +0 -11
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +0 -11
- package/packages/theme-engine/generated/knobs/v1/motion.json +0 -128
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-area-SBruA-pr.js","names":["clamp","clamp","isHTMLElement"],"sources":["../../../../../../../../../node_modules/.pnpm/motion-dom@14.3.0/node_modules/motion-dom/dist/es/resize/handle-element.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@14.3.0/node_modules/motion-dom/dist/es/resize/handle-window.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@14.3.0/node_modules/motion-dom/dist/es/resize/index.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/utils/can-use-native-timeline.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/utils/offset-to-range.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs","../../../../../../../../../node_modules/.pnpm/framer-motion@14.3.0/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs","../../../../../../../../client/src/components/scroll-area/machine.ts","../../../../../../../../client/src/components/scroll-area/styles.ts","../../../../../../../../client/src/components/scroll-area/index.ts","../../../../../../../../client/src/components/scroll-area/entry.generated.ts"],"sourcesContent":["import { isSVGElement } from '../utils/is-svg-element.mjs';\nimport { resolveElements } from '../utils/resolve-elements.mjs';\n\nconst resizeHandlers = new WeakMap();\nlet observer;\nconst getSize = (borderBoxAxis, svgAxis, htmlAxis) => (target, borderBoxSize) => {\n if (borderBoxSize && borderBoxSize[0]) {\n return borderBoxSize[0][(borderBoxAxis + \"Size\")];\n }\n else if (isSVGElement(target) && \"getBBox\" in target) {\n return target.getBBox()[svgAxis];\n }\n else {\n return target[htmlAxis];\n }\n};\nconst getWidth = /*@__PURE__*/ getSize(\"inline\", \"width\", \"offsetWidth\");\nconst getHeight = /*@__PURE__*/ getSize(\"block\", \"height\", \"offsetHeight\");\nfunction notifyTarget({ target, borderBoxSize }) {\n resizeHandlers.get(target)?.forEach((handler) => {\n handler(target, {\n get width() {\n return getWidth(target, borderBoxSize);\n },\n get height() {\n return getHeight(target, borderBoxSize);\n },\n });\n });\n}\nfunction notifyAll(entries) {\n entries.forEach(notifyTarget);\n}\nfunction createResizeObserver() {\n if (typeof ResizeObserver === \"undefined\")\n return;\n observer = new ResizeObserver(notifyAll);\n}\nfunction resizeElement(target, handler) {\n if (!observer)\n createResizeObserver();\n const elements = resolveElements(target);\n elements.forEach((element) => {\n let elementHandlers = resizeHandlers.get(element);\n if (!elementHandlers) {\n elementHandlers = new Set();\n resizeHandlers.set(element, elementHandlers);\n }\n elementHandlers.add(handler);\n observer?.observe(element);\n });\n return () => {\n elements.forEach((element) => {\n const elementHandlers = resizeHandlers.get(element);\n elementHandlers?.delete(handler);\n if (!elementHandlers?.size) {\n observer?.unobserve(element);\n }\n });\n };\n}\n\nexport { resizeElement };\n//# sourceMappingURL=handle-element.mjs.map\n","const windowCallbacks = new Set();\nlet windowResizeHandler;\nfunction createWindowResizeHandler() {\n windowResizeHandler = () => {\n const info = {\n get width() {\n return window.innerWidth;\n },\n get height() {\n return window.innerHeight;\n },\n };\n windowCallbacks.forEach((callback) => callback(info));\n };\n window.addEventListener(\"resize\", windowResizeHandler);\n}\nfunction resizeWindow(callback) {\n windowCallbacks.add(callback);\n if (!windowResizeHandler)\n createWindowResizeHandler();\n return () => {\n windowCallbacks.delete(callback);\n if (!windowCallbacks.size &&\n typeof windowResizeHandler === \"function\") {\n window.removeEventListener(\"resize\", windowResizeHandler);\n windowResizeHandler = undefined;\n }\n };\n}\n\nexport { resizeWindow };\n//# sourceMappingURL=handle-window.mjs.map\n","import { resizeElement } from './handle-element.mjs';\nimport { resizeWindow } from './handle-window.mjs';\n\nfunction resize(a, b) {\n return typeof a === \"function\" ? resizeWindow(a) : resizeElement(a, b);\n}\n\nexport { resize };\n//# sourceMappingURL=index.mjs.map\n","import { clamp, progress, velocityPerSecond } from 'motion-utils';\n\n/**\n * A time in milliseconds, beyond which we consider the scroll velocity to be 0.\n */\nconst maxElapsed = 50;\nconst createAxisInfo = () => ({\n current: 0,\n offset: [],\n progress: 0,\n scrollLength: 0,\n targetOffset: 0,\n targetLength: 0,\n containerLength: 0,\n velocity: 0,\n});\nconst createScrollInfo = () => ({\n time: 0,\n x: createAxisInfo(),\n y: createAxisInfo(),\n});\n/**\n * Also iterated with for...in as the list of axes.\n */\nconst axisKeys = {\n x: {\n length: \"Width\",\n position: \"Left\",\n },\n y: {\n length: \"Height\",\n position: \"Top\",\n },\n};\nconst styles = new WeakMap();\n/**\n * Whether an axis scrolls from its end, which browsers report as a scroll\n * position running from 0 to -scrollLength (#3340). This is read from style\n * rather than the sign of the scroll position, as elastic overscroll pushes\n * the position past 0 in either kind of axis (#3791).\n */\nfunction isReversed(element, axisName) {\n /**\n * The viewport takes its writing mode and direction from <body>, which\n * not every browser reflects in the root element's computed style. It\n * doesn't adopt the root element's flex layout.\n */\n const isRoot = element === document.scrollingElement;\n const source = (isRoot && document.body) || element;\n let style = styles.get(source);\n if (!style)\n styles.set(source, (style = getComputedStyle(source)));\n const { writingMode, flexDirection } = style;\n const isInline = (axisName === \"x\") !== /^[vs]/.test(writingMode);\n return ((isInline\n ? (style.direction === \"rtl\") !== (writingMode === \"sideways-lr\")\n : writingMode.endsWith(\"rl\")) !==\n /**\n * A reversed flex axis flips this. The main axis is the inline axis\n * unless flex-direction is a column.\n */\n (!isRoot &&\n style.display.includes(\"flex\") &&\n (isInline !== (flexDirection[0] === \"c\")\n ? flexDirection\n : style.flexWrap).endsWith(\"reverse\")));\n}\nfunction updateAxisInfo(element, axisName, info, time) {\n const axis = info[axisName];\n const { length, position } = axisKeys[axisName];\n const prev = axis.current;\n const prevTime = info.time;\n const scrollPosition = element[`scroll${position}`];\n axis.current = isReversed(element, axisName)\n ? -scrollPosition || 0 // Avoid -0\n : scrollPosition;\n axis.containerLength = element[`client${length}`];\n axis.targetLength = element[`scroll${length}`];\n axis.scrollLength = axis.targetLength - axis.containerLength;\n axis.offset.length = 0;\n axis.offset[0] = 0;\n axis.offset[1] = axis.scrollLength;\n axis.progress = clamp(0, 1, progress(0, axis.scrollLength, axis.current));\n const elapsed = time - prevTime;\n axis.velocity =\n elapsed > maxElapsed\n ? 0\n : velocityPerSecond(axis.current - prev, elapsed);\n}\n/**\n * Measures a scroll container. Runs once per container per frame; every\n * handler on that container derives its info from the result.\n */\nfunction updateScrollInfo(element, info, time) {\n for (const axis in axisKeys) {\n updateAxisInfo(element, axis, info, time);\n }\n info.time = time;\n}\n\nexport { axisKeys, createScrollInfo, updateScrollInfo };\n//# sourceMappingURL=info.mjs.map\n","const namedEdges = {\n start: 0,\n center: 0.5,\n end: 1,\n};\nfunction resolveEdge(edge, length, inset = 0) {\n let delta = 0;\n /**\n * If we have this edge defined as a preset, replace the definition\n * with the numerical value.\n */\n if (edge in namedEdges) {\n edge = namedEdges[edge];\n }\n /**\n * Handle unit values\n */\n if (typeof edge === \"string\") {\n const asNumber = parseFloat(edge);\n if (edge.endsWith(\"px\")) {\n delta = asNumber;\n }\n else if (edge.endsWith(\"%\")) {\n edge = asNumber / 100;\n }\n else if (edge.endsWith(\"vw\")) {\n delta = (asNumber / 100) * document.documentElement.clientWidth;\n }\n else if (edge.endsWith(\"vh\")) {\n delta = (asNumber / 100) * document.documentElement.clientHeight;\n }\n else {\n edge = asNumber;\n }\n }\n /**\n * If the edge is defined as a number, handle as a progress value.\n */\n if (typeof edge === \"number\") {\n delta = length * edge;\n }\n return inset + delta;\n}\n\nexport { namedEdges, resolveEdge };\n//# sourceMappingURL=edge.mjs.map\n","import { resolveEdge, namedEdges } from './edge.mjs';\n\nconst defaultOffset = [0, 0];\nfunction resolveOffset(offset, containerLength, targetLength, targetInset) {\n let offsetDefinition = Array.isArray(offset) ? offset : defaultOffset;\n let targetPoint = 0;\n let containerPoint = 0;\n if (typeof offset === \"number\") {\n /**\n * If we're provided offset: [0, 0.5, 1] then each number x should become\n * [x, x], so we default to the behaviour of mapping 0 => 0 of both target\n * and container etc.\n */\n offsetDefinition = [offset, offset];\n }\n else if (typeof offset === \"string\") {\n offset = offset.trim();\n if (offset.includes(\" \")) {\n offsetDefinition = offset.split(\" \");\n }\n else {\n /**\n * If we're provided a definition like \"100px\" then we want to apply\n * that only to the top of the target point, leaving the container at 0.\n * Whereas a named offset like \"end\" should be applied to both.\n */\n offsetDefinition = [offset, namedEdges[offset] ? offset : `0`];\n }\n }\n targetPoint = resolveEdge(offsetDefinition[0], targetLength, targetInset);\n containerPoint = resolveEdge(offsetDefinition[1], containerLength);\n return targetPoint - containerPoint;\n}\n\nexport { resolveOffset };\n//# sourceMappingURL=offset.mjs.map\n","const ScrollOffset = {\n All: [\n [0, 0],\n [1, 1],\n ],\n};\n\nexport { ScrollOffset };\n//# sourceMappingURL=presets.mjs.map\n","import { clamp, progress } from 'motion-utils';\nimport { resolveOffset } from './offset.mjs';\nimport { ScrollOffset } from './presets.mjs';\n\n/**\n * Resolved offsets map to evenly spaced progress values, so progress is\n * derived from the segment index rather than building an interpolator.\n */\nfunction offsetsToProgress(offsets, v) {\n const n = offsets.length - 1;\n if (n < 1)\n return 0;\n const reverse = offsets[0] > offsets[n];\n const at = (i) => offsets[reverse ? n - i : i];\n /**\n * Matches interpolate(), which checks for a zero-length first range\n * before reversing descending offsets.\n */\n if (offsets[0] === offsets[1] && v < at(0))\n return reverse ? 1 : 0;\n let i = 0;\n while (i < n - 1 && v >= at(i + 1))\n i++;\n const p = (i + progress(at(i), at(i + 1), v)) / n;\n return reverse ? 1 - p : p;\n}\nfunction resolveOffsets(info, options) {\n const { offset: offsetDefinition = ScrollOffset.All, axis = \"y\" } = options;\n const axisInfo = info[axis];\n /**\n * Reset the length of the resolved offset array rather than creating a new one.\n */\n axisInfo.offset.length = 0;\n /**\n * Populate the offset array by resolving the user's offset definition into\n * a list of pixel scroll offsets.\n */\n const numOffsets = offsetDefinition.length;\n for (let i = 0; i < numOffsets; i++) {\n axisInfo.offset[i] = resolveOffset(offsetDefinition[i], axisInfo.containerLength, axisInfo.targetLength, axisInfo.targetOffset);\n }\n axisInfo.progress = clamp(0, 1, offsetsToProgress(axisInfo.offset, axisInfo.current));\n}\n\nexport { resolveOffsets };\n//# sourceMappingURL=index.mjs.map\n","import { isHTMLElement } from 'motion-dom';\n\nfunction calcInset(element, container) {\n const inset = { x: 0, y: 0 };\n let current = element;\n while (current && current !== container) {\n if (isHTMLElement(current)) {\n inset.x += current.offsetLeft;\n inset.y += current.offsetTop;\n current = current.offsetParent;\n }\n else if (current.tagName === \"svg\") {\n /**\n * This isn't an ideal approach to measuring the offset of <svg /> tags.\n * It would be preferable, given they behave like HTMLElements in most ways\n * to use offsetLeft/Top. But these don't exist on <svg />. Likewise we\n * can't use .getBBox() like most SVG elements as these provide the offset\n * relative to the SVG itself, which for <svg /> is usually 0x0.\n */\n const svgBoundingBox = current.getBoundingClientRect();\n current = current.parentElement;\n const parentBoundingBox = current.getBoundingClientRect();\n inset.x += svgBoundingBox.left - parentBoundingBox.left;\n inset.y += svgBoundingBox.top - parentBoundingBox.top;\n }\n else if (current instanceof SVGGraphicsElement) {\n const { x, y } = current.getBBox();\n inset.x += x;\n inset.y += y;\n let svg = null;\n let parent = current.parentNode;\n while (!svg) {\n if (parent.tagName === \"svg\") {\n svg = parent;\n }\n parent = current.parentNode;\n }\n current = svg;\n }\n else {\n break;\n }\n }\n return inset;\n}\n\nexport { calcInset };\n//# sourceMappingURL=inset.mjs.map\n","import { warnOnce } from 'motion-utils';\nimport { axisKeys } from './info.mjs';\nimport { resolveOffsets } from './offsets/index.mjs';\nimport { calcInset } from './offsets/inset.mjs';\n\nfunction getTargetSize(target) {\n return \"getBBox\" in target && target.tagName !== \"svg\"\n ? target.getBBox()\n : { width: target.clientWidth, height: target.clientHeight };\n}\nfunction createOnScrollHandler(container, onScroll, info, options = {}) {\n const { target } = options;\n /**\n * In development mode ensure scroll containers aren't position: static as this makes\n * it difficult to measure their relative positions. The document scrolling element\n * is exempt: offsetParent measurements naturally resolve relative to the document.\n */\n if (process.env.NODE_ENV !== \"production\") {\n if (target &&\n target !== container &&\n container !== document.documentElement &&\n container !== document.scrollingElement &&\n container !== document.body) {\n warnOnce(getComputedStyle(container).position !== \"static\", \"Please ensure that the container has a non-static position, like 'relative', 'fixed', or 'absolute' to ensure scroll offset is calculated correctly.\");\n }\n }\n /**\n * Handlers without a target or offset are notified with the container's\n * shared info object, so they measure nothing themselves.\n */\n const needsOwnInfo = target || options.offset;\n return {\n measure: (containerInfo) => {\n if (!needsOwnInfo)\n return;\n info.time = containerInfo.time;\n for (const key in axisKeys) {\n const axis = key;\n const { offset } = info[axis];\n Object.assign(info[axis], containerInfo[axis]);\n info[axis].offset = offset;\n }\n if (target && target !== container) {\n const inset = calcInset(target, container);\n const size = getTargetSize(target);\n info.x.targetOffset = inset.x;\n info.y.targetOffset = inset.y;\n info.x.targetLength = size.width;\n info.y.targetLength = size.height;\n }\n resolveOffsets(info, options);\n },\n notify: (containerInfo) => onScroll(needsOwnInfo ? info : containerInfo),\n };\n}\n\nexport { createOnScrollHandler };\n//# sourceMappingURL=on-scroll-handler.mjs.map\n","import { resize, frame, cancelFrame, frameData } from 'motion-dom';\nimport { noop } from 'motion-utils';\nimport { createScrollInfo, updateScrollInfo } from './info.mjs';\nimport { createOnScrollHandler } from './on-scroll-handler.mjs';\n\nconst scrollListeners = new WeakMap();\nconst resizeListeners = new WeakMap();\nconst onScrollHandlers = new WeakMap();\nconst dimensionCheckProcesses = new WeakMap();\nconst getEventTarget = (element) => element === document.scrollingElement ? window : element;\nfunction scrollInfo(onScroll, { container = document.scrollingElement, trackContentSize = false, ...options } = {}) {\n if (!container)\n return noop;\n let containerHandlers = onScrollHandlers.get(container);\n /**\n * Get the onScroll handlers for this container.\n * If one isn't found, create a new one.\n */\n if (!containerHandlers) {\n containerHandlers = new Set();\n onScrollHandlers.set(container, containerHandlers);\n }\n /**\n * Create a new onScroll handler for the provided callback.\n */\n const info = createScrollInfo();\n const containerHandler = createOnScrollHandler(container, onScroll, info, options);\n containerHandlers.add(containerHandler);\n /**\n * Check if there's a scroll event listener for this container.\n * If not, create one.\n */\n if (!scrollListeners.has(container)) {\n const containerInfo = createScrollInfo();\n const measureAll = () => {\n updateScrollInfo(container, containerInfo, frameData.timestamp);\n for (const handler of containerHandlers) {\n handler.measure(containerInfo);\n }\n frame.preUpdate(notifyAll);\n };\n const notifyAll = () => {\n for (const handler of containerHandlers) {\n handler.notify(containerInfo);\n }\n };\n const listener = () => frame.read(measureAll);\n scrollListeners.set(container, listener);\n const target = getEventTarget(container);\n window.addEventListener(\"resize\", listener);\n if (container !== document.documentElement) {\n resizeListeners.set(container, resize(container, listener));\n }\n target.addEventListener(\"scroll\", listener);\n listener();\n }\n /**\n * Enable content size tracking if requested and not already enabled.\n */\n if (trackContentSize && !dimensionCheckProcesses.has(container)) {\n const listener = scrollListeners.get(container);\n // Store initial scroll dimensions (object is reused to avoid allocation)\n const size = {\n width: container.scrollWidth,\n height: container.scrollHeight,\n };\n // Add frame-based scroll dimension checking to detect content changes\n const checkScrollDimensions = () => {\n const newWidth = container.scrollWidth;\n const newHeight = container.scrollHeight;\n if (size.width !== newWidth || size.height !== newHeight) {\n listener();\n size.width = newWidth;\n size.height = newHeight;\n }\n };\n // Schedule with keepAlive=true to run every frame\n const dimensionCheckProcess = frame.read(checkScrollDimensions, true);\n dimensionCheckProcesses.set(container, dimensionCheckProcess);\n }\n const listener = scrollListeners.get(container);\n frame.read(listener, false, true);\n return () => {\n cancelFrame(listener);\n /**\n * Check if we even have any handlers for this container.\n */\n const currentHandlers = onScrollHandlers.get(container);\n if (!currentHandlers)\n return;\n currentHandlers.delete(containerHandler);\n if (currentHandlers.size)\n return;\n /**\n * If no more handlers, remove the scroll listener too. The handler\n * set goes with it, as a measure still queued from this listener\n * would otherwise notify handlers added by a later scrollInfo call.\n */\n onScrollHandlers.delete(container);\n const scrollListener = scrollListeners.get(container);\n scrollListeners.delete(container);\n if (scrollListener) {\n getEventTarget(container).removeEventListener(\"scroll\", scrollListener);\n resizeListeners.get(container)?.();\n window.removeEventListener(\"resize\", scrollListener);\n }\n // Clean up scroll dimension checking\n const dimensionCheckProcess = dimensionCheckProcesses.get(container);\n if (dimensionCheckProcess) {\n cancelFrame(dimensionCheckProcess);\n dimensionCheckProcesses.delete(container);\n }\n };\n}\n\nexport { scrollInfo };\n//# sourceMappingURL=track.mjs.map\n","import { supportsViewTimeline, supportsScrollTimeline } from 'motion-dom';\n\nfunction canUseNativeTimeline(target) {\n if (typeof window === \"undefined\")\n return false;\n return target ? supportsViewTimeline() : supportsScrollTimeline();\n}\n\nexport { canUseNativeTimeline };\n//# sourceMappingURL=can-use-native-timeline.mjs.map\n","const timelineCache = new Map();\n/**\n * Native timelines are only attached to WAAPI animations. Offsets are\n * applied to each animation as a range, so a timeline is shared by every\n * offset.\n */\nfunction getTimeline({ container, target, axis, }) {\n let containerCache = timelineCache.get(container);\n if (!containerCache) {\n containerCache = new Map();\n timelineCache.set(container, containerCache);\n }\n const targetKey = target ?? \"self\";\n let targetCache = containerCache.get(targetKey);\n if (!targetCache) {\n targetCache = {};\n containerCache.set(targetKey, targetCache);\n }\n return (targetCache[axis] || (targetCache[axis] = target\n ? new ViewTimeline({ subject: target, axis })\n : new ScrollTimeline({ source: container, axis })));\n}\n\nexport { getTimeline };\n//# sourceMappingURL=get-timeline.mjs.map\n","import { resolveOffset } from '../offsets/offset.mjs';\nimport { ScrollOffset } from '../offsets/presets.mjs';\n\n/**\n * Resolved offsets are linear in the target and container lengths, so\n * probing them gives [target progress, container progress, pixels].\n * vw/vh can resolve to 0px, so they're rejected up front.\n */\nconst toIntersection = (o) => {\n if (/v/u.test(o))\n return [];\n const px = resolveOffset(o, 0, 0, 0);\n return [resolveOffset(o, 0, 1, 0) - px, px - resolveOffset(o, 1, 0, 0), px];\n};\nconst toRange = ([t, c, px]) => !px &&\n (c === 0 || c === 1) &&\n `${c ? \"entry\" : \"exit\"}-crossing ${t * 100}%`;\n/**\n * Maps an offset to an equivalent ViewTimeline range. Returns undefined when\n * there isn't one, which signals the caller to fall back to JS-based scroll\n * tracking.\n */\nfunction offsetToViewTimelineRange(offset = ScrollOffset.All) {\n if (offset.length !== 2)\n return;\n const [start, end] = offset.map(toIntersection);\n const points = [toRange(start), toRange(end)];\n const a = end[0] - start[0];\n const b = start[1] - end[1];\n if (points[0] && points[1] && (a || b)) {\n return {\n points: points,\n a,\n b,\n cover: !start[0] && a === 1 && b === 1,\n };\n }\n}\n\nexport { offsetToViewTimelineRange };\n//# sourceMappingURL=offset-to-range.mjs.map\n","import { resize } from 'motion-dom';\nimport { scrollInfo } from './track.mjs';\nimport { canUseNativeTimeline } from './utils/can-use-native-timeline.mjs';\nimport { getTimeline } from './utils/get-timeline.mjs';\nimport { offsetToViewTimelineRange } from './utils/offset-to-range.mjs';\n\nfunction attachToAnimation(animation, options) {\n const { target, container, axis } = options;\n const range = target && offsetToViewTimelineRange(options.offset);\n /**\n * Use native timeline when:\n * - No target and no offset: ScrollTimeline\n * - Target with mappable offset: ViewTimeline with named range\n * - Otherwise: fall back to JS observe. A ScrollTimeline has no offset,\n * so page offsets are applied by the JS timeline.\n */\n const native = canUseNativeTimeline(target) && (target ? !!range : !options.offset);\n const animations = new Map();\n const observed = new Set();\n let stopObserving;\n let reverse = false;\n /**\n * When an offset's second point comes first, its range is swapped and\n * the animation played backwards. The range is set after the direction,\n * as that's what realigns a running animation with its timeline. Chrome\n * skips that realignment when the range changes in the frame the\n * animation starts, leaving it offset for good, so it's replayed too.\n */\n const apply = (direction, waapi) => {\n const [start, end] = range.points;\n waapi.effect.updateTiming({\n direction: reverse\n ? direction === \"normal\"\n ? \"reverse\"\n : \"alternate-reverse\"\n : direction,\n });\n Object.assign(waapi, {\n rangeStart: reverse ? end : start,\n rangeEnd: reverse ? start : end,\n });\n waapi.play();\n };\n const stops = [\n animation.attachTimeline({\n /**\n * Read only by WAAPI animations, so values driven from JS don't\n * create a native timeline they won't use.\n */\n get timeline() {\n return native ? getTimeline(options) : undefined;\n },\n onAttach: range &&\n ((waapi) => {\n const direction = waapi.effect.getTiming().direction;\n animations.set(waapi, direction);\n apply(direction, waapi);\n }),\n /**\n * Values driven from JS all track the offset with scrollInfo,\n * which measures once per frame for all of them.\n */\n observe: (valueAnimation) => {\n valueAnimation.pause();\n observed.add(valueAnimation);\n stopObserving || (stopObserving = scrollInfo((info) => {\n observed.forEach((observedAnimation) => {\n observedAnimation.time =\n observedAnimation.iterationDuration *\n info[axis].progress;\n });\n }, options));\n return () => observed.delete(valueAnimation);\n },\n }),\n ];\n if (native && range) {\n const { a, b } = range;\n const length = axis === \"y\" ? \"clientHeight\" : \"clientWidth\";\n /**\n * Offsets like All only run forwards when the target is longer than\n * the container, so their direction is remeasured on resize.\n */\n const update = () => {\n if (reverse !==\n (reverse = a * target[length] + b * container[length] < 0)) {\n animations.forEach(apply);\n }\n };\n update();\n if (a * b < 0) {\n stops.push(resize(update), resize([target, container], update));\n }\n }\n return () => {\n stops.forEach((stop) => stop());\n stopObserving?.();\n };\n}\n\nexport { attachToAnimation };\n//# sourceMappingURL=attach-animation.mjs.map\n","import { noop } from 'motion-utils';\nimport { attachToAnimation } from './attach-animation.mjs';\nimport { scrollInfo } from './track.mjs';\n\nfunction scroll(onScroll, { axis = \"y\", source, container = document.scrollingElement, ...options } = {}) {\n if (!container)\n return noop;\n const optionsWithDefaults = {\n axis,\n container: source || container,\n ...options,\n };\n return typeof onScroll === \"function\"\n ? scrollInfo((info) => onScroll(info[axis].progress, info), optionsWithDefaults)\n : attachToAnimation(onScroll, optionsWithDefaults);\n}\n\nexport { scroll };\n//# sourceMappingURL=index.mjs.map\n","import {\n createMachine,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport type {ScrollAreaProps} from './contract';\n\ntype ScrollAxis = 'x' | 'y';\n\ntype ScrollAreaContext = {\n overflow: {x: boolean; y: boolean};\n};\n\ntype ScrollAreaMachineEffects = {\n sync(scope: MachineScope<ScrollAreaContext, ScrollAreaProps>): void;\n};\n\ntype CreateScrollAreaMachineOptions = {\n props: ScrollAreaProps;\n context: ScrollAreaContext;\n effects: ScrollAreaMachineEffects;\n};\n\n\nconst axisIs = (axis: ScrollAxis) => ({event}: MachineScope<ScrollAreaContext, ScrollAreaProps>): boolean => (\n event.axis === axis\n);\n\nconst scrollAreaHooks = [] as const;\n\nconst createScrollAreaMachine = ({\n props,\n context,\n effects,\n}: CreateScrollAreaMachineOptions): Machine<ScrollAreaContext, ScrollAreaProps> => createMachine<ScrollAreaContext, ScrollAreaProps>({\n type: 'parallel',\n on: {\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n MEASURED: {reduce: 'setOverflow', effects: 'sync'},\n },\n states: {\n pointer: {\n initial: 'outside',\n states: {\n outside: {on: {POINTER_ENTERED: {target: 'inside', effects: 'sync'}}},\n inside: {tags: ['hovered'], on: {POINTER_LEFT: {target: 'outside', effects: 'sync'}}},\n },\n },\n focus: {\n initial: 'outside',\n states: {\n outside: {on: {FOCUS_ENTERED: {target: 'inside', effects: 'sync'}}},\n inside: {tags: ['focused'], on: {FOCUS_LEFT: {target: 'outside', effects: 'sync'}}},\n },\n },\n scrolling: {\n initial: 'idle',\n states: {\n idle: {on: {SCROLLED: {target: 'active', effects: 'sync'}}},\n active: {tags: ['scrolling'], on: {SCROLL_SETTLED: {target: 'idle', effects: 'sync'}}},\n },\n },\n dragging: {\n initial: 'idle',\n states: {\n idle: {\n on: {\n DRAG_STARTED: [\n {target: 'vertical', guard: axisIs('y'), effects: 'sync'},\n {target: 'horizontal', guard: axisIs('x'), effects: 'sync'},\n ],\n },\n },\n vertical: {tags: ['dragging', 'dragging-y'], on: {DRAG_ENDED: {target: 'idle', effects: 'sync'}}},\n horizontal: {tags: ['dragging', 'dragging-x'], on: {DRAG_ENDED: {target: 'idle', effects: 'sync'}}},\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n replaceProps: ({event}) => {\n const next = propsChangedEvent<ScrollAreaProps>(event);\n return next ? {props: next.props} : {};\n },\n setOverflow: ({context, event}) => ({\n context: {\n ...context,\n overflow: {\n x: event.overflowX === true,\n y: event.overflowY === true,\n },\n },\n }),\n },\n effects: {sync: effects.sync},\n});\n\nexport {createScrollAreaMachine, scrollAreaHooks};\nexport type {\n CreateScrollAreaMachineOptions,\n ScrollAreaContext,\n ScrollAreaMachineEffects,\n ScrollAxis,\n};\n","import {defineStyles} from '../../runtime';\n\nconst scrollAreaStyles = defineStyles({definition: {\n component: 'ui.scroll-area',\n parts: {\n root: {\n base: [\n 'relative min-w-0 overflow-hidden text-surface-ink',\n 'data-disabled:opacity-60',\n ],\n variants: {\n fill: {\n true: 'flex min-h-0 flex-1 flex-col',\n false: '',\n },\n },\n defaults: {\n fill: false,\n },\n },\n viewport: {\n base: [\n 'min-h-0 min-w-0 outline-none',\n ],\n variants: {\n orientation: {\n vertical: 'h-full w-full overflow-x-hidden overflow-y-auto',\n horizontal: 'h-full w-full overflow-x-auto overflow-y-hidden',\n both: 'size-full overflow-auto',\n },\n fill: {\n true: 'flex-1',\n false: '',\n },\n },\n defaults: {\n orientation: 'vertical',\n fill: false,\n },\n },\n content: {\n base: 'min-w-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: 'w-max min-w-full',\n both: 'min-w-full',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n scrollbar: {\n base: [\n 'pointer-events-none absolute z-10 rounded-scrollbar-thumb opacity-0',\n 'data-visible:pointer-events-auto data-visible:opacity-100 data-disabled:pointer-events-none',\n ],\n variants: {\n orientation: {\n vertical: 'bottom-scrollbar-inset end-0 top-scrollbar-inset w-[var(--ui-scrollbar-track-size)]',\n horizontal: 'bottom-0 h-[var(--ui-scrollbar-track-size)]',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n thumb: {\n base: [\n 'absolute',\n ],\n variants: {\n orientation: {\n vertical: 'left-0 top-0 w-full',\n horizontal: 'left-0 top-0 h-full',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n corner: {\n base: [\n 'pointer-events-none absolute bottom-scrollbar-inset end-scrollbar-inset z-10 size-scrollbar rounded-scrollbar-thumb',\n 'bg-transparent opacity-0',\n 'data-visible:opacity-100',\n ],\n },\n },\n}});\n\nexport {scrollAreaStyles};\n\nexport const styles = [scrollAreaStyles] as const;\n","import {motionValue, scroll, styleEffect} from 'motion';\nimport {animateProperties} from '@client/motion/properties';\nimport {stopOwnedMotion} from '@client/motion/owned';\nimport type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n mergeBindings,\n type BindingObject,\n type MachineSnapshot,\n resolveStyle,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {createLayoutTask} from '@client/runtime/layout-task';\nimport {addListener, clamp, isRtl, setAttribute, setPresence} from '@client/utils';\nimport {scrollAreaSchema, type ScrollAreaOrientation, type ScrollAreaProps} from './contract';\nimport {\n createScrollAreaMachine,\n type ScrollAreaContext,\n scrollAreaHooks,\n type ScrollAxis,\n} from './machine';\nimport {scrollAreaStyles} from './styles';\n\ntype DragState = {\n axis: ScrollAxis;\n pointerId: number;\n startPointer: number;\n startScroll: number;\n trackLength: number;\n thumbLength: number;\n maxScroll: number;\n horizontalDirection: 1 | -1;\n};\n\ntype ScrollAreaElements = {\n root: HTMLElement;\n viewport: HTMLElement;\n content: HTMLElement | null;\n verticalScrollbar: HTMLElement | null;\n horizontalScrollbar: HTMLElement | null;\n verticalThumb: HTMLElement | null;\n horizontalThumb: HTMLElement | null;\n corner: HTMLElement | null;\n};\n\ntype AxisGeometry = {\n trackLength: number;\n thumbLength: number;\n maxOffset: number;\n maxScroll: number;\n};\n\n/**\n * Public Alpine API for `ui.scroll-area`.\n *\n * @public\n */\ninterface UiScrollAreaApi {\n /** Whether content currently overflows the horizontal axis. */\n readonly overflowX: boolean;\n /** Whether content currently overflows the vertical axis. */\n readonly overflowY: boolean;\n /** Whether the native viewport is in an active scroll session. */\n readonly isScrolling: boolean;\n /** Whether a custom scrollbar thumb is being dragged. */\n readonly isDragging: boolean;\n}\n\ntype ScrollAreaData = AlpineMachine<ScrollAreaContext, ScrollAreaProps, typeof scrollAreaHooks> & UiScrollAreaApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n viewport(el: HTMLElement): BindingObject;\n scrollbar(el: HTMLElement): BindingObject;\n thumb(el: HTMLElement): BindingObject;\n corner(el: HTMLElement): BindingObject;\n};\n\nconst MIN_THUMB_SIZE = 18;\nconst SCROLL_CHROME_FADE_DELAY = 1000;\n\nconst includesAxis = (orientation: ScrollAreaOrientation, axis: ScrollAxis): boolean => (\n orientation === 'both' || (orientation === 'horizontal' && axis === 'x') || (orientation === 'vertical' && axis === 'y')\n);\n\n// Current browsers expose negative scrollLeft in RTL; the thumb uses its distance from the start.\nconst horizontalScrollPosition = (viewport: HTMLElement): number => Math.abs(viewport.scrollLeft);\n\nconst axisFromOrientation = (el: HTMLElement): ScrollAxis => (\n el.dataset.orientation === 'horizontal' ? 'x' : 'y'\n);\n\nconst isHTMLElement = (value: Element | null): value is HTMLElement => value instanceof HTMLElement;\n\nconst queryDirectPart = (root: HTMLElement, selector: string): HTMLElement | null => {\n const el = root.querySelector(`:scope > ${selector}`);\n return isHTMLElement(el) ? el : null;\n};\n\nconst UiScrollArea = (): TrellisAlpineComponent<ScrollAreaData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let cleanup: CleanupManager;\n let chromeCleanup: CleanupManager | null = null;\n let primaryPointer: MediaQueryList;\n let resizeObserver: ResizeObserver | null = null;\n let mutationObserver: MutationObserver | null = null;\n let fadeSize = 48;\n const fadeValues = {top: motionValue(1), bottom: motionValue(1), start: motionValue(1), end: motionValue(1)};\n const positions = new WeakMap<HTMLElement, ReturnType<typeof motionValue<string>>>();\n const visibleStates = new WeakMap<HTMLElement, boolean>();\n let fadeTimer = 0;\n let dragging: DragState | null = null;\n let verticalGeometry: AxisGeometry | null = null;\n let horizontalGeometry: AxisGeometry | null = null;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Scroll Area has not been initialized.');\n return rootEl;\n };\n const currentSnapshot = (): MachineSnapshot<ScrollAreaContext, ScrollAreaProps> => (\n bridge.getCommittedSnapshot()\n );\n const currentProps = (): Readonly<ScrollAreaProps> => currentSnapshot().props;\n const hasTag = (tag: string): boolean => currentSnapshot().tags.includes(tag);\n const elements = (): ScrollAreaElements => {\n const rootElement = root();\n const viewport = queryDirectPart(rootElement, '[data-ui-scroll-area-viewport]') ?? rootElement;\n return {\n root: rootElement,\n viewport,\n content: queryDirectPart(viewport, '[data-ui-scroll-area-content]'),\n verticalScrollbar: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"vertical\"]'),\n horizontalScrollbar: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"horizontal\"]'),\n verticalThumb: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"vertical\"] > [data-ui-scroll-area-thumb][data-orientation=\"vertical\"]'),\n horizontalThumb: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"horizontal\"] > [data-ui-scroll-area-thumb][data-orientation=\"horizontal\"]'),\n corner: queryDirectPart(rootElement, '[data-ui-scroll-area-corner]'),\n };\n };\n\n const clearFadeTimer = (): void => {\n if (!fadeTimer) return;\n window.clearTimeout(fadeTimer);\n fadeTimer = 0;\n };\n const startFadeTimer = (): void => {\n clearFadeTimer();\n fadeTimer = window.setTimeout(() => {\n fadeTimer = 0;\n bridge.send('SCROLL_SETTLED');\n }, SCROLL_CHROME_FADE_DELAY);\n };\n\n const bindPosition = (thumb: HTMLElement, transform: string): void => {\n let value = positions.get(thumb);\n if (!value) {\n value = motionValue(transform);\n positions.set(thumb, value);\n cleanup.add(styleEffect(thumb, {transform: value}));\n }\n value.set(transform);\n };\n const animateVisibility = (el: HTMLElement, visible: boolean): void => {\n const previous = visibleStates.get(el);\n if (previous === visible) return;\n visibleStates.set(el, visible);\n animateProperties(el, {opacity: visible ? 1 : 0}, {\n role: visible ? 'feedback' : 'feedbackExit',\n ...(previous === undefined ? {transition: {duration: 0, type: 'tween' as const}} : {}),\n });\n };\n const readThumbPositions = (parts: ScrollAreaElements) => ({\n vertical: verticalGeometry\n ? verticalGeometry.maxOffset * clamp(parts.viewport.scrollTop / verticalGeometry.maxScroll, 0, 1)\n : null,\n horizontal: horizontalGeometry\n ? horizontalGeometry.maxOffset * clamp(horizontalScrollPosition(parts.viewport) / horizontalGeometry.maxScroll, 0, 1)\n : null,\n });\n const applyThumbPositions = (parts: ScrollAreaElements, position: ReturnType<typeof readThumbPositions>): void => {\n if (parts.verticalThumb && position.vertical !== null) bindPosition(parts.verticalThumb, `translate3d(0, ${position.vertical}px, 0)`);\n if (parts.horizontalThumb && position.horizontal !== null) bindPosition(parts.horizontalThumb, `translate3d(${position.horizontal}px, 0, 0)`);\n };\n const positionTask = createLayoutTask({\n measure: () => {\n const parts = elements();\n return {parts, position: readThumbPositions(parts)};\n },\n apply: ({parts, position}) => applyThumbPositions(parts, position),\n });\n\n const measureGeometry = (parts: ScrollAreaElements, overflow: {x: boolean; y: boolean}) => {\n const readAxis = (axis: ScrollAxis, scrollbar: HTMLElement | null, overflows: boolean): AxisGeometry | null => {\n if (primaryPointer.matches || !scrollbar || !overflows) return null;\n const viewportLength = axis === 'y' ? parts.viewport.clientHeight : parts.viewport.clientWidth;\n const scrollLength = axis === 'y' ? parts.viewport.scrollHeight : parts.viewport.scrollWidth;\n const trackLength = axis === 'y' ? scrollbar.clientHeight : scrollbar.clientWidth;\n const thumbLength = Math.min(trackLength, Math.max(MIN_THUMB_SIZE, viewportLength / scrollLength * trackLength));\n return {trackLength, thumbLength, maxOffset: Math.max(0, trackLength - thumbLength), maxScroll: Math.max(1, scrollLength - viewportLength)};\n };\n return {\n vertical: readAxis('y', parts.verticalScrollbar, overflow.y),\n horizontal: readAxis('x', parts.horizontalScrollbar, overflow.x),\n };\n };\n const applyGeometry = (parts: ScrollAreaElements): void => {\n for (const [axis, thumb, geometry] of [\n ['y', parts.verticalThumb, verticalGeometry],\n ['x', parts.horizontalThumb, horizontalGeometry],\n ] as const) {\n if (!thumb) continue;\n const width = geometry && axis === 'x' ? `${geometry.thumbLength}px` : '';\n const height = geometry && axis === 'y' ? `${geometry.thumbLength}px` : '';\n if (thumb.style.width !== width) thumb.style.width = width;\n if (thumb.style.height !== height) thumb.style.height = height;\n if (!geometry) thumb.style.removeProperty('transform');\n }\n };\n\n const updateVisibility = (parts: ScrollAreaElements): void => {\n const props = currentProps();\n const {overflow} = currentSnapshot().context;\n const interacting = hasTag('hovered') || hasTag('focused') || hasTag('scrolling') || hasTag('dragging');\n const visibleFor = (axisOverflows: boolean): boolean => {\n if (props.type === 'hidden' || primaryPointer.matches || !axisOverflows) return false;\n if (props.type === 'always') return true;\n if (props.type === 'scroll') return hasTag('scrolling') || hasTag('dragging');\n return interacting;\n };\n const verticalVisible = visibleFor(overflow.y);\n const horizontalVisible = visibleFor(overflow.x);\n\n [parts.verticalScrollbar, parts.verticalThumb].forEach((el) => {\n if (el) setPresence({el, attr: 'data-visible', present: verticalVisible});\n });\n [parts.horizontalScrollbar, parts.horizontalThumb].forEach((el) => {\n if (el) setPresence({el, attr: 'data-visible', present: horizontalVisible});\n });\n [parts.verticalScrollbar, parts.horizontalScrollbar].forEach((el) => {\n if (el) setPresence({el, attr: 'data-disabled', present: props.disabled});\n });\n if (parts.verticalThumb) setPresence({el: parts.verticalThumb, attr: 'data-dragging', present: hasTag('dragging-y')});\n if (parts.horizontalThumb) setPresence({el: parts.horizontalThumb, attr: 'data-dragging', present: hasTag('dragging-x')});\n if (parts.corner) setPresence({el: parts.corner, attr: 'data-visible', present: verticalVisible && horizontalVisible});\n if (parts.verticalScrollbar) animateVisibility(parts.verticalScrollbar, verticalVisible);\n if (parts.horizontalScrollbar) animateVisibility(parts.horizontalScrollbar, horizontalVisible);\n if (parts.corner) animateVisibility(parts.corner, verticalVisible && horizontalVisible);\n };\n\n const releaseDrag = (): void => {\n if (!dragging) return;\n const active = dragging;\n dragging = null;\n const parts = elements();\n const thumb = active.axis === 'y' ? parts.verticalThumb : parts.horizontalThumb;\n try {\n thumb?.releasePointerCapture?.(active.pointerId);\n } catch {\n // Pointer capture cleanup is best-effort after interrupted gestures.\n }\n bridge.send({type: 'DRAG_ENDED', axis: active.axis});\n };\n\n const syncDom = (): void => {\n const parts = elements();\n const props = currentProps();\n const {overflow} = currentSnapshot().context;\n if ((props.disabled || props.type === 'hidden') && dragging) releaseDrag();\n\n setPresence({el: parts.root, attr: 'data-overflow-x', present: overflow.x});\n setPresence({el: parts.root, attr: 'data-overflow-y', present: overflow.y});\n setPresence({el: parts.root, attr: 'data-fade', present: props.fade});\n setPresence({el: parts.root, attr: 'data-dividers', present: props.dividers});\n setPresence({el: parts.root, attr: 'data-scrolling', present: hasTag('scrolling')});\n setPresence({el: parts.root, attr: 'data-dragging', present: hasTag('dragging')});\n setPresence({el: parts.root, attr: 'data-disabled', present: props.disabled});\n setAttribute({el: parts.viewport, attr: 'data-orientation', value: props.orientation});\n setPresence({el: parts.viewport, attr: 'data-hide-native', present: props.hideNative});\n updateVisibility(parts);\n scheduleMeasure();\n };\n\n const measureTask = createLayoutTask({\n measure: () => {\n const parts = elements();\n const props = currentProps();\n const overflow = {\n x: includesAxis(props.orientation, 'x') && parts.viewport.scrollWidth > parts.viewport.clientWidth + 1,\n y: includesAxis(props.orientation, 'y') && parts.viewport.scrollHeight > parts.viewport.clientHeight + 1,\n };\n return {\n parts, overflow, geometry: measureGeometry(parts, overflow),\n fadeSize: parseFloat(getComputedStyle(parts.viewport).getPropertyValue('--ui-scroll-fade-size')) || 48,\n };\n },\n apply: ({parts, overflow, geometry, fadeSize: size}) => {\n fadeSize = size;\n verticalGeometry = geometry.vertical;\n horizontalGeometry = geometry.horizontal;\n const current = currentSnapshot().context.overflow;\n if (overflow.x !== current.x || overflow.y !== current.y) {\n bridge.send({type: 'MEASURED', overflowX: overflow.x, overflowY: overflow.y});\n }\n applyGeometry(parts);\n updateVisibility(parts);\n schedulePosition();\n },\n });\n const scheduleMeasure = (): void => measureTask.schedule();\n const schedulePosition = (): void => {\n if (!primaryPointer.matches) positionTask.schedule();\n };\n\n const onScroll = (): void => {\n schedulePosition();\n if (!hasTag('scrolling')) bridge.send('SCROLLED');\n if (!primaryPointer.matches && ((currentSnapshot().context.overflow.y && !verticalGeometry)\n || (currentSnapshot().context.overflow.x && !horizontalGeometry))) scheduleMeasure();\n startFadeTimer();\n };\n\n const startDrag = (event: PointerEvent, axis: ScrollAxis): void => {\n if (currentProps().disabled) return;\n const parts = elements();\n const viewport = parts.viewport;\n const scrollbar = axis === 'y' ? parts.verticalScrollbar : parts.horizontalScrollbar;\n const thumb = axis === 'y' ? parts.verticalThumb : parts.horizontalThumb;\n const overflow = axis === 'y' ? currentSnapshot().context.overflow.y : currentSnapshot().context.overflow.x;\n if (!scrollbar || !thumb || !overflow) return;\n\n const geometry = axis === 'y' ? verticalGeometry : horizontalGeometry;\n if (!geometry) return;\n const {trackLength, thumbLength, maxScroll} = geometry;\n dragging = {\n axis,\n pointerId: event.pointerId,\n startPointer: axis === 'y' ? event.clientY : event.clientX,\n startScroll: axis === 'y' ? viewport.scrollTop : horizontalScrollPosition(viewport),\n trackLength,\n thumbLength,\n maxScroll,\n horizontalDirection: axis === 'x' && isRtl({el: viewport}) ? -1 : 1,\n };\n try {\n thumb.setPointerCapture?.(event.pointerId);\n } catch {\n dragging = null;\n return;\n }\n clearFadeTimer();\n bridge.send({type: 'DRAG_STARTED', axis});\n };\n\n const moveDrag = (event: PointerEvent): void => {\n if (!dragging || dragging.pointerId !== event.pointerId) return;\n event.preventDefault();\n const {viewport} = elements();\n const pointer = dragging.axis === 'y' ? event.clientY : event.clientX;\n const delta = pointer - dragging.startPointer;\n const maxOffset = Math.max(1, dragging.trackLength - dragging.thumbLength);\n const nextScroll = dragging.startScroll + (delta / maxOffset) * dragging.maxScroll;\n if (dragging.axis === 'y') viewport.scrollTop = clamp(nextScroll, 0, dragging.maxScroll);\n else {\n const next = clamp(nextScroll, 0, dragging.maxScroll);\n viewport.scrollLeft = dragging.horizontalDirection * next;\n }\n schedulePosition();\n };\n\n const endDrag = (event: PointerEvent): void => {\n if (!dragging || dragging.pointerId !== event.pointerId) return;\n releaseDrag();\n startFadeTimer();\n };\n\n const syncPointerCapability = (): void => {\n chromeCleanup?.run();\n chromeCleanup = null;\n releaseDrag();\n positionTask.cancel();\n bridge.send('POINTER_LEFT');\n bridge.send('FOCUS_LEFT');\n const parts = elements();\n if (!primaryPointer.matches) {\n chromeCleanup = new CleanupManager();\n addListener({target: parts.root, event: 'pointerenter', handler: () => bridge.send('POINTER_ENTERED'), cleanup: chromeCleanup});\n addListener({target: parts.root, event: 'pointerleave', handler: () => bridge.send('POINTER_LEFT'), cleanup: chromeCleanup});\n addListener({target: parts.root, event: 'focusin', handler: () => bridge.send('FOCUS_ENTERED'), cleanup: chromeCleanup});\n addListener({target: parts.root, event: 'focusout', handler: (event) => {\n const target = (event as FocusEvent).relatedTarget;\n if (!(target instanceof Node) || !root().contains(target)) bridge.send('FOCUS_LEFT');\n }, cleanup: chromeCleanup});\n for (const thumb of [parts.verticalThumb, parts.horizontalThumb]) {\n if (thumb) addListener({target: thumb, event: 'pointerdown', handler: (event) => {\n event.preventDefault();\n startDrag(event as PointerEvent, axisFromOrientation(thumb));\n }, cleanup: chromeCleanup});\n }\n addListener({target: document, event: 'pointermove', handler: (event) => moveDrag(event as PointerEvent), cleanup: chromeCleanup});\n addListener({target: document, event: 'pointerup', handler: (event) => endDrag(event as PointerEvent), cleanup: chromeCleanup});\n addListener({target: document, event: 'pointercancel', handler: (event) => endDrag(event as PointerEvent), cleanup: chromeCleanup});\n if (parts.root.matches(':hover')) bridge.send('POINTER_ENTERED');\n if (parts.root.contains(document.activeElement)) bridge.send('FOCUS_ENTERED');\n }\n syncDom();\n scheduleMeasure();\n };\n\n const bridge = createAlpineMachine({\n schema: scrollAreaSchema,\n hooks: scrollAreaHooks,\n createMachine: ({props}) => createScrollAreaMachine({\n props,\n context: {overflow: {x: false, y: false}},\n effects: {\n sync: syncDom,\n },\n }),\n });\n\n let component!: TrellisAlpineComponent<ScrollAreaData>;\n component = {\n ...bridge,\n get overflowX(): boolean {\n return this.snapshot.current?.context.overflow.x ?? false;\n },\n get overflowY(): boolean {\n return this.snapshot.current?.context.overflow.y ?? false;\n },\n get isScrolling(): boolean {\n return this.snapshot.current?.tags.includes('scrolling') ?? false;\n },\n get isDragging(): boolean {\n return this.snapshot.current?.tags.includes('dragging') ?? false;\n },\n init(): void {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n primaryPointer = window.matchMedia('(pointer: coarse)');\n bridge.connect(this.$el, this.snapshot);\n const parts = elements();\n for (const axis of ['x', 'y'] as const) {\n cleanup.add(scroll((_progress, info) => {\n const extent = info[axis].scrollLength;\n const position = axis === 'x' ? horizontalScrollPosition(parts.viewport) : parts.viewport.scrollTop;\n const size = fadeSize;\n const first = axis === 'x' ? 'start' : 'top';\n const last = axis === 'x' ? 'end' : 'bottom';\n fadeValues[first].set(1 - clamp(position / size, 0, 1));\n fadeValues[last].set(1 - clamp((extent - position) / size, 0, 1));\n }, {container: parts.viewport, axis}));\n }\n const fadeStyles = Object.fromEntries(Object.entries(fadeValues).map(([name, value]) => [`--ui-scroll-fade-${name}`, value]));\n cleanup.add(styleEffect(parts.viewport, fadeStyles));\n cleanup.add(styleEffect(parts.root, fadeStyles));\n for (const scrollbar of [parts.verticalScrollbar, parts.horizontalScrollbar]) {\n const thumb = scrollbar?.querySelector<HTMLElement>('[data-ui-scroll-area-thumb]');\n if (!scrollbar || !thumb) continue;\n const paint = thumb.querySelector<HTMLElement>('[data-ui-scroll-area-thumb-paint]');\n if (!paint) continue;\n const grow = (expanded: boolean): void => {\n if (!matchMedia('(hover: hover) and (pointer: fine)').matches) return;\n const vertical = thumb.dataset.orientation === 'vertical';\n animateProperties(paint, {\n [vertical ? 'width' : 'height']: expanded ? 'var(--ui-scrollbar-size)' : 'calc(var(--ui-scrollbar-size) * 2 / 3)',\n backgroundColor: expanded ? 'var(--ui-surface-edge-hover)' : 'var(--ui-surface-edge)',\n }, {role: expanded ? 'layout' : 'feedbackExit'});\n };\n addListener({target: scrollbar, event: 'pointerenter', handler: () => grow(true), cleanup});\n addListener({target: scrollbar, event: 'pointerleave', handler: () => {if (!thumb.hasAttribute('data-dragging')) grow(false);}, cleanup});\n addListener({target: thumb, event: 'pointerdown', handler: () => grow(true), cleanup});\n addListener({target: thumb, event: 'lostpointercapture', handler: () => grow(scrollbar.matches(':hover')), cleanup});\n }\n resizeObserver = new ResizeObserver(scheduleMeasure);\n resizeObserver.observe(parts.viewport);\n if (parts.content) resizeObserver.observe(parts.content);\n mutationObserver = new MutationObserver(scheduleMeasure);\n if (parts.content) mutationObserver.observe(parts.content, {childList: true, subtree: true, characterData: true});\n\n addListener({target: parts.viewport, event: 'scroll', handler: onScroll, cleanup, options: {passive: true}});\n addListener({target: primaryPointer, event: 'change', handler: syncPointerCapability, cleanup});\n syncPointerCapability();\n },\n destroy(): void {\n releaseDrag();\n chromeCleanup?.run();\n chromeCleanup = null;\n clearFadeTimer();\n measureTask.cancel();\n positionTask.cancel();\n root().querySelectorAll('[data-ui-scroll-area-scrollbar], [data-ui-scroll-area-corner], [data-ui-scroll-area-thumb-paint]').forEach((element) => { stopOwnedMotion(element); });\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n resizeObserver = null;\n mutationObserver = null;\n bridge.disconnect();\n rootEl = null;\n },\n get root(): BindingObject {\n const props = this.snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.root, props, className: props.class}),\n {\n 'data-ui-scroll-area': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-type': () => currentProps().type,\n ':data-gutter': () => currentProps().gutter,\n ':data-fade': () => currentProps().fade ? '' : undefined,\n ':data-dividers': () => currentProps().dividers ? '' : undefined,\n ':data-fill': () => currentProps().fill ? '' : undefined,\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n },\n ]});\n },\n viewport(el: HTMLElement): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({\n part: scrollAreaStyles.parts.viewport,\n props: {orientation: currentProps().orientation, fill: currentProps().fill},\n className: el.dataset.class,\n }),\n {\n 'data-ui-scroll-area-viewport': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-hide-native': () => currentProps().hideNative ? '' : undefined,\n },\n ]});\n },\n scrollbar(el: HTMLElement): BindingObject {\n const orientation = axisFromOrientation(el) === 'x' ? 'horizontal' : 'vertical';\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.scrollbar, props: {orientation}, className: el.dataset.class}),\n {\n 'data-ui-scroll-area-scrollbar': '',\n 'aria-hidden': 'true',\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n },\n ]});\n },\n thumb(el: HTMLElement): BindingObject {\n const axis = axisFromOrientation(el);\n const orientation = axis === 'x' ? 'horizontal' : 'vertical';\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.thumb, props: {orientation}, className: el.dataset.class}),\n {\n 'data-ui-scroll-area-thumb': '',\n 'aria-hidden': 'true',\n ':data-dragging': () => hasTag(axis === 'x' ? 'dragging-x' : 'dragging-y') ? '' : undefined,\n },\n ]});\n },\n corner(el: HTMLElement): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.corner, className: el.dataset.class}),\n {'data-ui-scroll-area-corner': '', 'aria-hidden': 'true'},\n ]});\n },\n };\n\n return component;\n};\n\nconst registerScrollArea = defineAlpineData('UiScrollArea', UiScrollArea);\n\nexport {registerScrollArea, UiScrollArea};\nexport type {ScrollAreaData, ScrollAreaElements, UiScrollAreaApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerScrollArea as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerScrollArea = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerScrollArea};\nexport default registerScrollArea;\nexport * from './index';\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"mappings":"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"}
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./scroll-area-
|
|
2
|
-
export {default} from "./scroll-area-
|
|
1
|
+
export * from "./scroll-area-SBruA-pr.js";
|
|
2
|
+
export {default} from "./scroll-area-SBruA-pr.js";
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-C3hjgwMw.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e,r as t,s as n,t as r}from"../chunks/dom-DiTFTWeR.js";import{o as i,s as a,t as o,u as s}from"../chunks/properties-D8pFWF8g.js";import{n as c,r as l}from"../chunks/layout-wLgk8rAu.js";import{t as u}from"../chunks/layout-task-B6P8q7BH.js";import{n as d}from"../chunks/morph-Cq3V_23_.js";import{c as f,f as p,l as m,n as h,s as g,u as ee}from"../chunks/codecs-CQ7olTJL.js";import{a as _,n as te,t as v}from"../chunks/machine-Do4tL7nc.js";import{n as ne,r as re}from"../chunks/focus-BvBkrIcj.js";import{n as y,t as ie}from"../chunks/alpine-data-Dvc_bXq6.js";import{a as ae,r as oe,t as b}from"../chunks/capability-anchor-BqejlBjS.js";import{t as se}from"../chunks/collection-navigation-et2se66r.js";import{n as x,t as S}from"../chunks/styles-CX2j92ex.js";import{t as ce}from"../chunks/merge-bindings-BtqW3UgP.js";import{n as le,t as C}from"../chunks/props-change-2xfsIAEN.js";import{t as ue}from"../chunks/dismissable-layer-MzcgNRti.js";import{i as de,n as fe,r as pe,t as me}from"../chunks/form-control-DL1Hkox3.js";import{i as he}from"../chunks/focus-scope-DYfME-Rk.js";import{i as ge,n as _e,r as ve,t as ye}from"../chunks/option-data-Du9mqQPo.js";import{t as be}from"../chunks/semantic-observer-CIoriWtV.js";import{t as w}from"../chunks/scroll-lock-C5dQtr4Y.js";import{t as xe}from"../chunks/control-size-BcDu1m1N.js";import{A as Se,B as Ce,F as we,I as T,M as E,N as Te,a as D,d as Ee,f as O,g as k,i as A,j as De,m as j,n as Oe,p as M,r as ke,s as N,t as P,u as F}from"../chunks/common-DnEHZCqy.js";import{t as Ae}from"../chunks/feedback-DP_ydw-J.js";import{a as je}from"../chunks/styles-BvLCjUXV.js";import{n as Me,t as Ne}from"../chunks/item-template-DSfME41Q.js";import{n as Pe}from"../chunks/virtualizer-size-CTy2gO64.js";var I=[`soft`,`surface`,`outline`,`solid`],L=[`neutral`,`accent`,`success`,`warning`,`danger`],Fe=xe,R=[`span`,`button`],z=Oe,Ie=k,Le=ke;m(I,`soft`),m(L,`neutral`),m(Fe,`sm`),m(Le,`sm`),m(R,`span`),m(z,`button`),m([``,...L],``),m(Ie,`mini`),m(z,`button`),p.default(`close`),m(Ie,`mini`),m(Fe,`sm`),p.default(`Remove`);var B=[`listbox`,`combobox`,`pillbox`,`native`],V=N,H=xe,Re=ke,ze=T,Be=P,U=k,W=[`stay`,`close`],Ve=[`check`,`checkbox`,`none`],G=Ce,He=F,Ue={name:p,optionsId:p,value:p,values:g.array([]),placeholder:p,mode:m(B,`listbox`),multiple:h,searchable:h,searchMinItems:f.min(0).default(5),virtualized:h,optionsFetchUrl:p,optionsTotalItems:f.min(0).default(0),optionItemSize:Pe(`calc(var(--spacing-menu-item) + var(--spacing-1))`),optionBufferSize:f.min(1).default(50),optionOverscan:f.min(0).default(0),optionSearchParam:p.default(`q`),optionSearchDebounce:f.min(0).default(150),selectedLabelMap:g.object({}),creatable:h,filter:h.default(!0),clearable:h,clear:m(W,`stay`),suffix:p.default(`selected`),mark:m(Ve,`check`),open:h,disabled:h,readonly:h,required:h,invalid:h,autoHighlight:h.default(!0),loop:h.default(!0),path:p,size:m(H,`lg`),variant:m(V,`outline`),radius:m(Re,`md`),surface:m(G,`+2`),elevation:m(He,`3`),side:m(ze,`bottom`),align:m(Be,`start`),offset:f.clamp(-100,100).default(0),gap:f.clamp(0,50).default(4),empty:p.default(`No results found.`),icon:p,iconTrailing:p.default(`chevron__down`),iconVariant:m(U,`outline`),buttonClass:p,inputClass:p,listboxClass:p,optionClass:p,chipVariant:m(I,`soft`),chipColor:m(L,`neutral`),chipClass:p,class:p};m(U,`outline`),f.clamp(0,100).default(0);var K=e=>({}),We=[_({name:`opening`,state:`disclosure.opening`,project:K,onDone:`OPENING_DONE`,onError:`OPENING_ERROR`,sends:{close:()=>({type:`CLOSE`})}}),_({name:`closing`,state:`disclosure.closing`,project:K,onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`,sends:{open:()=>({type:`OPEN`})}}),_({name:`searching`,state:`feature.searching`,project:e=>({query:e.context.search.query,optionsId:e.context.search.optionsId}),onDone:`SEARCHING_DONE`,onError:`SEARCHING_ERROR`,sends:{search:e=>({type:`SEARCH`,query:e}),close:()=>({type:`CLOSE`})}}),_({name:`creating`,state:`feature.creating`,project:e=>({query:e.context.search.query,value:e.context.creation.value}),onDone:`CREATING_DONE`,onError:`CREATING_ERROR`,sends:{close:()=>({type:`CLOSE`})}})],q=e=>le(e)?.props??null,Ge=e=>e.disabled||e.readonly,Ke=({event:e})=>{let t=q(e);return!t||Ge(t)||!t.open?!1:C(e,`open`,`disabled`,`readonly`)},qe=({event:e})=>{let t=q(e);return t?C(e,`open`)&&!t.open||C(e,`disabled`)&&t.disabled||C(e,`readonly`)&&t.readonly:!1},Je=({event:e})=>{let t=q(e);return!!(t&&(C(e,`disabled`)&&t.disabled||C(e,`readonly`)&&t.readonly||C(e,`searchable`)&&!t.searchable))},Ye=e=>!Array.isArray(e.selection)||!e.selection.every(e=>typeof e==`object`&&!!e&&typeof e.value==`string`&&typeof e.label==`string`)?null:e.selection.map(({value:e,label:t})=>({value:e,label:t})),Xe=({props:e,context:t,effects:n})=>v({type:`parallel`,on:{DOM_INVALIDATED:{effects:`syncDom`}},states:{disclosure:{initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},SEARCH:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:{target:`opening`,guard:Ke,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`interactive`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},CREATE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:`selectionCloses`,effects:`prepareClose`},CLEAR:{target:`closing`,guard:`clearCloses`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:qe,effects:`prepareClose`}}},open:{tags:[`visible`,`expanded`,`interactive`,`open`],on:{CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},CREATE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:`selectionCloses`,effects:`prepareClose`},CLEAR:{target:`closing`,guard:`clearCloses`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:qe,effects:`prepareClose`}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`closed`,effects:`finishClose`},CLOSING_ERROR:{target:`closed`,effects:`finishClose`},OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},SEARCH:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:{target:`opening`,guard:Ke,effects:`prepareOpen`}}}}},feature:{initial:`idle`,on:{SELECT:{reduce:`replaceSelection`,effects:`commitSelection`},DESELECT:{reduce:`replaceSelection`,effects:`commitSelection`},SELECT_ALL:{reduce:`replaceSelection`,effects:`commitSelection`},RECONCILE_SELECTION:{reduce:`replaceSelection`,effects:`syncActive`},CLEAR:{reduce:`clear`,effects:`commitSelection`},ACTIVE:{reduce:`setActive`,effects:`syncActive`},OPTIONS_CHANGED:{effects:`syncOptions`},CLOSING_DONE:{reduce:`resetTransient`,effects:`syncActive`},CLOSING_ERROR:{reduce:`resetTransient`,effects:`syncActive`}},states:{idle:{on:{CLOSE:{},SEARCH:{target:`searching`,reduce:`setSearch`,effects:`commitSearch`},CREATE:{target:`creating`,reduce:`setCreation`,effects:`prepareCreate`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}}},searching:{tags:[`searching`],on:{SEARCH:{target:`searching`,reduce:`setSearch`,effects:`commitSearch`},CREATE:{target:`creating`,reduce:`setCreation`,effects:`prepareCreate`},CLOSE:{target:`idle`},SEARCHING_DONE:`idle`,SEARCHING_ERROR:`idle`,PROPS_CHANGED:[{target:`idle`,guard:Je,reduce:`replaceProps`,effects:`syncProps`},{reduce:`replaceProps`,effects:`syncProps`}]}},creating:{tags:[`creating`],on:{SEARCH:{target:`searching`,reduce:`setSearch`,effects:`commitSearch`},CREATE:{target:`creating`,reduce:`setCreation`,effects:`prepareCreate`},CLOSE:{target:`idle`},CREATING_DONE:{target:`idle`},CREATING_ERROR:{target:`idle`},PROPS_CHANGED:[{target:`idle`,guard:Je,reduce:`replaceProps`,effects:`syncProps`},{reduce:`replaceProps`,effects:`syncProps`}]}}}}}},{context:t,props:e,reducers:{replaceProps:({event:e})=>{let t=q(e);return t?{props:t}:void 0},replaceSelection:({context:e,event:t})=>{let n=Ye(t);if(n)return{context:{...e,selection:n}}},clear:({context:e})=>({context:{...e,selection:[],search:{...e.search,query:``},navigation:{activeValue:``}}}),setSearch:({context:e,event:t})=>({context:{...e,search:{query:typeof t.query==`string`?t.query:``,optionsId:typeof t.optionsId==`string`?t.optionsId:e.search.optionsId},navigation:{activeValue:typeof t.activeValue==`string`?t.activeValue:e.navigation.activeValue}}}),setActive:({context:e,event:t})=>({context:{...e,navigation:{activeValue:typeof t.value==`string`?t.value:``}}}),setCreation:({context:e,event:t})=>({context:{...e,creation:{value:typeof t.value==`string`?t.value:e.search.query}}}),resetTransient:({context:e})=>({context:{...e,search:{...e.search,query:``},navigation:{activeValue:``},creation:{value:``}}})},guards:{canOpen:({props:e})=>!Ge(e),selectionCloses:({props:e,context:t})=>!e.multiple||(e.mode===`combobox`||e.mode===`pillbox`)&&t.search.query.trim()!==``,clearCloses:({props:e})=>e.clear===`close`},effects:{prepareOpen:n.prepareOpen,finishOpen:n.finishOpen,prepareClose:n.prepareClose,finishClose:n.finishClose,commitSelection:n.commitSelection,commitSearch:n.commitSearch,prepareCreate:n.prepareCreate,syncProps:n.syncProps,syncOptions:n.syncOptions,syncActive:n.syncActive,syncDom:n.syncDom}}),J=640,Ze=256,Qe=520,$e=.72,et=12,tt=16,nt=720,rt=720,it=({viewportWidth:e,viewportHeight:t,layoutViewportHeight:n,referenceTop:r,referenceBottom:i,touch:a})=>{if(e<=J)return`fullscreen`;let o=t<Qe||t<n*$e;if(a&&o)return`fullscreen`;if(a)return`dialog`;let s=Math.max(0,r),c=Math.max(0,t-i);return Math.max(s,c)<Ze?`dialog`:`anchored`},at=()=>{let e=window.visualViewport;return e?{width:e.width,height:e.height,offsetTop:e.offsetTop,offsetLeft:e.offsetLeft}:{width:window.innerWidth,height:window.innerHeight,offsetTop:0,offsetLeft:0}},ot=()=>window.matchMedia?.(`(any-pointer: coarse)`).matches===!0||navigator.maxTouchPoints>0,st=e=>{let t=oe(e),n=!1,r=`anchored`,i=null,a=null,o=null,s=null,c=()=>{let e=o??t.positioned();return e?e.then(async()=>{await c()}):null},l=()=>e.floating(),d=e=>{e?i??=w(l().ownerDocument):(i?.(),i=null)},f=e=>{e.style.removeProperty(`border-radius`),e.style.removeProperty(`height`),e.style.removeProperty(`inset`),e.style.removeProperty(`max-height`),e.style.removeProperty(`max-width`),e.style.removeProperty(`position`),e.style.removeProperty(`transform-origin`),e.style.removeProperty(`width`)},p=(e,t,n)=>{let r=t===`dialog`?tt:et,i=t===`dialog`?nt:1/0,a=t===`dialog`?rt:1/0,o=Math.min(i,Math.max(0,n.width-r*2)),s=Math.min(a,Math.max(0,n.height-r*2)),c=n.offsetLeft+(n.width-o)/2,l=n.offsetTop+(n.height-s)/2;Object.assign(e.style,{borderRadius:`var(--radius-overlay-md)`,position:`fixed`,inset:`${l}px auto auto ${c}px`,width:`${o}px`,height:`${s}px`,maxWidth:`none`,maxHeight:`none`,transformOrigin:`center`})},m=u({measure:()=>{let t=at(),n=ot(),r=n||t.width<=J?{top:0,bottom:0}:e.reference().getBoundingClientRect();return{viewport:t,next:it({viewportWidth:t.width,viewportHeight:t.height,layoutViewportHeight:window.innerHeight,referenceTop:r.top-t.offsetTop,referenceBottom:r.bottom-t.offsetTop,touch:n})}},apply:({viewport:i,next:a})=>{if(!n)return;let c=l();r=a,c.dataset.presentation=a;let u=c.querySelector(`[data-ui-select-sheet-heading]`);u&&(u.style.display=a===`anchored`?`none`:`flex`),a===`anchored`?(c.removeAttribute(`aria-modal`),c.removeAttribute(`aria-labelledby`),c.removeAttribute(`role`),d(!1),f(c),t.mount()):(t.unmount(),c.setAttribute(`role`,`dialog`),c.setAttribute(`aria-modal`,`true`),c.setAttribute(`aria-labelledby`,e.labelId()),d(!0),p(c,a,i));let m=s;o=null,s=null,m?.()}}),h=()=>{n&&(o??=new Promise(e=>{s=e}),m.schedule())},g=()=>{let e=()=>h(),t=window.visualViewport,n=window.matchMedia?.(`(any-pointer: coarse)`);return window.addEventListener(`resize`,e),window.addEventListener(`orientationchange`,e),t?.addEventListener(`resize`,e),t?.addEventListener(`scroll`,e),n?.addEventListener(`change`,e),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`orientationchange`,e),t?.removeEventListener(`resize`,e),t?.removeEventListener(`scroll`,e),n?.removeEventListener(`change`,e)}},ee=()=>{if(!n){n=!0;try{l().showPopover()}catch{}h(),a=g()}},_=()=>{if(!n)return;n=!1,m.cancel();let e=s;o=null,s=null,e?.(),a?.(),a=null,t.unmount(),d(!1);try{l().hidePopover()}catch{}};return{opened:()=>n,open:ee,close:_,sync:h,destroy:_,presentation:()=>r,positioned:c}},Y=S({definition:{component:`ui.select`,parts:{root:{base:`relative inline-grid w-full min-w-0`},control:{base:j,variants:{size:A,radius:D,variant:{outline:``,filled:``,plain:``},mode:{listbox:``,combobox:``,pillbox:`gap-1 py-0.5`,native:``},empty:{true:``,false:``}},compounds:[{when:{mode:`pillbox`,empty:!1},class:`!ps-1.5`}],defaults:{size:`lg`,variant:`outline`,radius:`md`,mode:`listbox`,empty:!1}},button:{base:[`flex min-w-0 flex-1 items-center gap-2 border-0 bg-transparent p-0 text-left text-inherit outline-none`]},pillboxContent:{base:`flex min-w-0 flex-1 self-stretch items-center gap-1`},pillboxTrigger:{base:`min-w-control-xs self-stretch`},pillboxActions:{base:`flex min-h-control-sm shrink-0 self-start items-center gap-control-gap`,variants:{size:{xs:`min-h-control-xs`,sm:`min-h-control-xs`,md:``,lg:``,xlg:``}},defaults:{size:`lg`}},value:{base:`min-w-0 flex-1 truncate`},placeholder:{base:`min-w-0 flex-1 truncate text-surface-ink-muted`},input:{base:[`w-full min-w-16 flex-1`,O]},search:{base:[`flex min-h-control-xlg shrink-0 items-center gap-2 px-3`,`text-sm`]},searchInput:{base:[`min-w-0 flex-1 text-sm`,O]},sheetHeader:{base:``},sheetHeading:{base:`min-w-0 items-center gap-3 px-4 pt-4`},sheetTitle:{base:`min-w-0 flex-1 truncate text-base font-medium`},sheetClose:{base:[`inline-flex size-control-md shrink-0 items-center justify-center rounded-control-sm border-0 bg-transparent`,`text-surface-ink-muted outline-none focus-visible:ui-focus-ring`]},chips:{base:`flex min-w-0 flex-wrap items-center gap-1`},chip:{base:[`max-w-[min(100%,--spacing(64))]`]},chipLabel:{base:`flex min-w-0 flex-1 items-center`},chipPlainLabel:{base:`block min-w-0 flex-1 truncate`},chipRemove:{base:``},icon:{base:`size-icon shrink-0 text-surface-ink-muted`,variants:{position:{leading:``,trailing:``}},defaults:{position:`leading`}},action:{base:Ee},popover:{base:[we,`grid`,`overflow-hidden rounded-overlay-sm`]},listbox:{base:`min-h-0 min-w-0 max-w-full overflow-hidden outline-none`},viewport:{base:`min-h-0 min-w-0 max-w-full`},options:{base:`grid w-full min-w-0 max-w-full auto-rows-min content-start gap-1 p-popover-padding`},virtualOptions:{base:`grid w-full min-w-0 max-w-full content-start px-popover-padding`},create:{base:`shrink-0 p-popover-padding`},option:{base:[E,`min-w-0 max-w-full overflow-hidden focus-visible:ui-focus-ring`,`[&:has([data-ui-select-option-label]>*+*)]:h-auto`,`[&:has([data-ui-select-option-label]>*+*)]:items-start`,`[&:has([data-ui-select-option-label]>*+*)]:py-2`]},optionLabel:{base:`min-w-0 flex-1 truncate`},optionMeta:{base:Te},optionIcon:{base:Se,variants:{position:{leading:``,trailing:`ml-auto`}},defaults:{position:`leading`}},optionIndicator:{base:De},group:{base:`grid auto-rows-min content-start gap-1`},label:{base:`px-menu-item-padding-inline py-1 text-surface-ink-muted`},empty:{base:`px-menu-item-padding-inline py-2 text-sm text-surface-ink-muted`},separatorRoot:{base:`-mx-popover my-popover h-[var(--border-width-edge-separator)]`},separatorRule:{base:`h-[var(--border-width-edge-separator)] w-full border-0 bg-separator`},nativeWrapper:{base:`relative w-full min-w-0`},native:{base:[M,`appearance-none pe-10`],variants:{size:A,radius:D},defaults:{size:`lg`,radius:`md`}},nativeIcon:{base:`pointer-events-none absolute right-3 top-1/2 size-icon -translate-y-1/2 text-icon`}}}}),ct=class{ordinaryCount;filter;records;projections=new Map;constructor({root:t,listboxId:n,props:r,resolveLabel:i,rememberLabel:a}){this.filter=r.filter,this.records=Array.from(t.querySelectorAll(lt)).map((t,a)=>{let o=i(t,r),s=t.dataset.value||o,c=t.hasAttribute(`data-ui-select-option-create`);return{el:t,id:t.id||`${n}-option-${a}`,value:s,label:o,selectedLabel:t.dataset.selectedLabel||o,disabled:e({value:t.dataset.disabled}),create:c,minLength:Number(t.dataset.minLength??`0`),suffix:t.dataset.suffix??``}});let o=new Set;this.records.forEach(e=>{e.create||o.has(e.value)||(o.add(e.value),a(e.value,e.selectedLabel))}),this.ordinaryCount=this.records.filter(e=>!e.create).length}project(e,t){let n=t.map(({value:e})=>e),r=JSON.stringify([e,n]),i=this.projections.get(r);if(i)return i;let a=ve(e),o=a!==``&&this.records.some(e=>!e.create&&ve(e.label)===a),s=this.records.map(t=>{let r=_e(`${t.label} ${t.suffix}`,a);return{...t,value:t.create?t.el.dataset.value||e:t.value,selected:n.includes(t.value),visible:t.create?!o&&e.length>=t.minLength:!this.filter||a===``||r}}),c=new Map,l=new Map;s.forEach(e=>{!e.create&&!c.has(e.value)&&c.set(e.value,e),l.set(e.el,e)});let u={options:s,enabled:s.filter(e=>e.visible&&!e.disabled&&!e.create),firstByValue:c,byElement:l};return this.projections.set(r,u),u}},lt=`[data-ui-select-option], [data-ui-select-option-create]`,ut=`template[data-ui-select-option-selected-template]`,X=new Set([`A`,`AREA`,`BUTTON`,`DETAILS`,`EMBED`,`IFRAME`,`INPUT`,`OBJECT`,`OPTION`,`SELECT`,`SUMMARY`,`TEXTAREA`]),dt=new Set([`SCRIPT`,`STYLE`]),ft=new Set([`autofocus`,`contenteditable`,`controls`,`download`,`draggable`,`form`,`formaction`,`formenctype`,`formmethod`,`formnovalidate`,`formtarget`,`href`,`id`,`name`,`popover`,`popovertarget`,`popovertargetaction`,`role`,`tabindex`,`target`]),pt=e=>ft.has(e)||e.startsWith(`aria-`)&&e!==`aria-hidden`||e.startsWith(`data-ui-select`)||e===`data-ui-interactive`||e.startsWith(`data-ui-action`)||e.startsWith(`data-selected`)||e.startsWith(`data-highlighted`)||e.startsWith(`data-disabled`)||e.startsWith(`x-`)||e.startsWith(`hx-`)||e.startsWith(`v-`)||e.startsWith(`wire:`)||e.startsWith(`@`)||e.startsWith(`:`)||e.startsWith(`on`),mt=e=>{if(!(e instanceof Element))return e;let t=e.localName.toUpperCase();if(dt.has(t))return null;let n=e;return(X.has(t)||e.hasAttribute(`contenteditable`))&&(n=document.createElement(`span`),Array.from(e.attributes).forEach(e=>{pt(e.name)||n.setAttribute(e.name,e.value)}),n.append(...Array.from(e.childNodes))),Array.from(n.attributes).forEach(e=>{pt(e.name)&&n.removeAttribute(e.name)}),Array.from(n.childNodes).forEach(e=>{let t=mt(e);t?t!==e&&e.replaceWith(t):e.remove()}),n.setAttribute(`x-ignore`,`true`),n},ht=e=>{let t=document.createDocumentFragment();return Array.from(e).forEach(e=>{if(e instanceof HTMLTemplateElement&&e.matches(ut))return;let n=mt(e.cloneNode(!0));n&&t.append(n)}),t},gt=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),_t=u=>{let f=null,p=!1,m=``,h=``,g=``,_=``,v=null,y=ae(()=>I()),oe=null,b=null,S,le=new AbortController,C=Ae(le.signal),_e=``,w=new Map,xe=``,Se=0,Ce=!1,we=null,T=!1,E=`keyboard`,Te=null,D=``,Ee=0,O=0,k=0,A=0,De=null,j=null,Oe=new Map,M=()=>{if(!f)throw Error(`Select has not been initialized.`);return f},ke=()=>{let e=M().querySelector(`[data-ui-select-control]`);if(!e)throw Error(`Select requires a control element.`);return e},N=()=>{let e=M().querySelector(`[data-ui-select-trigger], [data-ui-select-button], [data-ui-select-input]`);if(!e)throw Error(`Select requires a trigger element.`);return e},P=()=>M().querySelector(`[data-ui-select-input]`),F=()=>M().querySelector(`[data-ui-select-search-input]`),Pe=()=>{let e=M().querySelector(`[data-ui-select-sheet-title]`);if(!e)throw Error(`Select requires an adaptive picker title.`);return e},I=()=>{let e=M().querySelector(`[data-ui-select-popover]`);if(!e)throw Error(`Select requires a popover element.`);return e},L=()=>{let e=M().querySelector(`[data-ui-select-listbox]`);if(!e)throw Error(`Select requires a listbox element.`);return e},Fe=()=>{let e=M().querySelector(`[data-ui-select-options]`);if(!e)throw Error(`Select requires an options element.`);return e},R=()=>M().querySelector(`[data-ui-select-virtualizer]`),z=()=>R()?._x_dataStack?.find(e=>typeof e.setUrl==`function`&&typeof e.setTotalItems==`function`)??null,Ie=()=>M().querySelector(`[data-ui-select-chips]`),Le=()=>M().querySelector(`[data-ui-select-hidden-inputs]`),B=()=>Z.getCommittedSnapshot().props,V=()=>Z.getCommittedSnapshot().context,H=()=>Z.hasTag(`expanded`),Re=()=>Z.hasTag(`visible`),ze=(e,t)=>{let n=e.dataset.label||e.getAttribute(`aria-label`)||``;if(n)return n;if(e.dataset.textValue)return e.dataset.textValue;let r=ye(ge(e.dataset.item),t.path);return r==null?(e.querySelector(`[data-ui-select-option-label]`)?.textContent??e.textContent??``).trim():String(r)},Be=(e=B())=>new ct({root:M(),listboxId:g,props:e,resolveLabel:ze,rememberLabel:(e,t)=>Oe.set(e,t)}),U=(e,t)=>{if(j)return e(j);j=Be(t);try{return e(j)}finally{j=null}},W=(e=V().selection)=>e.map(({value:e})=>e),Ve=(e=V().selection)=>e.map(({label:e})=>e),G=(e,t=V().search.query,n=V().selection)=>e.project(t,n),He=e=>{let t=B();if(!F())return!1;if(t.mode===`combobox`)return!0;let n=e.ordinaryCount;return(t.virtualized?Math.max(n,t.optionsTotalItems,A):n)>=t.searchMinItems},K=(e,t,n=B())=>{let r=Array.from(new Set(e.filter(Boolean))),i=n.multiple?r:r.slice(0,1),a=t.project(``,[]);return i.map(e=>({value:e,label:a.firstByValue.get(e)?.selectedLabel??Oe.get(e)??(typeof n.selectedLabelMap[e]==`string`?n.selectedLabelMap[e]:void 0)??e}))},q=e=>e.multiple?Array.from(new Set([...e.values,...e.value?[e.value]:[]])):e.value?[e.value]:e.values.slice(0,1),Ge=t=>U(n=>{let r=q(t),i=n.project(``,[]).options.filter(t=>e({value:t.el.dataset.selected})).map(e=>e.value);return{selection:K(r.length>0?r:i,n,t),search:{query:``,optionsId:``},navigation:{activeValue:``},creation:{value:``}}},t),Ke=()=>{let{selection:e}=V(),t=B();return e.length===0||t.mode===`pillbox`&&t.multiple?``:t.multiple&&e.length>1?`${e.length} ${t.suffix}`:e[0]?.label??e[0]?.value??``},qe=e=>{let t=e.el.querySelector(ut);return t?ht(t.content.childNodes):null},Je=e=>{let t=qe(e);if(t)return t;let n=e.el.querySelector(`[data-ui-select-option-selected-content]`)??e.el.querySelector(`[data-ui-select-option-label]`);if(n)return ht(n.childNodes);let r=document.createDocumentFragment();return r.append(document.createTextNode(e.selectedLabel)),r},Ye=()=>{let e=B();if(p){let t=W();(H()||!e.open||!e.disabled&&!e.readonly)&&ee({el:M(),schema:Ue,key:`open`,value:H()}),ee({el:M(),schema:Ue,key:`value`,value:e.multiple?``:t[0]??``}),ee({el:M(),schema:Ue,key:`values`,value:e.multiple?[...t]:[]})}M().dataset.state=H()?`open`:`closed`,M().dataset.mark=e.mark,fe({el:M(),state:{disabled:e.disabled,required:e.required,invalid:e.invalid},value:`true`})},J=()=>B().mode===`pillbox`&&B().multiple,Ze=()=>{let e=B(),t=J()&&V().selection.length===0,r=ke();r.className=x({part:Y.parts.control,props:{...e,mode:J()?`pillbox`:e.mode===`combobox`?`combobox`:`listbox`,empty:t}}),r.dataset.state=H()?`open`:`closed`,r.dataset.mode=J()?`pillbox`:e.mode,n({el:r,attr:`data-ui-select-pillbox-control`,present:J(),value:``}),n({el:r,attr:`data-empty`,present:t,value:`true`}),fe({el:r,state:{disabled:e.disabled,invalid:e.invalid},value:`true`})},Qe=e=>{let t=B(),r=N();r.id||=m,r.dataset.state=H()?`open`:`closed`,r.setAttribute(`aria-haspopup`,`listbox`),r.setAttribute(`aria-expanded`,H()?`true`:`false`),r.setAttribute(`aria-controls`,g),n({el:r,attr:`aria-invalid`,present:t.invalid,value:`true`}),r instanceof HTMLButtonElement&&(r.disabled=t.disabled);let i=Ke(),a=M().querySelector(`[data-ui-select-button-value]`),o=M().querySelector(`[data-ui-select-button-placeholder]`);if(a){a.replaceChildren();let t=V().selection.length===1&&i?e.project(``,V().selection).firstByValue.get(V().selection[0]?.value??``):void 0;t?a.append(Je(t)):a.textContent=i,a.hidden=i===``}o&&(o.hidden=J()?V().selection.length>0:i!==``),M().querySelectorAll(`[data-ui-select-clear], [data-ui-select-button-clear]`).forEach(e=>{e.hidden=t.disabled||!t.clearable||V().selection.length===0,e instanceof HTMLButtonElement&&(e.disabled=t.disabled)}),M().querySelectorAll(`[data-ui-select-search-clear]`).forEach(e=>{e.hidden=t.disabled||!V().search.query,e instanceof HTMLButtonElement&&(e.disabled=t.disabled)})},$e=e=>{let t=B(),n=V(),r=P();r&&(r.id||=h,r.className=x({part:Y.parts.input,className:t.inputClass}),r.value=J()||H()&&T?n.search.query:Ke(),r.placeholder=J()&&n.selection.length>0?``:t.placeholder,r.setAttribute(`role`,`combobox`),r.setAttribute(`autocomplete`,`off`),r.setAttribute(`aria-autocomplete`,`list`),r.setAttribute(`aria-expanded`,H()?`true`:`false`),r.setAttribute(`aria-controls`,g),pe({input:r,state:{disabled:t.disabled,readonly:t.readonly,required:t.required,nativeRequired:!1,invalid:t.invalid,ariaRequired:t.required}}));let i=F();if(i){let r=i.closest(`[data-ui-select-search]`);r&&(r.hidden=!He(e)),i.value=n.search.query,i.disabled=t.disabled,i.readOnly=t.readonly}let a=G(e).enabled.find(e=>e.value===n.navigation.activeValue);[N(),r,i,L()].forEach(e=>{a?.id?e?.setAttribute(`aria-activedescendant`,a.id):e?.removeAttribute(`aria-activedescendant`)})},et=()=>{let e=B(),t=I(),r=L();t.id=`${g}-popover`,t.className=x({part:Y.parts.popover,props:e,className:e.listboxClass}),t.dataset.uiSurface=e.surface,t.dataset.uiElevation=e.elevation,t.setAttribute(`popover`,`manual`),t.dataset.state=H()?`open`:`closed`,t.hidden=!Re(),r.id=g,r.setAttribute(`role`,`listbox`),r.tabIndex=-1,r.setAttribute(`aria-labelledby`,N().id),n({el:r,attr:`aria-multiselectable`,present:e.multiple,value:`true`})},tt=e=>{let t=B(),r=V();M().querySelectorAll(`[data-ui-select-create-query]`).forEach(e=>{e.textContent=r.search.query});let i=G(e).options;i.forEach(e=>{e.el.id=e.id,e.el.hidden=!e.visible,e.create?e.el.disabled=e.disabled||t.disabled||t.readonly:(e.el.setAttribute(`role`,`option`),e.el.setAttribute(`aria-selected`,e.selected?`true`:`false`)),e.create||(e.el.dataset.value=e.value),e.create||(e.el.dataset.label=e.label),n({el:e.el,attr:`data-selected`,present:!e.create&&e.selected,value:`true`}),n({el:e.el,attr:`data-highlighted`,present:!e.create&&e.value===r.navigation.activeValue,value:`true`}),n({el:e.el,attr:`data-disabled`,present:e.disabled,value:`true`}),n({el:e.el,attr:`aria-disabled`,present:e.disabled,value:`true`}),e.el.querySelectorAll(`[data-ui-select-option-indicator]`).forEach(t=>{n({el:t,attr:`data-selected`,present:e.selected,value:`true`}),C(t,e.selected)})});let a=M().querySelector(`[data-ui-select-option-empty]`);a&&(a.hidden=i.some(e=>e.visible&&e.create&&!e.disabled)||(t.virtualized&&t.optionsFetchUrl?k!==0:i.some(e=>e.visible&&!e.create)))},nt=()=>JSON.stringify(Array.from(M().querySelectorAll(lt)).map(e=>({create:e.hasAttribute(`data-ui-select-option-create`),value:e.dataset.value??``,label:e.hasAttribute(`data-ui-select-option-create`)?e.textContent?.trim()??``:e.dataset.label??e.textContent?.trim()??``,disabled:e.dataset.disabled??``,selected:e.dataset.selected??``,selectedContent:e.querySelector(ut)?.innerHTML??null}))),rt=e=>{let t=Ie();if(!t)return;let n=B(),r=V(),i=e.project(``,r.selection),a=r.selection.map(({value:e,label:t})=>({value:e,label:t,disabled:i.firstByValue.get(e)?.disabled??!1,option:i.firstByValue.get(e)})),o=n.size===`xs`||n.size===`sm`?`xs`:`sm`,s=Me(M(),`data-ui-select-chip-template`);t.hidden=!J()||a.length===0;let c=new Set(t.hidden?[]:a.map(({value:e})=>e));if(w.forEach(({instance:e},n)=>{(!c.has(n)||e.template!==s||e.element.parentElement!==t)&&(e.destroy(),w.delete(n))}),t.hidden)return;if(!s)throw Error(`A pillbox select requires a chip template.`);let l={chip:x({part:je.parts.root,props:{variant:n.chipVariant,color:n.chipColor,size:o,radius:`sm`},className:x({part:Y.parts.chip,className:n.chipClass})}),label:x({part:Y.parts.chipLabel}),plainLabel:x({part:Y.parts.chipPlainLabel}),remove:x({part:je.parts.close,props:{size:o},className:x({part:Y.parts.chipRemove})})};a.forEach((e,r)=>{let i=e.option?.el.querySelector(ut),a=i?.innerHTML??``,c={$chip:{value:e.value,label:e.label||e.value,disabled:n.disabled||n.readonly||e.disabled,hasSelectedContent:!!i},$styles:l,$chipAppearance:{variant:n.chipVariant,color:n.chipColor,size:o}},d=w.get(e.value);if(d)d.instance.update(c);else{let t=Ne(u,s,c);t.element.dataset.uiSelectChip=``,t.element.dataset.value=e.value,d={instance:t,content:``},w.set(e.value,d)}if(d.content!==a){let t=d.instance.element.querySelector(`[data-ui-select-chip-selected-content]`);t&&t.replaceChildren(...e.option?[qe(e.option)??``]:[]),d.content=a}let f=d.instance.element,p=t.children[r]??null;f!==p&&d.instance.mount(t,p)})},it=()=>{let e=Le();if(!e)return;let t=B();_e=de({container:e,state:{name:t.name,required:t.required,values:t.disabled?[]:W(),form:M().dataset.form??``,marker:`data-ui-select-hidden-input`},currentKey:_e})},at=e=>{Ze(),Qe(e),rt(e)},ot=e=>{let t=JSON.stringify([J(),W()]),n=t!==xe;if(xe=t,!n){Ce||at(e);return}let r=++Se,i=M().ownerDocument.activeElement;if(!p||!J()||i?.matches(`:focus-visible`)){Ce=!1,we?.complete(),at(e);return}let a=[...w.values()].map(({instance:e})=>e.element);a.push(N()),a.forEach(e=>l(e,{animationType:`position`})),Ce=!0,we=c(M(),{target:a,signal:le.signal,update:()=>{f&&r===Se&&(Ce=!1,U(at))}})},X=()=>U(e=>{Ye(),$e(e),et(),tt(e),ot(e),it()}),dt=()=>{f&&U(e=>{if(!Z.hasTag(`interactive`))return;let t=B(),n=e=>{let t=M().ownerDocument.activeElement,n=t instanceof HTMLElement&&t.matches(`:focus-visible`)&&!re(t);ne(e,{showIndicator:n})};v?.presentation()===`anchored`?t.mode===`combobox`?n(P()):He(e)?n(F()):n(N()):n((He(e)?F():null)??M().querySelector(`[data-ui-select-sheet-close]`)??L())})},ft=e=>U(t=>{let n=G(t).enabled,r=B();if(r.mode===`combobox`){Q(e??(r.autoHighlight?n[0]?.value??``:``));return}if(V().navigation.activeValue)return;let i=W().map(e=>n.find(t=>t.value===e)).find(e=>e!==void 0);i&&Q(i.value)}),pt=()=>U(e=>{let t=V(),n=K(W(t.selection),e);gt(Ve(n),Ve(t.selection))||Z.send({type:`RECONCILE_SELECTION`,selection:n});let r=G(e).enabled;t.navigation.activeValue&&!r.some(e=>e.value===t.navigation.activeValue)&&(E=`keyboard`,Z.send({type:`ACTIVE`,value:B().autoHighlight?r[0]?.value??``:``}),St()),X()}),mt=e=>U(t=>{let n=(Array.isArray(e.changes)?e.changes:[]).flatMap(e=>e&&typeof e==`object`&&`key`in e?[String(e.key)]:[]);if(n.some(e=>e===`value`||e===`values`||e===`multiple`||e===`selectedLabelMap`)){let e=K(q(B()),t);Z.send({type:`RECONCILE_SELECTION`,selection:e})}n.includes(`optionsTotalItems`)&&(k=B().optionsTotalItems,A=k,z()?.setTotalItems(k)),n.includes(`optionsFetchUrl`)&&(vt(),queueMicrotask(vt)),X()}),_t=e=>{let t=B(),n=new URL(t.optionsFetchUrl,document.baseURI);return e?n.searchParams.set(t.optionSearchParam,e):n.searchParams.delete(t.optionSearchParam),/^[a-z][a-z\d+.-]*:/i.test(t.optionsFetchUrl)||t.optionsFetchUrl.startsWith(`//`)?n.href:`${n.pathname}${n.search}${n.hash}`},vt=()=>{if(!f)return;let e=B();if(!e.virtualized)return;let t=e.optionsFetchUrl?_t(V().search.query):``,n=R();if(!n)return;if(n.dataset.fetchUrl===t){De=t;return}if(De===t)return;let r=z();r&&(De=t,r.setUrl(t,{reset:!0}))},yt=()=>{window.clearTimeout(O);let e=B();e.virtualized&&e.optionsFetchUrl&&(e.searchable||e.mode===`combobox`)&&(O=window.setTimeout(()=>{vt();let t=z();t&&k===0&&e.optionsTotalItems>0&&(k=e.optionsTotalItems,t.setTotalItems(k))},e.optionSearchDebounce))},Z=te({schema:Ue,hooks:We,createMachine:({props:e})=>Xe({props:e,context:Ge(e),effects:{prepareOpen:({event:e})=>U(()=>{E=`keyboard`,v?.opened()||y.defer(),v?.open(),ft(typeof e.activeValue==`string`?e.activeValue:void 0),X()}),finishOpen:()=>{y.reveal()&&dt(),X(),t({el:M(),name:`ui:open`})},prepareClose:({event:e})=>{T=!1,(e.restoreFocus===!0||e.type===`SELECT`||e.type===`CREATE`)&&ne(N(),{showIndicator:e.restoreFocus===!0||e.showIndicator===!0}),X()},finishClose:()=>{v?.close(),y.reveal(),X(),t({el:M(),name:`ui:close`})},commitSelection:({event:e})=>{X(),d(M(),`data-value`,`data-values`),me({container:Le(),fallback:M(),marker:`data-ui-select-hidden-input`});let{selection:n}=V();e.type===`CLEAR`&&t({el:M(),name:`ui:clear`}),t({el:M(),name:`ui:change`,detail:{value:n[0]?.value??``,values:W(n),label:n[0]?.label??``,labels:Ve(n),option:Te}}),Te=null},commitSearch:()=>{X(),St(),t({el:M(),name:`ui:search`,detail:{search:V().search.query}}),yt()},prepareCreate:({event:e})=>{X(),t({el:M(),name:`ui:create`,detail:{search:V().search.query,value:V().creation.value,modal:typeof e.modal==`string`?e.modal:``}})},syncProps:({event:e})=>mt(e),syncOptions:pt,syncActive:X,syncDom:X}})}),bt=(e,t)=>Z.send({type:e,selection:t}),xt=(e,t,n)=>{n?.preventDefault();let r=B();if(r.disabled||r.readonly||e.disabled)return;let i=n instanceof KeyboardEvent||n instanceof MouseEvent&&n.detail===0;if(e.create){Z.send({type:`CREATE`,showIndicator:i,value:e.value||V().search.query,modal:e.el.dataset.modal??``});return}Te=e.el,T=!1;let a=W(),o=r.multiple?a.includes(e.value)?a.filter(t=>t!==e.value):[...a,e.value]:[e.value];Z.send({type:`SELECT`,selection:K(o,t),showIndicator:i})},St=()=>U(e=>{B().mode===`combobox`&&E===`keyboard`&&H()&&!y.pending()&&G(e).firstByValue.get(V().navigation.activeValue)?.el.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:`instant`})}),Q=(e,n=`keyboard`)=>U(r=>{if(E=n,e!==V().navigation.activeValue){Z.send({type:`ACTIVE`,value:e});let n=G(r).firstByValue.get(e);t({el:M(),name:`ui:highlight`,detail:{value:e,option:n?.el??null}})}St()}),Ct=e=>U(t=>{let n=G(t).enabled;if(n.length===0)return;let r=n.findIndex(e=>e.value===V().navigation.activeValue),i=B(),a=i.mode===`combobox`&&i.loop?1:0,o=se(r+a,n.length+a,e,i.loop)-a;Q(n[o]?.value??``)}),wt=e=>U(t=>{let n=B();if(n.disabled||n.readonly)return;T=!0,E=`keyboard`;let r=n.autoHighlight?G(t,e).enabled[0]?.value??``:``;Z.send({type:`SEARCH`,query:e,optionsId:_,activeValue:r})}),Tt=e=>U(t=>{if(e.key===`Tab`&&v?.presentation()!==`anchored`){he(e,I());return}if(e.target instanceof Element&&e.target.closest(`[data-ui-select-option-create]`)&&e.key!==`Escape`)return;let n=e.target instanceof HTMLInputElement;if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),!H()){if(B().mode===`combobox`){let n=G(t).enabled;Z.send({type:`OPEN`,activeValue:e.key===`ArrowDown`?n[0]?.value??``:n.at(-1)?.value??``});return}Z.send({type:`OPEN`})}Ct(e.key===`ArrowDown`?1:-1);return}if(!n&&H()&&(e.key===`Home`||e.key===`End`)){e.preventDefault();let n=G(t).enabled;Q(e.key===`Home`?n[0]?.value??``:n.at(-1)?.value??``);return}if(H()&&(e.key===`Enter`||!n&&e.key===` `)){e.preventDefault();let n=G(t).firstByValue.get(V().navigation.activeValue);n&&xt(n,t,e);return}if((e.key===`Backspace`||e.key===`Delete`)&&J()&&!V().search.query){let n=P();if(n&&(n.selectionStart!==0||n.selectionEnd!==0))return;let r=t.project(``,V().selection),i=[...W()].reverse().find(e=>!r.firstByValue.get(e)?.disabled);i&&(e.preventDefault(),$.deselect(i,e));return}if(e.key===`Escape`&&Re()){e.preventDefault(),e.stopPropagation(),Z.send({type:`CLOSE`,restoreFocus:!0});return}if(!n&&!He(t)&&e.key.length===1&&!e.metaKey&&!e.ctrlKey&&!e.altKey){D+=e.key.toLowerCase(),window.clearTimeout(Ee),Ee=window.setTimeout(()=>{D=``},500);let n=G(t).enabled.find(e=>ve(e.label).startsWith(D));n&&Q(n.value)}}),Et=()=>{let e=M(),t=(e,t)=>t.closest(`[data-ui-select-trigger], [data-ui-select-icon="trailing"], [data-ui-select-control]`)?(e instanceof PointerEvent||e instanceof MouseEvent&&e.detail>0?ne(N(),{showIndicator:!1}):ne(N()),N()instanceof HTMLInputElement?H()||Z.send({type:`OPEN`}):$.toggle(e),(t!==P()||v?.presentation()!==`anchored`)&&e.preventDefault(),!0):!1;r({target:e,event:`click`,cleanup:S,handler:e=>{let n=e.target;if(!(n instanceof Element))return;if(n.closest(`[data-ui-select-sheet-close]`)){$.close(e);return}if(n.closest(`[data-ui-select-search-clear]`)){e.preventDefault(),wt(``);return}if(n.closest(`[data-ui-select-clear], [data-ui-select-button-clear]`)){$.clear(e);return}let r=n.closest(`[data-ui-select-chip-remove]`);if(r){$.deselect(r.dataset.value??``,e);return}let i=n.closest(lt);if(i){U(t=>{let n=G(t).byElement.get(i);n&&xt(n,t,e)});return}(!(e instanceof MouseEvent)||e.detail===0)&&t(e,n)}}),r({target:e,event:`input`,cleanup:S,handler:e=>{let t=e.target;t instanceof HTMLInputElement&&t.matches(`[data-ui-select-input], [data-ui-select-search-input]`)&&wt(t.value)}}),r({target:e,event:`keydown`,cleanup:S,handler:e=>{e instanceof KeyboardEvent&&Tt(e)}}),r({target:e,event:`pointerdown`,cleanup:S,handler:e=>{let n=e.target;if(n instanceof Element){if(n.closest(lt)||n.closest(`[data-ui-select-search-clear]`)||n.closest(`[data-ui-select-clear], [data-ui-select-button-clear], [data-ui-select-chip-remove]`)){e.preventDefault();return}t(e,n)}}}),r({target:e,event:`pointerover`,cleanup:S,handler:e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(lt);n&&U(e=>{let t=G(e).byElement.get(n);t&&!t.create&&t.visible&&!t.disabled&&Q(t.value,`pointer`)})}}),r({target:L(),event:`pointerleave`,cleanup:S,handler:()=>{B().mode===`combobox`&&E===`pointer`&&Q(``,`pointer`)}}),r({target:e,event:`focusout`,cleanup:S,handler:t=>{if(!(t instanceof FocusEvent))return;let n=t.relatedTarget;n instanceof Node&&e.contains(n)||Re()&&Z.send({type:`CLOSE`})}}),r({target:e,event:`ui:virtualizer-total-change`,cleanup:S,handler:e=>{if(!(e instanceof CustomEvent)||!R()?.contains(e.target))return;let t=Number(e.detail?.totalItems);Number.isFinite(t)&&t>=0&&(k=Math.floor(t),A=Math.max(A,k)),Z.send({type:`OPTIONS_CHANGED`})}}),r({target:e,event:`ui:virtualizer-load`,cleanup:S,handler:e=>{R()?.contains(e.target)&&Z.send({type:`OPTIONS_CHANGED`})}}),r({target:I(),event:`toggle`,cleanup:S,handler:e=>{`newState`in e&&e.newState===`closed`&&Re()&&Z.send({type:`CLOSE`})}}),S.add(ue({isEnabled:()=>Z.hasTag(`interactive`),roots:()=>[M(),I()],onDismiss:()=>Z.send({type:`CLOSE`})}));let n=()=>{b?.disconnect();let e=M().querySelectorAll(ut);e.length&&(b??=new MutationObserver(()=>Z.send({type:`OPTIONS_CHANGED`})),e.forEach(e=>{b.observe(e.content,{attributes:!0,characterData:!0,childList:!0,subtree:!0})}))};oe=be({targets:I(),read:nt,onChange:()=>{n(),Z.send({type:`OPTIONS_CHANGED`})},observer:{attributes:!0,attributeFilter:[`data-disabled`,`data-item`,`data-label`,`data-selected`,`data-selected-label`,`data-text-value`,`data-ui-select-option-selected-template`,`data-value`],characterData:!0,childList:!0,subtree:!0}}),n()},$;return $={...Z,get isOpen(){return this.snapshot.current?.tags.includes(`expanded`)??!1},get isSearching(){return this.snapshot.current?.tags.includes(`searching`)??!1},get value(){return this.snapshot.current?.context.selection[0]?.value??``},get values(){return this.snapshot.current?.context.selection.map(({value:e})=>e)??[]},get selectedLabels(){return this.snapshot.current?.context.selection.map(({label:e})=>e)??[]},get search(){return this.snapshot.current?.context.search.query??``},get activeValue(){return this.snapshot.current?.context.navigation.activeValue??``},init(){S=ie(this),S.add(()=>le.abort()),f=this.$el,m=this.$id(`select-button`),h=this.$id(`select-input`),g=this.$id(`select-listbox`),_=Fe().id||M().dataset.optionsId||this.$id(`select-options`),Fe().id=_,Z.connect(this.$el,this.snapshot),k=B().optionsTotalItems,A=k,Pe().id||=`${g}-title`,v=st({reference:ke,floating:I,labelId:()=>Pe().id,position:()=>B().side,align:()=>B().align,gap:()=>B().gap,offset:()=>B().offset,matchReferenceWidth:!0}),S.add(Z.onTransition(`opening`,e=>{let t=()=>{if(e.signal.aborted||(y.reveal(),dt(),St(),M().hasAttribute(`x-ui-transition:opening`)))return;let t=v?.presentation()===`anchored`;return o(e,t?i(I()):s.popover.in,{target:I(),role:`feedback`})},n=v?.positioned();return n?n.then(t):t()})),S.add(Z.onTransition(`closing`,e=>{let t=()=>{if(!e.signal.aborted&&(y.reveal(),!M().hasAttribute(`x-ui-transition:closing`)))return o(e,v?.presentation()===`anchored`?a:s.popover.out,{target:I(),role:`feedbackExit`})},n=v?.positioned();return n?n.then(t):t()})),Et(),X(),queueMicrotask(vt),p=!0,B().open&&!B().disabled&&!B().readonly&&queueMicrotask(()=>Z.send({type:`OPEN`}))},destroy(){w.forEach(({instance:e})=>e.destroy()),w.clear(),window.clearTimeout(Ee),window.clearTimeout(O),oe?.(),oe=null,b?.disconnect(),b=null,v?.destroy(),v=null,Z.disconnect(),y.reveal(),f=null},get root(){let e=this.snapshot.current?.props??B();return ce({inputs:[x({part:Y.parts.root,props:e,className:e.class}),{"data-ui-select":``,":data-state":()=>Z.hasTag(`expanded`)?`open`:`closed`}]})},open(e){e?.preventDefault(),!(B().disabled||B().readonly)&&Z.send({type:`OPEN`})},close(e){e?.preventDefault(),Z.send({type:`CLOSE`,restoreFocus:e instanceof KeyboardEvent})},toggle(e){e?.preventDefault(),!(B().disabled||B().readonly)&&Z.send({type:`TOGGLE`})},select(e,t){U(n=>{let r=n.project(``,V().selection).firstByValue.get(e);r&&xt(r,n,t)})},deselect(e,t){U(n=>{t?.preventDefault(),!(B().disabled||B().readonly)&&(n.project(``,V().selection).firstByValue.get(e)?.disabled||bt(`DESELECT`,K(W().filter(t=>t!==e),n)))})},selectAll(e){U(t=>{if(e?.preventDefault(),!B().multiple||B().disabled||B().readonly)return;let n=G(t).enabled;bt(`SELECT_ALL`,n.map(e=>({value:e.value,label:e.selectedLabel})))})},clear(e){if(e?.preventDefault(),e?.stopPropagation(),B().disabled||B().readonly)return;T=!1;let t=V().search.query!==``;Z.send({type:`CLEAR`}),t&&yt()},setSearch:wt},$},vt=e=>{y(`UiSelect`,()=>_t(e))(e)},yt=new WeakSet,Z=e=>{yt.has(e)||(yt.add(e),b(e),vt(e))};export{_t as UiSelect,Z as default,Z as registerSelect};
|
|
2
|
+
//# sourceMappingURL=select-C3hjgwMw.js.map
|