@vireo-ai/trellis-ui 0.1.52 → 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/navigation.d.ts +2 -1
- 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 +518 -489
- 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-DQitxnHn.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-DvvVMsQo.js → entry.generated-QV-az1in.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DvvVMsQo.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-DQitxnHn.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-Dzv1zWaL.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Dzv1zWaL.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-DMbnlSdM.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DMbnlSdM.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-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-CvcufWkj.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CvcufWkj.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D3w3QaSO.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D3w3QaSO.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DCLIvEtJ.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DCLIvEtJ.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DVQaci6w.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DVQaci6w.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-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-Rx9NofFi.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Rx9NofFi.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-oz1RCU1b.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oz1RCU1b.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-payXlXhL.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-payXlXhL.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/entry2.generated-CpoK52gE.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CpoK52gE.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-D1X0sDop.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-D1X0sDop.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-_UPpJlWp.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-_UPpJlWp.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-BDQdr83d.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-BDQdr83d.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-SdoiMWig.js +0 -4
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-SdoiMWig.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.generated-CnFggOc8.js","names":[],"sources":["../../../../../../../../client/src/components/radio/contract.ts","../../../../../../../../client/src/components/radio/machine.ts","../../../../../../../../client/src/components/radio/styles.ts","../../../../../../../../client/src/components/radio/index.ts","../../../../../../../../client/src/components/radio/entry.generated.ts"],"sourcesContent":["import {attribute, bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n CONTROL_SIZES,\n INDICATOR_PLACEMENTS,\n INTERACTION_TREATMENTS,\n ORIENTATIONS,\n SELECTION_COLORS,\n type ControlSize,\n type IndicatorPlacement,\n type Orientation,\n} from '../common';\n\nconst RADIO_GROUP_ORIENTATIONS = ORIENTATIONS;\nconst RADIO_GROUP_VARIANTS = ['default', 'cards', 'pills', 'menu'] as const;\nconst RADIO_PLACEMENTS = INDICATOR_PLACEMENTS;\nconst RADIO_SIZES = CONTROL_SIZES;\nconst RADIO_VARIANTS = ['default', 'cards', 'pills', 'menu'] as const;\nconst RADIO_COLORS = SELECTION_COLORS;\nconst RADIO_INTERACTIONS = INTERACTION_TREATMENTS;\n\ntype RadioGroupOrientation = Orientation;\ntype RadioGroupVariant = typeof RADIO_GROUP_VARIANTS[number];\ntype RadioPlacement = IndicatorPlacement;\ntype RadioSize = ControlSize;\ntype RadioVariant = typeof RADIO_VARIANTS[number];\ntype RadioColor = typeof RADIO_COLORS[number];\ntype RadioInteraction = typeof RADIO_INTERACTIONS[number];\n\nconst radioGroupSchema = {\n name: string,\n value: attribute(string, 'prop-value'),\n orientation: oneOf(RADIO_GROUP_ORIENTATIONS, 'vertical' as RadioGroupOrientation),\n variant: oneOf(RADIO_GROUP_VARIANTS, 'default' as RadioGroupVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n loop: bool.default(true),\n class: string,\n};\n\nconst radioSchema = {\n value: string,\n name: string,\n label: string,\n description: string,\n checked: attribute(bool, 'prop-checked'),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n icon: string,\n variant: oneOf(RADIO_VARIANTS, 'default' as RadioVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n inputClass: string,\n indicatorClass: string,\n iconClass: string,\n contentClass: string,\n labelClass: string,\n descriptionClass: string,\n class: string,\n};\n\nconst radioIndicatorSchema = {\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n class: string,\n};\n\ntype RadioGroupProps = SchemaToProps<typeof radioGroupSchema>;\ntype RadioProps = SchemaToProps<typeof radioSchema>;\n\nexport {\n RADIO_GROUP_ORIENTATIONS,\n RADIO_GROUP_VARIANTS,\n RADIO_COLORS,\n RADIO_INTERACTIONS,\n RADIO_PLACEMENTS,\n RADIO_SIZES,\n RADIO_VARIANTS,\n radioGroupSchema,\n radioIndicatorSchema,\n radioSchema,\n};\nexport type {\n RadioColor,\n RadioGroupOrientation,\n RadioGroupProps,\n RadioGroupVariant,\n RadioInteraction,\n RadioPlacement,\n RadioProps,\n RadioSize,\n RadioVariant,\n};\n","import {createMachine, propsChanged, propsChangedEvent, type Machine, type MachineEventObject, type MachineScope} from '../../runtime/state-machine';\nimport type {RadioGroupProps, RadioProps} from './contract';\n\ntype RadioItemRecord = {id: string; value: string; disabled: boolean; checked: boolean};\ntype RadioGroupContext = {\n selection: {value: string};\n collection: {items: RadioItemRecord[]};\n};\ntype RadioItemContext = {checked: boolean};\n\ntype RadioGroupEffects = {\n sync(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitInput(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitChange(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n focus(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n};\ntype RadioItemEffects = {sync(scope: MachineScope<RadioItemContext, RadioProps>): void};\n\nconst radioGroupHooks = [] as const;\nconst radioItemHooks = [] as const;\nconst eventValue = (event: MachineEventObject): string => typeof event.value === 'string' ? event.value : '';\nconst eventItem = (event: MachineEventObject): RadioItemRecord | null => {\n const item = event.item;\n if (!item || typeof item !== 'object') return null;\n const candidate = item as Partial<RadioItemRecord>;\n if (typeof candidate.id !== 'string' || typeof candidate.value !== 'string') return null;\n return {\n id: candidate.id,\n value: candidate.value,\n disabled: candidate.disabled === true,\n checked: candidate.checked === true,\n };\n};\nconst isSelectable = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => {\n const {context, event} = scope;\n if (scope.props.disabled) return false;\n const value = eventValue(event);\n if (!value) return !scope.props.required;\n return context.collection.items.some((item) => item.value === value && !item.disabled);\n};\nconst hasValue = (value: boolean) => ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n Boolean(eventValue(event)) === value\n);\nconst changedGroupValue = ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n propsChanged<RadioGroupProps>(event, 'value')\n);\nconst nextGroupSelection = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): string => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!changedGroupValue(scope) || !next) return scope.context.selection.value;\n return next.value || scope.context.collection.items.find((item) => item.checked)?.value || '';\n};\n\nconst select = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => ({\n context: {...scope.context, selection: {value: eventValue(scope.event)}},\n});\nconst reconcileProps = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!next) return;\n return {\n props: next,\n context: changedGroupValue(scope)\n ? {...scope.context, selection: {value: nextGroupSelection(scope)}}\n : scope.context,\n };\n};\nconst registerItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const items = [...scope.context.collection.items.filter((candidate) => candidate.id !== item.id), item];\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n const selected = scope.context.selection.value || (item.checked ? item.value : '');\n return {context: {selection: {value: selected}, collection: {items}}};\n};\nconst unregisterItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const id = typeof scope.event.id === 'string' ? scope.event.id : '';\n const removed = scope.context.collection.items.find((item) => item.id === id);\n const items = scope.context.collection.items.filter((item) => item.id !== id);\n const value = removed?.value === scope.context.selection.value ? '' : scope.context.selection.value;\n return {context: {selection: {value}, collection: {items}}};\n};\nconst updateItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const previous = scope.context.collection.items.find((candidate) => candidate.id === item.id);\n const items = scope.context.collection.items.map((candidate) => candidate.id === item.id ? item : candidate);\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n let value = scope.context.selection.value;\n if (item.checked) value = item.value;\n else if (previous?.checked && !item.checked && previous.value === value) value = '';\n else if (previous?.value === value && item.value !== previous.value) value = item.value;\n return {context: {selection: {value}, collection: {items}}};\n};\n\nconst createRadioGroupMachine = ({props, effects}: {props: RadioGroupProps; effects: RadioGroupEffects}): Machine<RadioGroupContext, RadioGroupProps> => createMachine<RadioGroupContext, RadioGroupProps>({\n initial: 'ready',\n on: {\n NATIVE_SELECTED: {guard: isSelectable, reduce: 'select', effects: 'sync'},\n SET_VALUE: [\n {guard: (scope) => isSelectable(scope) && hasValue(true)(scope), reduce: 'select', effects: ['sync', 'emitInput', 'emitChange']},\n {guard: (scope) => isSelectable(scope) && hasValue(false)(scope), reduce: 'select', effects: 'sync'},\n ],\n NAVIGATE: {guard: isSelectable, reduce: 'select', effects: ['sync', 'emitInput', 'emitChange', 'focus']},\n ITEM_REGISTERED: {reduce: 'registerItem', effects: 'sync'},\n ITEM_UPDATED: {reduce: 'updateItem', effects: 'sync'},\n ITEM_UNREGISTERED: {reduce: 'unregisterItem', effects: 'sync'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n },\n states: {ready: {}},\n}, {\n context: {selection: {value: props.value}, collection: {items: []}},\n props,\n reducers: {select, reconcileProps, registerItem, unregisterItem, updateItem},\n effects,\n});\n\nconst createRadioItemMachine = ({props, effects}: {props: RadioProps; effects: RadioItemEffects}): Machine<RadioItemContext, RadioProps> => createMachine<RadioItemContext, RadioProps>({\n initial: 'ready',\n states: {ready: {on: {\n NATIVE_SELECTED: {reduce: 'select', effects: 'sync'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n }}},\n}, {\n context: {checked: props.checked},\n props,\n reducers: {\n select: (scope) => ({context: {...scope.context, checked: true}}),\n reconcileProps: (scope) => {\n const event = propsChangedEvent<RadioProps>(scope.event);\n if (!event) return;\n const checkedChanged = event.changes.some(({key}) => key === 'checked');\n return {\n props: event.props,\n context: checkedChanged ? {...scope.context, checked: event.props.checked} : scope.context,\n };\n },\n },\n effects,\n});\n\nexport {createRadioGroupMachine, createRadioItemMachine, radioGroupHooks, radioItemHooks};\nexport type {RadioGroupContext, RadioGroupEffects, RadioItemContext, RadioItemEffects, RadioItemRecord};\n","import {defineStyles} from '../../runtime';\nimport {BADGE_ROOT_BASE_CLASSES, BADGE_SIZE_CLASSES, BADGE_VARIANT_CLASSES} from '../badge/styles';\nimport {\n CONTROL_TYPOGRAPHY_CLASSES,\n INTERACTIVE_ITEM_CLASSES,\n OPTION_INDICATOR_CLASSES,\n OPTION_ITEM_CLASSES,\n} from '../common';\n\nconst radioStyles = defineStyles({definition: {\n component: 'ui.radio',\n parts: {\n group: {\n base: 'w-full min-w-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: '',\n },\n variant: {\n default: '',\n cards: '',\n pills: '',\n menu: 'contents',\n },\n },\n compounds: [\n {when: {variant: 'default', orientation: 'vertical'}, class: 'grid gap-2'},\n {when: {variant: 'default', orientation: 'horizontal'}, class: 'flex flex-wrap items-start gap-3'},\n {when: {variant: 'cards', orientation: 'vertical'}, class: 'grid gap-3'},\n {when: {variant: 'cards', orientation: 'horizontal'}, class: 'flex flex-wrap items-stretch gap-3'},\n {when: {variant: 'pills', orientation: 'vertical'}, class: 'inline-grid gap-2'},\n {when: {variant: 'pills', orientation: 'horizontal'}, class: 'flex flex-wrap items-center gap-2'},\n ],\n defaults: {\n orientation: 'vertical',\n variant: 'default',\n },\n },\n radio: {\n base: [\n 'relative flex min-w-0 items-start gap-2 rounded-control-md outline-none',\n 'text-inherit',\n ],\n variants: {\n variant: {\n default: ['w-full py-0.5', INTERACTIVE_ITEM_CLASSES],\n cards: 'w-auto flex-1 items-start gap-3',\n pills: [\n BADGE_ROOT_BASE_CLASSES,\n BADGE_VARIANT_CLASSES.soft,\n BADGE_SIZE_CLASSES.md,\n 'w-auto flex-none rounded-full',\n ],\n menu: [OPTION_ITEM_CLASSES, '!items-center'],\n },\n size: CONTROL_TYPOGRAPHY_CLASSES,\n },\n defaults: {\n variant: 'default',\n size: 'md',\n },\n },\n input: {\n base: 'sr-only',\n },\n indicator: {\n base: [\n 'mt-0.5 flex shrink-0 items-center justify-center rounded-full border-0',\n ],\n variants: {\n variant: {\n default: '',\n cards: '',\n pills: '',\n menu: 'order-10 !mt-0 ml-auto',\n },\n size: {\n xs: 'size-radio-indicator-xs',\n sm: 'size-radio-indicator-sm',\n md: 'size-radio-indicator-md',\n lg: 'size-radio-indicator-lg',\n xlg: 'size-radio-indicator-xlg',\n },\n },\n defaults: {\n variant: 'default',\n size: 'md',\n },\n },\n indicatorDot: {\n base: 'rounded-full bg-current opacity-0 data-checked:opacity-100',\n variants: {\n size: {\n xs: 'size-radio-dot-xs',\n sm: 'size-radio-dot-sm',\n md: 'size-radio-dot-md',\n lg: 'size-radio-dot-lg',\n xlg: 'size-radio-dot-xlg',\n },\n },\n defaults: {\n size: 'md',\n },\n },\n menuIndicator: {\n base: ['order-10 flex', OPTION_INDICATOR_CLASSES],\n },\n menuIndicatorIcon: {\n base: 'size-icon shrink-0 fill-current',\n },\n content: {\n base: 'grid min-w-0 gap-0.5',\n },\n icon: {\n base: 'mt-0.5 size-icon shrink-0 fill-current text-current opacity-75',\n },\n label: {\n base: '',\n },\n description: {\n base: 'text-surface-ink-muted',\n },\n },\n}});\n\nexport {radioStyles};\n","import type Alpine from 'alpinejs';\n\nimport {type AlpineMachine, createAlpineMachine, defineAlpineData, type MachineSnapshot, type TrellisAlpineComponent} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport type {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, setAttribute, setPresence} from '@client/utils';\nimport {radioGroupSchema, radioSchema, type RadioGroupProps, type RadioProps} from './contract';\nimport {\n createRadioGroupMachine,\n createRadioItemMachine,\n radioGroupHooks,\n radioItemHooks,\n type RadioGroupContext,\n type RadioItemContext,\n type RadioItemRecord,\n} from './machine';\nimport {radioStyles} from './styles';\n\n/** Public Alpine API for `ui.radio.group`. @public */\ninterface UiRadioGroupApi {\n /** Current selected value, or an empty string when the group has no selection. */\n readonly value: string;\n /** Select a registered enabled value, or clear an optional group with an empty string. */\n setValue(value: string): void;\n}\n\ntype RadioGroupData = AlpineMachine<RadioGroupContext, RadioGroupProps, typeof radioGroupHooks> & UiRadioGroupApi & {\n init(): void;\n destroy(): void;\n};\ntype RadioData = AlpineMachine<RadioItemContext, RadioProps, typeof radioItemHooks> & {\n init(): void;\n destroy(): void;\n};\n\ntype ItemDomState = {\n checked: boolean;\n name: string;\n disabled: boolean;\n required: boolean;\n invalid: boolean;\n variant: RadioGroupProps['variant'];\n};\ntype RadioItemOwner = {\n record(): RadioItemRecord;\n input(): HTMLInputElement;\n sync(state: ItemDomState): void;\n emit(type: 'input' | 'change'): void;\n focus(): void;\n};\ntype RadioGroupOwner = {\n register(item: RadioItemOwner): () => void;\n update(item: RadioItemOwner): void;\n nativeSelected(item: RadioItemOwner): void;\n navigate(item: RadioItemOwner, delta: 1 | -1): void;\n};\n\nconst groupOwners = new WeakMap<HTMLElement, RadioGroupOwner>();\nlet radioItemId = 0;\n\nconst closestGroupOwner = (element: HTMLElement): RadioGroupOwner | null => {\n const group = element.parentElement?.closest<HTMLElement>('[data-ui-radio-group]') ?? null;\n return group ? groupOwners.get(group) ?? null : null;\n};\n\nconst UiRadio = (): TrellisAlpineComponent<RadioData> => {\n const id = `ui-radio-${++radioItemId}`;\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let cleanup: CleanupManager;\n let group: RadioGroupOwner | null = null;\n let unregister: (() => void) | null = null;\n let dispatching = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n return inputEl;\n };\n const snapshot = (): MachineSnapshot<RadioItemContext, RadioProps> => bridge.getCommittedSnapshot();\n const record = (): RadioItemRecord => ({\n id,\n value: snapshot().props.value || input().value || '',\n disabled: snapshot().props.disabled,\n checked: snapshot().props.checked,\n });\n const applyState = (state?: ItemDomState): void => {\n const props = snapshot().props;\n const native = input();\n const checked = state?.checked ?? snapshot().context.checked;\n const name = props.name || state?.name || '';\n const disabled = props.disabled || state?.disabled === true;\n const required = props.required || state?.required === true;\n const invalid = props.invalid || state?.invalid === true;\n const menu = props.variant === 'menu' || state?.variant === 'menu';\n\n native.checked = checked;\n if (!name) native.removeAttribute('name');\n syncNativeControl({input: native, state: {name, value: props.value, disabled, required, invalid}});\n setAttribute({el: root(), attr: 'data-state', value: checked ? 'checked' : 'unchecked'});\n setPresence({el: root(), attr: 'data-checked', present: checked});\n syncControlPresence({el: root(), state: {disabled, required, invalid}});\n setPresence({el: native, attr: 'data-checked', present: checked});\n root().className = resolveStyle({\n part: radioStyles.parts.radio,\n props: {...props, variant: menu ? 'menu' : props.variant},\n className: root().dataset.class,\n });\n setPresence({el: root(), attr: 'data-ui-menu-item', present: menu});\n setPresence({el: root(), attr: 'data-ui-option-recipe', present: menu});\n setPresence({el: root(), attr: 'data-keep-open', present: menu, value: 'true'});\n setPresence({el: root(), attr: 'data-selected', present: menu && checked});\n if (menu) {\n root().setAttribute('role', 'menuitemradio');\n root().setAttribute('aria-checked', checked ? 'true' : 'false');\n root().tabIndex = -1;\n native.tabIndex = -1;\n native.setAttribute('aria-hidden', 'true');\n } else {\n root().removeAttribute('role');\n root().removeAttribute('aria-checked');\n root().removeAttribute('tabindex');\n native.removeAttribute('aria-hidden');\n }\n const indicator = root().querySelector<HTMLElement>('[data-ui-radio-indicator]');\n if (indicator) {\n indicator.hidden = menu;\n indicator.className = resolveStyle({\n part: radioStyles.parts.indicator,\n props: {...props, variant: menu ? 'menu' : props.variant},\n className: indicator.dataset.class,\n });\n setPresence({el: indicator, attr: 'data-checked', present: checked});\n setPresence({el: indicator, attr: 'data-disabled', present: disabled});\n setPresence({el: indicator, attr: 'data-invalid', present: invalid});\n }\n const dot = root().querySelector<HTMLElement>('[data-ui-radio-indicator-dot]');\n if (dot) setPresence({el: dot, attr: 'data-checked', present: checked});\n const menuIndicator = root().querySelector<HTMLElement>('[data-ui-radio-menu-indicator]');\n if (menuIndicator) {\n menuIndicator.hidden = !menu;\n setPresence({el: menuIndicator, attr: 'data-selected', present: checked});\n }\n };\n const bridge = createAlpineMachine({\n schema: radioSchema,\n hooks: radioItemHooks,\n createMachine: ({props}) => createRadioItemMachine({props, effects: {sync: () => {\n group?.update(owner);\n if (!group) applyState();\n }}}),\n });\n const owner: RadioItemOwner = {\n record,\n input,\n sync: applyState,\n emit(type): void {\n dispatching = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatching = false; }\n },\n focus: () => input().focus({preventScroll: true}),\n };\n\n return {\n ...bridge,\n init(): void {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-radio-input]');\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n bridge.connect(rootEl, this.snapshot);\n group = closestGroupOwner(root());\n if (group) unregister = group.register(owner);\n addListener({target: inputEl, event: 'change', handler: () => {\n if (dispatching || !input().checked) return;\n if (group) group.nativeSelected(owner);\n else bridge.send('NATIVE_SELECTED');\n }, cleanup});\n addListener({target: inputEl, event: 'keydown', handler: (event) => {\n if (!group || !(event instanceof KeyboardEvent)) return;\n const previous = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n const next = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n if (!previous && !next) return;\n event.preventDefault();\n group.navigate(owner, previous ? -1 : 1);\n }, cleanup});\n if (!group) applyState();\n },\n destroy(): void {\n unregister?.();\n unregister = null;\n group = null;\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n };\n\n function standaloneState(): ItemDomState {\n const props = snapshot().props;\n return {checked: snapshot().context.checked, name: props.name, disabled: props.disabled, required: props.required, invalid: props.invalid, variant: props.variant};\n }\n};\n\nconst UiRadioGroup = (): TrellisAlpineComponent<RadioGroupData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n const members = new Map<string, RadioItemOwner>();\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio group has not been initialized.');\n return rootEl;\n };\n const snapshot = (): MachineSnapshot<RadioGroupContext, RadioGroupProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const current = snapshot();\n const props = current.props;\n const selected = current.context.selection.value;\n setAttribute({el: root(), attr: 'data-orientation', value: props.orientation});\n setAttribute({el: root(), attr: 'data-variant', value: props.variant});\n setAttribute({el: root(), attr: 'data-placement', value: props.placement});\n setAttribute({el: root(), attr: 'aria-orientation', value: props.orientation});\n setPresence({el: root(), attr: 'data-indicator', present: !props.indicator, value: 'false'});\n setAttribute({el: root(), attr: 'role', value: props.variant === 'menu' ? 'group' : 'radiogroup'});\n syncControlPresence({el: root(), state: props});\n\n const enabled = current.context.collection.items.filter((item) => !item.disabled);\n const firstEnabled = enabled[0]?.id ?? '';\n current.context.collection.items.forEach((item) => {\n const owner = members.get(item.id);\n if (!owner) return;\n const checked = item.value === selected;\n owner.sync({\n checked,\n name: props.name,\n disabled: props.disabled,\n required: props.required,\n invalid: props.invalid,\n variant: props.variant,\n });\n owner.input().tabIndex = props.variant === 'menu'\n ? -1\n : item.disabled ? -1 : checked || (!selected && item.id === firstEnabled) ? 0 : -1;\n });\n };\n const eventOwner = (current: MachineSnapshot<RadioGroupContext, RadioGroupProps>, eventValue?: unknown): RadioItemOwner | null => {\n const value = typeof eventValue === 'string' ? eventValue : current.context.selection.value;\n const item = current.context.collection.items.find((candidate) => candidate.value === value);\n return item ? members.get(item.id) ?? null : null;\n };\n const bridge = createAlpineMachine({\n schema: radioGroupSchema,\n hooks: radioGroupHooks,\n createMachine: ({props}) => createRadioGroupMachine({props, effects: {\n sync: syncDom,\n emitInput: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('input'),\n emitChange: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('change'),\n focus: (scope) => eventOwner(scope.snapshot, scope.event.value)?.focus(),\n }}),\n });\n const owner: RadioGroupOwner = {\n register(item): () => void {\n const record = item.record();\n members.set(record.id, item);\n bridge.send({type: 'ITEM_REGISTERED', item: record});\n return () => {\n members.delete(record.id);\n bridge.send({type: 'ITEM_UNREGISTERED', id: record.id});\n };\n },\n update(item): void {\n bridge.send({type: 'ITEM_UPDATED', item: item.record()});\n },\n nativeSelected(item): void {\n bridge.send({type: 'NATIVE_SELECTED', value: item.record().value});\n },\n navigate(item, delta): void {\n const current = bridge.getCommittedSnapshot();\n const enabled = current.context.collection.items.filter((candidate) => !candidate.disabled);\n const index = enabled.findIndex((candidate) => candidate.id === item.record().id);\n if (index < 0 || enabled.length === 0) return;\n let next = index + delta;\n if (next < 0 || next >= enabled.length) {\n if (!current.props.loop) return;\n next = next < 0 ? enabled.length - 1 : 0;\n }\n const target = enabled[next];\n if (target) bridge.send({type: 'NAVIGATE', value: target.value});\n },\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n bridge.connect(rootEl, this.snapshot);\n groupOwners.set(root(), owner);\n syncDom();\n },\n destroy(): void {\n groupOwners.delete(root());\n members.clear();\n bridge.disconnect();\n rootEl = null;\n },\n get value(): string {\n return bridge.getCommittedSnapshot().context.selection.value;\n },\n setValue(value: string): void {\n if (value === bridge.getCommittedSnapshot().context.selection.value) return;\n bridge.send({type: 'SET_VALUE', value});\n },\n };\n};\n\nconst registerRadio = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiRadio', UiRadio)(AlpineInstance);\n defineAlpineData('UiRadioGroup', UiRadioGroup)(AlpineInstance);\n};\n\nexport {registerRadio, UiRadio, UiRadioGroup};\nexport type {RadioData, RadioGroupData, UiRadioGroupApi};\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 {registerRadio as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerRadio = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerRadio};\nexport default registerRadio;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{o as e,s as t,t as n}from"./dom-DiTFTWeR.js";import{f as r,l as i,n as a,t as o}from"./codecs-Cb1ns_47.js";import{t as s}from"./alpine-machine-9HwatUrm.js";import{n as c,t as l}from"./alpine-data-Dvc_bXq6.js";import{t as u}from"./machine-DQfpKM3w.js";import{n as d,t as f}from"./props-change-2xfsIAEN.js";import{n as p,r as m}from"./form-control-DL1Hkox3.js";import{l as h,o as g}from"./common-De1R7Xh6.js";var _=[`trailing`,`leading`],v=g,y=h,b={value:r.default(`on`),name:r,label:r,description:r,checked:o(a,`prop-checked`),disabled:o(a,`prop-disabled`),required:o(a,`prop-required`),invalid:o(a,`prop-invalid`),placement:i(_,`trailing`),variant:i(y,`default`),size:i(v,`md`),inputClass:r,trackClass:r,thumbClass:r,contentClass:r,labelClass:r,descriptionClass:r,class:r};({...b});var x=[],S=e=>e.checked===!0,C=e=>({event:t})=>S(t)===e,w=({event:e})=>f(e,`checked`),T=e=>t=>{let n=d(t.event)?.props;return w(t)&&n?.checked===e},E=e=>{let t=d(e.event)?.props;return t?{props:t}:void 0},D=({props:e,effects:t})=>u({initial:e.checked?`checked`:`unchecked`,on:{NATIVE_CHANGED:[{target:`checked`,guard:C(!0),effects:`sync`},{target:`unchecked`,guard:C(!1),effects:`sync`}],SET_CHECKED:[{target:`checked`,guard:C(!0),effects:[`sync`,`emitInput`,`emitChange`]},{target:`unchecked`,guard:C(!1),effects:[`sync`,`emitInput`,`emitChange`]}],PROPS_CHANGED:[{target:`checked`,guard:T(!0),reduce:`reconcileProps`,effects:`sync`},{target:`unchecked`,guard:T(!1),reduce:`reconcileProps`,effects:`sync`},{reduce:`reconcileProps`,effects:`sync`}]},states:{unchecked:{tags:[`unchecked`],on:{TOGGLE:{target:`checked`,effects:[`sync`,`emitInput`,`emitChange`]}}},checked:{tags:[`checked`],on:{TOGGLE:{target:`unchecked`,effects:[`sync`,`emitInput`,`emitChange`]}}}}},{context:{},props:e,reducers:{reconcileProps:E},effects:t}),O=()=>{let r=null,i=null,a,o=!1,c=()=>{if(!r)throw Error(`Switch has not been initialized.`);return r},u=()=>{if(!i)throw Error(`Switch requires a native checkbox input.`);return i},d=()=>g.getCommittedSnapshot(),f=()=>{let n=d(),r=n.props,i=n.value===`checked`,a=i?`checked`:`unchecked`,o=u();o.checked=i,r.name||o.removeAttribute(`name`),m({input:o,state:{name:r.name,value:r.value,disabled:r.disabled,required:r.required,invalid:r.invalid}}),o.setAttribute(`role`,`switch`),e({el:o,attr:`aria-checked`,value:i?`true`:`false`}),e({el:c(),attr:`data-state`,value:a}),t({el:c(),attr:`data-checked`,present:i}),p({el:c(),state:r}),e({el:o,attr:`data-state`,value:a}),t({el:o,attr:`data-checked`,present:i});let s=c().querySelector(`[data-ui-switch-track]`);s&&(e({el:s,attr:`data-state`,value:a}),t({el:s,attr:`data-checked`,present:i}),p({el:s,state:{disabled:r.disabled,invalid:r.invalid}}));let l=c().querySelector(`[data-ui-switch-thumb]`);l&&(e({el:l,attr:`data-state`,value:a}),t({el:l,attr:`data-checked`,present:i}),t({el:l,attr:`data-disabled`,present:r.disabled}),t({el:l,attr:`data-invalid`,present:r.invalid}))},h=e=>{o=!0;try{u().dispatchEvent(new Event(e,{bubbles:!0}))}finally{o=!1}},g=s({schema:b,hooks:x,createMachine:({props:e})=>D({props:e,effects:{sync:f,emitInput:()=>h(`input`),emitChange:()=>h(`change`)}})});return{...g,init(){if(a=l(this),r=this.$el,i=c().querySelector(`[data-ui-switch-input]`),!i)throw Error(`Switch requires a native checkbox input.`);g.connect(r,this.snapshot),n({target:i,event:`change`,handler:()=>{o||g.send({type:`NATIVE_CHANGED`,checked:u().checked})},cleanup:a}),n({target:i,event:`keydown`,handler:e=>{!(e instanceof KeyboardEvent)||e.key!==`Enter`||u().disabled||(e.preventDefault(),g.send(`TOGGLE`))},cleanup:a}),f()},destroy(){g.disconnect(),r=null,i=null},get checked(){return g.getCommittedSnapshot().value===`checked`},setChecked(e){e!==(g.getCommittedSnapshot().value===`checked`)&&g.send({type:`SET_CHECKED`,checked:e})}}},k=c(`UiSwitch`,O),A=new WeakSet,j=e=>{A.has(e)||(A.add(e),k(e))};export{O as n,j as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-CnY5J5bD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.generated-CnY5J5bD.js","names":[],"sources":["../../../../../../../../client/src/components/switch/contract.ts","../../../../../../../../client/src/components/switch/machine.ts","../../../../../../../../client/src/components/switch/index.ts","../../../../../../../../client/src/components/switch/entry.generated.ts"],"sourcesContent":["import {attribute, bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {CONTROL_SIZES, DEFAULT_VARIANTS, type ControlSize, type DefaultVariant} from '../common';\n\nconst SWITCH_PLACEMENTS = ['trailing', 'leading'] as const;\nconst SWITCH_SIZES = CONTROL_SIZES;\nconst SWITCH_VARIANTS = DEFAULT_VARIANTS;\n\ntype SwitchPlacement = typeof SWITCH_PLACEMENTS[number];\ntype SwitchSize = ControlSize;\ntype SwitchVariant = DefaultVariant;\n\nconst switchControlSchema = {\n value: string.default('on'),\n name: string,\n label: string,\n description: string,\n checked: attribute(bool, 'prop-checked'),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n placement: oneOf(SWITCH_PLACEMENTS, 'trailing' as SwitchPlacement),\n variant: oneOf(SWITCH_VARIANTS, 'default' as SwitchVariant),\n size: oneOf(SWITCH_SIZES, 'md' as SwitchSize),\n inputClass: string,\n trackClass: string,\n thumbClass: string,\n contentClass: string,\n labelClass: string,\n descriptionClass: string,\n class: string,\n};\n\nconst switchSchema = {\n ...switchControlSchema,\n label: string,\n description: string,\n descriptionTrailing: string,\n error: string,\n errors: string,\n badge: string,\n fieldClass: string,\n};\n\ntype SwitchControlProps = SchemaToProps<typeof switchControlSchema>;\ntype SwitchProps = SchemaToProps<typeof switchSchema>;\n\nexport {\n SWITCH_PLACEMENTS,\n SWITCH_SIZES,\n SWITCH_VARIANTS,\n switchControlSchema,\n switchSchema,\n};\nexport type {\n SwitchPlacement,\n SwitchControlProps,\n SwitchProps,\n SwitchSize,\n SwitchVariant,\n};\n","import {createMachine, propsChanged, propsChangedEvent, type Machine, type MachineEventObject, type MachineScope} from '../../runtime/state-machine';\nimport type {SwitchControlProps} from './contract';\n\ntype SwitchContext = Record<string, never>;\ntype SwitchEffects = {\n sync(scope: MachineScope<SwitchContext, SwitchControlProps>): void;\n emitInput(scope: MachineScope<SwitchContext, SwitchControlProps>): void;\n emitChange(scope: MachineScope<SwitchContext, SwitchControlProps>): void;\n};\nconst switchHooks = [] as const;\nconst eventChecked = (event: MachineEventObject): boolean => event.checked === true;\nconst eventIs = (checked: boolean) => ({event}: MachineScope<SwitchContext, SwitchControlProps>): boolean => (\n eventChecked(event) === checked\n);\nconst checkedPropChanged = ({event}: MachineScope<SwitchContext, SwitchControlProps>): boolean => (\n propsChanged<SwitchControlProps>(event, 'checked')\n);\nconst nextPropsAre = (checked: boolean) => (scope: MachineScope<SwitchContext, SwitchControlProps>): boolean => {\n const next = propsChangedEvent<SwitchControlProps>(scope.event)?.props;\n return checkedPropChanged(scope) && next?.checked === checked;\n};\nconst reconcileProps = (scope: MachineScope<SwitchContext, SwitchControlProps>) => {\n const next = propsChangedEvent<SwitchControlProps>(scope.event)?.props;\n return next ? {props: next} : undefined;\n};\n\nconst createSwitchMachine = ({props, effects}: {props: SwitchControlProps; effects: SwitchEffects}): Machine<SwitchContext, SwitchControlProps> => createMachine<SwitchContext, SwitchControlProps>({\n initial: props.checked ? 'checked' : 'unchecked',\n on: {\n NATIVE_CHANGED: [\n {target: 'checked', guard: eventIs(true), effects: 'sync'},\n {target: 'unchecked', guard: eventIs(false), effects: 'sync'},\n ],\n SET_CHECKED: [\n {target: 'checked', guard: eventIs(true), effects: ['sync', 'emitInput', 'emitChange']},\n {target: 'unchecked', guard: eventIs(false), effects: ['sync', 'emitInput', 'emitChange']},\n ],\n PROPS_CHANGED: [\n {target: 'checked', guard: nextPropsAre(true), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'unchecked', guard: nextPropsAre(false), reduce: 'reconcileProps', effects: 'sync'},\n {reduce: 'reconcileProps', effects: 'sync'},\n ],\n },\n states: {\n unchecked: {\n tags: ['unchecked'],\n on: {TOGGLE: {target: 'checked', effects: ['sync', 'emitInput', 'emitChange']}},\n },\n checked: {\n tags: ['checked'],\n on: {TOGGLE: {target: 'unchecked', effects: ['sync', 'emitInput', 'emitChange']}},\n },\n },\n}, {\n context: {},\n props,\n reducers: {reconcileProps},\n effects,\n});\n\nexport {createSwitchMachine, switchHooks};\nexport type {SwitchContext, SwitchEffects};\n","import type Alpine from 'alpinejs';\n\nimport {type AlpineMachine, createAlpineMachine, defineAlpineData, type MachineSnapshot, type TrellisAlpineComponent} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport type {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {addListener, setAttribute, setPresence} from '@client/utils';\nimport {switchControlSchema, type SwitchControlProps} from './contract';\nimport {createSwitchMachine, switchHooks, type SwitchContext} from './machine';\n\n/** Public Alpine API for `ui.switch` and `ui.switch.control`. @public */\ninterface UiSwitchApi {\n /** Current settled checked state. */\n readonly checked: boolean;\n /** Set and commit the checked state. */\n setChecked(checked: boolean): void;\n}\n\ntype SwitchData = AlpineMachine<SwitchContext, SwitchControlProps, typeof switchHooks> & UiSwitchApi & {\n init(): void;\n destroy(): void;\n};\n\nconst UiSwitch = (): TrellisAlpineComponent<SwitchData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let cleanup: CleanupManager;\n let dispatching = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Switch has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Switch requires a native checkbox input.');\n return inputEl;\n };\n const snapshot = (): MachineSnapshot<SwitchContext, SwitchControlProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const current = snapshot();\n const props = current.props;\n const checked = current.value === 'checked';\n const state = checked ? 'checked' : 'unchecked';\n const native = input();\n\n native.checked = checked;\n if (!props.name) native.removeAttribute('name');\n syncNativeControl({input: native, state: {\n name: props.name,\n value: props.value,\n disabled: props.disabled,\n required: props.required,\n invalid: props.invalid,\n }});\n native.setAttribute('role', 'switch');\n setAttribute({el: native, attr: 'aria-checked', value: checked ? 'true' : 'false'});\n\n setAttribute({el: root(), attr: 'data-state', value: state});\n setPresence({el: root(), attr: 'data-checked', present: checked});\n syncControlPresence({el: root(), state: props});\n setAttribute({el: native, attr: 'data-state', value: state});\n setPresence({el: native, attr: 'data-checked', present: checked});\n\n const track = root().querySelector<HTMLElement>('[data-ui-switch-track]');\n if (track) {\n setAttribute({el: track, attr: 'data-state', value: state});\n setPresence({el: track, attr: 'data-checked', present: checked});\n syncControlPresence({el: track, state: {disabled: props.disabled, invalid: props.invalid}});\n }\n const thumb = root().querySelector<HTMLElement>('[data-ui-switch-thumb]');\n if (thumb) {\n setAttribute({el: thumb, attr: 'data-state', value: state});\n setPresence({el: thumb, attr: 'data-checked', present: checked});\n setPresence({el: thumb, attr: 'data-disabled', present: props.disabled});\n setPresence({el: thumb, attr: 'data-invalid', present: props.invalid});\n }\n };\n const dispatchNative = (type: 'input' | 'change'): void => {\n dispatching = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatching = false; }\n };\n const bridge = createAlpineMachine({\n schema: switchControlSchema,\n hooks: switchHooks,\n createMachine: ({props}) => createSwitchMachine({props, effects: {\n sync: syncDom,\n emitInput: () => dispatchNative('input'),\n emitChange: () => dispatchNative('change'),\n }}),\n });\n\n return {\n ...bridge,\n init(): void {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-switch-input]');\n if (!inputEl) throw new Error('Switch requires a native checkbox input.');\n bridge.connect(rootEl, this.snapshot);\n addListener({target: inputEl, event: 'change', handler: () => {\n if (!dispatching) bridge.send({type: 'NATIVE_CHANGED', checked: input().checked});\n }, cleanup});\n addListener({target: inputEl, event: 'keydown', handler: (event) => {\n if (!(event instanceof KeyboardEvent) || event.key !== 'Enter' || input().disabled) return;\n event.preventDefault();\n bridge.send('TOGGLE');\n }, cleanup});\n syncDom();\n },\n destroy(): void {\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n get checked(): boolean {\n return bridge.getCommittedSnapshot().value === 'checked';\n },\n setChecked(checked: boolean): void {\n if (checked === (bridge.getCommittedSnapshot().value === 'checked')) return;\n bridge.send({type: 'SET_CHECKED', checked});\n },\n };\n};\n\nconst registerSwitch = defineAlpineData('UiSwitch', UiSwitch);\n\nexport {registerSwitch, UiSwitch};\nexport type {SwitchData, UiSwitchApi};\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 {registerSwitch as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerSwitch = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerSwitch};\nexport default registerSwitch;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e,o as t,s as n,t as r}from"./dom-DiTFTWeR.js";import{f as i,l as a,n as o,t as s}from"./codecs-Cb1ns_47.js";import{t as c}from"./alpine-machine-9HwatUrm.js";import{n as l,t as u}from"./alpine-data-Dvc_bXq6.js";import{n as d,t as f}from"./styles-TfvwVPGw.js";import{t as p}from"./machine-DQfpKM3w.js";import{n as m,t as h}from"./props-change-2xfsIAEN.js";import{n as g,r as ee}from"./form-control-DL1Hkox3.js";import{C as _,D as v,E as y,F as b,M as x,N as S,O as C,R as w,S as T,T as E,k as D,o as O,s as k,v as te,w as ne,x as re,y as ie}from"./common-De1R7Xh6.js";import{n as A,r as ae,t as j}from"./styles-BstOueoe.js";var oe=b,se=[`default`,`cards`,`pills`,`menu`],M=te,N=O,ce=[`default`,`cards`,`pills`,`menu`],P=w,F=ie,I={value:i.default(`on`),name:i,label:i,description:i,checked:s(o,`prop-checked`),indeterminate:s(o,`prop-indeterminate`),disabled:s(o,`prop-disabled`),required:s(o,`prop-required`),invalid:s(o,`prop-invalid`),indicator:o.default(!0),placement:a(M,`leading`),icon:i,variant:a(ce,`default`),color:a(P,`neutral`),interaction:a(F,`tonal`),size:a(N,`md`),inputClass:i,indicatorClass:i,indicatorIconClass:i,iconClass:i,contentClass:i,labelClass:i,descriptionClass:i,class:i};({...I});var le={name:i,orientation:a(oe,`vertical`),variant:a(se,`default`),color:a(P,`neutral`),interaction:a(F,`tonal`),indicator:o.default(!0),placement:a(M,`leading`),disabled:s(o,`prop-disabled`),required:s(o,`prop-required`),invalid:s(o,`prop-invalid`),class:i};a(N,`md`);var ue=[],de=[],L={name:``,disabled:!1,required:!1,invalid:!1,variant:`default`},R=e=>e.indeterminate?`indeterminate`:e.checked?`checked`:`unchecked`,z=e=>e.state===`checked`||e.state===`indeterminate`?e.state:`unchecked`,B=({event:e})=>h(e,`checked`,`indeterminate`),V=e=>t=>{let n=m(t.event)?.props;return B(t)&&!!n&&R(n)===e},H=e=>({event:t})=>z(t)===e,fe=e=>{let t=m(e.event)?.props;if(t)return{props:t}},U=e=>[{target:`unchecked`,guard:H(`unchecked`),effects:e},{target:`checked`,guard:H(`checked`),effects:e},{target:`indeterminate`,guard:H(`indeterminate`),effects:e}],pe=({props:e,inherited:t=L,effects:n})=>p({initial:R(e),on:{NATIVE_CHANGED:U([`sync`]),API_SET:U([`sync`,`emitInput`,`emitChange`]),INHERITANCE_CHANGED:{reduce:`setInheritance`,effects:`sync`},PROPS_CHANGED:[{target:`unchecked`,guard:V(`unchecked`),reduce:`reconcileProps`,effects:`sync`},{target:`checked`,guard:V(`checked`),reduce:`reconcileProps`,effects:`sync`},{target:`indeterminate`,guard:V(`indeterminate`),reduce:`reconcileProps`,effects:`sync`},{reduce:`reconcileProps`,effects:`sync`}]},states:{unchecked:{tags:[`unchecked`]},checked:{tags:[`checked`]},indeterminate:{tags:[`indeterminate`]}}},{context:{inherited:{...t}},props:e,reducers:{reconcileProps:fe,setInheritance:e=>({context:{...e.context,inherited:{name:typeof e.event.name==`string`?e.event.name:``,disabled:e.event.disabled===!0,required:e.event.required===!0,invalid:e.event.invalid===!0,variant:e.event.variant===`menu`?`menu`:`default`}}})},effects:n}),W=e=>({name:e.name,disabled:e.disabled,required:e.required,invalid:e.invalid,variant:e.variant}),me=({props:e,effects:t})=>p({initial:`ready`,states:{ready:{tags:[`ready`],on:{PROPS_CHANGED:{reduce:`reconcileProps`,effects:`sync`}}}}},{context:{inherited:W(e)},props:e,reducers:{reconcileProps:e=>{let t=m(e.event)?.props;return t?{props:t,context:{inherited:W(t)}}:void 0}},effects:t}),G=[`relative isolate min-w-0 overflow-hidden rounded-surface-md`],K={sm:`text-xs`,md:`text-sm`},q=[K.md,v[4]];f({definition:{component:`ui.card`,parts:{root:{base:[G,`grid`],variants:{size:K,padding:v,paddingX:C,paddingY:D,gap:re,gapX:T,gapY:_,margin:ne,marginX:E,marginY:y},defaults:{size:`md`,padding:`4`,paddingX:`0`,paddingY:`0`,gap:`4`,gapX:`0`,gapY:`0`,margin:`0`,marginX:`0`,marginY:`0`}},header:{base:`grid min-w-0 grid-cols-[minmax(0,1fr)_auto] gap-x-3 gap-y-1`},title:{base:`col-start-1 block min-w-0 pr-2`},description:{base:`col-start-1 min-w-0 pr-2 text-surface-ink-muted`},action:{base:`col-start-2 row-span-2 row-start-1 -mr-1 -mt-1 justify-self-end self-start`},content:{base:`min-w-0 text-inherit`},footer:{base:`min-w-0 gap-2`,variants:{layout:{row:`flex flex-wrap items-center`,stack:`grid`},align:{start:`justify-start`,end:`justify-end`,between:`justify-between`,stretch:``}},compounds:[{when:{layout:`stack`,align:`start`},class:`justify-items-start`},{when:{layout:`stack`,align:`end`},class:`justify-items-end`},{when:{layout:`stack`,align:`stretch`},class:`justify-items-stretch`}],defaults:{layout:`row`,align:`end`}}}}});var he=[...A,`relative w-auto rounded-full text-surface-ink`,`shadow-[0_0_0_var(--border-width-edge-control)_var(--ui-surface-edge)]`,`[--ui-interaction-rest-edge:var(--ui-surface-edge)]`,`[&_[data-ui-checkbox-indicator]]:hidden`,`hover:bg-interaction-hover`,`active:bg-interaction-pressed`,`has-[:focus-visible]:ui-focus-ring`,`data-invalid:shadow-[0_0_0_var(--border-width-edge-control)_var(--color-intent-danger-edge)]`,`data-invalid:hover:shadow-[0_0_0_var(--border-width-edge-control)_var(--color-intent-danger-edge-hover)]`,`data-invalid:has-[:focus-visible]:ui-focus-ring-danger`],J=ae,Y=f({definition:{component:`ui.checkbox`,parts:{group:{base:`min-w-0`,variants:{orientation:{vertical:``,horizontal:``},variant:{default:``,cards:``,pills:``,menu:`contents`}},compounds:[{when:{orientation:`vertical`,variant:`default`},class:`grid w-full gap-2`},{when:{orientation:`horizontal`,variant:`default`},class:`flex w-full flex-wrap items-start gap-3`},{when:{orientation:`vertical`,variant:`cards`},class:`grid w-full gap-3`},{when:{orientation:`horizontal`,variant:`cards`},class:`flex w-full flex-wrap items-stretch gap-3`},{when:{orientation:`vertical`,variant:`pills`},class:`inline-grid w-auto gap-2`},{when:{orientation:`horizontal`,variant:`pills`},class:`flex flex-wrap items-center gap-2`}],defaults:{orientation:`vertical`,variant:`default`}},checkbox:{base:`relative min-w-0 text-inherit outline-none`,variants:{variant:{default:`flex w-full items-start gap-2 rounded-control-md py-0.5`,cards:[...G,...q,`flex w-auto flex-1 items-start gap-3`],pills:he,menu:S},size:{xs:``,sm:``,md:``,lg:``,xlg:``}},compounds:[{when:{variant:`default`,size:`xs`},class:k.xs},{when:{variant:`default`,size:`sm`},class:k.sm},{when:{variant:`default`,size:`md`},class:k.md},{when:{variant:`default`,size:`lg`},class:k.lg},{when:{variant:`default`,size:`xlg`},class:k.xlg},{when:{variant:`pills`,size:`xs`},class:J.xs},{when:{variant:`pills`,size:`sm`},class:J.sm},{when:{variant:`pills`,size:`md`},class:J.md},{when:{variant:`pills`,size:`lg`},class:J.lg},{when:{variant:`pills`,size:`xlg`},class:J.xlg}],defaults:{variant:`default`,size:`md`}},input:{base:`peer sr-only`},indicator:{base:[`relative mt-0.5 flex shrink-0 items-center justify-center rounded-control-md border-0`],variants:{variant:{default:``,cards:``,pills:``,menu:`order-10 !mt-0 ml-auto`},size:{xs:`size-checkbox-indicator-xs`,sm:`size-checkbox-indicator-sm`,md:`size-checkbox-indicator-md`,lg:`size-checkbox-indicator-lg`,xlg:`size-checkbox-indicator-xlg`}},defaults:{variant:`default`,size:`md`}},indicatorIcon:{base:`pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 shrink-0 fill-current opacity-0 data-checked:opacity-100 data-indeterminate:opacity-100`,variants:{size:{xs:`size-icon-xs`,sm:`size-icon-sm`,md:`size-icon-sm`,lg:`size-icon-sm`,xlg:`size-icon-lg`}},defaults:{size:`md`}},menuIndicator:{base:[`relative order-10 flex`,x]},menuIndicatorIcon:{base:`pointer-events-none absolute inset-0 size-icon shrink-0 fill-current opacity-0 data-checked:opacity-100 data-indeterminate:opacity-100`},content:{base:`grid min-w-0 gap-0.5`},icon:{base:`shrink-0 fill-current text-current opacity-75`,variants:{variant:{default:`mt-0.5 size-icon`,cards:`mt-0.5 size-icon`,pills:``},size:{xs:``,sm:``,md:``,lg:``,xlg:``}},compounds:[{when:{variant:`pills`,size:`xs`},class:j.xs},{when:{variant:`pills`,size:`sm`},class:j.sm},{when:{variant:`pills`,size:`md`},class:j.md},{when:{variant:`pills`,size:`lg`},class:j.lg},{when:{variant:`pills`,size:`xlg`},class:j.xlg}],defaults:{variant:`default`,size:`md`}},label:{base:``},description:{base:`text-surface-ink-muted`}}}}),X=new WeakMap,ge=e=>{let t=e.parentElement?.closest(`[data-ui-checkbox-group]`)??null;return t?X.get(t)??null:null},Z=()=>{let i=null,a=null,o,s=null,l=!1,f=()=>{if(!i)throw Error(`Checkbox has not been initialized.`);return i},p=()=>{if(!a)throw Error(`Checkbox requires a native checkbox input.`);return a},m=()=>v.getCommittedSnapshot(),h=()=>{let r=f(),i=p(),a=m(),o=a.props,s=a.context.inherited,c=a.value,l=c===`checked`,u=c===`indeterminate`,h=o.disabled||s.disabled,_=o.required||s.required,v=o.invalid||s.invalid,y=o.name||s.name,b=o.variant===`menu`||s.variant===`menu`;i.checked=l,i.indeterminate=u,y||i.removeAttribute(`name`),ee({input:i,state:{name:y,value:o.value,disabled:h,required:_,invalid:v}}),u?i.setAttribute(`aria-checked`,`mixed`):i.removeAttribute(`aria-checked`),t({el:r,attr:`data-state`,value:c}),n({el:r,attr:`data-checked`,present:l}),n({el:r,attr:`data-indeterminate`,present:u}),g({el:r,state:{disabled:h,required:_,invalid:v}}),n({el:i,attr:`data-checked`,present:l}),n({el:i,attr:`data-indeterminate`,present:u}),r.className=d({part:Y.parts.checkbox,props:{...o,variant:b?`menu`:o.variant},className:r.dataset.class}),n({el:r,attr:`data-ui-menu-item`,present:b}),n({el:r,attr:`data-ui-option-recipe`,present:b}),n({el:r,attr:`data-keep-open`,present:b,value:`true`}),n({el:r,attr:`data-selected`,present:b&&(l||u)}),b?(r.setAttribute(`role`,`menuitemcheckbox`),r.setAttribute(`aria-checked`,u?`mixed`:l?`true`:`false`),r.tabIndex=-1,i.tabIndex=-1,i.setAttribute(`aria-hidden`,`true`)):(r.removeAttribute(`role`),r.removeAttribute(`aria-checked`),r.removeAttribute(`tabindex`),i.removeAttribute(`aria-hidden`));let x=r.querySelector(`[data-ui-checkbox-indicator]`);x&&(x.hidden=b,x.className=d({part:Y.parts.indicator,props:{...o,variant:b?`menu`:o.variant},className:x.dataset.class}),t({el:x,attr:`data-state`,value:c}),n({el:x,attr:`data-checked`,present:l}),n({el:x,attr:`data-indeterminate`,present:u}),n({el:x,attr:`data-disabled`,present:h}),n({el:x,attr:`data-invalid`,present:v}));let S=r.querySelector(`[data-ui-checkbox-indicator-icon="checked"]`);S&&(S.setAttribute(`class`,d({part:Y.parts.indicatorIcon,props:o,className:S.dataset.class})),n({el:S,attr:`data-checked`,present:l}),e({el:S,attr:`data-indeterminate`}));let C=r.querySelector(`[data-ui-checkbox-indicator-icon="indeterminate"]`);C&&(C.setAttribute(`class`,d({part:Y.parts.indicatorIcon,props:o,className:C.dataset.class})),n({el:C,attr:`data-indeterminate`,present:u}),e({el:C,attr:`data-checked`}));let w=r.querySelector(`[data-ui-checkbox-menu-indicator]`);w&&(w.hidden=!b,n({el:w,attr:`data-selected`,present:l||u}));let T=r.querySelector(`[data-ui-checkbox-menu-indicator-icon="checked"]`);T&&(n({el:T,attr:`data-checked`,present:l}),e({el:T,attr:`data-indeterminate`}));let E=r.querySelector(`[data-ui-checkbox-menu-indicator-icon="indeterminate"]`);E&&(n({el:E,attr:`data-indeterminate`,present:u}),e({el:E,attr:`data-checked`}))},_=e=>{l=!0;try{p().dispatchEvent(new Event(e,{bubbles:!0}))}finally{l=!1}},v=c({schema:I,hooks:ue,createMachine:({props:e})=>pe({props:e,effects:{sync:h,emitInput:()=>_(`input`),emitChange:()=>_(`change`)}})}),y={setInheritance(e){v.send({type:`INHERITANCE_CHANGED`,...e})}};return{...v,init(){if(o=u(this),i=this.$el,a=f().querySelector(`[data-ui-checkbox-input]`),!a)throw Error(`Checkbox requires a native checkbox input.`);v.connect(i,this.snapshot),r({target:a,event:`input`,handler:()=>{l||v.send({type:`NATIVE_CHANGED`,state:p().checked?`checked`:`unchecked`})},cleanup:o}),r({target:a,event:`change`,handler:()=>{l||v.send({type:`NATIVE_CHANGED`,state:p().checked?`checked`:`unchecked`})},cleanup:o});let e=ge(f());e&&(s=e.register(y)),h()},destroy(){s?.(),s=null,v.disconnect(),i=null,a=null},get state(){return v.getCommittedSnapshot().value},setState(e){if(![`unchecked`,`checked`,`indeterminate`].includes(e))throw Error(`Unknown checkbox state: ${String(e)}`);e!==v.getCommittedSnapshot().value&&v.send({type:`API_SET`,state:e})}}},Q=()=>{let e=null,n=new Set,r=()=>{if(!e)throw Error(`Checkbox group has not been initialized.`);return e},i=()=>o.getCommittedSnapshot(),a=()=>{let e=i();t({el:r(),attr:`data-orientation`,value:e.props.orientation}),t({el:r(),attr:`data-variant`,value:e.props.variant}),g({el:r(),state:e.context.inherited}),n.forEach(t=>t.setInheritance(e.context.inherited))},o=c({schema:le,hooks:de,createMachine:({props:e})=>me({props:e,effects:{sync:a}})}),s={register(e){return n.add(e),e.setInheritance(i().context.inherited),()=>n.delete(e)},inherited:()=>i().context.inherited};return{...o,init(){e=this.$el,o.connect(e,this.snapshot),X.set(r(),s),a()},destroy(){X.delete(r()),n.clear(),o.disconnect(),e=null}}},_e=e=>{l(`UiCheckbox`,Z)(e),l(`UiCheckboxGroup`,Q)(e)},$=new WeakSet,ve=e=>{$.has(e)||($.add(e),_e(e))};export{Z as n,Q as r,ve as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-CuZffmX3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.generated-CuZffmX3.js","names":[],"sources":["../../../../../../../../client/src/components/checkbox/contract.ts","../../../../../../../../client/src/components/checkbox/machine.ts","../../../../../../../../client/src/components/card/styles.ts","../../../../../../../../client/src/components/checkbox/styles.ts","../../../../../../../../client/src/components/checkbox/index.ts","../../../../../../../../client/src/components/checkbox/entry.generated.ts"],"sourcesContent":["import {attribute, bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n CONTROL_SIZES,\n INDICATOR_PLACEMENTS,\n INTERACTION_TREATMENTS,\n ORIENTATIONS,\n SELECTION_COLORS,\n type ControlSize,\n type IndicatorPlacement,\n type Orientation,\n} from '../common';\n\nconst CHECKBOX_GROUP_ORIENTATIONS = ORIENTATIONS;\nconst CHECKBOX_GROUP_VARIANTS = ['default', 'cards', 'pills', 'menu'] as const;\nconst CHECKBOX_PLACEMENTS = INDICATOR_PLACEMENTS;\nconst CHECKBOX_SIZES = CONTROL_SIZES;\nconst CHECKBOX_VARIANTS = ['default', 'cards', 'pills', 'menu'] as const;\nconst CHECKBOX_COLORS = SELECTION_COLORS;\nconst CHECKBOX_INTERACTIONS = INTERACTION_TREATMENTS;\n\ntype CheckboxGroupOrientation = Orientation;\ntype CheckboxGroupVariant = (typeof CHECKBOX_GROUP_VARIANTS)[number];\ntype CheckboxPlacement = IndicatorPlacement;\ntype CheckboxSize = ControlSize;\ntype CheckboxVariant = (typeof CHECKBOX_VARIANTS)[number];\ntype CheckboxColor = (typeof CHECKBOX_COLORS)[number];\ntype CheckboxInteraction = (typeof CHECKBOX_INTERACTIONS)[number];\n\nconst checkboxControlSchema = {\n value: string.default('on'),\n name: string,\n label: string,\n description: string,\n checked: attribute(bool, 'prop-checked'),\n indeterminate: attribute(bool, 'prop-indeterminate'),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n indicator: bool.default(true),\n placement: oneOf(CHECKBOX_PLACEMENTS, 'leading' as CheckboxPlacement),\n icon: string,\n variant: oneOf(CHECKBOX_VARIANTS, 'default' as CheckboxVariant),\n color: oneOf(CHECKBOX_COLORS, 'neutral' as CheckboxColor),\n interaction: oneOf(CHECKBOX_INTERACTIONS, 'tonal' as CheckboxInteraction),\n size: oneOf(CHECKBOX_SIZES, 'md' as CheckboxSize),\n inputClass: string,\n indicatorClass: string,\n indicatorIconClass: string,\n iconClass: string,\n contentClass: string,\n labelClass: string,\n descriptionClass: string,\n class: string,\n};\n\nconst checkboxSchema = {\n ...checkboxControlSchema,\n label: string,\n description: string,\n descriptionTrailing: string,\n error: string,\n errors: string,\n badge: string,\n fieldClass: string,\n};\n\nconst checkboxGroupSchema = {\n name: string,\n orientation: oneOf(CHECKBOX_GROUP_ORIENTATIONS, 'vertical' as CheckboxGroupOrientation),\n variant: oneOf(CHECKBOX_GROUP_VARIANTS, 'default' as CheckboxGroupVariant),\n color: oneOf(CHECKBOX_COLORS, 'neutral' as CheckboxColor),\n interaction: oneOf(CHECKBOX_INTERACTIONS, 'tonal' as CheckboxInteraction),\n indicator: bool.default(true),\n placement: oneOf(CHECKBOX_PLACEMENTS, 'leading' as CheckboxPlacement),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n class: string,\n};\n\nconst checkboxIndicatorSchema = {\n size: oneOf(CHECKBOX_SIZES, 'md' as CheckboxSize),\n class: string,\n};\n\ntype CheckboxControlProps = SchemaToProps<typeof checkboxControlSchema>;\ntype CheckboxGroupProps = SchemaToProps<typeof checkboxGroupSchema>;\ntype CheckboxProps = SchemaToProps<typeof checkboxSchema>;\n\nexport {\n CHECKBOX_GROUP_ORIENTATIONS,\n CHECKBOX_GROUP_VARIANTS,\n CHECKBOX_COLORS,\n CHECKBOX_INTERACTIONS,\n CHECKBOX_PLACEMENTS,\n CHECKBOX_SIZES,\n CHECKBOX_VARIANTS,\n checkboxControlSchema,\n checkboxGroupSchema,\n checkboxIndicatorSchema,\n checkboxSchema,\n};\nexport type {\n CheckboxControlProps,\n CheckboxColor,\n CheckboxGroupOrientation,\n CheckboxGroupProps,\n CheckboxGroupVariant,\n CheckboxInteraction,\n CheckboxPlacement,\n CheckboxProps,\n CheckboxSize,\n CheckboxVariant,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport type {CheckboxControlProps, CheckboxGroupProps} from './contract';\n\ntype CheckboxState = 'unchecked' | 'checked' | 'indeterminate';\ntype CheckboxInheritance = {\n name: string;\n disabled: boolean;\n required: boolean;\n invalid: boolean;\n variant: CheckboxGroupProps['variant'];\n};\ntype CheckboxContext = {\n inherited: CheckboxInheritance;\n};\ntype CheckboxGroupContext = {inherited: CheckboxInheritance};\n\ntype CheckboxMachineEffects = {\n sync(scope: MachineScope<CheckboxContext, CheckboxControlProps>): void;\n emitInput(scope: MachineScope<CheckboxContext, CheckboxControlProps>): void;\n emitChange(scope: MachineScope<CheckboxContext, CheckboxControlProps>): void;\n};\ntype CheckboxGroupMachineEffects = {\n sync(scope: MachineScope<CheckboxGroupContext, CheckboxGroupProps>): void;\n};\n\nconst checkboxHooks = [] as const;\nconst checkboxGroupHooks = [] as const;\nconst EMPTY_INHERITANCE: CheckboxInheritance = {\n name: '', disabled: false, required: false, invalid: false, variant: 'default',\n};\n\nconst checkboxStateFromProps = (props: CheckboxControlProps): CheckboxState => {\n if (props.indeterminate) return 'indeterminate';\n return props.checked ? 'checked' : 'unchecked';\n};\n\nconst stateFromEvent = (event: MachineEventObject): CheckboxState => {\n if (event.state === 'checked' || event.state === 'indeterminate') return event.state;\n return 'unchecked';\n};\n\nconst selectionPropsChanged = ({event}: MachineScope<CheckboxContext, CheckboxControlProps>): boolean => (\n propsChanged<CheckboxControlProps>(event, 'checked', 'indeterminate')\n);\nconst nextSelectionIs = (state: CheckboxState) => (scope: MachineScope<CheckboxContext, CheckboxControlProps>): boolean => {\n const next = propsChangedEvent<CheckboxControlProps>(scope.event)?.props;\n return selectionPropsChanged(scope) && Boolean(next) && checkboxStateFromProps(next as CheckboxControlProps) === state;\n};\nconst eventStateIs = (state: CheckboxState) => ({event}: MachineScope<CheckboxContext, CheckboxControlProps>): boolean => (\n stateFromEvent(event) === state\n);\n\nconst reconcileProps = (scope: MachineScope<CheckboxContext, CheckboxControlProps>) => {\n const next = propsChangedEvent<CheckboxControlProps>(scope.event)?.props;\n if (!next) return;\n return {props: next};\n};\n\nconst selectionTransitions = (effects: string[]) => [\n {target: 'unchecked', guard: eventStateIs('unchecked'), effects},\n {target: 'checked', guard: eventStateIs('checked'), effects},\n {target: 'indeterminate', guard: eventStateIs('indeterminate'), effects},\n];\n\nconst createCheckboxMachine = ({\n props,\n inherited = EMPTY_INHERITANCE,\n effects,\n}: {\n props: CheckboxControlProps;\n inherited?: CheckboxInheritance;\n effects: CheckboxMachineEffects;\n}): Machine<CheckboxContext, CheckboxControlProps> => {\n const initial = checkboxStateFromProps(props);\n return createMachine<CheckboxContext, CheckboxControlProps>({\n initial,\n on: {\n NATIVE_CHANGED: selectionTransitions(['sync']),\n API_SET: selectionTransitions(['sync', 'emitInput', 'emitChange']),\n INHERITANCE_CHANGED: {reduce: 'setInheritance', effects: 'sync'},\n PROPS_CHANGED: [\n {target: 'unchecked', guard: nextSelectionIs('unchecked'), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'checked', guard: nextSelectionIs('checked'), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'indeterminate', guard: nextSelectionIs('indeterminate'), reduce: 'reconcileProps', effects: 'sync'},\n {reduce: 'reconcileProps', effects: 'sync'},\n ],\n },\n states: {\n unchecked: {tags: ['unchecked']},\n checked: {tags: ['checked']},\n indeterminate: {tags: ['indeterminate']},\n },\n }, {\n context: {inherited: {...inherited}},\n props,\n reducers: {\n reconcileProps,\n setInheritance: (scope) => ({\n context: {\n ...scope.context,\n inherited: {\n name: typeof scope.event.name === 'string' ? scope.event.name : '',\n disabled: scope.event.disabled === true,\n required: scope.event.required === true,\n invalid: scope.event.invalid === true,\n variant: scope.event.variant === 'menu' ? 'menu' : 'default',\n },\n },\n }),\n },\n effects,\n });\n};\n\nconst inheritanceFromGroupProps = (props: CheckboxGroupProps): CheckboxInheritance => ({\n name: props.name,\n disabled: props.disabled,\n required: props.required,\n invalid: props.invalid,\n variant: props.variant,\n});\n\nconst createCheckboxGroupMachine = ({\n props,\n effects,\n}: {\n props: CheckboxGroupProps;\n effects: CheckboxGroupMachineEffects;\n}): Machine<CheckboxGroupContext, CheckboxGroupProps> => createMachine<CheckboxGroupContext, CheckboxGroupProps>({\n initial: 'ready',\n states: {\n ready: {\n tags: ['ready'],\n on: {\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n },\n },\n },\n}, {\n context: {inherited: inheritanceFromGroupProps(props)},\n props,\n reducers: {\n reconcileProps: (scope) => {\n const next = propsChangedEvent<CheckboxGroupProps>(scope.event)?.props;\n return next ? {props: next, context: {inherited: inheritanceFromGroupProps(next)}} : undefined;\n },\n },\n effects,\n});\n\nexport {\n checkboxGroupHooks,\n checkboxHooks,\n checkboxStateFromProps,\n createCheckboxGroupMachine,\n createCheckboxMachine,\n EMPTY_INHERITANCE,\n};\nexport type {\n CheckboxContext,\n CheckboxGroupContext,\n CheckboxGroupMachineEffects,\n CheckboxInheritance,\n CheckboxMachineEffects,\n CheckboxState,\n};\n","import {defineStyles} from '../../runtime';\nimport {\n LAYOUT_GAP_CLASSES,\n LAYOUT_GAP_X_CLASSES,\n LAYOUT_GAP_Y_CLASSES,\n LAYOUT_MARGIN_CLASSES,\n LAYOUT_MARGIN_X_CLASSES,\n LAYOUT_MARGIN_Y_CLASSES,\n LAYOUT_PADDING_CLASSES,\n LAYOUT_PADDING_X_CLASSES,\n LAYOUT_PADDING_Y_CLASSES,\n} from '../common';\n\nconst CARD_ROOT_BASE_CLASSES = [\n 'relative isolate min-w-0 overflow-hidden rounded-surface-md',\n];\n\nconst CARD_SIZE_CLASSES = {\n sm: 'text-xs',\n md: 'text-sm',\n} as const;\n\nconst CARD_ROOT_DEFAULT_CLASSES = [\n CARD_SIZE_CLASSES.md,\n LAYOUT_PADDING_CLASSES['4'],\n];\n\nconst cardStyles = defineStyles({definition: {\n component: 'ui.card',\n parts: {\n root: {\n base: [\n CARD_ROOT_BASE_CLASSES,\n 'grid',\n ],\n variants: {\n size: CARD_SIZE_CLASSES,\n padding: LAYOUT_PADDING_CLASSES,\n paddingX: LAYOUT_PADDING_X_CLASSES,\n paddingY: LAYOUT_PADDING_Y_CLASSES,\n gap: LAYOUT_GAP_CLASSES,\n gapX: LAYOUT_GAP_X_CLASSES,\n gapY: LAYOUT_GAP_Y_CLASSES,\n margin: LAYOUT_MARGIN_CLASSES,\n marginX: LAYOUT_MARGIN_X_CLASSES,\n marginY: LAYOUT_MARGIN_Y_CLASSES,\n },\n defaults: {\n size: 'md',\n padding: '4',\n paddingX: '0',\n paddingY: '0',\n gap: '4',\n gapX: '0',\n gapY: '0',\n margin: '0',\n marginX: '0',\n marginY: '0',\n },\n },\n header: {\n base: 'grid min-w-0 grid-cols-[minmax(0,1fr)_auto] gap-x-3 gap-y-1',\n },\n title: {\n base: 'col-start-1 block min-w-0 pr-2',\n },\n description: {\n base: 'col-start-1 min-w-0 pr-2 text-surface-ink-muted',\n },\n action: {\n base: 'col-start-2 row-span-2 row-start-1 -mr-1 -mt-1 justify-self-end self-start',\n },\n content: {\n base: 'min-w-0 text-inherit',\n },\n footer: {\n base: 'min-w-0 gap-2',\n variants: {\n layout: {\n row: 'flex flex-wrap items-center',\n stack: 'grid',\n },\n align: {\n start: 'justify-start',\n end: 'justify-end',\n between: 'justify-between',\n stretch: '',\n },\n },\n compounds: [\n {when: {layout: 'stack', align: 'start'}, class: 'justify-items-start'},\n {when: {layout: 'stack', align: 'end'}, class: 'justify-items-end'},\n {when: {layout: 'stack', align: 'stretch'}, class: 'justify-items-stretch'},\n ],\n defaults: {\n layout: 'row',\n align: 'end',\n },\n },\n },\n}});\n\nexport {CARD_ROOT_BASE_CLASSES, CARD_ROOT_DEFAULT_CLASSES, CARD_SIZE_CLASSES, cardStyles};\n","import {defineStyles} from '../../runtime';\nimport {CONTROL_TYPOGRAPHY_CLASSES, OPTION_INDICATOR_CLASSES, OPTION_ITEM_CLASSES} from '../common';\nimport {\n BADGE_ICON_SIZE_CLASSES,\n BADGE_ROOT_BASE_CLASSES,\n BADGE_SIZE_CLASSES,\n} from '../badge/styles';\nimport {CARD_ROOT_BASE_CLASSES, CARD_ROOT_DEFAULT_CLASSES} from '../card/styles';\n\nconst CHECKBOX_PILL_CLASSES = [\n ...BADGE_ROOT_BASE_CLASSES,\n 'relative w-auto rounded-full text-surface-ink',\n 'shadow-[0_0_0_var(--border-width-edge-control)_var(--ui-surface-edge)]',\n '[--ui-interaction-rest-edge:var(--ui-surface-edge)]',\n '[&_[data-ui-checkbox-indicator]]:hidden',\n 'hover:bg-interaction-hover',\n 'active:bg-interaction-pressed',\n 'has-[:focus-visible]:ui-focus-ring',\n 'data-invalid:shadow-[0_0_0_var(--border-width-edge-control)_var(--color-intent-danger-edge)]',\n 'data-invalid:hover:shadow-[0_0_0_var(--border-width-edge-control)_var(--color-intent-danger-edge-hover)]',\n 'data-invalid:has-[:focus-visible]:ui-focus-ring-danger',\n];\n\nconst CHECKBOX_PILL_SIZE_CLASSES = BADGE_SIZE_CLASSES;\nconst CHECKBOX_CARD_CLASSES = [\n ...CARD_ROOT_BASE_CLASSES,\n ...CARD_ROOT_DEFAULT_CLASSES,\n 'flex w-auto flex-1 items-start gap-3',\n];\n\nconst checkboxStyles = defineStyles({definition: {\n component: 'ui.checkbox',\n parts: {\n group: {\n base: 'min-w-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: '',\n },\n variant: {\n default: '',\n cards: '',\n pills: '',\n menu: 'contents',\n },\n },\n compounds: [\n {when: {orientation: 'vertical', variant: 'default'}, class: 'grid w-full gap-2'},\n {when: {orientation: 'horizontal', variant: 'default'}, class: 'flex w-full flex-wrap items-start gap-3'},\n {when: {orientation: 'vertical', variant: 'cards'}, class: 'grid w-full gap-3'},\n {when: {orientation: 'horizontal', variant: 'cards'}, class: 'flex w-full flex-wrap items-stretch gap-3'},\n {when: {orientation: 'vertical', variant: 'pills'}, class: 'inline-grid w-auto gap-2'},\n {when: {orientation: 'horizontal', variant: 'pills'}, class: 'flex flex-wrap items-center gap-2'},\n ],\n defaults: {\n orientation: 'vertical',\n variant: 'default',\n },\n },\n checkbox: {\n base: 'relative min-w-0 text-inherit outline-none',\n variants: {\n variant: {\n default: 'flex w-full items-start gap-2 rounded-control-md py-0.5',\n cards: CHECKBOX_CARD_CLASSES,\n pills: CHECKBOX_PILL_CLASSES,\n menu: OPTION_ITEM_CLASSES,\n },\n size: {\n xs: '',\n sm: '',\n md: '',\n lg: '',\n xlg: '',\n },\n },\n compounds: [\n {when: {variant: 'default', size: 'xs'}, class: CONTROL_TYPOGRAPHY_CLASSES.xs},\n {when: {variant: 'default', size: 'sm'}, class: CONTROL_TYPOGRAPHY_CLASSES.sm},\n {when: {variant: 'default', size: 'md'}, class: CONTROL_TYPOGRAPHY_CLASSES.md},\n {when: {variant: 'default', size: 'lg'}, class: CONTROL_TYPOGRAPHY_CLASSES.lg},\n {when: {variant: 'default', size: 'xlg'}, class: CONTROL_TYPOGRAPHY_CLASSES.xlg},\n {when: {variant: 'pills', size: 'xs'}, class: CHECKBOX_PILL_SIZE_CLASSES.xs},\n {when: {variant: 'pills', size: 'sm'}, class: CHECKBOX_PILL_SIZE_CLASSES.sm},\n {when: {variant: 'pills', size: 'md'}, class: CHECKBOX_PILL_SIZE_CLASSES.md},\n {when: {variant: 'pills', size: 'lg'}, class: CHECKBOX_PILL_SIZE_CLASSES.lg},\n {when: {variant: 'pills', size: 'xlg'}, class: CHECKBOX_PILL_SIZE_CLASSES.xlg},\n ],\n defaults: {\n variant: 'default',\n size: 'md',\n },\n },\n input: {\n base: 'peer sr-only',\n },\n indicator: {\n base: [\n 'relative mt-0.5 flex shrink-0 items-center justify-center rounded-control-md border-0',\n ],\n variants: {\n variant: {\n default: '',\n cards: '',\n pills: '',\n menu: 'order-10 !mt-0 ml-auto',\n },\n size: {\n xs: 'size-checkbox-indicator-xs',\n sm: 'size-checkbox-indicator-sm',\n md: 'size-checkbox-indicator-md',\n lg: 'size-checkbox-indicator-lg',\n xlg: 'size-checkbox-indicator-xlg',\n },\n },\n defaults: {\n variant: 'default',\n size: 'md',\n },\n },\n indicatorIcon: {\n base: 'pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 shrink-0 fill-current opacity-0 data-checked:opacity-100 data-indeterminate:opacity-100',\n variants: {\n size: {\n xs: 'size-icon-xs',\n sm: 'size-icon-sm',\n md: 'size-icon-sm',\n lg: 'size-icon-sm',\n xlg: 'size-icon-lg',\n },\n },\n defaults: {\n size: 'md',\n },\n },\n menuIndicator: {\n base: ['relative order-10 flex', OPTION_INDICATOR_CLASSES],\n },\n menuIndicatorIcon: {\n base: 'pointer-events-none absolute inset-0 size-icon shrink-0 fill-current opacity-0 data-checked:opacity-100 data-indeterminate:opacity-100',\n },\n content: {\n base: 'grid min-w-0 gap-0.5',\n },\n icon: {\n base: 'shrink-0 fill-current text-current opacity-75',\n variants: {\n variant: {\n default: 'mt-0.5 size-icon',\n cards: 'mt-0.5 size-icon',\n pills: '',\n },\n size: {\n xs: '',\n sm: '',\n md: '',\n lg: '',\n xlg: '',\n },\n },\n compounds: [\n {when: {variant: 'pills', size: 'xs'}, class: BADGE_ICON_SIZE_CLASSES.xs},\n {when: {variant: 'pills', size: 'sm'}, class: BADGE_ICON_SIZE_CLASSES.sm},\n {when: {variant: 'pills', size: 'md'}, class: BADGE_ICON_SIZE_CLASSES.md},\n {when: {variant: 'pills', size: 'lg'}, class: BADGE_ICON_SIZE_CLASSES.lg},\n {when: {variant: 'pills', size: 'xlg'}, class: BADGE_ICON_SIZE_CLASSES.xlg},\n ],\n defaults: {\n variant: 'default',\n size: 'md',\n },\n },\n label: {\n base: '',\n },\n description: {\n base: 'text-surface-ink-muted',\n },\n },\n}});\n\nexport {CHECKBOX_CARD_CLASSES, CHECKBOX_PILL_CLASSES, CHECKBOX_PILL_SIZE_CLASSES, checkboxStyles};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n type MachineSnapshot,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport type {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, removeAttribute, setAttribute, setPresence} from '@client/utils';\nimport {checkboxControlSchema, checkboxGroupSchema, type CheckboxControlProps, type CheckboxGroupProps} from './contract';\nimport {\n checkboxGroupHooks,\n checkboxHooks,\n createCheckboxGroupMachine,\n createCheckboxMachine,\n type CheckboxContext,\n type CheckboxGroupContext,\n type CheckboxInheritance,\n type CheckboxState,\n} from './machine';\nimport {checkboxStyles} from './styles';\n\n/**\n * Public Alpine API for `ui.checkbox` and `ui.checkbox.control`.\n *\n * @public\n */\ninterface UiCheckboxApi {\n /** Current semantic checkbox state. */\n readonly state: CheckboxState;\n /** Set and commit the semantic checkbox state. */\n setState(state: CheckboxState): void;\n}\n\ntype CheckboxData = AlpineMachine<CheckboxContext, CheckboxControlProps, typeof checkboxHooks> & UiCheckboxApi & {\n init(): void;\n destroy(): void;\n};\ntype CheckboxGroupData = AlpineMachine<CheckboxGroupContext, CheckboxGroupProps, typeof checkboxGroupHooks> & {\n init(): void;\n destroy(): void;\n};\n\ntype CheckboxOwner = {setInheritance(inherited: CheckboxInheritance): void};\ntype CheckboxGroupOwner = {\n register(owner: CheckboxOwner): () => void;\n inherited(): CheckboxInheritance;\n};\n\nconst groupOwners = new WeakMap<HTMLElement, CheckboxGroupOwner>();\n\nconst closestGroupOwner = (element: HTMLElement): CheckboxGroupOwner | null => {\n const group = element.parentElement?.closest<HTMLElement>('[data-ui-checkbox-group]') ?? null;\n return group ? groupOwners.get(group) ?? null : null;\n};\n\nconst UiCheckbox = (): TrellisAlpineComponent<CheckboxData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let cleanup: CleanupManager;\n let unregisterGroup: (() => void) | null = null;\n let dispatchingNative = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Checkbox has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Checkbox requires a native checkbox input.');\n return inputEl;\n };\n const currentSnapshot = (): MachineSnapshot<CheckboxContext, CheckboxControlProps> => bridge.getCommittedSnapshot();\n\n const syncDom = (): void => {\n const checkbox = root();\n const native = input();\n const snapshot = currentSnapshot();\n const props = snapshot.props;\n const inherited = snapshot.context.inherited;\n const state = snapshot.value as CheckboxState;\n const checked = state === 'checked';\n const indeterminate = state === 'indeterminate';\n const disabled = props.disabled || inherited.disabled;\n const required = props.required || inherited.required;\n const invalid = props.invalid || inherited.invalid;\n const name = props.name || inherited.name;\n const menu = props.variant === 'menu' || inherited.variant === 'menu';\n\n native.checked = checked;\n native.indeterminate = indeterminate;\n if (!name) native.removeAttribute('name');\n syncNativeControl({input: native, state: {name, value: props.value, disabled, required, invalid}});\n if (indeterminate) native.setAttribute('aria-checked', 'mixed');\n else native.removeAttribute('aria-checked');\n\n setAttribute({el: checkbox, attr: 'data-state', value: state});\n setPresence({el: checkbox, attr: 'data-checked', present: checked});\n setPresence({el: checkbox, attr: 'data-indeterminate', present: indeterminate});\n syncControlPresence({el: checkbox, state: {disabled, required, invalid}});\n setPresence({el: native, attr: 'data-checked', present: checked});\n setPresence({el: native, attr: 'data-indeterminate', present: indeterminate});\n checkbox.className = resolveStyle({\n part: checkboxStyles.parts.checkbox,\n props: {...props, variant: menu ? 'menu' : props.variant},\n className: checkbox.dataset.class,\n });\n setPresence({el: checkbox, attr: 'data-ui-menu-item', present: menu});\n setPresence({el: checkbox, attr: 'data-ui-option-recipe', present: menu});\n setPresence({el: checkbox, attr: 'data-keep-open', present: menu, value: 'true'});\n setPresence({el: checkbox, attr: 'data-selected', present: menu && (checked || indeterminate)});\n if (menu) {\n checkbox.setAttribute('role', 'menuitemcheckbox');\n checkbox.setAttribute('aria-checked', indeterminate ? 'mixed' : checked ? 'true' : 'false');\n checkbox.tabIndex = -1;\n native.tabIndex = -1;\n native.setAttribute('aria-hidden', 'true');\n } else {\n checkbox.removeAttribute('role');\n checkbox.removeAttribute('aria-checked');\n checkbox.removeAttribute('tabindex');\n native.removeAttribute('aria-hidden');\n }\n\n const indicator = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-indicator]');\n if (indicator) {\n indicator.hidden = menu;\n indicator.className = resolveStyle({\n part: checkboxStyles.parts.indicator,\n props: {...props, variant: menu ? 'menu' : props.variant},\n className: indicator.dataset.class,\n });\n setAttribute({el: indicator, attr: 'data-state', value: state});\n setPresence({el: indicator, attr: 'data-checked', present: checked});\n setPresence({el: indicator, attr: 'data-indeterminate', present: indeterminate});\n setPresence({el: indicator, attr: 'data-disabled', present: disabled});\n setPresence({el: indicator, attr: 'data-invalid', present: invalid});\n }\n const checkedIcon = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-indicator-icon=\"checked\"]');\n if (checkedIcon) {\n checkedIcon.setAttribute('class', resolveStyle({\n part: checkboxStyles.parts.indicatorIcon,\n props,\n className: checkedIcon.dataset.class,\n }));\n setPresence({el: checkedIcon, attr: 'data-checked', present: checked});\n removeAttribute({el: checkedIcon, attr: 'data-indeterminate'});\n }\n const indeterminateIcon = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-indicator-icon=\"indeterminate\"]');\n if (indeterminateIcon) {\n indeterminateIcon.setAttribute('class', resolveStyle({\n part: checkboxStyles.parts.indicatorIcon,\n props,\n className: indeterminateIcon.dataset.class,\n }));\n setPresence({el: indeterminateIcon, attr: 'data-indeterminate', present: indeterminate});\n removeAttribute({el: indeterminateIcon, attr: 'data-checked'});\n }\n const menuIndicator = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-menu-indicator]');\n if (menuIndicator) {\n menuIndicator.hidden = !menu;\n setPresence({el: menuIndicator, attr: 'data-selected', present: checked || indeterminate});\n }\n const menuCheckedIcon = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-menu-indicator-icon=\"checked\"]');\n if (menuCheckedIcon) {\n setPresence({el: menuCheckedIcon, attr: 'data-checked', present: checked});\n removeAttribute({el: menuCheckedIcon, attr: 'data-indeterminate'});\n }\n const menuIndeterminateIcon = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-menu-indicator-icon=\"indeterminate\"]');\n if (menuIndeterminateIcon) {\n setPresence({el: menuIndeterminateIcon, attr: 'data-indeterminate', present: indeterminate});\n removeAttribute({el: menuIndeterminateIcon, attr: 'data-checked'});\n }\n };\n\n const dispatchNative = (type: 'input' | 'change'): void => {\n dispatchingNative = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatchingNative = false; }\n };\n\n const bridge = createAlpineMachine({\n schema: checkboxControlSchema,\n hooks: checkboxHooks,\n createMachine: ({props}) => createCheckboxMachine({\n props,\n effects: {\n sync: syncDom,\n emitInput: () => dispatchNative('input'),\n emitChange: () => dispatchNative('change'),\n },\n }),\n });\n\n const owner: CheckboxOwner = {\n setInheritance(inherited): void {\n bridge.send({type: 'INHERITANCE_CHANGED', ...inherited});\n },\n };\n\n return {\n ...bridge,\n init(): void {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-checkbox-input]');\n if (!inputEl) throw new Error('Checkbox requires a native checkbox input.');\n bridge.connect(rootEl, this.snapshot);\n addListener({target: inputEl, event: 'input', handler: () => {\n if (dispatchingNative) return;\n bridge.send({type: 'NATIVE_CHANGED', state: input().checked ? 'checked' : 'unchecked'});\n }, cleanup});\n addListener({target: inputEl, event: 'change', handler: () => {\n if (dispatchingNative) return;\n bridge.send({type: 'NATIVE_CHANGED', state: input().checked ? 'checked' : 'unchecked'});\n }, cleanup});\n const group = closestGroupOwner(root());\n if (group) unregisterGroup = group.register(owner);\n syncDom();\n },\n destroy(): void {\n unregisterGroup?.();\n unregisterGroup = null;\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n get state(): CheckboxState {\n return bridge.getCommittedSnapshot().value as CheckboxState;\n },\n setState(state: CheckboxState): void {\n if (!['unchecked', 'checked', 'indeterminate'].includes(state)) {\n throw new Error(`Unknown checkbox state: ${String(state)}`);\n }\n if (state === bridge.getCommittedSnapshot().value) return;\n bridge.send({type: 'API_SET', state});\n },\n };\n};\n\nconst UiCheckboxGroup = (): TrellisAlpineComponent<CheckboxGroupData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n const members = new Set<CheckboxOwner>();\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Checkbox group has not been initialized.');\n return rootEl;\n };\n const currentSnapshot = (): MachineSnapshot<CheckboxGroupContext, CheckboxGroupProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const snapshot = currentSnapshot();\n setAttribute({el: root(), attr: 'data-orientation', value: snapshot.props.orientation});\n setAttribute({el: root(), attr: 'data-variant', value: snapshot.props.variant});\n syncControlPresence({el: root(), state: snapshot.context.inherited});\n members.forEach((member) => member.setInheritance(snapshot.context.inherited));\n };\n const bridge = createAlpineMachine({\n schema: checkboxGroupSchema,\n hooks: checkboxGroupHooks,\n createMachine: ({props}) => createCheckboxGroupMachine({\n props,\n effects: {sync: syncDom},\n }),\n });\n const owner: CheckboxGroupOwner = {\n register(member): () => void {\n members.add(member);\n member.setInheritance(currentSnapshot().context.inherited);\n return () => members.delete(member);\n },\n inherited: () => currentSnapshot().context.inherited,\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n bridge.connect(rootEl, this.snapshot);\n groupOwners.set(root(), owner);\n syncDom();\n },\n destroy(): void {\n groupOwners.delete(root());\n members.clear();\n bridge.disconnect();\n rootEl = null;\n },\n };\n};\n\nconst registerCheckbox = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiCheckbox', UiCheckbox)(AlpineInstance);\n defineAlpineData('UiCheckboxGroup', UiCheckboxGroup)(AlpineInstance);\n};\n\nexport {registerCheckbox, UiCheckbox, UiCheckboxGroup};\nexport type {CheckboxData, CheckboxGroupData, CheckboxState, UiCheckboxApi};\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 {registerCheckbox as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerCheckbox = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerCheckbox};\nexport default registerCheckbox;\nexport * from './index';\n"],"mappings":"2nBAYA,IAAM,GAA8B,EAC9B,GAA0B,CAAC,UAAW,QAAS,QAAS,MAAM,EAC9D,EAAsB,GACtB,EAAiB,EACjB,GAAoB,CAAC,UAAW,QAAS,QAAS,MAAM,EACxD,EAAkB,EAClB,EAAwB,GAUxB,EAAwB,CAC1B,MAAO,EAAO,QAAQ,IAAI,EAC1B,KAAM,EACN,MAAO,EACP,YAAa,EACb,QAAS,EAAU,EAAM,cAAc,EACvC,cAAe,EAAU,EAAM,oBAAoB,EACnD,SAAU,EAAU,EAAM,eAAe,EACzC,SAAU,EAAU,EAAM,eAAe,EACzC,QAAS,EAAU,EAAM,cAAc,EACvC,UAAW,EAAK,QAAQ,EAAI,EAC5B,UAAW,EAAM,EAAqB,SAA8B,EACpE,KAAM,EACN,QAAS,EAAM,GAAmB,SAA4B,EAC9D,MAAO,EAAM,EAAiB,SAA0B,EACxD,YAAa,EAAM,EAAuB,OAA8B,EACxE,KAAM,EAAM,EAAgB,IAAoB,EAChD,WAAY,EACZ,eAAgB,EAChB,mBAAoB,EACpB,UAAW,EACX,aAAc,EACd,WAAY,EACZ,iBAAkB,EAClB,MAAO,CACX,GAII,CADA,GAAG,CACI,GASX,IAAM,GAAsB,CACxB,KAAM,EACN,YAAa,EAAM,GAA6B,UAAsC,EACtF,QAAS,EAAM,GAAyB,SAAiC,EACzE,MAAO,EAAM,EAAiB,SAA0B,EACxD,YAAa,EAAM,EAAuB,OAA8B,EACxE,UAAW,EAAK,QAAQ,EAAI,EAC5B,UAAW,EAAM,EAAqB,SAA8B,EACpE,SAAU,EAAU,EAAM,eAAe,EACzC,SAAU,EAAU,EAAM,eAAe,EACzC,QAAS,EAAU,EAAM,cAAc,EACvC,MAAO,CACX,EAGU,EAAM,EAAgB,IAAoB,ECjDpD,IAAM,GAAgB,CAAC,EACjB,GAAqB,CAAC,EACtB,EAAyC,CAC3C,KAAM,GAAI,SAAU,GAAO,SAAU,GAAO,QAAS,GAAO,QAAS,SACzE,EAEM,EAA0B,GACxB,EAAM,cAAsB,gBACzB,EAAM,QAAU,UAAY,YAGjC,EAAkB,GAChB,EAAM,QAAU,WAAa,EAAM,QAAU,gBAAwB,EAAM,MACxE,YAGL,GAAyB,CAAC,WAC5B,EAAmC,EAAO,UAAW,eAAe,EAElE,EAAmB,GAA0B,GAAwE,CACvH,IAAM,EAAO,EAAwC,EAAM,KAAK,GAAG,MACnE,OAAO,EAAsB,CAAK,GAAK,EAAQ,GAAS,EAAuB,CAA4B,IAAM,CACrH,EACM,EAAgB,IAA0B,CAAC,WAC7C,EAAe,CAAK,IAAM,EAGxB,GAAkB,GAA+D,CACnF,IAAM,EAAO,EAAwC,EAAM,KAAK,GAAG,MAC9D,KACL,MAAO,CAAC,MAAO,CAAI,CACvB,EAEM,EAAwB,GAAsB,CAChD,CAAC,OAAQ,YAAa,MAAO,EAAa,WAAW,EAAG,SAAO,EAC/D,CAAC,OAAQ,UAAW,MAAO,EAAa,SAAS,EAAG,SAAO,EAC3D,CAAC,OAAQ,gBAAiB,MAAO,EAAa,eAAe,EAAG,SAAO,CAC3E,EAEM,IAAyB,CAC3B,QACA,YAAY,EACZ,aAOO,EAAqD,CACxD,QAFY,EAAuB,CAEnC,EACA,GAAI,CACA,eAAgB,EAAqB,CAAC,MAAM,CAAC,EAC7C,QAAS,EAAqB,CAAC,OAAQ,YAAa,YAAY,CAAC,EACjE,oBAAqB,CAAC,OAAQ,iBAAkB,QAAS,MAAM,EAC/D,cAAe,CACX,CAAC,OAAQ,YAAa,MAAO,EAAgB,WAAW,EAAG,OAAQ,iBAAkB,QAAS,MAAM,EACpG,CAAC,OAAQ,UAAW,MAAO,EAAgB,SAAS,EAAG,OAAQ,iBAAkB,QAAS,MAAM,EAChG,CAAC,OAAQ,gBAAiB,MAAO,EAAgB,eAAe,EAAG,OAAQ,iBAAkB,QAAS,MAAM,EAC5G,CAAC,OAAQ,iBAAkB,QAAS,MAAM,CAC9C,CACJ,EACA,OAAQ,CACJ,UAAW,CAAC,KAAM,CAAC,WAAW,CAAC,EAC/B,QAAS,CAAC,KAAM,CAAC,SAAS,CAAC,EAC3B,cAAe,CAAC,KAAM,CAAC,eAAe,CAAC,CAC3C,CACJ,EAAG,CACC,QAAS,CAAC,UAAW,CAAC,GAAG,CAAS,CAAC,EACnC,QACA,SAAU,CACN,kBACA,eAAiB,IAAW,CACxB,QAAS,CACL,GAAG,EAAM,QACT,UAAW,CACP,KAAM,OAAO,EAAM,MAAM,MAAS,SAAW,EAAM,MAAM,KAAO,GAChE,SAAU,EAAM,MAAM,WAAa,GACnC,SAAU,EAAM,MAAM,WAAa,GACnC,QAAS,EAAM,MAAM,UAAY,GACjC,QAAS,EAAM,MAAM,UAAY,OAAS,OAAS,SACvD,CACJ,CACJ,EACJ,EACA,SACJ,CAAC,EAGC,EAA6B,IAAoD,CACnF,KAAM,EAAM,KACZ,SAAU,EAAM,SAChB,SAAU,EAAM,SAChB,QAAS,EAAM,QACf,QAAS,EAAM,OACnB,GAEM,IAA8B,CAChC,QACA,aAIqD,EAAwD,CAC7G,QAAS,QACT,OAAQ,CACJ,MAAO,CACH,KAAM,CAAC,OAAO,EACd,GAAI,CACA,cAAe,CAAC,OAAQ,iBAAkB,QAAS,MAAM,CAC7D,CACJ,CACJ,CACJ,EAAG,CACC,QAAS,CAAC,UAAW,EAA0B,CAAK,CAAC,EACrD,QACA,SAAU,CACN,eAAiB,GAAU,CACvB,IAAM,EAAO,EAAsC,EAAM,KAAK,GAAG,MACjE,OAAO,EAAO,CAAC,MAAO,EAAM,QAAS,CAAC,UAAW,EAA0B,CAAI,CAAC,CAAC,EAAI,IAAA,EACzF,CACJ,EACA,SACJ,CAAC,EC9IK,EAAyB,CAC3B,6DACJ,EAEM,EAAoB,CACtB,GAAI,UACJ,GAAI,SACR,EAEM,EAA4B,CAC9B,EAAkB,GAClB,EAAuB,EAC3B,EAEmB,EAAa,CAAC,WAAY,CACzC,UAAW,UACX,MAAO,CACH,KAAM,CACF,KAAM,CACF,EACA,MACJ,EACA,SAAU,CACN,KAAM,EACN,QAAS,EACT,SAAU,EACV,SAAU,EACV,IAAK,GACL,KAAM,EACN,KAAM,EACN,OAAQ,GACR,QAAS,EACT,QAAS,CACb,EACA,SAAU,CACN,KAAM,KACN,QAAS,IACT,SAAU,IACV,SAAU,IACV,IAAK,IACL,KAAM,IACN,KAAM,IACN,OAAQ,IACR,QAAS,IACT,QAAS,GACb,CACJ,EACA,OAAQ,CACJ,KAAM,6DACV,EACA,MAAO,CACH,KAAM,gCACV,EACA,YAAa,CACT,KAAM,iDACV,EACA,OAAQ,CACJ,KAAM,4EACV,EACA,QAAS,CACL,KAAM,sBACV,EACA,OAAQ,CACJ,KAAM,gBACN,SAAU,CACN,OAAQ,CACJ,IAAK,8BACL,MAAO,MACX,EACA,MAAO,CACH,MAAO,gBACP,IAAK,cACL,QAAS,kBACT,QAAS,EACb,CACJ,EACA,UAAW,CACP,CAAC,KAAM,CAAC,OAAQ,QAAS,MAAO,OAAO,EAAG,MAAO,qBAAqB,EACtE,CAAC,KAAM,CAAC,OAAQ,QAAS,MAAO,KAAK,EAAG,MAAO,mBAAmB,EAClE,CAAC,KAAM,CAAC,OAAQ,QAAS,MAAO,SAAS,EAAG,MAAO,uBAAuB,CAC9E,EACA,SAAU,CACN,OAAQ,MACR,MAAO,KACX,CACJ,CACJ,CACJ,CAAC,CAAC,EC3FF,IAAM,GAAwB,CAC1B,GAAG,EACH,gDACA,yEACA,sDACA,0CACA,6BACA,gCACA,qCACA,+FACA,2GACA,wDACJ,EAEM,EAA6B,GAO7B,EAAiB,EAAa,CAAC,WAAY,CAC7C,UAAW,cACX,MAAO,CACH,MAAO,CACH,KAAM,UACN,SAAU,CACN,YAAa,CACT,SAAU,GACV,WAAY,EAChB,EACA,QAAS,CACL,QAAS,GACT,MAAO,GACP,MAAO,GACP,KAAM,UACV,CACJ,EACA,UAAW,CACP,CAAC,KAAM,CAAC,YAAa,WAAY,QAAS,SAAS,EAAG,MAAO,mBAAmB,EAChF,CAAC,KAAM,CAAC,YAAa,aAAc,QAAS,SAAS,EAAG,MAAO,yCAAyC,EACxG,CAAC,KAAM,CAAC,YAAa,WAAY,QAAS,OAAO,EAAG,MAAO,mBAAmB,EAC9E,CAAC,KAAM,CAAC,YAAa,aAAc,QAAS,OAAO,EAAG,MAAO,2CAA2C,EACxG,CAAC,KAAM,CAAC,YAAa,WAAY,QAAS,OAAO,EAAG,MAAO,0BAA0B,EACrF,CAAC,KAAM,CAAC,YAAa,aAAc,QAAS,OAAO,EAAG,MAAO,mCAAmC,CACpG,EACA,SAAU,CACN,YAAa,WACb,QAAS,SACb,CACJ,EACA,SAAU,CACN,KAAM,6CACN,SAAU,CACN,QAAS,CACL,QAAS,0DACT,MAAO,CAxCvB,GAAG,EACH,GAAG,EACH,sCAsCuB,EACP,MAAO,GACP,KAAM,CACV,EACA,KAAM,CACF,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,IAAK,EACT,CACJ,EACA,UAAW,CACP,CAAC,KAAM,CAAC,QAAS,UAAW,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC7E,CAAC,KAAM,CAAC,QAAS,UAAW,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC7E,CAAC,KAAM,CAAC,QAAS,UAAW,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC7E,CAAC,KAAM,CAAC,QAAS,UAAW,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC7E,CAAC,KAAM,CAAC,QAAS,UAAW,KAAM,KAAK,EAAG,MAAO,EAA2B,GAAG,EAC/E,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC3E,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC3E,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC3E,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAA2B,EAAE,EAC3E,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,KAAK,EAAG,MAAO,EAA2B,GAAG,CACjF,EACA,SAAU,CACN,QAAS,UACT,KAAM,IACV,CACJ,EACA,MAAO,CACH,KAAM,cACV,EACA,UAAW,CACP,KAAM,CACF,uFACJ,EACA,SAAU,CACN,QAAS,CACL,QAAS,GACT,MAAO,GACP,MAAO,GACP,KAAM,wBACV,EACA,KAAM,CACF,GAAI,6BACJ,GAAI,6BACJ,GAAI,6BACJ,GAAI,6BACJ,IAAK,6BACT,CACJ,EACA,SAAU,CACN,QAAS,UACT,KAAM,IACV,CACJ,EACA,cAAe,CACX,KAAM,0KACN,SAAU,CACN,KAAM,CACF,GAAI,eACJ,GAAI,eACJ,GAAI,eACJ,GAAI,eACJ,IAAK,cACT,CACJ,EACA,SAAU,CACN,KAAM,IACV,CACJ,EACA,cAAe,CACX,KAAM,CAAC,yBAA0B,CAAwB,CAC7D,EACA,kBAAmB,CACf,KAAM,wIACV,EACA,QAAS,CACL,KAAM,sBACV,EACA,KAAM,CACF,KAAM,gDACN,SAAU,CACN,QAAS,CACL,QAAS,mBACT,MAAO,mBACP,MAAO,EACX,EACA,KAAM,CACF,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,IAAK,EACT,CACJ,EACA,UAAW,CACP,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAAwB,EAAE,EACxE,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAAwB,EAAE,EACxE,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAAwB,EAAE,EACxE,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,IAAI,EAAG,MAAO,EAAwB,EAAE,EACxE,CAAC,KAAM,CAAC,QAAS,QAAS,KAAM,KAAK,EAAG,MAAO,EAAwB,GAAG,CAC9E,EACA,SAAU,CACN,QAAS,UACT,KAAM,IACV,CACJ,EACA,MAAO,CACH,KAAM,EACV,EACA,YAAa,CACT,KAAM,wBACV,CACJ,CACJ,CAAC,CAAC,EC9HI,EAAc,IAAI,QAElB,GAAqB,GAAoD,CAC3E,IAAM,EAAQ,EAAQ,eAAe,QAAqB,0BAA0B,GAAK,KACzF,OAAO,EAAQ,EAAY,IAAI,CAAK,GAAK,KAAO,IACpD,EAEM,MAAyD,CAC3D,IAAI,EAA+D,KAC/D,EAAmC,KACnC,EACA,EAAuC,KACvC,EAAoB,GAElB,MAA0B,CAC5B,GAAI,CAAC,EAAQ,MAAU,MAAM,oCAAoC,EACjE,OAAO,CACX,EACM,MAAgC,CAClC,GAAI,CAAC,EAAS,MAAU,MAAM,4CAA4C,EAC1E,OAAO,CACX,EACM,MAAgF,EAAO,qBAAqB,EAE5G,MAAsB,CACxB,IAAM,EAAW,EAAK,EAChB,EAAS,EAAM,EACf,EAAW,EAAgB,EAC3B,EAAQ,EAAS,MACjB,EAAY,EAAS,QAAQ,UAC7B,EAAQ,EAAS,MACjB,EAAU,IAAU,UACpB,EAAgB,IAAU,gBAC1B,EAAW,EAAM,UAAY,EAAU,SACvC,EAAW,EAAM,UAAY,EAAU,SACvC,EAAU,EAAM,SAAW,EAAU,QACrC,EAAO,EAAM,MAAQ,EAAU,KAC/B,EAAO,EAAM,UAAY,QAAU,EAAU,UAAY,OAE/D,EAAO,QAAU,EACjB,EAAO,cAAgB,EAClB,GAAM,EAAO,gBAAgB,MAAM,EACxC,GAAkB,CAAC,MAAO,EAAQ,MAAO,CAAC,OAAM,MAAO,EAAM,MAAO,WAAU,WAAU,SAAO,CAAC,CAAC,EAC7F,EAAe,EAAO,aAAa,eAAgB,OAAO,EACzD,EAAO,gBAAgB,cAAc,EAE1C,EAAa,CAAC,GAAI,EAAU,KAAM,aAAc,MAAO,CAAK,CAAC,EAC7D,EAAY,CAAC,GAAI,EAAU,KAAM,eAAgB,QAAS,CAAO,CAAC,EAClE,EAAY,CAAC,GAAI,EAAU,KAAM,qBAAsB,QAAS,CAAa,CAAC,EAC9E,EAAoB,CAAC,GAAI,EAAU,MAAO,CAAC,WAAU,WAAU,SAAO,CAAC,CAAC,EACxE,EAAY,CAAC,GAAI,EAAQ,KAAM,eAAgB,QAAS,CAAO,CAAC,EAChE,EAAY,CAAC,GAAI,EAAQ,KAAM,qBAAsB,QAAS,CAAa,CAAC,EAC5E,EAAS,UAAY,EAAa,CAC9B,KAAM,EAAe,MAAM,SAC3B,MAAO,CAAC,GAAG,EAAO,QAAS,EAAO,OAAS,EAAM,OAAO,EACxD,UAAW,EAAS,QAAQ,KAChC,CAAC,EACD,EAAY,CAAC,GAAI,EAAU,KAAM,oBAAqB,QAAS,CAAI,CAAC,EACpE,EAAY,CAAC,GAAI,EAAU,KAAM,wBAAyB,QAAS,CAAI,CAAC,EACxE,EAAY,CAAC,GAAI,EAAU,KAAM,iBAAkB,QAAS,EAAM,MAAO,MAAM,CAAC,EAChF,EAAY,CAAC,GAAI,EAAU,KAAM,gBAAiB,QAAS,IAAS,GAAW,EAAc,CAAC,EAC1F,GACA,EAAS,aAAa,OAAQ,kBAAkB,EAChD,EAAS,aAAa,eAAgB,EAAgB,QAAU,EAAU,OAAS,OAAO,EAC1F,EAAS,SAAW,GACpB,EAAO,SAAW,GAClB,EAAO,aAAa,cAAe,MAAM,IAEzC,EAAS,gBAAgB,MAAM,EAC/B,EAAS,gBAAgB,cAAc,EACvC,EAAS,gBAAgB,UAAU,EACnC,EAAO,gBAAgB,aAAa,GAGxC,IAAM,EAAY,EAAS,cAA2B,8BAA8B,EAChF,IACA,EAAU,OAAS,EACnB,EAAU,UAAY,EAAa,CAC/B,KAAM,EAAe,MAAM,UAC3B,MAAO,CAAC,GAAG,EAAO,QAAS,EAAO,OAAS,EAAM,OAAO,EACxD,UAAW,EAAU,QAAQ,KACjC,CAAC,EACD,EAAa,CAAC,GAAI,EAAW,KAAM,aAAc,MAAO,CAAK,CAAC,EAC9D,EAAY,CAAC,GAAI,EAAW,KAAM,eAAgB,QAAS,CAAO,CAAC,EACnE,EAAY,CAAC,GAAI,EAAW,KAAM,qBAAsB,QAAS,CAAa,CAAC,EAC/E,EAAY,CAAC,GAAI,EAAW,KAAM,gBAAiB,QAAS,CAAQ,CAAC,EACrE,EAAY,CAAC,GAAI,EAAW,KAAM,eAAgB,QAAS,CAAO,CAAC,GAEvE,IAAM,EAAc,EAAS,cAA2B,6CAA6C,EACjG,IACA,EAAY,aAAa,QAAS,EAAa,CAC3C,KAAM,EAAe,MAAM,cAC3B,QACA,UAAW,EAAY,QAAQ,KACnC,CAAC,CAAC,EACF,EAAY,CAAC,GAAI,EAAa,KAAM,eAAgB,QAAS,CAAO,CAAC,EACrE,EAAgB,CAAC,GAAI,EAAa,KAAM,oBAAoB,CAAC,GAEjE,IAAM,EAAoB,EAAS,cAA2B,mDAAmD,EAC7G,IACA,EAAkB,aAAa,QAAS,EAAa,CACjD,KAAM,EAAe,MAAM,cAC3B,QACA,UAAW,EAAkB,QAAQ,KACzC,CAAC,CAAC,EACF,EAAY,CAAC,GAAI,EAAmB,KAAM,qBAAsB,QAAS,CAAa,CAAC,EACvF,EAAgB,CAAC,GAAI,EAAmB,KAAM,cAAc,CAAC,GAEjE,IAAM,EAAgB,EAAS,cAA2B,mCAAmC,EACzF,IACA,EAAc,OAAS,CAAC,EACxB,EAAY,CAAC,GAAI,EAAe,KAAM,gBAAiB,QAAS,GAAW,CAAa,CAAC,GAE7F,IAAM,EAAkB,EAAS,cAA2B,kDAAkD,EAC1G,IACA,EAAY,CAAC,GAAI,EAAiB,KAAM,eAAgB,QAAS,CAAO,CAAC,EACzE,EAAgB,CAAC,GAAI,EAAiB,KAAM,oBAAoB,CAAC,GAErE,IAAM,EAAwB,EAAS,cAA2B,wDAAwD,EACtH,IACA,EAAY,CAAC,GAAI,EAAuB,KAAM,qBAAsB,QAAS,CAAa,CAAC,EAC3F,EAAgB,CAAC,GAAI,EAAuB,KAAM,cAAc,CAAC,EAEzE,EAEM,EAAkB,GAAmC,CACvD,EAAoB,GACpB,GAAI,CAAE,EAAM,EAAE,cAAc,IAAI,MAAM,EAAM,CAAC,QAAS,EAAI,CAAC,CAAC,CAAG,QAAU,CAAE,EAAoB,EAAO,CAC1G,EAEM,EAAS,EAAoB,CAC/B,OAAQ,EACR,MAAO,GACP,eAAgB,CAAC,WAAW,GAAsB,CAC9C,QACA,QAAS,CACL,KAAM,EACN,cAAiB,EAAe,OAAO,EACvC,eAAkB,EAAe,QAAQ,CAC7C,CACJ,CAAC,CACL,CAAC,EAEK,EAAuB,CACzB,eAAe,EAAiB,CAC5B,EAAO,KAAK,CAAC,KAAM,sBAAuB,GAAG,CAAS,CAAC,CAC3D,CACJ,EAEA,MAAO,CACH,GAAG,EACH,MAAa,CAIT,GAHA,EAAU,EAAkB,IAAI,EAChC,EAAS,KAAK,IACd,EAAU,EAAK,EAAE,cAAgC,0BAA0B,EACvE,CAAC,EAAS,MAAU,MAAM,4CAA4C,EAC1E,EAAO,QAAQ,EAAQ,KAAK,QAAQ,EACpC,EAAY,CAAC,OAAQ,EAAS,MAAO,QAAS,YAAe,CACrD,GACJ,EAAO,KAAK,CAAC,KAAM,iBAAkB,MAAO,EAAM,EAAE,QAAU,UAAY,WAAW,CAAC,CAC1F,EAAG,SAAO,CAAC,EACX,EAAY,CAAC,OAAQ,EAAS,MAAO,SAAU,YAAe,CACtD,GACJ,EAAO,KAAK,CAAC,KAAM,iBAAkB,MAAO,EAAM,EAAE,QAAU,UAAY,WAAW,CAAC,CAC1F,EAAG,SAAO,CAAC,EACX,IAAM,EAAQ,GAAkB,EAAK,CAAC,EAClC,IAAO,EAAkB,EAAM,SAAS,CAAK,GACjD,EAAQ,CACZ,EACA,SAAgB,CACZ,IAAkB,EAClB,EAAkB,KAClB,EAAO,WAAW,EAClB,EAAS,KACT,EAAU,IACd,EACA,IAAI,OAAuB,CACvB,OAAO,EAAO,qBAAqB,EAAE,KACzC,EACA,SAAS,EAA4B,CACjC,GAAI,CAAC,CAAC,YAAa,UAAW,eAAe,EAAE,SAAS,CAAK,EACzD,MAAU,MAAM,2BAA2B,OAAO,CAAK,GAAG,EAE1D,IAAU,EAAO,qBAAqB,EAAE,OAC5C,EAAO,KAAK,CAAC,KAAM,UAAW,OAAK,CAAC,CACxC,CACJ,CACJ,EAEM,MAAmE,CACrE,IAAI,EAA+D,KAC7D,EAAU,IAAI,IAEd,MAA0B,CAC5B,GAAI,CAAC,EAAQ,MAAU,MAAM,0CAA0C,EACvE,OAAO,CACX,EACM,MAAmF,EAAO,qBAAqB,EAC/G,MAAsB,CACxB,IAAM,EAAW,EAAgB,EACjC,EAAa,CAAC,GAAI,EAAK,EAAG,KAAM,mBAAoB,MAAO,EAAS,MAAM,WAAW,CAAC,EACtF,EAAa,CAAC,GAAI,EAAK,EAAG,KAAM,eAAgB,MAAO,EAAS,MAAM,OAAO,CAAC,EAC9E,EAAoB,CAAC,GAAI,EAAK,EAAG,MAAO,EAAS,QAAQ,SAAS,CAAC,EACnE,EAAQ,QAAS,GAAW,EAAO,eAAe,EAAS,QAAQ,SAAS,CAAC,CACjF,EACM,EAAS,EAAoB,CAC/B,OAAQ,GACR,MAAO,GACP,eAAgB,CAAC,WAAW,GAA2B,CACnD,QACA,QAAS,CAAC,KAAM,CAAO,CAC3B,CAAC,CACL,CAAC,EACK,EAA4B,CAC9B,SAAS,EAAoB,CAGzB,OAFA,EAAQ,IAAI,CAAM,EAClB,EAAO,eAAe,EAAgB,EAAE,QAAQ,SAAS,MAC5C,EAAQ,OAAO,CAAM,CACtC,EACA,cAAiB,EAAgB,EAAE,QAAQ,SAC/C,EAEA,MAAO,CACH,GAAG,EACH,MAAa,CACT,EAAS,KAAK,IACd,EAAO,QAAQ,EAAQ,KAAK,QAAQ,EACpC,EAAY,IAAI,EAAK,EAAG,CAAK,EAC7B,EAAQ,CACZ,EACA,SAAgB,CACZ,EAAY,OAAO,EAAK,CAAC,EACzB,EAAQ,MAAM,EACd,EAAO,WAAW,EAClB,EAAS,IACb,CACJ,CACJ,EAEM,GAAoB,GAAwC,CAC9D,EAAiB,aAAc,CAAU,EAAE,CAAc,EACzD,EAAiB,kBAAmB,CAAe,EAAE,CAAc,CACvE,EClSM,EAAa,IAAI,QAEjB,GAAoB,GAAqC,CACvD,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAE7B,GAAkB,CAAc,EACpC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e,o as t,s as n,t as r}from"./dom-DiTFTWeR.js";import{t as i}from"./number-BCZdoG0B.js";import{f as a,l as o,n as s}from"./codecs-Cb1ns_47.js";import{t as c}from"./alpine-machine-9HwatUrm.js";import{n as l,t as u}from"./alpine-data-Dvc_bXq6.js";import{n as d,t as f}from"./styles-TfvwVPGw.js";import{t as p}from"./merge-bindings-C8ewA_FD.js";import{t as m}from"./machine-DQfpKM3w.js";import{n as h}from"./props-change-2xfsIAEN.js";var g={orientation:o([`vertical`,`horizontal`,`both`],`vertical`),type:o([`hover`,`always`,`scroll`],`hover`),fill:s,hideNative:s.default(!0),disabled:s,class:a,viewportClass:a,scrollbarClass:a,thumbClass:a,cornerClass:a},_=e=>({event:t})=>t.axis===e,v=[],y=({props:e,context:t,effects:n})=>m({type:`parallel`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`},MEASURED:{reduce:`setOverflow`,effects:`sync`}},states:{pointer:{initial:`outside`,states:{outside:{on:{POINTER_ENTERED:{target:`inside`,effects:`sync`}}},inside:{tags:[`hovered`],on:{POINTER_LEFT:{target:`outside`,effects:`sync`}}}}},focus:{initial:`outside`,states:{outside:{on:{FOCUS_ENTERED:{target:`inside`,effects:`sync`}}},inside:{tags:[`focused`],on:{FOCUS_LEFT:{target:`outside`,effects:`sync`}}}}},scrolling:{initial:`idle`,states:{idle:{on:{SCROLLED:{target:`active`,effects:`sync`}}},active:{tags:[`scrolling`],on:{SCROLL_SETTLED:{target:`idle`,effects:`sync`}}}}},dragging:{initial:`idle`,states:{idle:{on:{DRAG_STARTED:[{target:`vertical`,guard:_(`y`),effects:`sync`},{target:`horizontal`,guard:_(`x`),effects:`sync`}]}},vertical:{tags:[`dragging`,`dragging-y`],on:{DRAG_ENDED:{target:`idle`,effects:`sync`}}},horizontal:{tags:[`dragging`,`dragging-x`],on:{DRAG_ENDED:{target:`idle`,effects:`sync`}}}}}}},{context:t,props:e,reducers:{replaceProps:({event:e})=>{let t=h(e);return t?{props:t.props}:{}},setOverflow:({context:e,event:t})=>({context:{...e,overflow:{x:t.overflowX===!0,y:t.overflowY===!0}}})},effects:{sync:n.sync}}),b=f({definition:{component:`ui.scroll-area`,parts:{root:{base:[`relative min-w-0 overflow-hidden text-surface-ink`,`data-disabled:opacity-60`],variants:{fill:{true:`flex min-h-0 flex-1 flex-col`,false:``}},defaults:{fill:!1}},viewport:{base:[`min-h-0 min-w-0 outline-none`,`focus-visible:ui-focus-ring`],variants:{orientation:{vertical:`h-full w-full overflow-x-hidden overflow-y-auto`,horizontal:`h-full w-full overflow-x-auto overflow-y-hidden`,both:`size-full overflow-auto`},fill:{true:`flex-1`,false:``}},defaults:{orientation:`vertical`,fill:!1}},content:{base:`min-w-0`,variants:{orientation:{vertical:``,horizontal:`w-max min-w-full`,both:`min-w-full`}},defaults:{orientation:`vertical`}},scrollbar:{base:[`pointer-events-none absolute z-10 rounded-scrollbar-thumb opacity-0`,`data-visible:pointer-events-auto data-visible:opacity-100 data-disabled:pointer-events-none`],variants:{orientation:{vertical:`bottom-scrollbar-inset right-scrollbar-inset top-scrollbar-inset w-scrollbar`,horizontal:`bottom-scrollbar-inset left-scrollbar-inset right-scrollbar-inset h-scrollbar`}},defaults:{orientation:`vertical`}},thumb:{base:[`absolute rounded-scrollbar-thumb bg-scrollbar-thumb`,`hover:bg-scrollbar-thumb-hover data-dragging:bg-scrollbar-thumb-hover`],variants:{orientation:{vertical:`left-0 top-0 w-full`,horizontal:`left-0 top-0 h-full`}},defaults:{orientation:`vertical`}},corner:{base:[`pointer-events-none absolute bottom-scrollbar-inset right-scrollbar-inset z-10 size-scrollbar rounded-scrollbar-thumb`,`bg-transparent opacity-0`,`data-visible:opacity-100`]}}}}),x=18,S=1e3,C=null,w=(e,t)=>e===`both`||e===`horizontal`&&t===`x`||e===`vertical`&&t===`y`,T=()=>{if(C)return C;let e=document.createElement(`div`),t=document.createElement(`div`);return e.dir=`rtl`,e.style.cssText=`position:absolute;left:-9999px;width:4px;height:1px;overflow:scroll;`,t.style.cssText=`width:8px;height:1px;`,e.append(t),document.body.append(e),e.scrollLeft=1,e.scrollLeft===0?C=`negative`:(e.scrollLeft=0,C=e.scrollLeft===0?`reverse`:`default`),e.remove(),C},E=t=>{let n=Math.max(0,t.scrollWidth-t.clientWidth);if(!e({el:t}))return t.scrollLeft;let r=T();return r===`negative`?-t.scrollLeft:r===`reverse`?n-t.scrollLeft:t.scrollLeft},D=(t,n)=>{let r=Math.max(0,t.scrollWidth-t.clientWidth),a=i(n,0,r);if(!e({el:t})){t.scrollLeft=a;return}let o=T();o===`negative`?t.scrollLeft=-a:o===`reverse`?t.scrollLeft=r-a:t.scrollLeft=a},O=e=>e.dataset.orientation===`horizontal`?`x`:`y`,k=e=>e instanceof HTMLElement,A=(e,t)=>{let n=e.querySelector(`:scope > ${t}`);return k(n)?n:null},j=()=>{let e=null,a,o=null,s=null,l=0,f=0,m=0,h=null,_=null,C=null,T=()=>{if(!e)throw Error(`Scroll Area has not been initialized.`);return e},k=()=>q.getCommittedSnapshot(),j=()=>k().props,M=e=>k().tags.includes(e),N=()=>{let e=T(),t=A(e,`[data-ui-scroll-area-viewport]`)??e;return{root:e,viewport:t,content:A(t,`[data-ui-scroll-area-content]`),verticalScrollbar:A(e,`[data-ui-scroll-area-scrollbar][data-orientation="vertical"]`),horizontalScrollbar:A(e,`[data-ui-scroll-area-scrollbar][data-orientation="horizontal"]`),verticalThumb:A(e,`[data-ui-scroll-area-scrollbar][data-orientation="vertical"] > [data-ui-scroll-area-thumb][data-orientation="vertical"]`),horizontalThumb:A(e,`[data-ui-scroll-area-scrollbar][data-orientation="horizontal"] > [data-ui-scroll-area-thumb][data-orientation="horizontal"]`),corner:A(e,`[data-ui-scroll-area-corner]`)}},P=()=>{m&&=(window.clearTimeout(m),0)},F=()=>{P(),m=window.setTimeout(()=>{m=0,q.send(`SCROLL_SETTLED`)},S)},I=(e=N())=>{let{viewport:t}=e;if(e.verticalThumb&&_){let n=_.maxOffset*i(t.scrollTop/_.maxScroll,0,1);e.verticalThumb.style.transform=`translate3d(0, ${n}px, 0)`}if(e.horizontalThumb&&C){let n=C.maxOffset*i(E(t)/C.maxScroll,0,1);e.horizontalThumb.style.transform=`translate3d(${n}px, 0, 0)`}},L=e=>{let{viewport:t}=e,n=(e,n,r,i)=>{if(!n||!r||!i)return r&&(r.style.width=``,r.style.height=``,r.style.transform=``),null;let a=e===`y`?n.clientHeight:n.clientWidth,o=e===`y`?t.clientHeight:t.clientWidth,s=e===`y`?t.scrollHeight:t.scrollWidth,c=Math.max(1,s-o),l=Math.min(a,Math.max(x,o/s*a)),u=Math.max(0,a-l);return e===`y`?(r.style.height=`${l}px`,r.style.width=``):(r.style.width=`${l}px`,r.style.height=``),{trackLength:a,thumbLength:l,maxOffset:u,maxScroll:c}},{overflow:r}=k().context;_=n(`y`,e.verticalScrollbar,e.verticalThumb,r.y),C=n(`x`,e.horizontalScrollbar,e.horizontalThumb,r.x),I(e)},R=e=>{let t=j(),{overflow:r}=k().context,i=M(`hovered`)||M(`focused`)||M(`scrolling`)||M(`dragging`),a=e=>e?t.type===`always`?!0:t.type===`scroll`?M(`scrolling`)||M(`dragging`):i:!1,o=a(r.y),s=a(r.x);[e.verticalScrollbar,e.verticalThumb].forEach(e=>{e&&n({el:e,attr:`data-visible`,present:o})}),[e.horizontalScrollbar,e.horizontalThumb].forEach(e=>{e&&n({el:e,attr:`data-visible`,present:s})}),[e.verticalScrollbar,e.horizontalScrollbar].forEach(e=>{e&&n({el:e,attr:`data-disabled`,present:t.disabled})}),e.verticalThumb&&n({el:e.verticalThumb,attr:`data-dragging`,present:M(`dragging-y`)}),e.horizontalThumb&&n({el:e.horizontalThumb,attr:`data-dragging`,present:M(`dragging-x`)}),e.corner&&n({el:e.corner,attr:`data-visible`,present:o&&s})},z=()=>{if(!h)return;let e=h;h=null;let t=N(),n=e.axis===`y`?t.verticalThumb:t.horizontalThumb;try{n?.releasePointerCapture?.(e.pointerId)}catch{}q.send({type:`DRAG_ENDED`,axis:e.axis})},B=()=>{let e=N(),r=j(),{overflow:i}=k().context;r.disabled&&h&&z(),n({el:e.root,attr:`data-overflow-x`,present:i.x}),n({el:e.root,attr:`data-overflow-y`,present:i.y}),n({el:e.root,attr:`data-scrolling`,present:M(`scrolling`)}),n({el:e.root,attr:`data-dragging`,present:M(`dragging`)}),n({el:e.root,attr:`data-disabled`,present:r.disabled}),t({el:e.viewport,attr:`data-orientation`,value:r.orientation}),n({el:e.viewport,attr:`data-hide-native`,present:r.hideNative}),L(e),R(e)},V=()=>{l||=requestAnimationFrame(()=>{l=0;let e=N(),t=j(),n=w(t.orientation,`x`)&&e.viewport.scrollWidth>e.viewport.clientWidth+1,r=w(t.orientation,`y`)&&e.viewport.scrollHeight>e.viewport.clientHeight+1,i=k().context.overflow;n!==i.x||r!==i.y?q.send({type:`MEASURED`,overflowX:n,overflowY:r}):(L(e),R(e))})},H=()=>{f||=requestAnimationFrame(()=>{f=0,I()})},U=()=>{H(),M(`scrolling`)||q.send(`SCROLLED`),(k().context.overflow.y&&!_||k().context.overflow.x&&!C)&&V(),F()},W=(e,t)=>{if(j().disabled)return;let n=N(),r=n.viewport,i=t===`y`?n.verticalScrollbar:n.horizontalScrollbar,a=t===`y`?n.verticalThumb:n.horizontalThumb,o=t===`y`?k().context.overflow.y:k().context.overflow.x;if(!i||!a||!o)return;let s=t===`y`?i.clientHeight:i.clientWidth,c=t===`y`?a.offsetHeight:a.offsetWidth,l=t===`y`?Math.max(0,r.scrollHeight-r.clientHeight):Math.max(0,r.scrollWidth-r.clientWidth);h={axis:t,pointerId:e.pointerId,startPointer:t===`y`?e.clientY:e.clientX,startScroll:t===`y`?r.scrollTop:E(r),trackLength:s,thumbLength:c,maxScroll:l};try{a.setPointerCapture?.(e.pointerId)}catch{h=null;return}P(),q.send({type:`DRAG_STARTED`,axis:t})},G=e=>{if(!h||h.pointerId!==e.pointerId)return;e.preventDefault();let{viewport:t}=N(),n=(h.axis===`y`?e.clientY:e.clientX)-h.startPointer,r=Math.max(1,h.trackLength-h.thumbLength),a=h.startScroll+n/r*h.maxScroll;h.axis===`y`?t.scrollTop=i(a,0,h.maxScroll):D(t,a),H()},K=e=>{!h||h.pointerId!==e.pointerId||(z(),F())},q=c({schema:g,hooks:v,createMachine:({props:e})=>y({props:e,context:{overflow:{x:!1,y:!1}},effects:{sync:B}})}),J;return J={...q,get overflowX(){return this.snapshot.current?.context.overflow.x??!1},get overflowY(){return this.snapshot.current?.context.overflow.y??!1},get isScrolling(){return this.snapshot.current?.tags.includes(`scrolling`)??!1},get isDragging(){return this.snapshot.current?.tags.includes(`dragging`)??!1},init(){a=u(this),e=this.$el,q.connect(this.$el,this.snapshot);let t=N();o=new ResizeObserver(V),o.observe(t.viewport),t.content&&o.observe(t.content),s=new MutationObserver(V),t.content&&s.observe(t.content,{childList:!0,subtree:!0,characterData:!0}),r({target:t.viewport,event:`scroll`,handler:U,cleanup:a,options:{passive:!0}}),r({target:document,event:`pointermove`,handler:e=>G(e),cleanup:a}),r({target:document,event:`pointerup`,handler:e=>K(e),cleanup:a}),r({target:document,event:`pointercancel`,handler:e=>K(e),cleanup:a}),V()},destroy(){z(),P(),l&&cancelAnimationFrame(l),f&&cancelAnimationFrame(f),l=0,f=0,o?.disconnect(),s?.disconnect(),o=null,s=null,q.disconnect(),e=null},get root(){let e=this.snapshot.current?.props??j();return p({inputs:[d({part:b.parts.root,props:e,className:e.class}),{"data-ui-scroll-area":``,":data-orientation":()=>j().orientation,":data-type":()=>j().type,":data-fill":()=>j().fill?``:void 0,":data-disabled":()=>j().disabled?``:void 0,"@pointerenter":()=>q.send(`POINTER_ENTERED`),"@pointerleave":()=>q.send(`POINTER_LEFT`),"@focusin":()=>q.send(`FOCUS_ENTERED`),"@focusout":e=>{(!(e.relatedTarget instanceof Node)||!T().contains(e.relatedTarget))&&q.send(`FOCUS_LEFT`)}}]})},viewport(e){return p({inputs:[d({part:b.parts.viewport,props:{orientation:j().orientation,fill:j().fill},className:e.dataset.class}),{tabindex:`0`,"data-ui-scroll-area-viewport":``,":data-orientation":()=>j().orientation,":data-hide-native":()=>j().hideNative?``:void 0}]})},scrollbar(e){let t=O(e)===`x`?`horizontal`:`vertical`;return p({inputs:[d({part:b.parts.scrollbar,props:{orientation:t},className:e.dataset.class}),{"data-ui-scroll-area-scrollbar":``,"aria-hidden":`true`,":data-disabled":()=>j().disabled?``:void 0}]})},thumb(e){let t=O(e),n=t===`x`?`horizontal`:`vertical`;return p({inputs:[d({part:b.parts.thumb,props:{orientation:n},className:e.dataset.class}),{"data-ui-scroll-area-thumb":``,"aria-hidden":`true`,"@pointerdown.prevent":e=>W(e,t),":data-dragging":()=>M(t===`x`?`dragging-x`:`dragging-y`)?``:void 0}]})},corner(e){return p({inputs:[d({part:b.parts.corner,className:e.dataset.class}),{"data-ui-scroll-area-corner":``,"aria-hidden":`true`}]})}},J},M=l(`UiScrollArea`,j),N=new WeakSet,P=e=>{N.has(e)||(N.add(e),M(e))};export{j as n,P as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-DTRN8-Ks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.generated-DTRN8-Ks.js","names":[],"sources":["../../../../../../../../client/src/components/scroll-area/contract.ts","../../../../../../../../client/src/components/scroll-area/machine.ts","../../../../../../../../client/src/components/scroll-area/styles.ts","../../../../../../../../client/src/components/scroll-area/index.ts","../../../../../../../../client/src/components/scroll-area/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\n\nconst SCROLL_AREA_ORIENTATIONS = ['vertical', 'horizontal', 'both'] as const;\nconst SCROLL_AREA_TYPES = ['hover', 'always', 'scroll'] as const;\nconst scrollAreaSchema = {\n orientation: oneOf(SCROLL_AREA_ORIENTATIONS, 'vertical'),\n type: oneOf(SCROLL_AREA_TYPES, 'hover'),\n fill: bool,\n hideNative: bool.default(true),\n disabled: bool,\n class: string,\n viewportClass: string,\n scrollbarClass: string,\n thumbClass: string,\n cornerClass: string,\n};\n\ntype ScrollAreaOrientation = typeof SCROLL_AREA_ORIENTATIONS[number];\ntype ScrollAreaType = typeof SCROLL_AREA_TYPES[number];\ntype ScrollAreaProps = SchemaToProps<typeof scrollAreaSchema>;\n\nexport {\n SCROLL_AREA_ORIENTATIONS,\n SCROLL_AREA_TYPES,\n scrollAreaSchema,\n};\nexport type {\n ScrollAreaOrientation,\n ScrollAreaProps,\n ScrollAreaType,\n};\n","import {\n createMachine,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport type {ScrollAreaProps} from './contract';\n\ntype ScrollAxis = 'x' | 'y';\n\ntype ScrollAreaContext = {\n overflow: {x: boolean; y: boolean};\n};\n\ntype ScrollAreaMachineEffects = {\n sync(scope: MachineScope<ScrollAreaContext, ScrollAreaProps>): void;\n};\n\ntype CreateScrollAreaMachineOptions = {\n props: ScrollAreaProps;\n context: ScrollAreaContext;\n effects: ScrollAreaMachineEffects;\n};\n\n\nconst axisIs = (axis: ScrollAxis) => ({event}: MachineScope<ScrollAreaContext, ScrollAreaProps>): boolean => (\n event.axis === axis\n);\n\nconst scrollAreaHooks = [] as const;\n\nconst createScrollAreaMachine = ({\n props,\n context,\n effects,\n}: CreateScrollAreaMachineOptions): Machine<ScrollAreaContext, ScrollAreaProps> => createMachine<ScrollAreaContext, ScrollAreaProps>({\n type: 'parallel',\n on: {\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n MEASURED: {reduce: 'setOverflow', effects: 'sync'},\n },\n states: {\n pointer: {\n initial: 'outside',\n states: {\n outside: {on: {POINTER_ENTERED: {target: 'inside', effects: 'sync'}}},\n inside: {tags: ['hovered'], on: {POINTER_LEFT: {target: 'outside', effects: 'sync'}}},\n },\n },\n focus: {\n initial: 'outside',\n states: {\n outside: {on: {FOCUS_ENTERED: {target: 'inside', effects: 'sync'}}},\n inside: {tags: ['focused'], on: {FOCUS_LEFT: {target: 'outside', effects: 'sync'}}},\n },\n },\n scrolling: {\n initial: 'idle',\n states: {\n idle: {on: {SCROLLED: {target: 'active', effects: 'sync'}}},\n active: {tags: ['scrolling'], on: {SCROLL_SETTLED: {target: 'idle', effects: 'sync'}}},\n },\n },\n dragging: {\n initial: 'idle',\n states: {\n idle: {\n on: {\n DRAG_STARTED: [\n {target: 'vertical', guard: axisIs('y'), effects: 'sync'},\n {target: 'horizontal', guard: axisIs('x'), effects: 'sync'},\n ],\n },\n },\n vertical: {tags: ['dragging', 'dragging-y'], on: {DRAG_ENDED: {target: 'idle', effects: 'sync'}}},\n horizontal: {tags: ['dragging', 'dragging-x'], on: {DRAG_ENDED: {target: 'idle', effects: 'sync'}}},\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n replaceProps: ({event}) => {\n const next = propsChangedEvent<ScrollAreaProps>(event);\n return next ? {props: next.props} : {};\n },\n setOverflow: ({context, event}) => ({\n context: {\n ...context,\n overflow: {\n x: event.overflowX === true,\n y: event.overflowY === true,\n },\n },\n }),\n },\n effects: {sync: effects.sync},\n});\n\nexport {createScrollAreaMachine, scrollAreaHooks};\nexport type {\n CreateScrollAreaMachineOptions,\n ScrollAreaContext,\n ScrollAreaMachineEffects,\n ScrollAxis,\n};\n","import {defineStyles} from '../../runtime';\n\nconst scrollAreaStyles = defineStyles({definition: {\n component: 'ui.scroll-area',\n parts: {\n root: {\n base: [\n 'relative min-w-0 overflow-hidden text-surface-ink',\n 'data-disabled:opacity-60',\n ],\n variants: {\n fill: {\n true: 'flex min-h-0 flex-1 flex-col',\n false: '',\n },\n },\n defaults: {\n fill: false,\n },\n },\n viewport: {\n base: [\n 'min-h-0 min-w-0 outline-none',\n 'focus-visible:ui-focus-ring',\n ],\n variants: {\n orientation: {\n vertical: 'h-full w-full overflow-x-hidden overflow-y-auto',\n horizontal: 'h-full w-full overflow-x-auto overflow-y-hidden',\n both: 'size-full overflow-auto',\n },\n fill: {\n true: 'flex-1',\n false: '',\n },\n },\n defaults: {\n orientation: 'vertical',\n fill: false,\n },\n },\n content: {\n base: 'min-w-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: 'w-max min-w-full',\n both: 'min-w-full',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n scrollbar: {\n base: [\n 'pointer-events-none absolute z-10 rounded-scrollbar-thumb opacity-0',\n 'data-visible:pointer-events-auto data-visible:opacity-100 data-disabled:pointer-events-none',\n ],\n variants: {\n orientation: {\n vertical: 'bottom-scrollbar-inset right-scrollbar-inset top-scrollbar-inset w-scrollbar',\n horizontal: 'bottom-scrollbar-inset left-scrollbar-inset right-scrollbar-inset h-scrollbar',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n thumb: {\n base: [\n 'absolute rounded-scrollbar-thumb bg-scrollbar-thumb',\n 'hover:bg-scrollbar-thumb-hover data-dragging:bg-scrollbar-thumb-hover',\n ],\n variants: {\n orientation: {\n vertical: 'left-0 top-0 w-full',\n horizontal: 'left-0 top-0 h-full',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n corner: {\n base: [\n 'pointer-events-none absolute bottom-scrollbar-inset right-scrollbar-inset z-10 size-scrollbar rounded-scrollbar-thumb',\n 'bg-transparent opacity-0',\n 'data-visible:opacity-100',\n ],\n },\n },\n}});\n\nexport {scrollAreaStyles};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n mergeBindings,\n type BindingObject,\n type MachineSnapshot,\n resolveStyle,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport type {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {addListener, clamp, isRtl, setAttribute, setPresence} from '@client/utils';\nimport {scrollAreaSchema, type ScrollAreaOrientation, type ScrollAreaProps} from './contract';\nimport {\n createScrollAreaMachine,\n type ScrollAreaContext,\n scrollAreaHooks,\n type ScrollAxis,\n} from './machine';\nimport {scrollAreaStyles} from './styles';\n\ntype DragState = {\n axis: ScrollAxis;\n pointerId: number;\n startPointer: number;\n startScroll: number;\n trackLength: number;\n thumbLength: number;\n maxScroll: number;\n};\n\ntype ScrollAreaElements = {\n root: HTMLElement;\n viewport: HTMLElement;\n content: HTMLElement | null;\n verticalScrollbar: HTMLElement | null;\n horizontalScrollbar: HTMLElement | null;\n verticalThumb: HTMLElement | null;\n horizontalThumb: HTMLElement | null;\n corner: HTMLElement | null;\n};\n\ntype AxisGeometry = {\n trackLength: number;\n thumbLength: number;\n maxOffset: number;\n maxScroll: number;\n};\n\n/**\n * Public Alpine API for `ui.scroll-area`.\n *\n * @public\n */\ninterface UiScrollAreaApi {\n /** Whether content currently overflows the horizontal axis. */\n readonly overflowX: boolean;\n /** Whether content currently overflows the vertical axis. */\n readonly overflowY: boolean;\n /** Whether the native viewport is in an active scroll session. */\n readonly isScrolling: boolean;\n /** Whether a custom scrollbar thumb is being dragged. */\n readonly isDragging: boolean;\n}\n\ntype ScrollAreaData = AlpineMachine<ScrollAreaContext, ScrollAreaProps, typeof scrollAreaHooks> & UiScrollAreaApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n viewport(el: HTMLElement): BindingObject;\n scrollbar(el: HTMLElement): BindingObject;\n thumb(el: HTMLElement): BindingObject;\n corner(el: HTMLElement): BindingObject;\n};\n\nconst MIN_THUMB_SIZE = 18;\nconst SCROLL_CHROME_FADE_DELAY = 1000;\n\nlet rtlScrollType: 'negative' | 'reverse' | 'default' | null = null;\n\nconst includesAxis = (orientation: ScrollAreaOrientation, axis: ScrollAxis): boolean => (\n orientation === 'both' || (orientation === 'horizontal' && axis === 'x') || (orientation === 'vertical' && axis === 'y')\n);\n\nconst detectRtlScrollType = (): 'negative' | 'reverse' | 'default' => {\n if (rtlScrollType) return rtlScrollType;\n\n const outer = document.createElement('div');\n const inner = document.createElement('div');\n outer.dir = 'rtl';\n outer.style.cssText = 'position:absolute;left:-9999px;width:4px;height:1px;overflow:scroll;';\n inner.style.cssText = 'width:8px;height:1px;';\n outer.append(inner);\n document.body.append(outer);\n\n outer.scrollLeft = 1;\n if (outer.scrollLeft === 0) rtlScrollType = 'negative';\n else {\n outer.scrollLeft = 0;\n rtlScrollType = outer.scrollLeft === 0 ? 'reverse' : 'default';\n }\n\n outer.remove();\n return rtlScrollType;\n};\n\nconst horizontalScrollPosition = (viewport: HTMLElement): number => {\n const max = Math.max(0, viewport.scrollWidth - viewport.clientWidth);\n if (!isRtl({el: viewport})) return viewport.scrollLeft;\n\n const type = detectRtlScrollType();\n if (type === 'negative') return -viewport.scrollLeft;\n if (type === 'reverse') return max - viewport.scrollLeft;\n return viewport.scrollLeft;\n};\n\nconst setHorizontalScrollPosition = (viewport: HTMLElement, value: number): void => {\n const max = Math.max(0, viewport.scrollWidth - viewport.clientWidth);\n const next = clamp(value, 0, max);\n if (!isRtl({el: viewport})) {\n viewport.scrollLeft = next;\n return;\n }\n\n const type = detectRtlScrollType();\n if (type === 'negative') viewport.scrollLeft = -next;\n else if (type === 'reverse') viewport.scrollLeft = max - next;\n else viewport.scrollLeft = next;\n};\n\nconst axisFromOrientation = (el: HTMLElement): ScrollAxis => (\n el.dataset.orientation === 'horizontal' ? 'x' : 'y'\n);\n\nconst isHTMLElement = (value: Element | null): value is HTMLElement => value instanceof HTMLElement;\n\nconst queryDirectPart = (root: HTMLElement, selector: string): HTMLElement | null => {\n const el = root.querySelector(`:scope > ${selector}`);\n return isHTMLElement(el) ? el : null;\n};\n\nconst UiScrollArea = (): TrellisAlpineComponent<ScrollAreaData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let cleanup: CleanupManager;\n let resizeObserver: ResizeObserver | null = null;\n let mutationObserver: MutationObserver | null = null;\n let measureFrame = 0;\n let positionFrame = 0;\n let fadeTimer = 0;\n let dragging: DragState | null = null;\n let verticalGeometry: AxisGeometry | null = null;\n let horizontalGeometry: AxisGeometry | null = null;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Scroll Area has not been initialized.');\n return rootEl;\n };\n const currentSnapshot = (): MachineSnapshot<ScrollAreaContext, ScrollAreaProps> => (\n bridge.getCommittedSnapshot()\n );\n const currentProps = (): Readonly<ScrollAreaProps> => currentSnapshot().props;\n const hasTag = (tag: string): boolean => currentSnapshot().tags.includes(tag);\n const elements = (): ScrollAreaElements => {\n const rootElement = root();\n const viewport = queryDirectPart(rootElement, '[data-ui-scroll-area-viewport]') ?? rootElement;\n return {\n root: rootElement,\n viewport,\n content: queryDirectPart(viewport, '[data-ui-scroll-area-content]'),\n verticalScrollbar: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"vertical\"]'),\n horizontalScrollbar: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"horizontal\"]'),\n verticalThumb: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"vertical\"] > [data-ui-scroll-area-thumb][data-orientation=\"vertical\"]'),\n horizontalThumb: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"horizontal\"] > [data-ui-scroll-area-thumb][data-orientation=\"horizontal\"]'),\n corner: queryDirectPart(rootElement, '[data-ui-scroll-area-corner]'),\n };\n };\n\n const clearFadeTimer = (): void => {\n if (!fadeTimer) return;\n window.clearTimeout(fadeTimer);\n fadeTimer = 0;\n };\n const startFadeTimer = (): void => {\n clearFadeTimer();\n fadeTimer = window.setTimeout(() => {\n fadeTimer = 0;\n bridge.send('SCROLL_SETTLED');\n }, SCROLL_CHROME_FADE_DELAY);\n };\n\n const updateThumbPositions = (parts = elements()): void => {\n const {viewport} = parts;\n if (parts.verticalThumb && verticalGeometry) {\n const offset = verticalGeometry.maxOffset * clamp(viewport.scrollTop / verticalGeometry.maxScroll, 0, 1);\n parts.verticalThumb.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n if (parts.horizontalThumb && horizontalGeometry) {\n const offset = horizontalGeometry.maxOffset * clamp(\n horizontalScrollPosition(viewport) / horizontalGeometry.maxScroll,\n 0,\n 1,\n );\n parts.horizontalThumb.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n };\n\n const updateGeometry = (parts: ScrollAreaElements): void => {\n const {viewport} = parts;\n const updateAxis = (\n axis: ScrollAxis,\n scrollbar: HTMLElement | null,\n thumb: HTMLElement | null,\n overflow: boolean,\n ): AxisGeometry | null => {\n if (!scrollbar || !thumb || !overflow) {\n if (thumb) {\n thumb.style.width = '';\n thumb.style.height = '';\n thumb.style.transform = '';\n }\n return null;\n }\n\n const trackLength = axis === 'y' ? scrollbar.clientHeight : scrollbar.clientWidth;\n const viewportLength = axis === 'y' ? viewport.clientHeight : viewport.clientWidth;\n const scrollLength = axis === 'y' ? viewport.scrollHeight : viewport.scrollWidth;\n const maxScroll = Math.max(1, scrollLength - viewportLength);\n const thumbLength = Math.min(\n trackLength,\n Math.max(MIN_THUMB_SIZE, (viewportLength / scrollLength) * trackLength),\n );\n const maxOffset = Math.max(0, trackLength - thumbLength);\n\n if (axis === 'y') {\n thumb.style.height = `${thumbLength}px`;\n thumb.style.width = '';\n } else {\n thumb.style.width = `${thumbLength}px`;\n thumb.style.height = '';\n }\n return {trackLength, thumbLength, maxOffset, maxScroll};\n };\n\n const {overflow} = currentSnapshot().context;\n verticalGeometry = updateAxis('y', parts.verticalScrollbar, parts.verticalThumb, overflow.y);\n horizontalGeometry = updateAxis('x', parts.horizontalScrollbar, parts.horizontalThumb, overflow.x);\n updateThumbPositions(parts);\n };\n\n const updateVisibility = (parts: ScrollAreaElements): void => {\n const props = currentProps();\n const {overflow} = currentSnapshot().context;\n const interacting = hasTag('hovered') || hasTag('focused') || hasTag('scrolling') || hasTag('dragging');\n const visibleFor = (axisOverflows: boolean): boolean => {\n if (!axisOverflows) return false;\n if (props.type === 'always') return true;\n if (props.type === 'scroll') return hasTag('scrolling') || hasTag('dragging');\n return interacting;\n };\n const verticalVisible = visibleFor(overflow.y);\n const horizontalVisible = visibleFor(overflow.x);\n\n [parts.verticalScrollbar, parts.verticalThumb].forEach((el) => {\n if (el) setPresence({el, attr: 'data-visible', present: verticalVisible});\n });\n [parts.horizontalScrollbar, parts.horizontalThumb].forEach((el) => {\n if (el) setPresence({el, attr: 'data-visible', present: horizontalVisible});\n });\n [parts.verticalScrollbar, parts.horizontalScrollbar].forEach((el) => {\n if (el) setPresence({el, attr: 'data-disabled', present: props.disabled});\n });\n if (parts.verticalThumb) setPresence({el: parts.verticalThumb, attr: 'data-dragging', present: hasTag('dragging-y')});\n if (parts.horizontalThumb) setPresence({el: parts.horizontalThumb, attr: 'data-dragging', present: hasTag('dragging-x')});\n if (parts.corner) setPresence({el: parts.corner, attr: 'data-visible', present: verticalVisible && horizontalVisible});\n };\n\n const releaseDrag = (): void => {\n if (!dragging) return;\n const active = dragging;\n dragging = null;\n const parts = elements();\n const thumb = active.axis === 'y' ? parts.verticalThumb : parts.horizontalThumb;\n try {\n thumb?.releasePointerCapture?.(active.pointerId);\n } catch {\n // Pointer capture cleanup is best-effort after interrupted gestures.\n }\n bridge.send({type: 'DRAG_ENDED', axis: active.axis});\n };\n\n const syncDom = (): void => {\n const parts = elements();\n const props = currentProps();\n const {overflow} = currentSnapshot().context;\n if (props.disabled && dragging) releaseDrag();\n\n setPresence({el: parts.root, attr: 'data-overflow-x', present: overflow.x});\n setPresence({el: parts.root, attr: 'data-overflow-y', present: overflow.y});\n setPresence({el: parts.root, attr: 'data-scrolling', present: hasTag('scrolling')});\n setPresence({el: parts.root, attr: 'data-dragging', present: hasTag('dragging')});\n setPresence({el: parts.root, attr: 'data-disabled', present: props.disabled});\n setAttribute({el: parts.viewport, attr: 'data-orientation', value: props.orientation});\n setPresence({el: parts.viewport, attr: 'data-hide-native', present: props.hideNative});\n updateGeometry(parts);\n updateVisibility(parts);\n };\n\n const scheduleMeasure = (): void => {\n if (measureFrame) return;\n measureFrame = requestAnimationFrame(() => {\n measureFrame = 0;\n const parts = elements();\n const props = currentProps();\n const overflowX = includesAxis(props.orientation, 'x') && parts.viewport.scrollWidth > parts.viewport.clientWidth + 1;\n const overflowY = includesAxis(props.orientation, 'y') && parts.viewport.scrollHeight > parts.viewport.clientHeight + 1;\n const current = currentSnapshot().context.overflow;\n if (overflowX !== current.x || overflowY !== current.y) {\n bridge.send({type: 'MEASURED', overflowX, overflowY});\n } else {\n updateGeometry(parts);\n updateVisibility(parts);\n }\n });\n };\n const schedulePosition = (): void => {\n if (positionFrame) return;\n positionFrame = requestAnimationFrame(() => {\n positionFrame = 0;\n updateThumbPositions();\n });\n };\n\n const onScroll = (): void => {\n schedulePosition();\n if (!hasTag('scrolling')) bridge.send('SCROLLED');\n if ((currentSnapshot().context.overflow.y && !verticalGeometry)\n || (currentSnapshot().context.overflow.x && !horizontalGeometry)) scheduleMeasure();\n startFadeTimer();\n };\n\n const startDrag = (event: PointerEvent, axis: ScrollAxis): void => {\n if (currentProps().disabled) return;\n const parts = elements();\n const viewport = parts.viewport;\n const scrollbar = axis === 'y' ? parts.verticalScrollbar : parts.horizontalScrollbar;\n const thumb = axis === 'y' ? parts.verticalThumb : parts.horizontalThumb;\n const overflow = axis === 'y' ? currentSnapshot().context.overflow.y : currentSnapshot().context.overflow.x;\n if (!scrollbar || !thumb || !overflow) return;\n\n const trackLength = axis === 'y' ? scrollbar.clientHeight : scrollbar.clientWidth;\n const thumbLength = axis === 'y' ? thumb.offsetHeight : thumb.offsetWidth;\n const maxScroll = axis === 'y'\n ? Math.max(0, viewport.scrollHeight - viewport.clientHeight)\n : Math.max(0, viewport.scrollWidth - viewport.clientWidth);\n dragging = {\n axis,\n pointerId: event.pointerId,\n startPointer: axis === 'y' ? event.clientY : event.clientX,\n startScroll: axis === 'y' ? viewport.scrollTop : horizontalScrollPosition(viewport),\n trackLength,\n thumbLength,\n maxScroll,\n };\n try {\n thumb.setPointerCapture?.(event.pointerId);\n } catch {\n dragging = null;\n return;\n }\n clearFadeTimer();\n bridge.send({type: 'DRAG_STARTED', axis});\n };\n\n const moveDrag = (event: PointerEvent): void => {\n if (!dragging || dragging.pointerId !== event.pointerId) return;\n event.preventDefault();\n const {viewport} = elements();\n const pointer = dragging.axis === 'y' ? event.clientY : event.clientX;\n const delta = pointer - dragging.startPointer;\n const maxOffset = Math.max(1, dragging.trackLength - dragging.thumbLength);\n const nextScroll = dragging.startScroll + (delta / maxOffset) * dragging.maxScroll;\n if (dragging.axis === 'y') viewport.scrollTop = clamp(nextScroll, 0, dragging.maxScroll);\n else setHorizontalScrollPosition(viewport, nextScroll);\n schedulePosition();\n };\n\n const endDrag = (event: PointerEvent): void => {\n if (!dragging || dragging.pointerId !== event.pointerId) return;\n releaseDrag();\n startFadeTimer();\n };\n\n const bridge = createAlpineMachine({\n schema: scrollAreaSchema,\n hooks: scrollAreaHooks,\n createMachine: ({props}) => createScrollAreaMachine({\n props,\n context: {overflow: {x: false, y: false}},\n effects: {\n sync: syncDom,\n },\n }),\n });\n\n let component!: TrellisAlpineComponent<ScrollAreaData>;\n component = {\n ...bridge,\n get overflowX(): boolean {\n return this.snapshot.current?.context.overflow.x ?? false;\n },\n get overflowY(): boolean {\n return this.snapshot.current?.context.overflow.y ?? false;\n },\n get isScrolling(): boolean {\n return this.snapshot.current?.tags.includes('scrolling') ?? false;\n },\n get isDragging(): boolean {\n return this.snapshot.current?.tags.includes('dragging') ?? false;\n },\n init(): void {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n const parts = elements();\n resizeObserver = new ResizeObserver(scheduleMeasure);\n resizeObserver.observe(parts.viewport);\n if (parts.content) resizeObserver.observe(parts.content);\n mutationObserver = new MutationObserver(scheduleMeasure);\n if (parts.content) mutationObserver.observe(parts.content, {childList: true, subtree: true, characterData: true});\n\n addListener({target: parts.viewport, event: 'scroll', handler: onScroll, cleanup, options: {passive: true}});\n addListener({target: document, event: 'pointermove', handler: (event) => moveDrag(event as PointerEvent), cleanup});\n addListener({target: document, event: 'pointerup', handler: (event) => endDrag(event as PointerEvent), cleanup});\n addListener({target: document, event: 'pointercancel', handler: (event) => endDrag(event as PointerEvent), cleanup});\n scheduleMeasure();\n },\n destroy(): void {\n releaseDrag();\n clearFadeTimer();\n if (measureFrame) cancelAnimationFrame(measureFrame);\n if (positionFrame) cancelAnimationFrame(positionFrame);\n measureFrame = 0;\n positionFrame = 0;\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n resizeObserver = null;\n mutationObserver = null;\n bridge.disconnect();\n rootEl = null;\n },\n get root(): BindingObject {\n const props = this.snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.root, props, className: props.class}),\n {\n 'data-ui-scroll-area': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-type': () => currentProps().type,\n ':data-fill': () => currentProps().fill ? '' : undefined,\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n '@pointerenter': () => bridge.send('POINTER_ENTERED'),\n '@pointerleave': () => bridge.send('POINTER_LEFT'),\n '@focusin': () => bridge.send('FOCUS_ENTERED'),\n '@focusout': (event: FocusEvent) => {\n if (!(event.relatedTarget instanceof Node) || !root().contains(event.relatedTarget)) {\n bridge.send('FOCUS_LEFT');\n }\n },\n },\n ]});\n },\n viewport(el: HTMLElement): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({\n part: scrollAreaStyles.parts.viewport,\n props: {orientation: currentProps().orientation, fill: currentProps().fill},\n className: el.dataset.class,\n }),\n {\n tabindex: '0',\n 'data-ui-scroll-area-viewport': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-hide-native': () => currentProps().hideNative ? '' : undefined,\n },\n ]});\n },\n scrollbar(el: HTMLElement): BindingObject {\n const orientation = axisFromOrientation(el) === 'x' ? 'horizontal' : 'vertical';\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.scrollbar, props: {orientation}, className: el.dataset.class}),\n {\n 'data-ui-scroll-area-scrollbar': '',\n 'aria-hidden': 'true',\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n },\n ]});\n },\n thumb(el: HTMLElement): BindingObject {\n const axis = axisFromOrientation(el);\n const orientation = axis === 'x' ? 'horizontal' : 'vertical';\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.thumb, props: {orientation}, className: el.dataset.class}),\n {\n 'data-ui-scroll-area-thumb': '',\n 'aria-hidden': 'true',\n '@pointerdown.prevent': (event: PointerEvent) => startDrag(event, axis),\n ':data-dragging': () => hasTag(axis === 'x' ? 'dragging-x' : 'dragging-y') ? '' : undefined,\n },\n ]});\n },\n corner(el: HTMLElement): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.corner, className: el.dataset.class}),\n {'data-ui-scroll-area-corner': '', 'aria-hidden': 'true'},\n ]});\n },\n };\n\n return component;\n};\n\nconst registerScrollArea = defineAlpineData('UiScrollArea', UiScrollArea);\n\nexport {registerScrollArea, UiScrollArea};\nexport type {ScrollAreaData, ScrollAreaElements, UiScrollAreaApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerScrollArea as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerScrollArea = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerScrollArea};\nexport default registerScrollArea;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as e,l as t,n}from"./codecs-Cb1ns_47.js";import{t as r}from"./capability-resizable-
|
|
2
|
-
//# sourceMappingURL=entry.generated-
|
|
1
|
+
import{f as e,l as t,n}from"./codecs-Cb1ns_47.js";import{t as r}from"./capability-resizable-BQgJCSHn.js";var i=[`auto`,`fixed`],a=[`compact`,`default`,`comfortable`],o=[`ghost`,`surface`],s=[`none`,`row`,`grid`],c=[`auto`,`full`],l=[`start`,`center`,`end`],u=[`top`,`middle`,`bottom`,`baseline`],d=[`none`,`ascending`,`descending`,`other`],f=[`col`,`colgroup`],p=[`row`,`rowgroup`],m=[`div`,`form`],h={layout:t(i,`auto`),density:t(a,`default`),variant:t(o,`ghost`),border:t(s,`none`),flush:n,zebra:n,hover:n.default(!0),stickyHeader:n,nowrap:n.default(!0),width:t(c,`full`),class:e,tableClass:e},g={side:t([`top`,`bottom`],`bottom`),class:e},_={class:e},v={selected:n,current:n,disabled:n,interactive:n,class:e},y={align:t(l,`start`),valign:t(u,`middle`),key:e,target:e,width:e,resizable:n,minWidth:e.default(`4rem`),maxWidth:e,sortable:n,sort:t(d,`none`),abbr:e,scope:t(f,`col`),class:e,contentClass:e,resizeHandleClass:e},b={as:t(m,`div`),id:e,class:e},x={align:t(l,`start`),valign:t(u,`middle`),scope:t(p,`row`),class:e},S={align:t(l,`start`),valign:t(u,`middle`),class:e},C={colspan:e.default(`1`),class:e,cellClass:e},w=new WeakSet,T=e=>{w.has(e)||(w.add(e),r(e))};export{C as _,a,h as b,p as c,o as d,c as f,y as g,b as h,f as i,d as l,S as m,l as n,m as o,g as p,s as r,i as s,T as t,u,x as v,_ as x,v as y};
|
|
2
|
+
//# sourceMappingURL=entry.generated-Da6pELhK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.generated-
|
|
1
|
+
{"version":3,"file":"entry.generated-Da6pELhK.js","names":[],"sources":["../../../../../../../../client/src/components/table/contract.ts","../../../../../../../../client/src/components/table/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\n\nconst TABLE_LAYOUTS = ['auto', 'fixed'] as const;\nconst TABLE_DENSITIES = ['compact', 'default', 'comfortable'] as const;\nconst TABLE_VARIANTS = ['ghost', 'surface'] as const;\nconst TABLE_BORDERS = ['none', 'row', 'grid'] as const;\nconst TABLE_WIDTHS = ['auto', 'full'] as const;\nconst TABLE_ALIGNS = ['start', 'center', 'end'] as const;\nconst TABLE_VALIGNS = ['top', 'middle', 'bottom', 'baseline'] as const;\nconst TABLE_SORTS = ['none', 'ascending', 'descending', 'other'] as const;\nconst TABLE_COLUMN_SCOPES = ['col', 'colgroup'] as const;\nconst TABLE_ROW_HEADER_SCOPES = ['row', 'rowgroup'] as const;\nconst TABLE_FILTER_AS_VALUES = ['div', 'form'] as const;\n\nconst tableSchema = {\n layout: oneOf(TABLE_LAYOUTS, 'auto'),\n density: oneOf(TABLE_DENSITIES, 'default'),\n variant: oneOf(TABLE_VARIANTS, 'ghost'),\n border: oneOf(TABLE_BORDERS, 'none'),\n flush: bool,\n zebra: bool,\n hover: bool.default(true),\n stickyHeader: bool,\n nowrap: bool.default(true),\n width: oneOf(TABLE_WIDTHS, 'full'),\n class: string,\n tableClass: string,\n};\n\nconst tableCaptionSchema = {\n side: oneOf(['top', 'bottom'] as const, 'bottom'),\n class: string,\n};\n\nconst tableSectionSchema = {\n class: string,\n};\n\nconst tableRowSchema = {\n selected: bool,\n current: bool,\n disabled: bool,\n interactive: bool,\n class: string,\n};\n\nconst tableColumnSchema = {\n align: oneOf(TABLE_ALIGNS, 'start'),\n valign: oneOf(TABLE_VALIGNS, 'middle'),\n key: string,\n target: string,\n width: string,\n resizable: bool,\n minWidth: string.default('4rem'),\n maxWidth: string,\n sortable: bool,\n sort: oneOf(TABLE_SORTS, 'none'),\n abbr: string,\n scope: oneOf(TABLE_COLUMN_SCOPES, 'col'),\n class: string,\n contentClass: string,\n resizeHandleClass: string,\n};\n\nconst tableColumnFilterSchema = {\n as: oneOf(TABLE_FILTER_AS_VALUES, 'div'),\n id: string,\n class: string,\n};\n\nconst tableRowHeaderSchema = {\n align: oneOf(TABLE_ALIGNS, 'start'),\n valign: oneOf(TABLE_VALIGNS, 'middle'),\n scope: oneOf(TABLE_ROW_HEADER_SCOPES, 'row'),\n class: string,\n};\n\nconst tableCellSchema = {\n align: oneOf(TABLE_ALIGNS, 'start'),\n valign: oneOf(TABLE_VALIGNS, 'middle'),\n class: string,\n};\n\nconst tableEmptySchema = {\n colspan: string.default('1'),\n class: string,\n cellClass: string,\n};\n\ntype TableLayout = typeof TABLE_LAYOUTS[number];\ntype TableDensity = typeof TABLE_DENSITIES[number];\ntype TableVariant = typeof TABLE_VARIANTS[number];\ntype TableBorder = typeof TABLE_BORDERS[number];\ntype TableWidth = typeof TABLE_WIDTHS[number];\ntype TableAlign = typeof TABLE_ALIGNS[number];\ntype TableValign = typeof TABLE_VALIGNS[number];\ntype TableSort = typeof TABLE_SORTS[number];\ntype TableColumnScope = typeof TABLE_COLUMN_SCOPES[number];\ntype TableRowHeaderScope = typeof TABLE_ROW_HEADER_SCOPES[number];\ntype TableFilterAs = typeof TABLE_FILTER_AS_VALUES[number];\ntype TableProps = SchemaToProps<typeof tableSchema>;\ntype TableCaptionProps = SchemaToProps<typeof tableCaptionSchema>;\ntype TableSectionProps = SchemaToProps<typeof tableSectionSchema>;\ntype TableRowProps = SchemaToProps<typeof tableRowSchema>;\ntype TableColumnProps = SchemaToProps<typeof tableColumnSchema>;\ntype TableColumnFilterProps = SchemaToProps<typeof tableColumnFilterSchema>;\ntype TableRowHeaderProps = SchemaToProps<typeof tableRowHeaderSchema>;\ntype TableCellProps = SchemaToProps<typeof tableCellSchema>;\ntype TableEmptyProps = SchemaToProps<typeof tableEmptySchema>;\n\nexport {\n TABLE_ALIGNS,\n TABLE_BORDERS,\n TABLE_COLUMN_SCOPES,\n TABLE_DENSITIES,\n TABLE_FILTER_AS_VALUES,\n TABLE_LAYOUTS,\n TABLE_ROW_HEADER_SCOPES,\n TABLE_SORTS,\n TABLE_VALIGNS,\n TABLE_VARIANTS,\n TABLE_WIDTHS,\n tableCaptionSchema,\n tableCellSchema,\n tableColumnFilterSchema,\n tableColumnSchema,\n tableEmptySchema,\n tableRowHeaderSchema,\n tableRowSchema,\n tableSchema,\n tableSectionSchema,\n};\nexport type {\n TableAlign,\n TableBorder,\n TableCaptionProps,\n TableCellProps,\n TableColumnFilterProps,\n TableColumnProps,\n TableColumnScope,\n TableDensity,\n TableEmptyProps,\n TableFilterAs,\n TableLayout,\n TableProps,\n TableRowHeaderProps,\n TableRowHeaderScope,\n TableRowProps,\n TableSectionProps,\n TableSort,\n TableValign,\n TableVariant,\n TableWidth,\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';\nimport {registerResizableCapability} from '../../capabilities/resizable';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerTable = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n\n};\n\nexport {registerTable};\nexport default registerTable;\nexport * from './index';\n"],"mappings":"yGAEA,IAAM,EAAgB,CAAC,OAAQ,OAAO,EAChC,EAAkB,CAAC,UAAW,UAAW,aAAa,EACtD,EAAiB,CAAC,QAAS,SAAS,EACpC,EAAgB,CAAC,OAAQ,MAAO,MAAM,EACtC,EAAe,CAAC,OAAQ,MAAM,EAC9B,EAAe,CAAC,QAAS,SAAU,KAAK,EACxC,EAAgB,CAAC,MAAO,SAAU,SAAU,UAAU,EACtD,EAAc,CAAC,OAAQ,YAAa,aAAc,OAAO,EACzD,EAAsB,CAAC,MAAO,UAAU,EACxC,EAA0B,CAAC,MAAO,UAAU,EAC5C,EAAyB,CAAC,MAAO,MAAM,EAEvC,EAAc,CAChB,OAAQ,EAAM,EAAe,MAAM,EACnC,QAAS,EAAM,EAAiB,SAAS,EACzC,QAAS,EAAM,EAAgB,OAAO,EACtC,OAAQ,EAAM,EAAe,MAAM,EACnC,MAAO,EACP,MAAO,EACP,MAAO,EAAK,QAAQ,EAAI,EACxB,aAAc,EACd,OAAQ,EAAK,QAAQ,EAAI,EACzB,MAAO,EAAM,EAAc,MAAM,EACjC,MAAO,EACP,WAAY,CAChB,EAEM,EAAqB,CACvB,KAAM,EAAM,CAAC,MAAO,QAAQ,EAAY,QAAQ,EAChD,MAAO,CACX,EAEM,EAAqB,CACvB,MAAO,CACX,EAEM,EAAiB,CACnB,SAAU,EACV,QAAS,EACT,SAAU,EACV,YAAa,EACb,MAAO,CACX,EAEM,EAAoB,CACtB,MAAO,EAAM,EAAc,OAAO,EAClC,OAAQ,EAAM,EAAe,QAAQ,EACrC,IAAK,EACL,OAAQ,EACR,MAAO,EACP,UAAW,EACX,SAAU,EAAO,QAAQ,MAAM,EAC/B,SAAU,EACV,SAAU,EACV,KAAM,EAAM,EAAa,MAAM,EAC/B,KAAM,EACN,MAAO,EAAM,EAAqB,KAAK,EACvC,MAAO,EACP,aAAc,EACd,kBAAmB,CACvB,EAEM,EAA0B,CAC5B,GAAI,EAAM,EAAwB,KAAK,EACvC,GAAI,EACJ,MAAO,CACX,EAEM,EAAuB,CACzB,MAAO,EAAM,EAAc,OAAO,EAClC,OAAQ,EAAM,EAAe,QAAQ,EACrC,MAAO,EAAM,EAAyB,KAAK,EAC3C,MAAO,CACX,EAEM,EAAkB,CACpB,MAAO,EAAM,EAAc,OAAO,EAClC,OAAQ,EAAM,EAAe,QAAQ,EACrC,MAAO,CACX,EAEM,EAAmB,CACrB,QAAS,EAAO,QAAQ,GAAG,EAC3B,MAAO,EACP,UAAW,CACf,EClFM,EAAa,IAAI,QAEjB,EAAiB,GAAqC,CACpD,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAC7B,EAA4B,CAAc,EAE9C"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e,r as t,t as n}from"./dom-DiTFTWeR.js";import{t as r}from"./capability-motion-DAUyPPWa.js";import{c as i,f as a,l as o,n as s,u as c}from"./codecs-Cb1ns_47.js";import{i as l,t as ee}from"./alpine-machine-9HwatUrm.js";import{n as u,t as te}from"./alpine-data-Dvc_bXq6.js";import{n as d}from"./anchored-popover-CSBqS_MK.js";import{t as f}from"./collection-navigation-CfTZUJrL.js";import{n as p,t as m}from"./styles-TfvwVPGw.js";import{t as h}from"./merge-bindings-C8ewA_FD.js";import{t as g}from"./machine-DQfpKM3w.js";import{t as ne}from"./dismissable-layer-BROE-Ln2.js";import{D as _,I as v,L as y,N as b,P as x,j as S,t as C}from"./common-De1R7Xh6.js";import{t as w}from"./controlled-open-Hy4-OT-6.js";var T={auto:``,"3xs":`w-[var(--container-3xs)]`,"2xs":`w-[var(--container-2xs)]`,xs:`w-[var(--container-xs)]`},E=e=>`min-w-[min(var(${e}),var(--ui-popover-available-width,var(${e})))]`,D={auto:E(`--spacing-menu-min-width`),"3xs":E(`--container-3xs`),"2xs":E(`--container-2xs`),xs:E(`--container-xs`)},O={auto:`p-popover-padding`,..._},re=m({definition:{component:`ui.menu`,parts:{menu:{base:[v,`auto-rows-min content-start max-w-[var(--ui-popover-available-width,none)] gap-1 overflow-hidden rounded-overlay-sm`],variants:{width:T,minWidth:D,padding:O},defaults:{width:`auto`,minWidth:`auto`,padding:`auto`}},item:{base:[b],variants:{variant:{default:``,subtle:``,filled:``,ghost:``},color:{neutral:``,accent:``,success:``,warning:``,danger:``}},defaults:{variant:`default`,color:`neutral`}},itemLabel:{base:`min-w-0 flex-1 truncate`},itemMeta:{base:x},itemIcon:{base:S,variants:{position:{leading:``,trailing:`ml-auto`}},defaults:{position:`leading`}},submenu:{base:`contents`},submenuPanel:{base:``},group:{base:`grid auto-rows-min content-start gap-1`},label:{base:`px-menu-item-padding-inline py-1 font-label text-label [font-weight:var(--font-weight-label)]`},separatorRoot:{variants:{orientation:{vertical:`self-stretch self-center`,horizontal:`-mx-popover my-popover h-[var(--border-width-edge-separator)]`}},defaults:{orientation:`horizontal`}},separatorRule:{variants:{orientation:{vertical:`h-full w-[var(--border-width-edge-separator)] border-0`,horizontal:`h-[var(--border-width-edge-separator)] w-full border-0`}},defaults:{orientation:`horizontal`}}}}}),k=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),ie=({origin:e,panel:t})=>{let n=t.left>=e.x?t.left:t.right,r={x:n,y:t.top},i={x:n,y:t.bottom},a=Math.min(e.x,n),o=Math.max(e.x,n);return{contains(t){if(t.x<=a||t.x>=o)return!1;let n=k(t,e,r),s=k(t,r,i),c=k(t,i,e);return!((n<0||s<0||c<0)&&(n>0||s>0||c>0))}}},A=y,j=C,M={side:o(A,`bottom`),align:o(j,`start`),offset:i.clamp(-100,100).default(0),gap:i.clamp(0,50).default(4),open:s,disabled:s,class:a},ae=[l({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),l({name:`closing`,state:`closing`,project:()=>({}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],N=w(),P=e=>e.focus===`first`?`first`:`menu`,F=e=>e.restoreFocus===!0,I=e=>Array.isArray(e.path)?e.path.filter(e=>typeof e==`string`):[],oe=({props:e,effects:t})=>g({initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:[{target:`opening`,guard:N.shouldOpen,reduce:`replaceProps`,effects:[`syncProps`,`prepareOpen`]},{reduce:`replaceProps`,effects:`syncProps`}]}},opening:{tags:[`visible`,`expanded`,`interactive`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,reduce:`clearSubmenus`,effects:[`syncSubmenus`,`prepareClose`]},TOGGLE:{target:`closing`,reduce:`clearSubmenus`,effects:[`syncSubmenus`,`prepareClose`]},SUBMENU_PATH_CHANGED:{reduce:`replaceSubmenuPath`,effects:`syncSubmenus`},PROPS_CHANGED:[{target:`closing`,guard:N.shouldClose,reduce:`replacePropsAndClearSubmenus`,effects:[`syncSubmenus`,`prepareClose`,`syncProps`]},{reduce:`replaceProps`,effects:`syncProps`}]}},open:{tags:[`visible`,`expanded`,`interactive`,`open`],on:{CLOSE:{target:`closing`,reduce:`clearSubmenus`,effects:[`syncSubmenus`,`prepareClose`]},TOGGLE:{target:`closing`,reduce:`clearSubmenus`,effects:[`syncSubmenus`,`prepareClose`]},SUBMENU_PATH_CHANGED:{reduce:`replaceSubmenuPath`,effects:`syncSubmenus`},PROPS_CHANGED:[{target:`closing`,guard:N.shouldClose,reduce:`replacePropsAndClearSubmenus`,effects:[`syncSubmenus`,`prepareClose`,`syncProps`]},{reduce:`replaceProps`,effects:`syncProps`}]}},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`},PROPS_CHANGED:[{target:`opening`,guard:N.shouldOpen,reduce:`replaceProps`,effects:[`syncProps`,`prepareOpen`]},{reduce:`replaceProps`,effects:`syncProps`}]}}}},{context:{openSubmenuIds:[]},props:e,reducers:{replaceProps:N.replace,replaceSubmenuPath:e=>({context:{...e.context,openSubmenuIds:I(e.event)}}),clearSubmenus:e=>({context:{...e.context,openSubmenuIds:[]}}),replacePropsAndClearSubmenus:e=>{let t=N.replace(e);return t?{...t,context:{...e.context,openSubmenuIds:[]}}:void 0}},guards:{canOpen:({props:e})=>!e.disabled},effects:{prepareOpen:({event:e})=>t.prepareOpen(P(e)),finishOpen:t.finishOpen,prepareClose:({event:e})=>t.prepareClose(F(e),e.type!==`PROPS_CHANGED`),finishClose:t.finishClose,syncProps:t.syncProps,syncSubmenus:({context:e})=>t.syncSubmenus(e.openSubmenuIds)}}),se=m({definition:{component:`ui.dropdown`,parts:{root:{base:`contents`}}}}),L=new Set([`BUTTON`,`DETAILS`,`EMBED`,`IFRAME`,`INPUT`,`LABEL`,`OBJECT`,`SELECT`,`SUMMARY`,`TEXTAREA`]),R=new Set([`button`,`checkbox`,`combobox`,`gridcell`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`scrollbar`,`searchbox`,`slider`,`spinbutton`,`switch`,`tab`,`textbox`,`treeitem`]),z=e=>{let t=e.tagName,n=e.getAttribute(`role`)?.trim().toLowerCase().split(/\s+/)??[];return L.has(t)||(t===`A`||t===`AREA`)&&e.hasAttribute(`href`)||(t===`AUDIO`||t===`VIDEO`)&&e.hasAttribute(`controls`)||t===`IMG`&&e.hasAttribute(`usemap`)||e.hasAttribute(`tabindex`)||e.isContentEditable||e.hasAttribute(`data-ui-interactive`)||n.some(e=>R.has(e))},B=e=>{let t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=[],r=t.nextNode();for(;r;){let i=r.parentElement,a=i?.closest(`[aria-hidden="true"], [hidden], script, style, template`);i&&(!a||!e.contains(a))&&n.push(r.textContent??``),r=t.nextNode()}return n.join(` `).replace(/\s+/g,` `).trim()},ce=e=>{let t=e.querySelector(`:scope > [data-ui-submenu-trigger]`),n=e.querySelector(`:scope > [data-ui-menu-submenu-panel]`);if(!t||!n)throw Error(`Menu submenu requires a trigger and nested menu panel.`);let r=Array.from(e.children);if(r.length!==2||r[0]!==t||r[1]!==n)throw Error(`Menu submenu trigger content produced invalid button structure; nested interactive content is not allowed.`);let i=e.dataset.uiSubmenuTriggerSource;if(!i||i===`missing`)throw Error(`Menu submenu requires heading or a trigger slot.`);if(i===`conflict`)throw Error(`Menu submenu accepts heading or a trigger slot, not both.`);let a=t.querySelector(`:scope > [data-ui-submenu-trigger-content]`);if(!a)throw Error(`Menu submenu requires an owned trigger-content wrapper.`);if(Array.from(a.querySelectorAll(`*`)).some(z))throw Error(`Menu submenu trigger content must not contain interactive or focusable descendants.`);if(!(t.dataset.textValue?.trim()??``)&&!B(a))throw Error(`Menu submenu trigger content requires accessible text or text_value.`);return{trigger:t,panel:n}},le=0,V=()=>{let r=null,i=!1,a=!0,o=``,s=``,l=null,u=null,m=null,g=new Map,_=null,v=!1,y=null,b,x=()=>{if(!r)throw Error(`Dropdown has not been initialized.`);return r},S=()=>{let e=Array.from(x().children).find(e=>e instanceof HTMLElement&&!e.matches(`[data-ui-menu]`));if(!(e instanceof HTMLElement))throw Error(`Dropdown requires a trigger element before the menu.`);return e},C=()=>{let e=Array.from(x().children).find(e=>e instanceof HTMLElement&&e.matches(`[data-ui-menu]`));if(!(e instanceof HTMLElement))throw Error(`Dropdown requires a menu element.`);return e},w=()=>Z.getSnapshot().props,T=()=>Z.hasTag(`expanded`),E=()=>Z.hasTag(`visible`),D=e=>{if(!(e instanceof Element))return null;let t=e.closest(`[data-ui-menu-item]`);return t&&x().contains(t)?t:null},O=t=>e({value:t.dataset.disabled})||t.getAttribute(`aria-disabled`)===`true`||t.hasAttribute(`disabled`),k=()=>{if(!u)throw Error(`Dropdown navigation has not been initialized.`);return u},A=()=>{[k(),...Array.from(g.values(),({collection:e})=>e)].forEach(e=>e.allItems().forEach(e=>{e.hasAttribute(`role`)||e.setAttribute(`role`,`menuitem`),e.tabIndex=-1,O(e)&&e.setAttribute(`aria-disabled`,`true`)}))},j=e=>e?Array.from(g.values()).find(({trigger:t})=>t===e)??null:null,N=e=>Array.from(g.values()).find(t=>t.id===e)??null,P=e=>e?Array.from(g.values()).find(({panel:t})=>t===e)??null:null,F=e=>P(e.root.parentElement?.closest(`[data-ui-menu-submenu-panel]`)??null),I=e=>{let t=[],n=e;for(;n;)t.unshift(n.id),n=F(n);return t},L=()=>Z.getSnapshot().context.openSubmenuIds,R=e=>{y=null,g.forEach(t=>{let n=e.includes(t.id);t.root.dataset.state=n?`open`:`closed`,t.trigger.dataset.state=n?`open`:`closed`,t.trigger.setAttribute(`aria-expanded`,n?`true`:`false`),t.panel.dataset.state=n?`open`:`closed`,t.panel.hidden=!n,n?t.popover.open():(t.collection.clearActiveItem(),t.popover.close())})},z=t=>{let{trigger:n,panel:r}=ce(t);if(g.has(t))return;let i=t.dataset.submenuId||`ui-submenu-${++le}`,a=n.id||`${i}-trigger`,o=r.id||`${i}-menu`;t.dataset.submenuId=i,t.dataset.state=`closed`,n.id=a,n.dataset.state=`closed`,n.setAttribute(`aria-controls`,o),n.setAttribute(`aria-expanded`,`false`),r.id=o,r.dataset.state=`closed`,r.setAttribute(`aria-labelledby`,a),r.setAttribute(`popover`,`manual`),r.setAttribute(`role`,`menu`),r.tabIndex=-1,r.hidden=!0;let s=f({root:()=>r,itemSelector:`[data-ui-menu-item]`,ownsItem:e=>e.closest(`[data-ui-menu]`)===r,isDisabled:O,loop:()=>e({value:r.dataset.loop})}),c=d({reference:()=>n,floating:()=>r,position:()=>`right`,align:()=>`start`,gap:()=>4,offset:()=>0});g.set(t,{id:i,root:t,trigger:n,panel:r,popover:c,collection:s})},B=e=>{let t=g.get(e);t&&(t.collection.clearActiveItem(),t.popover.destroy(),g.delete(e),y=null)},V=()=>{let e=L(),t=[];for(let n=e.length-1;n>=0;--n){let r=N(e[n]);if(r){t=I(r);break}}t.length===e.length&&t.every((t,n)=>t===e[n])||Z.send({type:`SUBMENU_PATH_CHANGED`,path:t})},H=()=>{let e=Array.from(x().querySelectorAll(`[data-ui-menu-submenu]`)),t=new Set(e),n=!1;Array.from(g.keys()).forEach(e=>{t.has(e)||(B(e),n=!0)}),n&&V(),e.forEach(z),V(),A()},U=()=>{v||(v=!0,queueMicrotask(()=>{v=!1,r&&H()}))},W=e=>{e.some(e=>e.type===`childList`||e.target instanceof Element&&e.target.closest(`[data-ui-submenu-trigger-content]`)!==null)&&U()},G=e=>{let t=e.items().find(e=>e.hasAttribute(`data-selected`)||[`true`,`mixed`].includes(e.getAttribute(`aria-checked`)??``));return t?(e.activateItem({el:t}),!0):!1},K=(e,t=!1)=>{O(e.trigger)||(Z.send({type:`SUBMENU_PATH_CHANGED`,path:I(e)}),queueMicrotask(()=>{t?e.collection.focusFirst():G(e.collection)}))},q=(e,t=!1)=>{let n=I(e);Z.send({type:`SUBMENU_PATH_CHANGED`,path:n.slice(0,-1)}),t&&e.trigger.focus({preventScroll:!0})},ue=()=>{let e=S(),t=e.getAttribute(`tabindex`);l={ariaDisabled:e.getAttribute(`aria-disabled`),dataDisabled:e.getAttribute(`data-disabled`),disabled:e instanceof HTMLButtonElement?e.disabled:null,tabIndex:t??(e.tabIndex<0?`0`:null)}},J=(e,t,n)=>{n===null?e.removeAttribute(t):e.setAttribute(t,n)},Y=()=>{i&&(T()||a)&&c({el:x(),schema:M,key:`open`,value:T()});let e=S(),t=l;if(t){if(e.id||=o,e.setAttribute(`data-ui-dropdown-trigger`,``),e.setAttribute(`aria-expanded`,T()?`true`:`false`),e.setAttribute(`aria-controls`,s),e.setAttribute(`data-state`,T()?`open`:`closed`),w().disabled){e.setAttribute(`aria-disabled`,`true`),e.setAttribute(`data-disabled`,``),e.tabIndex=-1,e instanceof HTMLButtonElement&&(e.disabled=!0);return}J(e,`aria-disabled`,t.ariaDisabled),J(e,`data-disabled`,t.dataDisabled),J(e,`tabindex`,t.tabIndex),e instanceof HTMLButtonElement&&t.disabled!==null&&(e.disabled=t.disabled)}},X=()=>{let e=C();e.id=s,e.setAttribute(`popover`,`manual`),e.setAttribute(`role`,`menu`),e.tabIndex=-1,e.hidden=!E(),e.setAttribute(`data-state`,T()?`open`:`closed`),A()},de=e=>{a=!0,Y(),X(),m?.open(),queueMicrotask(()=>{Z.hasTag(`interactive`)&&(e===`first`?k().focusFirst():(G(k()),C().focus({preventScroll:!0})))})},fe=()=>{Y(),X(),t({el:x(),name:`ui:open`})},pe=(e,t)=>{a=t,k().clearActiveItem(),Y(),X(),e&&S().focus({preventScroll:!0})},me=()=>{m?.close(),Y(),X(),a=!0,t({el:x(),name:`ui:close`})},he=()=>{Y(),X(),m?.sync()},Z=ee({schema:M,hooks:ae,createMachine:({props:e})=>oe({props:e,effects:{prepareOpen:de,finishOpen:fe,prepareClose:pe,finishClose:me,syncProps:he,syncSubmenus:R}})}),Q=(e=`menu`,t)=>{if(t?.preventDefault(),!w().disabled){if(Z.hasTag(`expanded`)){e===`first`&&k().focusFirst();return}Z.send({type:`OPEN`,focus:e})}},$=(e,t)=>{t?.preventDefault(),Z.send({type:`CLOSE`,restoreFocus:e})},ge=(t,n)=>{if(O(t)){n.preventDefault();return}let r=e({value:C().dataset.keepOpen});(t.dataset.keepOpen===void 0||t.dataset.keepOpen===``?r:e({value:t.dataset.keepOpen}))||$(!1)},_e=e=>{let t=D(e.target);if(t){let n=j(t);if(n){e.preventDefault(),K(n);return}ge(t,e);return}let n=e.target;n instanceof Node&&S().contains(n)&&(e.preventDefault(),w().disabled||Z.send(`TOGGLE`))},ve=e=>{if(!(e instanceof KeyboardEvent))return;if(e.key===`Escape`&&E()){e.preventDefault(),e.stopPropagation();let t=N(L().at(-1)??``);if(t){q(t,!0);return}$(!0);return}let t=e.target;if(t instanceof Node&&S().contains(t)){if(e.key===`ArrowDown`){Q(`first`,e);return}let t=S();!(t instanceof HTMLButtonElement)&&!(t instanceof HTMLAnchorElement)&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),w().disabled||Z.send(`TOGGLE`));return}let n=D(e.target),r=j(n);if(r&&(e.key===`ArrowRight`||e.key===`Enter`||e.key===` `)){e.preventDefault(),K(r,!0);return}let i=P(e.target instanceof Element?e.target.closest(`[data-ui-menu-submenu-panel]`):null);if(i&&e.key===`ArrowLeft`){e.preventDefault(),q(i,!0);return}if(n&&(e.key===`Enter`||e.key===` `)&&n.matches(`[role="menuitemcheckbox"], [role="menuitemradio"]`)){e.preventDefault(),n.querySelector(`input[type="checkbox"], input[type="radio"]`)?.click();return}i?i.collection.handleKeydown({event:e}):C().contains(e.target)&&k().handleKeydown({event:e})},ye=e=>{let t=D(e.target);t&&!O(t)&&k().activateItem({el:t})},be=e=>{if(!(e instanceof PointerEvent)||y?.contains({x:e.clientX,y:e.clientY}))return;let t=D(e.target);if(!t||O(t))return;y=null;let n=j(t),r=P(t.closest(`[data-ui-menu-submenu-panel]`));if((r?.collection??k()).activateItem({el:t}),n){K(n);return}Z.send({type:`SUBMENU_PATH_CHANGED`,path:r?I(r):[]})},xe=e=>{if(!(e instanceof PointerEvent)||!window.matchMedia(`(hover: hover) and (pointer: fine)`).matches)return;let t=j(D(e.target));if(!t||!L().includes(t.id)||e.relatedTarget instanceof Node&&t.panel.contains(e.relatedTarget))return;let n=t.panel.getBoundingClientRect();y=ie({origin:{x:e.clientX,y:e.clientY},panel:{left:n.left,right:n.right,top:n.top,bottom:n.bottom}})},Se=e=>{if(`newState`in e){if(e.newState===`open`){E()||Z.send(`OPEN`);return}E()&&Z.send(`CLOSE`)}},Ce;return Ce={...Z,get isOpen(){return this.snapshot.current?.tags.includes(`expanded`)??!1},init(){b=te(this),r=this.$el,Z.connect(this.$el,this.snapshot),o=S().id||this.$id(`dropdown-trigger`),s=C().id||this.$id(`dropdown-menu`),ue(),u=f({root:()=>C(),itemSelector:`[data-ui-menu-item]`,ownsItem:e=>e.closest(`[data-ui-menu]`)===C(),isDisabled:O,loop:()=>e({value:C().dataset.loop})}),m=d({reference:S,floating:C,position:()=>w().side,align:()=>w().align,gap:()=>w().gap,offset:()=>w().offset}),H(),_=new MutationObserver(W),_.observe(x(),{attributeFilter:[`contenteditable`,`controls`,`data-ui-interactive`,`href`,`role`,`tabindex`,`usemap`],attributes:!0,childList:!0,subtree:!0}),b.add(ne({isEnabled:()=>Z.hasTag(`interactive`),roots:()=>[x(),C()],onDismiss:()=>$(!1)}));let t=()=>{y=null};n({target:window,event:`blur`,handler:t,cleanup:b}),n({target:window,event:`resize`,handler:t,cleanup:b}),n({target:window,event:`scroll`,handler:t,cleanup:b,options:{capture:!0}}),Y(),X(),R([]),i=!0,w().open&&queueMicrotask(()=>Z.send(`OPEN`))},destroy(){_?.disconnect(),_=null,v=!1,Z.disconnect(),m?.destroy(),Array.from(g.keys()).forEach(B),y=null,m=null,u=null,l=null,r=null},get root(){let e=this.snapshot.current?.props??w();return h({inputs:[p({part:se.parts.root,props:e,className:e.class}),{"data-ui-dropdown":``,":data-state":()=>Z.hasTag(`expanded`)?`open`:`closed`,"@click":_e,"@keydown":ve,"@focusin":ye,"@pointermove":be,"@pointerout":xe}]})},get menu(){let e=C();return h({inputs:[p({part:re.parts.menu,props:{width:e.dataset.width,minWidth:e.dataset.minWidth,padding:e.dataset.padding},className:e.dataset.class}),{id:s,popover:`manual`,role:`menu`,tabindex:`-1`,"data-ui-menu":``,":hidden":()=>!Z.hasTag(`visible`),":data-state":()=>Z.hasTag(`expanded`)?`open`:`closed`,"@toggle":Se}]})},open(e){Q(`menu`,e)},close(e){$(e instanceof KeyboardEvent,e)},toggle(e){e?.preventDefault(),!w().disabled&&Z.send({type:`TOGGLE`,restoreFocus:e instanceof KeyboardEvent})}},Ce},H=u(`UiDropdown`,V),U=new WeakSet,W=e=>{U.has(e)||(U.add(e),r(e),H(e))};export{V as n,W as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-De9SwKec.js.map
|