@vireo-ai/trellis-ui 0.1.60 → 0.1.61
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 +0 -1
- package/THIRD_PARTY_NOTICES.md +2 -0
- package/package.json +45 -36
- package/packages/client/src/components/field/styles.css +2 -1
- package/packages/client/src/styles/components.css +1 -0
- package/packages/client/src/styles/static.css +0 -1
- package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
- package/packages/client/types/capabilities/anchor.d.ts +7 -0
- package/packages/client/types/capabilities/anchor.entry.generated.d.ts +3 -0
- package/packages/client/types/components/accordion/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/checkbox/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/data-grid/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/date-picker/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/direct-upload/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/dropdown/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/entry.generated.d.ts +1 -0
- package/packages/client/types/components/field/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/file-upload/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/formset/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/modal/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/panels/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/radio/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/scroll-area/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/select/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/sidebar/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/slider/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/switch/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/tabs/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/toast/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/tooltip/runtime-docs.d.ts +1 -0
- package/packages/client/types/components/virtualizer/runtime-docs.d.ts +1 -0
- package/packages/client/types/directives/anchor.d.ts +26 -0
- package/packages/client/types/directives/index.d.ts +1 -0
- package/packages/client/types/runtime/anchored-popover.d.ts +4 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/{trellis-a1130be0a833.css → trellis-103fb43eb5e1.css} +23 -23
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +23 -23
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min-584dec82495c.css +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +346 -318
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor-B-CbpFFU.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor-B-CbpFFU.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{motion-B0MINJTL.js.map → motion-CKiK3BQA.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{sortable-DQ4eUO2l.js → sortable-CbIOS4Lm.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{sortable-DQ4eUO2l.js.map → sortable-CbIOS4Lm.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-D_BJBnwB.js.map → capability-motion-B32HePGn.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js +5 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-BDbURlVO.js.map → capability-sortable-Bl6ng6Hd.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-Ybm_WmKr.js.map → core-BxNepYBE.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DDrayI_M.js → entry.generated-BRaKxvab.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DDrayI_M.js.map → entry.generated-BRaKxvab.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-OT_bt7F2.js → entry.generated-BzLNUDzF.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-ChoqPigj.js → entry.generated-CL4bjCqf.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BgGSoQFS.js → entry.generated-Cbyseoex.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CqtsPVJy.js → entry.generated-Cl8rInnJ.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CqtsPVJy.js.map → entry.generated-Cl8rInnJ.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-dcqwycC7.js → entry.generated-Ct9H8Hlf.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{flip-crNQSZEa.js → flip-BKThFI4L.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{flip-crNQSZEa.js.map → flip-BKThFI4L.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B90yNOaV.js → motion-RwlK04Cy.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B90yNOaV.js.map → motion-RwlK04Cy.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-CQDZhwd_.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-CTQoglp3.js → ui-Bg44ZmC3.js} +4 -4
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/warn-BbGtqbh1.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/warn-BbGtqbh1.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DpoqsP_I.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-CCPYnOuT.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-BCkP5gtC.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-Cc84envj.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-MUHGUsup.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-DNAroAhk.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-BjLF548F.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-GpvEBW3K.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-bq7j1uwx.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-DkP0-rBO.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-OITEWczP.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/{core-CRIj89v5.js → core-Z4zMCScs.js} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +134 -111
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis-ecb43dfd3b7b.js +11 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +6 -6
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min-ecb43dfd3b7b.js +11 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +6 -6
- package/packages/theme-engine/README.md +221 -0
- package/packages/theme-engine/THEME_AUTHORING.md +44 -0
- package/packages/theme-engine/dist/trellis.js +16935 -0
- package/packages/theme-engine/generated/knobs/v1/color-alpha.json +2426 -0
- package/packages/theme-engine/generated/knobs/v1/color-foundations.json +1582 -0
- package/packages/theme-engine/generated/knobs/v1/color-ink.json +6541 -0
- package/packages/theme-engine/generated/knobs/v1/color-lighting.json +3056 -0
- package/packages/theme-engine/generated/knobs/v1/color-normalization.json +1685 -0
- package/packages/theme-engine/generated/knobs/v1/color-ramps.json +14304 -0
- package/packages/theme-engine/generated/knobs/v1/composition.json +881 -0
- package/packages/theme-engine/generated/knobs/v1/depth.json +1705 -0
- package/packages/theme-engine/generated/knobs/v1/edges.json +326 -0
- package/packages/theme-engine/generated/knobs/v1/index.json +20096 -0
- package/packages/theme-engine/generated/knobs/v1/manifest.json +719 -0
- package/packages/theme-engine/generated/knobs/v1/motion.json +128 -0
- package/packages/theme-engine/generated/knobs/v1/radii.json +331 -0
- package/packages/theme-engine/generated/knobs/v1/semantic-actions.json +1814 -0
- package/packages/theme-engine/generated/knobs/v1/semantic-disabled.json +759 -0
- package/packages/theme-engine/generated/knobs/v1/semantic-disclosure.json +59 -0
- package/packages/theme-engine/generated/knobs/v1/semantic-intents.json +4841 -0
- package/packages/theme-engine/generated/knobs/v1/semantic-scrim.json +308 -0
- package/packages/theme-engine/generated/knobs/v1/semantic-selection.json +940 -0
- package/packages/theme-engine/generated/knobs/v1/semantic-structure.json +365 -0
- package/packages/theme-engine/generated/knobs/v1/sizing-anatomy.json +3112 -0
- package/packages/theme-engine/generated/knobs/v1/sizing-controls.json +599 -0
- package/packages/theme-engine/generated/knobs/v1/sizing-measures.json +1089 -0
- package/packages/theme-engine/generated/knobs/v1/spacing.json +1246 -0
- package/packages/theme-engine/generated/knobs/v1/substrates.json +315 -0
- package/packages/theme-engine/generated/knobs/v1/surfaces.json +870 -0
- package/packages/theme-engine/generated/knobs/v1/typography-anatomy.json +1754 -0
- package/packages/theme-engine/generated/knobs/v1/typography-fonts.json +711 -0
- package/packages/theme-engine/generated/knobs/v1/typography-scale.json +329 -0
- package/packages/theme-engine/generated/schemas/theme-config-v1.json +3987 -0
- package/packages/theme-engine/generated/schemas/theme-manifest-v1.json +79 -0
- package/packages/theme-engine/skills/create-trellis-theme/SKILL.md +108 -0
- package/packages/client/types/components/runtime-docs.d.ts +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min-d053936d467f.css +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-B0MINJTL.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-D_BJBnwB.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BDbURlVO.js +0 -5
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Ybm_WmKr.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-2YvnuzOD.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-2YvnuzOD.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B986Ob4f.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B986Ob4f.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BITa8xFV.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BITa8xFV.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BSVJpGWu.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BSVJpGWu.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BgGSoQFS.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ChoqPigj.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-OT_bt7F2.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-WRveW7p9.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-WRveW7p9.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-dcqwycC7.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CTQoglp3.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-CKh9jOQc.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-DHqf4lhn.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-DhNrvLv7.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-CDPdgATy.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DzOKmgfj.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DzOKmgfj.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-1D2WtmlK.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-BXtMr9cv.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-B_b2uwfv.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-D8y44c-J.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-CBjcV5_z.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-DSduFsxK.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-B3vA5YAi.js +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-CL7BWKcd.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-CL7BWKcd.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis-acc1b62a38b1.js +0 -11
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min-acc1b62a38b1.js +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.generated-CL4bjCqf.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/motion-dom@12.43.0/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.43.0/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.43.0/node_modules/motion-dom/dist/es/gestures/hover.mjs","../../../../../../../../client/src/components/toast/contract.ts","../../../../../../../../client/src/components/toast/machine.ts","../../../../../../../../client/src/components/toast/styles.ts","../../../../../../../../client/src/components/toast/index.ts","../../../../../../../../client/src/components/toast/entry.generated.ts"],"sourcesContent":["const isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\nexport { isDragActive, isDragging };\n//# sourceMappingURL=is-active.mjs.map\n","import { resolveElements } from '../../utils/resolve-elements.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n//# sourceMappingURL=setup.mjs.map\n","import { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || isDragActive());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\nexport { hover };\n//# sourceMappingURL=hover.mjs.map\n","import {bool, number, oneOf, string, type PropState, type SchemaToProps} from '../../runtime';\n\nconst TOAST_LEVELS = ['info', 'success', 'warning', 'danger', 'debug'] as const;\nconst TOAST_COLORS = ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_RESOLVED_COLORS = ['neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_VARIANTS = ['default', 'soft', 'surface', 'solid', 'outline'] as const;\nconst TOAST_POSITIONS = ['top-right', 'top-left', 'top-center', 'bottom-right', 'bottom-left', 'bottom-center'] as const;\n\nconst toastSchema = {\n level: oneOf(TOAST_LEVELS, 'info'),\n color: oneOf(TOAST_COLORS, 'auto'),\n variant: oneOf(TOAST_VARIANTS, 'default'),\n title: string,\n description: string,\n duration: number.default(5000).min(0),\n dismissible: bool.default(true),\n class: string,\n contentClass: string,\n closeClass: string,\n};\n\nconst toastOutletSchema = {\n id: string.default('ui-toast-root'),\n position: oneOf(TOAST_POSITIONS, 'top-right'),\n duration: number.default(5000).min(0),\n includeMessages: bool.default(true),\n maxItems: number.default(3).min(0),\n class: string,\n};\n\ntype ToastLevel = typeof TOAST_LEVELS[number];\ntype ToastColor = typeof TOAST_COLORS[number];\ntype ToastResolvedColor = typeof TOAST_RESOLVED_COLORS[number];\ntype ToastVariant = typeof TOAST_VARIANTS[number];\ntype ToastPosition = typeof TOAST_POSITIONS[number];\ntype ToastProps = SchemaToProps<typeof toastSchema>;\ntype ToastOutletProps = PropState<typeof toastOutletSchema>;\n\nexport {TOAST_COLORS, TOAST_LEVELS, TOAST_POSITIONS, TOAST_RESOLVED_COLORS, TOAST_VARIANTS, toastOutletSchema, toastSchema};\nexport type {ToastColor, ToastLevel, ToastOutletProps, ToastPosition, ToastProps, ToastResolvedColor, ToastVariant};\n","import {createMachine, type Machine, type MachineEventObject} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {ToastProps} from './contract';\n\ntype ToastDismissReason = 'timeout' | 'close' | 'api' | 'swipe';\ntype ToastPauseSource = 'outlet' | 'visibility' | 'consumer' | 'gesture';\n\ntype ToastContext = {\n timer: {remaining: number; pauseSources: ToastPauseSource[]};\n dismissal: {reason: ToastDismissReason};\n};\n\ntype ToastMachineEffects = {\n prepareOpen(props: ToastProps): void;\n finishOpen(): void;\n startTimer(remaining: number): void;\n stopTimer(): void;\n prepareClose(): void;\n finishClose(reason: ToastDismissReason): void;\n syncProps(props: ToastProps): void;\n};\n\nconst openingHook = defineHook({\n name: 'opening', state: 'opening', project: () => ({}), onDone: 'OPENING_DONE', onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, Record<string, never>, 'opening'>);\nconst closingHook = defineHook({\n name: 'closing', state: 'closing', project: ({context}) => ({reason: context.dismissal.reason}),\n onDone: 'CLOSING_DONE', onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, {reason: ToastDismissReason}, 'closing'>);\nconst toastHooks = [openingHook, closingHook] as const;\n\nconst pauseSourceFrom = (value: unknown): ToastPauseSource | null => (\n value === 'outlet' || value === 'visibility' || value === 'consumer' || value === 'gesture' ? value : null\n);\nconst nextPropsFrom = (event: MachineEventObject, current: ToastProps): ToastProps => (\n (event.props as ToastProps | undefined) ?? current\n);\nconst durationChanges = ({event, props}: {event: MachineEventObject; props: Readonly<ToastProps>}): boolean => (\n nextPropsFrom(event, props).duration !== props.duration\n);\nconst becomesPersistent = ({event, props}: {event: MachineEventObject; props: Readonly<ToastProps>}): boolean => (\n durationChanges({event, props}) && nextPropsFrom(event, props).duration === 0\n);\nconst becomesTimed = ({event, props}: {event: MachineEventObject; props: Readonly<ToastProps>}): boolean => (\n durationChanges({event, props}) && nextPropsFrom(event, props).duration > 0\n);\n\nconst createToastMachine = (props: ToastProps, effects: ToastMachineEffects): Machine<ToastContext, ToastProps> => createMachine<ToastContext, ToastProps>({\n initial: 'idle',\n states: {\n idle: {on: {\n OPEN: {target: 'opening', effects: 'prepareOpen'},\n PAUSE: {guard: 'addsPauseSource', reduce: 'addPauseSource'},\n RESUME: {guard: 'hasPauseSource', reduce: 'removePauseSource'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'syncProps'},\n }},\n opening: {\n tags: ['visible', 'expanded', 'transitioning'],\n on: {\n OPENING_DONE: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n OPENING_ERROR: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n PAUSE: {guard: 'addsPauseSource', reduce: 'addPauseSource'},\n RESUME: {guard: 'hasPauseSource', reduce: 'removePauseSource'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'syncProps'},\n DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'},\n },\n },\n open: {\n id: 'open', initial: 'running', tags: ['visible', 'expanded', 'open'],\n on: {DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'}},\n states: {\n persistent: {on: {\n PAUSE: {guard: 'addsPauseSource', reduce: 'addPauseSource'},\n RESUME: {guard: 'hasPauseSource', reduce: 'removePauseSource'},\n PROPS_CHANGED: [\n {target: 'paused', guard: 'becomesTimedWhilePaused', reduce: 'reconcileProps', effects: 'syncProps'},\n {target: 'running', guard: 'becomesTimed', reduce: 'reconcileProps', effects: 'syncProps'},\n {reduce: 'reconcileProps', effects: 'syncProps'},\n ],\n }},\n running: {entry: 'startTimer', exit: 'stopTimer', on: {\n PAUSE: {target: 'paused', guard: 'addsPauseSource', reduce: 'addPauseSource'},\n TICK: {reduce: 'tick'},\n PROPS_CHANGED: [\n {target: 'persistent', guard: 'becomesPersistent', reduce: 'reconcileProps', effects: 'syncProps'},\n {target: 'running', guard: 'durationChanges', reduce: 'reconcileProps', effects: 'syncProps'},\n {reduce: 'reconcileProps', effects: 'syncProps'},\n ],\n }},\n paused: {tags: ['paused'], on: {\n PAUSE: {guard: 'addsPauseSource', reduce: 'addPauseSource'},\n RESUME: [\n {target: 'running', guard: 'releasesFinalPauseSource', reduce: 'removePauseSource'},\n {guard: 'hasPauseSource', reduce: 'removePauseSource'},\n ],\n PROPS_CHANGED: [\n {target: 'persistent', guard: 'becomesPersistent', reduce: 'reconcileProps', effects: 'syncProps'},\n {reduce: 'reconcileProps', effects: 'syncProps'},\n ],\n }},\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'syncProps'},\n CLOSING_DONE: {target: 'removed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'removed', effects: 'finishClose'},\n },\n },\n removed: {tags: ['removed'], on: {PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'syncProps'}}},\n },\n}, {\n context: {timer: {remaining: props.duration, pauseSources: []}, dismissal: {reason: 'api'}}, props,\n reducers: {\n reconcileProps: ({context, event, props: currentProps}) => {\n const nextProps = nextPropsFrom(event, currentProps);\n return {\n context: nextProps.duration === currentProps.duration\n ? context\n : {...context, timer: {...context.timer, remaining: nextProps.duration}},\n props: nextProps,\n };\n },\n addPauseSource: ({context, event}) => ({context: {...context, timer: {\n remaining: context.timer.pauseSources.length === 0 && typeof event.remaining === 'number'\n ? event.remaining\n : context.timer.remaining,\n pauseSources: [...context.timer.pauseSources, pauseSourceFrom(event.source) as ToastPauseSource],\n }}}),\n removePauseSource: ({context, event}) => ({context: {...context, timer: {\n ...context.timer,\n pauseSources: context.timer.pauseSources.filter((source) => source !== event.source),\n }}}),\n tick: ({context, event}) => ({context: {...context, timer: {...context.timer, remaining: Math.max(0, Number(event.remaining) || 0)}}}),\n dismiss: ({context, event}) => ({context: {...context, dismissal: {\n reason: event.reason === 'timeout' || event.reason === 'close' || event.reason === 'swipe'\n ? event.reason\n : 'api' as ToastDismissReason,\n }}}),\n },\n guards: {\n isPersistent: ({props: currentProps}) => currentProps.duration === 0,\n isPaused: ({context}) => context.timer.pauseSources.length > 0,\n addsPauseSource: ({context, event}) => {\n const source = pauseSourceFrom(event.source);\n return source !== null && !context.timer.pauseSources.includes(source);\n },\n hasPauseSource: ({context, event}) => {\n const source = pauseSourceFrom(event.source);\n return source !== null && context.timer.pauseSources.includes(source);\n },\n releasesFinalPauseSource: ({context, event}) => {\n const source = pauseSourceFrom(event.source);\n return source !== null && context.timer.pauseSources.length === 1 && context.timer.pauseSources[0] === source;\n },\n durationChanges,\n becomesPersistent,\n becomesTimed,\n becomesTimedWhilePaused: (scope) => becomesTimed(scope) && scope.context.timer.pauseSources.length > 0,\n },\n effects: {\n prepareOpen: ({props: currentProps}) => effects.prepareOpen(currentProps),\n finishOpen: effects.finishOpen,\n startTimer: ({context}) => effects.startTimer(context.timer.remaining),\n stopTimer: effects.stopTimer,\n prepareClose: effects.prepareClose,\n syncProps: ({props: currentProps}) => effects.syncProps(currentProps),\n finishClose: ({context}) => effects.finishClose(context.dismissal.reason),\n },\n});\n\nexport {createToastMachine, toastHooks};\nexport type {ToastContext, ToastDismissReason, ToastMachineEffects, ToastPauseSource};\n","import {defineStyles} from '../../runtime';\n\nconst toastStyles = defineStyles({definition: {\n component: 'ui.toast',\n parts: {\n root: {\n base: [\n 'group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none',\n 'data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0',\n ],\n variants: {\n variant: {\n default: '',\n soft: '',\n surface: '',\n solid: '',\n outline: '',\n },\n color: {\n neutral: '',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n hasMarker: {\n true: 'grid-cols-[auto_minmax(0,1fr)_auto]',\n false: 'grid-cols-[minmax(0,1fr)_auto]',\n },\n hasDescription: {\n true: '',\n false: '',\n },\n },\n defaults: {\n variant: 'default',\n color: 'neutral',\n hasMarker: false,\n hasDescription: false,\n },\n },\n marker: {\n base: 'size-2 self-center rounded-full',\n variants: {\n color: {\n neutral: 'hidden',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n default: 'hidden',\n soft: '',\n surface: '',\n solid: 'hidden',\n outline: '',\n },\n },\n defaults: {\n color: 'neutral',\n variant: 'default',\n },\n },\n content: {\n base: 'grid min-w-0 gap-0.5 self-center',\n },\n title: {\n base: 'min-w-0',\n },\n description: {\n base: 'min-w-0',\n },\n close: {\n base: [\n '-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-full outline-none',\n ],\n },\n closeIcon: {\n base: 'size-icon fill-current',\n },\n outlet: {\n base: [\n 'pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2',\n ],\n variants: {\n position: {\n 'top-right': 'right-4 top-4 justify-items-end',\n 'top-left': 'left-4 top-4 justify-items-start',\n 'top-center': 'left-1/2 top-4 -translate-x-1/2 justify-items-center',\n 'bottom-right': 'bottom-4 right-4 justify-items-end',\n 'bottom-left': 'bottom-4 left-4 justify-items-start',\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2 justify-items-center',\n },\n },\n defaults: {\n position: 'top-right',\n },\n },\n },\n}});\n\nexport {toastStyles};\n\nexport const styles = [toastStyles] as const;\n","import type Alpine from 'alpinejs';\nimport {animate, hover, motionValue} from 'motion';\n\nimport {\n createAlpineMachine,\n defineAlpineData,\n type AlpineMachine,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport {defineProps} from '@client/runtime/codecs';\nimport type {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {createTemplateInstance, findItemTemplate, type TemplateInstance} from '@client/runtime/item-template';\nimport {animateSize, createMotionPlan, roles} from '@client/motion';\nimport {stopOwnedMotion} from '@client/motion/owned';\nimport {addListener, dispatch} from '@client/utils';\nimport {\n toastOutletSchema, toastSchema, type ToastColor, type ToastLevel, type ToastOutletProps,\n type ToastProps, type ToastResolvedColor, type ToastVariant,\n} from './contract';\nimport {\n createToastMachine, toastHooks, type ToastContext, type ToastDismissReason, type ToastPauseSource,\n} from './machine';\nimport {toastStyles} from './styles';\n\ntype ToastTransitionName = (typeof toastHooks)[number]['name'];\ntype ToastTransition<TName extends ToastTransitionName = ToastTransitionName> = TransitionForHook<\n Extract<(typeof toastHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype ToastDetail = {description?: unknown; title?: unknown; color?: unknown; level?: unknown; variant?: unknown; duration?: unknown; dismissible?: unknown};\n\n/**\n * Public Alpine API for `ui.toast`.\n *\n * @public\n */\ninterface UiToastApi {\n /** Whether the opening transition has settled. */\n readonly isOpen: boolean;\n /** Whether any pause source currently holds the lifetime timer. */\n readonly isPaused: boolean;\n /** Auto-dismiss lifetime remaining in milliseconds. */\n readonly remaining: number;\n /** Dismisses the notification through its closing transition. */\n dismiss(): void;\n /** Adds the consumer pause source. */\n pause(): void;\n /** Releases the consumer pause source. */\n resume(): void;\n}\n\n/**\n * Public Alpine API for `ui.toast.outlet`.\n *\n * @public\n */\ninterface UiToastOutletApi {\n /** Adds a notification using the same lifecycle as server-rendered markup. */\n add(detail: ToastDetail): void;\n}\n\ntype ToastData = AlpineMachine<ToastContext, ToastProps, typeof toastHooks> & UiToastApi & {init(): void; destroy(): void};\ntype ToastOutletData = UiToastOutletApi & {props: ToastOutletProps; sync(): void; init(): void; destroy(): void};\n\nconst isToastLevel = (value: unknown): value is ToastLevel => ['info', 'success', 'warning', 'danger', 'debug'].includes(String(value));\nconst isToastColor = (value: unknown): value is ToastColor => ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'].includes(String(value));\nconst isToastVariant = (value: unknown): value is ToastVariant => ['default', 'soft', 'surface', 'solid', 'outline'].includes(String(value));\nconst toastColorForLevel = (level: ToastLevel): ToastResolvedColor => level === 'info' ? 'accent' : level === 'success' || level === 'warning' || level === 'danger' ? level : 'neutral';\nconst resolveToastColor = (color: unknown, level: ToastLevel): ToastResolvedColor => isToastColor(color) && color !== 'auto' ? color : toastColorForLevel(level);\nconst normalizedDuration = (value: unknown, fallback: number): number => {\n const duration = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(duration) && duration >= 0 ? duration : fallback;\n};\n\nconst toastRestTransform = (toast: HTMLElement): string => {\n const style = toast.style;\n const offset = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-offset')) || 0;\n const scale = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-scale')) || 1;\n return `translateY(${offset}px) scale(${scale})`;\n};\n\nconst activeToasts = (outlet: HTMLElement): HTMLElement[] => Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'))\n .filter((toast) => toast.dataset.state !== 'closing' && toast.dataset.state !== 'closed');\n\nconst stopToastStackHeightMotion = (outlet: HTMLElement): void => {\n stopOwnedMotion(outlet);\n};\n\nconst syncToastStack = (outlet: HTMLElement, animateStack = false, fromHeight?: number): void => {\n const renderedHeight = fromHeight ?? outlet.getBoundingClientRect().height;\n stopToastStackHeightMotion(outlet);\n const toasts = Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'));\n outlet.dataset.stack = toasts.length > 1 ? 'collapsed' : 'single';\n const style = getComputedStyle(outlet);\n const gap = Number.parseFloat(style.rowGap || style.gap || '0') || 0;\n const heights = toasts.map((toast) => Math.ceil(toast.scrollHeight || toast.getBoundingClientRect().height));\n const peek = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-peek')) || 8;\n const direction = outlet.dataset.position?.startsWith('bottom') ? -1 : 1;\n const expanded = outlet.dataset.stackExpanded === 'true';\n const depth = Math.min(Math.max(0, toasts.length - 1), 3);\n outlet.style.setProperty('--ui-toast-front-height', `${heights[0] ?? 0}px`);\n outlet.style.setProperty('--ui-toast-stack-height', `${(heights[0] ?? 0) + depth * peek}px`);\n outlet.style.setProperty('--ui-toast-stack-expanded-height', `${heights.reduce((sum, height) => sum + height, 0) + Math.max(0, toasts.length - 1) * gap}px`);\n const targetHeight = outlet.getBoundingClientRect().height;\n if (animateStack && Math.abs(renderedHeight - targetHeight) >= 1) {\n const baseline = outlet.style.height;\n animateSize(outlet, {\n keyframes: {height: [`${renderedHeight}px`, `${targetHeight}px`]},\n role: 'layout',\n cleanup: () => { outlet.style.height = baseline; },\n });\n }\n let expandedOffset = 0;\n toasts.forEach((toast, index) => {\n const itemDepth = Math.min(index, 3);\n const offset = expanded ? expandedOffset * direction : itemDepth * peek * direction;\n const scale = expanded ? 1 : Math.max(0.91, 1 - itemDepth * 0.03);\n const opacity = expanded ? 1 : Math.max(0.72, 1 - itemDepth * 0.08);\n if (expanded) expandedOffset += (heights[index] ?? 0) + gap;\n toast.dataset.stackIndex = String(index);\n toast.dataset.swipeAxis = outlet.dataset.position?.endsWith('left') || outlet.dataset.position?.endsWith('right') ? 'x' : 'y';\n toast.style.setProperty('--ui-toast-stack-index', String(index));\n toast.style.setProperty('--ui-toast-stack-depth', String(itemDepth));\n toast.style.setProperty('--ui-toast-stack-direction', String(direction));\n toast.style.setProperty('--ui-toast-outside', direction > 0 ? '-100%' : '100%');\n toast.style.setProperty('--ui-toast-stack-offset', `${offset}px`);\n toast.style.setProperty('--ui-toast-stack-scale', String(scale));\n toast.style.setProperty('--ui-toast-stack-opacity', String(opacity));\n toast.style.zIndex = String(toasts.length - index);\n const transform = `translateY(${offset}px) scale(${scale})`;\n if (toast.dataset.swiping === 'true') return;\n if (animateStack && toast.dataset.state === 'open') {\n createMotionPlan(toast).animate({opacity, transform}).role('layout').play();\n } else if (toast.dataset.state === 'open') {\n toast.style.opacity = String(opacity);\n toast.style.transform = transform;\n }\n });\n};\n\nconst requestDismiss = (toast: HTMLElement, reason: ToastDismissReason): void => {\n toast.dispatchEvent(new CustomEvent('ui:toast-dismiss-request', {detail: {reason}}));\n};\n\nconst enforceLimit = (outlet: HTMLElement, maxItems: number): void => {\n if (maxItems === 0) return;\n const active = activeToasts(outlet);\n active.slice(maxItems).forEach((toast) => requestDismiss(toast, 'api'));\n};\n\nconst syncToast = (root: HTMLElement, props: ToastProps): void => {\n const color = resolveToastColor(props.color, props.level);\n const hasDescription = root.dataset.description === 'true' || Boolean(props.description.trim());\n const hasMarker = color !== 'neutral' && props.variant !== 'solid' && props.variant !== 'default';\n const urgent = props.level === 'danger' || props.level === 'warning';\n Object.entries({\n level: props.level,\n color,\n variant: props.variant,\n duration: String(props.duration),\n dismissible: String(props.dismissible),\n }).forEach(([key, value]) => {\n if (root.dataset[key] !== value) root.dataset[key] = value;\n });\n root.setAttribute('role', urgent ? 'alert' : 'status');\n root.setAttribute('aria-live', urgent ? 'assertive' : 'polite');\n root.querySelectorAll<HTMLElement>('[data-ui-toast-close]').forEach((el) => { el.hidden = !props.dismissible; });\n if (root.hasAttribute('data-ui-toast-recipe')) {\n const className = resolveStyle({part: toastStyles.parts.root, props: {variant: props.variant, color, hasDescription, hasMarker}, className: props.class});\n if (root.className !== className) root.className = className;\n root.querySelector<HTMLElement>('[data-ui-toast-marker]')?.setAttribute('class', resolveStyle({part: toastStyles.parts.marker, props: {variant: props.variant, color}}));\n root.querySelectorAll<HTMLElement>('[data-ui-toast-content]').forEach((el) => { el.className = resolveStyle({part: toastStyles.parts.content, className: props.contentClass}); });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-title]').forEach((el) => { el.className = `text-sm font-medium ${resolveStyle({part: toastStyles.parts.title})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-description]').forEach((el) => { el.className = `text-sm ${resolveStyle({part: toastStyles.parts.description})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-close]').forEach((el) => { el.className = resolveStyle({part: toastStyles.parts.close, className: props.closeClass}); });\n }\n};\n\nconst UiToast = (): TrellisAlpineComponent<ToastData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let cleanup: CleanupManager;\n let deadline = 0;\n let timeout: number | null = null;\n let ticker: number | null = null;\n let destroyed = false;\n let activeGestureCleanup: (() => void) | null = null;\n const root = (): HTMLElement => { if (!rootEl) throw new Error('Toast has not been initialized.'); return rootEl; };\n const outlet = (): HTMLElement | null => root().parentElement?.matches('[data-ui-toast-outlet]') ? root().parentElement : null;\n const remainingNow = (): number => timeout === null ? bridge.getSnapshot().context.timer.remaining : Math.max(0, deadline - performance.now());\n const stopTimer = (): void => {\n if (timeout !== null) clearTimeout(timeout);\n if (ticker !== null) clearInterval(ticker);\n timeout = ticker = null;\n };\n const bridge = createAlpineMachine({\n schema: toastSchema, hooks: toastHooks,\n createMachine: ({props}) => createToastMachine(props, {\n prepareOpen: (props) => { root().dataset.state = 'opening'; syncToast(root(), props); outlet() && syncToastStack(outlet()!, true); },\n finishOpen: () => { root().dataset.state = 'open'; outlet() && syncToastStack(outlet()!, true); },\n startTimer: (remaining) => {\n if (remaining <= 0) return;\n deadline = performance.now() + remaining;\n timeout = window.setTimeout(() => bridge.send({type: 'DISMISS', reason: 'timeout'}), remaining);\n ticker = window.setInterval(() => bridge.send({type: 'TICK', remaining: remainingNow()}), 100);\n },\n stopTimer,\n prepareClose: () => { stopTimer(); root().dataset.state = 'closing'; outlet() && syncToastStack(outlet()!, true); },\n finishClose: (reason) => {\n const el = root();\n const parent = outlet();\n el.dataset.state = 'closed';\n dispatch({el, name: 'ui:dismiss', detail: {reason}});\n el.remove();\n if (parent) syncToastStack(parent, true);\n },\n syncProps: (props) => {\n syncToast(root(), props);\n outlet() && syncToastStack(outlet()!);\n },\n }),\n });\n const addPause = (source: ToastPauseSource): void => {\n if (destroyed) return;\n bridge.send({type: 'PAUSE', source, remaining: remainingNow()});\n };\n const removePause = (source: ToastPauseSource): void => {\n if (destroyed) return;\n bridge.send({type: 'RESUME', source});\n };\n const component: TrellisAlpineComponent<ToastData> = {\n ...bridge,\n get isOpen() { return this.snapshot.current?.tags.includes('open') ?? false; },\n get isPaused() { return (this.snapshot.current?.context.timer.pauseSources.length ?? 0) > 0; },\n get remaining() { return this.snapshot.current?.context.timer.remaining ?? 0; },\n init() {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n if (document.hidden) addPause('visibility');\n addListener({target: root(), event: 'click', handler: (event) => { const target = event.target; if (bridge.getSnapshot().props.dismissible && target instanceof Element && target.closest('[data-ui-toast-close]')) bridge.send({type: 'DISMISS', reason: 'close'}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-dismiss-request', handler: (event) => { const reason = event instanceof CustomEvent ? event.detail?.reason : 'api'; bridge.send({type: 'DISMISS', reason}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-pause-request', handler: (event) => {\n const paused = event instanceof CustomEvent && event.detail?.paused === true;\n paused ? addPause('outlet') : removePause('outlet');\n }, cleanup});\n addListener({target: document, event: 'visibilitychange', handler: () => document.hidden ? addPause('visibility') : removePause('visibility'), cleanup});\n addListener({target: root(), event: 'pointerdown', handler: (event) => {\n if (!(event instanceof PointerEvent) || !event.isPrimary || event.button !== 0) return;\n if (!bridge.getSnapshot().props.dismissible) return;\n if (event.target instanceof Element && event.target.closest('button, a, input, select, textarea')) return;\n const toast = root();\n const position = outlet()?.dataset.position ?? 'bottom-right';\n const horizontal = position.endsWith('left') || position.endsWith('right');\n const sign = horizontal\n ? position.endsWith('left') ? -1 : 1\n : position.startsWith('top') ? -1 : 1;\n const start = horizontal ? event.clientX : event.clientY;\n const startedAt = performance.now();\n const base = toastRestTransform(toast);\n const stackOpacity = Number.parseFloat(toast.style.getPropertyValue('--ui-toast-stack-opacity')) || 1;\n const delta = motionValue(0);\n activeGestureCleanup?.();\n stopOwnedMotion(toast);\n addPause('gesture');\n toast.dataset.swiping = 'true';\n toast.setPointerCapture(event.pointerId);\n const unsubscribe = delta.on('change', (value) => {\n const translation = horizontal ? `translateX(${value}px)` : `translateY(${value}px)`;\n toast.style.transform = `${base} ${translation}`;\n const distance = Math.abs(value);\n const extent = horizontal ? toast.offsetWidth : toast.offsetHeight;\n toast.style.opacity = String(Math.max(0.35, stackOpacity * (1 - distance / Math.max(extent * 2, 1))));\n });\n let gestureCleaned = false;\n const removeGestureListeners = (): void => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', finish);\n window.removeEventListener('pointercancel', cancel);\n };\n const cleanupGesture = (): void => {\n if (gestureCleaned) return;\n gestureCleaned = true;\n removeGestureListeners();\n unsubscribe();\n delete toast.dataset.swiping;\n if (activeGestureCleanup === cleanupGesture) activeGestureCleanup = null;\n };\n const move = (moveEvent: PointerEvent): void => {\n if (moveEvent.pointerId !== event.pointerId) return;\n moveEvent.preventDefault();\n const positionNow = horizontal ? moveEvent.clientX : moveEvent.clientY;\n const raw = positionNow - start;\n delta.set(raw * sign >= 0 ? raw : raw * 0.2);\n };\n const finish = (endEvent: PointerEvent, cancelled = false): void => {\n if (endEvent.pointerId !== event.pointerId) return;\n removeGestureListeners();\n const distance = delta.get();\n const elapsed = Math.max(1, performance.now() - startedAt);\n const velocity = Math.abs(distance) / elapsed;\n const dismiss = !cancelled && distance * sign > 0 && (Math.abs(distance) >= 45 || velocity > 0.11);\n const settle = dismiss\n ? animate(delta, sign * (horizontal ? window.innerWidth : window.innerHeight), roles.gestureExit)\n : animate(delta, 0, {type: 'spring', ...roles.gestureSettle});\n const opacity = animate(toast, {opacity: dismiss ? 0 : stackOpacity}, roles.gestureExit);\n void Promise.allSettled([settle.finished, opacity.finished]).then(() => {\n cleanupGesture();\n if (destroyed) return;\n removePause('gesture');\n if (dismiss) requestDismiss(toast, 'swipe');\n else {\n toast.style.opacity = String(stackOpacity);\n toast.style.transform = base;\n }\n });\n };\n const cancel = (cancelEvent: PointerEvent): void => finish(cancelEvent, true);\n activeGestureCleanup = cleanupGesture;\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', finish);\n window.addEventListener('pointercancel', cancel);\n }, cleanup});\n bridge.send('OPEN');\n },\n destroy() { destroyed = true; activeGestureCleanup?.(); stopTimer(); bridge.disconnect(); rootEl = null; },\n dismiss() { bridge.send({type: 'DISMISS', reason: 'api'}); },\n pause() { addPause('consumer'); },\n resume() { removePause('consumer'); },\n };\n return component;\n};\n\nconst UiToastOutlet = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<ToastOutletData> => {\n const expandedSources = new Set<'pointer' | 'focus'>();\n const instances = new Set<TemplateInstance<Record<string, unknown>>>();\n let rootEl: HTMLElement | null = null;\n let cleanup: CleanupManager;\n const broadcastPause = (paused: boolean): void => {\n rootEl?.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]').forEach((toast) => {\n toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused}}));\n });\n };\n const addExpandedSource = (source: 'pointer' | 'focus'): void => {\n const wasEmpty = expandedSources.size === 0;\n expandedSources.add(source);\n if (!rootEl || !wasEmpty) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n rootEl.dataset.stackExpanded = 'true';\n broadcastPause(true);\n syncToastStack(rootEl, true, fromHeight);\n };\n const removeExpandedSource = (source: 'pointer' | 'focus'): void => {\n expandedSources.delete(source);\n if (!rootEl || expandedSources.size > 0) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n delete rootEl.dataset.stackExpanded;\n broadcastPause(false);\n syncToastStack(rootEl, true, fromHeight);\n };\n return ({\n props: null as unknown as ToastOutletProps,\n init() {\n cleanup = cleanupManagerFor(this);\n this.props = defineProps({el: this.$el, schema: toastOutletSchema, onChange: () => this.sync()});\n const root = this.$el as HTMLElement;\n rootEl = root;\n this.sync();\n cleanup.add(hover(root, () => {\n addExpandedSource('pointer');\n return () => removeExpandedSource('pointer');\n }));\n addListener({target: root, event: 'focusin', handler: () => addExpandedSource('focus'), cleanup});\n addListener({target: root, event: 'focusout', handler: () => queueMicrotask(() => { if (!root.contains(document.activeElement)) removeExpandedSource('focus'); }), cleanup});\n addListener({target: document, event: 'ui:toast', handler: (event) => this.add(event instanceof CustomEvent ? event.detail as ToastDetail : {}), cleanup});\n queueMicrotask(() => enforceLimit(root, this.props.maxItems));\n },\n destroy() {\n instances.forEach((instance) => instance.destroy());\n instances.clear();\n if (rootEl) stopToastStackHeightMotion(rootEl);\n this.props.disconnect();\n expandedSources.clear();\n rootEl = null;\n },\n sync() {\n const root = this.$el as HTMLElement;\n root.id = this.props.id; root.dataset.position = this.props.position; root.dataset.duration = String(this.props.duration); root.dataset.maxItems = String(this.props.maxItems);\n root.className = resolveStyle({part: toastStyles.parts.outlet, props: {position: this.props.position}, className: this.props.class});\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n add(detail) {\n const title = typeof detail.title === 'string' ? detail.title : '';\n const description = typeof detail.description === 'string' ? detail.description : '';\n if (!title.trim() && !description.trim()) return;\n const root = this.$el as HTMLElement;\n const template = findItemTemplate(root, 'x-ui-toast:item');\n if (!template) throw new Error('A toast outlet requires an item template.');\n const data = {\n title, description,\n level: isToastLevel(detail.level) ? detail.level : 'info',\n color: isToastColor(detail.color) ? detail.color : 'auto',\n variant: isToastVariant(detail.variant) ? detail.variant : 'default',\n duration: normalizedDuration(detail.duration, this.props.duration),\n dismissible: typeof detail.dismissible === 'boolean' ? detail.dismissible : true,\n };\n const instance = createTemplateInstance(AlpineInstance, template, {$toast: data});\n const toast = instance.element;\n if (!toast.hasAttribute('x-data')) toast.setAttribute('x-data', 'UiToast');\n toast.dataset.uiToast = '';\n Object.entries(data).forEach(([key, value]) => { toast.dataset[key] = String(value); });\n toast.dataset.description = String(Boolean(description.trim()));\n instances.add(instance);\n AlpineInstance.onElRemoved(toast, () => instances.delete(instance));\n toast.addEventListener('ui:dismiss', () => {\n instances.delete(instance);\n // UiToast finishes its own removal before its Alpine tree is cleaned up.\n queueMicrotask(() => instance.destroy());\n }, {once: true});\n instance.mount(root, root.firstChild);\n if (expandedSources.size > 0) toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused: true}}));\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n });\n};\n\nconst registerToast = (AlpineInstance: Alpine.Alpine): void => {\n // The template directive declares markup; the outlet owns its instances.\n AlpineInstance.directive('ui-toast', () => {});\n defineAlpineData('UiToast', UiToast)(AlpineInstance);\n defineAlpineData(\n 'UiToastOutlet',\n () => UiToastOutlet(AlpineInstance),\n )(AlpineInstance);\n};\n\nexport {registerToast, UiToast, UiToastOutlet};\nexport type {ToastData, ToastDetail, ToastOutletData, ToastTransition, UiToastApi, UiToastOutletApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerToast as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerToast = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerToast};\nexport default registerToast;\nexport * from './index';\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,t}from"./dom-DiTFTWeR.js";import{r as n,t as r}from"./capability-motion-D_BJBnwB.js";import{n as i}from"./morph-Cq3V_23_.js";import{f as a,l as o,n as s,o as c,u as l}from"./codecs-CQ7olTJL.js";import{i as u,t as ee}from"./alpine-machine-CE2UN4Qu.js";import{r as d,t as f}from"./focus-pk_lz9sg.js";import{t as te}from"./cleanup-manager-D9QiZF_Q.js";import{n as p,t as m}from"./alpine-data-Dvc_bXq6.js";import{n as h,t as g}from"./styles-CX2j92ex.js";import{t as _}from"./merge-bindings-BtqW3UgP.js";import{t as v}from"./machine-CNnHDbyo.js";import{t as ne}from"./dismissable-layer-BROE-Ln2.js";import{i as re,t as y}from"./focus-scope-BrYxsrhc.js";import{t as ie}from"./scroll-lock-C5dQtr4Y.js";import{A as b,D as x,d as S,g as C,r as w,u as T,z as E}from"./common-CBK89mIt.js";import{t as D}from"./controlled-open-Hy4-OT-6.js";var ae=[`modal`,`sheet`],O=T,k=b,A=w,j=[`sm`,`md`,`lg`,`xl`,`full`],M=E,N=S,P=C,F={name:a,open:s,mode:o(ae,`modal`),side:o(O,`right`),inset:o(k,`0`),radius:o(A,`none`),size:o(j,`md`),surface:o(M,`1`),elevation:o(N,`5`),dismissible:s.default(!0),closable:s.default(!0),disabled:s,initialFocus:a,finalFocus:a,label:a,descriptionId:a,panelClass:a,overlayClass:a,class:a},I={name:a,disabled:s,class:a};a.default(`ui-modal-root`),o(P,`h2`),a.default(`Close`);var oe=[u({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),u({name:`closing`,state:`closing`,project:()=>({}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],L=D(),se=({props:e,effects:t})=>v({initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:[{target:`opening`,guard:L.shouldOpen,reduce:`replaceProps`,effects:[`syncProps`,`prepareOpen`]},{reduce:`replaceProps`,effects:`syncProps`}]}},opening:{tags:[`visible`,`interactive`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,effects:`prepareClose`},CANCEL:{target:`closing`,guard:`canDismiss`,effects:[`emitCancel`,`prepareClose`]},PROPS_CHANGED:[{target:`closing`,guard:L.shouldClose,reduce:`replaceProps`,effects:[`syncProps`,`prepareClose`]},{reduce:`replaceProps`,effects:`syncProps`}]}},open:{tags:[`visible`,`interactive`,`open`],on:{CLOSE:{target:`closing`,effects:`prepareClose`},CANCEL:{target:`closing`,guard:`canDismiss`,effects:[`emitCancel`,`prepareClose`]},PROPS_CHANGED:[{target:`closing`,guard:L.shouldClose,reduce:`replaceProps`,effects:[`syncProps`,`prepareClose`]},{reduce:`replaceProps`,effects:`syncProps`}]}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`closed`,effects:`finishClose`},CLOSING_ERROR:{target:`closed`,effects:`finishClose`},OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:[{target:`opening`,guard:L.shouldOpen,reduce:`replaceProps`,effects:[`syncProps`,`prepareOpen`]},{reduce:`replaceProps`,effects:`syncProps`}]}}}},{context:{},props:e,reducers:{replaceProps:L.replace},guards:{canOpen:({props:e})=>!e.disabled,canDismiss:({props:e})=>e.dismissible},effects:{prepareOpen:t.prepareOpen,finishOpen:t.finishOpen,prepareClose:t.prepareClose,finishClose:t.finishClose,syncProps:t.syncProps,emitCancel:({event:e})=>{(e.reason===`escape`||e.reason===`outside`)&&t.emitCancel(e.reason)}}}),R={sm:`max-w-modal-sm`,md:`max-w-modal-md`,lg:`max-w-modal-lg`,xl:`max-w-modal-xl`,full:`max-w-full`},z={none:``,xs:`rounded-overlay-xs`,sm:`rounded-overlay-sm`,md:`rounded-overlay-md`,lg:`rounded-overlay-lg`,full:`rounded-full`},B=[`grid-rows-[auto_auto_minmax(0,1fr)_auto]`,`[&>[data-ui-modal-body]]:-mx-1 [&>[data-ui-modal-body]]:min-h-0 [&>[data-ui-modal-body]]:content-start`,`[&>[data-ui-modal-body]]:overflow-x-hidden [&>[data-ui-modal-body]]:overflow-y-auto [&>[data-ui-modal-body]]:px-1`,`[&>[data-ui-modal-footer]]:self-end`],V=g({definition:{component:`ui.modal`,parts:{instance:{base:`contents`},root:{base:[`fixed inset-0 z-dialog m-0 h-auto max-h-none w-auto max-w-none overflow-visible border-0 bg-transparent p-0 text-surface-ink`,`backdrop:bg-transparent`]},viewport:{base:`fixed inset-0 z-dialog flex h-dvh`,variants:{mode:{modal:`items-center justify-center overflow-y-auto p-4`,sheet:``},side:{top:``,right:``,bottom:``,left:``}},compounds:[...b.map(e=>({when:{mode:`sheet`,inset:e},class:x[e]})),{when:{mode:`sheet`,side:`top`},class:`items-start justify-center`},{when:{mode:`sheet`,side:`right`},class:`items-center justify-end overflow-hidden`},{when:{mode:`sheet`,side:`bottom`},class:`items-end justify-center`},{when:{mode:`sheet`,side:`left`},class:`items-center justify-start overflow-hidden`}],defaults:{mode:`modal`,side:`right`,inset:`0`}},overlay:{base:`fixed inset-0 bg-scrim`},panel:{base:[`relative z-dialog grid w-full min-w-0 gap-4 overflow-auto p-5 outline-none`,`max-h-full`],variants:{mode:{modal:`rounded-overlay-md`,sheet:``},side:{top:``,right:``,bottom:``,left:``}},compounds:[...j.flatMap(e=>[{when:{mode:`modal`,size:e},class:R[e]},{when:{mode:`sheet`,side:`right`,size:e},class:R[e]},{when:{mode:`sheet`,side:`left`,size:e},class:R[e]}]),{when:{mode:`sheet`,side:`right`},class:[`h-full`,B]},{when:{mode:`sheet`,side:`left`},class:[`h-full`,B]},{when:{mode:`sheet`,side:`top`},class:`max-w-full`},{when:{mode:`sheet`,side:`bottom`},class:`max-w-full`},...w.map(e=>({when:{mode:`sheet`,radius:e},class:z[e]})),{when:{mode:`sheet`,inset:`0`,side:`right`},class:`rounded-r-none`},{when:{mode:`sheet`,inset:`0`,side:`left`},class:`rounded-l-none`},{when:{mode:`sheet`,inset:`0`,side:`top`},class:`rounded-t-none`},{when:{mode:`sheet`,inset:`0`,side:`bottom`},class:`rounded-b-none`}],defaults:{mode:`modal`,side:`right`,size:`md`,inset:`0`,radius:`none`}},trigger:{base:`contents`},outlet:{base:``},title:{base:`pr-8`},description:{base:`-mt-3 pr-8 text-surface-ink-muted`},body:{base:`grid min-w-0 gap-3 text-sm`},footer:{base:`flex min-w-0 items-center justify-end gap-2 pt-1`},close:{base:[`absolute right-3 top-3 inline-flex size-control-md items-center justify-center rounded-full border border-transparent text-surface-ink-muted outline-none`,`hover:bg-interaction-hover focus-visible:ui-focus-ring`]},closeIcon:{base:`size-icon fill-current`}}}}),H=new Set,U=new Set,W=e=>e?`open`:`closed`,G=e=>e===`opening`||e===`open`,K=e=>Array.from(H).find(t=>t.name===e)??null,q=(e,t)=>{e.setAttribute(`data-state`,W(t)),e.setAttribute(`aria-expanded`,t?`true`:`false`)},J=r=>{let a=null,o=``,s=null,c=null,u=!1,p=null,g=!1,v,b=null,x=null,S=null,C=()=>{if(!a)throw Error(`Modal has not been initialized.`);return a},w=()=>{let e=C().querySelector(`[data-ui-modal]`);if(!(e instanceof HTMLDialogElement))throw Error(`Modal requires a dialog element.`);return e},T=()=>{let e=C().querySelector(`[data-ui-modal-viewport]`);if(!e)throw Error(`Modal requires a viewport element.`);return e},E=()=>{let e=C().querySelector(`[data-ui-modal-overlay]`);if(!e)throw Error(`Modal requires an overlay element.`);return e},D=()=>{let e=C().querySelector(`[data-ui-modal-panel]`);if(!e)throw Error(`Modal requires a panel element.`);return e},ae=()=>C().querySelector(`[data-ui-modal-title]`),O=()=>C().querySelector(`[data-ui-modal-description]`),k=()=>{let e=M();w().className=h({part:V.parts.root,props:e,className:e.class}),T().className=h({part:V.parts.viewport,props:e}),E().className=h({part:V.parts.overlay,props:e,className:e.overlayClass}),D().className=h({part:V.parts.panel,props:e,className:e.panelClass})},A=()=>{let e=M(),t=x===e.mode&&e.open&&w().open&&Z.matches(`open`);S?.update(k,{animate:t,key:`${e.mode}:${e.side}:${e.size}:${e.inset}`}),x=e.mode},j=()=>Array.from(C().children).find(e=>e instanceof HTMLElement&&e.matches(`[data-ui-modal-trigger]`))??null,M=()=>Z.getCommittedSnapshot().props,N=()=>Z.matches(`opening`)||Z.matches(`open`),P=(e,t)=>{if(q(e,N()),e.setAttribute(`aria-controls`,o),e.setAttribute(`data-ui-modal-trigger-target`,o),t||M().disabled){e.setAttribute(`aria-disabled`,`true`),e.setAttribute(`data-disabled`,``),e instanceof HTMLButtonElement&&(e.disabled=!0),d(e)||(e.tabIndex=-1);return}e.removeAttribute(`aria-disabled`),e.removeAttribute(`data-disabled`),e instanceof HTMLButtonElement&&(e.disabled=!1),d(e)||(e.tabIndex=0)},I=()=>{let e=j();e&&P(y(e),M().disabled),U.forEach(e=>e.sync())},L=()=>{let e=M(),t=w(),n=D(),r=ae(),i=O();t.id=o,t.setAttribute(`role`,`dialog`),t.setAttribute(`aria-modal`,`true`),n.id||=`${o}-panel`,n.tabIndex=-1,r?(r.id||=`${o}-title`,t.setAttribute(`aria-labelledby`,r.id),t.removeAttribute(`aria-label`)):(t.removeAttribute(`aria-labelledby`),e.label?t.setAttribute(`aria-label`,e.label):t.removeAttribute(`aria-label`)),i&&(i.id||=`${o}-description`),e.descriptionId===`none`?t.removeAttribute(`aria-describedby`):e.descriptionId?t.setAttribute(`aria-describedby`,e.descriptionId):i?t.setAttribute(`aria-describedby`,i.id):t.removeAttribute(`aria-describedby`)},R=({syncOpen:e=!0}={})=>{let t=N(),n=W(t);e&&l({el:C(),schema:F,key:`open`,value:t}),[w(),T(),E(),D()].forEach(e=>{e.setAttribute(`data-state`,n)}),I()},z=e=>{if(e.trim())try{return r.evaluate(C(),e)}catch{return}},B=()=>{let e=z(M().initialFocus);if(e===!1){let e=w().ownerDocument.activeElement;e instanceof HTMLElement&&w().contains(e)&&e.blur();return}if(e instanceof HTMLElement&&f(e,{showIndicator:!1}))return;let t=D().querySelector(`[autofocus]`);f(t,{showIndicator:!1})||f(D(),{showIndicator:!1})},K=()=>{let e=z(M().finalFocus);if(e===!1)return!1;if(e instanceof HTMLElement&&f(e,{showIndicator:!1})||f(s??c,{showIndicator:!1}))return!0;let t=C().parentElement?.closest(`[data-ui-modal-panel]`)??null;return f(t,{showIndicator:!1})},J=()=>{let e=w().ownerDocument.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,f(e,{showIndicator:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)},Y=()=>{let e=D();e.style.removeProperty(`transform`),e.style.removeProperty(`translate`),e.style.removeProperty(`scale`),e.style.removeProperty(`rotate`)},ce=()=>{S?.refresh({animate:!1});let e=w(),t=e.ownerDocument.activeElement;c=t instanceof HTMLElement?t:null,typeof e.showModal==`function`&&!u?(e.open&&e.removeAttribute(`open`),Y(),e.showModal(),u=!0):e.open||e.setAttribute(`open`,``),p??=ie(e.ownerDocument),L(),R(),queueMicrotask(B)},X=()=>{S?.refresh({animate:!1}),Y(),x=M().mode,R(),e({el:w(),name:`ui:open`})},le=()=>{S?.refresh({animate:!1}),R()},ue=()=>{S?.refresh({animate:!1});let t=w(),n=t.ownerDocument.activeElement;n instanceof HTMLElement&&t.contains(n)&&n.blur(),t.open&&t.close(),u=!1,p?.(),p=null,R(),x=null;let r=K(),i=t.ownerDocument.activeElement;i instanceof HTMLElement&&(t.contains(i)||!r&&(i===s||i===c))&&J(),queueMicrotask(()=>{let e=t.ownerDocument.activeElement;e instanceof HTMLElement&&t.contains(e)&&J()}),s=null,c=null,e({el:t,name:`ui:close`})},de=()=>{A(),L(),I()},Z=ee({schema:F,hooks:oe,createMachine:({props:t})=>se({props:t,effects:{prepareOpen:ce,finishOpen:X,prepareClose:le,finishClose:ue,syncProps:de,emitCancel:t=>{e({el:w(),name:`ui:cancel`,detail:{reason:t}})}}})}),Q=e=>{M().disabled||(s=e,Z.send(`OPEN`))},fe=(e,t)=>{t?.preventDefault(),Z.send({type:`CANCEL`,reason:e})},pe=()=>{b?.run(),b=null},me=e=>{let n=y(e);pe(),b=new te,v.addChild(b),P(n,M().disabled),t({target:n,event:`click`,handler:()=>Q(n),cleanup:b}),t({target:n,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&(n instanceof HTMLButtonElement||n instanceof HTMLAnchorElement||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),Q(n)))},cleanup:b})},he=()=>{let e=w(),t=e.querySelector(`[data-ui-modal-trigger]`);t&&!t.dataset.name&&(C().insertBefore(t,e),me(t))},ge=()=>{let e=w();t({target:e,event:`cancel`,handler:t=>{t.target===e&&fe(`escape`,t)},cleanup:v}),t({target:e,event:`close`,handler:()=>{Z.hasTag(`visible`)&&Z.send(`CLOSE`)},cleanup:v}),t({target:e,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&Z.hasTag(`interactive`)&&re(e,D())},cleanup:v}),t({target:e,event:`click`,handler:t=>{let n=t.target;if(!(n instanceof Element))return;let r=n.closest(`[data-ui-modal-close]`);r&&r.closest(`[data-ui-modal]`)===e&&(t.preventDefault(),Z.send(`CLOSE`))},cleanup:v}),t({target:document,event:`ui:modal-close`,handler:e=>{let t=e.detail;t?.name&&t.name===M().name&&Z.send(`CLOSE`)},cleanup:v}),v.add(ne({isEnabled:()=>Z.hasTag(`interactive`),roots:()=>[D(),s,j()],onDismiss:e=>fe(`outside`,e)}))},$,_e={get name(){return M().name},get isOpen(){return Z.matches(`open`)},get dialogId(){return o},openFrom:Q,close(e){e?.preventDefault(),Z.send(`CLOSE`)},syncExternalTrigger:P};return $={...Z,get name(){return this.snapshot.current?.props.name??``},get isOpen(){return this.snapshot.current?.value===`open`},get isVisible(){return this.snapshot.current?.tags.includes(`visible`)??!1},get dialogId(){return o},init(){v=m(this),a=this.$el,Z.connect(this.$el,this.snapshot);let e=M();k(),S=n(D(),{properties:[`height`,`maxWidth`]}),o=w().id||this.$id(`modal${e.name?`-${e.name}`:``}`),i(w(),`open`),L(),H.add(_e),g=!0,he(),ge(),R({syncOpen:!1}),e.open&&queueMicrotask(()=>Z.send(`OPEN`))},destroy(){S?.destroy(),S=null,b=null,g&&=(H.delete(_e),!1),Z.disconnect();let e=a?.querySelector(`[data-ui-modal]`);e?.open&&e.close(),p?.(),p=null,U.forEach(e=>e.sync()),a=null},get root(){return _({inputs:[h({part:V.parts.instance,props:{},className:``}),{"data-ui-modal-instance":``}]})},get dialog(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.root,props:t,className:t.class}),{id:o,role:`dialog`,"aria-modal":`true`,":data-state":()=>W(G(e.current?.value)),":data-mode":()=>e.current?.props.mode,":data-side":()=>e.current?.props.side,":data-size":()=>e.current?.props.size}]})},get viewport(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.viewport,props:t}),{":data-state":()=>W(G(e.current?.value)),":data-mode":()=>e.current?.props.mode,":data-side":()=>e.current?.props.side}]})},get overlay(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.overlay,props:t,className:t.overlayClass}),{":data-state":()=>W(G(e.current?.value))}]})},get panel(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.panel,props:t,className:t.panelClass}),{tabindex:-1,":data-state":()=>W(G(e.current?.value)),":data-mode":()=>e.current?.props.mode,":data-side":()=>e.current?.props.side,":data-size":()=>e.current?.props.size,":data-ui-surface":()=>e.current?.props.surface,":data-ui-elevation":()=>e.current?.props.elevation}]})},open(e){if(e?.preventDefault(),M().disabled)return;let t=j();t&&(s=y(t)),Z.send(`OPEN`)},close(e){e?.preventDefault(),Z.send(`CLOSE`)}},$},Y=()=>{let e=null,n=null,r,i=!1,a=()=>{if(!e)throw Error(`Modal trigger has not been initialized.`);return e},o=()=>{if(!n)throw Error(`Modal trigger has not been initialized.`);return n},s=()=>{let e=a().name;return e?K(e):null},l=()=>{let e=a(),t=o(),n=s();if(n){n.syncExternalTrigger(t,e.disabled);return}q(t,!1),e.disabled?(t.setAttribute(`aria-disabled`,`true`),t.setAttribute(`data-disabled`,``)):(t.removeAttribute(`aria-disabled`),t.removeAttribute(`data-disabled`))},u={get name(){return a().name},get target(){return o()},sync:l};return{init(){r=m(this),e=c({el:this.$el,schema:I,onChange:()=>{e?.name&&l()}}),n=y(this.$el),e.name&&(U.add(u),i=!0,l(),t({target:n,event:`click`,handler:e=>this.open(e),cleanup:r}),t({target:n,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&(n instanceof HTMLButtonElement||n instanceof HTMLAnchorElement||(e.key===`Enter`||e.key===` `)&&this.open(e))},cleanup:r}))},destroy(){e?.disconnect(),i&&U.delete(u),i=!1,e=null,n=null},get root(){let t=a();return _({inputs:[h({part:V.parts.trigger,props:{},className:t.class}),{"data-ui-modal-trigger":``,":data-name":()=>e?.name||void 0,":data-disabled":()=>e?.disabled?``:void 0}]})},open(e){e?.preventDefault(),!a().disabled&&s()?.openFrom(o())}}},ce=e=>{p(`UiModal`,()=>J(e))(e),p(`UiModalTrigger`,Y)(e)},X=new WeakSet,le=e=>{X.has(e)||(X.add(e),r(e),ce(e))};export{J as n,Y as r,le as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-
|
|
1
|
+
import{r as e,t}from"./dom-DiTFTWeR.js";import{r as n,t as r}from"./capability-motion-B32HePGn.js";import{n as i}from"./morph-Cq3V_23_.js";import{f as a,l as o,n as s,o as c,u as l}from"./codecs-CQ7olTJL.js";import{i as u,t as ee}from"./alpine-machine-CE2UN4Qu.js";import{r as d,t as f}from"./focus-pk_lz9sg.js";import{t as te}from"./cleanup-manager-D9QiZF_Q.js";import{n as p,t as m}from"./alpine-data-Dvc_bXq6.js";import{n as h,t as g}from"./styles-CX2j92ex.js";import{t as _}from"./merge-bindings-BtqW3UgP.js";import{t as v}from"./machine-CNnHDbyo.js";import{t as ne}from"./dismissable-layer-BROE-Ln2.js";import{i as re,t as y}from"./focus-scope-BrYxsrhc.js";import{t as ie}from"./scroll-lock-C5dQtr4Y.js";import{A as b,D as x,d as S,g as C,r as w,u as T,z as E}from"./common-CBK89mIt.js";import{t as D}from"./controlled-open-Hy4-OT-6.js";var ae=[`modal`,`sheet`],O=T,k=b,A=w,j=[`sm`,`md`,`lg`,`xl`,`full`],M=E,N=S,P=C,F={name:a,open:s,mode:o(ae,`modal`),side:o(O,`right`),inset:o(k,`0`),radius:o(A,`none`),size:o(j,`md`),surface:o(M,`1`),elevation:o(N,`5`),dismissible:s.default(!0),closable:s.default(!0),disabled:s,initialFocus:a,finalFocus:a,label:a,descriptionId:a,panelClass:a,overlayClass:a,class:a},I={name:a,disabled:s,class:a};a.default(`ui-modal-root`),o(P,`h2`),a.default(`Close`);var oe=[u({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),u({name:`closing`,state:`closing`,project:()=>({}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],L=D(),se=({props:e,effects:t})=>v({initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:[{target:`opening`,guard:L.shouldOpen,reduce:`replaceProps`,effects:[`syncProps`,`prepareOpen`]},{reduce:`replaceProps`,effects:`syncProps`}]}},opening:{tags:[`visible`,`interactive`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,effects:`prepareClose`},CANCEL:{target:`closing`,guard:`canDismiss`,effects:[`emitCancel`,`prepareClose`]},PROPS_CHANGED:[{target:`closing`,guard:L.shouldClose,reduce:`replaceProps`,effects:[`syncProps`,`prepareClose`]},{reduce:`replaceProps`,effects:`syncProps`}]}},open:{tags:[`visible`,`interactive`,`open`],on:{CLOSE:{target:`closing`,effects:`prepareClose`},CANCEL:{target:`closing`,guard:`canDismiss`,effects:[`emitCancel`,`prepareClose`]},PROPS_CHANGED:[{target:`closing`,guard:L.shouldClose,reduce:`replaceProps`,effects:[`syncProps`,`prepareClose`]},{reduce:`replaceProps`,effects:`syncProps`}]}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`closed`,effects:`finishClose`},CLOSING_ERROR:{target:`closed`,effects:`finishClose`},OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:[{target:`opening`,guard:L.shouldOpen,reduce:`replaceProps`,effects:[`syncProps`,`prepareOpen`]},{reduce:`replaceProps`,effects:`syncProps`}]}}}},{context:{},props:e,reducers:{replaceProps:L.replace},guards:{canOpen:({props:e})=>!e.disabled,canDismiss:({props:e})=>e.dismissible},effects:{prepareOpen:t.prepareOpen,finishOpen:t.finishOpen,prepareClose:t.prepareClose,finishClose:t.finishClose,syncProps:t.syncProps,emitCancel:({event:e})=>{(e.reason===`escape`||e.reason===`outside`)&&t.emitCancel(e.reason)}}}),R={sm:`max-w-modal-sm`,md:`max-w-modal-md`,lg:`max-w-modal-lg`,xl:`max-w-modal-xl`,full:`max-w-full`},z={none:``,xs:`rounded-overlay-xs`,sm:`rounded-overlay-sm`,md:`rounded-overlay-md`,lg:`rounded-overlay-lg`,full:`rounded-full`},B=[`grid-rows-[auto_auto_minmax(0,1fr)_auto]`,`[&>[data-ui-modal-body]]:-mx-1 [&>[data-ui-modal-body]]:min-h-0 [&>[data-ui-modal-body]]:content-start`,`[&>[data-ui-modal-body]]:overflow-x-hidden [&>[data-ui-modal-body]]:overflow-y-auto [&>[data-ui-modal-body]]:px-1`,`[&>[data-ui-modal-footer]]:self-end`],V=g({definition:{component:`ui.modal`,parts:{instance:{base:`contents`},root:{base:[`fixed inset-0 z-dialog m-0 h-auto max-h-none w-auto max-w-none overflow-visible border-0 bg-transparent p-0 text-surface-ink`,`backdrop:bg-transparent`]},viewport:{base:`fixed inset-0 z-dialog flex h-dvh`,variants:{mode:{modal:`items-center justify-center overflow-y-auto p-4`,sheet:``},side:{top:``,right:``,bottom:``,left:``}},compounds:[...b.map(e=>({when:{mode:`sheet`,inset:e},class:x[e]})),{when:{mode:`sheet`,side:`top`},class:`items-start justify-center`},{when:{mode:`sheet`,side:`right`},class:`items-center justify-end overflow-hidden`},{when:{mode:`sheet`,side:`bottom`},class:`items-end justify-center`},{when:{mode:`sheet`,side:`left`},class:`items-center justify-start overflow-hidden`}],defaults:{mode:`modal`,side:`right`,inset:`0`}},overlay:{base:`fixed inset-0 bg-scrim`},panel:{base:[`relative z-dialog grid w-full min-w-0 gap-4 overflow-auto p-5 outline-none`,`max-h-full`],variants:{mode:{modal:`rounded-overlay-md`,sheet:``},side:{top:``,right:``,bottom:``,left:``}},compounds:[...j.flatMap(e=>[{when:{mode:`modal`,size:e},class:R[e]},{when:{mode:`sheet`,side:`right`,size:e},class:R[e]},{when:{mode:`sheet`,side:`left`,size:e},class:R[e]}]),{when:{mode:`sheet`,side:`right`},class:[`h-full`,B]},{when:{mode:`sheet`,side:`left`},class:[`h-full`,B]},{when:{mode:`sheet`,side:`top`},class:`max-w-full`},{when:{mode:`sheet`,side:`bottom`},class:`max-w-full`},...w.map(e=>({when:{mode:`sheet`,radius:e},class:z[e]})),{when:{mode:`sheet`,inset:`0`,side:`right`},class:`rounded-r-none`},{when:{mode:`sheet`,inset:`0`,side:`left`},class:`rounded-l-none`},{when:{mode:`sheet`,inset:`0`,side:`top`},class:`rounded-t-none`},{when:{mode:`sheet`,inset:`0`,side:`bottom`},class:`rounded-b-none`}],defaults:{mode:`modal`,side:`right`,size:`md`,inset:`0`,radius:`none`}},trigger:{base:`contents`},outlet:{base:``},title:{base:`pr-8`},description:{base:`-mt-3 pr-8 text-surface-ink-muted`},body:{base:`grid min-w-0 gap-3 text-sm`},footer:{base:`flex min-w-0 items-center justify-end gap-2 pt-1`},close:{base:[`absolute right-3 top-3 inline-flex size-control-md items-center justify-center rounded-full border border-transparent text-surface-ink-muted outline-none`,`hover:bg-interaction-hover focus-visible:ui-focus-ring`]},closeIcon:{base:`size-icon fill-current`}}}}),H=new Set,U=new Set,W=e=>e?`open`:`closed`,G=e=>e===`opening`||e===`open`,K=e=>Array.from(H).find(t=>t.name===e)??null,q=(e,t)=>{e.setAttribute(`data-state`,W(t)),e.setAttribute(`aria-expanded`,t?`true`:`false`)},J=r=>{let a=null,o=``,s=null,c=null,u=!1,p=null,g=!1,v,b=null,x=null,S=null,C=()=>{if(!a)throw Error(`Modal has not been initialized.`);return a},w=()=>{let e=C().querySelector(`[data-ui-modal]`);if(!(e instanceof HTMLDialogElement))throw Error(`Modal requires a dialog element.`);return e},T=()=>{let e=C().querySelector(`[data-ui-modal-viewport]`);if(!e)throw Error(`Modal requires a viewport element.`);return e},E=()=>{let e=C().querySelector(`[data-ui-modal-overlay]`);if(!e)throw Error(`Modal requires an overlay element.`);return e},D=()=>{let e=C().querySelector(`[data-ui-modal-panel]`);if(!e)throw Error(`Modal requires a panel element.`);return e},ae=()=>C().querySelector(`[data-ui-modal-title]`),O=()=>C().querySelector(`[data-ui-modal-description]`),k=()=>{let e=M();w().className=h({part:V.parts.root,props:e,className:e.class}),T().className=h({part:V.parts.viewport,props:e}),E().className=h({part:V.parts.overlay,props:e,className:e.overlayClass}),D().className=h({part:V.parts.panel,props:e,className:e.panelClass})},A=()=>{let e=M(),t=x===e.mode&&e.open&&w().open&&Z.matches(`open`);S?.update(k,{animate:t,key:`${e.mode}:${e.side}:${e.size}:${e.inset}`}),x=e.mode},j=()=>Array.from(C().children).find(e=>e instanceof HTMLElement&&e.matches(`[data-ui-modal-trigger]`))??null,M=()=>Z.getCommittedSnapshot().props,N=()=>Z.matches(`opening`)||Z.matches(`open`),P=(e,t)=>{if(q(e,N()),e.setAttribute(`aria-controls`,o),e.setAttribute(`data-ui-modal-trigger-target`,o),t||M().disabled){e.setAttribute(`aria-disabled`,`true`),e.setAttribute(`data-disabled`,``),e instanceof HTMLButtonElement&&(e.disabled=!0),d(e)||(e.tabIndex=-1);return}e.removeAttribute(`aria-disabled`),e.removeAttribute(`data-disabled`),e instanceof HTMLButtonElement&&(e.disabled=!1),d(e)||(e.tabIndex=0)},I=()=>{let e=j();e&&P(y(e),M().disabled),U.forEach(e=>e.sync())},L=()=>{let e=M(),t=w(),n=D(),r=ae(),i=O();t.id=o,t.setAttribute(`role`,`dialog`),t.setAttribute(`aria-modal`,`true`),n.id||=`${o}-panel`,n.tabIndex=-1,r?(r.id||=`${o}-title`,t.setAttribute(`aria-labelledby`,r.id),t.removeAttribute(`aria-label`)):(t.removeAttribute(`aria-labelledby`),e.label?t.setAttribute(`aria-label`,e.label):t.removeAttribute(`aria-label`)),i&&(i.id||=`${o}-description`),e.descriptionId===`none`?t.removeAttribute(`aria-describedby`):e.descriptionId?t.setAttribute(`aria-describedby`,e.descriptionId):i?t.setAttribute(`aria-describedby`,i.id):t.removeAttribute(`aria-describedby`)},R=({syncOpen:e=!0}={})=>{let t=N(),n=W(t);e&&l({el:C(),schema:F,key:`open`,value:t}),[w(),T(),E(),D()].forEach(e=>{e.setAttribute(`data-state`,n)}),I()},z=e=>{if(e.trim())try{return r.evaluate(C(),e)}catch{return}},B=()=>{let e=z(M().initialFocus);if(e===!1){let e=w().ownerDocument.activeElement;e instanceof HTMLElement&&w().contains(e)&&e.blur();return}if(e instanceof HTMLElement&&f(e,{showIndicator:!1}))return;let t=D().querySelector(`[autofocus]`);f(t,{showIndicator:!1})||f(D(),{showIndicator:!1})},K=()=>{let e=z(M().finalFocus);if(e===!1)return!1;if(e instanceof HTMLElement&&f(e,{showIndicator:!1})||f(s??c,{showIndicator:!1}))return!0;let t=C().parentElement?.closest(`[data-ui-modal-panel]`)??null;return f(t,{showIndicator:!1})},J=()=>{let e=w().ownerDocument.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,f(e,{showIndicator:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)},Y=()=>{let e=D();e.style.removeProperty(`transform`),e.style.removeProperty(`translate`),e.style.removeProperty(`scale`),e.style.removeProperty(`rotate`)},ce=()=>{S?.refresh({animate:!1});let e=w(),t=e.ownerDocument.activeElement;c=t instanceof HTMLElement?t:null,typeof e.showModal==`function`&&!u?(e.open&&e.removeAttribute(`open`),Y(),e.showModal(),u=!0):e.open||e.setAttribute(`open`,``),p??=ie(e.ownerDocument),L(),R(),queueMicrotask(B)},X=()=>{S?.refresh({animate:!1}),Y(),x=M().mode,R(),e({el:w(),name:`ui:open`})},le=()=>{S?.refresh({animate:!1}),R()},ue=()=>{S?.refresh({animate:!1});let t=w(),n=t.ownerDocument.activeElement;n instanceof HTMLElement&&t.contains(n)&&n.blur(),t.open&&t.close(),u=!1,p?.(),p=null,R(),x=null;let r=K(),i=t.ownerDocument.activeElement;i instanceof HTMLElement&&(t.contains(i)||!r&&(i===s||i===c))&&J(),queueMicrotask(()=>{let e=t.ownerDocument.activeElement;e instanceof HTMLElement&&t.contains(e)&&J()}),s=null,c=null,e({el:t,name:`ui:close`})},de=()=>{A(),L(),I()},Z=ee({schema:F,hooks:oe,createMachine:({props:t})=>se({props:t,effects:{prepareOpen:ce,finishOpen:X,prepareClose:le,finishClose:ue,syncProps:de,emitCancel:t=>{e({el:w(),name:`ui:cancel`,detail:{reason:t}})}}})}),Q=e=>{M().disabled||(s=e,Z.send(`OPEN`))},fe=(e,t)=>{t?.preventDefault(),Z.send({type:`CANCEL`,reason:e})},pe=()=>{b?.run(),b=null},me=e=>{let n=y(e);pe(),b=new te,v.addChild(b),P(n,M().disabled),t({target:n,event:`click`,handler:()=>Q(n),cleanup:b}),t({target:n,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&(n instanceof HTMLButtonElement||n instanceof HTMLAnchorElement||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),Q(n)))},cleanup:b})},he=()=>{let e=w(),t=e.querySelector(`[data-ui-modal-trigger]`);t&&!t.dataset.name&&(C().insertBefore(t,e),me(t))},ge=()=>{let e=w();t({target:e,event:`cancel`,handler:t=>{t.target===e&&fe(`escape`,t)},cleanup:v}),t({target:e,event:`close`,handler:()=>{Z.hasTag(`visible`)&&Z.send(`CLOSE`)},cleanup:v}),t({target:e,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&Z.hasTag(`interactive`)&&re(e,D())},cleanup:v}),t({target:e,event:`click`,handler:t=>{let n=t.target;if(!(n instanceof Element))return;let r=n.closest(`[data-ui-modal-close]`);r&&r.closest(`[data-ui-modal]`)===e&&(t.preventDefault(),Z.send(`CLOSE`))},cleanup:v}),t({target:document,event:`ui:modal-close`,handler:e=>{let t=e.detail;t?.name&&t.name===M().name&&Z.send(`CLOSE`)},cleanup:v}),v.add(ne({isEnabled:()=>Z.hasTag(`interactive`),roots:()=>[D(),s,j()],onDismiss:e=>fe(`outside`,e)}))},$,_e={get name(){return M().name},get isOpen(){return Z.matches(`open`)},get dialogId(){return o},openFrom:Q,close(e){e?.preventDefault(),Z.send(`CLOSE`)},syncExternalTrigger:P};return $={...Z,get name(){return this.snapshot.current?.props.name??``},get isOpen(){return this.snapshot.current?.value===`open`},get isVisible(){return this.snapshot.current?.tags.includes(`visible`)??!1},get dialogId(){return o},init(){v=m(this),a=this.$el,Z.connect(this.$el,this.snapshot);let e=M();k(),S=n(D(),{properties:[`height`,`maxWidth`]}),o=w().id||this.$id(`modal${e.name?`-${e.name}`:``}`),i(w(),`open`),L(),H.add(_e),g=!0,he(),ge(),R({syncOpen:!1}),e.open&&queueMicrotask(()=>Z.send(`OPEN`))},destroy(){S?.destroy(),S=null,b=null,g&&=(H.delete(_e),!1),Z.disconnect();let e=a?.querySelector(`[data-ui-modal]`);e?.open&&e.close(),p?.(),p=null,U.forEach(e=>e.sync()),a=null},get root(){return _({inputs:[h({part:V.parts.instance,props:{},className:``}),{"data-ui-modal-instance":``}]})},get dialog(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.root,props:t,className:t.class}),{id:o,role:`dialog`,"aria-modal":`true`,":data-state":()=>W(G(e.current?.value)),":data-mode":()=>e.current?.props.mode,":data-side":()=>e.current?.props.side,":data-size":()=>e.current?.props.size}]})},get viewport(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.viewport,props:t}),{":data-state":()=>W(G(e.current?.value)),":data-mode":()=>e.current?.props.mode,":data-side":()=>e.current?.props.side}]})},get overlay(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.overlay,props:t,className:t.overlayClass}),{":data-state":()=>W(G(e.current?.value))}]})},get panel(){let e=this.snapshot,t=e.current?.props??M();return _({inputs:[h({part:V.parts.panel,props:t,className:t.panelClass}),{tabindex:-1,":data-state":()=>W(G(e.current?.value)),":data-mode":()=>e.current?.props.mode,":data-side":()=>e.current?.props.side,":data-size":()=>e.current?.props.size,":data-ui-surface":()=>e.current?.props.surface,":data-ui-elevation":()=>e.current?.props.elevation}]})},open(e){if(e?.preventDefault(),M().disabled)return;let t=j();t&&(s=y(t)),Z.send(`OPEN`)},close(e){e?.preventDefault(),Z.send(`CLOSE`)}},$},Y=()=>{let e=null,n=null,r,i=!1,a=()=>{if(!e)throw Error(`Modal trigger has not been initialized.`);return e},o=()=>{if(!n)throw Error(`Modal trigger has not been initialized.`);return n},s=()=>{let e=a().name;return e?K(e):null},l=()=>{let e=a(),t=o(),n=s();if(n){n.syncExternalTrigger(t,e.disabled);return}q(t,!1),e.disabled?(t.setAttribute(`aria-disabled`,`true`),t.setAttribute(`data-disabled`,``)):(t.removeAttribute(`aria-disabled`),t.removeAttribute(`data-disabled`))},u={get name(){return a().name},get target(){return o()},sync:l};return{init(){r=m(this),e=c({el:this.$el,schema:I,onChange:()=>{e?.name&&l()}}),n=y(this.$el),e.name&&(U.add(u),i=!0,l(),t({target:n,event:`click`,handler:e=>this.open(e),cleanup:r}),t({target:n,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&(n instanceof HTMLButtonElement||n instanceof HTMLAnchorElement||(e.key===`Enter`||e.key===` `)&&this.open(e))},cleanup:r}))},destroy(){e?.disconnect(),i&&U.delete(u),i=!1,e=null,n=null},get root(){let t=a();return _({inputs:[h({part:V.parts.trigger,props:{},className:t.class}),{"data-ui-modal-trigger":``,":data-name":()=>e?.name||void 0,":data-disabled":()=>e?.disabled?``:void 0}]})},open(e){e?.preventDefault(),!a().disabled&&s()?.openFrom(o())}}},ce=e=>{p(`UiModal`,()=>J(e))(e),p(`UiModalTrigger`,Y)(e)},X=new WeakSet,le=e=>{X.has(e)||(X.add(e),r(e),ce(e))};export{J as n,Y as r,le as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-Cbyseoex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.generated-Cbyseoex.js","names":[],"sources":["../../../../../../../../client/src/components/modal/contract.ts","../../../../../../../../client/src/components/modal/machine.ts","../../../../../../../../client/src/components/modal/styles.ts","../../../../../../../../client/src/components/modal/index.ts","../../../../../../../../client/src/components/modal/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type PropState, type SchemaToProps} from '../../runtime';\nimport {\n COMPONENT_RADII,\n LAYOUT_SPACES,\n EDGE_POSITIONS,\n ELEVATION_REFERENCES,\n HEADING_LEVELS,\n SURFACE_REFERENCES,\n type ComponentRadius,\n type LayoutSpace,\n type EdgePosition,\n type ElevationReference,\n type HeadingLevel,\n type SurfaceReference,\n} from '../common';\n\nconst MODAL_MODES = ['modal', 'sheet'] as const;\nconst MODAL_SIDES = EDGE_POSITIONS;\nconst MODAL_INSETS = LAYOUT_SPACES;\nconst MODAL_RADII = COMPONENT_RADII;\nconst MODAL_SIZES = ['sm', 'md', 'lg', 'xl', 'full'] as const;\nconst MODAL_SURFACES = SURFACE_REFERENCES;\nconst MODAL_ELEVATIONS = ELEVATION_REFERENCES;\nconst MODAL_TITLE_AS_VALUES = HEADING_LEVELS;\n\ntype ModalMode = typeof MODAL_MODES[number];\ntype ModalSide = EdgePosition;\ntype ModalInset = LayoutSpace;\ntype ModalRadius = ComponentRadius;\ntype ModalSize = typeof MODAL_SIZES[number];\ntype ModalSurface = SurfaceReference;\ntype ModalElevation = ElevationReference;\ntype ModalTitleAs = HeadingLevel;\n\nconst modalSchema = {\n name: string,\n open: bool,\n mode: oneOf(MODAL_MODES, 'modal'),\n side: oneOf(MODAL_SIDES, 'right'),\n inset: oneOf(MODAL_INSETS, '0'),\n radius: oneOf(MODAL_RADII, 'none'),\n size: oneOf(MODAL_SIZES, 'md'),\n surface: oneOf(MODAL_SURFACES, '1' as ModalSurface),\n elevation: oneOf(MODAL_ELEVATIONS, '5' as ModalElevation),\n dismissible: bool.default(true),\n closable: bool.default(true),\n disabled: bool,\n initialFocus: string,\n finalFocus: string,\n label: string,\n descriptionId: string,\n panelClass: string,\n overlayClass: string,\n class: string,\n};\n\nconst modalTriggerSchema = {\n name: string,\n disabled: bool,\n class: string,\n};\n\nconst modalOutletSchema = {\n id: string.default('ui-modal-root'),\n class: string,\n};\n\nconst modalTitleSchema = {\n as: oneOf(MODAL_TITLE_AS_VALUES, 'h2'),\n class: string,\n};\n\nconst modalDescriptionSchema = {\n class: string,\n};\n\nconst modalBodySchema = {\n class: string,\n};\n\nconst modalFooterSchema = {\n class: string,\n};\n\nconst modalCloseSchema = {\n label: string.default('Close'),\n class: string,\n};\n\ntype ModalProps = SchemaToProps<typeof modalSchema>;\ntype ModalTriggerProps = PropState<typeof modalTriggerSchema>;\n\nexport {\n MODAL_SIDES,\n MODAL_INSETS,\n MODAL_RADII,\n MODAL_SIZES,\n MODAL_ELEVATIONS,\n MODAL_SURFACES,\n MODAL_TITLE_AS_VALUES,\n MODAL_MODES,\n modalBodySchema,\n modalCloseSchema,\n modalDescriptionSchema,\n modalFooterSchema,\n modalOutletSchema,\n modalSchema,\n modalTitleSchema,\n modalTriggerSchema,\n};\nexport type {\n ModalSide,\n ModalInset,\n ModalRadius,\n ModalProps,\n ModalSize,\n ModalSurface,\n ModalElevation,\n ModalTitleAs,\n ModalTriggerProps,\n ModalMode,\n};\n","import {\n createMachine,\n type Machine,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport {defineControlledOpenProps} from '../shared/controlled-open';\nimport type {ModalProps} from './contract';\n\ntype ModalContext = Record<string, never>;\n\ntype ModalMachineEffects = {\n prepareOpen(): void;\n finishOpen(): void;\n prepareClose(): void;\n finishClose(): void;\n syncProps(): void;\n emitCancel(reason: 'escape' | 'outside'): void;\n};\n\ntype CreateModalMachineOptions = {\n props: ModalProps;\n effects: ModalMachineEffects;\n};\n\nconst openingHook = defineHook({\n name: 'opening',\n state: 'opening',\n project: () => ({}),\n onDone: 'OPENING_DONE',\n onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<ModalContext, ModalProps, Record<string, never>, 'opening'>);\n\nconst closingHook = defineHook({\n name: 'closing',\n state: 'closing',\n project: () => ({}),\n onDone: 'CLOSING_DONE',\n onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<ModalContext, ModalProps, Record<string, never>, 'closing'>);\n\nconst modalHooks = [openingHook, closingHook] as const;\nconst controlledOpenProps = defineControlledOpenProps<ModalContext, ModalProps>();\n\nconst createModalMachine = ({\n props,\n effects,\n}: CreateModalMachineOptions): Machine<ModalContext, ModalProps> => createMachine<ModalContext, ModalProps>({\n initial: 'closed',\n states: {\n closed: {\n tags: ['closed'],\n on: {\n OPEN: {target: 'opening', guard: 'canOpen', effects: 'prepareOpen'},\n PROPS_CHANGED: [\n {\n target: 'opening',\n guard: controlledOpenProps.shouldOpen,\n reduce: 'replaceProps',\n effects: ['syncProps', 'prepareOpen'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n opening: {\n tags: ['visible', 'interactive', 'transitioning'],\n on: {\n OPENING_DONE: {target: 'open', effects: 'finishOpen'},\n OPENING_ERROR: {target: 'open', effects: 'finishOpen'},\n CLOSE: {target: 'closing', effects: 'prepareClose'},\n CANCEL: {target: 'closing', guard: 'canDismiss', effects: ['emitCancel', 'prepareClose']},\n PROPS_CHANGED: [\n {\n target: 'closing',\n guard: controlledOpenProps.shouldClose,\n reduce: 'replaceProps',\n effects: ['syncProps', 'prepareClose'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n open: {\n tags: ['visible', 'interactive', 'open'],\n on: {\n CLOSE: {target: 'closing', effects: 'prepareClose'},\n CANCEL: {target: 'closing', guard: 'canDismiss', effects: ['emitCancel', 'prepareClose']},\n PROPS_CHANGED: [\n {\n target: 'closing',\n guard: controlledOpenProps.shouldClose,\n reduce: 'replaceProps',\n effects: ['syncProps', 'prepareClose'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n CLOSING_DONE: {target: 'closed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'closed', effects: 'finishClose'},\n OPEN: {target: 'opening', guard: 'canOpen', effects: 'prepareOpen'},\n PROPS_CHANGED: [\n {\n target: 'opening',\n guard: controlledOpenProps.shouldOpen,\n reduce: 'replaceProps',\n effects: ['syncProps', 'prepareOpen'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n },\n}, {\n context: {},\n props,\n reducers: {\n replaceProps: controlledOpenProps.replace,\n },\n guards: {\n canOpen: ({props: currentProps}) => !currentProps.disabled,\n canDismiss: ({props: currentProps}) => currentProps.dismissible,\n },\n effects: {\n prepareOpen: effects.prepareOpen,\n finishOpen: effects.finishOpen,\n prepareClose: effects.prepareClose,\n finishClose: effects.finishClose,\n syncProps: effects.syncProps,\n emitCancel: ({event}) => {\n if (event.reason === 'escape' || event.reason === 'outside') effects.emitCancel(event.reason);\n },\n },\n});\n\nexport {createModalMachine, modalHooks};\nexport type {CreateModalMachineOptions, ModalContext, ModalMachineEffects};\n","import {defineStyles} from '../../runtime';\nimport {COMPONENT_RADII, LAYOUT_SPACES, LAYOUT_PADDING_CLASSES, type ComponentRadius} from '../common';\nimport {MODAL_SIZES, type ModalSize} from './contract';\n\nconst PANEL_WIDTH_CLASSES = {\n sm: 'max-w-modal-sm',\n md: 'max-w-modal-md',\n lg: 'max-w-modal-lg',\n xl: 'max-w-modal-xl',\n full: 'max-w-full',\n} as const satisfies Record<ModalSize, string>;\n\nconst SHEET_RADIUS_CLASSES = {\n none: '',\n xs: 'rounded-overlay-xs',\n sm: 'rounded-overlay-sm',\n md: 'rounded-overlay-md',\n lg: 'rounded-overlay-lg',\n full: 'rounded-full',\n} as const satisfies Record<ComponentRadius, string>;\n\nconst EDGE_PANEL_LAYOUT_CLASSES = [\n 'grid-rows-[auto_auto_minmax(0,1fr)_auto]',\n '[&>[data-ui-modal-body]]:-mx-1 [&>[data-ui-modal-body]]:min-h-0 [&>[data-ui-modal-body]]:content-start',\n '[&>[data-ui-modal-body]]:overflow-x-hidden [&>[data-ui-modal-body]]:overflow-y-auto [&>[data-ui-modal-body]]:px-1',\n '[&>[data-ui-modal-footer]]:self-end',\n] as const;\n\nconst modalStyles = defineStyles({definition: {\n component: 'ui.modal',\n parts: {\n instance: {\n base: 'contents',\n },\n root: {\n base: [\n 'fixed inset-0 z-dialog m-0 h-auto max-h-none w-auto max-w-none overflow-visible border-0 bg-transparent p-0 text-surface-ink',\n 'backdrop:bg-transparent',\n ],\n },\n viewport: {\n base: 'fixed inset-0 z-dialog flex h-dvh',\n variants: {\n mode: {\n modal: 'items-center justify-center overflow-y-auto p-4',\n sheet: '',\n },\n side: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n },\n compounds: [\n ...LAYOUT_SPACES.map((inset) => ({\n when: {mode: 'sheet', inset},\n class: LAYOUT_PADDING_CLASSES[inset],\n })),\n {when: {mode: 'sheet', side: 'top'}, class: 'items-start justify-center'},\n {when: {mode: 'sheet', side: 'right'}, class: 'items-center justify-end overflow-hidden'},\n {when: {mode: 'sheet', side: 'bottom'}, class: 'items-end justify-center'},\n {when: {mode: 'sheet', side: 'left'}, class: 'items-center justify-start overflow-hidden'},\n ],\n defaults: {\n mode: 'modal',\n side: 'right',\n inset: '0',\n },\n },\n overlay: {\n base: 'fixed inset-0 bg-scrim',\n },\n panel: {\n base: [\n 'relative z-dialog grid w-full min-w-0 gap-4 overflow-auto p-5 outline-none',\n 'max-h-full',\n ],\n variants: {\n mode: {\n modal: 'rounded-overlay-md',\n sheet: '',\n },\n side: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n },\n compounds: [\n ...MODAL_SIZES.flatMap((size) => [\n {when: {mode: 'modal', size}, class: PANEL_WIDTH_CLASSES[size]},\n {when: {mode: 'sheet', side: 'right', size}, class: PANEL_WIDTH_CLASSES[size]},\n {when: {mode: 'sheet', side: 'left', size}, class: PANEL_WIDTH_CLASSES[size]},\n ]),\n {when: {mode: 'sheet', side: 'right'}, class: ['h-full', EDGE_PANEL_LAYOUT_CLASSES]},\n {when: {mode: 'sheet', side: 'left'}, class: ['h-full', EDGE_PANEL_LAYOUT_CLASSES]},\n {when: {mode: 'sheet', side: 'top'}, class: 'max-w-full'},\n {when: {mode: 'sheet', side: 'bottom'}, class: 'max-w-full'},\n ...COMPONENT_RADII.map((radius) => ({\n when: {mode: 'sheet', radius},\n class: SHEET_RADIUS_CLASSES[radius],\n })),\n {when: {mode: 'sheet', inset: '0', side: 'right'}, class: 'rounded-r-none'},\n {when: {mode: 'sheet', inset: '0', side: 'left'}, class: 'rounded-l-none'},\n {when: {mode: 'sheet', inset: '0', side: 'top'}, class: 'rounded-t-none'},\n {when: {mode: 'sheet', inset: '0', side: 'bottom'}, class: 'rounded-b-none'},\n ],\n defaults: {\n mode: 'modal',\n side: 'right',\n size: 'md',\n inset: '0',\n radius: 'none',\n },\n },\n trigger: {\n base: 'contents',\n },\n outlet: {\n base: '',\n },\n title: {\n base: 'pr-8',\n },\n description: {\n base: '-mt-3 pr-8 text-surface-ink-muted',\n },\n body: {\n base: 'grid min-w-0 gap-3 text-sm',\n },\n footer: {\n base: 'flex min-w-0 items-center justify-end gap-2 pt-1',\n },\n close: {\n base: [\n 'absolute right-3 top-3 inline-flex size-control-md items-center justify-center rounded-full border border-transparent text-surface-ink-muted outline-none',\n 'hover:bg-interaction-hover focus-visible:ui-focus-ring',\n ],\n },\n closeIcon: {\n base: 'size-icon fill-current',\n },\n },\n}});\n\nexport {modalStyles};\n\nexport const styles = [modalStyles] as const;\n","import type Alpine from 'alpinejs';\nimport {isTabbable} from 'tabbable';\n\nimport {createBoundsMotion, type BoundsMotion} from '@client/motion';\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n reflectSchemaProp,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport {defineProps} from '@client/runtime/codecs';\nimport {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {addDismissableLayer} from '@client/runtime/dismissable-layer';\nimport {closestTabbable, trapFocus as trapFocusWithin} from '@client/runtime/focus-scope';\nimport {focusElement} from '@client/runtime/focus';\nimport {mergeBindings, type BindingObject} from '@client/runtime/merge-bindings';\nimport {declareMorphAttributes} from '@client/runtime/morph';\nimport {acquireDocumentScrollLock} from '@client/runtime/scroll-lock';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, dispatch} from '@client/utils';\nimport {\n modalSchema,\n modalTriggerSchema,\n type ModalProps,\n type ModalTriggerProps,\n} from './contract';\nimport {createModalMachine, modalHooks, type ModalContext} from './machine';\nimport {modalStyles} from './styles';\n\ntype ModalTransitionName = (typeof modalHooks)[number]['name'];\ntype ModalTransition<TName extends ModalTransitionName = ModalTransitionName> = TransitionForHook<\n Extract<(typeof modalHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype CancelReason = 'escape' | 'outside';\n\ntype ModalCancelDetail = {\n reason: CancelReason;\n};\n\ntype ModalCloseEventDetail = {\n name?: string;\n};\n\ntype ModalController = {\n readonly name: string;\n readonly isOpen: boolean;\n readonly dialogId: string;\n openFrom(trigger: HTMLElement): void;\n close(event?: Event): void;\n syncExternalTrigger(trigger: HTMLElement, disabled: boolean): void;\n};\n\ntype ModalTriggerController = {\n readonly name: string;\n readonly target: HTMLElement;\n sync(): void;\n};\n\n/**\n * Public Alpine API for `ui.modal`.\n *\n * @public\n */\ninterface UiModalApi {\n /** Whether the modal has completed its opening transition. */\n readonly isOpen: boolean;\n\n /** Whether the modal is opening, open, or closing. */\n readonly isVisible: boolean;\n\n /** Opens the modal unless it is disabled. */\n open(event?: Event): void;\n\n /** Closes the modal. */\n close(event?: Event): void;\n}\n\n/**\n * Public Alpine API for `ui.modal.trigger`.\n *\n * @public\n */\ninterface UiModalTriggerApi {\n /** Opens the named modal unless the trigger or modal is disabled. */\n open(event?: Event): void;\n}\n\ntype ModalData = AlpineMachine<ModalContext, ModalProps, typeof modalHooks> & UiModalApi & {\n readonly name: string;\n readonly dialogId: string;\n readonly root: BindingObject;\n readonly dialog: BindingObject;\n readonly viewport: BindingObject;\n readonly overlay: BindingObject;\n readonly panel: BindingObject;\n init(): void;\n destroy(): void;\n};\n\ntype ModalTriggerData = UiModalTriggerApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n};\n\nconst modalControllers = new Set<ModalController>();\nconst modalTriggerControllers = new Set<ModalTriggerController>();\n\nconst stateFor = (open: boolean): 'open' | 'closed' => (open ? 'open' : 'closed');\nconst isExpandedState = (state: unknown): boolean => state === 'opening' || state === 'open';\n\nconst findNamedModal = (name: string): ModalController | null => (\n Array.from(modalControllers).find((controller) => controller.name === name) ?? null\n);\n\nconst setOpenAttributes = (el: HTMLElement, open: boolean): void => {\n el.setAttribute('data-state', stateFor(open));\n el.setAttribute('aria-expanded', open ? 'true' : 'false');\n};\n\nconst UiModal = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<ModalData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let dialogId = '';\n let activeTrigger: HTMLElement | null = null;\n let previouslyFocused: HTMLElement | null = null;\n let didShowModal = false;\n let releaseScrollLock: (() => void) | null = null;\n let isRegistered = false;\n let cleanup: CleanupManager;\n let localTriggerCleanup: CleanupManager | null = null;\n let settledMode: ModalProps['mode'] | null = null;\n let boundsMotion: BoundsMotion | null = null;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Modal has not been initialized.');\n return rootEl;\n };\n\n const dialogEl = (): HTMLDialogElement => {\n const dialog = root().querySelector<HTMLDialogElement>('[data-ui-modal]');\n if (!(dialog instanceof HTMLDialogElement)) throw new Error('Modal requires a dialog element.');\n return dialog;\n };\n\n const viewportEl = (): HTMLElement => {\n const viewport = root().querySelector<HTMLElement>('[data-ui-modal-viewport]');\n if (!viewport) throw new Error('Modal requires a viewport element.');\n return viewport;\n };\n\n const overlayEl = (): HTMLElement => {\n const overlay = root().querySelector<HTMLElement>('[data-ui-modal-overlay]');\n if (!overlay) throw new Error('Modal requires an overlay element.');\n return overlay;\n };\n\n const panelEl = (): HTMLElement => {\n const panel = root().querySelector<HTMLElement>('[data-ui-modal-panel]');\n if (!panel) throw new Error('Modal requires a panel element.');\n return panel;\n };\n\n const titleEl = (): HTMLElement | null => root().querySelector<HTMLElement>('[data-ui-modal-title]');\n const descriptionEl = (): HTMLElement | null => root().querySelector<HTMLElement>('[data-ui-modal-description]');\n\n const syncPresentation = (): void => {\n const props = currentProps();\n dialogEl().className = resolveStyle({part: modalStyles.parts.root, props, className: props.class});\n viewportEl().className = resolveStyle({part: modalStyles.parts.viewport, props});\n overlayEl().className = resolveStyle({\n part: modalStyles.parts.overlay,\n props,\n className: props.overlayClass,\n });\n panelEl().className = resolveStyle({\n part: modalStyles.parts.panel,\n props,\n className: props.panelClass,\n });\n };\n\n const syncPresentationWithBoundsMotion = (): void => {\n const props = currentProps();\n const shouldAnimate = (\n settledMode === props.mode\n && props.open\n && dialogEl().open\n && bridge.matches('open')\n );\n boundsMotion?.update(syncPresentation, {\n animate: shouldAnimate,\n key: `${props.mode}:${props.side}:${props.size}:${props.inset}`,\n });\n settledMode = props.mode;\n };\n\n const localTriggerEl = (): HTMLElement | null => (\n Array.from(root().children)\n .find((child) => child instanceof HTMLElement && child.matches('[data-ui-modal-trigger]')) as HTMLElement | undefined\n ?? null\n );\n\n const currentProps = (): Readonly<ModalProps> => bridge.getCommittedSnapshot().props;\n const isExpanded = (): boolean => bridge.matches('opening') || bridge.matches('open');\n\n const syncExternalTrigger = (trigger: HTMLElement, disabled: boolean): void => {\n const expanded = isExpanded();\n setOpenAttributes(trigger, expanded);\n trigger.setAttribute('aria-controls', dialogId);\n trigger.setAttribute('data-ui-modal-trigger-target', dialogId);\n\n if (disabled || currentProps().disabled) {\n trigger.setAttribute('aria-disabled', 'true');\n trigger.setAttribute('data-disabled', '');\n if (trigger instanceof HTMLButtonElement) trigger.disabled = true;\n if (!isTabbable(trigger)) trigger.tabIndex = -1;\n return;\n }\n\n trigger.removeAttribute('aria-disabled');\n trigger.removeAttribute('data-disabled');\n if (trigger instanceof HTMLButtonElement) trigger.disabled = false;\n if (!isTabbable(trigger)) trigger.tabIndex = 0;\n };\n\n const syncTriggers = (): void => {\n const local = localTriggerEl();\n if (local) syncExternalTrigger(closestTabbable(local), currentProps().disabled);\n modalTriggerControllers.forEach((trigger) => trigger.sync());\n };\n\n const syncAccessibility = (): void => {\n const props = currentProps();\n const dialog = dialogEl();\n const panel = panelEl();\n const title = titleEl();\n const description = descriptionEl();\n\n dialog.id = dialogId;\n dialog.setAttribute('role', 'dialog');\n dialog.setAttribute('aria-modal', 'true');\n panel.id ||= `${dialogId}-panel`;\n panel.tabIndex = -1;\n\n if (title) {\n title.id ||= `${dialogId}-title`;\n dialog.setAttribute('aria-labelledby', title.id);\n dialog.removeAttribute('aria-label');\n } else {\n dialog.removeAttribute('aria-labelledby');\n if (props.label) dialog.setAttribute('aria-label', props.label);\n else dialog.removeAttribute('aria-label');\n }\n\n if (description) description.id ||= `${dialogId}-description`;\n if (props.descriptionId === 'none') dialog.removeAttribute('aria-describedby');\n else if (props.descriptionId) dialog.setAttribute('aria-describedby', props.descriptionId);\n else if (description) dialog.setAttribute('aria-describedby', description.id);\n else dialog.removeAttribute('aria-describedby');\n };\n\n const syncStateAttributes = ({syncOpen = true}: {syncOpen?: boolean} = {}): void => {\n const expanded = isExpanded();\n const state = stateFor(expanded);\n if (syncOpen) {\n reflectSchemaProp({el: root(), schema: modalSchema, key: 'open', value: expanded});\n }\n [dialogEl(), viewportEl(), overlayEl(), panelEl()].forEach((element) => {\n element.setAttribute('data-state', state);\n });\n syncTriggers();\n };\n\n const evaluateFocusExpression = (expression: string): unknown => {\n if (!expression.trim()) return undefined;\n try {\n return AlpineInstance.evaluate(root(), expression);\n } catch {\n return undefined;\n }\n };\n\n const focusInitial = (): void => {\n const configured = evaluateFocusExpression(currentProps().initialFocus);\n if (configured === false) {\n const active = dialogEl().ownerDocument.activeElement;\n if (active instanceof HTMLElement && dialogEl().contains(active)) active.blur();\n return;\n }\n if (configured instanceof HTMLElement && focusElement(configured, {showIndicator: false})) return;\n const autofocus = panelEl().querySelector<HTMLElement>('[autofocus]');\n if (focusElement(autofocus, {showIndicator: false})) return;\n focusElement(panelEl(), {showIndicator: false});\n };\n\n const restoreFocus = (): boolean => {\n const configured = evaluateFocusExpression(currentProps().finalFocus);\n if (configured === false) return false;\n if (configured instanceof HTMLElement && focusElement(configured, {showIndicator: false})) return true;\n const target = activeTrigger ?? previouslyFocused;\n if (focusElement(target, {showIndicator: false})) return true;\n const ownerFallback = root().parentElement?.closest<HTMLElement>('[data-ui-modal-panel]') ?? null;\n return focusElement(ownerFallback, {showIndicator: false});\n };\n\n const clearFocus = (): void => {\n const body = dialogEl().ownerDocument.body;\n const tabindex = body.getAttribute('tabindex');\n body.tabIndex = -1;\n focusElement(body, {showIndicator: false});\n if (tabindex === null) body.removeAttribute('tabindex');\n else body.setAttribute('tabindex', tabindex);\n };\n\n const clearPanelTransform = (): void => {\n const panel = panelEl();\n panel.style.removeProperty('transform');\n panel.style.removeProperty('translate');\n panel.style.removeProperty('scale');\n panel.style.removeProperty('rotate');\n };\n\n const prepareOpen = (): void => {\n boundsMotion?.refresh({animate: false});\n const dialog = dialogEl();\n const active = dialog.ownerDocument.activeElement;\n previouslyFocused = active instanceof HTMLElement ? active : null;\n if (typeof dialog.showModal === 'function' && !didShowModal) {\n if (dialog.open) dialog.removeAttribute('open');\n // Native autofocus must see resting geometry rather than the previous\n // exit transform, which would scroll the sheet viewport off its edge.\n clearPanelTransform();\n dialog.showModal();\n didShowModal = true;\n } else if (!dialog.open) {\n dialog.setAttribute('open', '');\n }\n\n releaseScrollLock ??= acquireDocumentScrollLock(dialog.ownerDocument);\n syncAccessibility();\n syncStateAttributes();\n queueMicrotask(focusInitial);\n };\n\n const finishOpen = (): void => {\n boundsMotion?.refresh({animate: false});\n clearPanelTransform();\n settledMode = currentProps().mode;\n syncStateAttributes();\n dispatch({el: dialogEl(), name: 'ui:open'});\n };\n\n const prepareClose = (): void => {\n boundsMotion?.refresh({animate: false});\n syncStateAttributes();\n };\n\n const finishClose = (): void => {\n boundsMotion?.refresh({animate: false});\n const dialog = dialogEl();\n const focusedBeforeClose = dialog.ownerDocument.activeElement;\n if (focusedBeforeClose instanceof HTMLElement && dialog.contains(focusedBeforeClose)) {\n focusedBeforeClose.blur();\n }\n if (dialog.open) dialog.close();\n didShowModal = false;\n releaseScrollLock?.();\n releaseScrollLock = null;\n syncStateAttributes();\n settledMode = null;\n const restored = restoreFocus();\n const active = dialog.ownerDocument.activeElement;\n if (\n active instanceof HTMLElement\n && (\n dialog.contains(active)\n || (!restored && (active === activeTrigger || active === previouslyFocused))\n )\n ) clearFocus();\n queueMicrotask(() => {\n const retained = dialog.ownerDocument.activeElement;\n if (retained instanceof HTMLElement && dialog.contains(retained)) clearFocus();\n });\n activeTrigger = null;\n previouslyFocused = null;\n dispatch({el: dialog, name: 'ui:close'});\n };\n\n const syncProps = (): void => {\n syncPresentationWithBoundsMotion();\n syncAccessibility();\n syncTriggers();\n };\n\n const bridge = createAlpineMachine({\n schema: modalSchema,\n hooks: modalHooks,\n createMachine: ({props}) => createModalMachine({\n props,\n effects: {\n prepareOpen,\n finishOpen,\n prepareClose,\n finishClose,\n syncProps,\n emitCancel: (reason) => {\n dispatch<ModalCancelDetail>({el: dialogEl(), name: 'ui:cancel', detail: {reason}});\n },\n },\n }),\n });\n\n const openFrom = (trigger: HTMLElement): void => {\n if (currentProps().disabled) return;\n activeTrigger = trigger;\n bridge.send('OPEN');\n };\n\n const cancel = (reason: CancelReason, event?: Event): void => {\n event?.preventDefault();\n bridge.send({type: 'CANCEL', reason});\n };\n\n const teardownLocalTrigger = (): void => {\n localTriggerCleanup?.run();\n localTriggerCleanup = null;\n };\n\n const setupLocalTrigger = (trigger: HTMLElement): void => {\n const target = closestTabbable(trigger);\n teardownLocalTrigger();\n localTriggerCleanup = new CleanupManager();\n cleanup.addChild(localTriggerCleanup);\n syncExternalTrigger(target, currentProps().disabled);\n addListener({target, event: 'click', handler: () => openFrom(target), cleanup: localTriggerCleanup});\n addListener({target, event: 'keydown', handler: (event) => {\n if (!(event instanceof KeyboardEvent)) return;\n if (target instanceof HTMLButtonElement || target instanceof HTMLAnchorElement) return;\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n openFrom(target);\n }, cleanup: localTriggerCleanup});\n };\n\n const mountLocalTrigger = (): void => {\n const dialog = dialogEl();\n const inlineTrigger = dialog.querySelector<HTMLElement>('[data-ui-modal-trigger]');\n if (!inlineTrigger || inlineTrigger.dataset.name) return;\n root().insertBefore(inlineTrigger, dialog);\n setupLocalTrigger(inlineTrigger);\n };\n\n const setupEvents = (): void => {\n const dialog = dialogEl();\n addListener({target: dialog, event: 'cancel', handler: (event) => {\n if (event.target !== dialog) return;\n cancel('escape', event);\n }, cleanup});\n addListener({target: dialog, event: 'close', handler: () => {\n if (bridge.hasTag('visible')) bridge.send('CLOSE');\n }, cleanup});\n addListener({target: dialog, event: 'keydown', handler: (event) => {\n if (\n event instanceof KeyboardEvent\n && bridge.hasTag('interactive')\n ) trapFocusWithin(event, panelEl());\n }, cleanup});\n addListener({target: dialog, event: 'click', handler: (event) => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n const close = target.closest('[data-ui-modal-close]');\n if (!close || close.closest('[data-ui-modal]') !== dialog) return;\n event.preventDefault();\n bridge.send('CLOSE');\n }, cleanup});\n addListener({target: document, event: 'ui:modal-close', handler: (event) => {\n const detail = (event as CustomEvent<ModalCloseEventDetail>).detail;\n if (!detail?.name || detail.name !== currentProps().name) return;\n bridge.send('CLOSE');\n }, cleanup});\n cleanup.add(addDismissableLayer({\n isEnabled: () => bridge.hasTag('interactive'),\n roots: () => [panelEl(), activeTrigger, localTriggerEl()],\n onDismiss: (event) => cancel('outside', event),\n }));\n };\n\n let component!: TrellisAlpineComponent<ModalData>;\n const controller: ModalController = {\n get name() {\n return currentProps().name;\n },\n get isOpen() {\n return bridge.matches('open');\n },\n get dialogId() {\n return dialogId;\n },\n openFrom,\n close(event?: Event) {\n event?.preventDefault();\n bridge.send('CLOSE');\n },\n syncExternalTrigger,\n };\n\n component = {\n ...bridge,\n get name(): string {\n return this.snapshot.current?.props.name ?? '';\n },\n get isOpen(): boolean {\n return this.snapshot.current?.value === 'open';\n },\n get isVisible(): boolean {\n return this.snapshot.current?.tags.includes('visible') ?? false;\n },\n get dialogId(): string {\n return dialogId;\n },\n init(): void {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n const props = currentProps();\n syncPresentation();\n boundsMotion = createBoundsMotion(panelEl(), {properties: ['height', 'maxWidth']});\n dialogId = dialogEl().id || this.$id(`modal${props.name ? `-${props.name}` : ''}`);\n declareMorphAttributes(dialogEl(), 'open');\n syncAccessibility();\n modalControllers.add(controller);\n isRegistered = true;\n mountLocalTrigger();\n setupEvents();\n syncStateAttributes({syncOpen: false});\n if (props.open) queueMicrotask(() => bridge.send('OPEN'));\n },\n destroy(): void {\n boundsMotion?.destroy();\n boundsMotion = null;\n localTriggerCleanup = null;\n if (isRegistered) {\n modalControllers.delete(controller);\n isRegistered = false;\n }\n bridge.disconnect();\n const dialog = rootEl?.querySelector<HTMLDialogElement>('[data-ui-modal]');\n if (dialog?.open) dialog.close();\n releaseScrollLock?.();\n releaseScrollLock = null;\n modalTriggerControllers.forEach((trigger) => trigger.sync());\n rootEl = null;\n },\n get root(): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({part: modalStyles.parts.instance, props: {}, className: ''}),\n {'data-ui-modal-instance': ''},\n ]});\n },\n get dialog(): BindingObject {\n const snapshot = this.snapshot;\n const props = snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: modalStyles.parts.root, props, className: props.class}),\n {\n id: dialogId,\n role: 'dialog',\n 'aria-modal': 'true',\n ':data-state': () => stateFor(isExpandedState(snapshot.current?.value)),\n ':data-mode': () => snapshot.current?.props.mode,\n ':data-side': () => snapshot.current?.props.side,\n ':data-size': () => snapshot.current?.props.size,\n },\n ]});\n },\n get viewport(): BindingObject {\n const snapshot = this.snapshot;\n const props = snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: modalStyles.parts.viewport, props}),\n {\n ':data-state': () => stateFor(isExpandedState(snapshot.current?.value)),\n ':data-mode': () => snapshot.current?.props.mode,\n ':data-side': () => snapshot.current?.props.side,\n },\n ]});\n },\n get overlay(): BindingObject {\n const snapshot = this.snapshot;\n const props = snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: modalStyles.parts.overlay, props, className: props.overlayClass}),\n {':data-state': () => stateFor(isExpandedState(snapshot.current?.value))},\n ]});\n },\n get panel(): BindingObject {\n const snapshot = this.snapshot;\n const props = snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: modalStyles.parts.panel, props, className: props.panelClass}),\n {\n tabindex: -1,\n ':data-state': () => stateFor(isExpandedState(snapshot.current?.value)),\n ':data-mode': () => snapshot.current?.props.mode,\n ':data-side': () => snapshot.current?.props.side,\n ':data-size': () => snapshot.current?.props.size,\n ':data-ui-surface': () => snapshot.current?.props.surface,\n ':data-ui-elevation': () => snapshot.current?.props.elevation,\n },\n ]});\n },\n open(event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled) return;\n const local = localTriggerEl();\n if (local) activeTrigger = closestTabbable(local);\n bridge.send('OPEN');\n },\n close(event?: Event): void {\n event?.preventDefault();\n bridge.send('CLOSE');\n },\n };\n\n return component;\n};\n\nconst UiModalTrigger = (): TrellisAlpineComponent<ModalTriggerData> => {\n let props: ModalTriggerProps | null = null;\n let target: HTMLElement | null = null;\n let cleanup: CleanupManager;\n let isRegistered = false;\n\n const currentProps = (): ModalTriggerProps => {\n if (!props) throw new Error('Modal trigger has not been initialized.');\n return props;\n };\n\n const targetEl = (): HTMLElement => {\n if (!target) throw new Error('Modal trigger has not been initialized.');\n return target;\n };\n\n const modal = (): ModalController | null => {\n const name = currentProps().name;\n return name ? findNamedModal(name) : null;\n };\n\n const sync = (): void => {\n const triggerProps = currentProps();\n const trigger = targetEl();\n const modalController = modal();\n if (modalController) {\n modalController.syncExternalTrigger(trigger, triggerProps.disabled);\n return;\n }\n\n setOpenAttributes(trigger, false);\n if (triggerProps.disabled) {\n trigger.setAttribute('aria-disabled', 'true');\n trigger.setAttribute('data-disabled', '');\n } else {\n trigger.removeAttribute('aria-disabled');\n trigger.removeAttribute('data-disabled');\n }\n };\n\n const controller: ModalTriggerController = {\n get name() {\n return currentProps().name;\n },\n get target() {\n return targetEl();\n },\n sync,\n };\n\n return {\n init(): void {\n cleanup = cleanupManagerFor(this);\n props = defineProps({\n el: this.$el,\n schema: modalTriggerSchema,\n onChange: () => {\n if (props?.name) sync();\n },\n });\n target = closestTabbable(this.$el);\n if (!props.name) return;\n modalTriggerControllers.add(controller);\n isRegistered = true;\n sync();\n\n addListener({target, event: 'click', handler: (event) => this.open(event), cleanup});\n addListener({target, event: 'keydown', handler: (event) => {\n if (!(event instanceof KeyboardEvent)) return;\n if (target instanceof HTMLButtonElement || target instanceof HTMLAnchorElement) return;\n if (event.key !== 'Enter' && event.key !== ' ') return;\n this.open(event);\n }, cleanup});\n },\n destroy(): void {\n props?.disconnect();\n if (isRegistered) modalTriggerControllers.delete(controller);\n isRegistered = false;\n props = null;\n target = null;\n },\n get root(): BindingObject {\n const triggerProps = currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: modalStyles.parts.trigger, props: {}, className: triggerProps.class}),\n {\n 'data-ui-modal-trigger': '',\n ':data-name': () => props?.name || undefined,\n ':data-disabled': () => (props?.disabled ? '' : undefined),\n },\n ]});\n },\n open(event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled) return;\n modal()?.openFrom(targetEl());\n },\n };\n};\n\nconst registerModal = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiModal', () => UiModal(AlpineInstance))(AlpineInstance);\n defineAlpineData('UiModalTrigger', UiModalTrigger)(AlpineInstance);\n};\n\nexport {registerModal, UiModal, UiModalTrigger};\nexport type {ModalCancelDetail, ModalTransition, UiModalApi, UiModalTriggerApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerModal as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerModal = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerModal};\nexport default registerModal;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e,r as t,s as n,t as r}from"./dom-DiTFTWeR.js";import{f as i,s as a}from"./motion-RwlK04Cy.js";import{t as o}from"./capability-motion-B32HePGn.js";import{n as s}from"./morph-Cq3V_23_.js";import{a as c,f as l,l as u,n as d}from"./codecs-CQ7olTJL.js";import{i as f,t as ee}from"./alpine-machine-CE2UN4Qu.js";import{t as p}from"./focus-pk_lz9sg.js";import{t as te}from"./cleanup-manager-D9QiZF_Q.js";import{n as m,t as ne}from"./alpine-data-Dvc_bXq6.js";import{n as h,t as g}from"./styles-CX2j92ex.js";import{t as re}from"./merge-bindings-BtqW3UgP.js";import{t as _}from"./machine-CNnHDbyo.js";import{r as ie}from"./focus-scope-BrYxsrhc.js";import{t as ae}from"./semantic-observer-CIoriWtV.js";import{n as oe,t as v}from"./capability-resizable-ByUbMIHF.js";var se=(e,t)=>{let n=getComputedStyle(e).getPropertyValue(`--breakpoint-${t}`),r=Number.parseFloat(n);return Number.isFinite(r)?r:1/0},y=[`horizontal`,`vertical`],b=[`div`,`section`,`aside`,`main`,`nav`],x=[`1`,`2`,`3`,`4`,`5`,`6`,`fill`],S=[`none`,`start`,`end`],ce=[`toggle`,`expand`,`collapse`],le={id:l.default(`ui-panels`),orientation:u(y,`horizontal`),persist:d,divider:d.default(!0),class:l},ue={id:l,as:u(b,`section`),size:u(x,`fill`),resize:u(S,`none`),collapsible:d,defaultCollapsed:d,class:l},C={target:l,action:u(ce,`toggle`),icon:l.default(`menu`),label:l.default(`Expand`),class:l},de=[f({name:`opening`,state:`changing`,projectEach:e=>e.context.change.openingIds.map(e=>({panelId:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{expand:e=>({type:`EXPAND`,panelId:e}),collapse:e=>({type:`COLLAPSE`,panelId:e}),toggle:e=>({type:`TOGGLE`,panelId:e})}}),f({name:`closing`,state:`changing`,projectEach:e=>e.context.change.closingIds.map(e=>({panelId:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{expand:e=>({type:`EXPAND`,panelId:e}),collapse:e=>({type:`COLLAPSE`,panelId:e}),toggle:e=>({type:`TOGGLE`,panelId:e})}}),f({name:`sizing`,state:`sizing`,projectEach:e=>e.context.sizing.changes,onDone:`SIZE_DONE`,onError:`SIZE_ERROR`}),f({name:`persisting`,state:`persisting`,project:e=>({groupId:e.props.id,collapsed:[...e.context.layout.collapsedIds],sizes:{...e.context.layout.committedSizes}}),onDone:`PERSIST_DONE`,onError:`PERSIST_ERROR`})],w=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],T=e=>typeof e.panelId==`string`?e.panelId:``,E=e=>typeof e==`number`&&Number.isFinite(e)?e:null,D=e=>(Array.isArray(e.changes)?e.changes:[e]).flatMap(e=>{if(typeof e!=`object`||!e)return[];let t=e,n=typeof t.panelId==`string`?t.panelId:``,r=E(t.from),i=E(t.to),a=t.reset===!0;return n&&r!==null&&i!==null&&(r!==i||a)?[{panelId:n,from:r,to:i,...a?{reset:!0}:{}}]:[]}),O=(e,t)=>typeof e.props==`object`&&e.props!==null?e.props:t,k=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),A=e=>{if(!Array.isArray(e))return[];let t=[];return e.forEach(e=>{if(typeof e!=`object`||!e)return;let n=e;if(typeof n.id!=`string`||!n.id)return;let r=n.collapsible===!0?{collapsible:!0,defaultCollapsed:n.defaultCollapsed===!0}:{collapsible:!1,defaultCollapsed:!1};n.kind===`fill`&&t.push({id:n.id,kind:`fill`,...r}),n.kind===`bounded`&&t.push({id:n.id,kind:`bounded`,resizable:n.resizable===!0,...r})}),t},j=e=>new Map(e.map(e=>[e.id,e])),M=(e,t)=>Object.fromEntries(e.flatMap(e=>e.kind===`bounded`&&Object.hasOwn(t,e.id)?[[e.id,t[e.id]]]:[])),N=e=>{let t=T(e.event),n=e.context.layout.collapsedIds,r=e.context.collection,i=j(r).get(t);switch(e.event.type){case`COLLAPSE`:return i?.collapsible&&!n.includes(t)?r.map(e=>e.id).filter(e=>n.includes(e)||e===t):n;case`EXPAND`:return n.filter(e=>e!==t);case`TOGGLE`:return i?.collapsible?n.includes(t)?n.filter(e=>e!==t):r.map(e=>e.id).filter(e=>n.includes(e)||e===t):n;default:return n}},P=e=>{let t=T(e.event);return j(e.context.collection).has(t)&&!k(e.context.layout.collapsedIds,N(e))},F=e=>{let t=T(e.event),n=j(e.context.collection).get(t);return n?.kind===`bounded`&&n.resizable&&!e.context.layout.collapsedIds.includes(t)&&E(e.event.size)!==null},I=e=>{let t=D(e.event),n=j(e.context.collection);return t.length>0&&t.every(({panelId:t})=>n.get(t)?.kind===`bounded`&&!e.context.layout.collapsedIds.includes(t))},L=e=>{let t=D(e.event),n=j(e.context.collection);return t.length>0&&t.every(({panelId:t})=>n.get(t)?.kind===`bounded`&&e.context.layout.collapsedIds.includes(t))},R=e=>{let t=w(e.event.ids),n=j(e.context.collection);return t.length>0&&t.every(t=>n.get(t)?.kind===`bounded`&&e.context.layout.collapsedIds.includes(t)&&Object.hasOwn(e.context.layout.committedSizes,t))},z=e=>{let t=D(e.event),n={...e.context.layout.committedSizes};return t.forEach(({panelId:e,to:t,reset:r})=>{r?delete n[e]:n[e]=t}),{context:{...e.context,layout:{...e.context.layout,committedSizes:M(e.context.collection,n)},sizing:{changes:t}}}},B=e=>{let t=D(e.event),n={...e.context.layout.committedSizes,...Object.fromEntries(t.map(({panelId:e,to:t})=>[e,t]))};return{context:{...e.context,layout:{...e.context.layout,committedSizes:M(e.context.collection,n)}}}},fe=e=>{let t={...e.context.layout.committedSizes};return w(e.event.ids).forEach(e=>delete t[e]),{context:{...e.context,layout:{...e.context.layout,committedSizes:M(e.context.collection,t)}}}},V=e=>{let t=N(e),n=e.context.layout.collapsedIds;return{context:{...e.context,layout:{...e.context.layout,collapsedIds:t},change:{openingIds:n.filter(e=>!t.includes(e)),closingIds:t.filter(e=>!n.includes(e))}}}},H=e=>{let t=A(e.event.collection),n=j(e.context.collection),r=t.filter(t=>(e.context.layout.collapsedIds.includes(t.id)||!n.has(t.id)&&t.defaultCollapsed)&&t.collapsible).map(e=>e.id),i=M(t,e.context.layout.committedSizes),a=j(t).get(e.context.resize.activeId),o=a?.kind===`bounded`&&a.resizable;return{context:{...e.context,collection:t,layout:{collapsedIds:r,committedSizes:i},resize:o?e.context.resize:{activeId:``,initialSize:null,previewSize:null}}}},U=e=>{let t=j(A(e.event.collection)).get(e.context.resize.activeId);return t?.kind!==`bounded`||!t.resizable},pe=({props:e,context:t,effects:n})=>_({initial:`stable`,on:{DOM_INVALIDATED:{effects:`sync`}},states:{stable:{tags:[`stable`],on:{COLLAPSE:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},EXPAND:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},SIZE:{target:`sizing`,guard:I,reduce:z,effects:`prepareSizing`},RESTORE_HIDDEN_SIZES:{guard:L,reduce:B},RESET_HIDDEN_SIZES:{target:`persisting`,guard:R,reduce:fe,effects:[`sync`,`persist`]},RESIZE_START:{target:`resizing`,guard:F,reduce:`startResize`,effects:`beginResize`},PANELS_CHANGED:{reduce:H,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},changing:{tags:[`changing`,`transitioning`],on:{CHANGE_DONE:{target:`persisting`,effects:[`finishChange`,`persist`]},CHANGE_ERROR:{target:`persisting`,effects:[`finishChange`,`persist`]},COLLAPSE:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},EXPAND:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},PANELS_CHANGED:{reduce:H,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},sizing:{tags:[`sizing`,`transitioning`],on:{SIZE_DONE:{target:`persisting`,effects:[`finishSizing`,`persist`]},SIZE_ERROR:{target:`persisting`,effects:[`finishSizing`,`persist`]},SIZE:{target:`sizing`,guard:I,reduce:z,effects:`prepareSizing`},RESIZE_START:{target:`resizing`,guard:F,reduce:`startResize`,effects:`beginResize`},PANELS_CHANGED:{reduce:H,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},resizing:{tags:[`resizing`],on:{RESIZE:{guard:`activeResize`,reduce:`previewResize`,effects:`previewResize`},RESIZE_END:{target:`persisting`,guard:`activeResize`,reduce:`commitResize`,effects:[`commitResize`,`persist`]},RESIZE_CANCEL:{target:`stable`,reduce:`clearResize`,effects:`cancelResize`},PANELS_CHANGED:[{target:`stable`,guard:U,reduce:H,effects:[`cancelResize`,`sync`]},{reduce:H,effects:`sync`}],PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},persisting:{tags:[`persisting`],on:{PERSIST_DONE:`stable`,PERSIST_ERROR:`stable`,COLLAPSE:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},EXPAND:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:P,reduce:V,effects:`prepareChange`},SIZE:{target:`sizing`,guard:I,reduce:z,effects:`prepareSizing`},PANELS_CHANGED:{reduce:H,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}}}},{props:e,context:t,reducers:{replaceProps:e=>({props:O(e.event,e.props)}),startResize:e=>{let t=E(e.event.size);return{context:{...e.context,resize:{activeId:T(e.event),initialSize:t,previewSize:t}}}},previewResize:e=>({context:{...e.context,resize:{...e.context.resize,previewSize:E(e.event.size)}}}),commitResize:e=>{let t=T(e.event),n=E(e.event.size);if(n!==null)return{context:{...e.context,layout:{...e.context.layout,committedSizes:M(e.context.collection,{...e.context.layout.committedSizes,[t]:n})},resize:{activeId:``,initialSize:null,previewSize:null}}}},clearResize:e=>({context:{...e.context,resize:{activeId:``,initialSize:null,previewSize:null}}})},guards:{activeResize:e=>T(e.event)===e.context.resize.activeId&&E(e.event.size)!==null},effects:{prepareChange:n.prepareChange,finishChange:n.finishChange,sync:n.sync,beginResize:n.beginResize,previewResize:n.previewResize,commitResize:n.commitResize,cancelResize:n.cancelResize,prepareSizing:n.prepareSizing,finishSizing:n.finishSizing,persist:n.persist}}),W=g({definition:{component:`ui.panels`,parts:{root:{base:`relative flex h-full min-h-0 w-full min-w-0`,variants:{orientation:{horizontal:`flex-row`,vertical:`flex-col`}},defaults:{orientation:`horizontal`}},panel:{base:`relative min-w-0 overflow-hidden border-separator`,variants:{orientation:{horizontal:`h-full`,vertical:`w-full`},divider:{true:``,false:``},resize:{none:``,start:``,end:``}},defaults:{orientation:`horizontal`,divider:!0,resize:`none`}},expanded:{base:`h-full min-h-0 w-full min-w-0`},collapsed:{base:`flex h-full min-h-0 w-full min-w-0 items-center justify-center overflow-hidden`},resizeHandle:{base:[`absolute z-20 touch-none outline-none`],variants:{orientation:{horizontal:`inset-y-0 w-panel-resize-handle cursor-col-resize`,vertical:`inset-x-0 h-panel-resize-handle cursor-row-resize`},edge:{start:``,end:``}},defaults:{orientation:`horizontal`,edge:`end`}},toggle:{base:`inline-flex size-control-md items-center justify-center outline-none focus-visible:ui-focus-ring-inset`},toggleIcon:{base:`size-icon-md shrink-0`}}}}),G=new Set,K=e=>e instanceof CustomEvent&&e.detail&&typeof e.detail==`object`?e.detail:{},me=(()=>{let e=!1;return()=>{if(e||typeof document>`u`)return;let t=e=>t=>{let n=K(t);!n.__panelsNotification&&n.panelId&&G.forEach(t=>{n.groupId&&n.groupId!==t.id||t.hasPanel(n.panelId)&&t.perform(n.action??e,n.panelId,n.trigger)})};document.addEventListener(`ui:panel-collapse`,t(`collapse`)),document.addEventListener(`ui:panel-expand`,t(`expand`)),document.addEventListener(`ui:panel-toggle`,t(`toggle`)),document.addEventListener(`ui:panel-size`,e=>{let t=K(e);!t.__panelsNotification&&t.panelId&&Number.isFinite(t.size)&&G.forEach(e=>{t.groupId&&t.groupId!==e.id||e.hasPanel(t.panelId)&&e.resize(t.panelId,t.size)})}),document.addEventListener(`ui:panels-reset`,e=>{let t=K(e);t.__panelsNotification||G.forEach(e=>{t.groupId&&t.groupId!==e.id||(!t.panelId||e.hasPanel(t.panelId))&&e.reset(t.panelId)})}),e=!0}})(),he=e=>`trellis-ui:panels:${e}:v1`,ge=e=>typeof e!=`object`||!e||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`number`&&Number.isFinite(e[1]))),q=()=>{let o=null,l=null,u=null,d=`wide`,f,m=null,g=new Set,_=new Set,v=new Map,y=new Map,b=new Map,x=new Map,S=()=>{if(!o)throw Error(`Panels has not been initialized.`);return o},ce=e=>e.closest(`[data-ui-panels]`)===S(),C=()=>Array.from(S().children).flatMap(e=>{if(!(e instanceof HTMLElement)||!e.hasAttribute(`data-ui-panel`))return[];let t=e.querySelector(`:scope > [data-ui-panel-expanded]`);return!t||!ce(t)?[]:[{panel:e,expanded:t,collapsed:e.querySelector(`:scope > [data-ui-panel-collapsed]`),handle:e.querySelector(`:scope > [data-ui-panel-resize-handle]`),props:c({el:e,schema:ue})}]}),w=e=>C().find(t=>t.props.id===e)??null,T=()=>Q.getCommittedSnapshot().context,E=()=>Q.getCommittedSnapshot().props,D=e=>T().layout.collapsedIds.includes(e),O=()=>E().orientation===`horizontal`&&d===`stacked`,k=()=>O()?`vertical`:E().orientation,A=()=>S().dataset.orientation===`vertical`?`vertical`:`horizontal`,j=e=>{let t=e.getBoundingClientRect();return A()===`horizontal`?t.width:t.height},M=()=>{let e=C(),t=e.map(({props:e})=>e.id);if(t.some(e=>!e))throw Error(`Every Panel requires a stable id.`);if(new Set(t).size!==t.length)throw Error(`Panel ids must be unique within a Panels group.`);if(e.length>0&&!e.some(({props:e})=>e.size===`fill`))throw Error(`A Panels group requires at least one size="fill" Panel.`);if(e.some(({props:e})=>e.size===`fill`&&e.resize!==`none`))throw Error(`A size="fill" Panel cannot own a resize handle.`);return e.map(({props:e})=>{let t=e.collapsible?{collapsible:!0,defaultCollapsed:e.defaultCollapsed}:{collapsible:!1,defaultCollapsed:!1};return e.size===`fill`?{id:e.id,kind:`fill`,...t}:{id:e.id,kind:`bounded`,resizable:e.resize!==`none`,...t}})},N=e=>{let t=document.createElement(`div`);t.style.cssText=`position:absolute;visibility:hidden;pointer-events:none;inset:0 auto auto 0;`,A()===`horizontal`?t.style.width=`var(${e})`:t.style.height=`var(${e})`,S().append(t);let n=j(t);return t.remove(),n},P=e=>e.props.size===`fill`?{minimum:0,maximum:1/0}:{minimum:N(`--spacing-panel-${e.props.size}-min`),maximum:N(`--spacing-panel-${e.props.size}-max`)},F=(e,t)=>{let{minimum:n,maximum:r}=P(e);return Math.min(r,Math.max(n,t))},I=()=>{let e=M();return{collection:e,layout:{collapsedIds:e.filter(e=>e.defaultCollapsed).map(({id:e})=>e),committedSizes:{}},change:{openingIds:[],closingIds:[]},resize:{activeId:``,initialSize:null,previewSize:null},sizing:{changes:[]}}},L=(e,t,n)=>{A()===`horizontal`?(e.style.minWidth=t,e.style.maxWidth=n,e.style.minHeight=``,e.style.maxHeight=``):(e.style.minHeight=t,e.style.maxHeight=n,e.style.minWidth=``,e.style.maxWidth=``)},R=e=>{e.style.flex=``,e.style.minWidth=``,e.style.maxWidth=``,e.style.minHeight=``,e.style.maxHeight=``},z=(e,t)=>{if(O()){R(e.panel);return}if(t!==void 0){e.panel.style.flex=`0 0 ${t}px`,L(e.panel,`0px`,`none`);return}if(D(e.props.id)){if(T().collection.find(({id:t})=>t===e.props.id)?.defaultCollapsed){R(e.panel);return}let t=e.collapsed?`var(--spacing-panel-collapsed)`:`0px`;e.panel.style.flex=`0 0 ${t}`,L(e.panel,t,t);return}if(e.props.size===`fill`){R(e.panel);return}let n=T().resize.activeId===e.props.id?T().resize.previewSize:T().layout.committedSizes[e.props.id];if(n==null){R(e.panel);return}let r=`${F(e,n)}px`;e.panel.style.flex=`0 1 ${r}`,L(e.panel,`var(--spacing-panel-${e.props.size}-min)`,`var(--spacing-panel-${e.props.size}-max)`)},B=(e,t)=>{e.toggleAttribute(`inert`,t),e.setAttribute(`aria-hidden`,t?`true`:`false`)},fe=e=>{let t=E(),r=k(),i=D(e.props.id),a=Q.hasTag(`changing`)&&T().change.openingIds.includes(e.props.id),o=Q.hasTag(`changing`)&&T().change.closingIds.includes(e.props.id),s=!(i&&!o),c=i&&!o&&!a&&e.collapsed!==null;if(e.panel.dataset.state=i?`collapsed`:`expanded`,e.panel.dataset.orientation=r,e.panel.dataset.size=e.props.size,e.panel.dataset.resize=e.props.resize,e.panel.className=h({part:W.parts.panel,props:{orientation:r,divider:t.divider,resize:e.props.resize},className:e.props.class}),n({el:e.panel,attr:`data-collapsible`,present:e.props.collapsible}),n({el:e.panel,attr:`data-resizing`,present:T().resize.activeId===e.props.id}),z(e),e.expanded.hidden=!s,B(e.expanded,!s),e.collapsed&&(e.collapsed.hidden=!c,B(e.collapsed,!c)),e.handle){let t=O()||i||e.props.size===`fill`||e.props.resize===`none`;e.handle.dataset.orientation=r,e.handle.dataset.resizeEdge=e.props.resize,e.handle.setAttribute(`aria-label`,`Resize ${e.props.id} panel`),e.handle.toggleAttribute(`data-resize-disabled`,t),e.handle.hidden=t,e.handle.className=h({part:W.parts.resizeHandle,props:{orientation:r,edge:e.props.resize},className:e.handle.dataset.class??``})}},V=e=>{e.forEach((t,r)=>{let i=e[r+1];s(t.panel,`data-divider`),n({el:t.panel,attr:`data-divider`,present:E().divider&&i!==void 0})})},H=e=>{let t=e.dataset.target||``;if(!t){let t=e.closest(`[data-ui-panel]`),n=t?.closest(`[data-ui-panels]`),r=[...G].find(e=>e.id===n?.id),i=t&&r===$?w(t.id):null;return i&&r?{record:i,controller:r}:null}let n=e.dataset.groupId||e.closest(`[data-ui-panels]`)?.id,r=[...G].filter(e=>!n||e.id===n).find(e=>e.hasPanel(t)),i=r===$?w(t):null;return i&&r?{record:i,controller:r}:null},U=()=>{document.querySelectorAll(`[data-ui-panel-toggle]`).forEach(e=>{let t=H(e);if(!t||t.controller!==$)return;let n=D(t.record.props.id);e.dataset.target=t.record.props.id,e.dataset.groupId=E().id,e.dataset.state=n?`collapsed`:`expanded`,e.setAttribute(`aria-controls`,t.record.panel.id),e.setAttribute(`aria-expanded`,n?`false`:`true`),e.toggleAttribute(`disabled`,!t.record.props.collapsible)})},K=()=>{let e=E(),t=k();S().dataset.responsiveMode=d,S().dataset.layoutOrientation=t,S().style.flexDirection=t===`horizontal`?`row`:`column`,S().className=h({part:W.parts.root,props:{...e,orientation:t},className:e.class}),n({el:S(),attr:`data-resizing`,present:Q.hasTag(`resizing`)}),n({el:S(),attr:`data-transitioning`,present:Q.hasTag(`transitioning`)});let r=C();r.forEach(fe),V(r),U()},q=(e,t=!1,n=!0)=>{let r=document.activeElement;if(!t&&(!(r instanceof HTMLElement)||!e.collapsed?.contains(r)))return;let i=b.get(e.props.id);i?.isConnected&&e.expanded.contains(i)?p(i,{showIndicator:n}):(e.expanded.tabIndex=-1,p(e.expanded,{showIndicator:n}))},J=(e,t=!1,n=!0)=>{let r=document.activeElement;if(!t&&(!(r instanceof HTMLElement)||!e.expanded.contains(r)))return;let i=e.collapsed?ie(e.collapsed)[0]:void 0,a=x.get(e.props.id),o=a?.isConnected&&!e.panel.contains(a)?a:void 0;i?p(i,{showIndicator:n}):o?p(o,{showIndicator:n}):(S().tabIndex=-1,p(S(),{showIndicator:n}))},_e=()=>{let e=[...T().change.openingIds,...T().change.closingIds],t=new Map(T().change.openingIds.flatMap(e=>{let t=w(e),n=document.activeElement;return t!==null&&t.collapsed!==null&&n instanceof HTMLElement&&t.collapsed.contains(n)?[[e,n.matches(`:focus-visible`)]]:[]})),n=new Map(e.flatMap(e=>{let t=w(e);if(!t)return[];if(T().change.closingIds.includes(e)){let n=document.activeElement;n instanceof HTMLElement&&t.expanded.contains(n)&&b.set(e,n)}return[[e,j(t.panel)]]}));K(),T().change.openingIds.forEach(e=>{let n=w(e);n&&q(n,t.has(e),t.get(e)??!0)}),e.forEach(e=>{let t=w(e),r=n.get(e);if(!t||r===void 0)return;let i=j(t.panel);y.set(e,{from:r,to:i}),z(t,r)})},ve=()=>{let e=[...T().change.openingIds],t=[...T().change.closingIds],n=new Map(t.flatMap(e=>{let t=w(e),n=document.activeElement;return t!==null&&n instanceof HTMLElement&&t.expanded.contains(n)?[[e,n.matches(`:focus-visible`)]]:[]}));C().forEach(e=>z(e)),K(),t.forEach(e=>{let t=w(e);t&&J(t,n.has(e),n.get(e)??!0)}),e.forEach(e=>Y(`ui:panel-expand`,e)),t.forEach(e=>Y(`ui:panel-collapse`,e)),[...e,...t].forEach(e=>y.delete(e))},Y=(e,n,r={})=>{t({el:S(),name:e,detail:{groupId:E().id,panelId:n,__panelsNotification:!0,...r}})},ye=()=>{let e=T().layout;if(E().persist)try{localStorage.setItem(he(E().id),JSON.stringify({collapsed:e.collapsedIds,sizes:e.committedSizes}))}catch{}t({el:S(),name:`ui:panels-layout-change`,detail:{groupId:E().id,collapsed:[...e.collapsedIds],sizes:{...e.committedSizes},__panelsNotification:!0}})},X=e=>{if(!o)return;if(Q.hasTag(`stable`)){e();return}let t=window.setTimeout(()=>{g.delete(t),X(e)},16);g.add(t)},Z=(e,t)=>{let n=e.find(e=>t(e)!==D(e));n&&(Q.send({type:t(n)?`COLLAPSE`:`EXPAND`,panelId:n}),X(()=>Z(e,t)))},be=()=>{if(!E().persist)return;let e;try{e=JSON.parse(localStorage.getItem(he(E().id))??`null`)}catch{return}if(typeof e!=`object`||!e)return;let t=M(),n=t.filter(e=>e.collapsible),r=new Set((Array.isArray(e.collapsed)?e.collapsed:[]).filter(e=>typeof e==`string`&&n.some(t=>t.id===e))),i=ge(e.sizes),a=()=>{Z(n.map(({id:e})=>e),e=>r.has(e))},o=()=>{let e=t.filter(e=>e.kind===`bounded`).flatMap(({id:e})=>{let t=w(e),n=i[e];if(!t||n===void 0)return[];let r=j(t.panel),a=F(t,n);return Math.abs(r-a)<.5?[]:[{panelId:e,from:r,to:a}]});if(O()){e.length>0&&Q.send({type:`RESTORE_HIDDEN_SIZES`,changes:e}),a();return}let n=e.filter(({panelId:e})=>D(e)),r=e.filter(({panelId:e})=>!D(e));if(n.length>0&&Q.send({type:`RESTORE_HIDDEN_SIZES`,changes:n}),r.length>0){Q.send({type:`SIZE`,changes:r}),X(a);return}a()},s=n.map(({id:e})=>e).filter(e=>D(e)&&!r.has(e));s.length>0?(Z(s,()=>!1),X(o)):o()},xe=()=>{let e=requestAnimationFrame(()=>{_.delete(e);let t=requestAnimationFrame(()=>{_.delete(t),be()});_.add(t)});_.add(e)},Se=e=>{let t=M(),n=e?t.filter(({id:t})=>t===e):t;if(n.length===0)return;let r=()=>{Z(n.filter(e=>e.collapsible).map(({id:e})=>e),e=>t.find(t=>t.id===e)?.defaultCollapsed===!0)},i=n.filter(e=>e.kind===`bounded`).map(({id:e})=>e).filter(e=>Object.hasOwn(T().layout.committedSizes,e));if(O()){i.length>0?(Q.send({type:`RESET_HIDDEN_SIZES`,ids:i}),X(r)):r();return}let a=i.filter(D);a.length>0&&Q.send({type:`RESET_HIDDEN_SIZES`,ids:a});let o=i.filter(e=>!D(e)).flatMap(e=>{let t=w(e);return!t||t.props.size===`fill`?[]:[{panelId:e,from:j(t.panel),to:N(`--spacing-panel-${t.props.size}`),reset:!0}]});if(o.length>0){Q.send({type:`SIZE`,changes:o}),X(r);return}r()},Ce=()=>{T().sizing.changes.forEach(({panelId:e,from:t})=>{let n=w(e);n&&z(n,t)})},we=()=>{T().sizing.changes.forEach(({panelId:e,to:t})=>{let n=w(e);n&&(z(n),Y(`ui:panel-resize-end`,e,{size:t}))}),K()},Te=t=>{if(k()===`vertical`)return t===`start`?`negative`:`positive`;let n=e({el:S()});return t===`start`?n?`positive`:`negative`:n?`negative`:`positive`},Ee=()=>{let e=m;if(!e)return;let t=new Set(C().map(({panel:e})=>e));v.forEach((e,n)=>{t.has(n)||(e.run(),v.delete(n))}),C().forEach(t=>{if(v.has(t.panel)||!t.handle||t.props.size===`fill`||t.props.resize===`none`)return;let n=P(t),r=N(`--spacing-panel-resize-handle`),i=N(`--spacing-panel-resize-handle-coarse`),a=new te;e.addChild(a),a.add(oe({element:t.panel,handle:t.handle,axis:k()===`horizontal`?`x`:`y`,direction:Te(t.props.resize),min:n.minimum,max:n.maximum,mode:`onChange`,hitArea:r,coarseHitArea:i,disabled:()=>O()||D(t.props.id),onStart:e=>Q.send({type:`RESIZE_START`,panelId:t.props.id,size:Oe(e)}),onResize:e=>Q.send({type:`RESIZE`,panelId:t.props.id,size:Oe(e)}),onEnd:e=>Q.send({type:`RESIZE_END`,panelId:t.props.id,size:Oe(e)})})),v.set(t.panel,a)})},De=()=>{m?.run(),v.clear(),m=new te,f.addChild(m),Ee()},Oe=e=>k()===`horizontal`?e.previewWidth:e.previewHeight,ke=e=>{let t=E().orientation===`horizontal`&&e<se(S(),`sm`)?`stacked`:`wide`;t!==d&&(d=t,K(),De())},Q=ee({schema:le,hooks:de,resolveTransitionElement:({data:e})=>{let t=e?.panelId;return t?w(t)?.panel??null:S()},createMachine:({props:e})=>pe({props:e,context:I(),effects:{prepareChange:_e,finishChange:ve,sync:()=>{K(),De()},beginResize:()=>{K()},previewResize:()=>{let e=T().resize.activeId,t=w(e);t&&z(t);let n=T().resize.previewSize;n!==null&&Y(`ui:panel-resize`,e,{size:n})},commitResize:e=>{K();let t=typeof e.event.panelId==`string`?e.event.panelId:``,n=T().layout.committedSizes[t];t&&n!==void 0&&Y(`ui:panel-resize-end`,t,{size:n})},cancelResize:K,prepareSizing:Ce,finishSizing:we,persist:ye}})}),Ae=()=>{let e=M();Q.send({type:`PANELS_CHANGED`,collection:e}),Ee()},je=()=>{l=ae({targets:S(),read:M,onChange:Ae,observer:{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`,`data-size`,`data-resize`,`data-collapsible`,`data-default-collapsed`]}})},$;return $={...Q,get id(){return S().id||E().id},get orientation(){return k()},get collapsed(){return[...T().layout.collapsedIds]},get sizes(){return{...T().layout.committedSizes}},get root(){let e=this.snapshot.current?.props??E();return re({inputs:[h({part:W.parts.root,props:e,className:e.class}),{"data-ui-panels":``}]})},init(){f=ne(this),m=new te,f.addChild(m),o=this.$el,Q.connect(this.$el,this.snapshot),S().id||=E().id,d=E().orientation===`horizontal`&&S().getBoundingClientRect().width<se(S(),`sm`)?`stacked`:`wide`,G.add($),me(),K(),Ee(),u=new ResizeObserver(e=>{ke(e[0]?.contentRect.width??S().clientWidth)}),u.observe(S()),je(),E().persist&&xe(),r({target:S(),event:`keydown`,handler:()=>U(),cleanup:f})},destroy(){G.delete($),l?.(),l=null,u?.disconnect(),u=null,v.clear(),m=null,g.forEach(e=>window.clearTimeout(e)),g.clear(),_.forEach(e=>cancelAnimationFrame(e)),_.clear(),Q.disconnect(),o=null},transitionPanel(e){let t=e.data.panelId,n=w(t),r=y.get(t);return!n||!r||r.from===r.to?(n&&z(n,r?.to),i()):a(e,{target:n.panel,keyframes:{flexBasis:[`${r.from}px`,`${r.to}px`]},role:`layout`,cleanup:()=>z(n)})},transitionPanelSize(e){let{panelId:t,from:n,to:r}=e.data,o=w(t);return!o||n===r?(o&&z(o),i()):a(e,{target:o.panel,keyframes:{flexBasis:[`${n}px`,`${r}px`]},role:`layoutQuick`,cleanup:()=>z(o)})},hasPanel(e){return w(e)!==null},isCollapsed:D,collapse(e){Q.send({type:`COLLAPSE`,panelId:e})},expand(e){Q.send({type:`EXPAND`,panelId:e})},toggle(e){Q.send({type:`TOGGLE`,panelId:e})},resize(e,t){let n=w(e);if(O()||!n||n.props.size===`fill`||D(e)||!Number.isFinite(t))return;let r=j(n.panel),i=F(n,t);Math.abs(r-i)<.5||Q.send({type:`SIZE`,panelId:e,from:r,to:i})},reset(e){Se(e)},perform(e,t,n){n&&x.set(t,n),{collapse:this.collapse,expand:this.expand,toggle:this.toggle}[e](t)},syncToggles:U},$},J=()=>{let e={};return{get props(){return e},init(){e=c({el:this.$el,schema:C})},destroy(){},get root(){return re({inputs:[h({part:W.parts.toggle,props:{},className:e.class}),{"data-ui-panel-toggle":``,":data-target":()=>e.target||void 0,":data-action":()=>e.action,"@click":e=>this.trigger(e)}]})},trigger(t){t?.preventDefault();let n=this.$el,r=n.closest(`[data-ui-panel]`),i=r?.closest(`[data-ui-panels]`),a=e.target||r?.id||``;a&&document.dispatchEvent(new CustomEvent(`ui:panel-toggle`,{detail:{panelId:a,groupId:i?.id,action:e.action,trigger:n}}))}}},_e=e=>{m(`UiPanels`,q)(e),m(`UiPanelToggle`,J)(e)},ve=new WeakSet,Y=e=>{ve.has(e)||(ve.add(e),o(e),v(e),_e(e))};export{J as n,q as r,Y as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-Cf2hKkwA.js.map
|