@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-CGwc8KXJ.js","names":[],"sources":["../../../../../../../../client/src/utils/warn.ts","../../../../../../../../client/src/runtime/identity.ts","../../../../../../../../client/src/runtime/layout-participant.ts","../../../../../../../../client/src/runtime/engine/stream.ts","../../../../../../../../client/src/runtime/engine/request.ts","../../../../../../../../client/src/runtime/engine/navigation.ts","../../../../../../../../client/src/runtime/ui.ts"],"sourcesContent":["const warn = (message: string, ...args: unknown[]): void => {\n if (typeof console !== 'undefined') console.warn(message, ...args);\n};\n\nexport {warn};\n","const STABLE_KEY_ATTR = 'data-ui-key';\nconst STABLE_KEY_SCOPE_ATTR = 'data-ui-key-scope';\nconst SINGLE_CHILD_SCOPE = 'single-child';\n\nconst stableIdentity = (element: Element, explicit?: unknown): string | null => {\n if (typeof explicit === 'string' && explicit) return explicit;\n const authored = element.getAttribute(STABLE_KEY_ATTR) || element.id;\n if (authored) return authored;\n\n const parent = element.parentElement;\n if (parent?.getAttribute(STABLE_KEY_SCOPE_ATTR) !== SINGLE_CHILD_SCOPE) return null;\n const parentIdentity = parent.getAttribute(STABLE_KEY_ATTR) || parent.id;\n return parentIdentity ? `${parentIdentity}:single-child` : null;\n};\n\nexport {STABLE_KEY_ATTR, STABLE_KEY_SCOPE_ATTR, stableIdentity};\n","import {stableIdentity} from './identity';\n\ntype LayoutScope = Element | Document | string | Iterable<Element>;\n\nconst MOTION_KEY_ATTR = 'data-ui-motion-key';\nconst MOTION_LAYOUT_ATTR = 'data-ui-motion-layout';\n\nconst isIterable = (value: unknown): value is Iterable<Element> => (\n typeof value === 'object'\n && value !== null\n && Symbol.iterator in value\n);\n\nconst scopeRoots = (scope: LayoutScope = document): Array<Element | Document> => {\n if (typeof scope === 'string') return Array.from(document.querySelectorAll(scope));\n if (scope instanceof Document || scope instanceof Element) return [scope];\n if (isIterable(scope)) return Array.from(scope);\n return [document];\n};\n\nconst markLayoutParticipant = (\n scope: LayoutScope = document,\n options: {key?: string; layout?: boolean} = {},\n): (() => void) => {\n const elements = scopeRoots(scope).filter((root): root is Element => root instanceof Element);\n const changed: Array<{element: Element; attr: string; previous: string | null}> = [];\n const setTemporaryAttr = (element: Element, attr: string, value: string): void => {\n changed.push({element, attr, previous: element.getAttribute(attr)});\n element.setAttribute(attr, value);\n };\n\n elements.forEach((element) => {\n if (options.layout ?? true) setTemporaryAttr(element, MOTION_LAYOUT_ATTR, '');\n const identity = stableIdentity(element, options.key);\n if (identity && !element.hasAttribute(MOTION_KEY_ATTR)) {\n setTemporaryAttr(element, MOTION_KEY_ATTR, identity);\n }\n });\n\n return () => {\n changed.reverse().forEach(({element, attr, previous}) => {\n if (previous === null) {\n element.removeAttribute(attr);\n return;\n }\n element.setAttribute(attr, previous);\n });\n };\n};\n\nexport {MOTION_KEY_ATTR, MOTION_LAYOUT_ATTR, markLayoutParticipant};\nexport type {LayoutScope};\n","import type Alpine from 'alpinejs';\nimport {\n findAlpineMachineOwner,\n} from '../alpine-machine';\nimport {\n findClosestDomInvalidationOwners,\n type DomInvalidationOwner,\n} from '../dom-invalidation';\nimport {stableIdentity} from '../identity';\nimport {declareMorphAttributes, preserveDeclaredMorphAttributes} from '../morph';\nimport {isPlainRecord, warn} from '../../utils';\nimport {loadAssets, parseAssetDescriptors, type AssetDescriptor} from '../../assets/bridge';\nimport type {RequestLifecycleDetail} from './request';\nimport {replaceFragmentChildrenNow} from './fragment';\n\ntype PatchMode = 'morph' | 'outer' | 'replace' | 'update' | 'append' | 'prepend' | 'before' | 'after' | 'remove';\n\ntype StreamPatchPayload = {\n html?: string | null;\n target?: string | null;\n selector?: string | null;\n mode?: PatchMode | null;\n requestId?: string | null;\n viewTransition?: boolean;\n assets?: AssetDescriptor[];\n focus?: string | null;\n};\n\ntype StreamEventPayload = {\n event: string;\n detail?: Record<string, unknown>;\n};\n\ntype UiEffectPayload =\n | ({type: 'patch'} & StreamPatchPayload)\n | ({type: 'dispatch'} & StreamEventPayload);\n\ntype SseFrame = {\n event: string;\n data: string;\n};\n\ntype StreamController = {\n abort(reason?: string): void;\n};\n\ntype StreamLifecycle = {\n lastEventId?: string;\n open?(): void;\n disconnected?(): void;\n eventId?(value: string): void;\n reset?(data: string): void;\n error?(data: string): void;\n};\ntype StreamPatchAnimator = (\n AlpineInstance: StreamAlpine,\n patches: StreamPatchPayload[],\n update: () => void,\n) => void;\n\ntype MorphOptions = {\n key?(el: HTMLElement): string | null;\n updating?(\n from: Node,\n to: Node,\n childrenOnly?: () => void,\n skip?: () => void,\n skipChildren?: () => void,\n skipUntil?: (predicate: (node: Node) => boolean) => void,\n ): void;\n updated?(from: Node, to: Node): void;\n};\n\ntype StreamAlpine = Pick<Alpine.Alpine, 'initTree'> & Partial<Pick<Alpine.Alpine, 'findClosest'>> & {\n morph?: (\n target: HTMLElement,\n html: string,\n options?: MorphOptions,\n ) => void;\n};\n\nconst pendingDomInvalidations = new Set<DomInvalidationOwner>();\nlet domInvalidationQueued = false;\nlet effectRequestFilter: ((requestId: string | null) => boolean) | null = null;\nlet morphExclusionFilter: ((requestId: string | null, element: Element) => boolean) | null = null;\nlet streamPatchAnimator: StreamPatchAnimator | null = null;\nlet patchQueue = Promise.resolve();\nlet queuedPatches = 0;\n\nconst queueDomInvalidation = (owners: Iterable<DomInvalidationOwner>): void => {\n for (const owner of owners) pendingDomInvalidations.add(owner);\n if (domInvalidationQueued || pendingDomInvalidations.size === 0) return;\n domInvalidationQueued = true;\n queueMicrotask(() => {\n domInvalidationQueued = false;\n const queued = Array.from(pendingDomInvalidations);\n pendingDomInvalidations.clear();\n queued.forEach((owner) => owner.invalidateDom());\n });\n};\n\nconst parseHtml = (html: string): HTMLTemplateElement => {\n const template = document.createElement('template');\n template.innerHTML = html;\n return template;\n};\n\nconst elementsFromHtml = (html: string): HTMLElement[] => (\n Array.from(parseHtml(html).content.children)\n .filter((child): child is HTMLElement => child instanceof HTMLElement)\n);\n\nconst initInserted = (AlpineInstance: StreamAlpine, elements: HTMLElement[]): void => {\n elements.forEach((element) => AlpineInstance.initTree(element));\n};\n\nconst resolvedMode = (target: Element, payloadMode?: PatchMode | null): PatchMode => {\n if (payloadMode) return payloadMode;\n const merge = target.getAttribute('x-merge');\n if (merge) return merge as PatchMode;\n return 'replace';\n};\n\nconst targetFromPayload = (payload: StreamPatchPayload): Element | null => {\n if (payload.selector) return document.querySelector(payload.selector);\n if (!payload.target) return null;\n\n const id = payload.target.startsWith('#') ? payload.target.slice(1) : payload.target;\n return document.getElementById(id);\n};\n\nconst applyPatchToTarget = (\n AlpineInstance: StreamAlpine,\n target: Element,\n payload: StreamPatchPayload,\n): void => {\n const mode = resolvedMode(target, payload.mode);\n\n if (mode === 'remove') {\n target.remove();\n return;\n }\n\n if (!payload.html) {\n warn('x-ui-stream: received patch with no html');\n return;\n }\n\n if (mode === 'morph' || mode === 'outer') {\n if (typeof AlpineInstance.morph === 'function') {\n const affectedOwners = new Set<DomInvalidationOwner>();\n AlpineInstance.morph(target as HTMLElement, payload.html, {\n key(el: HTMLElement): string | null {\n return stableIdentity(el);\n },\n updating(from: Node, to: Node, _childrenOnly?: () => void, skip?: () => void): void {\n if (\n from instanceof Element\n && morphExclusionFilter?.(payload.requestId ?? null, from)\n ) {\n skip?.();\n return;\n }\n preserveDeclaredMorphAttributes(from, to);\n },\n updated(from: Node): void {\n if (!(from instanceof Element)) return;\n const owner = findAlpineMachineOwner(AlpineInstance as Alpine.Alpine, from);\n if (owner) affectedOwners.add(owner);\n findClosestDomInvalidationOwners(from).forEach((candidate) => {\n affectedOwners.add(candidate);\n });\n },\n });\n queueDomInvalidation(affectedOwners);\n return;\n }\n\n warn('x-ui-stream: morph mode requires an Alpine morph implementation; falling back to replace');\n }\n\n if (mode === 'replace' || mode === 'morph' || mode === 'outer') {\n const [newEl] = elementsFromHtml(payload.html);\n if (!newEl) {\n warn('x-ui-stream: replace mode produced no element');\n return;\n }\n target.replaceWith(newEl);\n AlpineInstance.initTree(newEl);\n return;\n }\n\n if (mode === 'update') {\n replaceFragmentChildrenNow(AlpineInstance, target, payload.html);\n return;\n }\n\n const template = parseHtml(payload.html);\n const inserted = Array.from(template.content.children)\n .filter((child): child is HTMLElement => child instanceof HTMLElement);\n\n if (mode === 'append') {\n target.append(template.content);\n initInserted(AlpineInstance, inserted);\n return;\n }\n\n if (mode === 'prepend') {\n target.prepend(template.content);\n initInserted(AlpineInstance, inserted);\n return;\n }\n\n if (mode === 'before') {\n target.before(template.content);\n initInserted(AlpineInstance, inserted);\n return;\n }\n\n if (mode === 'after') {\n target.after(template.content);\n initInserted(AlpineInstance, inserted);\n }\n};\n\nconst applyStreamPatchNow = (AlpineInstance: StreamAlpine, payload: StreamPatchPayload): void => {\n const target = targetFromPayload(payload);\n\n if (target) {\n applyPatchToTarget(AlpineInstance, target, payload);\n if (payload.focus) document.querySelector<HTMLElement>(payload.focus)?.focus({preventScroll: true});\n return;\n }\n\n if (payload.selector || payload.target) {\n warn('x-ui-stream: target not found', payload.selector ?? payload.target);\n return;\n }\n\n if (!payload.html) {\n warn('x-ui-stream: received patch with no html');\n return;\n }\n\n elementsFromHtml(payload.html).forEach((child) => {\n if (!child.id) {\n warn('x-ui-stream: top-level element has no id, skipping', child);\n return;\n }\n\n const inferredTarget = document.getElementById(child.id);\n if (!inferredTarget) return;\n applyPatchToTarget(AlpineInstance, inferredTarget, {...payload, html: child.outerHTML});\n });\n if (payload.focus) document.querySelector<HTMLElement>(payload.focus)?.focus({preventScroll: true});\n};\n\nconst applyStreamPatches = (AlpineInstance: StreamAlpine, payload: StreamPatchPayload | StreamPatchPayload[]): void => {\n const patches = Array.isArray(payload) ? payload : [payload];\n const apply = (): void => {\n patches.forEach((patch) => applyStreamPatchNow(AlpineInstance, patch));\n };\n\n const applyWithAnimation = (): void => {\n const animatedPatches = patches.filter((patch) => patch.viewTransition === true);\n if (animatedPatches.length === 0) {\n apply();\n return;\n }\n if (streamPatchAnimator) streamPatchAnimator(AlpineInstance, animatedPatches, apply);\n else apply();\n };\n const assets = patches.flatMap((patch) => patch.assets ?? []);\n\n if (assets.length === 0 && queuedPatches === 0) {\n applyWithAnimation();\n return;\n }\n\n queuedPatches += 1;\n const run = async (): Promise<void> => {\n if (assets.length > 0) {\n await loadAssets(assets, AlpineInstance as Alpine.Alpine);\n }\n applyWithAnimation();\n };\n const task = patchQueue.then(run, run);\n patchQueue = task\n .catch(() => undefined)\n .finally(() => {\n queuedPatches -= 1;\n });\n};\n\nconst registerStreamPatchAnimator = (animator: StreamPatchAnimator): void => {\n streamPatchAnimator = animator;\n};\n\nconst applyStreamPatch = (AlpineInstance: StreamAlpine, payload: StreamPatchPayload): void => {\n applyStreamPatchNow(AlpineInstance, payload);\n};\n\nconst dispatchStreamEvent = (payload: StreamEventPayload): void => {\n document.dispatchEvent(new CustomEvent(payload.event, {\n detail: payload.detail ?? {},\n bubbles: true,\n composed: true,\n }));\n};\n\nconst applyUiEffect = (AlpineInstance: StreamAlpine, effect: UiEffectPayload): void => {\n if (effect.type === 'patch') {\n const {type: _type, ...payload} = effect;\n applyStreamPatches(AlpineInstance, payload);\n return;\n }\n\n if (effect.type === 'dispatch') {\n const {type: _type, ...payload} = effect;\n dispatchStreamEvent(payload);\n return;\n }\n\n warn('x-ui-stream: unknown UI effect', effect);\n};\n\nconst applyUiEffects = (AlpineInstance: StreamAlpine, effects: UiEffectPayload | UiEffectPayload[]): void => {\n const events = Array.isArray(effects) ? effects : [effects];\n\n events.forEach((effect) => applyUiEffect(AlpineInstance, effect));\n};\n\nconst commandLines = (frame: SseFrame): Map<string, string[]> | null => {\n const commands = new Map<string, string[]>();\n for (const line of frame.data.split('\\n')) {\n const space = line.indexOf(' ');\n const hasValue = space > 0;\n const key = hasValue ? line.slice(0, space) : line;\n\n if (!hasValue && key !== 'html') {\n warn('x-ui-stream: invalid SSE command line', key);\n return null;\n }\n\n const value = hasValue ? line.slice(space + 1) : '';\n const values = commands.get(key);\n if (values) values.push(value);\n else commands.set(key, [value]);\n }\n\n return commands;\n};\n\nconst scalarCommand = (commands: Map<string, string[]>, key: string): string | undefined => {\n const values = commands.get(key);\n if (!values?.length) return undefined;\n if (values.length > 1) warn('x-ui-stream: duplicate SSE command, using last value', key);\n return values.at(-1);\n};\n\nconst applyPatchFrame = (AlpineInstance: StreamAlpine, frame: SseFrame): void => {\n const commands = commandLines(frame);\n if (!commands || commands.size === 0) return;\n const requestId = scalarCommand(commands, 'request-id');\n if (effectRequestFilter && !effectRequestFilter(requestId ?? null)) return;\n\n let assets: AssetDescriptor[] | undefined;\n const rawAssets = scalarCommand(commands, 'assets');\n if (rawAssets !== undefined) {\n try {\n const parsed: unknown = JSON.parse(rawAssets);\n assets = parseAssetDescriptors(parsed);\n } catch {\n warn('x-ui-stream: invalid patch assets JSON', rawAssets);\n return;\n }\n }\n\n const payload: StreamPatchPayload = {\n mode: (scalarCommand(commands, 'mode') ?? 'replace') as PatchMode,\n target: scalarCommand(commands, 'target') ?? null,\n selector: scalarCommand(commands, 'selector') ?? null,\n html: commands.get('html')?.join('\\n') ?? null,\n requestId: requestId ?? null,\n viewTransition: scalarCommand(commands, 'view-transition') === 'true',\n focus: scalarCommand(commands, 'focus') ?? null,\n ...(assets ? {assets} : {}),\n };\n\n applyStreamPatches(AlpineInstance, payload);\n};\n\nconst applyDispatchFrame = (frame: SseFrame): void => {\n const commands = commandLines(frame);\n if (!commands) return;\n const requestId = scalarCommand(commands, 'request-id');\n if (effectRequestFilter && !effectRequestFilter(requestId ?? null)) return;\n const event = scalarCommand(commands, 'event');\n if (!event) {\n warn('x-ui-stream: dispatch SSE frame missing event');\n return;\n }\n\n const rawDetail = scalarCommand(commands, 'detail');\n let detail: Record<string, unknown> = {};\n if (rawDetail) {\n try {\n const parsed: unknown = JSON.parse(rawDetail);\n if (isPlainRecord(parsed)) detail = parsed;\n } catch {\n warn('x-ui-stream: invalid dispatch detail JSON', rawDetail);\n return;\n }\n }\n\n dispatchStreamEvent({event, detail});\n};\n\nconst SSE_FRAME_HANDLERS: Record<string, (AlpineInstance: StreamAlpine, frame: SseFrame) => void> = {\n 'trellis-ui-patch': applyPatchFrame,\n 'trellis-ui-dispatch': (_AlpineInstance, frame) => applyDispatchFrame(frame),\n};\n\nconst TRELLIS_SSE_EVENT_PREFIX = 'trellis-ui-';\n\nconst applySseFrame = (AlpineInstance: StreamAlpine, frame: SseFrame): void => {\n const handler = SSE_FRAME_HANDLERS[frame.event];\n if (!handler) {\n if (frame.event.startsWith(TRELLIS_SSE_EVENT_PREFIX)) {\n warn('x-ui-stream: unsupported SSE event', frame.event);\n }\n return;\n }\n handler(AlpineInstance, frame);\n};\n\nconst streamUrl = (url: string, scopes = '', client = '', lastEventId = ''): string => {\n const parsed = new URL(url, document.baseURI);\n const normalizedScopes = [...new Set(scopes.split(/\\s+/).filter(Boolean))];\n if (client) parsed.searchParams.set('client', client);\n if (lastEventId) parsed.searchParams.set('lastEventId', lastEventId);\n if (normalizedScopes.length > 0) {\n parsed.searchParams.delete('channel');\n normalizedScopes.forEach((scope) => parsed.searchParams.append('channel', scope));\n }\n\n return /^[a-z][a-z\\d+.-]*:/i.test(url) || url.startsWith('//')\n ? parsed.href\n : `${parsed.pathname}${parsed.search}${parsed.hash}`;\n};\n\nconst connectStream = (\n AlpineInstance: StreamAlpine,\n url: string,\n scopes = '',\n client = '',\n lifecycle: StreamLifecycle = {},\n): StreamController => {\n const source = new EventSource(streamUrl(url, scopes, client, lifecycle.lastEventId));\n let active = true;\n const rememberEventId = (event: MessageEvent): void => {\n if (event.lastEventId) lifecycle.eventId?.(event.lastEventId);\n };\n Object.keys(SSE_FRAME_HANDLERS).forEach((eventName) => {\n source.addEventListener(eventName, (event) => {\n if (!active || !(event instanceof MessageEvent)) return;\n rememberEventId(event);\n applySseFrame(AlpineInstance, {\n event: event.type,\n data: String(event.data),\n });\n });\n });\n source.addEventListener('stream-open', () => {\n if (!active) return;\n lifecycle.open?.();\n });\n source.addEventListener('stream-reset', (event) => {\n if (!active) return;\n if (event instanceof MessageEvent) rememberEventId(event);\n lifecycle.reset?.(event instanceof MessageEvent ? String(event.data) : '');\n });\n source.addEventListener('stream-error', (event) => {\n if (!active) return;\n active = false;\n source.close();\n lifecycle.error?.(event instanceof MessageEvent ? String(event.data) : '');\n });\n source.addEventListener('error', () => {\n if (!active) return;\n active = false;\n source.close();\n lifecycle.disconnected?.();\n });\n\n return {\n abort() {\n active = false;\n source.close();\n },\n };\n};\n\ntype StreamControllerKey = Element | string;\n\ntype ManagedStream = {\n acquireClientSession(signal: AbortSignal): Promise<ClientSessionCapability | null>;\n configuration: string;\n controller: StreamController | null;\n element: HTMLElement;\n dispose(): void;\n rescheduleRefresh(): void;\n};\n\nconst streamControllers = new Map<StreamControllerKey, ManagedStream>();\nconst pendingStreamReconciliations = new Set<StreamControllerKey>();\n\nconst streamControllerKey = (el: Element): StreamControllerKey => (\n el instanceof HTMLElement && el.id ? el.id : el\n);\n\ntype StreamLifecycleName = 'connecting' | 'open' | 'disconnected' | 'suspended' | 'reset' | 'error';\ntype ClientSessionRefresh = {token: string; expiresAt: number};\ntype ClientSessionCapability = {token: string};\ntype ClientSessionWaiter = {\n abort(): void;\n resolve(value: ClientSessionCapability | null): void;\n timeoutId: number;\n};\n\nconst CLIENT_SESSION_REFRESH_LEAD_MS = 60_000;\nconst STREAM_IDLE_SUSPEND_DELAY_MS = 1_000;\nconst STREAM_MUTATION_DELIVERY_TAIL_MS = 2_000;\nconst STREAM_RETRY_BASE_MS = 1_000;\nconst STREAM_RETRY_MAX_MS = 30_000;\n\nconst dispatchStreamLifecycle = (\n el: HTMLElement,\n name: StreamLifecycleName,\n detail: Record<string, unknown> = {},\n): void => {\n if (name !== 'reset') el.dataset.uiStreamState = name;\n el.dispatchEvent(new CustomEvent(`ui:stream:${name}`, {\n bubbles: true,\n composed: true,\n detail: {source: el, ...detail},\n }));\n};\n\nconst configuredStreamUrl = (el: HTMLElement, expression: string): string => (\n streamUrl(expression, el.dataset.uiStreamScopes)\n);\n\nconst streamOpenWhenHidden = (el: HTMLElement): boolean => (\n el.dataset.uiStreamOpenWhenHidden === 'true'\n);\n\nconst configuredStream = (el: HTMLElement, expression: string): string => (\n JSON.stringify({\n openWhenHidden: streamOpenWhenHidden(el),\n url: configuredStreamUrl(el, expression),\n })\n);\n\nconst clientSessionToken = (el: HTMLElement): string | null => {\n const token = el.dataset.uiStreamClient;\n const expiresAt = Number(el.dataset.uiStreamClientExpires);\n if (!token) return null;\n if (Number.isFinite(expiresAt) && expiresAt > 0 && expiresAt <= Date.now()) return null;\n return token;\n};\n\nconst clientSessionTimeout = (el: HTMLElement): number => {\n const configured = Number(el.dataset.uiStreamTimeout);\n return Number.isFinite(configured) && configured >= 0 ? configured : 5000;\n};\n\nconst requestLifecycleDetail = (event: Event): RequestLifecycleDetail | null => {\n if (!(event instanceof CustomEvent)) return null;\n const detail = event.detail as Partial<RequestLifecycleDetail> | null;\n if (\n !detail\n || typeof detail.requestId !== 'string'\n || typeof detail.method !== 'string'\n || !(detail.controller instanceof AbortController)\n ) return null;\n return detail as RequestLifecycleDetail;\n};\n\nconst createManagedStream = (\n AlpineInstance: Alpine.Alpine,\n el: HTMLElement,\n expression: string,\n): ManagedStream => {\n let configuration = configuredStream(el, expression);\n let controller: StreamController | null = null;\n let refreshTimer: number | undefined;\n let refreshPromise: Promise<string | null> | null = null;\n let rotationPromise: Promise<void> | null = null;\n let reconnectTimer: number | undefined;\n let suspendTimer: number | undefined;\n let connectedOnce = false;\n let lastEventId = '';\n let connectionGeneration = 0;\n let reconnectAttempts = 0;\n let terminal = false;\n let disposed = false;\n let lifecycleState: StreamLifecycleName = 'connecting';\n const clientSessionWaiters = new Set<ClientSessionWaiter>();\n const activeGets = new Map<string, AbortController>();\n const activeMutations = new Set<string>();\n const openWhenHidden = streamOpenWhenHidden(el);\n\n const shouldBeConnected = (): boolean => (\n !terminal && (openWhenHidden || document.visibilityState === 'visible')\n );\n\n const clearReconnectTimer = (): void => {\n window.clearTimeout(reconnectTimer);\n reconnectTimer = undefined;\n };\n\n const settleClientSessionWaiters = (value: ClientSessionCapability | null): void => {\n Array.from(clientSessionWaiters).forEach((waiter) => waiter.resolve(value));\n };\n\n const transition = (\n name: StreamLifecycleName,\n detail: Record<string, unknown> = {},\n ): void => {\n if (name !== 'reset') lifecycleState = name;\n dispatchStreamLifecycle(el, name, detail);\n if (name === 'open') {\n const token = clientSessionToken(el);\n if (token) settleClientSessionWaiters({token});\n } else if (name === 'disconnected' || name === 'error') {\n settleClientSessionWaiters(null);\n }\n };\n\n const dispatchResumed = (): void => {\n el.dispatchEvent(new CustomEvent('ui:stream:resumed', {\n bubbles: true,\n composed: true,\n }));\n };\n\n const connect = (token: string): void => {\n controller?.abort();\n clearReconnectTimer();\n const generation = ++connectionGeneration;\n configuration = configuredStream(el, expression);\n transition('connecting');\n controller = connectStream(\n AlpineInstance,\n expression,\n el.dataset.uiStreamScopes,\n token,\n {\n lastEventId,\n open: () => {\n if (generation !== connectionGeneration) return;\n const resumed = connectedOnce;\n connectedOnce = true;\n reconnectAttempts = 0;\n transition('open');\n if (resumed) dispatchResumed();\n },\n disconnected: () => {\n if (generation !== connectionGeneration || disposed) return;\n controller = null;\n managed.controller = null;\n transition('disconnected');\n if (!shouldBeConnected()) return;\n const ceiling = Math.min(\n STREAM_RETRY_BASE_MS * (2 ** reconnectAttempts),\n STREAM_RETRY_MAX_MS,\n );\n reconnectAttempts += 1;\n const delay = Math.floor(Math.random() * ceiling);\n reconnectTimer = window.setTimeout(() => {\n reconnectTimer = undefined;\n void ensureConnected();\n }, delay);\n },\n reset: (data) => transition('reset', {data}),\n eventId: (value) => {\n if (generation === connectionGeneration) lastEventId = value;\n },\n error: (data) => {\n if (generation !== connectionGeneration || disposed) return;\n terminal = true;\n controller = null;\n managed.controller = null;\n clearReconnectTimer();\n transition('error', {data});\n },\n },\n );\n managed.controller = controller;\n managed.configuration = configuration;\n scheduleRefresh();\n };\n\n const scheduleRefresh = (): void => {\n window.clearTimeout(refreshTimer);\n refreshTimer = undefined;\n if (!shouldBeConnected()) return;\n const expiresAt = Number(el.dataset.uiStreamClientExpires);\n if (!Number.isFinite(expiresAt) || expiresAt <= 0) return;\n const delay = expiresAt - Date.now() - CLIENT_SESSION_REFRESH_LEAD_MS;\n if (delay <= 0) {\n void rotateCapability();\n return;\n }\n refreshTimer = window.setTimeout(() => void rotateCapability(), delay);\n };\n\n const refreshCapability = (): Promise<string | null> => {\n if (disposed) return Promise.resolve(null);\n if (refreshPromise) return refreshPromise;\n const refreshUrl = el.dataset.uiStreamClientRefresh;\n if (!refreshUrl) {\n transition('error', {reason: 'missing-refresh-url'});\n return Promise.resolve(null);\n }\n\n refreshPromise = fetch(refreshUrl, {\n headers: {\n Accept: 'application/json',\n 'X-Trellis-Client': el.dataset.uiStreamClient ?? '',\n },\n }).then(async (response) => {\n if (!response.ok) throw new Error(`ClientSession refresh failed (${response.status})`);\n const payload = await response.json() as Partial<ClientSessionRefresh>;\n if (typeof payload.token !== 'string' || typeof payload.expiresAt !== 'number') {\n throw new Error('ClientSession refresh returned an invalid payload');\n }\n if (disposed) return null;\n el.dataset.uiStreamClient = payload.token;\n el.dataset.uiStreamClientExpires = String(payload.expiresAt);\n return payload.token;\n }).catch((error: unknown) => {\n warn('x-ui-stream: could not refresh ClientSession', error);\n const expiresAt = Number(el.dataset.uiStreamClientExpires);\n if (!Number.isFinite(expiresAt) || expiresAt <= Date.now()) {\n transition('error', {error});\n return null;\n }\n if (shouldBeConnected()) {\n refreshTimer = window.setTimeout(() => void rotateCapability(), 5000);\n }\n return el.dataset.uiStreamClient ?? null;\n }).finally(() => {\n refreshPromise = null;\n });\n return refreshPromise;\n };\n\n const rotateCapability = (): Promise<void> => {\n if (!shouldBeConnected()) return Promise.resolve();\n if (rotationPromise) return rotationPromise;\n rotationPromise = refreshCapability()\n .then((token) => {\n if (token && shouldBeConnected() && !disposed) connect(token);\n })\n .finally(() => {\n rotationPromise = null;\n });\n return rotationPromise;\n };\n\n const ensureConnected = async (): Promise<void> => {\n if (disposed || !shouldBeConnected() || controller) return;\n const expiresAt = Number(el.dataset.uiStreamClientExpires);\n const currentToken = el.dataset.uiStreamClient ?? '';\n const needsRefresh = Number.isFinite(expiresAt)\n && expiresAt > 0\n && expiresAt - Date.now() <= CLIENT_SESSION_REFRESH_LEAD_MS;\n if (needsRefresh) {\n await rotateCapability();\n return;\n }\n const token = currentToken;\n if (token && shouldBeConnected() && !disposed && !controller) connect(token);\n };\n\n const suspend = (): void => {\n suspendTimer = undefined;\n if (disposed || openWhenHidden || document.visibilityState !== 'hidden') return;\n if (activeMutations.size > 0) return;\n activeGets.forEach((requestController) => requestController.abort('Document suspended'));\n activeGets.clear();\n window.clearTimeout(refreshTimer);\n refreshTimer = undefined;\n clearReconnectTimer();\n controller?.abort();\n controller = null;\n transition('suspended');\n managed.controller = null;\n };\n\n const scheduleSuspend = (delay: number): void => {\n window.clearTimeout(suspendTimer);\n suspendTimer = undefined;\n if (openWhenHidden || document.visibilityState !== 'hidden') return;\n suspendTimer = window.setTimeout(suspend, delay);\n };\n\n const onRefresh = (): void => {\n if (terminal) return;\n void rotateCapability();\n };\n\n const onRequestStart = (event: Event): void => {\n const detail = requestLifecycleDetail(event);\n if (!detail) return;\n if (detail.method === 'GET') {\n activeGets.set(detail.requestId, detail.controller);\n return;\n }\n activeMutations.add(detail.requestId);\n if (document.visibilityState === 'hidden' && !openWhenHidden) {\n window.clearTimeout(suspendTimer);\n suspendTimer = undefined;\n }\n };\n\n const onRequestFinish = (event: Event): void => {\n const detail = requestLifecycleDetail(event);\n if (!detail) return;\n if (detail.method === 'GET') {\n activeGets.delete(detail.requestId);\n return;\n }\n activeMutations.delete(detail.requestId);\n if (document.visibilityState === 'hidden' && !openWhenHidden) {\n if (activeMutations.size === 0) {\n scheduleSuspend(STREAM_MUTATION_DELIVERY_TAIL_MS);\n }\n }\n };\n\n const onVisibilityChange = (): void => {\n if (openWhenHidden || terminal) return;\n if (document.visibilityState === 'hidden') {\n if (activeMutations.size > 0) {\n return;\n }\n scheduleSuspend(STREAM_IDLE_SUSPEND_DELAY_MS);\n return;\n }\n window.clearTimeout(suspendTimer);\n suspendTimer = undefined;\n if (!controller) void ensureConnected();\n };\n\n const managed: ManagedStream = {\n acquireClientSession(signal: AbortSignal): Promise<ClientSessionCapability | null> {\n if (signal.aborted || disposed || terminal) return Promise.resolve(null);\n const token = clientSessionToken(el);\n if (lifecycleState === 'open' && token) return Promise.resolve({token});\n if (lifecycleState === 'error' || lifecycleState === 'disconnected') return Promise.resolve(null);\n\n const acquisition = new Promise<ClientSessionCapability | null>((resolve) => {\n let settled = false;\n const finish = (value: ClientSessionCapability | null): void => {\n if (settled) return;\n settled = true;\n window.clearTimeout(waiter.timeoutId);\n signal.removeEventListener('abort', waiter.abort);\n clientSessionWaiters.delete(waiter);\n resolve(value);\n };\n const waiter: ClientSessionWaiter = {\n abort: () => finish(null),\n resolve: finish,\n timeoutId: window.setTimeout(() => finish(null), clientSessionTimeout(el)),\n };\n clientSessionWaiters.add(waiter);\n signal.addEventListener('abort', waiter.abort, {once: true});\n });\n\n if (!token) void rotateCapability();\n else if (!controller && shouldBeConnected()) void ensureConnected();\n return acquisition;\n },\n configuration,\n controller: null,\n element: el,\n dispose(): void {\n if (disposed) return;\n disposed = true;\n window.clearTimeout(refreshTimer);\n window.clearTimeout(suspendTimer);\n clearReconnectTimer();\n settleClientSessionWaiters(null);\n el.removeEventListener('ui:stream:refresh', onRefresh);\n document.removeEventListener('visibilitychange', onVisibilityChange);\n document.removeEventListener('ui:request:start', onRequestStart);\n document.removeEventListener('ui:request:finish', onRequestFinish);\n controller?.abort();\n },\n rescheduleRefresh: scheduleRefresh,\n };\n\n declareMorphAttributes(el, 'data-ui-stream-state');\n el.addEventListener('ui:stream:refresh', onRefresh);\n document.addEventListener('visibilitychange', onVisibilityChange);\n document.addEventListener('ui:request:start', onRequestStart);\n document.addEventListener('ui:request:finish', onRequestFinish);\n if (shouldBeConnected()) {\n void ensureConnected();\n } else {\n transition('suspended');\n }\n return managed;\n};\n\nconst acquireClientSession = (signal: AbortSignal): Promise<ClientSessionCapability | null> => {\n const managed = Array.from(streamControllers.values()).find((stream) => (\n Boolean(stream.element.dataset.uiStreamClient)\n ));\n return managed?.acquireClientSession(signal) ?? Promise.resolve(null);\n};\n\nconst projectManagedStream = (managed: ManagedStream, el: HTMLElement): void => {\n el.dataset.uiStreamState = managed.element.dataset.uiStreamState ?? 'connecting';\n el.dataset.uiStreamClient = managed.element.dataset.uiStreamClient ?? '';\n const expiresAt = managed.element.dataset.uiStreamClientExpires;\n if (expiresAt === undefined) delete el.dataset.uiStreamClientExpires;\n else el.dataset.uiStreamClientExpires = expiresAt;\n declareMorphAttributes(el, 'data-ui-stream-state');\n};\n\nconst registerStream = (AlpineInstance: Alpine.Alpine): void => {\n if (typeof AlpineInstance.directive !== 'function') return;\n\n AlpineInstance.directive('ui-stream', (el, {expression}, {cleanup}) => {\n if (!expression) return;\n\n const client = el instanceof HTMLElement ? el.dataset.uiStreamClient : '';\n if (!(el instanceof HTMLElement) || !client) {\n warn('x-ui-stream: missing signed ClientSession capability');\n return;\n }\n const key = streamControllerKey(el);\n const existing = streamControllers.get(key);\n const configuration = configuredStream(el, expression);\n if (existing?.configuration === configuration) {\n projectManagedStream(existing, el);\n queueMicrotask(() => existing.rescheduleRefresh());\n return;\n }\n\n if (!el.isConnected && typeof key === 'string') {\n if (!pendingStreamReconciliations.has(key)) {\n pendingStreamReconciliations.add(key);\n queueMicrotask(() => {\n pendingStreamReconciliations.delete(key);\n const live = document.getElementById(key);\n if (!live) return;\n const current = streamControllers.get(key);\n const liveConfiguration = configuredStream(live, expression);\n if (current?.configuration === liveConfiguration) {\n projectManagedStream(current, live);\n current.rescheduleRefresh();\n return;\n }\n current?.dispose();\n streamControllers.set(key, createManagedStream(AlpineInstance, live, expression));\n });\n }\n return;\n }\n\n existing?.dispose();\n streamControllers.set(key, createManagedStream(AlpineInstance, el, expression));\n\n cleanup(() => {\n const current = streamControllers.get(key);\n if (current?.element !== el) return;\n current.dispose();\n streamControllers.delete(key);\n });\n });\n};\n\nconst setEffectRequestFilter = (filter: ((requestId: string | null) => boolean) | null): void => {\n effectRequestFilter = filter;\n};\n\nconst setMorphExclusionFilter = (\n filter: ((requestId: string | null, element: Element) => boolean) | null,\n): void => {\n morphExclusionFilter = filter;\n};\n\nexport {\n applyUiEffect,\n applyUiEffects,\n applyStreamPatch,\n applyStreamPatchNow,\n applyStreamPatches,\n applySseFrame,\n connectStream,\n acquireClientSession,\n dispatchStreamEvent,\n registerStream,\n registerStreamPatchAnimator,\n setEffectRequestFilter,\n setMorphExclusionFilter,\n streamUrl,\n};\nexport type {\n PatchMode,\n ClientSessionCapability,\n SseFrame,\n StreamAlpine,\n StreamEventPayload,\n StreamPatchAnimator,\n StreamPatchPayload,\n UiEffectPayload,\n};\n","import type Alpine from 'alpinejs';\nimport {acquireClientSession, type StreamAlpine} from './stream';\nimport {warn} from '../../utils';\n\ntype RequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\ntype RequestData = FormData | URLSearchParams | HTMLFormElement | Record<string, unknown> | string | Blob | ArrayBuffer;\ntype RequestExtra = Record<string, unknown> | FormData | URLSearchParams;\ntype RequestSource = Element;\ntype NavigationHistory = 'auto' | 'push' | 'replace';\n\ntype RequestOptions = {\n method?: RequestMethod | Lowercase<RequestMethod>;\n cache?: RequestCache;\n data?: RequestData;\n extra?: RequestExtra;\n headers?: HeadersInit;\n requestId?: string;\n signal?: AbortSignal;\n source?: RequestSource;\n submitter?: HTMLElement | null;\n};\n\ntype PreparedRequest = {\n url: URL;\n method: RequestMethod;\n init: RequestInit;\n};\n\ntype RequestResultBase = {\n requestId: string;\n url: string;\n};\ntype NavigateRequestOutcome = {\n type: 'navigate';\n response: Response;\n navigation: {history: NavigationHistory; url: string};\n};\ntype ResponseRequestOutcome = {\n response: Response;\n navigation?: never;\n} & (\n {type: 'empty'}\n | {type: 'redirect'}\n | {type: 'other'}\n);\ntype NoResponseRequestOutcome = {\n response: null;\n navigation?: never;\n} & (\n {type: 'aborted'}\n | {type: 'cancelled'}\n | {type: 'unavailable'}\n);\ntype RequestResponseOutcome = NavigateRequestOutcome | ResponseRequestOutcome;\ntype RequestResult = RequestResultBase & (RequestResponseOutcome | NoResponseRequestOutcome);\ntype ClassifiedResponse = Pick<RequestResultBase, 'url'> & RequestResponseOutcome;\n\ntype RequestLifecycleDetail = {\n source: Element | Document;\n url: string;\n method: RequestMethod;\n requestInit: RequestInit;\n requestId: string;\n response?: Response | null;\n responseType?: RequestResult['type'];\n error?: unknown;\n controller: AbortController;\n signal: AbortSignal;\n};\n\ntype BoundAbortSignal = {\n signal: AbortSignal;\n cleanup(): void;\n};\n\nconst REQUEST_HEADER = 'X-Trellis-UI-Request';\nconst CLIENT_SESSION_HEADER = 'X-Trellis-Client';\nconst REQUEST_ID_HEADER = 'X-Trellis-Request-ID';\nconst NAVIGATE_HEADER = 'X-Trellis-Navigate';\nconst NAVIGATE_HISTORY_HEADER = 'X-Trellis-Navigate-History';\nconst CSRF_META_SELECTOR = 'meta[name=\"csrf-token\"]';\nconst SSE_CONTENT_TYPE = 'text/event-stream';\nconst PENDING_ATTRIBUTE = 'data-ui-request-pending';\nconst FORM_URL_ENCODED = 'application/x-www-form-urlencoded';\nconst FORM_MULTIPART = 'multipart/form-data';\n// GET is the only bodyless helper. DELETE remains body-capable for API symmetry;\n// Django apps may still prefer POST intents or URL-specific delete routes.\nconst METHODS_WITHOUT_BODY = new Set<RequestMethod>(['GET']);\n\nlet AlpineRuntime: StreamAlpine | null = null;\nlet navigateResponseHandler: ((result: RequestResult) => boolean) | null = null;\n\nconst normalizeMethod = (method: string | null | undefined): RequestMethod => {\n const value = (method || 'GET').toUpperCase();\n if (value === 'POST' || value === 'PUT' || value === 'PATCH' || value === 'DELETE') return value;\n return 'GET';\n};\n\nconst appendEntry = (target: FormData | URLSearchParams, key: string, value: string | Blob): void => {\n if (target instanceof FormData) {\n target.append(key, value);\n return;\n }\n target.append(key, value instanceof File ? value.name : String(value));\n};\n\nconst addValue = (target: FormData | URLSearchParams, key: string, value: unknown): void => {\n if (Array.isArray(value)) {\n value.forEach((item) => addValue(target, key, item));\n return;\n }\n if (value === undefined || value === null) return;\n appendEntry(target, key, value instanceof Blob ? value : String(value));\n};\n\nconst appendRecord = (target: FormData | URLSearchParams, record: Record<string, unknown>): void => {\n Object.entries(record).forEach(([key, value]) => addValue(target, key, value));\n};\n\nconst appendExtra = (target: FormData | URLSearchParams, extra: RequestExtra | undefined): void => {\n if (!extra) return;\n if (extra instanceof FormData || extra instanceof URLSearchParams) {\n for (const [key, value] of extra.entries()) appendEntry(target, key, value);\n return;\n }\n appendRecord(target, extra);\n};\n\nconst headersWithDefaults = (headersInit: HeadersInit | undefined, body: BodyInit | null): Headers => {\n const headers = new Headers(headersInit);\n headers.set(REQUEST_HEADER, 'true');\n\n const csrf = document.querySelector<HTMLMetaElement>(CSRF_META_SELECTOR)?.content;\n if (csrf) headers.set('X-CSRFToken', csrf);\n\n if (body instanceof URLSearchParams && !headers.has('Content-Type')) {\n headers.set('Content-Type', FORM_URL_ENCODED);\n }\n\n return headers;\n};\n\nconst urlFor = (url: string | URL | undefined, source: RequestSource | undefined, submitter: HTMLElement | null): URL => {\n if (url) return new URL(url, document.baseURI);\n\n if (source instanceof HTMLFormElement) {\n const action = submitter?.getAttribute('formaction') || source.getAttribute('action') || window.location.href;\n return new URL(action, document.baseURI);\n }\n\n if (source instanceof HTMLAnchorElement) return new URL(source.href, document.baseURI);\n\n return new URL(window.location.href);\n};\n\nconst formEnctype = (form: HTMLFormElement, submitter: HTMLElement | null): string => (\n submitter?.getAttribute('formenctype') || form.enctype || FORM_URL_ENCODED\n);\n\nconst submitterNameValue = (submitter: HTMLElement | null): [string, string] | null => {\n if (!(submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement)) return null;\n const name = submitter.getAttribute('name');\n if (!name) return null;\n return [name, submitter.value];\n};\n\nconst formPayload = (form: HTMLFormElement, submitter: HTMLElement | null): FormData => {\n const payload = new FormData(form);\n const pair = submitterNameValue(submitter);\n if (pair) payload.append(...pair);\n return payload;\n};\n\nconst paramsFrom = (payload: FormData | URLSearchParams): URLSearchParams => {\n const params = new URLSearchParams();\n for (const [key, value] of payload.entries()) {\n if (value instanceof File) {\n params.append(key, value.name);\n } else {\n params.append(key, value);\n }\n }\n return params;\n};\n\nconst payloadFromData = (data: RequestData | undefined, natural: FormData | URLSearchParams): {payload: FormData | URLSearchParams | BodyInit | null; explicit: boolean} => {\n if (data === undefined) return {payload: natural, explicit: false};\n if (data instanceof HTMLFormElement) return {payload: new FormData(data), explicit: true};\n if (data instanceof FormData || data instanceof URLSearchParams || typeof data === 'string' || data instanceof Blob || data instanceof ArrayBuffer) {\n return {payload: data, explicit: true};\n }\n const params = new URLSearchParams();\n appendRecord(params, data);\n return {payload: params, explicit: true};\n};\n\nconst mergePayload = (\n payload: FormData | URLSearchParams | BodyInit | null,\n extra: RequestExtra | undefined,\n): FormData | URLSearchParams | BodyInit | null => {\n if (!extra) return payload;\n\n if (payload instanceof FormData || payload instanceof URLSearchParams) {\n appendExtra(payload, extra);\n return payload;\n }\n\n const params = new URLSearchParams();\n if (typeof payload === 'string') params.append('data', payload);\n appendExtra(params, extra);\n return params;\n};\n\nconst naturalPayload = (\n source: RequestSource | undefined,\n submitter: HTMLElement | null,\n): {payload: FormData | URLSearchParams; enctype: string} => {\n if (source instanceof HTMLFormElement) {\n return {\n payload: formPayload(source, submitter),\n enctype: formEnctype(source, submitter),\n };\n }\n return {payload: new URLSearchParams(), enctype: FORM_URL_ENCODED};\n};\n\nconst resolveMethod = (source: RequestSource | undefined, optionMethod: string | undefined, submitter: HTMLElement | null): RequestMethod => {\n if (optionMethod) return normalizeMethod(optionMethod);\n if (source instanceof HTMLFormElement) {\n return normalizeMethod(submitter?.getAttribute('formmethod') || source.getAttribute('method'));\n }\n return 'GET';\n};\n\nconst prepareRequest = (url: string | URL | undefined, options: RequestOptions = {}): PreparedRequest => {\n const source = options.source;\n const submitter = options.submitter ?? null;\n const method = resolveMethod(source, options.method, submitter);\n const resolvedUrl = urlFor(url, source, submitter);\n const natural = naturalPayload(source, submitter);\n const basePayload = payloadFromData(options.data, natural.payload);\n const payload = mergePayload(basePayload.payload, options.extra);\n\n const init: RequestInit = {\n method,\n ...(options.cache ? {cache: options.cache} : {}),\n };\n let body: BodyInit | null = null;\n\n if (METHODS_WITHOUT_BODY.has(method)) {\n if (payload instanceof FormData || payload instanceof URLSearchParams) {\n paramsFrom(payload).forEach((value, key) => resolvedUrl.searchParams.append(key, value));\n } else if (typeof payload === 'string') {\n resolvedUrl.searchParams.append('data', payload);\n }\n } else if (payload instanceof FormData && (basePayload.explicit || natural.enctype === FORM_MULTIPART)) {\n body = payload;\n } else if (payload instanceof FormData) {\n body = paramsFrom(payload);\n } else {\n body = payload;\n }\n\n init.headers = headersWithDefaults(options.headers, body);\n if (body !== null && body !== undefined) init.body = body;\n\n return {url: resolvedUrl, method, init};\n};\n\nconst eventTargetFor = (source: Element | undefined): Element | Document => (\n source?.isConnected ? source : document\n);\n\nconst lifecycleEvent = (\n name: string,\n detail: RequestLifecycleDetail,\n options: {cancelable?: boolean} = {},\n): CustomEvent<RequestLifecycleDetail> => new CustomEvent<RequestLifecycleDetail>(name, {\n bubbles: true,\n composed: true,\n cancelable: options.cancelable ?? false,\n detail,\n});\n\nconst dispatchLifecycle = (name: string, source: Element | undefined, detail: RequestLifecycleDetail, options?: {cancelable?: boolean}): boolean => (\n eventTargetFor(source).dispatchEvent(lifecycleEvent(name, detail, options))\n);\n\nconst pendingCounts = new WeakMap<Element, number>();\n\nconst setPending = (source: Element | undefined): void => {\n if (!source) return;\n const count = pendingCounts.get(source) ?? 0;\n pendingCounts.set(source, count + 1);\n source.setAttribute('aria-busy', 'true');\n source.setAttribute(PENDING_ATTRIBUTE, 'true');\n};\n\nconst clearPending = (source: Element | undefined): void => {\n if (!source) return;\n const nextCount = (pendingCounts.get(source) ?? 1) - 1;\n if (nextCount > 0) {\n pendingCounts.set(source, nextCount);\n return;\n }\n pendingCounts.delete(source);\n source.removeAttribute('aria-busy');\n source.removeAttribute(PENDING_ATTRIBUTE);\n};\n\nconst isSseResponse = (response: Response): boolean => (\n response.headers.get('Content-Type')?.toLowerCase().includes(SSE_CONTENT_TYPE) ?? false\n);\n\nconst handleResponse = async (response: Response): Promise<ClassifiedResponse> => {\n const navigate = response.headers.get(NAVIGATE_HEADER);\n if (navigate) {\n const history = response.headers.get(NAVIGATE_HISTORY_HEADER) ?? 'auto';\n if (history !== 'auto' && history !== 'push' && history !== 'replace') {\n warn('x-ui-request: invalid navigation history', history);\n return {response, type: 'other', url: response.url};\n }\n return {response, type: 'navigate', url: response.url, navigation: {history, url: navigate}};\n }\n if (\n response.status === 204\n || response.body === null\n || response.headers.get('X-Trellis-UI-Response') === 'empty'\n ) return {response, type: 'empty', url: response.url};\n\n if (response.redirected && !isSseResponse(response)) {\n window.location.assign(response.url);\n return {response, type: 'redirect', url: response.url};\n }\n\n warn('x-ui-request: expected an empty response', response);\n return {response, type: 'other', url: response.url};\n};\n\nconst bindExternalAbort = (controller: AbortController, externalSignal: AbortSignal | undefined): BoundAbortSignal => {\n if (!externalSignal) {\n return {\n signal: controller.signal,\n cleanup: () => undefined,\n };\n }\n\n const abort = (): void => controller.abort(externalSignal.reason);\n if (externalSignal.aborted) {\n abort();\n } else {\n externalSignal.addEventListener('abort', abort, {once: true});\n }\n\n return {\n signal: controller.signal,\n cleanup: () => externalSignal.removeEventListener('abort', abort),\n };\n};\n\nconst isAbortError = (error: unknown, signal: AbortSignal): boolean => (\n signal.aborted\n || (error instanceof DOMException && error.name === 'AbortError')\n || (error instanceof Error && error.name === 'AbortError')\n);\n\nconst requestWithAlpine = async (\n AlpineInstance: StreamAlpine,\n url: string | URL | undefined,\n options: RequestOptions = {},\n): Promise<RequestResult> => {\n const source = options.source;\n const controller = new AbortController();\n const requestId = options.requestId ?? crypto.randomUUID();\n const prepared = prepareRequest(url, options);\n const boundAbort = bindExternalAbort(controller, options.signal);\n const signal = boundAbort.signal;\n prepared.init.signal = signal;\n (prepared.init.headers as Headers).set(REQUEST_ID_HEADER, requestId);\n const clientStream = await acquireClientSession(signal);\n if (signal.aborted) {\n boundAbort.cleanup();\n return {requestId, response: null, type: 'aborted', url: prepared.url.toString()};\n }\n if (!clientStream) {\n boundAbort.cleanup();\n return {requestId, response: null, type: signal.aborted ? 'aborted' : 'unavailable', url: prepared.url.toString()};\n }\n (prepared.init.headers as Headers).set(CLIENT_SESSION_HEADER, clientStream.token);\n\n const detail: RequestLifecycleDetail = {\n source: source ?? document,\n url: prepared.url.toString(),\n method: prepared.method,\n requestInit: prepared.init,\n requestId,\n controller,\n signal,\n };\n\n if (!dispatchLifecycle('ui:request:before', source, detail, {cancelable: true})) {\n boundAbort.cleanup();\n return {requestId, response: null, type: 'cancelled', url: prepared.url.toString()};\n }\n\n setPending(source);\n dispatchLifecycle('ui:request:start', source, detail);\n\n try {\n const response = await fetch(prepared.url.toString(), prepared.init);\n const result = await handleResponse(response);\n detail.response = response;\n detail.responseType = result.type;\n\n if ((response.ok && result.type !== 'other') || result.type === 'redirect') {\n dispatchLifecycle('ui:request:success', source, detail);\n } else {\n dispatchLifecycle('ui:request:error', source, detail);\n }\n\n const requestResult: RequestResult = {...result, requestId};\n if (requestResult.type === 'navigate') navigateResponseHandler?.(requestResult);\n return requestResult;\n } catch (error) {\n if (isAbortError(error, signal)) {\n detail.responseType = 'aborted';\n return {requestId, response: null, type: 'aborted', url: prepared.url.toString()};\n }\n\n detail.error = error;\n dispatchLifecycle('ui:request:error', source, detail);\n throw error;\n } finally {\n boundAbort.cleanup();\n clearPending(source);\n dispatchLifecycle('ui:request:finish', source, detail);\n }\n};\n\nconst requireAlpine = (): StreamAlpine => {\n if (!AlpineRuntime) {\n throw new Error('Trellis request runtime has not been registered with Alpine.');\n }\n return AlpineRuntime;\n};\n\nconst request = (url: string | URL, options: RequestOptions = {}): Promise<RequestResult> => (\n requestWithAlpine(requireAlpine(), url, options)\n);\n\nconst get = (url: string | URL, options: RequestOptions = {}): Promise<RequestResult> => (\n request(url, {...options, method: 'GET'})\n);\n\nconst post = (url: string | URL, options: RequestOptions = {}): Promise<RequestResult> => (\n request(url, {...options, method: 'POST'})\n);\n\nconst put = (url: string | URL, options: RequestOptions = {}): Promise<RequestResult> => (\n request(url, {...options, method: 'PUT'})\n);\n\nconst del = (url: string | URL, options: RequestOptions = {}): Promise<RequestResult> => (\n request(url, {...options, method: 'DELETE'})\n);\n\nconst registerRequestRuntime = (AlpineInstance: Alpine.Alpine | StreamAlpine): void => {\n AlpineRuntime = AlpineInstance as StreamAlpine;\n};\n\nconst setNavigateResponseHandler = (handler: ((result: RequestResult) => boolean) | null): void => {\n navigateResponseHandler = handler;\n};\n\nexport {\n del,\n get,\n post,\n put,\n registerRequestRuntime,\n request,\n requestWithAlpine,\n setNavigateResponseHandler,\n};\nexport type {NavigationHistory, RequestLifecycleDetail, RequestMethod, RequestOptions, RequestResult};\n","import type Alpine from 'alpinejs';\nimport {\n requestWithAlpine,\n setNavigateResponseHandler,\n type NavigationHistory,\n type RequestOptions,\n type RequestResult,\n} from './request';\nimport {\n setEffectRequestFilter,\n setMorphExclusionFilter,\n type StreamAlpine,\n} from './stream';\nimport {isPlainRecord, warn} from '../../utils';\n\ntype ScrollPosition = {x: number; y: number};\ntype NavigationOptions = RequestOptions & {history?: NavigationHistory};\ntype ScrollState = {\n containers: Record<string, ScrollPosition>;\n window: ScrollPosition;\n};\ntype NavigateHistoryState = {\n id: string;\n index: number;\n scroll: ScrollState;\n url: string;\n};\ntype TrellisHistoryState = {\n navigate: NavigateHistoryState;\n};\ntype NavigationDetail = {\n history: boolean;\n source: Element | Document;\n url: URL;\n};\ntype NavigationSession = {\n controller: AbortController;\n destination: URL;\n entryId: string | null;\n history: boolean;\n disposition: NavigationHistory;\n requestId: string;\n requestOptions?: RequestOptions;\n source?: Element;\n};\n\nconst HISTORY_NAMESPACE = '__trellis';\nconst SCROLL_CONTAINER_SELECTOR = '[data-ui-scroll-restoration]';\nconst SCROLL_SAVE_DELAY = 150;\nconst COMPLETED_SESSION_LIMIT = 20;\nconst CANCELLED_REQUEST_LIMIT = 100;\n\nlet registered = false;\nlet activeSession: NavigationSession | null = null;\nlet currentIndex = 0;\nlet currentUrl = '';\nlet ignoreNextPopstate = false;\nlet scrollSaveTimer: number | null = null;\nconst scrollSnapshots = new Map<string, ScrollState>();\nconst cancelledRequestIds = new Set<string>();\nconst completedSessions = new Map<string, NavigationSession>();\n\nconst navigationId = (): string => crypto.randomUUID();\n\nconst emptyScrollState = (): ScrollState => ({\n containers: {},\n window: {x: 0, y: 0},\n});\n\nconst scrollContainerKey = (element: Element): string | null => {\n const declared = element.getAttribute('data-ui-scroll-restoration')?.trim();\n if (declared) return declared;\n return element.id || null;\n};\n\nconst captureScroll = (): ScrollState => {\n const containers: Record<string, ScrollPosition> = {};\n document.querySelectorAll<HTMLElement>(SCROLL_CONTAINER_SELECTOR).forEach((element) => {\n const key = scrollContainerKey(element);\n if (!key) return;\n containers[key] = {x: element.scrollLeft, y: element.scrollTop};\n });\n return {\n containers,\n window: {x: window.scrollX, y: window.scrollY},\n };\n};\n\nconst equalScrollStates = (left: ScrollState, right: ScrollState): boolean => {\n if (left.window.x !== right.window.x || left.window.y !== right.window.y) return false;\n const leftKeys = Object.keys(left.containers);\n const rightKeys = Object.keys(right.containers);\n if (leftKeys.length !== rightKeys.length) return false;\n return leftKeys.every((key) => {\n const leftPosition = left.containers[key];\n const rightPosition = right.containers[key];\n return Boolean(\n leftPosition\n && rightPosition\n && leftPosition.x === rightPosition.x\n && leftPosition.y === rightPosition.y\n );\n });\n};\n\nconst navigateStateFrom = (state: unknown): NavigateHistoryState | null => {\n if (!isPlainRecord(state)) return null;\n const trellis = state[HISTORY_NAMESPACE];\n if (!isPlainRecord(trellis)) return null;\n const navigate = trellis.navigate;\n if (!isPlainRecord(navigate)) return null;\n if (\n typeof navigate.id !== 'string'\n || typeof navigate.index !== 'number'\n || typeof navigate.url !== 'string'\n || !isPlainRecord(navigate.scroll)\n ) return null;\n return navigate as NavigateHistoryState;\n};\n\nconst mergedHistoryState = (navigate: NavigateHistoryState): Record<string, unknown> => {\n const state = isPlainRecord(window.history.state) ? window.history.state : {};\n const namespace = isPlainRecord(state[HISTORY_NAMESPACE])\n ? state[HISTORY_NAMESPACE] as Record<string, unknown>\n : {};\n return {\n ...state,\n [HISTORY_NAMESPACE]: {\n ...namespace,\n navigate,\n } satisfies TrellisHistoryState,\n };\n};\n\nconst replaceEntry = (navigate: NavigateHistoryState, url: string | URL = navigate.url): void => {\n window.history.replaceState(mergedHistoryState(navigate), '', url);\n currentUrl = new URL(url, document.baseURI).href;\n};\n\nconst saveCurrentScroll = (): void => {\n const navigate = navigateStateFrom(window.history.state);\n if (!navigate) return;\n const scroll = captureScroll();\n scrollSnapshots.set(navigate.id, scroll);\n if (equalScrollStates(navigate.scroll, scroll)) return;\n replaceEntry({...navigate, scroll});\n};\n\nconst flushCurrentScroll = (): void => {\n if (scrollSaveTimer !== null) {\n window.clearTimeout(scrollSaveTimer);\n scrollSaveTimer = null;\n }\n saveCurrentScroll();\n};\n\nconst scheduleCurrentScroll = (): void => {\n const navigate = navigateStateFrom(window.history.state);\n if (!navigate) return;\n const scroll = captureScroll();\n scrollSnapshots.set(navigate.id, scroll);\n if (equalScrollStates(navigate.scroll, scroll)) return;\n if (scrollSaveTimer !== null) window.clearTimeout(scrollSaveTimer);\n scrollSaveTimer = window.setTimeout(() => {\n scrollSaveTimer = null;\n const current = navigateStateFrom(window.history.state);\n if (!current) return;\n const latest = scrollSnapshots.get(current.id);\n if (latest && !equalScrollStates(current.scroll, latest)) {\n replaceEntry({...current, scroll: latest});\n }\n }, SCROLL_SAVE_DELAY);\n};\n\nconst restoreScroll = (scroll: ScrollState): void => {\n requestAnimationFrame(() => {\n window.scrollTo({left: scroll.window.x, top: scroll.window.y, behavior: 'instant'});\n document.querySelectorAll<HTMLElement>(SCROLL_CONTAINER_SELECTOR).forEach((element) => {\n const key = scrollContainerKey(element);\n const position = key ? scroll.containers[key] : undefined;\n element.scrollTo({\n left: position?.x ?? 0,\n top: position?.y ?? 0,\n behavior: 'instant',\n });\n });\n });\n};\n\nconst dispatchNavigation = (\n name: string,\n session: Pick<NavigationSession, 'destination' | 'history' | 'source'>,\n cancelable = false,\n): boolean => {\n const source = session.source?.isConnected ? session.source : document;\n return source.dispatchEvent(new CustomEvent<NavigationDetail>(name, {\n bubbles: true,\n cancelable,\n composed: true,\n detail: {\n history: session.history,\n source,\n url: session.destination,\n },\n }));\n};\n\nconst rememberCompleted = (session: NavigationSession): void => {\n completedSessions.set(session.requestId, session);\n while (completedSessions.size > COMPLETED_SESSION_LIMIT) {\n const oldest = completedSessions.keys().next().value as string | undefined;\n if (!oldest) break;\n completedSessions.delete(oldest);\n }\n};\n\nconst rejectRequestId = (requestId: string): void => {\n cancelledRequestIds.add(requestId);\n while (cancelledRequestIds.size > CANCELLED_REQUEST_LIMIT) {\n const oldest = cancelledRequestIds.values().next().value as string | undefined;\n if (!oldest) break;\n cancelledRequestIds.delete(oldest);\n }\n};\n\nconst cancelActive = (): void => {\n if (!activeSession) return;\n rejectRequestId(activeSession.requestId);\n activeSession.controller.abort('Superseded by a newer Trellis navigation');\n activeSession = null;\n};\n\nconst supersedePriorNavigations = (): void => {\n cancelActive();\n completedSessions.forEach((session) => rejectRequestId(session.requestId));\n completedSessions.clear();\n};\n\nconst nativeNavigate = (url: URL): void => {\n window.location.assign(url.href);\n};\n\nconst internalUrl = (value: string): URL | null => {\n const url = new URL(value, document.baseURI);\n return url.origin === window.location.origin ? url : null;\n};\n\nconst pushDestination = (session: NavigationSession): NavigateHistoryState => {\n flushCurrentScroll();\n const navigate: NavigateHistoryState = {\n id: navigationId(),\n index: currentIndex + 1,\n scroll: emptyScrollState(),\n url: session.destination.href,\n };\n currentIndex = navigate.index;\n window.history.pushState(mergedHistoryState(navigate), '', session.destination);\n currentUrl = session.destination.href;\n session.entryId = navigate.id;\n return navigate;\n};\n\nconst replaceDestination = (session: NavigationSession): NavigateHistoryState => {\n const navigate: NavigateHistoryState = {\n id: navigationId(),\n index: currentIndex,\n scroll: emptyScrollState(),\n url: session.destination.href,\n };\n replaceEntry(navigate, session.destination);\n session.entryId = navigate.id;\n return navigate;\n};\n\nconst commitsWithReplace = (session: NavigationSession): boolean => {\n if (session.disposition === 'replace') return true;\n if (session.disposition === 'push') return false;\n const current = new URL(window.location.href);\n return current.origin === session.destination.origin && current.pathname === session.destination.pathname;\n};\n\nconst fallbackFor = (session: NavigationSession, result?: RequestResult): void => {\n if (\n result?.type === 'aborted'\n || result?.type === 'cancelled'\n || result?.type === 'redirect'\n ) return;\n nativeNavigate(session.destination);\n};\n\nconst finishSession = (\n session: NavigationSession,\n result: RequestResult,\n restoredState?: NavigateHistoryState,\n): void => {\n if (cancelledRequestIds.has(session.requestId)) return;\n if (result.type !== 'empty') {\n fallbackFor(session, result);\n return;\n }\n\n const destinationState = restoredState ?? (\n commitsWithReplace(session) ? replaceDestination(session) : pushDestination(session)\n );\n if (restoredState && session.destination.href !== restoredState.url) {\n const redirected = {...restoredState, url: session.destination.href};\n replaceEntry(redirected, session.destination);\n session.entryId = redirected.id;\n }\n restoreScroll(destinationState.scroll);\n dispatchNavigation('ui:navigated', session);\n};\n\nconst performNavigation = (\n AlpineInstance: StreamAlpine,\n destination: URL,\n options: {\n history: boolean;\n disposition?: NavigationHistory;\n preflight?: boolean;\n requestOptions?: RequestOptions;\n source?: Element;\n restoredState?: NavigateHistoryState;\n },\n): Promise<void> => {\n const session: NavigationSession = {\n controller: new AbortController(),\n destination,\n entryId: options.restoredState?.id ?? null,\n history: options.history,\n disposition: options.disposition ?? 'auto',\n requestId: navigationId(),\n ...(options.requestOptions ? {requestOptions: options.requestOptions} : {}),\n ...(options.source ? {source: options.source} : {}),\n };\n\n if (options.preflight !== false && !dispatchNavigation('ui:navigate', session, true)) return Promise.resolve();\n flushCurrentScroll();\n supersedePriorNavigations();\n activeSession = session;\n dispatchNavigation('ui:navigating', session);\n\n const headers = new Headers(session.requestOptions?.headers);\n headers.set('X-Trellis-Navigation', session.history ? 'restore' : 'navigate');\n let initialRequest = true;\n const requestDestination = async (): Promise<RequestResult> => {\n const requestOptions = initialRequest ? session.requestOptions : undefined;\n const source = initialRequest ? session.source : undefined;\n initialRequest = false;\n const result = await requestWithAlpine(AlpineInstance, session.destination, {\n ...requestOptions,\n headers,\n method: 'GET',\n requestId: session.requestId,\n signal: session.controller.signal,\n ...(source ? {source} : {}),\n });\n session.destination = new URL(result.url, document.baseURI);\n if (result.type !== 'navigate') return result;\n\n const redirected = internalUrl(result.navigation.url);\n if (!redirected) {\n nativeNavigate(new URL(result.navigation.url, document.baseURI));\n return {\n requestId: result.requestId,\n response: result.response,\n type: 'redirect',\n url: result.url,\n };\n }\n session.destination = redirected;\n if (result.navigation.history !== 'auto') session.disposition = result.navigation.history;\n return requestDestination();\n };\n\n return requestDestination().then((result) => {\n if (activeSession?.requestId !== session.requestId && !completedSessions.has(session.requestId)) return;\n finishSession(session, result, options.restoredState);\n }).catch((error: unknown) => {\n if (!session.controller.signal.aborted) {\n warn('x-ui-request.navigate: restoration failed', error);\n fallbackFor(session);\n }\n }).finally(() => {\n if (activeSession?.requestId === session.requestId) activeSession = null;\n if (!cancelledRequestIds.has(session.requestId)) rememberCompleted(session);\n });\n};\n\nconst initializeHistory = (): void => {\n const existing = navigateStateFrom(window.history.state);\n if (existing) {\n currentIndex = existing.index;\n } else {\n const navigate: NavigateHistoryState = {\n id: navigationId(),\n index: 0,\n scroll: captureScroll(),\n url: window.location.href,\n };\n replaceEntry(navigate);\n }\n currentUrl = window.location.href;\n if ('scrollRestoration' in window.history) window.history.scrollRestoration = 'manual';\n};\n\nconst adoptNativeHistoryEntry = (): void => {\n const existing = navigateStateFrom(window.history.state);\n if (existing?.url === window.location.href) return;\n const navigate: NavigateHistoryState = {\n id: navigationId(),\n index: currentIndex + 1,\n scroll: captureScroll(),\n url: window.location.href,\n };\n currentIndex = navigate.index;\n replaceEntry(navigate);\n};\n\nconst sameDocument = (left: URL, right: URL): boolean => (\n left.origin === right.origin\n && left.pathname === right.pathname\n && left.search === right.search\n);\n\nconst prepareNativeFragmentNavigation = (destination: URL): void => {\n flushCurrentScroll();\n currentUrl = destination.href;\n};\n\nconst registerNavigationRuntime = (AlpineInstance: Alpine.Alpine | StreamAlpine): void => {\n if (registered) return;\n registered = true;\n initializeHistory();\n setEffectRequestFilter((requestId) => !requestId || !cancelledRequestIds.has(requestId));\n setMorphExclusionFilter((requestId, element) => (\n element.matches('[data-ui-stream]')\n && Boolean(\n requestId\n && (\n activeSession?.requestId === requestId\n || completedSessions.has(requestId)\n )\n )\n ));\n setNavigateResponseHandler((result) => {\n if (result.type !== 'navigate') return false;\n if (cancelledRequestIds.has(result.requestId)) return true;\n if (activeSession?.requestId === result.requestId) return true;\n const destination = internalUrl(result.navigation.url);\n if (!destination) {\n nativeNavigate(new URL(result.navigation.url, document.baseURI));\n return true;\n }\n performNavigation(AlpineInstance as StreamAlpine, destination, {\n history: false,\n disposition: result.navigation.history,\n });\n return true;\n });\n\n window.addEventListener('scroll', scheduleCurrentScroll, {passive: true});\n document.addEventListener('scroll', (event) => {\n if (event.target instanceof Element && event.target.matches(SCROLL_CONTAINER_SELECTOR)) {\n scheduleCurrentScroll();\n }\n }, {capture: true, passive: true});\n window.addEventListener('pagehide', flushCurrentScroll);\n window.addEventListener('hashchange', adoptNativeHistoryEntry);\n window.addEventListener('popstate', (event) => {\n if (ignoreNextPopstate) {\n ignoreNextPopstate = false;\n return;\n }\n const restoredState = navigateStateFrom(event.state);\n if (!restoredState) {\n adoptNativeHistoryEntry();\n return;\n }\n const restoredScroll = scrollSnapshots.get(restoredState.id);\n const effectiveState = restoredScroll\n ? {...restoredState, scroll: restoredScroll}\n : restoredState;\n const destination = internalUrl(restoredState.url);\n const location = new URL(window.location.href);\n if (destination && destination.href !== location.href && sameDocument(destination, location)) {\n supersedePriorNavigations();\n adoptNativeHistoryEntry();\n return;\n }\n if (!destination || destination.href !== location.href) {\n nativeNavigate(location);\n return;\n }\n\n const departed = internalUrl(currentUrl);\n if (departed && departed.href !== destination.href && sameDocument(departed, destination)) {\n supersedePriorNavigations();\n currentIndex = restoredState.index;\n currentUrl = destination.href;\n return;\n }\n\n const previousIndex = currentIndex;\n currentIndex = restoredState.index;\n const probe: NavigationSession = {\n controller: new AbortController(),\n destination,\n entryId: restoredState.id,\n history: true,\n disposition: 'replace',\n requestId: navigationId(),\n };\n if (!dispatchNavigation('ui:navigate', probe, true)) {\n ignoreNextPopstate = true;\n window.history.go(previousIndex - restoredState.index);\n currentIndex = previousIndex;\n return;\n }\n currentUrl = destination.href;\n performNavigation(AlpineInstance as StreamAlpine, destination, {\n history: true,\n preflight: false,\n restoredState: effectiveState,\n });\n });\n};\n\nconst navigateWithAlpine = (\n AlpineInstance: Alpine.Alpine | StreamAlpine,\n url: string | URL,\n source?: Element,\n options?: NavigationOptions,\n): Promise<void> => {\n const {history = 'auto', ...requestOptions} = options ?? {};\n return performNavigation(AlpineInstance as StreamAlpine, new URL(url, document.baseURI), {\n history: false,\n disposition: history,\n requestOptions,\n ...(source ? {source} : {}),\n });\n};\n\nexport {\n HISTORY_NAMESPACE,\n SCROLL_CONTAINER_SELECTOR,\n navigateWithAlpine,\n prepareNativeFragmentNavigation,\n registerNavigationRuntime,\n};\nexport type {NavigationOptions};\n","import type Alpine from 'alpinejs';\nimport type {motion} from '../motion';\nimport {\n del as requestDelete,\n get as requestGet,\n post as requestPost,\n put as requestPut,\n type NavigationHistory,\n type RequestOptions,\n type RequestResult,\n} from './engine/request';\nimport {navigateWithAlpine} from './engine/navigation';\nimport type {UiSortableService} from './drag-and-drop/sortable';\nimport {warn} from '../utils';\n\ntype UiState = {\n activeRequests: number;\n};\n\ntype UiRequestOptions = RequestOptions & {\n navigate?: boolean;\n};\ntype UiGetOptions = UiRequestOptions & {\n history?: NavigationHistory;\n};\ntype UiGet = (url: string | URL, options?: UiGetOptions) => Promise<RequestResult | void>;\ntype UiMutation = (url: string | URL, options?: UiRequestOptions) => Promise<RequestResult>;\n\ntype UiRuntime = {\n readonly delete: UiMutation;\n readonly get: UiGet;\n readonly post: UiMutation;\n readonly put: UiMutation;\n readonly isFetching: boolean;\n readonly motion: typeof motion;\n readonly sortable: UiSortableService;\n};\ntype UiCapabilities = {\n motion?: typeof motion;\n sortable?: UiSortableService;\n};\n\nlet state: UiState = {activeRequests: 0};\nlet reactive = false;\nlet listening = false;\nlet capabilities: UiCapabilities = {};\nlet AlpineRuntime: Alpine.Alpine | null = null;\nconst alpineSortable = new WeakMap<Alpine.Alpine, UiSortableService>();\n\nconst get: UiGet = (url, options = {}) => {\n const {history, navigate = false, ...requestOptions} = options;\n if (!navigate) return requestGet(url, requestOptions);\n if (!AlpineRuntime) throw new Error('Trellis UI runtime has not been registered with Alpine.');\n const {source, ...navigationOptions} = requestOptions;\n\n return navigateWithAlpine(AlpineRuntime, url, source, {\n ...navigationOptions,\n ...(history ? {history} : {}),\n });\n};\n\nconst mutationMethod = (\n name: 'delete' | 'post' | 'put',\n request: (url: string | URL, options?: RequestOptions) => Promise<RequestResult>,\n): UiMutation => (url, options = {}) => {\n const {navigate = false, ...requestOptions} = options;\n if (navigate) warn(`$ui.${name}: navigate is only supported for GET requests`);\n return request(url, requestOptions);\n};\n\nconst post = mutationMethod('post', requestPost);\nconst put = mutationMethod('put', requestPut);\nconst del = mutationMethod('delete', requestDelete);\n\nconst ui: UiRuntime = {\n get,\n post,\n put,\n delete: del,\n get motion(): typeof motion {\n if (!capabilities.motion) throw new Error('Trellis Motion capability is not registered.');\n return capabilities.motion;\n },\n get sortable(): UiSortableService {\n if (!capabilities.sortable) throw new Error('Trellis Sortable capability is not registered.');\n return capabilities.sortable;\n },\n get isFetching(): boolean {\n return state.activeRequests > 0;\n },\n};\n\nconst registerRequestState = (): void => {\n if (listening) return;\n listening = true;\n\n document.addEventListener('ui:request:start', () => {\n state.activeRequests += 1;\n });\n document.addEventListener('ui:request:finish', () => {\n state.activeRequests = Math.max(0, state.activeRequests - 1);\n });\n};\n\nconst registerUiMagic = (AlpineInstance: Alpine.Alpine): void => {\n AlpineRuntime = AlpineInstance;\n if (!reactive) {\n state = AlpineInstance.reactive(state);\n reactive = true;\n }\n registerRequestState();\n const runtime = Object.create(ui, {\n sortable: {\n configurable: false,\n enumerable: true,\n get: () => {\n const service = alpineSortable.get(AlpineInstance);\n if (!service) throw new Error('Trellis Sortable capability is not registered.');\n return service;\n },\n },\n }) as UiRuntime;\n AlpineInstance.magic('ui', () => runtime);\n};\nconst registerUiMotion = (value: typeof motion): void => {\n capabilities.motion = value;\n};\nconst registerUiSortable = (AlpineInstance: Alpine.Alpine, value: UiSortableService): void => {\n alpineSortable.set(AlpineInstance, value);\n capabilities.sortable = value;\n};\n\nexport {registerUiMagic, registerUiMotion, registerUiSortable, ui};\nexport type {UiCapabilities, UiGetOptions, UiRequestOptions, UiRuntime};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-BeNK2EFl.js";export{e as UiAccordion,t as default,t as registerAccordion};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-oJwO9fIY.js";export{t as default,t as registerButton,e as unregisterButton};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-Dcm3s3ey.js";export{e as UiCheckbox,t as UiCheckboxGroup,n as default,n as registerCheckbox};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-CvL196IN.js";export{e as UiDataGrid,t as default,t as registerDataGrid};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-C3cRWutN.js";export{e as UiDatePicker,t as default,t as registerDatePicker};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-CC6pQ0nu.js";export{e as UiDirectUpload,t as default,t as registerDirectUpload};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-CGasYxmV.js";export{e as UiDropdown,t as default,t as registerDropdown};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-BLduYCHm.js";export{e as UiField,t as default,t as registerField};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-DDJEGHq-.js";export{e as UiFileUpload,t as default,t as registerFileUpload};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-B7n4iFyw.js";export{e as UiFormset,t as default,t as registerFormset};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-BCTWp6Xu.js";export{e as UiImportMapper,n as default,n as registerImportMapper,t as mappingProjection};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"../chunks/motion-
|
|
1
|
+
import{t as e}from"../chunks/motion-CbwLBhMt.js";import{n as ee,r as te,t}from"../chunks/entry.generated-BmVGptdJ.js";import{n as ne,t as n}from"../chunks/capability-motion-C3q5Xzv2.js";import{n as re,t as r}from"../chunks/entry.generated-CyynUmGS.js";import{n as i}from"../chunks/cursor-data-source-FA9FLGtB.js";import{n as a,r as o,t as s}from"../chunks/capability-sortable-Bh6pkITu.js";import{n as ie,t as c}from"../chunks/capability-resizable-ByUbMIHF.js";import{n as ae,t as l}from"../chunks/entry.generated-BeNK2EFl.js";import{n as u,t as d}from"../chunks/entry.generated-oJwO9fIY.js";import{n as f,r as p,t as m}from"../chunks/entry.generated-Dcm3s3ey.js";import{n as h,t as g}from"../chunks/entry.generated-C3cRWutN.js";import{n as oe,t as _}from"../chunks/entry.generated-CC6pQ0nu.js";import{n as se,t as v}from"../chunks/entry.generated-CGasYxmV.js";import{n as ce,t as y}from"../chunks/entry.generated-BLduYCHm.js";import{n as le,t as b}from"../chunks/entry.generated-DDJEGHq-.js";import{n as ue,t as x}from"../chunks/entry.generated-B7n4iFyw.js";import{n as de,r as fe,t as S}from"../chunks/entry.generated-BCTWp6Xu.js";import{n as C,t as w}from"../chunks/entry.generated-iMJrYzAB.js";import{a as T,i as E,n as D,o as O,r as k,t as A}from"../chunks/capability-shortcut-BwvEqEbL.js";import{t as j}from"../chunks/controller-crMEr9_l.js";import{t as M}from"../chunks/entry.generated-DVOBR4CK.js";import{n as N,r as P,t as F}from"../chunks/entry.generated-n_t4T8XC.js";import{n as I,r as L,t as R}from"../chunks/entry.generated-B41qiwNq.js";import{n as z,r as B,t as V}from"../chunks/entry.generated-Bq2KAnfO.js";import{n as pe,t as H}from"../chunks/entry.generated-BnqcHAaF.js";import{i as me,n as he,r as ge,t as U}from"../chunks/entry.generated-DjKX5KuB.js";import{n as _e,t as W}from"../chunks/entry.generated-R1BlPlZW.js";import{n as ve,t as G}from"../chunks/entry.generated-C3y5qBcc.js";import{n as ye,t as K}from"../chunks/entry.generated-ollD3I52.js";import{n as be,r as xe,t as q}from"../chunks/entry.generated-DScbsE6-.js";import{n as Se,t as J}from"../chunks/entry.generated-CvL196IN.js";import{n as Ce,t as Y}from"../chunks/entry.generated-D8iA1e6i.js";import{_ as we,a as Te,b as Ee,c as De,d as Oe,f as ke,g as Ae,h as je,i as Me,l as Ne,m as Pe,n as Fe,o as Ie,p as Le,r as X,s as Re,t as Z,u as ze,v as Be,x as Ve,y as He}from"../chunks/entry.generated-O0hEhk-2.js";var Q=new WeakSet,$=e=>{Q.has(e)||(Q.add(e),n(e),c(e),s(e),O(e),l(e),d(),m(e),g(e),_(e),v(e),y(e),b(e),x(e),S(e),w(e),M(e),F(e),R(e),V(e),H(e),r(e),U(e),W(e),G(e),K(e),t(e),q(e),J(e),Y(e),Z(e))};export{Fe as TABLE_ALIGNS,X as TABLE_BORDERS,Me as TABLE_COLUMN_SCOPES,Te as TABLE_DENSITIES,Ie as TABLE_FILTER_AS_VALUES,Re as TABLE_LAYOUTS,De as TABLE_ROW_HEADER_SCOPES,Ne as TABLE_SORTS,ze as TABLE_VALIGNS,Oe as TABLE_VARIANTS,ke as TABLE_WIDTHS,ae as UiAccordion,f as UiCheckbox,p as UiCheckboxGroup,Ce as UiCursorVirtualizer,Se as UiDataGrid,h as UiDatePicker,oe as UiDirectUpload,se as UiDropdown,ce as UiField,le as UiFileUpload,ue as UiFormset,de as UiImportMapper,C as UiInput,N as UiModal,P as UiModalTrigger,I as UiPanelToggle,L as UiPanels,z as UiRadio,B as UiRadioGroup,pe as UiScrollArea,re as UiSelect,he as UiSidebar,ge as UiSidebarEdge,me as UiSidebarToggle,_e as UiSlider,ve as UiSwitch,ye as UiTabs,ee as UiToast,te as UiToastOutlet,be as UiTooltip,i as UiVirtualizer,$ as components,$ as default,j as createKeybindingController,ie as createResizable,A as createShortcutMatcher,o as createSortableRegistry,D as formatShortcut,k as formatShortcutKeys,fe as mappingProjection,e as motion,E as observePressedShortcutKeys,T as parseShortcut,l as registerAccordion,ne as registerBoundsDirective,d as registerButton,m as registerCheckbox,J as registerDataGrid,g as registerDatePicker,_ as registerDirectUpload,v as registerDropdown,y as registerField,b as registerFileUpload,x as registerFormset,S as registerImportMapper,w as registerInput,M as registerKeybinding,F as registerModal,n as registerMotionCapability,R as registerPanels,V as registerRadio,c as registerResizableCapability,H as registerScrollArea,r as registerSelect,O as registerShortcutCapability,U as registerSidebar,W as registerSlider,s as registerSortableCapability,a as registerSortableDirective,G as registerSwitch,Z as registerTable,K as registerTabs,t as registerToast,q as registerTooltip,xe as registerTooltipDirective,Y as registerVirtualizer,Le as tableCaptionSchema,Pe as tableCellSchema,je as tableColumnFilterSchema,Ae as tableColumnSchema,we as tableEmptySchema,Be as tableRowHeaderSchema,He as tableRowSchema,Ee as tableSchema,Ve as tableSectionSchema,u as unregisterButton};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../client/src/components/entry.generated.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerAccordion} from './accordion/entry.generated';\nimport {registerButton} from './button/entry.generated';\nimport {registerCheckbox} from './checkbox/entry.generated';\nimport {registerDatePicker} from './date-picker/entry.generated';\nimport {registerDirectUpload} from './direct-upload/entry.generated';\nimport {registerDropdown} from './dropdown/entry.generated';\nimport {registerField} from './field/entry.generated';\nimport {registerFileUpload} from './file-upload/entry.generated';\nimport {registerFormset} from './formset/entry.generated';\nimport {registerImportMapper} from './import-mapper/entry.generated';\nimport {registerInput} from './input/entry.generated';\nimport {registerKeybinding} from './keybinding/entry.generated';\nimport {registerModal} from './modal/entry.generated';\nimport {registerPanels} from './panels/entry.generated';\nimport {registerRadio} from './radio/entry.generated';\nimport {registerScrollArea} from './scroll-area/entry.generated';\nimport {registerSelect} from './select/entry.generated';\nimport {registerSidebar} from './sidebar/entry.generated';\nimport {registerSlider} from './slider/entry.generated';\nimport {registerSwitch} from './switch/entry.generated';\nimport {registerTabs} from './tabs/entry.generated';\nimport {registerToast} from './toast/entry.generated';\nimport {registerTooltip} from './tooltip/entry.generated';\nimport {registerDataGrid} from './data-grid/entry.generated';\nimport {registerVirtualizer} from './virtualizer/entry.generated';\nimport {registerTable} from './table/entry.generated';\nimport {registerMotionCapability} from '../capabilities/motion';\nimport {registerResizableCapability} from '../capabilities/resizable';\nimport {registerSortableCapability} from '../capabilities/sortable';\nimport {registerShortcutCapability} from '../capabilities/shortcut';\n\ntype ComponentsPlugin = (AlpineInstance: AlpineType) => void;\nconst registered = new WeakSet<AlpineType>();\n\nconst components: ComponentsPlugin = (AlpineInstance): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerSortableCapability(AlpineInstance);\n registerShortcutCapability(AlpineInstance);\n registerAccordion(AlpineInstance);\n registerButton();\n registerCheckbox(AlpineInstance);\n registerDatePicker(AlpineInstance);\n registerDirectUpload(AlpineInstance);\n registerDropdown(AlpineInstance);\n registerField(AlpineInstance);\n registerFileUpload(AlpineInstance);\n registerFormset(AlpineInstance);\n registerImportMapper(AlpineInstance);\n registerInput(AlpineInstance);\n registerKeybinding(AlpineInstance);\n registerModal(AlpineInstance);\n registerPanels(AlpineInstance);\n registerRadio(AlpineInstance);\n registerScrollArea(AlpineInstance);\n registerSelect(AlpineInstance);\n registerSidebar(AlpineInstance);\n registerSlider(AlpineInstance);\n registerSwitch(AlpineInstance);\n registerTabs(AlpineInstance);\n registerToast(AlpineInstance);\n registerTooltip(AlpineInstance);\n registerDataGrid(AlpineInstance);\n registerVirtualizer(AlpineInstance);\n registerTable(AlpineInstance);\n};\n\nexport {components};\nexport default components;\nexport type {ComponentsPlugin};\nexport * from './accordion/entry.generated';\nexport * from './button/entry.generated';\nexport * from './checkbox/entry.generated';\nexport * from './date-picker/entry.generated';\nexport * from './direct-upload/entry.generated';\nexport * from './dropdown/entry.generated';\nexport * from './field/entry.generated';\nexport * from './file-upload/entry.generated';\nexport * from './formset/entry.generated';\nexport * from './import-mapper/entry.generated';\nexport * from './input/entry.generated';\nexport * from './keybinding/entry.generated';\nexport * from './modal/entry.generated';\nexport * from './panels/entry.generated';\nexport * from './radio/entry.generated';\nexport * from './scroll-area/entry.generated';\nexport * from './select/entry.generated';\nexport * from './sidebar/entry.generated';\nexport * from './slider/entry.generated';\nexport * from './switch/entry.generated';\nexport * from './tabs/entry.generated';\nexport * from './toast/entry.generated';\nexport * from './tooltip/entry.generated';\nexport * from './data-grid/entry.generated';\nexport * from './virtualizer/entry.generated';\nexport * from './table/entry.generated';\nexport * from '../capabilities/motion';\nexport * from '../capabilities/resizable';\nexport * from '../capabilities/sortable';\nexport * from '../capabilities/shortcut';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../client/src/components/entry.generated.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerAccordion} from './accordion/entry.generated';\nimport {registerButton} from './button/entry.generated';\nimport {registerCheckbox} from './checkbox/entry.generated';\nimport {registerDatePicker} from './date-picker/entry.generated';\nimport {registerDirectUpload} from './direct-upload/entry.generated';\nimport {registerDropdown} from './dropdown/entry.generated';\nimport {registerField} from './field/entry.generated';\nimport {registerFileUpload} from './file-upload/entry.generated';\nimport {registerFormset} from './formset/entry.generated';\nimport {registerImportMapper} from './import-mapper/entry.generated';\nimport {registerInput} from './input/entry.generated';\nimport {registerKeybinding} from './keybinding/entry.generated';\nimport {registerModal} from './modal/entry.generated';\nimport {registerPanels} from './panels/entry.generated';\nimport {registerRadio} from './radio/entry.generated';\nimport {registerScrollArea} from './scroll-area/entry.generated';\nimport {registerSelect} from './select/entry.generated';\nimport {registerSidebar} from './sidebar/entry.generated';\nimport {registerSlider} from './slider/entry.generated';\nimport {registerSwitch} from './switch/entry.generated';\nimport {registerTabs} from './tabs/entry.generated';\nimport {registerToast} from './toast/entry.generated';\nimport {registerTooltip} from './tooltip/entry.generated';\nimport {registerDataGrid} from './data-grid/entry.generated';\nimport {registerVirtualizer} from './virtualizer/entry.generated';\nimport {registerTable} from './table/entry.generated';\nimport {registerMotionCapability} from '../capabilities/motion';\nimport {registerResizableCapability} from '../capabilities/resizable';\nimport {registerSortableCapability} from '../capabilities/sortable';\nimport {registerShortcutCapability} from '../capabilities/shortcut';\n\ntype ComponentsPlugin = (AlpineInstance: AlpineType) => void;\nconst registered = new WeakSet<AlpineType>();\n\nconst components: ComponentsPlugin = (AlpineInstance): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerSortableCapability(AlpineInstance);\n registerShortcutCapability(AlpineInstance);\n registerAccordion(AlpineInstance);\n registerButton();\n registerCheckbox(AlpineInstance);\n registerDatePicker(AlpineInstance);\n registerDirectUpload(AlpineInstance);\n registerDropdown(AlpineInstance);\n registerField(AlpineInstance);\n registerFileUpload(AlpineInstance);\n registerFormset(AlpineInstance);\n registerImportMapper(AlpineInstance);\n registerInput(AlpineInstance);\n registerKeybinding(AlpineInstance);\n registerModal(AlpineInstance);\n registerPanels(AlpineInstance);\n registerRadio(AlpineInstance);\n registerScrollArea(AlpineInstance);\n registerSelect(AlpineInstance);\n registerSidebar(AlpineInstance);\n registerSlider(AlpineInstance);\n registerSwitch(AlpineInstance);\n registerTabs(AlpineInstance);\n registerToast(AlpineInstance);\n registerTooltip(AlpineInstance);\n registerDataGrid(AlpineInstance);\n registerVirtualizer(AlpineInstance);\n registerTable(AlpineInstance);\n};\n\nexport {components};\nexport default components;\nexport type {ComponentsPlugin};\nexport * from './accordion/entry.generated';\nexport * from './button/entry.generated';\nexport * from './checkbox/entry.generated';\nexport * from './date-picker/entry.generated';\nexport * from './direct-upload/entry.generated';\nexport * from './dropdown/entry.generated';\nexport * from './field/entry.generated';\nexport * from './file-upload/entry.generated';\nexport * from './formset/entry.generated';\nexport * from './import-mapper/entry.generated';\nexport * from './input/entry.generated';\nexport * from './keybinding/entry.generated';\nexport * from './modal/entry.generated';\nexport * from './panels/entry.generated';\nexport * from './radio/entry.generated';\nexport * from './scroll-area/entry.generated';\nexport * from './select/entry.generated';\nexport * from './sidebar/entry.generated';\nexport * from './slider/entry.generated';\nexport * from './switch/entry.generated';\nexport * from './tabs/entry.generated';\nexport * from './toast/entry.generated';\nexport * from './tooltip/entry.generated';\nexport * from './data-grid/entry.generated';\nexport * from './virtualizer/entry.generated';\nexport * from './table/entry.generated';\nexport * from '../capabilities/motion';\nexport * from '../capabilities/resizable';\nexport * from '../capabilities/sortable';\nexport * from '../capabilities/shortcut';\n"],"mappings":"s1EAmCA,IAAM,EAAa,IAAI,QAEjB,EAAgC,GAAyB,CACvD,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAC7B,EAAyB,CAAc,EACvC,EAA4B,CAAc,EAC1C,EAA2B,CAAc,EACzC,EAA2B,CAAc,EACzC,EAAkB,CAAc,EAChC,EAAe,EACf,EAAiB,CAAc,EAC/B,EAAmB,CAAc,EACjC,EAAqB,CAAc,EACnC,EAAiB,CAAc,EAC/B,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAgB,CAAc,EAC9B,EAAqB,CAAc,EACnC,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAc,CAAc,EAC5B,EAAe,CAAc,EAC7B,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAe,CAAc,EAC7B,EAAgB,CAAc,EAC9B,EAAe,CAAc,EAC7B,EAAe,CAAc,EAC7B,EAAa,CAAc,EAC3B,EAAc,CAAc,EAC5B,EAAgB,CAAc,EAC9B,EAAiB,CAAc,EAC/B,EAAoB,CAAc,EAClC,EAAc,CAAc,EAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-iMJrYzAB.js";export{e as UiInput,t as default,t as registerInput};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../chunks/controller-
|
|
1
|
+
import{t as e}from"../chunks/controller-crMEr9_l.js";import{t}from"../chunks/entry.generated-DVOBR4CK.js";export{e as createKeybindingController,t as default,t as registerKeybinding};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-n_t4T8XC.js";export{e as UiModal,t as UiModalTrigger,n as default,n as registerModal};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-B41qiwNq.js";export{e as UiPanelToggle,t as UiPanels,n as default,n as registerPanels};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-Bq2KAnfO.js";export{e as UiRadio,t as UiRadioGroup,n as default,n as registerRadio};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-BnqcHAaF.js";export{e as UiScrollArea,t as default,t as registerScrollArea};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-CyynUmGS.js";export{e as UiSelect,t as default,t as registerSelect};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"../chunks/entry.generated-
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"../chunks/entry.generated-DjKX5KuB.js";export{t as UiSidebar,n as UiSidebarEdge,e as UiSidebarToggle,r as default,r as registerSidebar};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-R1BlPlZW.js";export{e as UiSlider,t as default,t as registerSlider};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-C3y5qBcc.js";export{e as UiSwitch,t as default,t as registerSwitch};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../chunks/entry.generated-
|
|
1
|
+
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../chunks/entry.generated-O0hEhk-2.js";export{d as TABLE_ALIGNS,m as TABLE_BORDERS,c as TABLE_COLUMN_SCOPES,t as TABLE_DENSITIES,f as TABLE_FILTER_AS_VALUES,h as TABLE_LAYOUTS,r as TABLE_ROW_HEADER_SCOPES,l as TABLE_SORTS,_ as TABLE_VALIGNS,i as TABLE_VARIANTS,a as TABLE_WIDTHS,g as default,g as registerTable,p as tableCaptionSchema,u as tableCellSchema,s as tableColumnFilterSchema,o as tableColumnSchema,e as tableEmptySchema,v as tableRowHeaderSchema,b as tableRowSchema,n as tableSchema,y as tableSectionSchema};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-ollD3I52.js";export{e as UiTabs,t as default,t as registerTabs};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-BmVGptdJ.js";export{e as UiToast,t as UiToastOutlet,n as default,n as registerToast};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-DScbsE6-.js";export{e as UiTooltip,n as default,n as registerTooltip,t as registerTooltipDirective};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"../chunks/cursor-data-source-
|
|
1
|
+
import{n as e}from"../chunks/cursor-data-source-FA9FLGtB.js";import{n as t,t as n}from"../chunks/entry.generated-D8iA1e6i.js";export{t as UiCursorVirtualizer,e as UiVirtualizer,n as default,n as registerVirtualizer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./chunks/ui-
|
|
1
|
+
import{i as e}from"./chunks/ui-CGwc8KXJ.js";import{a as t,c as n,f as r,l as i,n as a,o,s}from"./chunks/codecs-CQ7olTJL.js";import{i as c,r as l,t as u}from"./chunks/alpine-machine-CE2UN4Qu.js";import{n as d}from"./chunks/alpine-data-Dvc_bXq6.js";import{a as f,i as p,n as m,r as h,t as g}from"./chunks/core-DOHj5fa1.js";import{n as _,t as v}from"./chunks/styles-CX2j92ex.js";import{t as y}from"./chunks/merge-bindings-BtqW3UgP.js";import{t as b}from"./chunks/machine-CNnHDbyo.js";export{a as bool,g as coreRuntime,g as default,u as createAlpineMachine,b as createMachine,l as createTransitionCoordinator,t as decodeProps,d as defineAlpineData,c as defineHook,h as defineManifest,o as defineProps,p as defineSchemaManifest,v as defineStyles,s as json,y as mergeBindings,n as number,i as oneOf,f as propsFromSchema,m as registerTransitionDirective,_ as resolveStyle,r as string,e as ui};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as ee}from"./chunks/bridge-
|
|
1
|
+
import{i as e}from"./chunks/ui-CGwc8KXJ.js";import{n as ee}from"./chunks/bridge-DMrvM3JE.js";import{t}from"./chunks/motion-CbwLBhMt.js";import{n as te,r as ne,t as re}from"./chunks/entry.generated-BmVGptdJ.js";import{n,t as r}from"./chunks/capability-motion-C3q5Xzv2.js";import{a as i,c as a,f as o,l as s,n as c,o as l,s as u}from"./chunks/codecs-CQ7olTJL.js";import{i as d,r as f,t as p}from"./chunks/alpine-machine-CE2UN4Qu.js";import{n as m}from"./chunks/alpine-data-Dvc_bXq6.js";import{a as h,i as g,n as _,r as v,t as y}from"./chunks/core-DOHj5fa1.js";import{n as b,t as x}from"./chunks/styles-CX2j92ex.js";import{t as S}from"./chunks/merge-bindings-BtqW3UgP.js";import{t as C}from"./chunks/machine-CNnHDbyo.js";import{n as w,t as T}from"./chunks/entry.generated-CyynUmGS.js";import{n as E}from"./chunks/cursor-data-source-FA9FLGtB.js";import{n as D,r as O,t as k}from"./chunks/capability-sortable-Bh6pkITu.js";import{n as A,t as j}from"./chunks/capability-resizable-ByUbMIHF.js";import{n as M,t as N}from"./chunks/entry.generated-BeNK2EFl.js";import{n as P,t as F}from"./chunks/entry.generated-oJwO9fIY.js";import{n as I,r as L,t as R}from"./chunks/entry.generated-Dcm3s3ey.js";import{n as z,t as B}from"./chunks/entry.generated-C3cRWutN.js";import{n as V,t as H}from"./chunks/entry.generated-CC6pQ0nu.js";import{n as U,t as W}from"./chunks/entry.generated-CGasYxmV.js";import{n as G,t as K}from"./chunks/entry.generated-BLduYCHm.js";import{n as q,t as J}from"./chunks/entry.generated-DDJEGHq-.js";import{n as Y,t as X}from"./chunks/entry.generated-B7n4iFyw.js";import{n as ie,r as ae,t as oe}from"./chunks/entry.generated-BCTWp6Xu.js";import{n as se,t as ce}from"./chunks/entry.generated-iMJrYzAB.js";import{a as le,i as ue,n as de,o as fe,r as Z,t as pe}from"./chunks/capability-shortcut-BwvEqEbL.js";import{t as me}from"./chunks/controller-crMEr9_l.js";import{t as he}from"./chunks/entry.generated-DVOBR4CK.js";import{n as ge,r as _e,t as ve}from"./chunks/entry.generated-n_t4T8XC.js";import{n as ye,r as be,t as xe}from"./chunks/entry.generated-B41qiwNq.js";import{n as Se,r as Ce,t as we}from"./chunks/entry.generated-Bq2KAnfO.js";import{n as Te,t as Ee}from"./chunks/entry.generated-BnqcHAaF.js";import{i as De,n as Oe,r as ke,t as Ae}from"./chunks/entry.generated-DjKX5KuB.js";import{n as je,t as Me}from"./chunks/entry.generated-R1BlPlZW.js";import{n as Ne,t as Pe}from"./chunks/entry.generated-C3y5qBcc.js";import{n as Fe,t as Ie}from"./chunks/entry.generated-ollD3I52.js";import{n as Le,r as Re,t as ze}from"./chunks/entry.generated-DScbsE6-.js";import{n as Be,t as Ve}from"./chunks/entry.generated-CvL196IN.js";import{n as He,t as Ue}from"./chunks/entry.generated-D8iA1e6i.js";import{_ as We,a as Ge,b as Ke,c as qe,d as Je,f as Ye,g as Xe,h as Ze,i as Qe,l as $e,m as et,n as tt,o as nt,p as rt,r as it,s as at,t as ot,u as st,v as ct,x as lt,y as ut}from"./chunks/entry.generated-O0hEhk-2.js";import{components as Q}from"./components/index.js";var dt=`trellis:core.trellis:motion.trellis:resizable.trellis:sortable.trellis:shortcut.trellis:accordion.trellis:button.trellis:checkbox.trellis:date-picker.trellis:direct-upload.trellis:dropdown.trellis:field.trellis:file-upload.trellis:formset.trellis:import-mapper.trellis:input.trellis:keybinding.trellis:modal.trellis:panels.trellis:radio.trellis:scroll-area.trellis:select.trellis:sidebar.trellis:slider.trellis:switch.trellis:tabs.trellis:toast.trellis:tooltip.trellis:data-grid.trellis:virtualizer.trellis:table`.split(`.`),$=e=>{y(e),Q(e),ee(dt,e)};export{tt as TABLE_ALIGNS,it as TABLE_BORDERS,Qe as TABLE_COLUMN_SCOPES,Ge as TABLE_DENSITIES,nt as TABLE_FILTER_AS_VALUES,at as TABLE_LAYOUTS,qe as TABLE_ROW_HEADER_SCOPES,$e as TABLE_SORTS,st as TABLE_VALIGNS,Je as TABLE_VARIANTS,Ye as TABLE_WIDTHS,M as UiAccordion,I as UiCheckbox,L as UiCheckboxGroup,He as UiCursorVirtualizer,Be as UiDataGrid,z as UiDatePicker,V as UiDirectUpload,U as UiDropdown,G as UiField,q as UiFileUpload,Y as UiFormset,ie as UiImportMapper,se as UiInput,ge as UiModal,_e as UiModalTrigger,ye as UiPanelToggle,be as UiPanels,Se as UiRadio,Ce as UiRadioGroup,Te as UiScrollArea,w as UiSelect,Oe as UiSidebar,ke as UiSidebarEdge,De as UiSidebarToggle,je as UiSlider,Ne as UiSwitch,Fe as UiTabs,te as UiToast,ne as UiToastOutlet,Le as UiTooltip,E as UiVirtualizer,c as bool,Q as components,y as coreRuntime,p as createAlpineMachine,me as createKeybindingController,C as createMachine,A as createResizable,pe as createShortcutMatcher,O as createSortableRegistry,f as createTransitionCoordinator,i as decodeProps,$ as default,$ as trellisUi,m as defineAlpineData,d as defineHook,v as defineManifest,l as defineProps,g as defineSchemaManifest,x as defineStyles,de as formatShortcut,Z as formatShortcutKeys,u as json,ae as mappingProjection,S as mergeBindings,t as motion,a as number,ue as observePressedShortcutKeys,s as oneOf,le as parseShortcut,h as propsFromSchema,N as registerAccordion,n as registerBoundsDirective,F as registerButton,R as registerCheckbox,Ve as registerDataGrid,B as registerDatePicker,H as registerDirectUpload,W as registerDropdown,K as registerField,J as registerFileUpload,X as registerFormset,oe as registerImportMapper,ce as registerInput,he as registerKeybinding,ve as registerModal,r as registerMotionCapability,xe as registerPanels,we as registerRadio,j as registerResizableCapability,Ee as registerScrollArea,T as registerSelect,fe as registerShortcutCapability,Ae as registerSidebar,Me as registerSlider,k as registerSortableCapability,D as registerSortableDirective,Pe as registerSwitch,ot as registerTable,Ie as registerTabs,re as registerToast,ze as registerTooltip,Re as registerTooltipDirective,_ as registerTransitionDirective,Ue as registerVirtualizer,b as resolveStyle,o as string,rt as tableCaptionSchema,et as tableCellSchema,Ze as tableColumnFilterSchema,Xe as tableColumnSchema,We as tableEmptySchema,ct as tableRowHeaderSchema,ut as tableRowSchema,Ke as tableSchema,lt as tableSectionSchema,e as ui,P as unregisterButton};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../client/src/assets/full-runtime.generated.ts","../../../../../../../client/src/index.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nconst fullRuntimeAssetIds = [\n 'trellis:core',\n 'trellis:motion',\n 'trellis:resizable',\n 'trellis:sortable',\n 'trellis:shortcut',\n 'trellis:accordion',\n 'trellis:button',\n 'trellis:checkbox',\n 'trellis:date-picker',\n 'trellis:direct-upload',\n 'trellis:dropdown',\n 'trellis:field',\n 'trellis:file-upload',\n 'trellis:formset',\n 'trellis:import-mapper',\n 'trellis:input',\n 'trellis:keybinding',\n 'trellis:modal',\n 'trellis:panels',\n 'trellis:radio',\n 'trellis:scroll-area',\n 'trellis:select',\n 'trellis:sidebar',\n 'trellis:slider',\n 'trellis:switch',\n 'trellis:tabs',\n 'trellis:toast',\n 'trellis:tooltip',\n 'trellis:data-grid',\n 'trellis:virtualizer',\n 'trellis:table',\n] as const;\n\nexport {fullRuntimeAssetIds};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {markAssetsRegistered} from './assets/bridge';\nimport {fullRuntimeAssetIds} from './assets/full-runtime.generated';\nimport components from './components/entry.generated';\nimport coreRuntime from './core';\n\ntype TrellisUIPlugin = (AlpineInstance: AlpineType) => void;\n\nconst trellisUi: TrellisUIPlugin = (AlpineInstance): void => {\n coreRuntime(AlpineInstance);\n components(AlpineInstance);\n markAssetsRegistered(fullRuntimeAssetIds, AlpineInstance);\n};\n\nexport {trellisUi};\nexport default trellisUi;\nexport type {TrellisUIPlugin};\nexport * from './core';\nexport * from './components/entry.generated';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../client/src/assets/full-runtime.generated.ts","../../../../../../../client/src/index.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nconst fullRuntimeAssetIds = [\n 'trellis:core',\n 'trellis:motion',\n 'trellis:resizable',\n 'trellis:sortable',\n 'trellis:shortcut',\n 'trellis:accordion',\n 'trellis:button',\n 'trellis:checkbox',\n 'trellis:date-picker',\n 'trellis:direct-upload',\n 'trellis:dropdown',\n 'trellis:field',\n 'trellis:file-upload',\n 'trellis:formset',\n 'trellis:import-mapper',\n 'trellis:input',\n 'trellis:keybinding',\n 'trellis:modal',\n 'trellis:panels',\n 'trellis:radio',\n 'trellis:scroll-area',\n 'trellis:select',\n 'trellis:sidebar',\n 'trellis:slider',\n 'trellis:switch',\n 'trellis:tabs',\n 'trellis:toast',\n 'trellis:tooltip',\n 'trellis:data-grid',\n 'trellis:virtualizer',\n 'trellis:table',\n] as const;\n\nexport {fullRuntimeAssetIds};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {markAssetsRegistered} from './assets/bridge';\nimport {fullRuntimeAssetIds} from './assets/full-runtime.generated';\nimport components from './components/entry.generated';\nimport coreRuntime from './core';\n\ntype TrellisUIPlugin = (AlpineInstance: AlpineType) => void;\n\nconst trellisUi: TrellisUIPlugin = (AlpineInstance): void => {\n coreRuntime(AlpineInstance);\n components(AlpineInstance);\n markAssetsRegistered(fullRuntimeAssetIds, AlpineInstance);\n};\n\nexport {trellisUi};\nexport default trellisUi;\nexport type {TrellisUIPlugin};\nexport * from './core';\nexport * from './components/entry.generated';\n"],"mappings":"o5FAEA,IAAM,GAAsB,4gBAgC5B,ECzBM,EAA8B,GAAyB,CACzD,EAAY,CAAc,EAC1B,EAAW,CAAc,EACzB,GAAqB,GAAqB,CAAc,CAC5D"}
|