@vireo-ai/trellis-ui 0.1.53 → 0.1.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -1
- package/package.json +2 -2
- package/packages/client/src/components/keybinding/styles.css +18 -2
- package/packages/client/src/components/link/styles.css +42 -0
- package/packages/client/src/components/tooltip/styles.css +3 -8
- package/packages/client/src/styles/components.css +2 -0
- package/packages/client/src/styles/generated/theme-fonts.css +1 -1
- package/packages/client/src/styles/generated/theme-palette.css +5 -1
- package/packages/client/src/styles/generated/theme-runtime.css +425 -6
- package/packages/client/src/styles/generated-sources.css +1 -1
- package/packages/client/src/styles/layout-participation.css +17 -0
- package/packages/client/src/styles/recipes/intent.css +3 -3
- package/packages/client/types/assets/bridge.d.ts +2 -1
- package/packages/client/types/capabilities/sortable.d.ts +2 -2
- package/packages/client/types/component-api.d.ts +1 -1
- package/packages/client/types/components/box/contract.d.ts +19 -19
- package/packages/client/types/components/button/contract.d.ts +1 -1
- package/packages/client/types/components/checkbox/machine.d.ts +0 -3
- package/packages/client/types/components/common.d.ts +23 -2
- package/packages/client/types/components/container/contract.d.ts +11 -11
- package/packages/client/types/components/file-upload/contract.d.ts +1 -1
- package/packages/client/types/components/file-upload/machine.d.ts +10 -12
- package/packages/client/types/components/flex/contract.d.ts +9 -9
- package/packages/client/types/components/frame/contract.d.ts +27 -26
- package/packages/client/types/components/grid/contract.d.ts +9 -9
- package/packages/client/types/components/heading/contract.d.ts +2 -2
- package/packages/client/types/components/input/contract.d.ts +1 -1
- package/packages/client/types/components/keybinding/contract.d.ts +5 -2
- package/packages/client/types/components/layout.d.ts +303 -149
- package/packages/client/types/components/link/contract.d.ts +30 -0
- package/packages/client/types/components/link/index.d.ts +2 -0
- package/packages/client/types/components/menu/contract.d.ts +17 -4
- package/packages/client/types/components/panels/contract.d.ts +1 -1
- package/packages/client/types/components/panels/machine.d.ts +17 -10
- package/packages/client/types/components/runtime.d.ts +1 -1
- package/packages/client/types/components/section/contract.d.ts +9 -9
- package/packages/client/types/components/select/contract.d.ts +1 -1
- package/packages/client/types/components/select/machine.d.ts +8 -7
- package/packages/client/types/components/stack/contract.d.ts +9 -9
- package/packages/client/types/components/switch/machine.d.ts +1 -5
- package/packages/client/types/components/text/contract.d.ts +4 -4
- package/packages/client/types/components/toast/index.d.ts +0 -2
- package/packages/client/types/components/toast/machine.d.ts +6 -5
- package/packages/client/types/components/virtualizer/cursor.d.ts +1 -1
- package/packages/client/types/components/virtualizer/index.d.ts +1 -1
- package/packages/client/types/core.d.ts +2 -2
- package/packages/client/types/directives/sortable.d.ts +2 -1
- package/packages/client/types/motion/owned.d.ts +5 -3
- package/packages/client/types/runtime/alpine-data.d.ts +3 -1
- package/packages/client/types/runtime/cursor-data-source.d.ts +14 -19
- package/packages/client/types/runtime/drag-and-drop/index.d.ts +2 -2
- package/packages/client/types/runtime/drag-and-drop/sortable/contract.d.ts +12 -12
- package/packages/client/types/runtime/drag-and-drop/sortable/feedback.d.ts +3 -3
- package/packages/client/types/runtime/drag-and-drop/sortable/index.d.ts +2 -2
- package/packages/client/types/runtime/drag-and-drop/sortable/placement.d.ts +7 -7
- package/packages/client/types/runtime/drag-and-drop/sortable/registry.d.ts +9 -5
- package/packages/client/types/runtime/engine/request.d.ts +29 -5
- package/packages/client/types/runtime/engine/stream.d.ts +6 -2
- package/packages/client/types/runtime/index.d.ts +4 -4
- package/packages/client/types/runtime/manifest.d.ts +31 -8
- package/packages/client/types/runtime/scroll-lock.d.ts +2 -3
- package/packages/client/types/runtime/theme.d.ts +2 -2
- package/packages/client/types/runtime/ui.d.ts +3 -3
- package/packages/client/types/runtime/virtualizer-fragment.d.ts +1 -1
- package/packages/client/types/runtime/virtualizer.d.ts +1 -1
- package/packages/client/types/utils/dom.d.ts +3 -3
- package/packages/client/types/utils/index.d.ts +2 -2
- package/packages/client/types/utils/object.d.ts +2 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +464 -26
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
- 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 +524 -495
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-data-Dvc_bXq6.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-data-Dvc_bXq6.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-9HwatUrm.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-9HwatUrm.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{anchored-popover-BXEMsLrA.js → anchored-popover-CSBqS_MK.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{anchored-popover-BXEMsLrA.js.map → anchored-popover-CSBqS_MK.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-TcE7HSvq.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-TcE7HSvq.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-DAUyPPWa.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-CrezWE-8.js.map → capability-motion-DAUyPPWa.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-BQgJCSHn.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-resizable-Bga8TngJ.js.map → capability-resizable-BQgJCSHn.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BLyIVEh9.js +3 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BLyIVEh9.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{alpine-data-CytyCyfk.js → cleanup-manager-D9QiZF_Q.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cleanup-manager-D9QiZF_Q.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-De1R7Xh6.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-De1R7Xh6.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-CzqwFGEd.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-CzqwFGEd.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-CogF8tNb.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-CogF8tNb.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-B2mQNyzN.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-B2mQNyzN.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-DiTFTWeR.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-DiTFTWeR.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-cns3DNcf.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{drag-and-drop-DHq3udf7.js.map → drag-and-drop-cns3DNcf.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B1wGmQth.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B1wGmQth.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B3hMqvMn.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B3hMqvMn.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BBuJrkhp.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BBuJrkhp.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BMLdOzZs.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BMLdOzZs.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BMeqWpPy.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BMeqWpPy.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BOk2j8j3.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BOk2j8j3.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BhINWOfZ.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BhINWOfZ.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-AFRarPro.js → entry.generated-Bqy0wCWo.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-AFRarPro.js.map → entry.generated-Bqy0wCWo.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C-4OkQdv.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C-4OkQdv.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfkH92RS.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfkH92RS.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CmvKWs0J.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BqEMECZx.js.map → entry.generated-CmvKWs0J.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CnFggOc8.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CnFggOc8.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CnY5J5bD.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CnY5J5bD.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CuZffmX3.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CuZffmX3.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DTRN8-Ks.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DTRN8-Ks.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-QspMEPHx.js → entry.generated-Da6pELhK.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-QspMEPHx.js.map → entry.generated-Da6pELhK.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-De9SwKec.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-De9SwKec.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BSbzZ3xh.js → entry.generated-QV-az1in.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BSbzZ3xh.js.map → entry.generated-QV-az1in.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-sKnD2JaT.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-sKnD2JaT.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-x0moHcUM.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-x0moHcUM.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bu7BMlbI.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bu7BMlbI.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bxu-sgBm.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bxu-sgBm.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-DXDHgDsN.js → entry2.generated-dkzHCN26.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-dkzHCN26.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-g1AVE90L.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-g1AVE90L.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{form-control-DjbUb602.js → form-control-DL1Hkox3.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{form-control-DjbUb602.js.map → form-control-DL1Hkox3.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{fragment-Bl3Rq38L.js → fragment-BzHC-hAJ.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{fragment-Bl3Rq38L.js.map → fragment-BzHC-hAJ.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-DQfpKM3w.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-DQfpKM3w.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-mw9QhBgu.js +3 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-mw9QhBgu.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/object-SRW-YaCA.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/object-SRW-YaCA.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-lock-C5dQtr4Y.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-lock-C5dQtr4Y.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/semantic-observer-CIoriWtV.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{semantic-observer-CdRbZHir.js.map → semantic-observer-CIoriWtV.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-CpTCQjY5.js → styles-BstOueoe.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-CpTCQjY5.js.map → styles-BstOueoe.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BGfrCghL.js +4 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BGfrCghL.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +397 -339
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
- package/packages/client/types/motion/registry.d.ts +0 -13
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-data-CytyCyfk.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-BTDXpEr6.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-BTDXpEr6.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-B4S_D6hV.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-B4S_D6hV.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-CrezWE-8.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-Bga8TngJ.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-C65CbsZn.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-C65CbsZn.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-Dfj6NCjU.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-Dfj6NCjU.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-xDNH-xzt.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-xDNH-xzt.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-D14VdwFn.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-D14VdwFn.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-qAeVl7dc.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-qAeVl7dc.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-DHq3udf7.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-2QEJDMe-.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-2QEJDMe-.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BB7wWQfT.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BB7wWQfT.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BqEMECZx.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C07Tn0r-.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C07Tn0r-.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C2gP0OfV.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C2gP0OfV.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CRj4-Ef1.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CRj4-Ef1.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSDZ4U92.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSDZ4U92.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CirM6w9Q.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CirM6w9Q.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D07X7NjA.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D07X7NjA.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DVIdOrvh.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DVIdOrvh.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_FlEfdN.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_FlEfdN.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DrmfusOi.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DrmfusOi.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DwYIFLsE.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DwYIFLsE.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-bEl9RRQt.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-bEl9RRQt.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-gxr2-89M.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-gxr2-89M.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-prmw8aRc.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-prmw8aRc.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-wEt8LYAv.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-wEt8LYAv.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xAXkL86X.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xAXkL86X.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CXnPh3K6.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CXnPh3K6.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CwzLpL1f.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CwzLpL1f.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-DXDHgDsN.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dolv_r3b.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dolv_r3b.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Dqut4h89.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Dqut4h89.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-ke2fZiWo.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-ke2fZiWo.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-lock-DOw7dmi1.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-lock-DOw7dmi1.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/semantic-observer-CdRbZHir.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-FNYDCNh6.js +0 -4
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-FNYDCNh6.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entry.generated-DVIdOrvh.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/hover.mjs","../../../../../../../../client/src/components/toast/contract.ts","../../../../../../../../client/src/components/toast/machine.ts","../../../../../../../../client/src/components/toast/styles.ts","../../../../../../../../client/src/components/toast/index.ts","../../../../../../../../client/src/components/toast/entry.generated.ts"],"sourcesContent":["const isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\nexport { isDragActive, isDragging };\n//# sourceMappingURL=is-active.mjs.map\n","import { resolveElements } from '../../utils/resolve-elements.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n//# sourceMappingURL=setup.mjs.map\n","import { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || isDragActive());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\nexport { hover };\n//# sourceMappingURL=hover.mjs.map\n","import {bool, number, oneOf, string, type PropState, type SchemaToProps} from '../../runtime';\n\nconst TOAST_LEVELS = ['info', 'success', 'warning', 'danger', 'debug'] as const;\nconst TOAST_COLORS = ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_RESOLVED_COLORS = ['neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_VARIANTS = ['default', 'soft', 'surface', 'solid', 'outline'] as const;\nconst TOAST_POSITIONS = ['top-right', 'top-left', 'top-center', 'bottom-right', 'bottom-left', 'bottom-center'] as const;\n\nconst toastSchema = {\n level: oneOf(TOAST_LEVELS, 'info'),\n color: oneOf(TOAST_COLORS, 'auto'),\n variant: oneOf(TOAST_VARIANTS, 'default'),\n title: string,\n description: string,\n duration: number.default(5000).min(0),\n dismissible: bool.default(true),\n class: string,\n contentClass: string,\n closeClass: string,\n};\n\nconst toastOutletSchema = {\n id: string.default('ui-toast-root'),\n position: oneOf(TOAST_POSITIONS, 'top-right'),\n duration: number.default(5000).min(0),\n includeMessages: bool.default(true),\n maxItems: number.default(3).min(0),\n class: string,\n};\n\ntype ToastLevel = typeof TOAST_LEVELS[number];\ntype ToastColor = typeof TOAST_COLORS[number];\ntype ToastResolvedColor = typeof TOAST_RESOLVED_COLORS[number];\ntype ToastVariant = typeof TOAST_VARIANTS[number];\ntype ToastPosition = typeof TOAST_POSITIONS[number];\ntype ToastProps = SchemaToProps<typeof toastSchema>;\ntype ToastOutletProps = PropState<typeof toastOutletSchema>;\n\nexport {TOAST_COLORS, TOAST_LEVELS, TOAST_POSITIONS, TOAST_RESOLVED_COLORS, TOAST_VARIANTS, toastOutletSchema, toastSchema};\nexport type {ToastColor, ToastLevel, ToastOutletProps, ToastPosition, ToastProps, ToastResolvedColor, ToastVariant};\n","import {createMachine, type Machine} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {ToastProps} from './contract';\n\ntype ToastDismissReason = 'timeout' | 'close' | 'api' | 'swipe';\n\ntype ToastContext = {\n timer: {remaining: number; paused: boolean};\n dismissal: {reason: ToastDismissReason};\n};\n\ntype ToastMachineEffects = {\n prepareOpen(): void;\n finishOpen(): void;\n startTimer(): void;\n stopTimer(): void;\n prepareClose(): void;\n finishClose(reason: ToastDismissReason): void;\n syncProps(): void;\n};\n\nconst openingHook = defineHook({\n name: 'opening', state: 'opening', project: () => ({}), onDone: 'OPENING_DONE', onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, Record<string, never>, 'opening'>);\nconst closingHook = defineHook({\n name: 'closing', state: 'closing', project: ({context}) => ({reason: context.dismissal.reason}),\n onDone: 'CLOSING_DONE', onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, {reason: ToastDismissReason}, 'closing'>);\nconst toastHooks = [openingHook, closingHook] as const;\n\nconst createToastMachine = (props: ToastProps, effects: ToastMachineEffects): Machine<ToastContext, ToastProps> => createMachine<ToastContext, ToastProps>({\n initial: 'idle',\n on: {\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'syncProps'},\n },\n states: {\n idle: {on: {OPEN: {target: 'opening', effects: 'prepareOpen'}}},\n opening: {\n tags: ['visible', 'expanded', 'transitioning'],\n on: {\n OPENING_DONE: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n OPENING_ERROR: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n PAUSE: {reduce: 'pause'},\n RESUME: {reduce: 'resume'},\n DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'},\n },\n },\n open: {\n id: 'open', initial: 'running', tags: ['visible', 'expanded', 'open'],\n on: {DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'}},\n states: {\n persistent: {on: {PAUSE: {reduce: 'pause'}, RESUME: {reduce: 'resume'}, DURATION_CHANGED: {target: 'running', guard: 'hasDuration', reduce: 'resetDuration'}}},\n running: {entry: 'startTimer', exit: 'stopTimer', on: {PAUSE: {target: 'paused', reduce: 'pause'}, TICK: {reduce: 'tick'}, DURATION_CHANGED: [{target: 'persistent', guard: 'isPersistent'}, {target: 'running', reduce: 'resetDuration'}]}},\n paused: {tags: ['paused'], on: {RESUME: {target: 'running', reduce: 'resume'}, DURATION_CHANGED: [{target: 'persistent', guard: 'isPersistent'}, {reduce: 'resetDuration'}]}},\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n CLOSING_DONE: {target: 'removed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'removed', effects: 'finishClose'},\n },\n },\n removed: {tags: ['removed']},\n },\n}, {\n context: {timer: {remaining: props.duration, paused: false}, dismissal: {reason: 'api'}}, props,\n reducers: {\n replaceProps: ({context, event, props: currentProps}) => {\n const nextProps = event.props as ToastProps | undefined;\n return {context, props: nextProps ?? currentProps};\n },\n pause: ({context, event}) => ({context: {...context, timer: {remaining: typeof event.remaining === 'number' ? event.remaining : context.timer.remaining, paused: true}}}),\n resume: ({context}) => ({context: {...context, timer: {...context.timer, paused: false}}}),\n tick: ({context, event}) => ({context: {...context, timer: {...context.timer, remaining: Math.max(0, Number(event.remaining) || 0)}}}),\n resetDuration: ({context, props: currentProps}) => ({context: {...context, timer: {...context.timer, remaining: currentProps.duration}}}),\n dismiss: ({context, event}) => ({context: {...context, dismissal: {\n reason: event.reason === 'timeout' || event.reason === 'close' || event.reason === 'swipe'\n ? event.reason\n : 'api' as ToastDismissReason,\n }}}),\n },\n guards: {\n isPersistent: ({props: currentProps}) => currentProps.duration === 0,\n hasDuration: ({props: currentProps}) => currentProps.duration > 0,\n isPaused: ({context}) => context.timer.paused,\n },\n effects: {\n prepareOpen: effects.prepareOpen, finishOpen: effects.finishOpen,\n startTimer: effects.startTimer, stopTimer: effects.stopTimer,\n prepareClose: effects.prepareClose, syncProps: effects.syncProps,\n finishClose: ({context}) => effects.finishClose(context.dismissal.reason),\n },\n});\n\nexport {createToastMachine, toastHooks};\nexport type {ToastContext, ToastDismissReason, ToastMachineEffects};\n","import {defineStyles} from '../../runtime';\n\nconst toastStyles = defineStyles({definition: {\n component: 'ui.toast',\n parts: {\n root: {\n base: [\n 'group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none',\n 'data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0',\n ],\n variants: {\n variant: {\n default: '',\n soft: '',\n surface: '',\n solid: '',\n outline: '',\n },\n color: {\n neutral: '',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n hasMarker: {\n true: 'grid-cols-[auto_minmax(0,1fr)_auto]',\n false: 'grid-cols-[minmax(0,1fr)_auto]',\n },\n hasDescription: {\n true: '',\n false: '',\n },\n },\n defaults: {\n variant: 'default',\n color: 'neutral',\n hasMarker: false,\n hasDescription: false,\n },\n },\n marker: {\n base: 'size-2 self-center rounded-full',\n variants: {\n color: {\n neutral: 'hidden',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n default: 'hidden',\n soft: '',\n surface: '',\n solid: 'hidden',\n outline: '',\n },\n },\n defaults: {\n color: 'neutral',\n variant: 'default',\n },\n },\n content: {\n base: 'grid min-w-0 gap-0.5 self-center',\n },\n title: {\n base: 'min-w-0',\n },\n description: {\n base: 'min-w-0',\n },\n close: {\n base: [\n '-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-full outline-none',\n ],\n },\n closeIcon: {\n base: 'size-icon fill-current',\n },\n outlet: {\n base: [\n 'pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2',\n ],\n variants: {\n position: {\n 'top-right': 'right-4 top-4 justify-items-end',\n 'top-left': 'left-4 top-4 justify-items-start',\n 'top-center': 'left-1/2 top-4 -translate-x-1/2 justify-items-center',\n 'bottom-right': 'bottom-4 right-4 justify-items-end',\n 'bottom-left': 'bottom-4 left-4 justify-items-start',\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2 justify-items-center',\n },\n },\n defaults: {\n position: 'top-right',\n },\n },\n },\n}});\n\nexport {toastStyles};\n","import type Alpine from 'alpinejs';\nimport {animate, hover, motionValue} from 'motion';\n\nimport {\n createAlpineMachine,\n defineAlpineData,\n type AlpineMachine,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {defineProps} from '@client/runtime/codecs';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {animateSize, createMotionPlan, roles, type MotionHandle} from '@client/motion';\nimport {replaceMotion} from '@client/motion/registry';\nimport {addListener, dispatch, type CleanupStack} from '@client/utils';\nimport {\n toastOutletSchema, toastSchema, type ToastColor, type ToastLevel, type ToastOutletProps,\n type ToastProps, type ToastResolvedColor, type ToastVariant,\n} from './contract';\nimport {createToastMachine, toastHooks, type ToastContext, type ToastDismissReason} from './machine';\nimport {toastStyles} from './styles';\n\ntype ToastTransitionName = (typeof toastHooks)[number]['name'];\ntype ToastTransition<TName extends ToastTransitionName = ToastTransitionName> = TransitionForHook<\n Extract<(typeof toastHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype ToastDetail = {description?: unknown; title?: unknown; color?: unknown; level?: unknown; variant?: unknown; duration?: unknown; dismissible?: unknown};\ntype ToastPauseSource = 'outlet' | 'visibility' | 'consumer' | 'gesture';\n\n/**\n * Public Alpine API for `ui.toast`.\n *\n * @public\n */\ninterface UiToastApi {\n /** Whether the opening transition has settled. */\n readonly isOpen: boolean;\n /** Whether any pause source currently holds the lifetime timer. */\n readonly isPaused: boolean;\n /** Auto-dismiss lifetime remaining in milliseconds. */\n readonly remaining: number;\n /** Dismisses the notification through its closing transition. */\n dismiss(): void;\n /** Adds the consumer pause source. */\n pause(): void;\n /** Releases the consumer pause source. */\n resume(): void;\n}\n\n/**\n * Public Alpine API for `ui.toast.outlet`.\n *\n * @public\n */\ninterface UiToastOutletApi {\n /** Adds a notification using the same lifecycle as server-rendered markup. */\n add(detail: ToastDetail): void;\n}\n\ntype ToastData = AlpineMachine<ToastContext, ToastProps, typeof toastHooks> & UiToastApi & {init(): void; destroy(): void};\ntype ToastOutletData = UiToastOutletApi & {props: ToastOutletProps; cleanup: CleanupStack; sync(): void; init(): void; destroy(): void};\n\nconst isToastLevel = (value: unknown): value is ToastLevel => ['info', 'success', 'warning', 'danger', 'debug'].includes(String(value));\nconst isToastColor = (value: unknown): value is ToastColor => ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'].includes(String(value));\nconst isToastVariant = (value: unknown): value is ToastVariant => ['default', 'soft', 'surface', 'solid', 'outline'].includes(String(value));\nconst toastColorForLevel = (level: ToastLevel): ToastResolvedColor => level === 'info' ? 'accent' : level === 'success' || level === 'warning' || level === 'danger' ? level : 'neutral';\nconst resolveToastColor = (color: unknown, level: ToastLevel): ToastResolvedColor => isToastColor(color) && color !== 'auto' ? color : toastColorForLevel(level);\nconst normalizedDuration = (value: unknown, fallback: number): number => {\n const duration = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(duration) && duration >= 0 ? duration : fallback;\n};\n\nconst toastRestTransform = (toast: HTMLElement): string => {\n const style = toast.style;\n const offset = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-offset')) || 0;\n const scale = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-scale')) || 1;\n return `translateY(${offset}px) scale(${scale})`;\n};\n\nconst activeToasts = (outlet: HTMLElement): HTMLElement[] => Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'))\n .filter((toast) => toast.dataset.state !== 'closing' && toast.dataset.state !== 'closed');\n\nconst stackHeightMotions = new WeakMap<HTMLElement, {baseline: string; handle: MotionHandle}>();\n\nconst stopToastStackHeightMotion = (outlet: HTMLElement): void => {\n const active = stackHeightMotions.get(outlet);\n if (!active) return;\n stackHeightMotions.delete(outlet);\n active.handle.stop();\n outlet.style.height = active.baseline;\n};\n\nconst syncToastStack = (outlet: HTMLElement, animateStack = false, fromHeight?: number): void => {\n const renderedHeight = fromHeight ?? outlet.getBoundingClientRect().height;\n stopToastStackHeightMotion(outlet);\n const toasts = Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'));\n outlet.dataset.stack = toasts.length > 1 ? 'collapsed' : 'single';\n const style = getComputedStyle(outlet);\n const gap = Number.parseFloat(style.rowGap || style.gap || '0') || 0;\n const heights = toasts.map((toast) => Math.ceil(toast.scrollHeight || toast.getBoundingClientRect().height));\n const peek = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-peek')) || 8;\n const direction = outlet.dataset.position?.startsWith('bottom') ? -1 : 1;\n const expanded = outlet.dataset.stackExpanded === 'true';\n const depth = Math.min(Math.max(0, toasts.length - 1), 3);\n outlet.style.setProperty('--ui-toast-front-height', `${heights[0] ?? 0}px`);\n outlet.style.setProperty('--ui-toast-stack-height', `${(heights[0] ?? 0) + depth * peek}px`);\n outlet.style.setProperty('--ui-toast-stack-expanded-height', `${heights.reduce((sum, height) => sum + height, 0) + Math.max(0, toasts.length - 1) * gap}px`);\n const targetHeight = outlet.getBoundingClientRect().height;\n if (animateStack && Math.abs(renderedHeight - targetHeight) >= 1) {\n const baseline = outlet.style.height;\n const handle = animateSize(outlet, {\n keyframes: {height: [`${renderedHeight}px`, `${targetHeight}px`]},\n role: 'layout',\n cleanup: () => { outlet.style.height = baseline; },\n });\n const active = {baseline, handle};\n stackHeightMotions.set(outlet, active);\n void handle.finished.finally(() => {\n if (stackHeightMotions.get(outlet) !== active) return;\n stackHeightMotions.delete(outlet);\n outlet.style.height = baseline;\n });\n }\n let expandedOffset = 0;\n toasts.forEach((toast, index) => {\n const itemDepth = Math.min(index, 3);\n const offset = expanded ? expandedOffset * direction : itemDepth * peek * direction;\n const scale = expanded ? 1 : Math.max(0.91, 1 - itemDepth * 0.03);\n const opacity = expanded ? 1 : Math.max(0.72, 1 - itemDepth * 0.08);\n if (expanded) expandedOffset += (heights[index] ?? 0) + gap;\n toast.dataset.stackIndex = String(index);\n toast.dataset.swipeAxis = outlet.dataset.position?.endsWith('left') || outlet.dataset.position?.endsWith('right') ? 'x' : 'y';\n toast.style.setProperty('--ui-toast-stack-index', String(index));\n toast.style.setProperty('--ui-toast-stack-depth', String(itemDepth));\n toast.style.setProperty('--ui-toast-stack-direction', String(direction));\n toast.style.setProperty('--ui-toast-outside', direction > 0 ? '-100%' : '100%');\n toast.style.setProperty('--ui-toast-stack-offset', `${offset}px`);\n toast.style.setProperty('--ui-toast-stack-scale', String(scale));\n toast.style.setProperty('--ui-toast-stack-opacity', String(opacity));\n toast.style.zIndex = String(toasts.length - index);\n const transform = `translateY(${offset}px) scale(${scale})`;\n if (toast.dataset.swiping === 'true') return;\n if (animateStack && toast.dataset.state === 'open') {\n createMotionPlan(toast).animate({opacity, transform}).role('layout').play();\n } else if (toast.dataset.state === 'open') {\n toast.style.opacity = String(opacity);\n toast.style.transform = transform;\n }\n });\n};\n\nconst requestDismiss = (toast: HTMLElement, reason: ToastDismissReason): void => {\n toast.dispatchEvent(new CustomEvent('ui:toast-dismiss-request', {detail: {reason}}));\n};\n\nconst enforceLimit = (outlet: HTMLElement, maxItems: number): void => {\n if (maxItems === 0) return;\n const active = activeToasts(outlet);\n active.slice(maxItems).forEach((toast) => requestDismiss(toast, 'api'));\n};\n\nconst syncToast = (root: HTMLElement, props: ToastProps): void => {\n const color = resolveToastColor(props.color, props.level);\n const hasDescription = root.dataset.description === 'true' || Boolean(props.description.trim());\n const hasMarker = color !== 'neutral' && props.variant !== 'solid' && props.variant !== 'default';\n const urgent = props.level === 'danger' || props.level === 'warning';\n Object.assign(root.dataset, {level: props.level, color, variant: props.variant, duration: String(props.duration), dismissible: String(props.dismissible)});\n root.setAttribute('role', urgent ? 'alert' : 'status');\n root.setAttribute('aria-live', urgent ? 'assertive' : 'polite');\n root.className = resolveStyle({part: toastStyles.parts.root, props: {variant: props.variant, color, hasDescription, hasMarker}, className: props.class});\n root.querySelector<HTMLElement>('[data-ui-toast-marker]')?.setAttribute('class', resolveStyle({part: toastStyles.parts.marker, props: {variant: props.variant, color}}));\n root.querySelectorAll<HTMLElement>('[data-ui-toast-content]').forEach((el) => { el.className = resolveStyle({part: toastStyles.parts.content, className: props.contentClass}); });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-title]').forEach((el) => { el.className = `text-sm font-medium ${resolveStyle({part: toastStyles.parts.title})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-description]').forEach((el) => { el.className = `text-sm ${resolveStyle({part: toastStyles.parts.description})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-close]').forEach((el) => { el.hidden = !props.dismissible; el.className = resolveStyle({part: toastStyles.parts.close, className: props.closeClass}); });\n};\n\nconst UiToast = (): TrellisAlpineComponent<ToastData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let cleanup: CleanupStack = [];\n let deadline = 0;\n let timeout: number | null = null;\n let ticker: number | null = null;\n let previousDuration = 0;\n const pauseSources = new Set<ToastPauseSource>();\n const root = (): HTMLElement => { if (!rootEl) throw new Error('Toast has not been initialized.'); return rootEl; };\n const outlet = (): HTMLElement | null => root().parentElement?.matches('[data-ui-toast-outlet]') ? root().parentElement : null;\n const remainingNow = (): number => timeout === null ? bridge.getSnapshot().context.timer.remaining : Math.max(0, deadline - performance.now());\n const stopTimer = (): void => {\n if (timeout !== null) clearTimeout(timeout);\n if (ticker !== null) clearInterval(ticker);\n timeout = ticker = null;\n };\n const bridge = createAlpineMachine({\n schema: toastSchema, hooks: toastHooks,\n createMachine: ({props}) => createToastMachine(props, {\n prepareOpen: () => { root().dataset.state = 'opening'; syncToast(root(), bridge.getSnapshot().props); outlet() && syncToastStack(outlet()!, true); },\n finishOpen: () => { root().dataset.state = 'open'; outlet() && syncToastStack(outlet()!, true); },\n startTimer: () => {\n const remaining = bridge.getSnapshot().context.timer.remaining;\n if (remaining <= 0) return;\n deadline = performance.now() + remaining;\n timeout = window.setTimeout(() => bridge.send({type: 'DISMISS', reason: 'timeout'}), remaining);\n ticker = window.setInterval(() => bridge.send({type: 'TICK', remaining: remainingNow()}), 100);\n },\n stopTimer,\n prepareClose: () => { stopTimer(); root().dataset.state = 'closing'; outlet() && syncToastStack(outlet()!, true); },\n finishClose: (reason) => {\n const el = root();\n const parent = outlet();\n el.dataset.state = 'closed';\n dispatch({el, name: 'ui:dismiss', detail: {reason}});\n el.remove();\n if (parent) syncToastStack(parent, true);\n },\n syncProps: () => {\n const props = bridge.getSnapshot().props;\n syncToast(root(), props);\n if (props.duration !== previousDuration) { previousDuration = props.duration; bridge.send('DURATION_CHANGED'); }\n outlet() && syncToastStack(outlet()!);\n },\n }),\n });\n const addPause = (source: ToastPauseSource): void => {\n const wasEmpty = pauseSources.size === 0;\n pauseSources.add(source);\n if (wasEmpty) bridge.send({type: 'PAUSE', remaining: remainingNow()});\n };\n const removePause = (source: ToastPauseSource): void => {\n pauseSources.delete(source);\n if (pauseSources.size === 0) bridge.send('RESUME');\n };\n const component: TrellisAlpineComponent<ToastData> = {\n ...bridge,\n get isOpen() { return this.snapshot.current?.tags.includes('open') ?? false; },\n get isPaused() { return this.snapshot.current?.tags.includes('paused') ?? false; },\n get remaining() { return this.snapshot.current?.context.timer.remaining ?? 0; },\n init() {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n previousDuration = bridge.getSnapshot().props.duration;\n if (document.hidden) pauseSources.add('visibility');\n addListener({target: root(), event: 'click', handler: (event) => { const target = event.target; if (bridge.getSnapshot().props.dismissible && target instanceof Element && target.closest('[data-ui-toast-close]')) bridge.send({type: 'DISMISS', reason: 'close'}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-dismiss-request', handler: (event) => { const reason = event instanceof CustomEvent ? event.detail?.reason : 'api'; bridge.send({type: 'DISMISS', reason}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-pause-request', handler: (event) => {\n const paused = event instanceof CustomEvent && event.detail?.paused === true;\n paused ? addPause('outlet') : removePause('outlet');\n }, cleanup});\n addListener({target: document, event: 'visibilitychange', handler: () => document.hidden ? addPause('visibility') : removePause('visibility'), cleanup});\n addListener({target: root(), event: 'pointerdown', handler: (event) => {\n if (!(event instanceof PointerEvent) || !event.isPrimary || event.button !== 0) return;\n if (!bridge.getSnapshot().props.dismissible) return;\n if (event.target instanceof Element && event.target.closest('button, a, input, select, textarea')) return;\n const toast = root();\n const position = outlet()?.dataset.position ?? 'bottom-right';\n const horizontal = position.endsWith('left') || position.endsWith('right');\n const sign = horizontal\n ? position.endsWith('left') ? -1 : 1\n : position.startsWith('top') ? -1 : 1;\n const start = horizontal ? event.clientX : event.clientY;\n const startedAt = performance.now();\n const base = toastRestTransform(toast);\n const stackOpacity = Number.parseFloat(toast.style.getPropertyValue('--ui-toast-stack-opacity')) || 1;\n const delta = motionValue(0);\n replaceMotion(toast);\n addPause('gesture');\n toast.dataset.swiping = 'true';\n toast.setPointerCapture(event.pointerId);\n const unsubscribe = delta.on('change', (value) => {\n const translation = horizontal ? `translateX(${value}px)` : `translateY(${value}px)`;\n toast.style.transform = `${base} ${translation}`;\n const distance = Math.abs(value);\n const extent = horizontal ? toast.offsetWidth : toast.offsetHeight;\n toast.style.opacity = String(Math.max(0.35, stackOpacity * (1 - distance / Math.max(extent * 2, 1))));\n });\n const move = (moveEvent: PointerEvent): void => {\n if (moveEvent.pointerId !== event.pointerId) return;\n moveEvent.preventDefault();\n const positionNow = horizontal ? moveEvent.clientX : moveEvent.clientY;\n const raw = positionNow - start;\n delta.set(raw * sign >= 0 ? raw : raw * 0.2);\n };\n const finish = (endEvent: PointerEvent, cancelled = false): void => {\n if (endEvent.pointerId !== event.pointerId) return;\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', finish);\n window.removeEventListener('pointercancel', cancel);\n const distance = delta.get();\n const elapsed = Math.max(1, performance.now() - startedAt);\n const velocity = Math.abs(distance) / elapsed;\n const dismiss = !cancelled && distance * sign > 0 && (Math.abs(distance) >= 45 || velocity > 0.11);\n const settle = dismiss\n ? animate(delta, sign * (horizontal ? window.innerWidth : window.innerHeight), roles.gestureExit)\n : animate(delta, 0, {type: 'spring', ...roles.gestureSettle});\n const opacity = animate(toast, {opacity: dismiss ? 0 : stackOpacity}, roles.gestureExit);\n void Promise.allSettled([settle.finished, opacity.finished]).then(() => {\n unsubscribe();\n delete toast.dataset.swiping;\n removePause('gesture');\n if (dismiss) requestDismiss(toast, 'swipe');\n else {\n toast.style.opacity = String(stackOpacity);\n toast.style.transform = base;\n }\n });\n };\n const cancel = (cancelEvent: PointerEvent): void => finish(cancelEvent, true);\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', finish);\n window.addEventListener('pointercancel', cancel);\n }, cleanup});\n bridge.send('OPEN');\n },\n destroy() { stopTimer(); cleanup.forEach((dispose) => dispose()); cleanup = []; bridge.disconnect(); rootEl = null; },\n dismiss() { bridge.send({type: 'DISMISS', reason: 'api'}); },\n pause() { addPause('consumer'); },\n resume() { removePause('consumer'); },\n };\n return component;\n};\n\nconst closeIconSvg = (className: string): SVGSVGElement => {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('viewBox', '0 0 32 32'); svg.setAttribute('aria-hidden', 'true'); svg.dataset.uiToastCloseIcon = ''; svg.setAttribute('class', className);\n const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');\n polygon.setAttribute('points', '17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16'); svg.append(polygon);\n return svg;\n};\n\nconst buildToast = (detail: ToastDetail, fallbackDuration: number): HTMLElement => {\n const level = isToastLevel(detail.level) ? detail.level : 'info';\n const variant = isToastVariant(detail.variant) ? detail.variant : 'default';\n const title = typeof detail.title === 'string' ? detail.title : '';\n const description = typeof detail.description === 'string' ? detail.description : '';\n const duration = normalizedDuration(detail.duration, fallbackDuration);\n const dismissible = typeof detail.dismissible === 'boolean' ? detail.dismissible : true;\n const root = document.createElement('div');\n root.setAttribute('x-data', 'UiToast');\n root.setAttribute('x-ui-transition:opening', \"$ui.motion($transition).animate($ui.motion.presets.toast.in).role('presence').play()\");\n root.setAttribute('x-ui-transition:closing', \"$transition.data.reason === 'swipe' ? null : $ui.motion($transition).animate($ui.motion.presets.toast.out).role('presence').play()\");\n Object.assign(root.dataset, {uiToast: '', uiToastRecipe: '', uiSurface: '+3', uiElevation: '4', level, color: isToastColor(detail.color) ? detail.color : 'auto', variant, duration: String(duration), dismissible: String(dismissible), description: String(Boolean(description.trim())), state: 'closed'});\n root.setAttribute('aria-atomic', 'true');\n root.style.opacity = '0';\n const marker = document.createElement('span'); marker.dataset.uiToastMarker = ''; marker.setAttribute('aria-hidden', 'true'); root.append(marker);\n const content = document.createElement('div'); content.dataset.uiToastContent = '';\n if (title) { const el = document.createElement('strong'); el.dataset.uiToastTitle = ''; el.textContent = title; content.append(el); }\n if (description) { const el = document.createElement('div'); el.dataset.uiToastDescription = ''; el.textContent = description; content.append(el); }\n root.append(content);\n if (dismissible) { const close = document.createElement('button'); close.type = 'button'; close.dataset.uiToastClose = ''; close.setAttribute('aria-label', 'Dismiss notification'); close.append(closeIconSvg(resolveStyle({part: toastStyles.parts.closeIcon}))); root.append(close); }\n return root;\n};\n\nconst UiToastOutlet = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<ToastOutletData> => {\n const expandedSources = new Set<'pointer' | 'focus'>();\n let rootEl: HTMLElement | null = null;\n const broadcastPause = (paused: boolean): void => {\n rootEl?.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]').forEach((toast) => {\n toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused}}));\n });\n };\n const addExpandedSource = (source: 'pointer' | 'focus'): void => {\n const wasEmpty = expandedSources.size === 0;\n expandedSources.add(source);\n if (!rootEl || !wasEmpty) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n rootEl.dataset.stackExpanded = 'true';\n broadcastPause(true);\n syncToastStack(rootEl, true, fromHeight);\n };\n const removeExpandedSource = (source: 'pointer' | 'focus'): void => {\n expandedSources.delete(source);\n if (!rootEl || expandedSources.size > 0) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n delete rootEl.dataset.stackExpanded;\n broadcastPause(false);\n syncToastStack(rootEl, true, fromHeight);\n };\n return ({\n props: null as unknown as ToastOutletProps, cleanup: [],\n init() {\n this.props = defineProps({el: this.$el, schema: toastOutletSchema, onChange: () => this.sync()});\n const root = this.$el as HTMLElement;\n rootEl = root;\n this.sync();\n this.cleanup.push(hover(root, () => {\n addExpandedSource('pointer');\n return () => removeExpandedSource('pointer');\n }));\n addListener({target: root, event: 'focusin', handler: () => addExpandedSource('focus'), cleanup: this.cleanup});\n addListener({target: root, event: 'focusout', handler: () => queueMicrotask(() => { if (!root.contains(document.activeElement)) removeExpandedSource('focus'); }), cleanup: this.cleanup});\n addListener({target: document, event: 'ui:toast', handler: (event) => this.add(event instanceof CustomEvent ? event.detail as ToastDetail : {}), cleanup: this.cleanup});\n queueMicrotask(() => enforceLimit(root, this.props.maxItems));\n },\n destroy() {\n if (rootEl) stopToastStackHeightMotion(rootEl);\n this.props.disconnect();\n this.cleanup.forEach((dispose) => dispose());\n this.cleanup = [];\n expandedSources.clear();\n rootEl = null;\n },\n sync() {\n const root = this.$el as HTMLElement;\n root.id = this.props.id; root.dataset.position = this.props.position; root.dataset.duration = String(this.props.duration); root.dataset.maxItems = String(this.props.maxItems);\n root.className = resolveStyle({part: toastStyles.parts.outlet, props: {position: this.props.position}, className: this.props.class});\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n add(detail) {\n const title = typeof detail.title === 'string' ? detail.title : '';\n const description = typeof detail.description === 'string' ? detail.description : '';\n if (!title.trim() && !description.trim()) return;\n const root = this.$el as HTMLElement;\n const toast = buildToast(detail, this.props.duration);\n root.prepend(toast);\n AlpineInstance.initTree(toast as HTMLElement & Alpine.ElementWithXAttributes);\n if (expandedSources.size > 0) toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused: true}}));\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n });\n};\n\nconst registerToast = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiToast', UiToast)(AlpineInstance);\n defineAlpineData(\n 'UiToastOutlet',\n () => UiToastOutlet(AlpineInstance),\n )(AlpineInstance);\n};\n\nexport {registerToast, UiToast, UiToastOutlet};\nexport type {ToastData, ToastDetail, ToastOutletData, ToastTransition, UiToastApi, UiToastOutletApi};\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';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerToast as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerToast = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerToast};\nexport default registerToast;\nexport * from './index';\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./morph-Cq3V_23_.js";import{c as t,f as n,n as r,s as i}from"./codecs-Cb1ns_47.js";import{r as a,t as o}from"./dom-qAeVl7dc.js";import{t as s}from"./alpine-machine-BTDXpEr6.js";import{t as c}from"./alpine-data-CytyCyfk.js";import{t as l}from"./machine-Dqut4h89.js";import{n as u}from"./props-change-2xfsIAEN.js";import{t as d}from"./focus-scope-DtaPVNl5.js";var f={prefix:n.trim,minForms:t.min(0).step(1).default(0),maxForms:i(null),disabled:r},p=e=>u(e.event)?.props??e.props,m=({props:e,context:t,effects:n})=>l({initial:`ready`,states:{ready:{tags:[`ready`],on:{ADD:[{guard:`canIncrease`,effects:`add`},{guard:`atMax`,effects:`maxLimit`}],REMOVE:[{guard:`canRemove`,effects:`remove`},{guard:`atMin`,effects:`minLimit`}],RESTORE:[{guard:`canIncrease`,effects:`restore`},{guard:`atMax`,effects:`maxLimit`}],REFRESH:{effects:`refresh`},DOM_INVALIDATED:{effects:`refresh`},RECONCILED:{reduce:`reconcile`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`refresh`}}}}},{context:t,props:e,reducers:{reconcile:e=>({context:{activeCount:typeof e.event.activeCount==`number`?e.event.activeCount:e.context.activeCount}}),replaceProps:e=>({props:p(e)})},guards:{canIncrease:({context:e,props:t})=>!t.disabled&&(t.maxForms===null||e.activeCount<t.maxForms),atMax:({context:e,props:t})=>!t.disabled&&t.maxForms!==null&&e.activeCount>=t.maxForms,canRemove:({context:e,props:t})=>!t.disabled&&e.activeCount>t.minForms,atMin:({context:e,props:t})=>!t.disabled&&e.activeCount<=t.minForms},effects:n}),h=[],g=`[data-ui-formset-item]`,_=[`data-can-add`,`data-can-remove`,`data-active-count`],v=t=>{let n=null,r=null,i=null,c=null,l=null,u=!1,p=[],v=0,y=()=>{if(!n)throw Error(`Formset has not been initialized.`);return n},b=()=>{if(!r)throw Error(`Formset template is unavailable.`);return r},x=()=>{if(!i)throw Error(`Formset container is unavailable.`);return i},S=()=>{if(!c)throw Error(`Formset management inputs are unavailable.`);return c},C=()=>K.getCommittedSnapshot().props,w=()=>K.getCommittedSnapshot().context,T=e=>e.closest(`[data-ui-formset]`)===y(),E=e=>Array.from(y().querySelectorAll(e)).find(T)??null,D=()=>{if(r=E(`template[data-ui-formset-template]`),i=E(`[data-ui-formset-container]`),!r||!i)throw Error(`ui.formset requires one template and live item container.`)},O=e=>Array.from(y().querySelectorAll(`input[name]`)).find(t=>t.name===e&&T(t))??null,k=e=>{let t=Number(e.dataset.formIndex);return Number.isInteger(t)&&t>=0?t:null},A=()=>Array.from(x().querySelectorAll(g)).filter(e=>T(e)&&e.closest(g)===e),j=(e,t=C().prefix)=>{let n=k(e);if(n===null)return null;let r=`${t}-${n}-DELETE`;return Array.from(e.querySelectorAll(`input[name]`)).find(e=>e.name===r&&e.type===`checkbox`)??null},M=()=>{let e=Array.from(b().content.querySelectorAll(g)).filter(e=>!e.parentElement?.closest(g));if(e.length!==1)throw Error(`ui.formset empty slot must contain exactly one ui.formset.item.`);return e[0]},N=e=>{let t={total:`${e}-TOTAL_FORMS`,initial:`${e}-INITIAL_FORMS`,min:`${e}-MIN_NUM_FORMS`,max:`${e}-MAX_NUM_FORMS`},n=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,O(t)]));if(!n.total||!n.initial||!n.min||!n.max)throw Error(`ui.formset requires a complete Django management form.`);return n},P=e=>{if(D(),!e.prefix||e.prefix.includes(`__prefix__`))throw Error(`ui.formset requires a safe, non-empty prefix.`);if(e.maxForms!==null&&(!Number.isInteger(e.maxForms)||e.maxForms<0))throw Error(`ui.formset maxForms must be null or a non-negative integer.`);let t=M();if(t.dataset.formIndex!==`__prefix__`)throw Error(`ui.formset empty item requires the __prefix__ form index.`);let n=`${e.prefix}-__prefix__-DELETE`;if(!Array.from(t.querySelectorAll(`input[name]`)).find(e=>e.name===n&&e.type===`checkbox`))throw Error(`ui.formset empty item requires a Boolean DELETE input.`);let r=N(e.prefix);if(Object.values(r).map(e=>Number(e.value)).some(e=>!Number.isInteger(e)||e<0))throw Error(`ui.formset management counts must be non-negative integers.`);let i=Number(r.total.value),a=new Set,o=0;for(let t of A()){let n=k(t);if(n===null||a.has(n)||n>=i)throw Error(`ui.formset items require unique indexes below TOTAL_FORMS.`);a.add(n);let r=j(t,e.prefix);if(!r)throw Error(`ui.formset requires a Boolean DELETE input for every row.`);r.checked||(o+=1)}return c=r,{activeCount:o}},F=e=>{let t=j(e);if(!t)throw Error(`ui.formset requires a Boolean DELETE input for every row.`);t.setAttribute(`data-ui-formset-delete`,``);let n=t.checked;e.dataset.formState=n?`deleted`:`active`,e.hidden=n},I=()=>{let e=C();c=N(e.prefix);let t=A();t.forEach(F);let n=t.filter(e=>e.dataset.formState!==`deleted`).length;K.send({type:`RECONCILED`,activeCount:n});let r=!e.disabled&&(e.maxForms===null||n<e.maxForms),i=!e.disabled&&n>e.minForms;return y().dataset.activeCount=String(n),y().dataset.canAdd=String(r),y().dataset.canRemove=String(i),y().querySelectorAll(`[data-ui-formset-empty]`).forEach(e=>{T(e)&&(e.hidden=n!==0)}),n},L=e=>{if(y().dataset.announce===`false`)return;let t=E(`[data-ui-formset-status]`);t&&(t.textContent=e)},R=(e,t,n,r)=>{a({el:y(),name:`ui:formset-${e}`,detail:{index:t,item:n,activeCount:r},composed:!0}),a({el:y(),name:`ui:formset-change`,detail:{operation:e,index:t,activeCount:r},composed:!0})},z=(e,t)=>{[e,...Array.from(e.querySelectorAll(`*`))].forEach(e=>Array.from(e.attributes).forEach(n=>{n.value.includes(`__prefix__`)&&e.setAttribute(n.name,n.value.replaceAll(`__prefix__`,String(t)))}))},B=e=>{let t=y().dataset.focus,n=null;if(t)try{n=e.matches(t)?e:e.querySelector(t)}catch{n=null}n??=e.querySelector(d),n&&!n.hasAttribute(`disabled`)&&n.focus()},V=e=>{if(e instanceof HTMLElement){let t=e.matches(g)?e:e.closest(g);return t&&A().includes(t)?t:null}if(typeof e==`number`&&Number.isInteger(e))return A().find(t=>k(t)===e)??null;let t=y().ownerDocument.activeElement;return t instanceof HTMLElement?V(t):null},H=e=>{let t=A(),n=t.indexOf(e),r=t.filter(e=>e.dataset.formState!==`deleted`),i=r.find(e=>t.indexOf(e)>n),a=[...r].reverse().find(e=>t.indexOf(e)<n),o=i??a;if(o)return o.querySelector(d);let s=E(`[data-ui-formset-add]`);return s?s.matches(d)?s:s.querySelector(d):null},U=t=>{let n=new Set((y().getAttribute(`data-ui-preserve-attr`)??``).split(/\s+/).filter(Boolean));_.forEach(e=>t?n.add(e):n.delete(e)),n.size>0?y().setAttribute(e,[...n].join(` `)):y().removeAttribute(e)},W=e=>{let t=e.detail?.source;return t instanceof Element&&(t.contains(y())||y().contains(t))},G,K=s({schema:f,hooks:h,createMachine:({props:e})=>m({props:e,context:P(e),effects:{add(){u=!1,l=null;let e=Number(S().total.value),n=M().cloneNode(!0);z(n,e);let r=j(n);if(!r)throw Error(`ui.formset empty item requires a Boolean DELETE input.`);r.checked=!1,F(n),x().append(n);try{t.initTree(n)}catch(e){throw t.destroyTree(n),n.remove(),e}S().total.value=String(e+1);let i=I();B(n),l=n,u=!0,L(`Row ${e+1} added.`),R(`add`,e,n,i)},remove(e){u=!1;let t=e.event.item;if(!(t instanceof HTMLElement)||!A().includes(t))return;let n=j(t),r=k(t);if(!n||r===null||n.checked)return;let i=H(t);n.checked=!0,F(t);let a=I();i?.focus(),u=!0,L(`Row ${r+1} removed.`),R(`remove`,r,t,a)},restore(e){u=!1;let t=e.event.item;if(!(t instanceof HTMLElement)||!A().includes(t))return;let n=j(t),r=k(t);if(!n||r===null||!n.checked)return;n.checked=!1,F(t);let i=I();u=!0,R(`restore`,r,t,i)},refresh(){P(C()),I()},maxLimit(){a({el:y(),name:`ui:formset-limit`,detail:{limit:`max`,activeCount:w().activeCount},composed:!0})},minLimit(){a({el:y(),name:`ui:formset-limit`,detail:{limit:`min`,activeCount:w().activeCount},composed:!0})}}})});return G={...K,get activeCount(){return this.snapshot.current?.context.activeCount??0},get canAdd(){let e=this.snapshot.current;return!!(e&&!e.props.disabled&&(e.props.maxForms===null||e.context.activeCount<e.props.maxForms))},get canRemove(){let e=this.snapshot.current;return!!(e&&!e.props.disabled&&e.context.activeCount>e.props.minForms)},init(){n=this.$el,K.connect(this.$el,this.snapshot),I(),p=[o({target:y().ownerDocument,event:`ui:request:start`,handler:e=>{W(e)&&(v+=1,U(!0))}}),o({target:y().ownerDocument,event:`ui:request:finish`,handler:e=>{W(e)&&(v=Math.max(0,v-1),v===0&&U(!1),K.send(`REFRESH`))}})]},destroy(){p.splice(0).reverse().forEach(e=>e()),v>0&&U(!1),v=0,K.disconnect(),c=null,i=null,r=null,n=null,l=null},add(){return l=null,K.send(`ADD`),l},remove(e){let t=V(e);return u=!1,!t||t.dataset.formState===`deleted`?!1:(K.send({type:`REMOVE`,item:t}),u)},restore(e){let t=V(e);return u=!1,!t||t.dataset.formState!==`deleted`?!1:(K.send({type:`RESTORE`,item:t}),u)},refresh(){K.send(`REFRESH`)}},G},y=e=>{c(`UiFormset`,()=>v(e))(e)},b=new WeakSet,x=e=>{b.has(e)||(b.add(e),y(e))};export{v as n,x as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-D_FlEfdN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entry.generated-D_FlEfdN.js","names":[],"sources":["../../../../../../../../client/src/components/formset/contract.ts","../../../../../../../../client/src/components/formset/machine.ts","../../../../../../../../client/src/components/formset/index.ts","../../../../../../../../client/src/components/formset/entry.generated.ts"],"sourcesContent":["import {bool, json, number, string, type SchemaToProps} from '../../runtime';\n\nconst formsetSchema = {\n prefix: string.trim,\n minForms: number.min(0).step(1).default(0),\n maxForms: json<number | null>(null),\n disabled: bool,\n};\n\ntype FormsetProps = SchemaToProps<typeof formsetSchema>;\n\nexport {formsetSchema};\nexport type {FormsetProps};\n","import {\n createMachine,\n propsChangedEvent,\n type Machine,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport type {FormsetProps} from './contract';\n\ntype FormsetContext = {\n activeCount: number;\n};\n\ntype FormsetMachineEffects = {\n add(): void;\n remove(scope: MachineScope<FormsetContext, FormsetProps>): void;\n restore(scope: MachineScope<FormsetContext, FormsetProps>): void;\n refresh(): void;\n maxLimit(): void;\n minLimit(): void;\n};\n\ntype CreateFormsetMachineOptions = {\n props: FormsetProps;\n context: FormsetContext;\n effects: FormsetMachineEffects;\n};\n\nconst nextProps = (scope: MachineScope<FormsetContext, FormsetProps>): FormsetProps => (\n propsChangedEvent<FormsetProps>(scope.event)?.props ?? scope.props\n);\n\nconst createFormsetMachine = ({\n props,\n context,\n effects,\n}: CreateFormsetMachineOptions): Machine<FormsetContext, FormsetProps> => createMachine({\n initial: 'ready',\n states: {\n ready: {\n tags: ['ready'],\n on: {\n ADD: [\n {guard: 'canIncrease', effects: 'add'},\n {guard: 'atMax', effects: 'maxLimit'},\n ],\n REMOVE: [\n {guard: 'canRemove', effects: 'remove'},\n {guard: 'atMin', effects: 'minLimit'},\n ],\n RESTORE: [\n {guard: 'canIncrease', effects: 'restore'},\n {guard: 'atMax', effects: 'maxLimit'},\n ],\n REFRESH: {effects: 'refresh'},\n DOM_INVALIDATED: {effects: 'refresh'},\n RECONCILED: {reduce: 'reconcile'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'refresh'},\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n reconcile: (scope) => ({context: {\n activeCount: typeof scope.event.activeCount === 'number'\n ? scope.event.activeCount\n : scope.context.activeCount,\n }}),\n replaceProps: (scope) => ({props: nextProps(scope)}),\n },\n guards: {\n canIncrease: ({context: current, props: currentProps}) => (\n !currentProps.disabled\n && (currentProps.maxForms === null || current.activeCount < currentProps.maxForms)\n ),\n atMax: ({context: current, props: currentProps}) => (\n !currentProps.disabled\n && currentProps.maxForms !== null\n && current.activeCount >= currentProps.maxForms\n ),\n canRemove: ({context: current, props: currentProps}) => (\n !currentProps.disabled && current.activeCount > currentProps.minForms\n ),\n atMin: ({context: current, props: currentProps}) => (\n !currentProps.disabled && current.activeCount <= currentProps.minForms\n ),\n },\n effects,\n});\n\nconst formsetHooks = [] as const;\n\nexport {createFormsetMachine, formsetHooks};\nexport type {CreateFormsetMachineOptions, FormsetContext, FormsetMachineEffects};\n","import type Alpine from 'alpinejs';\n\nimport {\n addListener,\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n FOCUSABLE_SELECTOR,\n type MachineSnapshot,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {dispatch} from '@client/utils';\nimport {PRESERVE_MORPH_ATTRIBUTES} from '@client/runtime/morph';\nimport {formsetSchema, type FormsetProps} from './contract';\nimport {createFormsetMachine, formsetHooks, type FormsetContext} from './machine';\n\ntype FormsetOperation = 'add' | 'remove' | 'restore';\ntype FormsetItemArgument = HTMLElement | number;\n\ntype FormsetItemDetail = {\n index: number;\n item: HTMLElement;\n activeCount: number;\n};\n\ntype FormsetChangeDetail = {\n operation: FormsetOperation;\n index: number;\n activeCount: number;\n};\n\n/** Public Alpine API for `ui.formset`. @public */\ninterface UiFormsetApi {\n /** Number of rows not marked for Django deletion. */\n readonly activeCount: number;\n\n /** Whether adding one row is currently permitted. */\n readonly canAdd: boolean;\n\n /** Whether removing one active row is currently permitted. */\n readonly canRemove: boolean;\n\n /** Clone, index, initialize, and focus one empty-form row. */\n add(): HTMLElement | null;\n\n /** Tombstone an active member by element or immutable index. */\n remove(itemOrIndex?: FormsetItemArgument): boolean;\n\n /** Restore a tombstoned member by element or immutable index. */\n restore(itemOrIndex: FormsetItemArgument): boolean;\n\n /** Re-derive rows and management state from server-owned DOM. */\n refresh(): void;\n}\n\ntype FormsetData = AlpineMachine<FormsetContext, FormsetProps, typeof formsetHooks> & UiFormsetApi & {\n init(): void;\n destroy(): void;\n};\n\ntype Management = {\n total: HTMLInputElement;\n initial: HTMLInputElement;\n min: HTMLInputElement;\n max: HTMLInputElement;\n};\n\nconst ITEM_SELECTOR = '[data-ui-formset-item]';\nconst DERIVED_ATTRIBUTES = ['data-can-add', 'data-can-remove', 'data-active-count'] as const;\n\nconst UiFormset = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<FormsetData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let templateEl: HTMLTemplateElement | null = null;\n let containerEl: HTMLElement | null = null;\n let management: Management | null = null;\n let lastAdded: HTMLElement | null = null;\n let operationSucceeded = false;\n let cleanup: Array<() => void> = [];\n let preservedForRequests = 0;\n\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Formset has not been initialized.');\n return rootEl;\n };\n const template = (): HTMLTemplateElement => {\n if (!templateEl) throw new Error('Formset template is unavailable.');\n return templateEl;\n };\n const container = (): HTMLElement => {\n if (!containerEl) throw new Error('Formset container is unavailable.');\n return containerEl;\n };\n const controls = (): Management => {\n if (!management) throw new Error('Formset management inputs are unavailable.');\n return management;\n };\n const currentProps = (): Readonly<FormsetProps> => bridge.getCommittedSnapshot().props;\n const currentContext = (): Readonly<FormsetContext> => bridge.getCommittedSnapshot().context;\n const owns = (element: Element): boolean => element.closest('[data-ui-formset]') === root();\n const findOwned = <T extends Element>(selector: string): T | null => Array.from(\n root().querySelectorAll<T>(selector),\n ).find(owns) ?? null;\n const resolveStructure = (): void => {\n templateEl = findOwned<HTMLTemplateElement>('template[data-ui-formset-template]');\n containerEl = findOwned<HTMLElement>('[data-ui-formset-container]');\n if (!templateEl || !containerEl) {\n throw new Error('ui.formset requires one template and live item container.');\n }\n };\n\n const findInput = (name: string): HTMLInputElement | null => Array.from(\n root().querySelectorAll<HTMLInputElement>('input[name]'),\n ).find((input) => input.name === name && owns(input)) ?? null;\n\n const parseIndex = (item: HTMLElement): number | null => {\n const index = Number(item.dataset.formIndex);\n return Number.isInteger(index) && index >= 0 ? index : null;\n };\n\n const liveItems = (): HTMLElement[] => Array.from(\n container().querySelectorAll<HTMLElement>(ITEM_SELECTOR),\n ).filter((item) => owns(item) && item.closest<HTMLElement>(ITEM_SELECTOR) === item);\n\n const deletionInput = (item: HTMLElement, prefix = currentProps().prefix): HTMLInputElement | null => {\n const index = parseIndex(item);\n if (index === null) return null;\n const expected = `${prefix}-${index}-DELETE`;\n return Array.from(item.querySelectorAll<HTMLInputElement>('input[name]'))\n .find((input) => input.name === expected && input.type === 'checkbox') ?? null;\n };\n\n const templateItem = (): HTMLElement => {\n const candidates = Array.from(template().content.querySelectorAll<HTMLElement>(ITEM_SELECTOR))\n .filter((item) => !item.parentElement?.closest(ITEM_SELECTOR));\n if (candidates.length !== 1) {\n throw new Error('ui.formset empty slot must contain exactly one ui.formset.item.');\n }\n return candidates[0]!;\n };\n\n const readManagement = (prefix: string): Management => {\n const names = {\n total: `${prefix}-TOTAL_FORMS`,\n initial: `${prefix}-INITIAL_FORMS`,\n min: `${prefix}-MIN_NUM_FORMS`,\n max: `${prefix}-MAX_NUM_FORMS`,\n };\n const resolved = Object.fromEntries(Object.entries(names).map(([key, name]) => [key, findInput(name)]));\n if (!resolved.total || !resolved.initial || !resolved.min || !resolved.max) {\n throw new Error('ui.formset requires a complete Django management form.');\n }\n return resolved as Management;\n };\n\n const validateDom = (props: FormsetProps): FormsetContext => {\n resolveStructure();\n if (!props.prefix || props.prefix.includes('__prefix__')) {\n throw new Error('ui.formset requires a safe, non-empty prefix.');\n }\n if (props.maxForms !== null && (!Number.isInteger(props.maxForms) || props.maxForms < 0)) {\n throw new Error('ui.formset maxForms must be null or a non-negative integer.');\n }\n const emptyItem = templateItem();\n if (emptyItem.dataset.formIndex !== '__prefix__') {\n throw new Error('ui.formset empty item requires the __prefix__ form index.');\n }\n const expectedEmptyDelete = `${props.prefix}-__prefix__-DELETE`;\n const emptyDeletion = Array.from(emptyItem.querySelectorAll<HTMLInputElement>('input[name]'))\n .find((input) => input.name === expectedEmptyDelete && input.type === 'checkbox');\n if (!emptyDeletion) {\n throw new Error('ui.formset empty item requires a Boolean DELETE input.');\n }\n const nextManagement = readManagement(props.prefix);\n const values = Object.values(nextManagement).map((input) => Number(input.value));\n if (values.some((value) => !Number.isInteger(value) || value < 0)) {\n throw new Error('ui.formset management counts must be non-negative integers.');\n }\n const total = Number(nextManagement.total.value);\n const seen = new Set<number>();\n let activeCount = 0;\n for (const item of liveItems()) {\n const index = parseIndex(item);\n if (index === null || seen.has(index) || index >= total) {\n throw new Error('ui.formset items require unique indexes below TOTAL_FORMS.');\n }\n seen.add(index);\n const deletion = deletionInput(item, props.prefix);\n if (!deletion) {\n throw new Error('ui.formset requires a Boolean DELETE input for every row.');\n }\n if (!deletion.checked) activeCount += 1;\n }\n management = nextManagement;\n return {activeCount};\n };\n\n const syncItem = (item: HTMLElement): void => {\n const deletion = deletionInput(item);\n if (!deletion) throw new Error('ui.formset requires a Boolean DELETE input for every row.');\n deletion.setAttribute('data-ui-formset-delete', '');\n const deleted = deletion.checked;\n item.dataset.formState = deleted ? 'deleted' : 'active';\n item.hidden = deleted;\n };\n\n const reconcile = (): number => {\n const props = currentProps();\n management = readManagement(props.prefix);\n const items = liveItems();\n items.forEach(syncItem);\n const activeCount = items.filter((item) => item.dataset.formState !== 'deleted').length;\n bridge.send({type: 'RECONCILED', activeCount});\n const canAdd = !props.disabled && (props.maxForms === null || activeCount < props.maxForms);\n const canRemove = !props.disabled && activeCount > props.minForms;\n root().dataset.activeCount = String(activeCount);\n root().dataset.canAdd = String(canAdd);\n root().dataset.canRemove = String(canRemove);\n root().querySelectorAll<HTMLElement>('[data-ui-formset-empty]').forEach((empty) => {\n if (owns(empty)) empty.hidden = activeCount !== 0;\n });\n return activeCount;\n };\n\n const announce = (message: string): void => {\n if (root().dataset.announce === 'false') return;\n const status = findOwned<HTMLElement>('[data-ui-formset-status]');\n if (status) status.textContent = message;\n };\n\n const dispatchChange = (\n operation: FormsetOperation,\n index: number,\n item: HTMLElement,\n activeCount: number,\n ): void => {\n dispatch<FormsetItemDetail>({\n el: root(),\n name: `ui:formset-${operation}`,\n detail: {index, item, activeCount},\n composed: true,\n });\n dispatch<FormsetChangeDetail>({\n el: root(),\n name: 'ui:formset-change',\n detail: {operation, index, activeCount},\n composed: true,\n });\n };\n\n const replacePrefixAttributes = (item: HTMLElement, index: number): void => {\n const elements = [item, ...Array.from(item.querySelectorAll<HTMLElement>('*'))];\n elements.forEach((element) => Array.from(element.attributes).forEach((attribute) => {\n if (attribute.value.includes('__prefix__')) {\n element.setAttribute(attribute.name, attribute.value.replaceAll('__prefix__', String(index)));\n }\n }));\n };\n\n const focusTarget = (item: HTMLElement): void => {\n const authored = root().dataset.focus;\n let target: HTMLElement | null = null;\n if (authored) {\n try {\n target = item.matches(authored) ? item : item.querySelector<HTMLElement>(authored);\n } catch {\n target = null;\n }\n }\n target ??= item.querySelector<HTMLElement>(FOCUSABLE_SELECTOR);\n if (target && !target.hasAttribute('disabled')) target.focus();\n };\n\n const itemFrom = (value: FormsetItemArgument | undefined): HTMLElement | null => {\n if (value instanceof HTMLElement) {\n const item = value.matches(ITEM_SELECTOR) ? value : value.closest<HTMLElement>(ITEM_SELECTOR);\n return item && liveItems().includes(item) ? item : null;\n }\n if (typeof value === 'number' && Number.isInteger(value)) {\n return liveItems().find((item) => parseIndex(item) === value) ?? null;\n }\n const focused = root().ownerDocument.activeElement;\n return focused instanceof HTMLElement ? itemFrom(focused) : null;\n };\n\n const adjacentFocusTarget = (removed: HTMLElement): HTMLElement | null => {\n const live = liveItems();\n const removedIndex = live.indexOf(removed);\n const items = live.filter((item) => item.dataset.formState !== 'deleted');\n const next = items.find((item) => live.indexOf(item) > removedIndex);\n const previous = [...items].reverse().find((item) => live.indexOf(item) < removedIndex);\n const row = next ?? previous;\n if (row) return row.querySelector<HTMLElement>(FOCUSABLE_SELECTOR);\n const add = findOwned<HTMLElement>('[data-ui-formset-add]');\n if (!add) return null;\n return add.matches(FOCUSABLE_SELECTOR) ? add : add.querySelector<HTMLElement>(FOCUSABLE_SELECTOR);\n };\n\n const setPreserved = (preserve: boolean): void => {\n const declared = new Set((root().getAttribute(PRESERVE_MORPH_ATTRIBUTES) ?? '').split(/\\s+/).filter(Boolean));\n DERIVED_ATTRIBUTES.forEach((name) => preserve ? declared.add(name) : declared.delete(name));\n if (declared.size > 0) root().setAttribute(PRESERVE_MORPH_ATTRIBUTES, [...declared].join(' '));\n else root().removeAttribute(PRESERVE_MORPH_ATTRIBUTES);\n };\n\n const requestIncludesRoot = (event: Event): boolean => {\n const source = (event as CustomEvent<{source?: EventTarget}>).detail?.source;\n return source instanceof Element && (source.contains(root()) || root().contains(source));\n };\n\n let component!: TrellisAlpineComponent<FormsetData>;\n const bridge = createAlpineMachine({\n schema: formsetSchema,\n hooks: formsetHooks,\n createMachine: ({props}) => createFormsetMachine({\n props,\n context: validateDom(props),\n effects: {\n add(): void {\n operationSucceeded = false;\n lastAdded = null;\n const index = Number(controls().total.value);\n const item = templateItem().cloneNode(true) as HTMLElement;\n replacePrefixAttributes(item, index);\n const deletion = deletionInput(item);\n if (!deletion) throw new Error('ui.formset empty item requires a Boolean DELETE input.');\n deletion.checked = false;\n syncItem(item);\n container().append(item);\n try {\n AlpineInstance.initTree(item as Alpine.ElementWithXAttributes);\n } catch (error) {\n AlpineInstance.destroyTree(item);\n item.remove();\n throw error;\n }\n controls().total.value = String(index + 1);\n const activeCount = reconcile();\n focusTarget(item);\n lastAdded = item;\n operationSucceeded = true;\n announce(`Row ${index + 1} added.`);\n dispatchChange('add', index, item, activeCount);\n },\n remove(scope): void {\n operationSucceeded = false;\n const item = scope.event.item;\n if (!(item instanceof HTMLElement) || !liveItems().includes(item)) return;\n const deletion = deletionInput(item);\n const index = parseIndex(item);\n if (!deletion || index === null || deletion.checked) return;\n const focus = adjacentFocusTarget(item);\n deletion.checked = true;\n syncItem(item);\n const activeCount = reconcile();\n focus?.focus();\n operationSucceeded = true;\n announce(`Row ${index + 1} removed.`);\n dispatchChange('remove', index, item, activeCount);\n },\n restore(scope): void {\n operationSucceeded = false;\n const item = scope.event.item;\n if (!(item instanceof HTMLElement) || !liveItems().includes(item)) return;\n const deletion = deletionInput(item);\n const index = parseIndex(item);\n if (!deletion || index === null || !deletion.checked) return;\n deletion.checked = false;\n syncItem(item);\n const activeCount = reconcile();\n operationSucceeded = true;\n dispatchChange('restore', index, item, activeCount);\n },\n refresh(): void {\n validateDom(currentProps());\n reconcile();\n },\n maxLimit(): void {\n dispatch({el: root(), name: 'ui:formset-limit', detail: {\n limit: 'max', activeCount: currentContext().activeCount,\n }, composed: true});\n },\n minLimit(): void {\n dispatch({el: root(), name: 'ui:formset-limit', detail: {\n limit: 'min', activeCount: currentContext().activeCount,\n }, composed: true});\n },\n },\n }),\n });\n\n component = {\n ...bridge,\n get activeCount(): number {\n return this.snapshot.current?.context.activeCount ?? 0;\n },\n get canAdd(): boolean {\n const snapshot = this.snapshot.current;\n return Boolean(snapshot && !snapshot.props.disabled && (\n snapshot.props.maxForms === null || snapshot.context.activeCount < snapshot.props.maxForms\n ));\n },\n get canRemove(): boolean {\n const snapshot = this.snapshot.current;\n return Boolean(snapshot && !snapshot.props.disabled && snapshot.context.activeCount > snapshot.props.minForms);\n },\n init(): void {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n reconcile();\n cleanup = [\n addListener({target: root().ownerDocument, event: 'ui:request:start', handler: (event) => {\n if (!requestIncludesRoot(event)) return;\n preservedForRequests += 1;\n setPreserved(true);\n }}),\n addListener({target: root().ownerDocument, event: 'ui:request:finish', handler: (event) => {\n if (!requestIncludesRoot(event)) return;\n preservedForRequests = Math.max(0, preservedForRequests - 1);\n if (preservedForRequests === 0) setPreserved(false);\n bridge.send('REFRESH');\n }}),\n ];\n },\n destroy(): void {\n cleanup.splice(0).reverse().forEach((dispose) => dispose());\n if (preservedForRequests > 0) setPreserved(false);\n preservedForRequests = 0;\n bridge.disconnect();\n management = null;\n containerEl = null;\n templateEl = null;\n rootEl = null;\n lastAdded = null;\n },\n add(): HTMLElement | null {\n lastAdded = null;\n bridge.send('ADD');\n return lastAdded;\n },\n remove(itemOrIndex?: FormsetItemArgument): boolean {\n const item = itemFrom(itemOrIndex);\n operationSucceeded = false;\n if (!item || item.dataset.formState === 'deleted') return false;\n bridge.send({type: 'REMOVE', item});\n return operationSucceeded;\n },\n restore(itemOrIndex: FormsetItemArgument): boolean {\n const item = itemFrom(itemOrIndex);\n operationSucceeded = false;\n if (!item || item.dataset.formState !== 'deleted') return false;\n bridge.send({type: 'RESTORE', item});\n return operationSucceeded;\n },\n refresh(): void {\n bridge.send('REFRESH');\n },\n };\n\n return component;\n};\n\nconst registerFormset = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiFormset', () => UiFormset(AlpineInstance))(AlpineInstance);\n};\n\nexport {registerFormset, UiFormset};\nexport type {\n FormsetChangeDetail,\n FormsetData,\n FormsetItemArgument,\n FormsetItemDetail,\n UiFormsetApi,\n};\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 {registerFormset as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerFormset = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerFormset};\nexport default registerFormset;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./morph-Cq3V_23_.js";import{t}from"./capability-motion-CrezWE-8.js";import{c as n,f as r,l as i,n as a,s as o,u as s}from"./codecs-Cb1ns_47.js";import{n as c,r as l,s as u,t as d}from"./dom-qAeVl7dc.js";import{i as f,t as ee}from"./alpine-machine-BTDXpEr6.js";import{t as p}from"./alpine-data-CytyCyfk.js";import{t as m}from"./anchored-popover-BXEMsLrA.js";import{n as h,t as te}from"./styles-TfvwVPGw.js";import{t as ne}from"./merge-bindings-C8ewA_FD.js";import{t as re}from"./machine-Dqut4h89.js";import{n as g,t as _}from"./props-change-2xfsIAEN.js";import{t as ie}from"./dismissable-layer-BROE-Ln2.js";import{i as ae,n as oe,r as se,t as ce}from"./form-control-DjbUb602.js";import{o as le}from"./focus-scope-DtaPVNl5.js";import{t as ue}from"./semantic-observer-CdRbZHir.js";import{n as v,t as y}from"./scroll-lock-DOw7dmi1.js";import{F as b,I as de,M as x,N as S,R as fe,_ as C,a as w,c as pe,d as T,f as E,h as D,i as O,j as k,m as A,n as me,o as j,p as M,r as he,t as ge}from"./common-Dfj6NCjU.js";import{a as _e}from"./styles-CpTCQjY5.js";import{r as ve}from"./focus-handoff-BE3g0swK.js";var N=e=>e.trim().toLowerCase(),ye=e=>{if(e)try{return JSON.parse(e)}catch{return}},be=(e,t)=>{if(!(!t||e==null))return t.split(`.`).reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)},P=[`soft`,`surface`,`outline`,`solid`],F=[`neutral`,`accent`,`success`,`warning`,`danger`],I=j,L=[`span`,`button`],xe=me,R=C,z=he;i(P,`soft`),i(F,`neutral`),i(I,`sm`),i(z,`sm`),i(L,`span`),i(xe,`button`),i(R,`mini`),i(xe,`button`),r.default(`close`),i(R,`mini`),i(I,`sm`),r.default(`Remove`);var B=[`listbox`,`combobox`,`pillbox`,`native`],V=pe,H=j,Se=he,Ce=de,we=ge,Te=C,Ee=[`stay`,`close`],U=[`check`,`checkbox`,`none`],De=fe,Oe=T,W={name:r,optionsId:r,value:r,values:o.array([]),placeholder:r,mode:i(B,`listbox`),multiple:a,searchable:a,searchMinItems:n.min(0).default(5),virtualized:a,optionsFetchUrl:r,optionsTotalItems:n.min(0).default(0),optionItemSize:n.min(2**-52).default(36),optionBufferSize:n.min(1).default(50),optionOverscan:n.min(0).default(0),optionSearchParam:r.default(`q`),optionSearchDebounce:n.min(0).default(150),selectedLabelMap:o.object({}),creatable:a,filter:a.default(!0),clearable:a,clear:i(Ee,`stay`),suffix:r.default(`selected`),mark:i(U,`check`),open:a,disabled:a,readonly:a,required:a,invalid:a,autoHighlight:a.default(!0),loop:a.default(!0),path:r,size:i(H,`lg`),variant:i(V,`outline`),radius:i(Se,`md`),surface:i(De,`+2`),elevation:i(Oe,`3`),side:i(Ce,`bottom`),align:i(we,`start`),offset:n.clamp(-100,100).default(0),gap:n.clamp(0,50).default(4),empty:r.default(`No results found.`),icon:r,iconTrailing:r.default(`chevron__down`),iconVariant:i(Te,`outline`),buttonClass:r,inputClass:r,listboxClass:r,optionClass:r,chipVariant:i(P,`soft`),chipColor:i(F,`neutral`),chipClass:r,class:r};i(Te,`outline`),n.clamp(0,100).default(0);var ke=[f({name:`opening`,state:`disclosure.opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`,sends:{close:()=>({type:`CLOSE`})}}),f({name:`closing`,state:`disclosure.closing`,project:()=>({}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`,sends:{open:()=>({type:`OPEN`})}}),f({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`})}}),f({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`})}})],G=e=>g(e)?.props??null,Ae=e=>e.disabled||e.readonly,je=({event:e})=>{let t=G(e);return!t||Ae(t)||!t.open?!1:_(e,`open`,`disabled`,`readonly`)},Me=({event:e})=>{let t=G(e);return t?_(e,`open`)&&!t.open||_(e,`disabled`)&&t.disabled||_(e,`readonly`)&&t.readonly:!1},Ne=({event:e})=>{let t=G(e);return!!(t&&(_(e,`disabled`)&&t.disabled||_(e,`readonly`)&&t.readonly||_(e,`searchable`)&&!t.searchable))},Pe=e=>!Array.isArray(e.values)||!Array.isArray(e.labels)?null:{values:e.values.filter(e=>typeof e==`string`),labels:e.labels.filter(e=>typeof e==`string`)},Fe=({props:e,context:t,effects:n})=>re({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:je,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:`single`,effects:`prepareClose`},CLEAR:{target:`closing`,guard:`clearCloses`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:Me,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:`single`,effects:`prepareClose`},CLEAR:{target:`closing`,guard:`clearCloses`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:Me,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:je,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:Ne,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:Ne,reduce:`replaceProps`,effects:`syncProps`},{reduce:`replaceProps`,effects:`syncProps`}]}}}}}},{context:t,props:e,reducers:{replaceProps:({event:e})=>{let t=G(e);return t?{props:t}:void 0},replaceSelection:({context:e,event:t})=>{let n=Pe(t);if(n)return{context:{...e,selection:n}}},clear:({context:e})=>({context:{...e,selection:{values:[],labels:[]},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})=>!Ae(e),single:({props:e})=>!e.multiple,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}}),K=640,Ie=256,Le=520,Re=.72,ze=12,Be=16,q=720,Ve=720,J=({viewportWidth:e,viewportHeight:t,layoutViewportHeight:n,referenceTop:r,referenceBottom:i,touch:a})=>{if(e<=K)return`fullscreen`;let o=t<Le||t<n*Re;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)<Ie?`dialog`:`anchored`},Y=()=>{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}},He=()=>window.matchMedia?.(`(any-pointer: coarse)`).matches===!0||navigator.maxTouchPoints>0,Ue=e=>{let t=m(e),n=!1,r=`anchored`,i=!1,a=null,o=()=>e.floating(),s=e=>{e!==i&&(i=e,e?y():v())},c=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`)},l=(e,t)=>{let n=Y(),r=t===`dialog`?Be:ze,i=t===`dialog`?q:1/0,a=t===`dialog`?Ve: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`})},u=()=>{let t=Y(),n=e.reference().getBoundingClientRect();return J({viewportWidth:t.width,viewportHeight:t.height,layoutViewportHeight:window.innerHeight,referenceTop:n.top-t.offsetTop,referenceBottom:n.bottom-t.offsetTop,touch:He()})},d=()=>{if(!n)return;let i=o(),a=u();r=a,i.dataset.presentation=a;let d=i.querySelector(`[data-ui-select-sheet-heading]`);if(d&&(d.style.display=a===`anchored`?`none`:`flex`),a===`anchored`){i.removeAttribute(`aria-modal`),i.removeAttribute(`aria-labelledby`),i.removeAttribute(`role`),s(!1),c(i),t.mount();return}t.unmount(),i.setAttribute(`role`,`dialog`),i.setAttribute(`aria-modal`,`true`),i.setAttribute(`aria-labelledby`,e.labelId()),s(!0),l(i,a)},f=()=>{let e=()=>d(),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{o().showPopover()}catch{}d(),a=f()}},p=()=>{if(n){n=!1,a?.(),a=null,t.unmount(),s(!1);try{o().hidePopover()}catch{}}};return{opened:()=>n,open:ee,close:p,sync:d,destroy:p,presentation:()=>r}},X=te({definition:{component:`ui.select`,parts:{root:{base:`relative inline-grid w-full min-w-0`},control:{base:D,variants:{size:O,radius:w,variant:{outline:``,filled:``,plain:``},mode:{listbox:``,combobox:``,pillbox:`flex-wrap gap-1 py-0.5`,native:``},empty:{true:``,false:``}},compounds:[{when:{mode:`pillbox`,empty:!1},class:`!pl-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`]},pillboxTrigger:{base:`min-w-16 self-stretch`},value:{base:`min-w-0 flex-1`},placeholder:{base:`min-w-0 flex-1 text-surface-ink-muted`},input:{base:[`w-full min-w-16 flex-1`,M]},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`,M]},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-64`]},chipLabel:{base:`block min-w-0 flex-1 truncate`},chipRemove:{base:``},icon:{base:`size-icon shrink-0 fill-current text-surface-ink-muted`,variants:{position:{leading:``,trailing:``}},defaults:{position:`leading`}},action:{base:E},popover:{base:[b,`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 auto-rows-min content-start gap-1 px-popover-padding`},create:{base:`shrink-0 p-popover-padding`},option:{base:[S,`min-w-0 max-w-full overflow-hidden`,`[&: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:`ml-auto shrink-0 text-current opacity-70`},optionIcon:{base:k,variants:{position:{leading:``,trailing:`ml-auto`}},defaults:{position:`leading`}},optionIndicator:{base:x},group:{base:`grid auto-rows-min content-start gap-1`},label:{base:`px-menu-item-padding-inline py-1`},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`},nativeWrapper:{base:`relative w-full min-w-0`},native:{base:[A,`appearance-none pe-10`],variants:{size:O,radius:w},defaults:{size:`lg`,radius:`md`}},nativeIcon:{base:`pointer-events-none absolute right-3 top-1/2 size-icon -translate-y-1/2 fill-current text-icon`}}}}),Z=`[data-ui-select-option], [data-ui-select-option-create]`,We=`template[data-ui-select-option-selected-template]`,Q=e=>{if(!(e instanceof Element)){e.childNodes.forEach(Q);return}Array.from(e.attributes).forEach(t=>{let n=t.name;(n===`id`||n===`role`||n===`tabindex`||n.startsWith(`aria-selected`)||n.startsWith(`aria-disabled`)||n.startsWith(`data-ui-select-option`)||n.startsWith(`data-selected`)||n.startsWith(`data-highlighted`)||n.startsWith(`data-disabled`)||n.startsWith(`x-`)||n.startsWith(`@`)||n.startsWith(`:`)||n.startsWith(`on`))&&e.removeAttribute(n)}),e.childNodes.forEach(Q),e.setAttribute(`x-ignore`,`true`)},Ge=e=>{let t=document.createDocumentFragment();return Array.from(e).forEach(e=>{if(e instanceof HTMLTemplateElement&&e.matches(We))return;let n=e.cloneNode(!0);Q(n),t.append(n)}),t},Ke=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),qe=()=>{let t=null,n=!1,r=``,i=``,a=``,o=``,f=null,p=null,m=[],te=``,re=``,g=!1,_=!1,v=null,y=``,b=0,de=0,x=0,S=0,fe=null,C=new Map,w=()=>{if(!t)throw Error(`Select has not been initialized.`);return t},pe=()=>{let e=w().querySelector(`[data-ui-select-control]`);if(!e)throw Error(`Select requires a control element.`);return e},T=()=>{let e=w().querySelector(`[data-ui-select-trigger], [data-ui-select-button], [data-ui-select-input]`);if(!e)throw Error(`Select requires a trigger element.`);return e},E=()=>w().querySelector(`[data-ui-select-input]`),D=()=>w().querySelector(`[data-ui-select-search-input]`),O=()=>{let e=w().querySelector(`[data-ui-select-sheet-title]`);if(!e)throw Error(`Select requires an adaptive picker title.`);return e},k=()=>{let e=w().querySelector(`[data-ui-select-popover]`);if(!e)throw Error(`Select requires a popover element.`);return e},A=()=>{let e=w().querySelector(`[data-ui-select-listbox]`);if(!e)throw Error(`Select requires a listbox element.`);return e},me=()=>{let e=w().querySelector(`[data-ui-select-options]`);if(!e)throw Error(`Select requires an options element.`);return e},j=()=>w().querySelector(`[data-ui-select-virtualizer]`),M=()=>j()?._x_dataStack?.find(e=>typeof e.setUrl==`function`&&typeof e.setTotalItems==`function`)??null,he=()=>w().querySelector(`[data-ui-select-chips]`),ge=()=>w().querySelector(`[data-ui-select-hidden-inputs]`),P=()=>J.getCommittedSnapshot().props,F=()=>J.getCommittedSnapshot().context,I=()=>J.hasTag(`expanded`),L=()=>J.hasTag(`visible`),xe=(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=be(ye(e.dataset.item),t.path);return r==null?(e.querySelector(`[data-ui-select-option-label]`)?.textContent??e.textContent??``).trim():String(r)},R=({props:e,query:t,selectedValues:n})=>{let r=N(t),i=Array.from(w().querySelectorAll(Z)).map((i,o)=>{let s=xe(i,e),l=i.dataset.value||s,u=i.hasAttribute(`data-ui-select-option-create`),d=r!==``&&N(s)===r,f=!e.filter||r===``||N(`${s} ${i.dataset.suffix??``}`).includes(r),ee=Number(i.dataset.minLength??`0`);return{el:i,id:i.id||`${a}-option-${o}`,value:u?i.dataset.value||t:l,label:s,selectedLabel:i.dataset.selectedLabel||s,disabled:c({value:i.dataset.disabled}),selected:n.includes(l),visible:u?t.length>=ee&&!d:f,create:u}});return i.forEach(e=>{e.create||C.set(e.value,e.selectedLabel)}),i.some(e=>!e.create&&N(e.label)===r)?i.map(e=>e.create?{...e,visible:!1}:e):i},z=(e=F().search.query)=>R({props:P(),query:e,selectedValues:F().selection.values}),B=(e=F().search.query)=>z(e).filter(e=>e.visible&&!e.disabled&&!e.create),V=()=>{let e=P();if(!D())return!1;if(e.mode===`combobox`)return!0;let t=z(``).filter(e=>!e.create).length;return(e.virtualized?Math.max(t,e.optionsTotalItems,S):t)>=e.searchMinItems},H=(e,t=P())=>{let n=Array.from(new Set(e.filter(Boolean))),r=t.multiple?n:n.slice(0,1),i=R({props:t,query:``,selectedValues:r});return{values:r,labels:r.map(e=>i.find(t=>t.value===e)?.selectedLabel??C.get(e)??(typeof t.selectedLabelMap[e]==`string`?t.selectedLabelMap[e]:void 0)??e)}},Se=e=>e.multiple?Array.from(new Set([...e.values,...e.value?[e.value]:[]])):e.value?[e.value]:e.values.slice(0,1),Ce=e=>{let t=Se(e),n=R({props:e,query:``,selectedValues:[]}).filter(e=>c({value:e.el.dataset.selected})).map(e=>e.value);return{selection:H(t.length>0?t:n,e),search:{query:``,optionsId:``},navigation:{activeValue:``},creation:{value:``}}},we=()=>{let{selection:e}=F(),t=P();return e.values.length===0||t.mode===`pillbox`&&t.multiple?``:t.multiple&&e.values.length>1?`${e.values.length} ${t.suffix}`:e.labels[0]??e.values[0]??``},Te=e=>{let t=e.el.querySelector(We);if(t)return Ge(t.content.childNodes);let n=e.el.querySelector(`[data-ui-select-option-selected-content]`)??e.el.querySelector(`[data-ui-select-option-label]`);if(n)return Ge(n.childNodes);let r=document.createDocumentFragment();return r.append(document.createTextNode(e.selectedLabel)),r},Ee=()=>{let e=P();if(n){let t=F().selection.values;(I()||!e.open||!e.disabled&&!e.readonly)&&s({el:w(),schema:W,key:`open`,value:I()}),s({el:w(),schema:W,key:`value`,value:e.multiple?``:t[0]??``}),s({el:w(),schema:W,key:`values`,value:e.multiple?[...t]:[]})}w().dataset.state=I()?`open`:`closed`,w().dataset.mark=e.mark,oe({el:w(),state:{disabled:e.disabled,required:e.required,invalid:e.invalid},value:`true`})},U=()=>P().mode===`pillbox`&&P().multiple,De=()=>{let e=P(),t=U()&&F().selection.values.length===0,n=pe();n.className=h({part:X.parts.control,props:{...e,mode:U()?`pillbox`:e.mode===`combobox`?`combobox`:`listbox`,empty:t}}),n.dataset.state=I()?`open`:`closed`,n.dataset.mode=U()?`pillbox`:e.mode,u({el:n,attr:`data-ui-select-pillbox-control`,present:U(),value:``}),u({el:n,attr:`data-empty`,present:t,value:`true`}),oe({el:n,state:{disabled:e.disabled,invalid:e.invalid},value:`true`})},Oe=()=>{let e=P(),t=T();t.id||=r,t.dataset.state=I()?`open`:`closed`,t.setAttribute(`aria-haspopup`,`listbox`),t.setAttribute(`aria-expanded`,I()?`true`:`false`),t.setAttribute(`aria-controls`,a),u({el:t,attr:`aria-invalid`,present:e.invalid,value:`true`}),t instanceof HTMLButtonElement&&(t.disabled=e.disabled);let n=we(),i=w().querySelector(`[data-ui-select-button-value]`),o=w().querySelector(`[data-ui-select-button-placeholder]`);if(i){i.replaceChildren();let e=F().selection.values.length===1&&n?z(``).find(e=>e.value===F().selection.values[0]):void 0;e?i.append(Te(e)):i.textContent=n,i.hidden=n===``}o&&(o.hidden=U()?F().selection.values.length>0:n!==``),w().querySelectorAll(`[data-ui-select-clear], [data-ui-select-button-clear]`).forEach(t=>{t.hidden=e.disabled||!e.clearable||F().selection.values.length===0,t instanceof HTMLButtonElement&&(t.disabled=e.disabled)}),w().querySelectorAll(`[data-ui-select-search-clear]`).forEach(t=>{t.hidden=e.disabled||!F().search.query,t instanceof HTMLButtonElement&&(t.disabled=e.disabled)})},G=()=>{let e=P(),t=F(),n=E();n&&(n.id||=i,n.className=h({part:X.parts.input,className:e.inputClass}),n.value=U()||I()&&g?t.search.query:we(),n.placeholder=U()&&t.selection.values.length>0?``:e.placeholder,n.setAttribute(`role`,`combobox`),n.setAttribute(`autocomplete`,`off`),n.setAttribute(`aria-autocomplete`,`list`),n.setAttribute(`aria-expanded`,I()?`true`:`false`),n.setAttribute(`aria-controls`,a),se({input:n,state:{disabled:e.disabled,readonly:e.readonly,required:e.required,nativeRequired:!1,invalid:e.invalid,ariaRequired:e.required}}));let r=D();if(r){let n=r.closest(`[data-ui-select-search]`);n&&(n.hidden=!V()),r.value=t.search.query,r.disabled=e.disabled,r.readOnly=e.readonly}let o=z().find(e=>e.value===t.navigation.activeValue);[T(),n,r,A()].forEach(e=>{o?.id?e?.setAttribute(`aria-activedescendant`,o.id):e?.removeAttribute(`aria-activedescendant`)})},Ae=()=>{let e=P(),t=k(),n=A();t.id=`${a}-popover`,t.className=h({part:X.parts.popover,props:e,className:e.listboxClass}),t.dataset.uiSurface=e.surface,t.dataset.uiElevation=e.elevation,t.setAttribute(`popover`,`manual`),t.dataset.state=I()?`open`:`closed`,t.hidden=!L(),n.id=a,n.setAttribute(`role`,`listbox`),n.tabIndex=-1,n.setAttribute(`aria-labelledby`,T().id),u({el:n,attr:`aria-multiselectable`,present:e.multiple,value:`true`})},je=()=>{let e=P(),t=F();w().querySelectorAll(`[data-ui-select-create-query]`).forEach(e=>{e.textContent=t.search.query});let n=z();n.forEach(e=>{e.el.id=e.id,e.el.hidden=!e.visible,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),u({el:e.el,attr:`data-selected`,present:e.selected,value:`true`}),u({el:e.el,attr:`data-highlighted`,present:e.value===t.navigation.activeValue,value:`true`}),u({el:e.el,attr:`data-disabled`,present:e.disabled,value:`true`}),u({el:e.el,attr:`aria-disabled`,present:e.disabled,value:`true`}),e.el.querySelectorAll(`[data-ui-select-option-indicator]`).forEach(t=>{u({el:t,attr:`data-selected`,present:e.selected,value:`true`})})});let r=w().querySelector(`[data-ui-select-option-empty]`);r&&(r.hidden=e.virtualized&&e.optionsFetchUrl?x!==0:n.some(e=>e.visible&&!e.create))},Me=()=>JSON.stringify(Array.from(w().querySelectorAll(Z)).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??``}))),Ne=()=>{let e=he();if(!e)return;let t=P(),n=F(),r=z(``),i=n.selection.values.map((e,t)=>({value:e,label:n.selection.labels[t]??e,disabled:r.find(t=>t.value===e)?.disabled??!1})),a=JSON.stringify({chips:i,pillbox:U(),disabled:t.disabled,readonly:t.readonly,variant:t.chipVariant,color:t.chipColor,className:t.chipClass});if(a===re||(re=a,e.replaceChildren(),e.hidden=!U()||i.length===0,e.hidden))return;let o=h({part:_e.parts.root,props:{variant:t.chipVariant,color:t.chipColor,size:`sm`,radius:`sm`},className:h({part:X.parts.chip,props:{},className:t.chipClass})}),s=h({part:X.parts.chipLabel}),c=h({part:_e.parts.close,props:{size:`sm`},className:h({part:X.parts.chipRemove})});i.forEach(n=>{let r=document.createElement(`span`);r.className=o,r.setAttribute(`data-ui-badge`,``),r.setAttribute(`data-ui-action-recipe`,`badge`),r.setAttribute(`data-ui-select-chip`,``),r.dataset.value=n.value,r.dataset.variant=t.chipVariant,r.dataset.color=t.chipColor,r.dataset.size=`sm`,r.dataset.radius=`sm`;let i=document.createElement(`span`);i.className=s,i.setAttribute(`data-ui-select-chip-label`,``),i.textContent=n.label,r.append(i);let a=document.createElement(`button`);a.type=`button`,a.className=c,a.setAttribute(`data-ui-badge-close`,``),a.setAttribute(`data-ui-select-chip-remove`,``),a.dataset.value=n.value,a.setAttribute(`aria-label`,`Remove ${n.label}`),a.disabled=t.disabled||t.readonly||n.disabled;let l=w().querySelector(`[data-ui-select-chip-remove-icon]`);l?a.append(l.content.cloneNode(!0)):a.textContent=`x`,r.append(a),e.append(r)})},Pe=()=>{let e=ge();if(!e)return;let t=P();te=ae({container:e,state:{name:t.name,required:t.required,values:t.disabled?[]:[...F().selection.values],form:w().dataset.form??``,marker:`data-ui-select-hidden-input`},currentKey:te})},K=()=>{Ee(),De(),Oe(),G(),Ae(),je(),Ne(),Pe()},Ie=()=>{if(!t||!J.hasTag(`interactive`))return;let e=P();f?.presentation()===`anchored`?e.mode===`combobox`?E()?.focus({preventScroll:!0}):V()?D()?.focus({preventScroll:!0}):T().focus({preventScroll:!0}):((V()?D():null)??w().querySelector(`[data-ui-select-sheet-close]`)??A()).focus({preventScroll:!0})},Le=()=>{if(F().navigation.activeValue)return;let e=B(),t=F().selection.values.map(t=>e.find(e=>e.value===t)).find(e=>e!==void 0);t&&Q(t.value)},Re=()=>{let e=F(),t=H(e.selection.values);Ke(t.labels,e.selection.labels)||J.send({type:`RECONCILE_SELECTION`,...t});let n=B();e.navigation.activeValue&&!n.some(t=>t.value===e.navigation.activeValue)&&J.send({type:`ACTIVE`,value:P().autoHighlight?n[0]?.value??``:``}),K()},ze=e=>{let t=(Array.isArray(e.changes)?e.changes:[]).flatMap(e=>e&&typeof e==`object`&&`key`in e?[String(e.key)]:[]);if(t.some(e=>e===`value`||e===`values`||e===`multiple`||e===`selectedLabelMap`)){let e=H(Se(P()));J.send({type:`RECONCILE_SELECTION`,...e})}t.includes(`optionsTotalItems`)&&(x=P().optionsTotalItems,S=x,M()?.setTotalItems(x)),t.includes(`optionsFetchUrl`)&&(q(),queueMicrotask(q)),K()},Be=e=>{let t=P(),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}`},q=()=>{if(!t)return;let e=P();if(!e.virtualized)return;let n=e.optionsFetchUrl?Be(F().search.query):``,r=j();if(!r)return;if(r.dataset.fetchUrl===n){fe=n;return}if(fe===n)return;let i=M();i&&(fe=n,i.setUrl(n,{reset:!0}))},Ve=()=>{window.clearTimeout(de);let e=P();!e.virtualized||!e.optionsFetchUrl||!e.searchable&&e.mode!==`combobox`||(de=window.setTimeout(()=>{q();let t=M();t&&x===0&&e.optionsTotalItems>0&&(x=e.optionsTotalItems,t.setTotalItems(x))},e.optionSearchDebounce))},J=ee({schema:W,hooks:ke,createMachine:({props:t})=>Fe({props:t,context:Ce(t),effects:{prepareOpen:()=>{_=!1,f?.open(),Le(),K(),queueMicrotask(Ie)},finishOpen:()=>{K(),l({el:w(),name:`ui:open`})},prepareClose:({event:e})=>{g=!1,_=e.restoreFocus===!0||e.type===`SELECT`||e.type===`CREATE`,_&&T().focus({preventScroll:!0}),K()},finishClose:()=>{f?.close(),K(),_&&T().focus({preventScroll:!0}),_=!1,l({el:w(),name:`ui:close`})},commitSelection:({event:t})=>{K(),e(w(),`data-value`,`data-values`),ce({container:ge(),fallback:w(),marker:`data-ui-select-hidden-input`});let{selection:n}=F();t.type===`CLEAR`&&l({el:w(),name:`ui:clear`}),l({el:w(),name:`ui:change`,detail:{value:n.values[0]??``,values:[...n.values],label:n.labels[0]??``,labels:[...n.labels],option:v}}),v=null},commitSearch:()=>{K(),l({el:w(),name:`ui:search`,detail:{search:F().search.query}}),Ve()},prepareCreate:({event:e})=>{K(),l({el:w(),name:`ui:create`,detail:{search:F().search.query,value:F().creation.value,modal:typeof e.modal==`string`?e.modal:``}})},syncProps:({event:e})=>ze(e),syncOptions:Re,syncActive:K,syncDom:K}})}),Y=(e,t)=>J.send({type:e,...t}),He=(e,t)=>{t?.preventDefault();let n=P();if(!(n.disabled||n.readonly||e.disabled)){if(e.create){J.send({type:`CREATE`,value:e.value||F().search.query,modal:e.el.dataset.modal??``});return}v=e.el,g=!1,Y(`SELECT`,H(n.multiple?F().selection.values.includes(e.value)?F().selection.values.filter(t=>t!==e.value):[...F().selection.values,e.value]:[e.value]))}},Q=e=>{if(e===F().navigation.activeValue)return;J.send({type:`ACTIVE`,value:e});let t=z().find(t=>t.value===e);l({el:w(),name:`ui:highlight`,detail:{value:e,option:t?.el??null}})},qe=e=>{let t=B();if(t.length===0)return;let n=t.findIndex(e=>e.value===F().navigation.activeValue),r=n<0?e>0?0:t.length-1:n+e;r>=t.length&&(r=P().loop?0:t.length-1),r<0&&(r=P().loop?t.length-1:0),Q(t[r]?.value??``)},Je=e=>{let t=P();if(t.disabled||t.readonly)return;g=!0;let n=t.autoHighlight?B(e)[0]?.value??``:``;J.send({type:`SEARCH`,query:e,optionsId:o,activeValue:n})},Ye=e=>{if(e.key===`Tab`&&f?.presentation()!==`anchored`){le(e,k());return}let t=e.target instanceof HTMLInputElement;if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),I()||J.send({type:`OPEN`}),qe(e.key===`ArrowDown`?1:-1);return}if(!t&&I()&&(e.key===`Home`||e.key===`End`)){e.preventDefault();let t=B();Q(e.key===`Home`?t[0]?.value??``:t.at(-1)?.value??``);return}if(I()&&(e.key===`Enter`||!t&&e.key===` `)){let t=z().find(e=>e.value===F().navigation.activeValue);t&&He(t,e);return}if((e.key===`Backspace`||e.key===`Delete`)&&U()&&!F().search.query){let t=E();if(t&&(t.selectionStart!==0||t.selectionEnd!==0))return;let n=[...F().selection.values].reverse().find(e=>!z(``).find(t=>t.value===e)?.disabled);n&&(e.preventDefault(),$.deselect(n,e));return}if(e.key===`Escape`&&L()){e.preventDefault(),e.stopPropagation(),J.send({type:`CLOSE`,restoreFocus:!0});return}if(!t&&!V()&&e.key.length===1&&!e.metaKey&&!e.ctrlKey&&!e.altKey){y+=e.key.toLowerCase(),window.clearTimeout(b),b=window.setTimeout(()=>{y=``},500);let t=B().find(e=>N(e.label).startsWith(y));t&&Q(t.value)}},Xe=()=>{let e=w(),t=(e,t)=>t.closest(`[data-ui-select-trigger], [data-ui-select-icon="trailing"], [data-ui-select-control]`)?(e.preventDefault(),e instanceof PointerEvent||e instanceof MouseEvent&&e.detail>0?ve(T()):T().focus({preventScroll:!0}),T()instanceof HTMLInputElement?I()||J.send({type:`OPEN`}):$.toggle(e),!0):!1;d({target:e,event:`click`,cleanup:m,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(),Je(``);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(Z);if(i){let t=z().find(e=>e.el===i);t&&He(t,e);return}(!(e instanceof MouseEvent)||e.detail===0)&&t(e,n)}}),d({target:e,event:`input`,cleanup:m,handler:e=>{let t=e.target;t instanceof HTMLInputElement&&t.matches(`[data-ui-select-input], [data-ui-select-search-input]`)&&Je(t.value)}}),d({target:e,event:`keydown`,cleanup:m,handler:e=>{e instanceof KeyboardEvent&&Ye(e)}}),d({target:e,event:`pointerdown`,cleanup:m,handler:e=>{let n=e.target;if(n instanceof Element){if(n.closest(Z)||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)}}}),d({target:e,event:`pointerover`,cleanup:m,handler:e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(Z),r=n?z().find(e=>e.el===n):void 0;r&&r.visible&&!r.disabled&&Q(r.value)}}),d({target:e,event:`focusout`,cleanup:m,handler:t=>{if(!(t instanceof FocusEvent))return;let n=t.relatedTarget;n instanceof Node&&e.contains(n)||L()&&J.send({type:`CLOSE`})}}),d({target:e,event:`ui:virtualizer-total-change`,cleanup:m,handler:e=>{if(!(e instanceof CustomEvent)||!j()?.contains(e.target))return;let t=Number(e.detail?.totalItems);Number.isFinite(t)&&t>=0&&(x=Math.floor(t),S=Math.max(S,x)),J.send({type:`OPTIONS_CHANGED`})}}),d({target:e,event:`ui:virtualizer-load`,cleanup:m,handler:e=>{j()?.contains(e.target)&&J.send({type:`OPTIONS_CHANGED`})}}),d({target:k(),event:`toggle`,cleanup:m,handler:e=>{!(`newState`in e)||e.newState!==`closed`||!L()||J.send({type:`CLOSE`})}}),m.push(ie({isEnabled:()=>J.hasTag(`interactive`),roots:()=>[w(),k()],onDismiss:()=>J.send({type:`CLOSE`})})),p=ue({targets:A(),read:Me,onChange:()=>J.send({type:`OPTIONS_CHANGED`}),observer:{childList:!0,subtree:!0}})},$;return $={...J,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.values[0]??``},get values(){return[...this.snapshot.current?.context.selection.values??[]]},get selectedLabels(){return[...this.snapshot.current?.context.selection.labels??[]]},get search(){return this.snapshot.current?.context.search.query??``},get activeValue(){return this.snapshot.current?.context.navigation.activeValue??``},init(){t=this.$el,r=this.$id(`select-button`),i=this.$id(`select-input`),a=this.$id(`select-listbox`),o=me().id||w().dataset.optionsId||this.$id(`select-options`),me().id=o,J.connect(this.$el,this.snapshot),x=P().optionsTotalItems,S=x,O().id||=`${a}-title`,f=Ue({reference:pe,floating:k,labelId:()=>O().id,position:()=>P().side,align:()=>P().align,gap:()=>P().gap,offset:()=>P().offset,matchReferenceWidth:!0}),Xe(),K(),queueMicrotask(q),n=!0,P().open&&!P().disabled&&!P().readonly&&queueMicrotask(()=>J.send({type:`OPEN`}))},destroy(){window.clearTimeout(b),window.clearTimeout(de),p?.(),p=null,m.forEach(e=>e()),m=[],f?.destroy(),f=null,J.disconnect(),t=null},get root(){let e=this.snapshot.current?.props??P();return ne({inputs:[h({part:X.parts.root,props:e,className:e.class}),{"data-ui-select":``,":data-state":()=>J.hasTag(`expanded`)?`open`:`closed`}]})},open(e){e?.preventDefault(),!(P().disabled||P().readonly)&&J.send({type:`OPEN`})},close(e){e?.preventDefault(),J.send({type:`CLOSE`,restoreFocus:e instanceof KeyboardEvent})},toggle(e){e?.preventDefault(),!(P().disabled||P().readonly)&&J.send({type:`TOGGLE`})},select(e,t){let n=z(``).find(t=>!t.create&&t.value===e);n&&He(n,t)},deselect(e,t){t?.preventDefault(),!(P().disabled||P().readonly)&&(z(``).find(t=>t.value===e)?.disabled||Y(`DESELECT`,H(F().selection.values.filter(t=>t!==e))))},selectAll(e){if(e?.preventDefault(),!P().multiple||P().disabled||P().readonly)return;let t=B();Y(`SELECT_ALL`,{values:t.map(e=>e.value),labels:t.map(e=>e.selectedLabel)})},clear(e){if(e?.preventDefault(),e?.stopPropagation(),P().disabled||P().readonly)return;g=!1;let t=F().search.query!==``;J.send({type:`CLEAR`}),t&&Ve()},setSearch:Je},$},Je=p(`UiSelect`,qe),Ye=new WeakSet,Xe=e=>{Ye.has(e)||(Ye.add(e),t(e),Je(e))};export{qe as n,Xe as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-DrmfusOi.js.map
|