@vireo-ai/trellis-ui 0.1.53 → 0.1.55
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 +23 -23
- package/packages/client/src/components/keybinding/styles.css +18 -2
- package/packages/client/src/components/link/styles.css +42 -0
- package/packages/client/src/components/tooltip/styles.css +3 -8
- package/packages/client/src/styles/components.css +2 -0
- package/packages/client/src/styles/generated/theme-fonts.css +1 -1
- package/packages/client/src/styles/generated/theme-palette.css +5 -1
- package/packages/client/src/styles/generated/theme-runtime.css +425 -6
- package/packages/client/src/styles/generated-sources.css +1 -1
- package/packages/client/src/styles/layout-participation.css +17 -0
- package/packages/client/src/styles/recipes/intent.css +3 -3
- package/packages/client/types/assets/bridge.d.ts +2 -1
- package/packages/client/types/capabilities/sortable.d.ts +2 -2
- package/packages/client/types/component-api.d.ts +1 -1
- package/packages/client/types/components/box/contract.d.ts +19 -19
- package/packages/client/types/components/button/contract.d.ts +1 -1
- package/packages/client/types/components/checkbox/machine.d.ts +0 -3
- package/packages/client/types/components/common.d.ts +23 -2
- package/packages/client/types/components/container/contract.d.ts +11 -11
- package/packages/client/types/components/file-upload/contract.d.ts +1 -1
- package/packages/client/types/components/file-upload/machine.d.ts +10 -12
- package/packages/client/types/components/flex/contract.d.ts +9 -9
- package/packages/client/types/components/frame/contract.d.ts +27 -26
- package/packages/client/types/components/grid/contract.d.ts +9 -9
- package/packages/client/types/components/heading/contract.d.ts +2 -2
- package/packages/client/types/components/input/contract.d.ts +1 -1
- package/packages/client/types/components/keybinding/contract.d.ts +5 -2
- package/packages/client/types/components/layout.d.ts +303 -149
- package/packages/client/types/components/link/contract.d.ts +30 -0
- package/packages/client/types/components/link/index.d.ts +2 -0
- package/packages/client/types/components/menu/contract.d.ts +17 -4
- package/packages/client/types/components/panels/contract.d.ts +1 -1
- package/packages/client/types/components/panels/machine.d.ts +17 -10
- package/packages/client/types/components/runtime.d.ts +1 -1
- package/packages/client/types/components/section/contract.d.ts +9 -9
- package/packages/client/types/components/select/contract.d.ts +1 -1
- package/packages/client/types/components/select/machine.d.ts +8 -7
- package/packages/client/types/components/stack/contract.d.ts +9 -9
- package/packages/client/types/components/switch/machine.d.ts +1 -5
- package/packages/client/types/components/text/contract.d.ts +4 -4
- package/packages/client/types/components/toast/index.d.ts +0 -2
- package/packages/client/types/components/toast/machine.d.ts +6 -5
- package/packages/client/types/components/virtualizer/cursor.d.ts +1 -1
- package/packages/client/types/components/virtualizer/index.d.ts +1 -1
- package/packages/client/types/core.d.ts +2 -2
- package/packages/client/types/directives/sortable.d.ts +2 -1
- package/packages/client/types/motion/owned.d.ts +5 -3
- package/packages/client/types/runtime/alpine-data.d.ts +3 -1
- package/packages/client/types/runtime/cursor-data-source.d.ts +14 -19
- package/packages/client/types/runtime/drag-and-drop/index.d.ts +2 -2
- package/packages/client/types/runtime/drag-and-drop/sortable/contract.d.ts +12 -12
- package/packages/client/types/runtime/drag-and-drop/sortable/feedback.d.ts +3 -3
- package/packages/client/types/runtime/drag-and-drop/sortable/index.d.ts +2 -2
- package/packages/client/types/runtime/drag-and-drop/sortable/placement.d.ts +7 -7
- package/packages/client/types/runtime/drag-and-drop/sortable/registry.d.ts +9 -5
- package/packages/client/types/runtime/engine/request.d.ts +29 -5
- package/packages/client/types/runtime/engine/stream.d.ts +6 -2
- package/packages/client/types/runtime/index.d.ts +4 -4
- package/packages/client/types/runtime/manifest.d.ts +31 -8
- package/packages/client/types/runtime/scroll-lock.d.ts +2 -3
- package/packages/client/types/runtime/theme.d.ts +2 -2
- package/packages/client/types/runtime/ui.d.ts +3 -3
- package/packages/client/types/runtime/virtualizer-fragment.d.ts +1 -1
- package/packages/client/types/runtime/virtualizer.d.ts +1 -1
- package/packages/client/types/utils/dom.d.ts +3 -3
- package/packages/client/types/utils/index.d.ts +2 -2
- package/packages/client/types/utils/object.d.ts +2 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +873 -1099
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +2 -2
- 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 +874 -815
- 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/resizable.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.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-CE2UN4Qu.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-CE2UN4Qu.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-B-msaaMx.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-B-msaaMx.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-C3q5Xzv2.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-C3q5Xzv2.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-shortcut-CGpfLNL-.js → capability-shortcut-BwvEqEbL.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-shortcut-CGpfLNL-.js.map → capability-shortcut-BwvEqEbL.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bh6pkITu.js +5 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bh6pkITu.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/{codecs-Cb1ns_47.js → codecs-CQ7olTJL.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{codecs-Cb1ns_47.js.map → codecs-CQ7olTJL.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{collection-navigation-CfTZUJrL.js → collection-navigation-BbxUBQFs.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{collection-navigation-CfTZUJrL.js.map → collection-navigation-BbxUBQFs.js.map} +1 -1
- 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/controlled-open-Hy4-OT-6.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-crMEr9_l.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-crMEr9_l.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DOHj5fa1.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DOHj5fa1.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-FA9FLGtB.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-FA9FLGtB.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js.map +1 -1
- 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/element-adapter-native-data-key-DrqJDAVH.js +6 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-DrqJDAVH.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B41qiwNq.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B41qiwNq.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B7n4iFyw.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B7n4iFyw.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-BLduYCHm.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BqEMECZx.js.map → entry.generated-BLduYCHm.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BeNK2EFl.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BSbzZ3xh.js.map → entry.generated-BeNK2EFl.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BmVGptdJ.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BmVGptdJ.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bq2KAnfO.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bq2KAnfO.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3cRWutN.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3cRWutN.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3y5qBcc.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3y5qBcc.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CGasYxmV.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CGasYxmV.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CvL196IN.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CvL196IN.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CyynUmGS.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CyynUmGS.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-DXDHgDsN.js → entry.generated-D8iA1e6i.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D8iA1e6i.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DDJEGHq-.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DDJEGHq-.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DScbsE6-.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DScbsE6-.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-AFRarPro.js → entry.generated-DVOBR4CK.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-AFRarPro.js.map → entry.generated-DVOBR4CK.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Dcm3s3ey.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Dcm3s3ey.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DjKX5KuB.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DjKX5KuB.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-QspMEPHx.js → entry.generated-O0hEhk-2.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-QspMEPHx.js.map → entry.generated-O0hEhk-2.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-R1BlPlZW.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-R1BlPlZW.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-iMJrYzAB.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-iMJrYzAB.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-n_t4T8XC.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-n_t4T8XC.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C-lyYGbo.js → entry.generated-oJwO9fIY.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C-lyYGbo.js.map → entry.generated-oJwO9fIY.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ollD3I52.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ollD3I52.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-XeJ05afl.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-XeJ05afl.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-BE3g0swK.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-DtaPVNl5.js.map +1 -1
- 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-9OT0mn7F.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{fragment-Bl3Rq38L.js.map → fragment-9OT0mn7F.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{merge-bindings-C8ewA_FD.js → merge-bindings-BtqW3UgP.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{merge-bindings-C8ewA_FD.js.map → merge-bindings-BtqW3UgP.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/morph-Cq3V_23_.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-CbwLBhMt.js +3 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-CbwLBhMt.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/pdd-BG5sXFGF.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/props-change-2xfsIAEN.js.map +1 -1
- 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-C9PrQrca.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-CpTCQjY5.js.map → styles-C9PrQrca.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-CX2j92ex.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-TfvwVPGw.js.map → styles-CX2j92ex.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CGwc8KXJ.js +4 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CGwc8KXJ.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/button.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 +480 -419
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +11 -9
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +11 -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/anchored-popover-BXEMsLrA.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BXEMsLrA.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/cally-Z6G-rzr-.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-Z6G-rzr-.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-CrezWE-8.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-CrezWE-8.js.map +0 -1
- 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-resizable-Bga8TngJ.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-C65CbsZn.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-C65CbsZn.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-Dfj6NCjU.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-Dfj6NCjU.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-xDNH-xzt.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-xDNH-xzt.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-D14VdwFn.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-D14VdwFn.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-qAeVl7dc.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-qAeVl7dc.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-DHq3udf7.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-DHq3udf7.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-CW8suC9A.js +0 -6
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-CW8suC9A.js.map +0 -1
- 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-BSbzZ3xh.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BqEMECZx.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C07Tn0r-.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C07Tn0r-.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C2gP0OfV.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C2gP0OfV.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CRj4-Ef1.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CRj4-Ef1.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSDZ4U92.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSDZ4U92.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CirM6w9Q.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CirM6w9Q.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D07X7NjA.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D07X7NjA.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DVIdOrvh.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DVIdOrvh.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_FlEfdN.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_FlEfdN.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DrmfusOi.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DrmfusOi.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DwYIFLsE.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DwYIFLsE.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-bEl9RRQt.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-bEl9RRQt.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-gxr2-89M.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-gxr2-89M.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-prmw8aRc.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-prmw8aRc.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-wEt8LYAv.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-wEt8LYAv.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xAXkL86X.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xAXkL86X.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CXnPh3K6.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CXnPh3K6.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CwzLpL1f.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CwzLpL1f.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-DXDHgDsN.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dolv_r3b.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dolv_r3b.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Dqut4h89.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Dqut4h89.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-ke2fZiWo.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-ke2fZiWo.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-lock-DOw7dmi1.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-lock-DOw7dmi1.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/semantic-observer-CdRbZHir.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-TfvwVPGw.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-FNYDCNh6.js +0 -4
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-FNYDCNh6.js.map +0 -1
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-B-msaaMx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cally-B-msaaMx.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/cally@0.9.2/node_modules/cally/dist/cally.js"],"sourcesContent":["class le {\n /**\n * @type {T}\n */\n #t;\n #e = /* @__PURE__ */ new Set();\n /**\n * @param {T} current\n */\n constructor(t) {\n this.#t = t;\n }\n /**\n * @return {T}\n */\n get current() {\n return this.#t;\n }\n /**\n * @param {T} value\n */\n set current(t) {\n this.#t != t && (this.#t = t, this.#e.forEach((n) => n(t)));\n }\n /**\n * @type {import(\"hooks\").Ref[\"on\"]}\n */\n on(t) {\n return this.#e.add(t), () => this.#e.delete(t);\n }\n}\nconst Rt = (e) => new le(e), st = Symbol.for(\"atomico.hooks\");\nglobalThis[st] = globalThis[st] || {};\nlet A = globalThis[st];\nconst ue = Symbol.for(\"Atomico.suspense\"), Yt = Symbol.for(\"Atomico.effect\"), fe = Symbol.for(\"Atomico.layoutEffect\"), Ft = Symbol.for(\"Atomico.insertionEffect\"), R = (e, t, n) => {\n const { i: s, hooks: o } = A.c, r = o[s] = o[s] || {};\n return r.value = e(r.value), r.effect = t, r.tag = n, A.c.i++, o[s].value;\n}, It = (e) => R((t = Rt(e)) => t), W = () => R((e = Rt(A.c.host)) => e), Lt = () => A.c.update, de = (e, t, n = 0) => {\n let s = {}, o = !1;\n const r = () => o, a = (l, c) => {\n for (const d in s) {\n const i = s[d];\n i.effect && i.tag === l && (i.value = i.effect(i.value, c));\n }\n };\n return { load: (l) => {\n A.c = { host: t, hooks: s, update: e, i: 0, id: n };\n let c;\n try {\n o = !1, c = l();\n } catch (d) {\n if (d !== ue) throw d;\n o = !0;\n } finally {\n A.c = null;\n }\n return c;\n }, cleanEffects: (l) => (a(Ft, l), () => (a(fe, l), () => {\n a(Yt, l);\n })), isSuspense: r };\n}, x = Symbol.for;\nfunction xt(e, t) {\n const n = e.length;\n if (n !== t.length) return !1;\n for (let s = 0; s < n; s++) {\n let o = e[s], r = t[s];\n if (o !== r) return !1;\n }\n return !0;\n}\nconst M = (e) => typeof e == \"function\", F = (e) => typeof e == \"object\", { isArray: he } = Array, ot = (e, t) => (t ? e instanceof HTMLStyleElement : !0) && \"hydrate\" in (e?.dataset || {});\nfunction _t(e, t) {\n let n;\n const s = (o) => {\n let { length: r } = o;\n for (let a = 0; a < r; a++) {\n const u = o[a];\n if (u && Array.isArray(u))\n s(u);\n else {\n const f = typeof u;\n if (u == null || f === \"function\" || f === \"boolean\")\n continue;\n f === \"string\" || f === \"number\" ? (n == null && (n = \"\"), n += u) : (n != null && (t(n), n = null), t(u));\n }\n }\n };\n s(e), n != null && t(n);\n}\nconst jt = (e, t, n) => (e.addEventListener(t, n), () => e.removeEventListener(t, n));\nclass Bt {\n /**\n *\n * @param {HTMLElement} target\n * @param {string} message\n * @param {string} value\n */\n constructor(t, n, s) {\n this.message = n, this.target = t, this.value = s;\n }\n}\nclass qt extends Bt {\n}\nclass me extends Bt {\n}\nconst z = \"Custom\", ye = null, pe = { true: 1, \"\": 1, 1: 1 };\nfunction ge(e, t, n, s, o) {\n const {\n type: r,\n reflect: a,\n event: u,\n value: f,\n attr: l = be(t)\n } = n?.name != z && F(n) && n != ye ? n : { type: n }, c = r?.name === z && r.map, d = f != null ? r == Function || !M(f) ? () => f : f : null;\n Object.defineProperty(e, t, {\n configurable: !0,\n /**\n * @this {import(\"dom\").AtomicoThisInternal}\n * @param {any} newValue\n */\n set(i) {\n const m = this[t];\n d && r != Boolean && i == null && (i = d());\n const { error: g, value: b } = (c ? Te : Ee)(\n r,\n i\n );\n if (g && b != null)\n throw new qt(\n this,\n `The value defined for prop '${t}' must be of type '${r.name}'`,\n b\n );\n m != b && (this._props[t] = b ?? void 0, this.update(), u && zt(this, u), this.updated.then(() => {\n a && (this._ignoreAttr = l, De(this, r, l, this[t]), this._ignoreAttr = null);\n }));\n },\n /**\n * @this {import(\"dom\").AtomicoThisInternal}\n */\n get() {\n return this._props[t];\n }\n }), d && (o[t] = d()), s[l] = { prop: t, type: r };\n}\nconst zt = (e, { type: t, base: n = CustomEvent, ...s }) => e.dispatchEvent(new n(t, s)), be = (e) => e.replace(/([A-Z])/g, \"-$1\").toLowerCase(), De = (e, t, n, s) => s == null || t == Boolean && !s ? e.removeAttribute(n) : e.setAttribute(\n n,\n t?.name === z && t?.serialize ? t?.serialize(s) : F(s) ? JSON.stringify(s) : t == Boolean ? \"\" : s\n), Ce = (e, t) => e == Boolean ? !!pe[t] : e == Number ? Number(t) : e == String ? t : e == Array || e == Object ? JSON.parse(t) : e.name == z ? t : (\n // TODO: If when defining reflect the prop can also be of type string?\n new e(t)\n), Te = ({ map: e }, t) => {\n try {\n return { value: e(t), error: !1 };\n } catch {\n return { value: t, error: !0 };\n }\n}, Ee = (e, t) => e == null || t == null ? { value: t, error: !1 } : e != String && t === \"\" ? { value: void 0, error: !1 } : e == Object || e == Array || e == Symbol ? {\n value: t,\n error: {}.toString.call(t) !== `[object ${e.name}]`\n} : t instanceof e ? {\n value: t,\n error: e == Number && Number.isNaN(t.valueOf())\n} : e == String || e == Number || e == Boolean ? {\n value: t,\n error: e == Number ? typeof t != \"number\" ? !0 : Number.isNaN(t) : e == String ? typeof t != \"string\" : typeof t != \"boolean\"\n} : { value: t, error: !0 };\nlet ve = 0;\nconst we = (e) => {\n const t = (e?.dataset || {})?.hydrate || \"\";\n return t || \"c\" + ve++;\n}, k = (e, t = HTMLElement) => {\n const n = {}, s = {}, o = \"prototype\" in t && t.prototype instanceof Element, r = o ? t : \"base\" in t ? t.base : HTMLElement, { props: a, styles: u } = o ? e : t;\n class f extends r {\n constructor() {\n super(), this._setup(), this._render = () => e({ ...this._props });\n for (const c in s) this[c] = s[c];\n }\n /**\n * @returns {import(\"core\").Sheets[]}\n */\n static get styles() {\n return [super.styles, u];\n }\n async _setup() {\n if (this._props) return;\n this._props = {};\n let c, d;\n this.mounted = new Promise(\n (y) => this.mount = () => {\n y(), c != this.parentNode && (d != c ? this.unmounted.then(this.update) : this.update()), c = this.parentNode;\n }\n ), this.unmounted = new Promise(\n (y) => this.unmount = () => {\n y(), (c != this.parentNode || !this.isConnected) && (i.cleanEffects(!0)()(), d = this.parentNode, c = null);\n }\n ), this.symbolId = this.symbolId || Symbol(), this.symbolIdParent = Symbol();\n const i = de(\n () => this.update(),\n this,\n we(this)\n );\n let m, g = !0;\n const b = ot(this);\n this.update = () => (m || (m = !0, this.updated = (this.updated || this.mounted).then(() => {\n try {\n const y = i.load(this._render), p = i.cleanEffects();\n return y && //@ts-ignore\n y.render(this, this.symbolId, b), m = !1, g && !i.isSuspense() && (g = !1, !b && Se(this)), p();\n } finally {\n m = !1;\n }\n }).then(\n /**\n * @param {import(\"internal/hooks.js\").CleanUseEffects} [cleanUseEffect]\n */\n (y) => {\n y && y();\n }\n )), this.updated), this.update();\n }\n connectedCallback() {\n this.mount(), super.connectedCallback && super.connectedCallback();\n }\n disconnectedCallback() {\n super.disconnectedCallback && super.disconnectedCallback(), this.unmount();\n }\n /**\n * @this {import(\"dom\").AtomicoThisInternal}\n * @param {string} attr\n * @param {(string|null)} oldValue\n * @param {(string|null)} value\n */\n attributeChangedCallback(c, d, i) {\n if (n[c]) {\n if (c === this._ignoreAttr || d === i) return;\n const { prop: m, type: g } = n[c];\n try {\n this[m] = Ce(g, i);\n } catch {\n throw new me(\n this,\n `The value defined as attr '${c}' cannot be parsed by type '${g.name}'`,\n i\n );\n }\n } else\n super.attributeChangedCallback(c, d, i);\n }\n static get props() {\n return { ...super.props, ...a };\n }\n static get observedAttributes() {\n const c = super.observedAttributes || [];\n for (const d in a)\n ge(this.prototype, d, a[d], n, s);\n return Object.keys(n).concat(c);\n }\n }\n return f;\n};\nfunction Se(e) {\n const { styles: t } = e.constructor, { shadowRoot: n } = e;\n if (n && t.length) {\n const s = [];\n _t(t, (o) => {\n o && (o instanceof Element ? n.appendChild(o.cloneNode(!0)) : s.push(o));\n }), s.length && (n.adoptedStyleSheets = s);\n }\n}\nconst Ht = (e) => (t, n) => {\n R(\n /**\n * Clean the effect hook\n * @type {import(\"internal/hooks.js\").CollectorEffect}\n */\n ([s, o] = []) => ((o || !o) && (o && xt(o, n) ? s = s || !0 : (M(s) && s(), s = null)), [s, n]),\n /**\n * @returns {any}\n */\n ([s, o], r) => r ? (M(s) && s(), []) : [s || t(), o],\n e\n );\n}, L = Ht(Yt), Me = Ht(Ft);\nclass Wt extends Array {\n /**\n *\n * @param {any} initialState\n * @param {(nextState: any, state:any[], mount: boolean )=>void} mapState\n */\n constructor(t, n) {\n let s = !0;\n const o = (r) => {\n try {\n n(r, this, s);\n } finally {\n s = !1;\n }\n };\n super(void 0, o, n), o(t);\n }\n /**\n * The following code allows a mutable approach to useState\n * and useProp this with the idea of allowing an alternative\n * approach similar to Vue or Qwik of state management\n * @todo pending review with the community\n */\n // get value() {\n // return this[0];\n // }\n // set value(nextState) {\n // this[2](nextState, this);\n // }\n}\nconst it = (e) => {\n const t = Lt();\n return R(\n (n = new Wt(e, (s, o, r) => {\n s = M(s) ? s(o[0]) : s, s !== o[0] && (o[0] = s, r || t());\n })) => n\n );\n}, w = (e, t) => {\n const [n] = R(([s, o, r = 0] = []) => ((!o || o && !xt(o, t)) && (s = e()), [s, t, r]));\n return n;\n}, lt = (e) => {\n const { current: t } = W();\n if (!(e in t))\n throw new qt(\n t,\n `For useProp(\"${e}\"), the prop does not exist on the host.`,\n e\n );\n return R(\n (n = new Wt(t[e], (s, o) => {\n s = M(s) ? s(t[e]) : s, t[e] = s;\n })) => (n[0] = t[e], n)\n );\n}, N = (e, t = {}) => {\n const n = W();\n return n[e] || (n[e] = (s = t.detail) => zt(n.current, {\n type: e,\n ...t,\n detail: s\n })), n[e];\n}, rt = x(\"atomico/options\");\nglobalThis[rt] = globalThis[rt] || {\n sheet: !!document.adoptedStyleSheets\n};\nconst K = globalThis[rt], Ne = new Promise((e) => {\n K.ssr || (document.readyState === \"loading\" ? jt(document, \"DOMContentLoaded\", e) : e());\n}), Pe = {\n checked: 1,\n value: 1,\n selected: 1\n}, ke = {\n list: 1,\n type: 1,\n size: 1,\n form: 1,\n width: 1,\n height: 1,\n src: 1,\n href: 1,\n slot: 1\n}, Oe = {\n shadowDom: 1,\n staticNode: 1,\n cloneNode: 1,\n children: 1,\n key: 1\n}, q = {}, at = [];\nclass ct extends Text {\n}\nconst Ae = x(\"atomico/id\"), I = x(\"atomico/type\"), Q = x(\"atomico/ref\"), Kt = x(\"atomico/vnode\"), Jt = () => {\n};\nfunction Ue(e, t, n) {\n return Xt(this, e, t, n);\n}\nconst Zt = (e, t, ...n) => {\n const s = t || q;\n let { children: o } = s;\n if (o = o ?? (n.length ? n : at), e === Jt)\n return o;\n const r = e ? e instanceof Node ? 1 : (\n //@ts-ignore\n e.prototype instanceof HTMLElement && 2\n ) : 0;\n if (r === !1 && e instanceof Function)\n return e(\n o != at ? { children: o, ...s } : s\n );\n const a = K.render || Ue;\n return {\n [I]: Kt,\n type: e,\n props: s,\n children: o,\n key: s.key,\n // key for lists by keys\n // define if the node declares its shadowDom\n shadow: s.shadowDom,\n // allows renderings to run only once\n static: s.staticNode,\n // defines whether the type is a childNode `1` or a constructor `2`\n raw: r,\n // defines whether to use the second parameter for document.createElement\n is: s.is,\n // clone the node if it comes from a reference\n clone: s.cloneNode,\n render: a\n };\n};\nfunction Xt(e, t, n = Ae, s, o) {\n let r;\n if (t && t[n] && t[n].vnode == e || e[I] != Kt)\n return t;\n (e || !t) && (o = o || e.type == \"svg\", r = e.type != \"host\" && (e.raw == 1 ? (t && e.clone ? t[Q] : t) != e.type : e.raw == 2 ? !(t instanceof e.type) : t ? t[Q] || t.localName != e.type : !t), r && e.type != null && (e.raw == 1 && e.clone ? (s = !0, t = e.type.cloneNode(!0), t[Q] = e.type) : t = e.raw == 1 ? e.type : e.raw == 2 ? new e.type() : o ? document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n e.type\n ) : document.createElement(\n e.type,\n e.is ? { is: e.is } : void 0\n )));\n const a = t[n] ? t[n] : q, { vnode: u = q, cycle: f = 0 } = a;\n let { fragment: l, handlers: c } = a;\n const { children: d = at, props: i = q } = u;\n if (c = r ? {} : c || {}, e.static && !r) return t;\n if (e.shadow && !t.shadowRoot && // @ts-ignore\n t.attachShadow({ mode: \"open\", ...e.shadow }), e.props != i && Ye(t, i, e.props, c, o), e.children !== d) {\n const m = e.shadow ? t.shadowRoot : t;\n l = Re(\n e.children,\n /**\n * @todo for hydration use attribute and send childNodes\n */\n l,\n m,\n n,\n // add support to foreignObject, children will escape from svg\n !f && s,\n o && e.type == \"foreignObject\" ? !1 : o\n );\n }\n return t[n] = { vnode: e, handlers: c, fragment: l, cycle: f + 1 }, t;\n}\nfunction $e(e, t) {\n const n = new ct(\"\"), s = new ct(\"\");\n let o;\n if (e[t ? \"prepend\" : \"append\"](n), t) {\n let { lastElementChild: r } = e;\n for (; r; ) {\n const { previousElementSibling: a } = r;\n if (ot(r, !0) && !ot(a, !0)) {\n o = r;\n break;\n }\n r = a;\n }\n }\n return o ? o.before(s) : e.append(s), {\n markStart: n,\n markEnd: s\n };\n}\nfunction Re(e, t, n, s, o, r) {\n e = e == null ? null : he(e) ? e : [e];\n const a = t || $e(n, o), { markStart: u, markEnd: f, keyes: l } = a;\n let c;\n const d = l && /* @__PURE__ */ new Set();\n let i = u;\n if (e && _t(e, (m) => {\n if (typeof m == \"object\" && !m[I])\n return;\n const g = m[I] && m.key, b = l && g != null && l.get(g);\n i != f && i === b ? d.delete(i) : i = i == f ? f : i.nextSibling;\n const y = l ? b : i;\n let p = y;\n if (m[I])\n p = Xt(m, y, s, o, r);\n else {\n const v = m + \"\";\n !(p instanceof Text) || p instanceof ct ? p = new Text(v) : p.data != v && (p.data = v);\n }\n p != i && (l && d.delete(p), !y || l ? (n.insertBefore(p, i), l && i != f && d.add(i)) : y == f ? n.insertBefore(p, f) : (n.replaceChild(p, y), i = p)), g != null && (c = c || /* @__PURE__ */ new Map(), c.set(g, p));\n }), i = i == f ? f : i.nextSibling, t && i != f)\n for (; i != f; ) {\n const m = i;\n i = i.nextSibling, m.remove();\n }\n return d && d.forEach((m) => m.remove()), a.keyes = c, a;\n}\nfunction Ye(e, t, n, s, o) {\n for (const r in t)\n !(r in n) && St(e, r, t[r], null, o, s);\n for (const r in n)\n St(e, r, t[r], n[r], o, s);\n}\nfunction St(e, t, n, s, o, r) {\n if (t = t == \"class\" && !o ? \"className\" : t, n = n ?? null, s = s ?? null, t in e && Pe[t] && (n = e[t]), !(s === n || Oe[t] || t[0] == \"_\"))\n if (e.localName === \"slot\" && t === \"assignNode\" && \"assign\" in e)\n e.assign(s);\n else if (t[0] == \"o\" && t[1] == \"n\" && (M(s) || M(n)))\n Fe(e, t.slice(2), s, r);\n else if (t == \"ref\")\n s && (M(s) ? s(e) : s.current = e);\n else if (t == \"style\") {\n const { style: a } = e;\n n = n || \"\", s = s || \"\";\n const u = F(n), f = F(s);\n if (u)\n for (const l in n)\n if (f)\n !(l in s) && Mt(a, l, null);\n else\n break;\n if (f)\n for (const l in s) {\n const c = s[l];\n u && n[l] === c || Mt(a, l, c);\n }\n else\n a.cssText = s;\n } else {\n const a = t[0] == \"$\" ? t.slice(1) : t;\n a === t && (!o && !ke[t] && t in e || M(s) || M(n)) ? e[t] = s ?? \"\" : s == null ? e.removeAttribute(a) : e.setAttribute(\n a,\n F(s) ? JSON.stringify(s) : s\n );\n }\n}\nfunction Fe(e, t, n, s) {\n if (s.handleEvent || (s.handleEvent = (o) => s[o.type].call(e, o)), n) {\n if (!s[t]) {\n const o = n.capture || n.once || n.passive ? Object.assign({}, n) : null;\n e.addEventListener(t, s, o);\n }\n s[t] = n;\n } else\n s[t] && (e.removeEventListener(t, s), delete s[t]);\n}\nfunction Mt(e, t, n) {\n let s = \"setProperty\";\n n == null && (s = \"removeProperty\", n = null), ~t.indexOf(\"-\") ? e[s](t, n) : e[t] = n;\n}\nconst Ie = Zt(\"host\", { style: \"display: contents\" }), Gt = \"value\", Le = (e, t) => {\n const n = W(), s = It();\n Me(\n () => jt(\n n.current,\n \"ConnectContext\",\n /**\n * @param {CustomEvent<import(\"context\").DetailConnectContext>} event\n */\n (o) => {\n o.composedPath().at(0) !== o.currentTarget && e === o.detail.id && (o.stopPropagation(), o.detail.connect(s));\n }\n ),\n [e]\n ), s.current = t;\n}, ut = (e) => {\n const t = N(\"ConnectContext\", {\n bubbles: !0,\n composed: !0\n }), [n, s] = it(() => {\n if (K.ssr) return;\n let r;\n return t({\n id: e,\n /**\n * @param {import(\"core\").Ref} parentContext\n */\n connect(a) {\n r = a;\n }\n }), r;\n }), o = Lt();\n return L(() => {\n Ne.then(\n () => t({\n id: e,\n connect: s\n })\n );\n }, [e]), L(() => {\n if (n)\n return n.on(o);\n }, [n]), n?.current || e[Gt];\n}, Qt = (e) => {\n const t = k(\n ({ value: n }) => (Le(t, n), Ie),\n {\n props: {\n value: {\n type: Object,\n value: () => e\n }\n }\n }\n );\n return t[Gt] = e, t;\n};\nQt({\n /**\n *\n * @param {string} type\n * @param {string} id\n */\n dispatch(e, t) {\n }\n});\nconst Nt = {};\nfunction J(e, ...t) {\n const n = (e.raw || e).reduce(\n (s, o, r) => s + o + (t[r] || \"\"),\n \"\"\n );\n return Nt[n] = Nt[n] || xe(n);\n}\nfunction xe(e) {\n if (K.sheet) {\n const t = new CSSStyleSheet();\n return t.replaceSync(e), t;\n } else {\n const t = document.createElement(\"style\");\n return t.textContent = e, t;\n }\n}\nconst h = (e, t, n) => (t == null ? t = { key: n } : t.key = n, Zt(e, t)), S = h, ft = J`*,*:before,*:after{box-sizing:border-box}button{padding:0;touch-action:manipulation;cursor:pointer;user-select:none}`, dt = J`.vh{position:absolute;transform:scale(0)}`;\nfunction ht() {\n const e = /* @__PURE__ */ new Date();\n return new C(e.getFullYear(), e.getMonth() + 1, e.getDate());\n}\nconst _e = 864e5;\nfunction je(e) {\n const t = E(e);\n t.setUTCDate(t.getUTCDate() + 3 - (t.getUTCDay() + 6) % 7);\n const n = new Date(Date.UTC(t.getUTCFullYear(), 0, 4));\n return 1 + Math.round(\n ((t.getTime() - n.getTime()) / _e - 3 + (n.getUTCDay() + 6) % 7) / 7\n );\n}\nfunction mt(e, t = 0) {\n const n = E(e), s = n.getUTCDay(), o = (s < t ? 7 : 0) + s - t;\n return n.setUTCDate(n.getUTCDate() - o), C.from(n);\n}\nfunction Vt(e, t = 0) {\n return mt(e, t).add({ days: 6 });\n}\nfunction te(e) {\n return C.from(new Date(Date.UTC(e.year, e.month, 0)));\n}\nfunction Z(e, t, n) {\n return t && C.compare(e, t) < 0 ? t : n && C.compare(e, n) > 0 ? n : e;\n}\nconst Be = { days: 1 };\nfunction qe(e, t = 0) {\n let n = mt(e.toPlainDate(), t);\n const s = Vt(te(e), t), o = [];\n for (; C.compare(n, s) < 0; ) {\n const r = [];\n for (let a = 0; a < 7; a++)\n r.push(n), n = n.add(Be);\n o.push(r);\n }\n return o;\n}\nfunction E(e) {\n return new Date(Date.UTC(e.year, e.month - 1, e.day ?? 1));\n}\nconst ze = /^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[0-1])$/, V = (e, t) => e.toString().padStart(t, \"0\");\nclass C {\n constructor(t, n, s) {\n this.year = t, this.month = n, this.day = s;\n }\n // this is an incomplete implementation that only handles arithmetic on a single unit at a time.\n // i didn't want to get into more complex arithmetic since it get tricky fast\n // this is enough to serve my needs and will still be a drop-in replacement when actual Temporal API lands\n add(t) {\n const n = E(this);\n if (\"days\" in t)\n return n.setUTCDate(this.day + t.days), C.from(n);\n let { year: s, month: o } = this;\n \"months\" in t ? (o = this.month + t.months, n.setUTCMonth(o - 1)) : (s = this.year + t.years, n.setUTCFullYear(s));\n const r = C.from(E({ year: s, month: o, day: 1 }));\n return Z(C.from(n), r, te(r));\n }\n toString() {\n return `${V(this.year, 4)}-${V(this.month, 2)}-${V(this.day, 2)}`;\n }\n toPlainYearMonth() {\n return new U(this.year, this.month);\n }\n equals(t) {\n return C.compare(this, t) === 0;\n }\n static compare(t, n) {\n return t.year < n.year ? -1 : t.year > n.year ? 1 : t.month < n.month ? -1 : t.month > n.month ? 1 : t.day < n.day ? -1 : t.day > n.day ? 1 : 0;\n }\n static from(t) {\n if (typeof t == \"string\") {\n const n = t.match(ze);\n if (!n)\n throw new TypeError(t);\n const [, s, o, r] = n;\n return new C(\n parseInt(s, 10),\n parseInt(o, 10),\n parseInt(r, 10)\n );\n }\n return new C(\n t.getUTCFullYear(),\n t.getUTCMonth() + 1,\n t.getUTCDate()\n );\n }\n}\nclass U {\n constructor(t, n) {\n this.year = t, this.month = n;\n }\n add(t) {\n const n = E(this), s = (t.months ?? 0) + (t.years ?? 0) * 12;\n return n.setUTCMonth(n.getUTCMonth() + s), new U(n.getUTCFullYear(), n.getUTCMonth() + 1);\n }\n equals(t) {\n return this.year === t.year && this.month === t.month;\n }\n toPlainDate() {\n return new C(this.year, this.month, 1);\n }\n static compare(t, n) {\n return t.year < n.year ? -1 : t.year > n.year ? 1 : t.month < n.month ? -1 : t.month > n.month ? 1 : 0;\n }\n}\nfunction H(e, t) {\n if (t)\n try {\n return e.from(t);\n } catch {\n }\n}\nfunction P(e) {\n const [t, n] = lt(e);\n return [w(() => H(C, t), [t]), (r) => n(r?.toString())];\n}\nfunction He(e) {\n const [t = \"\", n] = lt(e);\n return [w(() => {\n const [r, a] = t.split(\"/\"), u = H(C, r), f = H(C, a);\n return u && f ? [u, f] : [];\n }, [t]), (r) => n(`${r[0]}/${r[1]}`)];\n}\nfunction We(e) {\n const [t = \"\", n] = lt(e);\n return [w(() => {\n const r = [];\n for (const a of t.trim().split(/\\s+/)) {\n const u = H(C, a);\n u && r.push(u);\n }\n return r;\n }, [t]), (r) => n(r.join(\" \"))];\n}\nfunction $(e, t) {\n return w(\n () => new Intl.DateTimeFormat(t, { timeZone: \"UTC\", ...e }),\n [t, e]\n );\n}\nfunction Pt(e, t, n) {\n const s = $(e, n);\n return w(() => {\n const o = [], r = /* @__PURE__ */ new Date();\n for (var a = 0; a < 7; a++) {\n const u = (r.getUTCDay() - t + 7) % 7;\n o[u] = s.format(r), r.setUTCDate(r.getUTCDate() + 1);\n }\n return o;\n }, [t, s]);\n}\nconst kt = (e, t, n) => Z(e, t, n) === e, Ot = (e) => e.target.matches(\":dir(ltr)\"), Ke = { month: \"long\", day: \"numeric\" }, Je = { month: \"long\" }, Ze = { weekday: \"long\" }, tt = { bubbles: !0 };\nfunction Xe({ props: e, context: t }) {\n const { offset: n } = e, {\n firstDayOfWeek: s,\n isDateDisallowed: o,\n min: r,\n max: a,\n today: u,\n page: f,\n locale: l,\n focusedDate: c,\n formatWeekday: d\n } = t, i = u ?? ht(), m = Pt(Ze, s, l), g = w(\n () => ({ weekday: d }),\n [d]\n ), b = Pt(g, s, l), y = $(Ke, l), p = $(Je, l), v = w(\n () => f.start.add({ months: n }),\n [f, n]\n ), X = w(\n () => qe(v, s),\n [v, s]\n ), se = N(\"focusday\", tt), oe = N(\"selectday\", tt), re = N(\"hoverday\", tt);\n function Dt(D) {\n se(Z(D, r, a));\n }\n function ae(D) {\n let T;\n switch (D.key) {\n case \"ArrowRight\":\n T = c.add({ days: Ot(D) ? 1 : -1 });\n break;\n case \"ArrowLeft\":\n T = c.add({ days: Ot(D) ? -1 : 1 });\n break;\n case \"ArrowDown\":\n T = c.add({ days: 7 });\n break;\n case \"ArrowUp\":\n T = c.add({ days: -7 });\n break;\n case \"PageUp\":\n T = c.add(D.shiftKey ? { years: -1 } : { months: -1 });\n break;\n case \"PageDown\":\n T = c.add(D.shiftKey ? { years: 1 } : { months: 1 });\n break;\n case \"Home\":\n T = mt(c, s);\n break;\n case \"End\":\n T = Vt(c, s);\n break;\n default:\n return;\n }\n Dt(T), D.preventDefault();\n }\n function ce(D) {\n const T = v.equals(D);\n if (!t.showOutsideDays && !T)\n return;\n const ie = D.equals(c), Ct = D.equals(i), j = E(D), B = o?.(j), Tt = !kt(D, r, a);\n let Et = \"\", O;\n if (t.type === \"range\") {\n const [Y, G] = t.value, vt = Y?.equals(D), wt = G?.equals(D);\n O = Y && G && kt(D, Y, G), Et = `${vt ? \"range-start\" : \"\"} ${wt ? \"range-end\" : \"\"} ${O && !vt && !wt ? \"range-inner\" : \"\"}`;\n } else t.type === \"multi\" ? O = t.value.some((Y) => Y.equals(D)) : O = t.value?.equals(D);\n return {\n part: `${`button day day-${j.getUTCDay()} ${// we don't want outside days to ever be shown as selected\n T ? O ? \"selected\" : \"\" : \"outside\"} ${B ? \"disallowed\" : \"\"} ${Ct ? \"today\" : \"\"} ${t.getDayParts?.(j) ?? \"\"}`} ${Et}`,\n tabindex: T && ie ? 0 : -1,\n disabled: Tt,\n \"aria-disabled\": B ? \"true\" : void 0,\n \"aria-pressed\": T && O,\n \"aria-current\": Ct ? \"date\" : void 0,\n \"aria-label\": y.format(j),\n onkeydown: ae,\n onclick() {\n B || oe(D), Dt(D);\n },\n onmouseover() {\n !B && !Tt && re(D);\n }\n };\n }\n return {\n weeks: X,\n yearMonth: v,\n daysLong: m,\n daysVisible: b,\n formatter: p,\n getDayProps: ce\n };\n}\nconst et = ht(), _ = Qt({\n type: \"date\",\n firstDayOfWeek: 1,\n focusedDate: et,\n page: { start: et.toPlainYearMonth(), end: et.toPlainYearMonth() }\n});\ncustomElements.define(\"calendar-ctx\", _);\nconst Ge = (e, t) => (t + e) % 7, Qe = k(\n (e) => {\n const t = ut(_), n = It(), s = Xe({ props: e, context: t });\n function o() {\n n.current.querySelector(\"button[tabindex='0']\")?.focus();\n }\n return /* @__PURE__ */ S(\"host\", { shadowDom: !0, focus: o, children: [\n /* @__PURE__ */ h(\"div\", { id: \"h\", part: \"heading\", children: s.formatter.format(E(s.yearMonth)) }),\n /* @__PURE__ */ S(\"table\", { ref: n, \"aria-labelledby\": \"h\", part: \"table\", children: [\n /* @__PURE__ */ S(\"colgroup\", { children: [\n t.showWeekNumbers && /* @__PURE__ */ h(\"col\", { part: \"col-weeknumber\" }),\n /* @__PURE__ */ h(\"col\", { part: \"col-1\" }),\n /* @__PURE__ */ h(\"col\", { part: \"col-2\" }),\n /* @__PURE__ */ h(\"col\", { part: \"col-3\" }),\n /* @__PURE__ */ h(\"col\", { part: \"col-4\" }),\n /* @__PURE__ */ h(\"col\", { part: \"col-5\" }),\n /* @__PURE__ */ h(\"col\", { part: \"col-6\" }),\n /* @__PURE__ */ h(\"col\", { part: \"col-7\" })\n ] }),\n /* @__PURE__ */ h(\"thead\", { children: /* @__PURE__ */ S(\"tr\", { part: \"tr head\", children: [\n t.showWeekNumbers && /* @__PURE__ */ h(\"th\", { part: \"th weeknumber\", children: /* @__PURE__ */ S(\"slot\", { name: \"weeknumber\", children: [\n /* @__PURE__ */ h(\"span\", { class: \"vh\", children: \"Week\" }),\n /* @__PURE__ */ h(\"span\", { \"aria-hidden\": \"true\", children: \"#\" })\n ] }) }),\n s.daysLong.map((r, a) => /* @__PURE__ */ S(\n \"th\",\n {\n part: `th day day-${Ge(t.firstDayOfWeek, a)}`,\n scope: \"col\",\n children: [\n /* @__PURE__ */ h(\"span\", { class: \"vh\", children: r }),\n /* @__PURE__ */ h(\"span\", { \"aria-hidden\": \"true\", children: s.daysVisible[a] })\n ]\n }\n ))\n ] }) }),\n /* @__PURE__ */ h(\"tbody\", { children: s.weeks.map((r, a) => /* @__PURE__ */ S(\"tr\", { part: \"tr week\", children: [\n t.showWeekNumbers && /* @__PURE__ */ h(\"th\", { class: \"num\", part: \"th weeknumber\", scope: \"row\", children: je(r[0]) }),\n r.map((u, f) => {\n const l = s.getDayProps(u);\n return /* @__PURE__ */ h(\"td\", { part: \"td\", children: l && /* @__PURE__ */ h(\"button\", { class: \"num\", ...l, children: u.day }) }, f);\n })\n ] }, a)) })\n ] })\n ] });\n },\n {\n props: {\n offset: {\n type: Number,\n value: 0\n }\n },\n styles: [\n ft,\n dt,\n J`:host{--color-accent: black;--color-text-on-accent: white;display:flex;flex-direction:column;gap:.25rem;text-align:center;inline-size:fit-content}table{border-collapse:collapse;font-size:.875rem}th{inline-size:2.25rem;block-size:2.25rem}td{padding-inline:0}.num{font-variant-numeric:tabular-nums}button{color:inherit;font-size:inherit;background:transparent;border:0;block-size:2.25rem;inline-size:2.25rem}button:hover:where(:not(:disabled,[aria-disabled])){background:#0000000d}button:is([aria-pressed=true],:focus-visible){background:var(--color-accent);color:var(--color-text-on-accent)}button:focus-visible{outline:1px solid var(--color-text-on-accent);outline-offset:-2px}button:disabled,:host::part(outside),:host::part(disallowed){cursor:default;opacity:.5}`\n ]\n }\n);\ncustomElements.define(\"calendar-month\", Qe);\nfunction At(e) {\n return /* @__PURE__ */ h(\n \"button\",\n {\n part: `button ${e.name} ${e.onclick ? \"\" : \"disabled\"}`,\n onclick: e.onclick,\n \"aria-disabled\": e.onclick ? null : \"true\",\n children: /* @__PURE__ */ h(\"slot\", { name: e.name, children: e.children })\n }\n );\n}\nfunction yt(e) {\n const t = E(e.page.start), n = E(e.page.end);\n return /* @__PURE__ */ h(\n _,\n {\n value: e,\n onselectday: e.onSelect,\n onfocusday: e.onFocus,\n onhoverday: e.onHover,\n children: /* @__PURE__ */ S(\"div\", { role: \"group\", \"aria-labelledby\": \"h\", part: \"container\", children: [\n /* @__PURE__ */ h(\"div\", { id: \"h\", class: \"vh\", \"aria-live\": \"polite\", \"aria-atomic\": \"true\", children: e.formatVerbose.formatRange(t, n) }),\n /* @__PURE__ */ S(\"div\", { part: \"header\", children: [\n /* @__PURE__ */ h(At, { name: \"previous\", onclick: e.previous, children: \"Previous\" }),\n /* @__PURE__ */ h(\"slot\", { part: \"heading\", name: \"heading\", children: /* @__PURE__ */ h(\"div\", { \"aria-hidden\": \"true\", children: e.format.formatRange(t, n) }) }),\n /* @__PURE__ */ h(At, { name: \"next\", onclick: e.next, children: \"Next\" })\n ] }),\n /* @__PURE__ */ h(\"slot\", { part: \"months\" })\n ] })\n }\n );\n}\nconst pt = {\n value: {\n type: String,\n value: \"\"\n },\n min: {\n type: String,\n value: \"\"\n },\n max: {\n type: String,\n value: \"\"\n },\n today: {\n type: String,\n value: \"\"\n },\n isDateDisallowed: {\n type: Function,\n value: (e) => !1\n },\n formatWeekday: {\n type: String,\n value: () => \"narrow\"\n },\n getDayParts: {\n type: Function,\n value: (e) => \"\"\n },\n firstDayOfWeek: {\n type: Number,\n value: () => 1\n },\n showOutsideDays: {\n type: Boolean,\n value: !1\n },\n locale: {\n type: String,\n value: () => {\n }\n },\n months: {\n type: Number,\n value: 1\n },\n focusedDate: {\n type: String,\n value: () => {\n }\n },\n pageBy: {\n type: String,\n value: () => \"months\"\n },\n showWeekNumbers: {\n type: Boolean,\n value: !1\n }\n}, gt = [\n ft,\n dt,\n J`:host{display:block;inline-size:fit-content}:host::part(container){display:flex;flex-direction:column;gap:1em}:host::part(header){display:flex;align-items:center;justify-content:space-between}:host::part(heading){font-weight:700;font-size:1.25em}:host::part(button){display:flex;align-items:center;justify-content:center}:host::part(button disabled){cursor:default;opacity:.5}`\n], Ve = { year: \"numeric\" }, tn = { year: \"numeric\", month: \"long\" };\nfunction nt(e, t) {\n return (t.year - e.year) * 12 + t.month - e.month;\n}\nconst Ut = (e, t) => (e = t === 12 ? new U(e.year, 1) : e, {\n start: e,\n end: e.add({ months: t - 1 })\n});\nfunction en({\n pageBy: e,\n focusedDate: t,\n months: n,\n max: s,\n min: o,\n goto: r\n}) {\n const a = e === \"single\" ? 1 : n, [u, f] = it(\n () => Ut(t.toPlainYearMonth(), n)\n ), l = (d) => f(Ut(u.start.add({ months: d }), n)), c = (d) => {\n const i = nt(u.start, d.toPlainYearMonth());\n return i >= 0 && i < n;\n };\n return L(() => {\n if (c(t))\n return;\n const d = nt(t.toPlainYearMonth(), u.start);\n r(t.add({ months: d }));\n }, [u.start]), L(() => {\n if (c(t))\n return;\n const d = nt(u.start, t.toPlainYearMonth());\n l(d === -1 ? -a : d === n ? a : Math.floor(d / n) * n);\n }, [t, a, n]), {\n page: u,\n previous: !o || !c(o) ? () => l(-a) : void 0,\n next: !s || !c(s) ? () => l(a) : void 0\n };\n}\nfunction bt({\n months: e,\n pageBy: t,\n locale: n,\n focusedDate: s,\n setFocusedDate: o\n}) {\n const [r] = P(\"min\"), [a] = P(\"max\"), [u] = P(\"today\"), f = N(\"focusday\"), l = N(\"change\"), c = w(\n () => Z(s ?? u ?? ht(), r, a),\n [s, u, r, a]\n );\n function d(p) {\n o(p), f(E(p));\n }\n const { next: i, previous: m, page: g } = en({\n pageBy: t,\n focusedDate: c,\n months: e,\n min: r,\n max: a,\n goto: d\n }), b = W();\n function y(p) {\n const v = p?.target ?? \"day\";\n v === \"day\" ? b.current.querySelectorAll(\"calendar-month\").forEach((X) => X.focus(p)) : b.current.shadowRoot.querySelector(`[part~='${v}']`).focus(p);\n }\n return {\n format: $(Ve, n),\n formatVerbose: $(tn, n),\n page: g,\n focusedDate: c,\n dispatch: l,\n onFocus(p) {\n p.stopPropagation(), d(p.detail), setTimeout(y);\n },\n min: r,\n max: a,\n today: u,\n next: i,\n previous: m,\n focus: y\n };\n}\nconst nn = k(\n (e) => {\n const [t, n] = P(\"value\"), [s = t, o] = P(\"focusedDate\"), r = bt({\n ...e,\n focusedDate: s,\n setFocusedDate: o\n });\n function a(u) {\n n(u.detail), r.dispatch();\n }\n return /* @__PURE__ */ h(\"host\", { shadowDom: !0, focus: r.focus, children: /* @__PURE__ */ h(\n yt,\n {\n ...e,\n ...r,\n type: \"date\",\n value: t,\n onSelect: a\n }\n ) });\n },\n { props: pt, styles: gt }\n);\ncustomElements.define(\"calendar-date\", nn);\nfunction ee(e) {\n return /* @__PURE__ */ S(Jt, { children: [\n /* @__PURE__ */ h(\"label\", { part: \"label\", for: \"s\", children: /* @__PURE__ */ h(\"slot\", { name: \"label\", children: e.label }) }),\n /* @__PURE__ */ h(\"select\", { id: \"s\", part: \"select\", onchange: e.onChange, children: e.options.map((t) => /* @__PURE__ */ h(\"option\", { part: \"option\", ...t })) })\n ] });\n}\nconst ne = [ft, dt];\nfunction sn(e, t) {\n return Array.from({ length: e }, (n, s) => t(s));\n}\nfunction on(e) {\n const { min: t, max: n, focusedDate: s } = ut(_), o = N(\"focusday\", { bubbles: !0 }), r = s.toPlainYearMonth(), a = r.year, u = Math.floor(e.maxYears / 2), f = a - u, l = a + (e.maxYears - u - 1), c = Math.max(f, t?.year ?? -1 / 0), d = Math.min(l, n?.year ?? 1 / 0), i = sn(d - c + 1, (g) => {\n const b = c + g;\n return {\n label: `${b}`,\n value: `${b}`,\n selected: b === r.year\n };\n });\n function m(g) {\n const y = parseInt(g.currentTarget.value) - r.year;\n o(s.add({ years: y }));\n }\n return { options: i, onChange: m };\n}\nconst rn = k(\n (e) => {\n const t = on(e);\n return /* @__PURE__ */ h(\"host\", { shadowDom: !0, children: /* @__PURE__ */ h(ee, { label: \"Year\", ...t }) });\n },\n {\n props: {\n maxYears: { type: Number, value: 20 }\n },\n styles: ne\n }\n);\ncustomElements.define(\"calendar-select-year\", rn);\nfunction an(e) {\n const { min: t, max: n, focusedDate: s, locale: o } = ut(_), r = N(\"focusday\", { bubbles: !0 }), a = w(\n () => ({ month: e.formatMonth }),\n [e.formatMonth]\n ), u = $(a, o), f = w(() => {\n const i = [], m = /* @__PURE__ */ new Date();\n m.setUTCDate(1);\n for (var g = 0; g < 12; g++) {\n const b = (m.getUTCMonth() + 12) % 12;\n i[b] = u.format(m), m.setUTCMonth(m.getUTCMonth() + 1);\n }\n return i;\n }, [u]), l = s.toPlainYearMonth(), c = f.map((i, m) => {\n const g = m + 1, b = l.add({ months: g - l.month }), y = t != null && U.compare(b, t) < 0 || n != null && U.compare(b, n) > 0;\n return {\n label: i,\n value: `${g}`,\n disabled: y,\n selected: g === l.month\n };\n });\n function d(i) {\n const g = parseInt(i.currentTarget.value) - l.month;\n r(s.add({ months: g }));\n }\n return { options: c, onChange: d };\n}\nconst cn = k(\n (e) => {\n const t = an(e);\n return /* @__PURE__ */ h(\"host\", { shadowDom: !0, children: /* @__PURE__ */ h(ee, { label: \"Month\", ...t }) });\n },\n {\n props: {\n formatMonth: {\n type: String,\n value: () => \"long\"\n }\n },\n styles: ne\n }\n);\ncustomElements.define(\"calendar-select-month\", cn);\nconst $t = (e, t) => C.compare(e, t) < 0 ? [e, t] : [t, e], ln = k(\n (e) => {\n const [t, n] = He(\"value\"), [s = t[0], o] = P(\"focusedDate\"), r = bt({\n ...e,\n focusedDate: s,\n setFocusedDate: o\n }), a = N(\"rangestart\"), u = N(\"rangeend\"), [f, l] = P(\n \"tentative\"\n ), [c, d] = it();\n L(() => d(void 0), [f]);\n function i(y) {\n r.onFocus(y), m(y);\n }\n function m(y) {\n y.stopPropagation(), f && d(y.detail);\n }\n function g(y) {\n const p = y.detail;\n y.stopPropagation(), f ? (n($t(f, p)), l(void 0), u(E(p)), r.dispatch()) : (l(p), a(E(p)));\n }\n const b = f ? $t(f, c ?? f) : t;\n return /* @__PURE__ */ h(\"host\", { shadowDom: !0, focus: r.focus, children: /* @__PURE__ */ h(\n yt,\n {\n ...e,\n ...r,\n type: \"range\",\n value: b,\n onFocus: i,\n onHover: m,\n onSelect: g\n }\n ) });\n },\n {\n props: {\n ...pt,\n tentative: {\n type: String,\n value: \"\"\n }\n },\n styles: gt\n }\n);\ncustomElements.define(\"calendar-range\", ln);\nconst un = k(\n (e) => {\n const [t, n] = We(\"value\"), [s = t[0], o] = P(\"focusedDate\"), r = bt({\n ...e,\n focusedDate: s,\n setFocusedDate: o\n });\n function a(u) {\n const f = [...t], l = t.findIndex((c) => c.equals(u.detail));\n l < 0 ? f.push(u.detail) : f.splice(l, 1), n(f), r.dispatch();\n }\n return /* @__PURE__ */ h(\"host\", { shadowDom: !0, focus: r.focus, children: /* @__PURE__ */ h(\n yt,\n {\n ...e,\n ...r,\n type: \"multi\",\n value: t,\n onSelect: a\n }\n ) });\n },\n { props: pt, styles: gt }\n);\ncustomElements.define(\"calendar-multi\", un);\nexport {\n nn as CalendarDate,\n Qe as CalendarMonth,\n un as CalendarMulti,\n ln as CalendarRange,\n cn as CalendarSelectMonth,\n rn as CalendarSelectYear\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as e,n as t}from"./ui-CGwc8KXJ.js";import{a as n,f as r,i,n as a,r as o,s,t as c,y as l}from"./motion-CbwLBhMt.js";import{n as u}from"./morph-Cq3V_23_.js";var d=e=>{let{height:t,width:n}=e.getBoundingClientRect();return{height:t,width:n}},f=(e,t,n)=>n.some(n=>Math.abs(n===`height`||n===`maxHeight`?e.height-t.height:e.width-t.width)>=1),p=(e,t={})=>{let n=[...new Set(t.properties??[`height`,`width`])],r=t.role??`layout`,i=d(e),a=null,o=0,c=!1,u=[...new Set([...n,...n.includes(`maxHeight`)?[`height`]:[],...n.includes(`maxWidth`)?[`width`]:[]])],p=Object.fromEntries(u.map(t=>[t,e.style.getPropertyValue(t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`))])),m={overflow:e.style.overflow,willChange:e.style.willChange},h=()=>{for(let[t,n]of Object.entries(p))e.style.setProperty(t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),n);Object.assign(e.style,m)},g=()=>{let t=d(e);return a?.handle.stop(),a=null,h(),t},_=(t=()=>{},u={})=>{if(c)return null;if(a&&u.animate!==!1&&u.key!==void 0&&a.key===u.key)return t(),a.handle;let p=a?g():i;t();let m=d(e);if(i=m,u.animate===!1||!f(p,m,n)||l())return null;let _={...n.some(e=>e===`height`||e===`maxHeight`)?{height:[`${p.height}px`,`${m.height}px`]}:{},...n.some(e=>e===`width`||e===`maxWidth`)?{width:[`${p.width}px`,`${m.width}px`]}:{}};e.style.overflow=`hidden`,e.style.willChange=n.map(e=>e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)).join(`, `),`height`in _&&(e.style.height=`${p.height}px`),`width`in _&&(e.style.width=`${p.width}px`),n.includes(`maxHeight`)&&(e.style.maxHeight=`${Math.max(p.height,m.height)}px`),n.includes(`maxWidth`)&&(e.style.maxWidth=`${Math.max(p.width,m.width)}px`),e.getBoundingClientRect();let v=s(e,{keyframes:_,role:r,cleanup:h}),y={handle:v,generation:++o,key:u.key};return a=y,v.finished.finally(()=>{a?.generation===y.generation&&(a=null)}),v};return{update:_,refresh:e=>_(void 0,e),destroy(){c||(c=!0,a&&g(),h())}}},m=`data-ui-bounds`,h=(e,t)=>{if(!e||typeof t.evaluate!=`function`)return{};let n=t.evaluate(e);return typeof n==`string`?{role:n}:n??{}},g=e=>{e.directive(`ui-bounds`,(e,{expression:t},n)=>{if(!(e instanceof HTMLElement))return;e.setAttribute(m,``),u(e,m);let r=p(e,h(t,n)),i=!1,a=new MutationObserver(t=>{t.every(t=>t.type===`attributes`&&t.target===e&&(t.attributeName===`style`||t.attributeName===`data-ui-bounds`))||i||(i=!0,queueMicrotask(()=>{i=!1,r.refresh()}))});a.observe(e,{attributes:!0,characterData:!0,childList:!0,subtree:!0}),n.cleanup?.(()=>{a.disconnect(),r.destroy(),e.removeAttribute(m)})})},_=e=>e.selector?e.selector:e.target?e.target.startsWith(`#`)?e.target:`#${i(e.target)}`:null,v=e=>{let t=getComputedStyle(e);return[t.overflow,t.overflowX,t.overflowY].some(e=>e&&e!==`visible`)},y=e=>{let t=e.parentElement;for(;t&&t!==document.body&&t!==document.documentElement;){if(v(t))return t;t=t.parentElement}return null},b=e=>e.width===0&&e.height===0&&e.top===0&&e.left===0,x=e=>{let t=y(e);if(!t)return!0;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();if(b(n)&&b(r))return!0;let i=Math.min(n.height,160);return n.top>=r.top&&n.left<r.right&&n.right>r.left&&n.bottom+i<=r.bottom},S=e=>{let t=[];return e.forEach(e=>{let r=_(e),i=r?document.querySelector(r):null;if(!i)return;let a=[],o=i.getAttribute(`data-ui-motion-key`);if(i.querySelectorAll(`[data-ui-motion-key]`).forEach(e=>{let t=e.getAttribute(`data-ui-motion-key`);if(t&&x(e)){let e=n(t);a.push({from:{selector:e},to:{selector:e}})}}),(o||i.hasAttribute(`data-ui-motion-layout`))&&x(i)){let e=o?n(o):r;a.unshift({from:{selector:e},to:{selector:e}})}t.push(...a)}),t},C=(e,t,n={})=>{let i=n.update;if(!i)return r();let o=S(Array.isArray(t)?t:[t]);if(o.length===0||l(n.reducedMotion))return r(i);let s={...n,preset:`stream`};return n.scope&&n.scope!==`target`&&(s.scope=n.scope),a(i,o,s)},w=new WeakSet,T=n=>{w.has(n)||(w.add(n),g(n),o(()=>n.nextTick()),t(c),e((e,t,n)=>{C(e,t,{scope:`target`,update:n})}))};export{g as n,p as r,T as t};
|
|
2
|
+
//# sourceMappingURL=capability-motion-C3q5Xzv2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-motion-C3q5Xzv2.js","names":[],"sources":["../../../../../../../../client/src/motion/bounds.ts","../../../../../../../../client/src/directives/bounds.ts","../../../../../../../../client/src/motion/stream.ts","../../../../../../../../client/src/capabilities/motion.ts"],"sourcesContent":["import type {MotionHandle} from './animate';\nimport {type MotionRoleName} from './recipe';\nimport {shouldReduceMotion} from './reduced-motion';\nimport {animateSize} from './size';\n\ntype BoundsProperty = 'height' | 'width' | 'maxHeight' | 'maxWidth';\n\ntype BoundsMotionOptions = Readonly<{\n properties?: readonly BoundsProperty[];\n role?: MotionRoleName;\n}>;\n\ntype BoundsUpdateOptions = Readonly<{\n animate?: boolean;\n /** Stable identity for an animated destination, used to coalesce duplicate syncs. */\n key?: string;\n}>;\n\ntype BoundsMotion = Readonly<{\n update(mutate?: () => void, options?: BoundsUpdateOptions): MotionHandle | null;\n refresh(options?: BoundsUpdateOptions): MotionHandle | null;\n destroy(): void;\n}>;\n\ntype Bounds = Readonly<{height: number; width: number}>;\n\nconst boundsOf = (element: HTMLElement): Bounds => {\n const {height, width} = element.getBoundingClientRect();\n return {height, width};\n};\n\nconst changed = (from: Bounds, to: Bounds, properties: readonly BoundsProperty[]): boolean => (\n properties.some((property) => (\n (property === 'height' || property === 'maxHeight' ? Math.abs(from.height - to.height) : Math.abs(from.width - to.width)) >= 1\n ))\n);\n\nconst createBoundsMotion = (\n element: HTMLElement,\n options: BoundsMotionOptions = {},\n): BoundsMotion => {\n const properties: BoundsProperty[] = [...new Set<BoundsProperty>(options.properties ?? ['height', 'width'])];\n const role = options.role ?? 'layout';\n let settled = boundsOf(element);\n let active: {handle: MotionHandle; generation: number; key: string | undefined} | null = null;\n let generation = 0;\n let destroyed = false;\n\n const presentationProperties = [...new Set<BoundsProperty>([\n ...properties,\n ...(properties.includes('maxHeight') ? ['height' as const] : []),\n ...(properties.includes('maxWidth') ? ['width' as const] : []),\n ])];\n const baseline = Object.fromEntries(presentationProperties.map((property) => [property, element.style.getPropertyValue(\n property.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`),\n )])) as Record<BoundsProperty, string>;\n const presentation = {\n overflow: element.style.overflow,\n willChange: element.style.willChange,\n };\n\n const restore = (): void => {\n for (const [property, value] of Object.entries(baseline)) {\n element.style.setProperty(property.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`), value);\n }\n Object.assign(element.style, presentation);\n };\n\n const stop = (): Bounds => {\n const rendered = boundsOf(element);\n active?.handle.stop();\n active = null;\n restore();\n return rendered;\n };\n\n const update = (mutate: () => void = () => {}, updateOptions: BoundsUpdateOptions = {}): MotionHandle | null => {\n if (destroyed) return null;\n if (active && updateOptions.animate !== false && updateOptions.key !== undefined && active.key === updateOptions.key) {\n mutate();\n return active.handle;\n }\n const from = active ? stop() : settled;\n mutate();\n const to = boundsOf(element);\n settled = to;\n if (updateOptions.animate === false || !changed(from, to, properties)) return null;\n if (shouldReduceMotion()) return null;\n\n const keyframes = {\n ...(properties.some((property) => property === 'height' || property === 'maxHeight')\n ? {height: [`${from.height}px`, `${to.height}px`]} : {}),\n ...(properties.some((property) => property === 'width' || property === 'maxWidth')\n ? {width: [`${from.width}px`, `${to.width}px`]} : {}),\n };\n element.style.overflow = 'hidden';\n element.style.willChange = properties.map((property) => property.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)).join(', ');\n if ('height' in keyframes) element.style.height = `${from.height}px`;\n if ('width' in keyframes) element.style.width = `${from.width}px`;\n if (properties.includes('maxHeight')) element.style.maxHeight = `${Math.max(from.height, to.height)}px`;\n if (properties.includes('maxWidth')) element.style.maxWidth = `${Math.max(from.width, to.width)}px`;\n // Commit the source bounds before Motion takes ownership so a server morph\n // cannot collapse the source and destination into the same rendered frame.\n element.getBoundingClientRect();\n const handle = animateSize(element, {keyframes, role, cleanup: restore});\n const current = {handle, generation: ++generation, key: updateOptions.key};\n active = current;\n void handle.finished.finally(() => {\n if (active?.generation !== current.generation) return;\n active = null;\n });\n return handle;\n };\n\n return {\n update,\n refresh: (updateOptions) => update(undefined, updateOptions),\n destroy() {\n if (destroyed) return;\n destroyed = true;\n if (active) stop();\n restore();\n },\n };\n};\n\nexport {createBoundsMotion};\nexport type {BoundsMotion, BoundsMotionOptions, BoundsProperty, BoundsUpdateOptions};\n","import type Alpine from 'alpinejs';\nimport {createBoundsMotion, type BoundsMotionOptions} from '@client/motion/bounds';\nimport type {MotionRoleName} from '@client/motion/recipe';\nimport {declareMorphAttributes} from '@client/runtime/morph';\n\nconst BOUNDS_ATTR = 'data-ui-bounds';\n\nconst readOptions = (expression: string | undefined, utilities: Alpine.DirectiveUtilities): BoundsMotionOptions => {\n if (!expression || typeof utilities.evaluate !== 'function') return {};\n const value = utilities.evaluate(expression) as BoundsMotionOptions | string | undefined;\n return typeof value === 'string' ? {role: value as MotionRoleName} : value ?? {};\n};\n\nconst registerBoundsDirective = (Alpine: Alpine.Alpine): void => {\n Alpine.directive('ui-bounds', (el, {expression}, utilities) => {\n if (!(el instanceof HTMLElement)) return;\n\n el.setAttribute(BOUNDS_ATTR, '');\n declareMorphAttributes(el, BOUNDS_ATTR);\n const bounds = createBoundsMotion(el, readOptions(expression, utilities));\n let scheduled = false;\n const observer = new MutationObserver((records) => {\n if (records.every((record) => record.type === 'attributes'\n && record.target === el\n && (record.attributeName === 'style' || record.attributeName === BOUNDS_ATTR))) return;\n if (scheduled) return;\n scheduled = true;\n queueMicrotask(() => {\n scheduled = false;\n bounds.refresh();\n });\n });\n observer.observe(el, {attributes: true, characterData: true, childList: true, subtree: true});\n\n utilities.cleanup?.(() => {\n observer.disconnect();\n bounds.destroy();\n el.removeAttribute(BOUNDS_ATTR);\n });\n });\n};\n\nexport {BOUNDS_ATTR, registerBoundsDirective};\n","import {animateView, type AnimateViewOptions} from './view';\nimport {cssEscape, keySelector, type MotionTarget, type ViewScope} from './targets';\nimport {noopHandle, type MotionHandle} from './animate';\nimport {shouldReduceMotion, type MotionPreference} from './reduced-motion';\n\ntype StreamPatchLike = {\n html?: string | null;\n target?: string | null;\n selector?: string | null;\n};\n\ntype AnimateStreamPatchOptions = Omit<AnimateViewOptions, 'scope' | 'preset'> & {\n scope?: ViewScope | 'target';\n update?: () => void | Promise<void>;\n reducedMotion?: MotionPreference;\n};\n\nconst targetSelectorForPatch = (patch: StreamPatchLike): string | null => {\n if (patch.selector) return patch.selector;\n if (!patch.target) return null;\n return patch.target.startsWith('#') ? patch.target : `#${cssEscape(patch.target)}`;\n};\n\nconst clipsOverflow = (element: Element): boolean => {\n const style = getComputedStyle(element);\n return [style.overflow, style.overflowX, style.overflowY].some((value) => value && value !== 'visible');\n};\n\nconst nearestClippingAncestor = (element: Element): Element | null => {\n let current = element.parentElement;\n while (current && current !== document.body && current !== document.documentElement) {\n if (clipsOverflow(current)) return current;\n current = current.parentElement;\n }\n return null;\n};\n\nconst isZeroRect = (rect: DOMRect): boolean => (\n rect.width === 0 && rect.height === 0 && rect.top === 0 && rect.left === 0\n);\n\nconst isComfortablyInsideClip = (element: Element): boolean => {\n const clip = nearestClippingAncestor(element);\n if (!clip) return true;\n\n const rect = element.getBoundingClientRect();\n const clipRect = clip.getBoundingClientRect();\n if (isZeroRect(rect) && isZeroRect(clipRect)) return true;\n\n const movementGuard = Math.min(rect.height, 160);\n return (\n rect.top >= clipRect.top\n && rect.left < clipRect.right\n && rect.right > clipRect.left\n && rect.bottom + movementGuard <= clipRect.bottom\n );\n};\n\nconst streamTargetsFromPatches = (patches: StreamPatchLike[]): MotionTarget[] => {\n const targets: MotionTarget[] = [];\n\n patches.forEach((patch) => {\n const selector = targetSelectorForPatch(patch);\n const target = selector ? document.querySelector(selector) : null;\n if (!target) return;\n\n const patchTargets: MotionTarget[] = [];\n const rootKey = target.getAttribute('data-ui-motion-key');\n target.querySelectorAll('[data-ui-motion-key]').forEach((element) => {\n const key = element.getAttribute('data-ui-motion-key');\n if (key && isComfortablyInsideClip(element)) {\n const selector = keySelector(key);\n patchTargets.push({from: {selector}, to: {selector}});\n }\n });\n if ((rootKey || target.hasAttribute('data-ui-motion-layout')) && isComfortablyInsideClip(target)) {\n const rootSelector = rootKey ? keySelector(rootKey) : selector as string;\n patchTargets.unshift({from: {selector: rootSelector}, to: {selector: rootSelector}});\n }\n\n targets.push(...patchTargets);\n });\n\n return targets;\n};\n\nconst animateStreamPatch = <AlpineInstance>(\n _Alpine: AlpineInstance,\n patchOrPatches: StreamPatchLike | StreamPatchLike[],\n options: AnimateStreamPatchOptions = {},\n): MotionHandle => {\n const update = options.update;\n if (!update) return noopHandle();\n\n const patches = Array.isArray(patchOrPatches) ? patchOrPatches : [patchOrPatches];\n const targets = streamTargetsFromPatches(patches);\n if (targets.length === 0 || shouldReduceMotion(options.reducedMotion)) {\n return noopHandle(update);\n }\n\n const viewOptions: AnimateViewOptions = {\n ...options,\n preset: 'stream',\n };\n if (options.scope && options.scope !== 'target') viewOptions.scope = options.scope;\n\n return animateView(update, targets, viewOptions);\n};\n\nexport {animateStreamPatch, streamTargetsFromPatches};\nexport type {AnimateStreamPatchOptions, StreamPatchLike};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerBoundsDirective} from '../directives/bounds';\nimport {motion} from '../motion';\nimport {animateStreamPatch} from '../motion/stream';\nimport {configureViewFlush} from '../motion/view';\nimport {registerStreamPatchAnimator} from '../runtime/engine/stream';\nimport {registerUiMotion} from '../runtime/ui';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerMotionCapability = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerBoundsDirective(AlpineInstance);\n configureViewFlush(() => AlpineInstance.nextTick());\n registerUiMotion(motion);\n registerStreamPatchAnimator((Alpine, patches, update) => {\n animateStreamPatch(Alpine, patches, {scope: 'target', update});\n });\n};\n\nexport {motion, registerBoundsDirective, registerMotionCapability};\nexport type * from '../motion';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,s as t}from"./dom-DiTFTWeR.js";import{a as n,c as r,f as i,l as a,r as o}from"./codecs-CQ7olTJL.js";import{t as s}from"./cleanup-manager-D9QiZF_Q.js";import{a as c,i as l,n as u,r as d}from"./pdd-BG5sXFGF.js";var f=60,p=1,m=8,h=24,g=`[x-ui-resizable\\:handle], [data-ui-resize-handle]`,_=`data-ui-resizable-managed-disabled`,v={resizeAxis:a([`x`,`y`],`x`),resizeMode:a([`onChange`,`onEnd`],`onChange`),resizeMin:i.default(String(f)),resizeMax:i,resizeStep:r.default(p).min(p),resizeHitArea:r.default(m).min(0),resizeCoarseHitArea:r.default(h).min(0),resizeDirection:a([`positive`,`negative`],`positive`)},y=({value:e,element:t,axis:n,fallback:r})=>{if(e===void 0||e.trim()===``)return r;let i=Number(e);if(Number.isFinite(i))return i;if(e.endsWith(`px`)){let t=Number(e.slice(0,-2));if(Number.isFinite(t))return t}if(e.endsWith(`rem`)){let t=Number(e.slice(0,-3)),n=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||`16`);if(Number.isFinite(t)&&Number.isFinite(n))return t*n}if(e.endsWith(`em`)){let n=Number(e.slice(0,-2)),r=Number.parseFloat(getComputedStyle(t).fontSize||`16`);if(Number.isFinite(n)&&Number.isFinite(r))return n*r}if(typeof document>`u`)return r;let a=document.createElement(`div`);a.style.position=`absolute`,a.style.visibility=`hidden`,a.style.pointerEvents=`none`,a.style.width=n===`x`?e:`0`,a.style.height=n===`y`?e:`0`,t.append(a);let o=a.getBoundingClientRect();a.remove();let s=n===`x`?o.width:o.height;return s>0?s:r},b=e=>({$width:e.width,$height:e.height,$delta:e.delta,$axis:e.axis,$phase:e.phase,$previewWidth:e.previewWidth,$previewHeight:e.previewHeight}),x=({element:e,handle:n,axis:r=`x`,min:i=f,max:a=null,step:g=p,mode:v=`onChange`,hitArea:y=m,coarseHitArea:b=h,direction:x=`positive`,disabled:S=()=>!1,onStart:C,onResize:w,onEnd:T})=>{let E=null,D=new s,O=x===`negative`?-1:1,k=()=>{let t=S();return t?(e.setAttribute(`data-disabled`,``),e.setAttribute(_,``),n.setAttribute(`data-disabled`,``),n.setAttribute(_,``)):(e.hasAttribute(_)&&(e.removeAttribute(`data-disabled`),e.removeAttribute(_)),n.hasAttribute(_)&&(n.removeAttribute(`data-disabled`),n.removeAttribute(_))),n.setAttribute(`aria-disabled`,t?`true`:`false`),t},A=()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(pointer: coarse)`).matches?b:y,j=()=>{e.setAttribute(`data-ui-resizable`,``),e.dataset.resizeAxis=r,e.dataset.resizeMode=v,e.dataset.resizeDirection=x,n.setAttribute(`data-ui-resize-handle`,``),n.setAttribute(`role`,`separator`),n.setAttribute(`tabindex`,n.getAttribute(`tabindex`)??`0`),n.setAttribute(`aria-orientation`,r===`x`?`vertical`:`horizontal`),n.style.touchAction=`none`,r===`x`?n.style.minWidth=`${A()}px`:n.style.minHeight=`${A()}px`},M=r=>{t({el:e,attr:`data-resizing`,present:r}),t({el:n,attr:`data-resizing`,present:r})};D.add(()=>M(!1));let N=({phase:t,delta:n,input:s,previewOnly:c=!1})=>{let l=e.getBoundingClientRect(),u=E??{width:l.width,height:l.height,startWidth:l.width,startHeight:l.height,startClientX:s.clientX,startClientY:s.clientY},d=r===`x`?o(u.startWidth+n,i,a??1/0,g):u.startWidth,f=r===`y`?o(u.startHeight+n,i,a??1/0,g):u.startHeight;return{width:c?u.width:d,height:c?u.height:f,previewWidth:d,previewHeight:f,delta:n,axis:r,phase:t,input:s}},P=e=>{let t=r===`x`?e.previewWidth:e.previewHeight;n.setAttribute(`aria-valuenow`,String(Math.round(t))),n.setAttribute(`aria-valuemin`,String(Math.round(i))),a===null?n.removeAttribute(`aria-valuemax`):n.setAttribute(`aria-valuemax`,String(Math.round(a)))},F=t=>{let n=e.getBoundingClientRect();E={width:n.width,height:n.height,startWidth:n.width,startHeight:n.height,startClientX:t.clientX,startClientY:t.clientY};let r=N({phase:`start`,delta:0,input:t});return P(r),M(!0),C?.(r),r},I=e=>{if(!E)return null;let t=(r===`x`?e.clientX-E.startClientX:e.clientY-E.startClientY)*O,n=N({phase:`resize`,delta:t,input:e,previewOnly:v===`onEnd`});return P(n),w?.(n),v===`onChange`&&(E.width=n.width,E.height=n.height),n},L=e=>{if(!E)return null;let t=(r===`x`?e.clientX-E.startClientX:e.clientY-E.startClientY)*O,n=N({phase:`end`,delta:t,input:e});return P(n),T?.(n),E=null,M(!1),n};j(),k(),P(N({phase:`start`,delta:0,input:{clientX:0,clientY:0}})),D.add(c({element:n,canDrag:()=>!k(),getInitialData:()=>({type:`ui-resizable`}),onGenerateDragPreview:l,onDragStart:e=>{k()||F(d(e))},onDrag:e=>{k()||I(u(e))},onDrop:e=>{L(u(e))}}));let R=t=>{if(k())return;let n=g*(t.shiftKey?10:1),o=null;if(r===`x`&&t.key===`ArrowRight`&&(o=n),r===`x`&&t.key===`ArrowLeft`&&(o=-n),r===`y`&&t.key===`ArrowDown`&&(o=n),r===`y`&&t.key===`ArrowUp`&&(o=-n),t.key===`Home`&&(o=(i-e.getBoundingClientRect()[r===`x`?`width`:`height`])*O),t.key===`End`&&a!==null&&(o=(a-e.getBoundingClientRect()[r===`x`?`width`:`height`])*O),o!==null&&(t.preventDefault(),F({clientX:0,clientY:0}),E)){E.startClientX=0,E.startClientY=0;let e=r===`x`?{clientX:o,clientY:0}:{clientX:0,clientY:o};I(e),L(e)}};return n.addEventListener(`keydown`,R),D.add(()=>n.removeEventListener(`keydown`,R)),()=>D.run()},S=t=>{typeof t.directive==`function`&&t.directive(`ui-resizable`,(r,{value:i,expression:a},{cleanup:o})=>{if(!(r instanceof HTMLElement)||i===`handle`)return;let s=r,c=s.querySelector(g);if(!c)return;let l=n({el:s,schema:v}),u=l.resizeAxis,d=y({value:l.resizeMin,element:s,axis:u,fallback:f}),p=l.resizeMax,m=p?y({value:p,element:s,axis:u,fallback:1/0}):null,h=l.resizeMode,S=a?t.evaluateLater(s,a):null,C=t=>{let n=t.phase===`start`?`ui:resize-start`:t.phase===`end`?`ui:resize-end`:`ui:resize`;e({el:s,name:n,detail:t}),S&&(h!==`onEnd`||t.phase!==`resize`)&&S(void 0,b(t))};o(x({element:s,handle:c,axis:u,min:d,max:m===1/0?null:m,step:l.resizeStep,mode:h,hitArea:l.resizeHitArea,coarseHitArea:l.resizeCoarseHitArea,direction:l.resizeDirection,disabled:()=>s.hasAttribute(`data-disabled`)&&!s.hasAttribute(_)||s.hasAttribute(`data-resize-disabled`)||s.dataset.disabled===`true`&&!s.hasAttribute(_),onStart:C,onResize:C,onEnd:C}))})},C=new WeakSet,w=e=>{C.has(e)||(C.add(e),S(e))};export{x as n,w as t};
|
|
2
|
+
//# sourceMappingURL=capability-resizable-ByUbMIHF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-resizable-ByUbMIHF.js","names":[],"sources":["../../../../../../../../client/src/runtime/drag-and-drop/index.ts","../../../../../../../../client/src/capabilities/resizable.ts"],"sourcesContent":["import {draggable} from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport {disableNativeDragPreview} from '@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview';\nimport type Alpine from 'alpinejs';\n\nimport {boundNumber, decodeProps, number, oneOf, string} from '../codecs';\nimport {CleanupManager} from '../cleanup-manager';\nimport {dispatch, setPresence} from '../../utils';\nimport {currentDragInput, initialDragInput} from './pdd';\n\ntype ResizeAxis = 'x' | 'y';\ntype ResizeMode = 'onChange' | 'onEnd';\ntype ResizePhase = 'start' | 'resize' | 'end';\ntype ResizeDirection = 'positive' | 'negative';\n\ntype ResizeEvent = {\n width: number;\n height: number;\n previewWidth: number;\n previewHeight: number;\n delta: number;\n axis: ResizeAxis;\n phase: ResizePhase;\n input: { clientX: number; clientY: number };\n};\n\ntype ResizableOptions = {\n element: HTMLElement;\n handle: HTMLElement;\n axis?: ResizeAxis;\n min?: number;\n max?: number | null;\n step?: number;\n mode?: ResizeMode;\n hitArea?: number;\n coarseHitArea?: number;\n direction?: ResizeDirection;\n disabled?: () => boolean;\n onStart?: (event: ResizeEvent) => void;\n onResize?: (event: ResizeEvent) => void;\n onEnd?: (event: ResizeEvent) => void;\n};\n\ntype ResizeState = {\n width: number;\n height: number;\n startWidth: number;\n startHeight: number;\n startClientX: number;\n startClientY: number;\n};\n\nconst DEFAULT_MIN = 60;\nconst DEFAULT_STEP = 1;\nconst DEFAULT_HIT_AREA = 8;\nconst DEFAULT_COARSE_HIT_AREA = 24;\nconst HANDLE_SELECTOR = '[x-ui-resizable\\\\:handle], [data-ui-resize-handle]';\nconst MANAGED_DISABLED_ATTR = 'data-ui-resizable-managed-disabled';\nconst RESIZE_AXES = ['x', 'y'] as const;\nconst RESIZE_MODES = ['onChange', 'onEnd'] as const;\nconst RESIZE_DIRECTIONS = ['positive', 'negative'] as const;\n\nconst resizableSchema = {\n resizeAxis: oneOf(RESIZE_AXES, 'x'),\n resizeMode: oneOf(RESIZE_MODES, 'onChange'),\n resizeMin: string.default(String(DEFAULT_MIN)),\n resizeMax: string,\n resizeStep: number.default(DEFAULT_STEP).min(DEFAULT_STEP),\n resizeHitArea: number.default(DEFAULT_HIT_AREA).min(0),\n resizeCoarseHitArea: number.default(DEFAULT_COARSE_HIT_AREA).min(0),\n resizeDirection: oneOf(RESIZE_DIRECTIONS, 'positive'),\n};\n\nconst parseLength = ({value, element, axis, fallback}: {\n value: string | undefined;\n element: HTMLElement;\n axis: ResizeAxis;\n fallback: number;\n}): number => {\n if (value === undefined || value.trim() === '') return fallback;\n const parsed = Number(value);\n if (Number.isFinite(parsed)) return parsed;\n\n if (value.endsWith('px')) {\n const pixels = Number(value.slice(0, -2));\n if (Number.isFinite(pixels)) return pixels;\n }\n\n if (value.endsWith('rem')) {\n const rem = Number(value.slice(0, -3));\n const fontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize || '16');\n if (Number.isFinite(rem) && Number.isFinite(fontSize)) return rem * fontSize;\n }\n\n if (value.endsWith('em')) {\n const em = Number(value.slice(0, -2));\n const fontSize = Number.parseFloat(getComputedStyle(element).fontSize || '16');\n if (Number.isFinite(em) && Number.isFinite(fontSize)) return em * fontSize;\n }\n\n if (typeof document === 'undefined') return fallback;\n\n const probe = document.createElement('div');\n probe.style.position = 'absolute';\n probe.style.visibility = 'hidden';\n probe.style.pointerEvents = 'none';\n probe.style.width = axis === 'x' ? value : '0';\n probe.style.height = axis === 'y' ? value : '0';\n element.append(probe);\n const rect = probe.getBoundingClientRect();\n probe.remove();\n\n const measured = axis === 'x' ? rect.width : rect.height;\n return measured > 0 ? measured : fallback;\n};\n\nconst detailFromResize = (event: ResizeEvent): Record<string, unknown> => ({\n $width: event.width,\n $height: event.height,\n $delta: event.delta,\n $axis: event.axis,\n $phase: event.phase,\n $previewWidth: event.previewWidth,\n $previewHeight: event.previewHeight,\n});\n\nconst createResizable = ({\n element,\n handle,\n axis = 'x',\n min = DEFAULT_MIN,\n max = null,\n step = DEFAULT_STEP,\n mode = 'onChange',\n hitArea = DEFAULT_HIT_AREA,\n coarseHitArea = DEFAULT_COARSE_HIT_AREA,\n direction = 'positive',\n disabled = () => false,\n onStart,\n onResize,\n onEnd,\n }: ResizableOptions): (() => void) => {\n let state: ResizeState | null = null;\n const cleanup = new CleanupManager();\n const directionFactor = direction === 'negative' ? -1 : 1;\n\n const syncDisabled = (): boolean => {\n const isDisabled = disabled();\n if (isDisabled) {\n element.setAttribute('data-disabled', '');\n element.setAttribute(MANAGED_DISABLED_ATTR, '');\n handle.setAttribute('data-disabled', '');\n handle.setAttribute(MANAGED_DISABLED_ATTR, '');\n } else {\n if (element.hasAttribute(MANAGED_DISABLED_ATTR)) {\n element.removeAttribute('data-disabled');\n element.removeAttribute(MANAGED_DISABLED_ATTR);\n }\n if (handle.hasAttribute(MANAGED_DISABLED_ATTR)) {\n handle.removeAttribute('data-disabled');\n handle.removeAttribute(MANAGED_DISABLED_ATTR);\n }\n }\n handle.setAttribute('aria-disabled', isDisabled ? 'true' : 'false');\n return isDisabled;\n };\n\n const hitTarget = (): number => {\n const coarse = typeof window !== 'undefined'\n && typeof window.matchMedia === 'function'\n && window.matchMedia('(pointer: coarse)').matches;\n return coarse ? coarseHitArea : hitArea;\n };\n\n const applyHandleBase = (): void => {\n element.setAttribute('data-ui-resizable', '');\n element.dataset.resizeAxis = axis;\n element.dataset.resizeMode = mode;\n element.dataset.resizeDirection = direction;\n handle.setAttribute('data-ui-resize-handle', '');\n handle.setAttribute('role', 'separator');\n handle.setAttribute('tabindex', handle.getAttribute('tabindex') ?? '0');\n handle.setAttribute('aria-orientation', axis === 'x' ? 'vertical' : 'horizontal');\n handle.style.touchAction = 'none';\n if (axis === 'x') handle.style.minWidth = `${hitTarget()}px`;\n else handle.style.minHeight = `${hitTarget()}px`;\n };\n\n const setResizing = (resizing: boolean): void => {\n setPresence({el: element, attr: 'data-resizing', present: resizing});\n setPresence({el: handle, attr: 'data-resizing', present: resizing});\n };\n cleanup.add(() => setResizing(false));\n\n const eventFor = ({phase, delta, input, previewOnly = false}: {\n phase: ResizePhase;\n delta: number;\n input: { clientX: number; clientY: number };\n previewOnly?: boolean;\n }): ResizeEvent => {\n const rect = element.getBoundingClientRect();\n const current = state ?? {\n width: rect.width,\n height: rect.height,\n startWidth: rect.width,\n startHeight: rect.height,\n startClientX: input.clientX,\n startClientY: input.clientY,\n };\n const previewWidth = axis === 'x'\n ? boundNumber(current.startWidth + delta, min, max ?? Number.POSITIVE_INFINITY, step)\n : current.startWidth;\n const previewHeight = axis === 'y'\n ? boundNumber(current.startHeight + delta, min, max ?? Number.POSITIVE_INFINITY, step)\n : current.startHeight;\n const width = previewOnly ? current.width : previewWidth;\n const height = previewOnly ? current.height : previewHeight;\n\n return {width, height, previewWidth, previewHeight, delta, axis, phase, input};\n };\n\n const updateAriaValue = (event: ResizeEvent): void => {\n const value = axis === 'x' ? event.previewWidth : event.previewHeight;\n handle.setAttribute('aria-valuenow', String(Math.round(value)));\n handle.setAttribute('aria-valuemin', String(Math.round(min)));\n if (max !== null) handle.setAttribute('aria-valuemax', String(Math.round(max)));\n else handle.removeAttribute('aria-valuemax');\n };\n\n const emitStart = (input: { clientX: number; clientY: number }): ResizeEvent => {\n const rect = element.getBoundingClientRect();\n state = {\n width: rect.width,\n height: rect.height,\n startWidth: rect.width,\n startHeight: rect.height,\n startClientX: input.clientX,\n startClientY: input.clientY,\n };\n const event = eventFor({phase: 'start', delta: 0, input});\n updateAriaValue(event);\n setResizing(true);\n onStart?.(event);\n return event;\n };\n\n const emitResize = (input: { clientX: number; clientY: number }): ResizeEvent | null => {\n if (!state) return null;\n const physicalDelta = axis === 'x' ? input.clientX - state.startClientX : input.clientY - state.startClientY;\n const delta = physicalDelta * directionFactor;\n const event = eventFor({phase: 'resize', delta, input, previewOnly: mode === 'onEnd'});\n updateAriaValue(event);\n onResize?.(event);\n if (mode === 'onChange') {\n state.width = event.width;\n state.height = event.height;\n }\n return event;\n };\n\n const emitEnd = (input: { clientX: number; clientY: number }): ResizeEvent | null => {\n if (!state) return null;\n const physicalDelta = axis === 'x' ? input.clientX - state.startClientX : input.clientY - state.startClientY;\n const delta = physicalDelta * directionFactor;\n const event = eventFor({phase: 'end', delta, input});\n updateAriaValue(event);\n onEnd?.(event);\n state = null;\n setResizing(false);\n return event;\n };\n\n applyHandleBase();\n syncDisabled();\n updateAriaValue(eventFor({phase: 'start', delta: 0, input: {clientX: 0, clientY: 0}}));\n\n cleanup.add(draggable({\n element: handle,\n canDrag: () => !syncDisabled(),\n getInitialData: () => ({type: 'ui-resizable'}),\n onGenerateDragPreview: disableNativeDragPreview,\n onDragStart: (event) => {\n if (syncDisabled()) return;\n emitStart(initialDragInput(event));\n },\n onDrag: (event) => {\n if (syncDisabled()) return;\n emitResize(currentDragInput(event));\n },\n onDrop: (event) => {\n emitEnd(currentDragInput(event));\n },\n }));\n\n const onKeydown = (event: KeyboardEvent): void => {\n if (syncDisabled()) return;\n\n const multiplier = event.shiftKey ? 10 : 1;\n const amount = step * multiplier;\n let delta: number | null = null;\n\n if (axis === 'x' && event.key === 'ArrowRight') delta = amount;\n if (axis === 'x' && event.key === 'ArrowLeft') delta = -amount;\n if (axis === 'y' && event.key === 'ArrowDown') delta = amount;\n if (axis === 'y' && event.key === 'ArrowUp') delta = -amount;\n if (event.key === 'Home') {\n delta = (min - element.getBoundingClientRect()[axis === 'x' ? 'width' : 'height']) * directionFactor;\n }\n if (event.key === 'End' && max !== null) {\n delta = (max - element.getBoundingClientRect()[axis === 'x' ? 'width' : 'height']) * directionFactor;\n }\n\n if (delta === null) return;\n event.preventDefault();\n\n const input = {clientX: 0, clientY: 0};\n emitStart(input);\n if (state) {\n state.startClientX = 0;\n state.startClientY = 0;\n const resizeInput = axis === 'x' ? {clientX: delta, clientY: 0} : {clientX: 0, clientY: delta};\n emitResize(resizeInput);\n emitEnd(resizeInput);\n }\n };\n\n handle.addEventListener('keydown', onKeydown);\n cleanup.add(() => handle.removeEventListener('keydown', onKeydown));\n\n return () => cleanup.run();\n};\n\nconst registerResizable = (AlpineInstance: Alpine.Alpine): void => {\n if (typeof AlpineInstance.directive !== 'function') return;\n\n AlpineInstance.directive('ui-resizable', (el, {value, expression}, {cleanup}) => {\n if (!(el instanceof HTMLElement) || value === 'handle') return;\n\n const root = el;\n const handle = root.querySelector<HTMLElement>(HANDLE_SELECTOR);\n if (!handle) return;\n\n const props = decodeProps({el: root, schema: resizableSchema});\n const axis = props.resizeAxis;\n const min = parseLength({\n value: props.resizeMin,\n element: root,\n axis,\n fallback: DEFAULT_MIN,\n });\n const maxValue = props.resizeMax;\n const max = maxValue ? parseLength({\n value: maxValue,\n element: root,\n axis,\n fallback: Number.POSITIVE_INFINITY\n }) : null;\n const mode = props.resizeMode;\n const evaluator = expression\n ? AlpineInstance.evaluateLater(root, expression)\n : null;\n\n const notify = (event: ResizeEvent): void => {\n const eventName = event.phase === 'start'\n ? 'ui:resize-start'\n : event.phase === 'end'\n ? 'ui:resize-end'\n : 'ui:resize';\n\n dispatch({el: root, name: eventName, detail: event});\n if (!evaluator) return;\n if (mode === 'onEnd' && event.phase === 'resize') return;\n evaluator(undefined, detailFromResize(event));\n };\n\n cleanup(createResizable({\n element: root,\n handle,\n axis,\n min,\n max: max === Number.POSITIVE_INFINITY ? null : max,\n step: props.resizeStep,\n mode,\n hitArea: props.resizeHitArea,\n coarseHitArea: props.resizeCoarseHitArea,\n direction: props.resizeDirection,\n disabled: () => root.hasAttribute('data-disabled')\n && !root.hasAttribute(MANAGED_DISABLED_ATTR)\n || root.hasAttribute('data-resize-disabled')\n || (root.dataset.disabled === 'true' && !root.hasAttribute(MANAGED_DISABLED_ATTR)),\n onStart: notify,\n onResize: notify,\n onEnd: notify,\n }));\n });\n};\n\nexport {createResizable, registerResizable};\nexport type {ResizableOptions, ResizeAxis, ResizeDirection, ResizeEvent, ResizeMode, ResizePhase};\nexport {createSortableRegistry} from './sortable';\nexport type {\n SortableAnchor,\n SortableCancelReason,\n SortableCanDropContext,\n SortableDirection,\n SortableDragDetail,\n SortableDropDetail,\n SortableDropIntent,\n SortableEdge,\n SortableFeedback,\n SortableGroup,\n SortableIndicatorFrame,\n SortableInsertSource,\n SortableMoveSource,\n SortableOperation,\n SortableOrientation,\n SortableResolvedPlacement,\n SortableReorderOffset,\n SortableSource,\n UiSortableService,\n} from './sortable';\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {createResizable, registerResizable} from '../runtime/drag-and-drop';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerResizableCapability = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerResizable(AlpineInstance);\n};\n\nexport {createResizable, registerResizableCapability};\nexport type {\n ResizableOptions,\n ResizeAxis,\n ResizeDirection,\n ResizeEvent,\n ResizeMode,\n ResizePhase,\n} from '../runtime/drag-and-drop';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,t}from"./focus-handoff-BE3g0swK.js";var n=new Set([`alt`,`cmd`,`ctrl`,`meta`,`mod`,`shift`,`super`]),r=new Set([`arrow-down`,`arrow-left`,`arrow-right`,`arrow-up`,`backspace`,`caps-lock`,`delete`,`end`,`enter`,`escape`,`home`,`insert`,`page-down`,`page-up`,`pause`,`scroll-lock`,`space`,`tab`]),i={" ":`space`,"/":`slash`,"?":`slash`,Alt:`alt`,ArrowDown:`arrow-down`,ArrowLeft:`arrow-left`,ArrowRight:`arrow-right`,ArrowUp:`arrow-up`,CapsLock:`caps-lock`,Control:`ctrl`,Meta:`meta`,PageDown:`page-down`,PageUp:`page-up`,ScrollLock:`scroll-lock`,Shift:`shift`},a={alt:`Alt`,backspace:`Backspace`,cmd:`Command`,ctrl:`Ctrl`,delete:`Delete`,end:`End`,enter:`Enter`,escape:`Escape`,home:`Home`,insert:`Insert`,meta:`Meta`,"page-down":`Page Down`,"page-up":`Page Up`,pause:`Pause`,"scroll-lock":`Scroll Lock`,shift:`⇧`,slash:`/`,space:`Space`,super:`Super`,tab:`Tab`,"arrow-down":`↓`,"arrow-left":`←`,"arrow-right":`→`,"arrow-up":`↑`},o=[`document`,`window`,`keyup`,`repeat`,`editable`],s=()=>{if(typeof navigator>`u`)return!1;let e=navigator.platform||navigator.userAgent;return/Mac|iPhone|iPad|iPod/i.test(e)},c=e=>i[e]||e.replace(/([a-z])([A-Z])/g,`$1-$2`).replace(/_/g,`-`).toLowerCase(),l=e=>e===`slash`||e.length===1||r.has(e)||/^f(?:[1-9]|1\d|2[0-4])$/.test(e),u=(e,t)=>{let n=e.some(e=>e===`meta`||e===`cmd`||e===`super`)||t&&e.includes(`mod`),r=e.includes(`ctrl`)||!t&&e.includes(`mod`);return{altKey:e.includes(`alt`),ctrlKey:r,metaKey:n,shiftKey:e.includes(`shift`)}},d=e=>e.trim().toLowerCase().split(`.`).map(e=>e.trim()).filter(Boolean),f=(e,t={})=>{let r=d(e);if(r.length===0)return null;let i=t.apple??s(),a=r.filter(e=>n.has(e)),o=r.filter(e=>!n.has(e));if(o.length===0||o.some(e=>!l(e))||o.length>1&&a.length>0)return null;let c=u(a,i),f=o.map((e,t)=>({key:e,...t===0?c:u([],i)}));return{normalized:r.join(`.`),steps:f}},p=e=>e.split(`-`).map(e=>e?`${e[0].toUpperCase()}${e.slice(1)}`:``).join(` `),m={alt:`⌥`,cmd:`⌘`,ctrl:`⌃`,meta:`⌘`,mod:`⌘`,shift:`⇧`,super:`⌘`},h=(e,t)=>t?m[e]??p(e):e===`mod`?`Ctrl`:a[e]??p(e),g=(e,t)=>e===`mod`?t?`meta`:`ctrl`:e===`cmd`||e===`super`?`meta`:e,_=(e,t)=>e===`slash`&&t.includes(`shift`)?`?`:a[e]??p(e),v=(e,t={})=>{let r=d(e);if(r.length===0)return[];let i=t.apple??s(),a=r.filter(e=>n.has(e)),o=r.filter(e=>!n.has(e)),c=a.map(e=>({label:h(e,i),token:g(e,i)}));return o.length===0?[c]:o.length>1&&a.length===0?o.map(e=>[{label:_(e,r),token:e}]):[[...c,...o.map(e=>({label:_(e,r),token:e}))]]},y=(e,t={})=>v(e,t).map(e=>e.map(({label:e})=>e)),b=new WeakMap,x=(e,t)=>{let n=b.get(e);if(!n){let t=new Set,r=new Set,i=()=>r.forEach(e=>e(new Set(t))),a=()=>{t.size!==0&&(t.clear(),i())},o=e=>{let n=[...t].sort().join(` `),r=c(e.key);e.type===`keydown`?t.add(r):t.delete(r),e.type===`keyup`&&r===`meta`&&t.clear(),[[`alt`,e.altKey],[`ctrl`,e.ctrlKey],[`meta`,e.metaKey],[`shift`,e.shiftKey]].forEach(([e,n])=>{n?t.add(e):t.delete(e)}),[...t].sort().join(` `)!==n&&i()},s=e=>{e instanceof KeyboardEvent&&o(e)},l=()=>{e.visibilityState===`hidden`&&a()};e.addEventListener(`keydown`,s,!0),e.addEventListener(`keyup`,s,!0),e.addEventListener(`visibilitychange`,l),e.defaultView?.addEventListener(`blur`,a),n={keys:t,listeners:r,destroy:()=>{e.removeEventListener(`keydown`,s,!0),e.removeEventListener(`keyup`,s,!0),e.removeEventListener(`visibilitychange`,l),e.defaultView?.removeEventListener(`blur`,a)}},b.set(e,n)}return n.listeners.add(t),t(new Set(n.keys)),()=>{n?.listeners.delete(t),n?.listeners.size===0&&(n.destroy(),b.delete(e))}},S=(e,t)=>c(e.key)===t.key&&e.altKey===t.altKey&&e.ctrlKey===t.ctrlKey&&e.metaKey===t.metaKey&&e.shiftKey===t.shiftKey,C=(e,t={})=>{let n=f(e,t);if(!n)return null;let r=Math.max(250,Math.min(5e3,t.timeout??1e3)),i=0,a=0,o=()=>{i=0,a=0};return{shortcut:n,reset:o,match(e,t=performance.now()){i>0&&t-a>r&&o();let s=n.steps[i];if(!s||!S(e,s)){o();let r=n.steps[0];return!r||!S(e,r)?`none`:n.steps.length===1?`complete`:(i=1,a=t,`partial`)}return i===n.steps.length-1?(o(),`complete`):(i+=1,a=t,`partial`)}}},w=e=>e instanceof Element
|
|
2
|
-
//# sourceMappingURL=capability-shortcut-
|
|
1
|
+
import{n as e,t}from"./focus-handoff-BE3g0swK.js";var n=new Set([`alt`,`cmd`,`ctrl`,`meta`,`mod`,`shift`,`super`]),r=new Set([`arrow-down`,`arrow-left`,`arrow-right`,`arrow-up`,`backspace`,`caps-lock`,`delete`,`end`,`enter`,`escape`,`home`,`insert`,`page-down`,`page-up`,`pause`,`scroll-lock`,`space`,`tab`]),i={" ":`space`,"/":`slash`,"?":`slash`,Alt:`alt`,ArrowDown:`arrow-down`,ArrowLeft:`arrow-left`,ArrowRight:`arrow-right`,ArrowUp:`arrow-up`,CapsLock:`caps-lock`,Control:`ctrl`,Meta:`meta`,PageDown:`page-down`,PageUp:`page-up`,ScrollLock:`scroll-lock`,Shift:`shift`},a={alt:`Alt`,backspace:`Backspace`,cmd:`Command`,ctrl:`Ctrl`,delete:`Delete`,end:`End`,enter:`Enter`,escape:`Escape`,home:`Home`,insert:`Insert`,meta:`Meta`,"page-down":`Page Down`,"page-up":`Page Up`,pause:`Pause`,"scroll-lock":`Scroll Lock`,shift:`⇧`,slash:`/`,space:`Space`,super:`Super`,tab:`Tab`,"arrow-down":`↓`,"arrow-left":`←`,"arrow-right":`→`,"arrow-up":`↑`},o=[`document`,`window`,`keyup`,`repeat`,`editable`],s=()=>{if(typeof navigator>`u`)return!1;let e=navigator.platform||navigator.userAgent;return/Mac|iPhone|iPad|iPod/i.test(e)},c=e=>i[e]||e.replace(/([a-z])([A-Z])/g,`$1-$2`).replace(/_/g,`-`).toLowerCase(),l=e=>e===`slash`||e.length===1||r.has(e)||/^f(?:[1-9]|1\d|2[0-4])$/.test(e),u=(e,t)=>{let n=e.some(e=>e===`meta`||e===`cmd`||e===`super`)||t&&e.includes(`mod`),r=e.includes(`ctrl`)||!t&&e.includes(`mod`);return{altKey:e.includes(`alt`),ctrlKey:r,metaKey:n,shiftKey:e.includes(`shift`)}},d=e=>e.trim().toLowerCase().split(`.`).map(e=>e.trim()).filter(Boolean),f=(e,t={})=>{let r=d(e);if(r.length===0)return null;let i=t.apple??s(),a=r.filter(e=>n.has(e)),o=r.filter(e=>!n.has(e));if(o.length===0||o.some(e=>!l(e))||o.length>1&&a.length>0)return null;let c=u(a,i),f=o.map((e,t)=>({key:e,...t===0?c:u([],i)}));return{normalized:r.join(`.`),steps:f}},p=e=>e.split(`-`).map(e=>e?`${e[0].toUpperCase()}${e.slice(1)}`:``).join(` `),m={alt:`⌥`,cmd:`⌘`,ctrl:`⌃`,meta:`⌘`,mod:`⌘`,shift:`⇧`,super:`⌘`},h=(e,t)=>t?m[e]??p(e):e===`mod`?`Ctrl`:a[e]??p(e),g=(e,t)=>e===`mod`?t?`meta`:`ctrl`:e===`cmd`||e===`super`?`meta`:e,_=(e,t)=>e===`slash`&&t.includes(`shift`)?`?`:a[e]??p(e),v=(e,t={})=>{let r=d(e);if(r.length===0)return[];let i=t.apple??s(),a=r.filter(e=>n.has(e)),o=r.filter(e=>!n.has(e)),c=a.map(e=>({label:h(e,i),token:g(e,i)}));return o.length===0?[c]:o.length>1&&a.length===0?o.map(e=>[{label:_(e,r),token:e}]):[[...c,...o.map(e=>({label:_(e,r),token:e}))]]},y=(e,t={})=>v(e,t).map(e=>e.map(({label:e})=>e)),b=new WeakMap,x=(e,t)=>{let n=b.get(e);if(!n){let t=new Set,r=new Set,i=()=>r.forEach(e=>e(new Set(t))),a=()=>{t.size!==0&&(t.clear(),i())},o=e=>{let n=[...t].sort().join(` `),r=c(e.key);e.type===`keydown`?t.add(r):t.delete(r),e.type===`keyup`&&r===`meta`&&t.clear(),[[`alt`,e.altKey],[`ctrl`,e.ctrlKey],[`meta`,e.metaKey],[`shift`,e.shiftKey]].forEach(([e,n])=>{n?t.add(e):t.delete(e)}),[...t].sort().join(` `)!==n&&i()},s=e=>{e instanceof KeyboardEvent&&o(e)},l=()=>{e.visibilityState===`hidden`&&a()};e.addEventListener(`keydown`,s,!0),e.addEventListener(`keyup`,s,!0),e.addEventListener(`visibilitychange`,l),e.defaultView?.addEventListener(`blur`,a),n={keys:t,listeners:r,destroy:()=>{e.removeEventListener(`keydown`,s,!0),e.removeEventListener(`keyup`,s,!0),e.removeEventListener(`visibilitychange`,l),e.defaultView?.removeEventListener(`blur`,a)}},b.set(e,n)}return n.listeners.add(t),t(new Set(n.keys)),()=>{n?.listeners.delete(t),n?.listeners.size===0&&(n.destroy(),b.delete(e))}},S=(e,t)=>c(e.key)===t.key&&e.altKey===t.altKey&&e.ctrlKey===t.ctrlKey&&e.metaKey===t.metaKey&&e.shiftKey===t.shiftKey,C=(e,t={})=>{let n=f(e,t);if(!n)return null;let r=Math.max(250,Math.min(5e3,t.timeout??1e3)),i=0,a=0,o=()=>{i=0,a=0};return{shortcut:n,reset:o,match(e,t=performance.now()){i>0&&t-a>r&&o();let s=n.steps[i];if(!s||!S(e,s)){o();let r=n.steps[0];return!r||!S(e,r)?`none`:n.steps.length===1?`complete`:(i=1,a=t,`partial`)}return i===n.steps.length-1?(o(),`complete`):(i+=1,a=t,`partial`)}}},w=e=>e instanceof Element&&e.closest(`input, textarea, select, [contenteditable]:not([contenteditable="false"])`)!==null,T=e=>e.isConnected&&!e.closest(`[inert], [hidden]`)&&e.getAttribute(`aria-hidden`)!==`true`,E=()=>{let e=[`x-ui-shortcut`],t=(n,r)=>{r.forEach((i,a)=>{let o=[...n,i];e.push(`x-ui-shortcut.${o.join(`.`)}`),t(o,r.filter((e,t)=>t!==a))})};return t([],o),e.map(e=>`[${e.replaceAll(`.`,`\\.`)} ]`.replace(` ]`,`]`)).join(`, `)},D=new WeakSet,O=n=>{D.has(n)||(D.add(n),e(document),n.addInitSelector(()=>E()),n.directive(`ui-shortcut`,n.skipDuringClone((e,{expression:n,modifiers:r},i)=>{if(!(e instanceof HTMLElement))return;let a=i.evaluateLater(n),o=Number(e.dataset.uiShortcutTimeout),s=Number.isFinite(o)?o:void 0,c=null;i.effect(()=>a(e=>{c=typeof e==`string`&&e.trim()?C(e,s===void 0?{}:{timeout:s}):null}));let l=r.includes(`window`)?window:r.includes(`document`)?document:e,u=r.includes(`keyup`)?`keyup`:`keydown`,d=n=>{if(!(n instanceof KeyboardEvent)||!c||!T(e)||n.repeat&&!r.includes(`repeat`)||w(n.target)&&!r.includes(`editable`))return;let i=c.match(n);if(i===`none`||(t(e.ownerDocument),i===`partial`))return;let a=new CustomEvent(`ui:shortcut`,{bubbles:!0,cancelable:!0,composed:!0,detail:{shortcut:c.shortcut.normalized,keyboardEvent:n,owner:e,sequence:c.shortcut.steps.length>1}}),o=!1,s=a.stopPropagation.bind(a),l=a.stopImmediatePropagation.bind(a);a.stopPropagation=()=>{o=!0,s()},a.stopImmediatePropagation=()=>{o=!0,l()},e.dispatchEvent(a),a.defaultPrevented&&n.preventDefault(),o&&n.stopPropagation()};l.addEventListener(u,d),i.cleanup(()=>l.removeEventListener(u,d))})))};export{f as a,x as i,y as n,O as o,v as r,C as t};
|
|
2
|
+
//# sourceMappingURL=capability-shortcut-BwvEqEbL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-shortcut-CGpfLNL-.js","names":[],"sources":["../../../../../../../../client/src/capabilities/shortcut.ts"],"sourcesContent":["import type Alpine from 'alpinejs';\nimport {beginShortcutFocusHandoff, ensureFocusHandoff} from '@client/runtime/focus-handoff';\n\ntype ShortcutPlatform = {apple?: boolean};\ntype ShortcutOptions = ShortcutPlatform & {timeout?: number};\ntype ShortcutMatch = 'none' | 'partial' | 'complete';\ntype ShortcutDisplayKey = {label: string; token: string};\ntype ShortcutPressedListener = (keys: ReadonlySet<string>) => void;\n\ntype ShortcutStep = {\n key: string;\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n};\n\ntype ParsedShortcut = {\n normalized: string;\n steps: ShortcutStep[];\n};\n\ntype ShortcutEventDetail = {\n shortcut: string;\n keyboardEvent: KeyboardEvent;\n owner: HTMLElement;\n sequence: boolean;\n};\n\ntype ShortcutMatcher = {\n readonly shortcut: ParsedShortcut;\n match(event: KeyboardEvent, timestamp?: number): ShortcutMatch;\n reset(): void;\n};\n\nconst MODIFIER_TOKENS = new Set(['alt', 'cmd', 'ctrl', 'meta', 'mod', 'shift', 'super']);\nconst NAMED_KEYS = new Set([\n 'arrow-down', 'arrow-left', 'arrow-right', 'arrow-up',\n 'backspace', 'caps-lock', 'delete', 'end', 'enter', 'escape', 'home', 'insert',\n 'page-down', 'page-up', 'pause', 'scroll-lock', 'space', 'tab',\n]);\nconst KEY_ALIASES: Record<string, string> = {\n ' ': 'space',\n '/': 'slash',\n '?': 'slash',\n Alt: 'alt',\n ArrowDown: 'arrow-down',\n ArrowLeft: 'arrow-left',\n ArrowRight: 'arrow-right',\n ArrowUp: 'arrow-up',\n CapsLock: 'caps-lock',\n Control: 'ctrl',\n Meta: 'meta',\n PageDown: 'page-down',\n PageUp: 'page-up',\n ScrollLock: 'scroll-lock',\n Shift: 'shift',\n};\nconst KEY_LABELS: Record<string, string> = {\n alt: 'Alt',\n backspace: 'Backspace',\n cmd: 'Command',\n ctrl: 'Ctrl',\n delete: 'Delete',\n end: 'End',\n enter: 'Enter',\n escape: 'Escape',\n home: 'Home',\n insert: 'Insert',\n meta: 'Meta',\n 'page-down': 'Page Down',\n 'page-up': 'Page Up',\n pause: 'Pause',\n 'scroll-lock': 'Scroll Lock',\n shift: '⇧',\n slash: '/',\n space: 'Space',\n super: 'Super',\n tab: 'Tab',\n 'arrow-down': '↓',\n 'arrow-left': '←',\n 'arrow-right': '→',\n 'arrow-up': '↑',\n};\nconst DIRECTIVE_MODIFIERS = ['document', 'window', 'keyup', 'repeat', 'editable'] as const;\n\nconst isApplePlatform = (): boolean => {\n if (typeof navigator === 'undefined') return false;\n const platform = navigator.platform || navigator.userAgent;\n return /Mac|iPhone|iPad|iPod/i.test(platform);\n};\n\nconst normalizeKey = (key: string): string => {\n const alias = KEY_ALIASES[key];\n if (alias) return alias;\n return key\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/_/g, '-')\n .toLowerCase();\n};\n\nconst isKnownKey = (key: string): boolean => (\n key === 'slash'\n || key.length === 1\n || NAMED_KEYS.has(key)\n || /^f(?:[1-9]|1\\d|2[0-4])$/.test(key)\n);\n\nconst modifierStep = (tokens: string[], apple: boolean): Omit<ShortcutStep, 'key'> => {\n const metaKey = tokens.some((token) => token === 'meta' || token === 'cmd' || token === 'super')\n || (apple && tokens.includes('mod'));\n const ctrlKey = tokens.includes('ctrl') || (!apple && tokens.includes('mod'));\n return {\n altKey: tokens.includes('alt'),\n ctrlKey,\n metaKey,\n shiftKey: tokens.includes('shift'),\n };\n};\n\nconst tokenize = (value: string): string[] => value\n .trim()\n .toLowerCase()\n .split('.')\n .map((token) => token.trim())\n .filter(Boolean);\n\nconst parseShortcut = (value: string, options: ShortcutPlatform = {}): ParsedShortcut | null => {\n const tokens = tokenize(value);\n if (tokens.length === 0) return null;\n const apple = options.apple ?? isApplePlatform();\n const modifierTokens = tokens.filter((token) => MODIFIER_TOKENS.has(token));\n const keyTokens = tokens.filter((token) => !MODIFIER_TOKENS.has(token));\n if (keyTokens.length === 0 || keyTokens.some((token) => !isKnownKey(token))) return null;\n if (keyTokens.length > 1 && modifierTokens.length > 0) return null;\n\n const modifiers = modifierStep(modifierTokens, apple);\n const steps = keyTokens.map((key, index) => ({\n key,\n ...(index === 0 ? modifiers : modifierStep([], apple)),\n }));\n return {normalized: tokens.join('.'), steps};\n};\n\nconst titleCase = (token: string): string => token\n .split('-')\n .map((part) => part ? `${part[0]!.toUpperCase()}${part.slice(1)}` : '')\n .join(' ');\n\nconst APPLE_MODIFIER_LABELS: Readonly<Record<string, string>> = {\n alt: '⌥',\n cmd: '⌘',\n ctrl: '⌃',\n meta: '⌘',\n mod: '⌘',\n shift: '⇧',\n super: '⌘',\n};\n\nconst modifierLabel = (token: string, apple: boolean): string => {\n if (apple) return APPLE_MODIFIER_LABELS[token] ?? titleCase(token);\n if (token === 'mod') return 'Ctrl';\n return KEY_LABELS[token] ?? titleCase(token);\n};\n\nconst modifierKey = (token: string, apple: boolean): string => {\n if (token === 'mod') return apple ? 'meta' : 'ctrl';\n if (token === 'cmd' || token === 'super') return 'meta';\n return token;\n};\n\nconst keyLabel = (token: string, tokens: string[]): string => {\n if (token === 'slash' && tokens.includes('shift')) return '?';\n return KEY_LABELS[token] ?? titleCase(token);\n};\n\nconst formatShortcutKeys = (value: string, options: ShortcutPlatform = {}): ShortcutDisplayKey[][] => {\n const tokens = tokenize(value);\n if (tokens.length === 0) return [];\n const apple = options.apple ?? isApplePlatform();\n const modifiers = tokens.filter((token) => MODIFIER_TOKENS.has(token));\n const keys = tokens.filter((token) => !MODIFIER_TOKENS.has(token));\n const displayModifiers = modifiers.map((token) => ({\n label: modifierLabel(token, apple),\n token: modifierKey(token, apple),\n }));\n if (keys.length === 0) return [displayModifiers];\n if (keys.length > 1 && modifiers.length === 0) {\n return keys.map((token) => [{label: keyLabel(token, tokens), token}]);\n }\n return [[\n ...displayModifiers,\n ...keys.map((token) => ({label: keyLabel(token, tokens), token})),\n ]];\n};\n\nconst formatShortcut = (value: string, options: ShortcutPlatform = {}): string[][] => (\n formatShortcutKeys(value, options).map((step) => step.map(({label}) => label))\n);\n\ntype PressedShortcutStore = {\n keys: Set<string>;\n listeners: Set<ShortcutPressedListener>;\n destroy: () => void;\n};\n\nconst pressedShortcutStores = new WeakMap<Document, PressedShortcutStore>();\n\nconst observePressedShortcutKeys = (\n document: Document,\n listener: ShortcutPressedListener,\n): (() => void) => {\n let store = pressedShortcutStores.get(document);\n if (!store) {\n const keys = new Set<string>();\n const listeners = new Set<ShortcutPressedListener>();\n const notify = (): void => listeners.forEach((subscriber) => subscriber(new Set(keys)));\n const clear = (): void => {\n if (keys.size === 0) return;\n keys.clear();\n notify();\n };\n const sync = (event: KeyboardEvent): void => {\n const previous = [...keys].sort().join(' ');\n const token = normalizeKey(event.key);\n if (event.type === 'keydown') keys.add(token);\n else keys.delete(token);\n\n // macOS can suppress non-modifier keyup events while Command is held.\n if (event.type === 'keyup' && token === 'meta') keys.clear();\n ([\n ['alt', event.altKey],\n ['ctrl', event.ctrlKey],\n ['meta', event.metaKey],\n ['shift', event.shiftKey],\n ] as const).forEach(([modifier, pressed]) => {\n if (pressed) keys.add(modifier);\n else keys.delete(modifier);\n });\n if ([...keys].sort().join(' ') !== previous) notify();\n };\n const onKey = (event: Event): void => {\n if (event instanceof KeyboardEvent) sync(event);\n };\n const onVisibility = (): void => {\n if (document.visibilityState === 'hidden') clear();\n };\n document.addEventListener('keydown', onKey, true);\n document.addEventListener('keyup', onKey, true);\n document.addEventListener('visibilitychange', onVisibility);\n document.defaultView?.addEventListener('blur', clear);\n store = {\n keys,\n listeners,\n destroy: () => {\n document.removeEventListener('keydown', onKey, true);\n document.removeEventListener('keyup', onKey, true);\n document.removeEventListener('visibilitychange', onVisibility);\n document.defaultView?.removeEventListener('blur', clear);\n },\n };\n pressedShortcutStores.set(document, store);\n }\n store.listeners.add(listener);\n listener(new Set(store.keys));\n return () => {\n store?.listeners.delete(listener);\n if (store?.listeners.size === 0) {\n store.destroy();\n pressedShortcutStores.delete(document);\n }\n };\n};\n\nconst eventMatchesStep = (event: KeyboardEvent, step: ShortcutStep): boolean => (\n normalizeKey(event.key) === step.key\n && event.altKey === step.altKey\n && event.ctrlKey === step.ctrlKey\n && event.metaKey === step.metaKey\n && event.shiftKey === step.shiftKey\n);\n\nconst createShortcutMatcher = (value: string, options: ShortcutOptions = {}): ShortcutMatcher | null => {\n const shortcut = parseShortcut(value, options);\n if (!shortcut) return null;\n const timeout = Math.max(250, Math.min(5000, options.timeout ?? 1000));\n let index = 0;\n let previousAt = 0;\n\n const reset = (): void => {\n index = 0;\n previousAt = 0;\n };\n\n return {\n shortcut,\n reset,\n match(event, timestamp = performance.now()): ShortcutMatch {\n if (index > 0 && timestamp - previousAt > timeout) reset();\n const step = shortcut.steps[index];\n if (!step || !eventMatchesStep(event, step)) {\n reset();\n const first = shortcut.steps[0];\n if (!first || !eventMatchesStep(event, first)) return 'none';\n if (shortcut.steps.length === 1) return 'complete';\n index = 1;\n previousAt = timestamp;\n return 'partial';\n }\n if (index === shortcut.steps.length - 1) {\n reset();\n return 'complete';\n }\n index += 1;\n previousAt = timestamp;\n return 'partial';\n },\n };\n};\n\nconst isEditableTarget = (target: EventTarget | null): boolean => {\n if (!(target instanceof Element)) return false;\n return target.closest('input, textarea, select, [contenteditable]:not([contenteditable=\"false\"])') !== null;\n};\n\nconst isEligibleOwner = (owner: HTMLElement): boolean => (\n owner.isConnected\n && !owner.closest('[inert], [hidden]')\n && owner.getAttribute('aria-hidden') !== 'true'\n);\n\nconst directiveSelectors = (): string => {\n const names = ['x-ui-shortcut'];\n const visit = (prefix: string[], remaining: readonly string[]): void => {\n remaining.forEach((modifier, index) => {\n const next = [...prefix, modifier];\n names.push(`x-ui-shortcut.${next.join('.')}`);\n visit(next, remaining.filter((_, remainingIndex) => remainingIndex !== index));\n });\n };\n visit([], DIRECTIVE_MODIFIERS);\n return names.map((name) => `[${name.replaceAll('.', '\\\\.')} ]`.replace(' ]', ']')).join(', ');\n};\n\nconst registered = new WeakSet<Alpine.Alpine>();\n\nconst registerShortcutCapability = (AlpineInstance: Alpine.Alpine): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n ensureFocusHandoff(document);\n AlpineInstance.addInitSelector(() => directiveSelectors());\n AlpineInstance.directive('ui-shortcut', AlpineInstance.skipDuringClone((el, {expression, modifiers}, utilities) => {\n if (!(el instanceof HTMLElement)) return;\n const evaluator = utilities.evaluateLater(expression);\n const timeoutValue = Number(el.dataset.uiShortcutTimeout);\n const timeout = Number.isFinite(timeoutValue) ? timeoutValue : undefined;\n let matcher: ShortcutMatcher | null = null;\n\n utilities.effect(() => evaluator((value) => {\n matcher = typeof value === 'string' && value.trim()\n ? createShortcutMatcher(value, timeout === undefined ? {} : {timeout})\n : null;\n }));\n\n const target: EventTarget = modifiers.includes('window')\n ? window\n : modifiers.includes('document') ? document : el;\n const eventName = modifiers.includes('keyup') ? 'keyup' : 'keydown';\n const listener = (event: Event): void => {\n if (!(event instanceof KeyboardEvent) || !matcher || !isEligibleOwner(el)) return;\n if (event.repeat && !modifiers.includes('repeat')) return;\n if (isEditableTarget(event.target) && !modifiers.includes('editable')) return;\n const result = matcher.match(event);\n if (result === 'none') return;\n beginShortcutFocusHandoff(el.ownerDocument);\n if (result === 'partial') return;\n\n const shortcutEvent = new CustomEvent<ShortcutEventDetail>('ui:shortcut', {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n shortcut: matcher.shortcut.normalized,\n keyboardEvent: event,\n owner: el,\n sequence: matcher.shortcut.steps.length > 1,\n },\n });\n let propagationStopped = false;\n const stopPropagation = shortcutEvent.stopPropagation.bind(shortcutEvent);\n const stopImmediatePropagation = shortcutEvent.stopImmediatePropagation.bind(shortcutEvent);\n shortcutEvent.stopPropagation = (): void => {\n propagationStopped = true;\n stopPropagation();\n };\n shortcutEvent.stopImmediatePropagation = (): void => {\n propagationStopped = true;\n stopImmediatePropagation();\n };\n el.dispatchEvent(shortcutEvent);\n if (shortcutEvent.defaultPrevented) event.preventDefault();\n if (propagationStopped) event.stopPropagation();\n };\n target.addEventListener(eventName, listener);\n utilities.cleanup(() => target.removeEventListener(eventName, listener));\n }));\n};\n\nexport {\n createShortcutMatcher,\n formatShortcut,\n formatShortcutKeys,\n observePressedShortcutKeys,\n parseShortcut,\n registerShortcutCapability,\n};\nexport type {\n ParsedShortcut,\n ShortcutEventDetail,\n ShortcutDisplayKey,\n ShortcutMatch,\n ShortcutMatcher,\n ShortcutOptions,\n ShortcutPlatform,\n ShortcutStep,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capability-shortcut-BwvEqEbL.js","names":[],"sources":["../../../../../../../../client/src/capabilities/shortcut.ts"],"sourcesContent":["import type Alpine from 'alpinejs';\nimport {beginShortcutFocusHandoff, ensureFocusHandoff} from '@client/runtime/focus-handoff';\n\ntype ShortcutPlatform = {apple?: boolean};\ntype ShortcutOptions = ShortcutPlatform & {timeout?: number};\ntype ShortcutMatch = 'none' | 'partial' | 'complete';\ntype ShortcutDisplayKey = {label: string; token: string};\ntype ShortcutPressedListener = (keys: ReadonlySet<string>) => void;\n\ntype ShortcutStep = {\n key: string;\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n};\n\ntype ParsedShortcut = {\n normalized: string;\n steps: ShortcutStep[];\n};\n\ntype ShortcutEventDetail = {\n shortcut: string;\n keyboardEvent: KeyboardEvent;\n owner: HTMLElement;\n sequence: boolean;\n};\n\ntype ShortcutMatcher = {\n readonly shortcut: ParsedShortcut;\n match(event: KeyboardEvent, timestamp?: number): ShortcutMatch;\n reset(): void;\n};\n\nconst MODIFIER_TOKENS = new Set(['alt', 'cmd', 'ctrl', 'meta', 'mod', 'shift', 'super']);\nconst NAMED_KEYS = new Set([\n 'arrow-down', 'arrow-left', 'arrow-right', 'arrow-up',\n 'backspace', 'caps-lock', 'delete', 'end', 'enter', 'escape', 'home', 'insert',\n 'page-down', 'page-up', 'pause', 'scroll-lock', 'space', 'tab',\n]);\nconst KEY_ALIASES: Record<string, string> = {\n ' ': 'space',\n '/': 'slash',\n '?': 'slash',\n Alt: 'alt',\n ArrowDown: 'arrow-down',\n ArrowLeft: 'arrow-left',\n ArrowRight: 'arrow-right',\n ArrowUp: 'arrow-up',\n CapsLock: 'caps-lock',\n Control: 'ctrl',\n Meta: 'meta',\n PageDown: 'page-down',\n PageUp: 'page-up',\n ScrollLock: 'scroll-lock',\n Shift: 'shift',\n};\nconst KEY_LABELS: Record<string, string> = {\n alt: 'Alt',\n backspace: 'Backspace',\n cmd: 'Command',\n ctrl: 'Ctrl',\n delete: 'Delete',\n end: 'End',\n enter: 'Enter',\n escape: 'Escape',\n home: 'Home',\n insert: 'Insert',\n meta: 'Meta',\n 'page-down': 'Page Down',\n 'page-up': 'Page Up',\n pause: 'Pause',\n 'scroll-lock': 'Scroll Lock',\n shift: '⇧',\n slash: '/',\n space: 'Space',\n super: 'Super',\n tab: 'Tab',\n 'arrow-down': '↓',\n 'arrow-left': '←',\n 'arrow-right': '→',\n 'arrow-up': '↑',\n};\nconst DIRECTIVE_MODIFIERS = ['document', 'window', 'keyup', 'repeat', 'editable'] as const;\n\nconst isApplePlatform = (): boolean => {\n if (typeof navigator === 'undefined') return false;\n const platform = navigator.platform || navigator.userAgent;\n return /Mac|iPhone|iPad|iPod/i.test(platform);\n};\n\nconst normalizeKey = (key: string): string => {\n const alias = KEY_ALIASES[key];\n if (alias) return alias;\n return key\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/_/g, '-')\n .toLowerCase();\n};\n\nconst isKnownKey = (key: string): boolean => (\n key === 'slash'\n || key.length === 1\n || NAMED_KEYS.has(key)\n || /^f(?:[1-9]|1\\d|2[0-4])$/.test(key)\n);\n\nconst modifierStep = (tokens: string[], apple: boolean): Omit<ShortcutStep, 'key'> => {\n const metaKey = tokens.some((token) => token === 'meta' || token === 'cmd' || token === 'super')\n || (apple && tokens.includes('mod'));\n const ctrlKey = tokens.includes('ctrl') || (!apple && tokens.includes('mod'));\n return {\n altKey: tokens.includes('alt'),\n ctrlKey,\n metaKey,\n shiftKey: tokens.includes('shift'),\n };\n};\n\nconst tokenize = (value: string): string[] => value\n .trim()\n .toLowerCase()\n .split('.')\n .map((token) => token.trim())\n .filter(Boolean);\n\nconst parseShortcut = (value: string, options: ShortcutPlatform = {}): ParsedShortcut | null => {\n const tokens = tokenize(value);\n if (tokens.length === 0) return null;\n const apple = options.apple ?? isApplePlatform();\n const modifierTokens = tokens.filter((token) => MODIFIER_TOKENS.has(token));\n const keyTokens = tokens.filter((token) => !MODIFIER_TOKENS.has(token));\n if (keyTokens.length === 0 || keyTokens.some((token) => !isKnownKey(token))) return null;\n if (keyTokens.length > 1 && modifierTokens.length > 0) return null;\n\n const modifiers = modifierStep(modifierTokens, apple);\n const steps = keyTokens.map((key, index) => ({\n key,\n ...(index === 0 ? modifiers : modifierStep([], apple)),\n }));\n return {normalized: tokens.join('.'), steps};\n};\n\nconst titleCase = (token: string): string => token\n .split('-')\n .map((part) => part ? `${part[0]!.toUpperCase()}${part.slice(1)}` : '')\n .join(' ');\n\nconst APPLE_MODIFIER_LABELS: Readonly<Record<string, string>> = {\n alt: '⌥',\n cmd: '⌘',\n ctrl: '⌃',\n meta: '⌘',\n mod: '⌘',\n shift: '⇧',\n super: '⌘',\n};\n\nconst modifierLabel = (token: string, apple: boolean): string => {\n if (apple) return APPLE_MODIFIER_LABELS[token] ?? titleCase(token);\n if (token === 'mod') return 'Ctrl';\n return KEY_LABELS[token] ?? titleCase(token);\n};\n\nconst modifierKey = (token: string, apple: boolean): string => {\n if (token === 'mod') return apple ? 'meta' : 'ctrl';\n if (token === 'cmd' || token === 'super') return 'meta';\n return token;\n};\n\nconst keyLabel = (token: string, tokens: string[]): string => {\n if (token === 'slash' && tokens.includes('shift')) return '?';\n return KEY_LABELS[token] ?? titleCase(token);\n};\n\nconst formatShortcutKeys = (value: string, options: ShortcutPlatform = {}): ShortcutDisplayKey[][] => {\n const tokens = tokenize(value);\n if (tokens.length === 0) return [];\n const apple = options.apple ?? isApplePlatform();\n const modifiers = tokens.filter((token) => MODIFIER_TOKENS.has(token));\n const keys = tokens.filter((token) => !MODIFIER_TOKENS.has(token));\n const displayModifiers = modifiers.map((token) => ({\n label: modifierLabel(token, apple),\n token: modifierKey(token, apple),\n }));\n if (keys.length === 0) return [displayModifiers];\n if (keys.length > 1 && modifiers.length === 0) {\n return keys.map((token) => [{label: keyLabel(token, tokens), token}]);\n }\n return [[\n ...displayModifiers,\n ...keys.map((token) => ({label: keyLabel(token, tokens), token})),\n ]];\n};\n\nconst formatShortcut = (value: string, options: ShortcutPlatform = {}): string[][] => (\n formatShortcutKeys(value, options).map((step) => step.map(({label}) => label))\n);\n\ntype PressedShortcutStore = {\n keys: Set<string>;\n listeners: Set<ShortcutPressedListener>;\n destroy: () => void;\n};\n\nconst pressedShortcutStores = new WeakMap<Document, PressedShortcutStore>();\n\nconst observePressedShortcutKeys = (\n document: Document,\n listener: ShortcutPressedListener,\n): (() => void) => {\n let store = pressedShortcutStores.get(document);\n if (!store) {\n const keys = new Set<string>();\n const listeners = new Set<ShortcutPressedListener>();\n const notify = (): void => listeners.forEach((subscriber) => subscriber(new Set(keys)));\n const clear = (): void => {\n if (keys.size === 0) return;\n keys.clear();\n notify();\n };\n const sync = (event: KeyboardEvent): void => {\n const previous = [...keys].sort().join(' ');\n const token = normalizeKey(event.key);\n if (event.type === 'keydown') keys.add(token);\n else keys.delete(token);\n\n // macOS can suppress non-modifier keyup events while Command is held.\n if (event.type === 'keyup' && token === 'meta') keys.clear();\n ([\n ['alt', event.altKey],\n ['ctrl', event.ctrlKey],\n ['meta', event.metaKey],\n ['shift', event.shiftKey],\n ] as const).forEach(([modifier, pressed]) => {\n if (pressed) keys.add(modifier);\n else keys.delete(modifier);\n });\n if ([...keys].sort().join(' ') !== previous) notify();\n };\n const onKey = (event: Event): void => {\n if (event instanceof KeyboardEvent) sync(event);\n };\n const onVisibility = (): void => {\n if (document.visibilityState === 'hidden') clear();\n };\n document.addEventListener('keydown', onKey, true);\n document.addEventListener('keyup', onKey, true);\n document.addEventListener('visibilitychange', onVisibility);\n document.defaultView?.addEventListener('blur', clear);\n store = {\n keys,\n listeners,\n destroy: () => {\n document.removeEventListener('keydown', onKey, true);\n document.removeEventListener('keyup', onKey, true);\n document.removeEventListener('visibilitychange', onVisibility);\n document.defaultView?.removeEventListener('blur', clear);\n },\n };\n pressedShortcutStores.set(document, store);\n }\n store.listeners.add(listener);\n listener(new Set(store.keys));\n return () => {\n store?.listeners.delete(listener);\n if (store?.listeners.size === 0) {\n store.destroy();\n pressedShortcutStores.delete(document);\n }\n };\n};\n\nconst eventMatchesStep = (event: KeyboardEvent, step: ShortcutStep): boolean => (\n normalizeKey(event.key) === step.key\n && event.altKey === step.altKey\n && event.ctrlKey === step.ctrlKey\n && event.metaKey === step.metaKey\n && event.shiftKey === step.shiftKey\n);\n\nconst createShortcutMatcher = (value: string, options: ShortcutOptions = {}): ShortcutMatcher | null => {\n const shortcut = parseShortcut(value, options);\n if (!shortcut) return null;\n const timeout = Math.max(250, Math.min(5000, options.timeout ?? 1000));\n let index = 0;\n let previousAt = 0;\n\n const reset = (): void => {\n index = 0;\n previousAt = 0;\n };\n\n return {\n shortcut,\n reset,\n match(event, timestamp = performance.now()): ShortcutMatch {\n if (index > 0 && timestamp - previousAt > timeout) reset();\n const step = shortcut.steps[index];\n if (!step || !eventMatchesStep(event, step)) {\n reset();\n const first = shortcut.steps[0];\n if (!first || !eventMatchesStep(event, first)) return 'none';\n if (shortcut.steps.length === 1) return 'complete';\n index = 1;\n previousAt = timestamp;\n return 'partial';\n }\n if (index === shortcut.steps.length - 1) {\n reset();\n return 'complete';\n }\n index += 1;\n previousAt = timestamp;\n return 'partial';\n },\n };\n};\n\nconst isEditableTarget = (target: EventTarget | null): boolean => {\n if (!(target instanceof Element)) return false;\n return target.closest('input, textarea, select, [contenteditable]:not([contenteditable=\"false\"])') !== null;\n};\n\nconst isEligibleOwner = (owner: HTMLElement): boolean => (\n owner.isConnected\n && !owner.closest('[inert], [hidden]')\n && owner.getAttribute('aria-hidden') !== 'true'\n);\n\nconst directiveSelectors = (): string => {\n const names = ['x-ui-shortcut'];\n const visit = (prefix: string[], remaining: readonly string[]): void => {\n remaining.forEach((modifier, index) => {\n const next = [...prefix, modifier];\n names.push(`x-ui-shortcut.${next.join('.')}`);\n visit(next, remaining.filter((_, remainingIndex) => remainingIndex !== index));\n });\n };\n visit([], DIRECTIVE_MODIFIERS);\n return names.map((name) => `[${name.replaceAll('.', '\\\\.')} ]`.replace(' ]', ']')).join(', ');\n};\n\nconst registered = new WeakSet<Alpine.Alpine>();\n\nconst registerShortcutCapability = (AlpineInstance: Alpine.Alpine): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n ensureFocusHandoff(document);\n AlpineInstance.addInitSelector(() => directiveSelectors());\n AlpineInstance.directive('ui-shortcut', AlpineInstance.skipDuringClone((el, {expression, modifiers}, utilities) => {\n if (!(el instanceof HTMLElement)) return;\n const evaluator = utilities.evaluateLater(expression);\n const timeoutValue = Number(el.dataset.uiShortcutTimeout);\n const timeout = Number.isFinite(timeoutValue) ? timeoutValue : undefined;\n let matcher: ShortcutMatcher | null = null;\n\n utilities.effect(() => evaluator((value) => {\n matcher = typeof value === 'string' && value.trim()\n ? createShortcutMatcher(value, timeout === undefined ? {} : {timeout})\n : null;\n }));\n\n const target: EventTarget = modifiers.includes('window')\n ? window\n : modifiers.includes('document') ? document : el;\n const eventName = modifiers.includes('keyup') ? 'keyup' : 'keydown';\n const listener = (event: Event): void => {\n if (!(event instanceof KeyboardEvent) || !matcher || !isEligibleOwner(el)) return;\n if (event.repeat && !modifiers.includes('repeat')) return;\n if (isEditableTarget(event.target) && !modifiers.includes('editable')) return;\n const result = matcher.match(event);\n if (result === 'none') return;\n beginShortcutFocusHandoff(el.ownerDocument);\n if (result === 'partial') return;\n\n const shortcutEvent = new CustomEvent<ShortcutEventDetail>('ui:shortcut', {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n shortcut: matcher.shortcut.normalized,\n keyboardEvent: event,\n owner: el,\n sequence: matcher.shortcut.steps.length > 1,\n },\n });\n let propagationStopped = false;\n const stopPropagation = shortcutEvent.stopPropagation.bind(shortcutEvent);\n const stopImmediatePropagation = shortcutEvent.stopImmediatePropagation.bind(shortcutEvent);\n shortcutEvent.stopPropagation = (): void => {\n propagationStopped = true;\n stopPropagation();\n };\n shortcutEvent.stopImmediatePropagation = (): void => {\n propagationStopped = true;\n stopImmediatePropagation();\n };\n el.dispatchEvent(shortcutEvent);\n if (shortcutEvent.defaultPrevented) event.preventDefault();\n if (propagationStopped) event.stopPropagation();\n };\n target.addEventListener(eventName, listener);\n utilities.cleanup(() => target.removeEventListener(eventName, listener));\n }));\n};\n\nexport {\n createShortcutMatcher,\n formatShortcut,\n formatShortcutKeys,\n observePressedShortcutKeys,\n parseShortcut,\n registerShortcutCapability,\n};\nexport type {\n ParsedShortcut,\n ShortcutEventDetail,\n ShortcutDisplayKey,\n ShortcutMatch,\n ShortcutMatcher,\n ShortcutOptions,\n ShortcutPlatform,\n ShortcutStep,\n};\n"],"mappings":"kDAmCA,IAAM,EAAkB,IAAI,IAAI,CAAC,MAAO,MAAO,OAAQ,OAAQ,MAAO,QAAS,OAAO,CAAC,EACjF,EAAa,IAAI,IAAI,CACvB,aAAc,aAAc,cAAe,WAC3C,YAAa,YAAa,SAAU,MAAO,QAAS,SAAU,OAAQ,SACtE,YAAa,UAAW,QAAS,cAAe,QAAS,KAC7D,CAAC,EACK,EAAsC,CACxC,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,MACL,UAAW,aACX,UAAW,aACX,WAAY,cACZ,QAAS,WACT,SAAU,YACV,QAAS,OACT,KAAM,OACN,SAAU,YACV,OAAQ,UACR,WAAY,cACZ,MAAO,OACX,EACM,EAAqC,CACvC,IAAK,MACL,UAAW,YACX,IAAK,UACL,KAAM,OACN,OAAQ,SACR,IAAK,MACL,MAAO,QACP,OAAQ,SACR,KAAM,OACN,OAAQ,SACR,KAAM,OACN,YAAa,YACb,UAAW,UACX,MAAO,QACP,cAAe,cACf,MAAO,IACP,MAAO,IACP,MAAO,QACP,MAAO,QACP,IAAK,MACL,aAAc,IACd,aAAc,IACd,cAAe,IACf,WAAY,GAChB,EACM,EAAsB,CAAC,WAAY,SAAU,QAAS,SAAU,UAAU,EAE1E,MAAiC,CACnC,GAAI,OAAO,UAAc,IAAa,MAAO,GAC7C,IAAM,EAAW,UAAU,UAAY,UAAU,UACjD,MAAO,wBAAwB,KAAK,CAAQ,CAChD,EAEM,EAAgB,GACJ,EAAY,IAEnB,EACF,QAAQ,kBAAmB,OAAO,CAAC,CACnC,QAAQ,KAAM,GAAG,CAAC,CAClB,YAAY,EAGf,EAAc,GAChB,IAAQ,SACL,EAAI,SAAW,GACf,EAAW,IAAI,CAAG,GAClB,0BAA0B,KAAK,CAAG,EAGnC,GAAgB,EAAkB,IAA8C,CAClF,IAAM,EAAU,EAAO,KAAM,GAAU,IAAU,QAAU,IAAU,OAAS,IAAU,OAAO,GACvF,GAAS,EAAO,SAAS,KAAK,EAChC,EAAU,EAAO,SAAS,MAAM,GAAM,CAAC,GAAS,EAAO,SAAS,KAAK,EAC3E,MAAO,CACH,OAAQ,EAAO,SAAS,KAAK,EAC7B,UACA,UACA,SAAU,EAAO,SAAS,OAAO,CACrC,CACJ,EAEM,EAAY,GAA4B,EACzC,KAAK,CAAC,CACN,YAAY,CAAC,CACb,MAAM,GAAG,CAAC,CACV,IAAK,GAAU,EAAM,KAAK,CAAC,CAAC,CAC5B,OAAO,OAAO,EAEb,GAAiB,EAAe,EAA4B,CAAC,IAA6B,CAC5F,IAAM,EAAS,EAAS,CAAK,EAC7B,GAAI,EAAO,SAAW,EAAG,OAAO,KAChC,IAAM,EAAQ,EAAQ,OAAS,EAAgB,EACzC,EAAiB,EAAO,OAAQ,GAAU,EAAgB,IAAI,CAAK,CAAC,EACpE,EAAY,EAAO,OAAQ,GAAU,CAAC,EAAgB,IAAI,CAAK,CAAC,EAEtE,GADI,EAAU,SAAW,GAAK,EAAU,KAAM,GAAU,CAAC,EAAW,CAAK,CAAC,GACtE,EAAU,OAAS,GAAK,EAAe,OAAS,EAAG,OAAO,KAE9D,IAAM,EAAY,EAAa,EAAgB,CAAK,EAC9C,EAAQ,EAAU,KAAK,EAAK,KAAW,CACzC,MACA,GAAI,IAAU,EAAI,EAAY,EAAa,CAAC,EAAG,CAAK,CACxD,EAAE,EACF,MAAO,CAAC,WAAY,EAAO,KAAK,GAAG,EAAG,OAAK,CAC/C,EAEM,EAAa,GAA0B,EACxC,MAAM,GAAG,CAAC,CACV,IAAK,GAAS,EAAO,GAAG,EAAK,EAAE,CAAE,YAAY,IAAI,EAAK,MAAM,CAAC,IAAM,EAAE,CAAC,CACtE,KAAK,GAAG,EAEP,EAA0D,CAC5D,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,MAAO,IACP,MAAO,GACX,EAEM,GAAiB,EAAe,IAC9B,EAAc,EAAsB,IAAU,EAAU,CAAK,EAC7D,IAAU,MAAc,OACrB,EAAW,IAAU,EAAU,CAAK,EAGzC,GAAe,EAAe,IAC5B,IAAU,MAAc,EAAQ,OAAS,OACzC,IAAU,OAAS,IAAU,QAAgB,OAC1C,EAGL,GAAY,EAAe,IACzB,IAAU,SAAW,EAAO,SAAS,OAAO,EAAU,IACnD,EAAW,IAAU,EAAU,CAAK,EAGzC,GAAsB,EAAe,EAA4B,CAAC,IAA8B,CAClG,IAAM,EAAS,EAAS,CAAK,EAC7B,GAAI,EAAO,SAAW,EAAG,MAAO,CAAC,EACjC,IAAM,EAAQ,EAAQ,OAAS,EAAgB,EACzC,EAAY,EAAO,OAAQ,GAAU,EAAgB,IAAI,CAAK,CAAC,EAC/D,EAAO,EAAO,OAAQ,GAAU,CAAC,EAAgB,IAAI,CAAK,CAAC,EAC3D,EAAmB,EAAU,IAAK,IAAW,CAC/C,MAAO,EAAc,EAAO,CAAK,EACjC,MAAO,EAAY,EAAO,CAAK,CACnC,EAAE,EAKF,OAJI,EAAK,SAAW,EAAU,CAAC,CAAgB,EAC3C,EAAK,OAAS,GAAK,EAAU,SAAW,EACjC,EAAK,IAAK,GAAU,CAAC,CAAC,MAAO,EAAS,EAAO,CAAM,EAAG,OAAK,CAAC,CAAC,EAEjE,CAAC,CACJ,GAAG,EACH,GAAG,EAAK,IAAK,IAAW,CAAC,MAAO,EAAS,EAAO,CAAM,EAAG,OAAK,EAAE,CACpE,CAAC,CACL,EAEM,GAAkB,EAAe,EAA4B,CAAC,IAChE,EAAmB,EAAO,CAAO,CAAC,CAAC,IAAK,GAAS,EAAK,KAAK,CAAC,WAAW,CAAK,CAAC,EAS3E,EAAwB,IAAI,QAE5B,GACF,EACA,IACe,CACf,IAAI,EAAQ,EAAsB,IAAI,CAAQ,EAC9C,GAAI,CAAC,EAAO,CACR,IAAM,EAAO,IAAI,IACX,EAAY,IAAI,IAChB,MAAqB,EAAU,QAAS,GAAe,EAAW,IAAI,IAAI,CAAI,CAAC,CAAC,EAChF,MAAoB,CAClB,EAAK,OAAS,IAClB,EAAK,MAAM,EACX,EAAO,EACX,EACM,EAAQ,GAA+B,CACzC,IAAM,EAAW,CAAC,GAAG,CAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,EACpC,EAAQ,EAAa,EAAM,GAAG,EAChC,EAAM,OAAS,UAAW,EAAK,IAAI,CAAK,EACvC,EAAK,OAAO,CAAK,EAGlB,EAAM,OAAS,SAAW,IAAU,QAAQ,EAAK,MAAM,EAC3D,CACI,CAAC,MAAO,EAAM,MAAM,EACpB,CAAC,OAAQ,EAAM,OAAO,EACtB,CAAC,OAAQ,EAAM,OAAO,EACtB,CAAC,QAAS,EAAM,QAAQ,CAC5B,CAAC,CAAW,SAAS,CAAC,EAAU,KAAa,CACrC,EAAS,EAAK,IAAI,CAAQ,EACzB,EAAK,OAAO,CAAQ,CAC7B,CAAC,EACG,CAAC,GAAG,CAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAM,GAAU,EAAO,CACxD,EACM,EAAS,GAAuB,CAC9B,aAAiB,eAAe,EAAK,CAAK,CAClD,EACM,MAA2B,CACzB,EAAS,kBAAoB,UAAU,EAAM,CACrD,EACA,EAAS,iBAAiB,UAAW,EAAO,EAAI,EAChD,EAAS,iBAAiB,QAAS,EAAO,EAAI,EAC9C,EAAS,iBAAiB,mBAAoB,CAAY,EAC1D,EAAS,aAAa,iBAAiB,OAAQ,CAAK,EACpD,EAAQ,CACJ,OACA,YACA,YAAe,CACX,EAAS,oBAAoB,UAAW,EAAO,EAAI,EACnD,EAAS,oBAAoB,QAAS,EAAO,EAAI,EACjD,EAAS,oBAAoB,mBAAoB,CAAY,EAC7D,EAAS,aAAa,oBAAoB,OAAQ,CAAK,CAC3D,CACJ,EACA,EAAsB,IAAI,EAAU,CAAK,CAC7C,CAGA,OAFA,EAAM,UAAU,IAAI,CAAQ,EAC5B,EAAS,IAAI,IAAI,EAAM,IAAI,CAAC,MACf,CACT,GAAO,UAAU,OAAO,CAAQ,EAC5B,GAAO,UAAU,OAAS,IAC1B,EAAM,QAAQ,EACd,EAAsB,OAAO,CAAQ,EAE7C,CACJ,EAEM,GAAoB,EAAsB,IAC5C,EAAa,EAAM,GAAG,IAAM,EAAK,KAC9B,EAAM,SAAW,EAAK,QACtB,EAAM,UAAY,EAAK,SACvB,EAAM,UAAY,EAAK,SACvB,EAAM,WAAa,EAAK,SAGzB,GAAyB,EAAe,EAA2B,CAAC,IAA8B,CACpG,IAAM,EAAW,EAAc,EAAO,CAAO,EAC7C,GAAI,CAAC,EAAU,OAAO,KACtB,IAAM,EAAU,KAAK,IAAI,IAAK,KAAK,IAAI,IAAM,EAAQ,SAAW,GAAI,CAAC,EACjE,EAAQ,EACR,EAAa,EAEX,MAAoB,CACtB,EAAQ,EACR,EAAa,CACjB,EAEA,MAAO,CACH,WACA,QACA,MAAM,EAAO,EAAY,YAAY,IAAI,EAAkB,CACnD,EAAQ,GAAK,EAAY,EAAa,GAAS,EAAM,EACzD,IAAM,EAAO,EAAS,MAAM,GAC5B,GAAI,CAAC,GAAQ,CAAC,EAAiB,EAAO,CAAI,EAAG,CACzC,EAAM,EACN,IAAM,EAAQ,EAAS,MAAM,GAK7B,MAJI,CAAC,GAAS,CAAC,EAAiB,EAAO,CAAK,EAAU,OAClD,EAAS,MAAM,SAAW,EAAU,YACxC,EAAQ,EACR,EAAa,EACN,UACX,CAOA,OANI,IAAU,EAAS,MAAM,OAAS,GAClC,EAAM,EACC,aAEX,GAAS,EACT,EAAa,EACN,UACX,CACJ,CACJ,EAEM,EAAoB,GAChB,aAAkB,SACjB,EAAO,QAAQ,2EAA2E,IAAM,KAGrG,EAAmB,GACrB,EAAM,aACH,CAAC,EAAM,QAAQ,mBAAmB,GAClC,EAAM,aAAa,aAAa,IAAM,OAGvC,MAAmC,CACrC,IAAM,EAAQ,CAAC,eAAe,EACxB,GAAS,EAAkB,IAAuC,CACpE,EAAU,SAAS,EAAU,IAAU,CACnC,IAAM,EAAO,CAAC,GAAG,EAAQ,CAAQ,EACjC,EAAM,KAAK,iBAAiB,EAAK,KAAK,GAAG,GAAG,EAC5C,EAAM,EAAM,EAAU,QAAQ,EAAG,IAAmB,IAAmB,CAAK,CAAC,CACjF,CAAC,CACL,EAEA,OADA,EAAM,CAAC,EAAG,CAAmB,EACtB,EAAM,IAAK,GAAS,IAAI,EAAK,WAAW,IAAK,KAAK,EAAE,IAAI,QAAQ,KAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAChG,EAEM,EAAa,IAAI,QAEjB,EAA8B,GAAwC,CACpE,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAC7B,EAAmB,QAAQ,EAC3B,EAAe,oBAAsB,EAAmB,CAAC,EACzD,EAAe,UAAU,cAAe,EAAe,iBAAiB,EAAI,CAAC,aAAY,aAAY,IAAc,CAC/G,GAAI,EAAE,aAAc,aAAc,OAClC,IAAM,EAAY,EAAU,cAAc,CAAU,EAC9C,EAAe,OAAO,EAAG,QAAQ,iBAAiB,EAClD,EAAU,OAAO,SAAS,CAAY,EAAI,EAAe,IAAA,GAC3D,EAAkC,KAEtC,EAAU,WAAa,EAAW,GAAU,CACxC,EAAU,OAAO,GAAU,UAAY,EAAM,KAAK,EAC5C,EAAsB,EAAO,IAAY,IAAA,GAAY,CAAC,EAAI,CAAC,SAAO,CAAC,EACnE,IACV,CAAC,CAAC,EAEF,IAAM,EAAsB,EAAU,SAAS,QAAQ,EACjD,OACA,EAAU,SAAS,UAAU,EAAI,SAAW,EAC5C,EAAY,EAAU,SAAS,OAAO,EAAI,QAAU,UACpD,EAAY,GAAuB,CAGrC,GAFI,EAAE,aAAiB,gBAAkB,CAAC,GAAW,CAAC,EAAgB,CAAE,GACpE,EAAM,QAAU,CAAC,EAAU,SAAS,QAAQ,GAC5C,EAAiB,EAAM,MAAM,GAAK,CAAC,EAAU,SAAS,UAAU,EAAG,OACvE,IAAM,EAAS,EAAQ,MAAM,CAAK,EAGlC,GAFI,IAAW,SACf,EAA0B,EAAG,aAAa,EACtC,IAAW,WAAW,OAE1B,IAAM,EAAgB,IAAI,YAAiC,cAAe,CACtE,QAAS,GACT,WAAY,GACZ,SAAU,GACV,OAAQ,CACJ,SAAU,EAAQ,SAAS,WAC3B,cAAe,EACf,MAAO,EACP,SAAU,EAAQ,SAAS,MAAM,OAAS,CAC9C,CACJ,CAAC,EACG,EAAqB,GACnB,EAAkB,EAAc,gBAAgB,KAAK,CAAa,EAClE,EAA2B,EAAc,yBAAyB,KAAK,CAAa,EAC1F,EAAc,oBAA8B,CACxC,EAAqB,GACrB,EAAgB,CACpB,EACA,EAAc,6BAAuC,CACjD,EAAqB,GACrB,EAAyB,CAC7B,EACA,EAAG,cAAc,CAAa,EAC1B,EAAc,kBAAkB,EAAM,eAAe,EACrD,GAAoB,EAAM,gBAAgB,CAClD,EACA,EAAO,iBAAiB,EAAW,CAAQ,EAC3C,EAAU,YAAc,EAAO,oBAAoB,EAAW,CAAQ,CAAC,CAC3E,CAAC,CAAC,EACN"}
|