@btst/stack 2.0.1 → 2.2.0
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/dist/api/index.cjs +9 -1
- package/dist/api/index.d.cts +4 -4
- package/dist/api/index.d.mts +4 -4
- package/dist/api/index.d.ts +4 -4
- package/dist/api/index.mjs +9 -1
- package/dist/client/index.d.cts +2 -2
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/UI.cjs +2 -2
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/UI.mjs +2 -2
- package/dist/packages/stack/src/plugins/ai-chat/api/getters.cjs +42 -0
- package/dist/packages/stack/src/plugins/ai-chat/api/getters.mjs +39 -0
- package/dist/packages/stack/src/plugins/ai-chat/api/plugin.cjs +5 -0
- package/dist/packages/stack/src/plugins/ai-chat/api/plugin.mjs +5 -0
- package/dist/packages/stack/src/plugins/blog/api/getters.cjs +131 -0
- package/dist/packages/stack/src/plugins/blog/api/getters.mjs +127 -0
- package/dist/packages/stack/src/plugins/blog/api/plugin.cjs +9 -107
- package/dist/packages/stack/src/plugins/blog/api/plugin.mjs +9 -107
- package/dist/packages/stack/src/plugins/blog/client/plugin.cjs +1 -1
- package/dist/packages/stack/src/plugins/blog/client/plugin.mjs +1 -1
- package/dist/packages/stack/src/plugins/cms/api/getters.cjs +146 -0
- package/dist/packages/stack/src/plugins/cms/api/getters.mjs +138 -0
- package/dist/packages/stack/src/plugins/cms/api/plugin.cjs +560 -622
- package/dist/packages/stack/src/plugins/cms/api/plugin.mjs +559 -621
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.internal.cjs +1 -1
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.internal.mjs +1 -1
- package/dist/packages/stack/src/plugins/cms/client/hooks/cms-hooks.cjs +6 -3
- package/dist/packages/stack/src/plugins/cms/client/hooks/cms-hooks.mjs +6 -3
- package/dist/packages/stack/src/plugins/form-builder/api/getters.cjs +111 -0
- package/dist/packages/stack/src/plugins/form-builder/api/getters.mjs +104 -0
- package/dist/packages/stack/src/plugins/form-builder/api/plugin.cjs +16 -88
- package/dist/packages/stack/src/plugins/form-builder/api/plugin.mjs +12 -84
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.cjs +1 -1
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.mjs +1 -1
- package/dist/packages/stack/src/plugins/kanban/api/getters.cjs +84 -0
- package/dist/packages/stack/src/plugins/kanban/api/getters.mjs +81 -0
- package/dist/packages/stack/src/plugins/kanban/api/plugin.cjs +9 -123
- package/dist/packages/stack/src/plugins/kanban/api/plugin.mjs +9 -123
- package/dist/packages/stack/src/plugins/kanban/client/plugin.cjs +1 -1
- package/dist/packages/stack/src/plugins/kanban/client/plugin.mjs +1 -1
- package/dist/packages/ui/src/components/calendar.cjs +2 -2
- package/dist/packages/ui/src/components/calendar.mjs +2 -2
- package/dist/packages/ui/src/components/sonner.cjs +34 -0
- package/dist/packages/ui/src/components/sonner.mjs +32 -0
- package/dist/packages/ui/src/components/ui-builder/components/code-panel.cjs +3 -2
- package/dist/packages/ui/src/components/ui-builder/components/code-panel.mjs +3 -2
- package/dist/packages/ui/src/components/ui-builder/index.cjs +10 -4
- package/dist/packages/ui/src/components/ui-builder/index.mjs +10 -4
- package/dist/packages/ui/src/components/ui-builder/internal/components/element-selector.cjs +22 -23
- package/dist/packages/ui/src/components/ui-builder/internal/components/element-selector.mjs +22 -23
- package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu-portal.cjs +261 -0
- package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu-portal.mjs +255 -0
- package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu.cjs +125 -0
- package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu.mjs +119 -0
- package/dist/packages/ui/src/components/ui-builder/internal/components/layer-menu.cjs +6 -17
- package/dist/packages/ui/src/components/ui-builder/internal/components/layer-menu.mjs +7 -18
- package/dist/packages/ui/src/components/ui-builder/internal/components/nav.cjs +23 -18
- package/dist/packages/ui/src/components/ui-builder/internal/components/nav.mjs +23 -18
- package/dist/packages/ui/src/components/ui-builder/internal/components/tree-row-node.cjs +8 -23
- package/dist/packages/ui/src/components/ui-builder/internal/components/tree-row-node.mjs +9 -24
- package/dist/packages/ui/src/components/ui-builder/internal/editor-panel.cjs +9 -41
- package/dist/packages/ui/src/components/ui-builder/internal/editor-panel.mjs +9 -41
- package/dist/packages/ui/src/components/ui-builder/internal/layers-panel.cjs +7 -16
- package/dist/packages/ui/src/components/ui-builder/internal/layers-panel.mjs +7 -16
- package/dist/packages/ui/src/components/ui-builder/internal/utils/render-utils.cjs +16 -11
- package/dist/packages/ui/src/components/ui-builder/internal/utils/render-utils.mjs +16 -11
- package/dist/packages/ui/src/components/ui-builder/internal/utils/templates.cjs +260 -20
- package/dist/packages/ui/src/components/ui-builder/internal/utils/templates.mjs +260 -20
- package/dist/packages/ui/src/components/ui-builder/internal/variables-panel.cjs +105 -17
- package/dist/packages/ui/src/components/ui-builder/internal/variables-panel.mjs +107 -19
- package/dist/packages/ui/src/components/ui-builder/layer-renderer.cjs +4 -2
- package/dist/packages/ui/src/components/ui-builder/layer-renderer.mjs +4 -2
- package/dist/packages/ui/src/hooks/use-keyboard-shortcuts.cjs +3 -1
- package/dist/packages/ui/src/hooks/use-keyboard-shortcuts.mjs +3 -1
- package/dist/packages/ui/src/lib/ui-builder/hooks/use-layer-actions.cjs +107 -0
- package/dist/packages/ui/src/lib/ui-builder/hooks/use-layer-actions.mjs +105 -0
- package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.cjs +9 -7
- package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.mjs +9 -7
- package/dist/packages/ui/src/lib/ui-builder/shortcuts/shortcut-registry.cjs +71 -0
- package/dist/packages/ui/src/lib/ui-builder/shortcuts/shortcut-registry.mjs +68 -0
- package/dist/packages/ui/src/lib/ui-builder/store/editor-store.cjs +48 -3
- package/dist/packages/ui/src/lib/ui-builder/store/editor-store.mjs +48 -3
- package/dist/packages/ui/src/lib/ui-builder/store/layer-store.cjs +4 -1
- package/dist/packages/ui/src/lib/ui-builder/store/layer-store.mjs +4 -1
- package/dist/packages/ui/src/lib/ui-builder/store/schema-utils.cjs +8 -0
- package/dist/packages/ui/src/lib/ui-builder/store/schema-utils.mjs +8 -1
- package/dist/packages/ui/src/lib/ui-builder/utils/paste-validation.cjs +25 -0
- package/dist/packages/ui/src/lib/ui-builder/utils/paste-validation.mjs +23 -0
- package/dist/packages/ui/src/lib/ui-builder/utils/variable-resolver.cjs +42 -3
- package/dist/packages/ui/src/lib/ui-builder/utils/variable-resolver.mjs +42 -3
- package/dist/plugins/ai-chat/api/index.cjs +3 -0
- package/dist/plugins/ai-chat/api/index.d.cts +27 -4
- package/dist/plugins/ai-chat/api/index.d.mts +27 -4
- package/dist/plugins/ai-chat/api/index.d.ts +27 -4
- package/dist/plugins/ai-chat/api/index.mjs +1 -0
- package/dist/plugins/ai-chat/client/hooks/index.d.cts +2 -2
- package/dist/plugins/ai-chat/client/hooks/index.d.mts +2 -2
- package/dist/plugins/ai-chat/client/hooks/index.d.ts +2 -2
- package/dist/plugins/ai-chat/query-keys.d.cts +9 -284
- package/dist/plugins/ai-chat/query-keys.d.mts +9 -284
- package/dist/plugins/ai-chat/query-keys.d.ts +9 -284
- package/dist/plugins/api/index.d.cts +4 -3
- package/dist/plugins/api/index.d.mts +4 -3
- package/dist/plugins/api/index.d.ts +4 -3
- package/dist/plugins/blog/api/index.cjs +4 -0
- package/dist/plugins/blog/api/index.d.cts +3 -2
- package/dist/plugins/blog/api/index.d.mts +3 -2
- package/dist/plugins/blog/api/index.d.ts +3 -2
- package/dist/plugins/blog/api/index.mjs +1 -0
- package/dist/plugins/blog/client/hooks/index.d.cts +6 -6
- package/dist/plugins/blog/client/hooks/index.d.mts +6 -6
- package/dist/plugins/blog/client/hooks/index.d.ts +6 -6
- package/dist/plugins/blog/client/index.d.cts +1 -1
- package/dist/plugins/blog/client/index.d.mts +1 -1
- package/dist/plugins/blog/client/index.d.ts +1 -1
- package/dist/plugins/blog/query-keys.cjs +7 -4
- package/dist/plugins/blog/query-keys.d.cts +81 -27
- package/dist/plugins/blog/query-keys.d.mts +81 -27
- package/dist/plugins/blog/query-keys.d.ts +81 -27
- package/dist/plugins/blog/query-keys.mjs +7 -4
- package/dist/plugins/client/index.d.cts +2 -2
- package/dist/plugins/client/index.d.mts +2 -2
- package/dist/plugins/client/index.d.ts +2 -2
- package/dist/plugins/cms/api/index.cjs +4 -0
- package/dist/plugins/cms/api/index.d.cts +61 -5
- package/dist/plugins/cms/api/index.d.mts +61 -5
- package/dist/plugins/cms/api/index.d.ts +61 -5
- package/dist/plugins/cms/api/index.mjs +1 -0
- package/dist/plugins/cms/client/hooks/index.d.cts +1 -1
- package/dist/plugins/cms/client/hooks/index.d.mts +1 -1
- package/dist/plugins/cms/client/hooks/index.d.ts +1 -1
- package/dist/plugins/cms/query-keys.d.cts +2 -1
- package/dist/plugins/cms/query-keys.d.mts +2 -1
- package/dist/plugins/cms/query-keys.d.ts +2 -1
- package/dist/plugins/form-builder/api/index.cjs +4 -0
- package/dist/plugins/form-builder/api/index.d.cts +77 -7
- package/dist/plugins/form-builder/api/index.d.mts +77 -7
- package/dist/plugins/form-builder/api/index.d.ts +77 -7
- package/dist/plugins/form-builder/api/index.mjs +1 -0
- package/dist/plugins/form-builder/client/components/index.d.cts +1 -1
- package/dist/plugins/form-builder/client/components/index.d.mts +1 -1
- package/dist/plugins/form-builder/client/components/index.d.ts +1 -1
- package/dist/plugins/form-builder/client/hooks/index.d.cts +1 -1
- package/dist/plugins/form-builder/client/hooks/index.d.mts +1 -1
- package/dist/plugins/form-builder/client/hooks/index.d.ts +1 -1
- package/dist/plugins/form-builder/query-keys.d.cts +2 -1
- package/dist/plugins/form-builder/query-keys.d.mts +2 -1
- package/dist/plugins/form-builder/query-keys.d.ts +2 -1
- package/dist/plugins/kanban/api/index.cjs +3 -0
- package/dist/plugins/kanban/api/index.d.cts +49 -52
- package/dist/plugins/kanban/api/index.d.mts +49 -52
- package/dist/plugins/kanban/api/index.d.ts +49 -52
- package/dist/plugins/kanban/api/index.mjs +1 -0
- package/dist/plugins/kanban/client/components/index.d.cts +1 -1
- package/dist/plugins/kanban/client/components/index.d.mts +1 -1
- package/dist/plugins/kanban/client/components/index.d.ts +1 -1
- package/dist/plugins/kanban/client/hooks/index.d.cts +1 -1
- package/dist/plugins/kanban/client/hooks/index.d.mts +1 -1
- package/dist/plugins/kanban/client/hooks/index.d.ts +1 -1
- package/dist/plugins/kanban/client/index.d.cts +1 -1
- package/dist/plugins/kanban/client/index.d.mts +1 -1
- package/dist/plugins/kanban/client/index.d.ts +1 -1
- package/dist/plugins/kanban/query-keys.cjs +4 -3
- package/dist/plugins/kanban/query-keys.d.cts +2 -1
- package/dist/plugins/kanban/query-keys.d.mts +2 -1
- package/dist/plugins/kanban/query-keys.d.ts +2 -1
- package/dist/plugins/kanban/query-keys.mjs +4 -3
- package/dist/plugins/open-api/api/index.d.cts +2 -2
- package/dist/plugins/open-api/api/index.d.mts +2 -2
- package/dist/plugins/open-api/api/index.d.ts +2 -2
- package/dist/plugins/route-docs/client/index.d.cts +1 -1
- package/dist/plugins/route-docs/client/index.d.mts +1 -1
- package/dist/plugins/route-docs/client/index.d.ts +1 -1
- package/dist/plugins/ui-builder/client/components/index.d.cts +1 -1
- package/dist/plugins/ui-builder/client/components/index.d.mts +1 -1
- package/dist/plugins/ui-builder/client/components/index.d.ts +1 -1
- package/dist/plugins/ui-builder/client/hooks/index.d.cts +2 -2
- package/dist/plugins/ui-builder/client/hooks/index.d.mts +2 -2
- package/dist/plugins/ui-builder/client/hooks/index.d.ts +2 -2
- package/dist/plugins/ui-builder/client/index.d.cts +16 -6
- package/dist/plugins/ui-builder/client/index.d.mts +16 -6
- package/dist/plugins/ui-builder/client/index.d.ts +16 -6
- package/dist/plugins/ui-builder/index.d.cts +3 -3
- package/dist/plugins/ui-builder/index.d.mts +3 -3
- package/dist/plugins/ui-builder/index.d.ts +3 -3
- package/dist/shared/{stack.DYCFcnkL.d.mts → stack.6fUOjLs9.d.mts} +1 -1
- package/dist/shared/{stack.BoA0xkJv.d.mts → stack.7n9Y_u7N.d.cts} +33 -7
- package/dist/shared/{stack.BoA0xkJv.d.cts → stack.7n9Y_u7N.d.mts} +33 -7
- package/dist/shared/{stack.BoA0xkJv.d.ts → stack.7n9Y_u7N.d.ts} +33 -7
- package/dist/shared/{stack.BdJFrdyt.d.cts → stack.B-YHz18S.d.cts} +2 -2
- package/dist/shared/stack.BeSm90va.d.ts +289 -0
- package/dist/shared/{stack.kFbDspnF.d.ts → stack.C-Ptrz8s.d.ts} +1 -1
- package/dist/shared/{stack.BYysGdHl.d.cts → stack.C-WUPMT6.d.cts} +1 -1
- package/dist/shared/{stack.DzH_wcvr.d.cts → stack.CIrIsc-A.d.cts} +2 -2
- package/dist/shared/{stack.DzH_wcvr.d.mts → stack.CIrIsc-A.d.mts} +2 -2
- package/dist/shared/{stack.DzH_wcvr.d.ts → stack.CIrIsc-A.d.ts} +2 -2
- package/dist/shared/stack.CMh_EdxW.d.cts +289 -0
- package/dist/shared/{stack.BsXokfNh.d.cts → stack.CXjzTMsb.d.cts} +1 -1
- package/dist/shared/{stack.BsXokfNh.d.mts → stack.CXjzTMsb.d.mts} +1 -1
- package/dist/shared/{stack.BsXokfNh.d.ts → stack.CXjzTMsb.d.ts} +1 -1
- package/dist/shared/{stack.ChVuHi5e.d.mts → stack.D1DMlJp-.d.mts} +2 -2
- package/dist/shared/stack.Dg09R0oB.d.mts +289 -0
- package/dist/shared/{stack.EhM4pmtN.d.ts → stack.GygI_T3X.d.ts} +2 -2
- package/dist/shared/{stack.DKDMI-QO.d.mts → stack.QD1y_7NY.d.cts} +7 -1
- package/dist/shared/{stack.DKDMI-QO.d.ts → stack.QD1y_7NY.d.mts} +7 -1
- package/dist/shared/{stack.DKDMI-QO.d.cts → stack.QD1y_7NY.d.ts} +7 -1
- package/package.json +1 -1
- package/src/__tests__/stack-api.test.ts +118 -0
- package/src/api/index.ts +15 -1
- package/src/plugins/ai-chat/__tests__/getters.test.ts +109 -0
- package/src/plugins/ai-chat/api/getters.ts +71 -0
- package/src/plugins/ai-chat/api/index.ts +1 -0
- package/src/plugins/ai-chat/api/plugin.ts +8 -0
- package/src/plugins/api/index.ts +3 -1
- package/src/plugins/blog/__tests__/getters.test.ts +540 -0
- package/src/plugins/blog/api/getters.ts +243 -0
- package/src/plugins/blog/api/index.ts +7 -0
- package/src/plugins/blog/api/plugin.ts +13 -141
- package/src/plugins/blog/client/plugin.tsx +2 -1
- package/src/plugins/blog/query-keys.ts +16 -13
- package/src/plugins/cms/__tests__/getters.test.ts +206 -0
- package/src/plugins/cms/api/getters.ts +244 -0
- package/src/plugins/cms/api/index.ts +5 -0
- package/src/plugins/cms/api/plugin.ts +50 -154
- package/src/plugins/cms/client/components/pages/content-editor-page.internal.tsx +1 -1
- package/src/plugins/cms/client/hooks/cms-hooks.tsx +3 -0
- package/src/plugins/cms/types.ts +1 -1
- package/src/plugins/form-builder/__tests__/getters.test.ts +159 -0
- package/src/plugins/form-builder/api/getters.ts +203 -0
- package/src/plugins/form-builder/api/index.ts +1 -0
- package/src/plugins/form-builder/api/plugin.ts +22 -115
- package/src/plugins/form-builder/client/components/pages/submissions-page.internal.tsx +1 -1
- package/src/plugins/form-builder/types.ts +2 -2
- package/src/plugins/kanban/__tests__/getters.test.ts +172 -0
- package/src/plugins/kanban/api/getters.ts +149 -0
- package/src/plugins/kanban/api/index.ts +1 -0
- package/src/plugins/kanban/api/plugin.ts +16 -146
- package/src/plugins/kanban/client/plugin.tsx +2 -1
- package/src/plugins/kanban/query-keys.ts +8 -5
- package/src/types.ts +44 -5
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/DayPicker.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/DayPicker.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarDay.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarDay.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/DateLib.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/DateLib.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Button.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Button.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/CaptionLabel.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/CaptionLabel.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Chevron.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Chevron.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Day.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Day.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DayButton.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DayButton.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Dropdown.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Dropdown.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DropdownNav.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DropdownNav.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Footer.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Footer.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Month.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Month.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthCaption.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthCaption.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthGrid.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthGrid.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Months.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Months.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Nav.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Nav.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/NextMonthButton.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/NextMonthButton.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Option.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Option.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Root.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Root.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Select.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Select.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Week.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Week.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumber.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumber.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekday.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekday.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekdays.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekdays.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weeks.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weeks.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/YearsDropdown.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/YearsDropdown.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/custom-components.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/custom-components.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatCaption.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatCaption.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatDay.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatDay.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getComponents.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getComponents.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDates.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDates.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDays.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDays.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFormatters.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFormatters.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getLabels.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getLabels.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonths.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonths.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeeks.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeeks.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelDayButton.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelDayButton.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGrid.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGrid.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGridcell.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGridcell.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNav.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNav.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNext.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNext.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelPrevious.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelPrevious.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekday.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekday.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/locale/en-US.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/locale/en-US.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/noonDateLib.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/noonDateLib.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useMulti.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useMulti.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useRange.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useRange.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useSingle.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useSingle.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useAnimation.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useAnimation.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useCalendar.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useCalendar.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useDayPicker.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useDayPicker.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useFocus.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useFocus.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useSelection.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/useSelection.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/addToRange.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/addToRange.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/toTimeZone.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/toTimeZone.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/typeguards.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-day-picker@9.13.0_react@19.2.0 → react-day-picker@9.13.2_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/typeguards.mjs +0 -0
- package/dist/shared/{stack.CcI4sYJP.d.ts → stack.BkYlUT_8.d.cts} +6 -6
- package/dist/shared/{stack.CcI4sYJP.d.cts → stack.BkYlUT_8.d.mts} +6 -6
- package/dist/shared/{stack.CcI4sYJP.d.mts → stack.BkYlUT_8.d.ts} +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useState, useCallback } from 'react';
|
|
2
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { useState, useCallback, useMemo } from 'react';
|
|
4
4
|
import { Button } from '../../button.mjs';
|
|
5
5
|
import { Input } from '../../input.mjs';
|
|
6
6
|
import { Label } from '../../label.mjs';
|
|
@@ -20,6 +20,7 @@ const VariablesPanel = ({
|
|
|
20
20
|
const [editingId, setEditingId] = useState(null);
|
|
21
21
|
const incrementRevision = useEditorStore((state) => state.incrementRevision);
|
|
22
22
|
const allowVariableEditing = useEditorStore((state) => state.allowVariableEditing);
|
|
23
|
+
const functionRegistry = useEditorStore((state) => state.functionRegistry);
|
|
23
24
|
const handleAddVariable = useCallback(
|
|
24
25
|
(name, type, defaultValue) => {
|
|
25
26
|
addVariable(name, type, defaultValue);
|
|
@@ -62,7 +63,8 @@ const VariablesPanel = ({
|
|
|
62
63
|
AddVariableForm,
|
|
63
64
|
{
|
|
64
65
|
onSave: handleAddVariable,
|
|
65
|
-
onCancel: handleSetIsNotAdding
|
|
66
|
+
onCancel: handleSetIsNotAdding,
|
|
67
|
+
functionRegistry
|
|
66
68
|
}
|
|
67
69
|
),
|
|
68
70
|
/* @__PURE__ */ jsx("div", { className: "space-y-2", children: variables.map((variable) => /* @__PURE__ */ jsx(
|
|
@@ -74,7 +76,8 @@ const VariablesPanel = ({
|
|
|
74
76
|
onSave: handleOnSave,
|
|
75
77
|
onCancel: handleOnCancel,
|
|
76
78
|
onDelete: handleOnDelete,
|
|
77
|
-
editVariables: allowVariableEditing
|
|
79
|
+
editVariables: allowVariableEditing,
|
|
80
|
+
functionRegistry
|
|
78
81
|
},
|
|
79
82
|
variable.id
|
|
80
83
|
)) }),
|
|
@@ -83,23 +86,37 @@ const VariablesPanel = ({
|
|
|
83
86
|
};
|
|
84
87
|
const AddVariableForm = ({
|
|
85
88
|
onSave,
|
|
86
|
-
onCancel
|
|
89
|
+
onCancel,
|
|
90
|
+
functionRegistry
|
|
87
91
|
}) => {
|
|
88
92
|
const [name, setName] = useState("");
|
|
89
93
|
const [type, setType] = useState("string");
|
|
90
94
|
const [defaultValue, setDefaultValue] = useState("");
|
|
91
95
|
const [errors, setErrors] = useState(EMPTY_OBJECT);
|
|
96
|
+
const functionOptions = useMemo(() => {
|
|
97
|
+
if (!functionRegistry) return [];
|
|
98
|
+
return Object.entries(functionRegistry).map(([id, def]) => ({
|
|
99
|
+
id,
|
|
100
|
+
name: def.name,
|
|
101
|
+
description: def.description
|
|
102
|
+
}));
|
|
103
|
+
}, [functionRegistry]);
|
|
104
|
+
const hasFunctions = functionOptions.length > 0;
|
|
92
105
|
const validateForm = useCallback(() => {
|
|
93
106
|
const newErrors = {};
|
|
94
107
|
if (!name.trim()) {
|
|
95
108
|
newErrors.name = "Name is required";
|
|
96
109
|
}
|
|
97
|
-
if (
|
|
110
|
+
if (type === "function") {
|
|
111
|
+
if (!defaultValue) {
|
|
112
|
+
newErrors.defaultValue = "Please select a function";
|
|
113
|
+
}
|
|
114
|
+
} else if (!defaultValue.trim()) {
|
|
98
115
|
newErrors.defaultValue = "Preview value is required";
|
|
99
116
|
}
|
|
100
117
|
setErrors(newErrors);
|
|
101
118
|
return Object.keys(newErrors).length === 0;
|
|
102
|
-
}, [name, defaultValue]);
|
|
119
|
+
}, [name, defaultValue, type]);
|
|
103
120
|
const handleSave = useCallback(() => {
|
|
104
121
|
if (!validateForm()) return;
|
|
105
122
|
let parsedValue = defaultValue;
|
|
@@ -122,7 +139,10 @@ const AddVariableForm = ({
|
|
|
122
139
|
[errors.name]
|
|
123
140
|
);
|
|
124
141
|
const handleTypeChange = useCallback(
|
|
125
|
-
(value) =>
|
|
142
|
+
(value) => {
|
|
143
|
+
setType(value);
|
|
144
|
+
setDefaultValue("");
|
|
145
|
+
},
|
|
126
146
|
[]
|
|
127
147
|
);
|
|
128
148
|
const handleDefaultValueChange = useCallback(
|
|
@@ -133,6 +153,14 @@ const AddVariableForm = ({
|
|
|
133
153
|
},
|
|
134
154
|
[errors.defaultValue]
|
|
135
155
|
);
|
|
156
|
+
const handleFunctionSelect = useCallback(
|
|
157
|
+
(value) => {
|
|
158
|
+
setDefaultValue(value);
|
|
159
|
+
if (errors.defaultValue)
|
|
160
|
+
setErrors((prev) => ({ ...prev, defaultValue: void 0 }));
|
|
161
|
+
},
|
|
162
|
+
[errors.defaultValue]
|
|
163
|
+
);
|
|
136
164
|
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
137
165
|
/* @__PURE__ */ jsx(CardHeader, { className: "pb-3", children: /* @__PURE__ */ jsx(CardTitle, { className: "text-sm", children: "Add New Variable" }) }),
|
|
138
166
|
/* @__PURE__ */ jsxs(CardContent, { className: "space-y-3", children: [
|
|
@@ -160,11 +188,25 @@ const AddVariableForm = ({
|
|
|
160
188
|
/* @__PURE__ */ jsxs(SelectContent, { children: [
|
|
161
189
|
/* @__PURE__ */ jsx(SelectItem, { value: "string", children: "String" }),
|
|
162
190
|
/* @__PURE__ */ jsx(SelectItem, { value: "number", children: "Number" }),
|
|
163
|
-
/* @__PURE__ */ jsx(SelectItem, { value: "boolean", children: "Boolean" })
|
|
191
|
+
/* @__PURE__ */ jsx(SelectItem, { value: "boolean", children: "Boolean" }),
|
|
192
|
+
hasFunctions && /* @__PURE__ */ jsx(SelectItem, { value: "function", children: "Function" })
|
|
164
193
|
] })
|
|
165
194
|
] })
|
|
166
195
|
] }),
|
|
167
|
-
/* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ jsx("div", { children: type === "function" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
197
|
+
/* @__PURE__ */ jsxs(Label, { htmlFor: "var-function", children: [
|
|
198
|
+
"Function ",
|
|
199
|
+
/* @__PURE__ */ jsx("span", { className: "text-red-500", children: "*" })
|
|
200
|
+
] }),
|
|
201
|
+
/* @__PURE__ */ jsxs(Select, { value: defaultValue, onValueChange: handleFunctionSelect, children: [
|
|
202
|
+
/* @__PURE__ */ jsx(SelectTrigger, { className: errors.defaultValue ? "border-red-500" : "", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a function..." }) }),
|
|
203
|
+
/* @__PURE__ */ jsx(SelectContent, { children: functionOptions.map((fn) => /* @__PURE__ */ jsx(SelectItem, { value: fn.id, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
204
|
+
/* @__PURE__ */ jsx("span", { children: fn.name }),
|
|
205
|
+
fn.description && /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: fn.description })
|
|
206
|
+
] }) }, fn.id)) })
|
|
207
|
+
] }),
|
|
208
|
+
errors.defaultValue && /* @__PURE__ */ jsx("p", { className: "text-sm text-red-500 mt-1", children: errors.defaultValue })
|
|
209
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
168
210
|
/* @__PURE__ */ jsxs(Label, { htmlFor: "var-default", children: [
|
|
169
211
|
"Preview Value ",
|
|
170
212
|
/* @__PURE__ */ jsx("span", { className: "text-red-500", children: "*" })
|
|
@@ -180,7 +222,7 @@ const AddVariableForm = ({
|
|
|
180
222
|
}
|
|
181
223
|
),
|
|
182
224
|
errors.defaultValue && /* @__PURE__ */ jsx("p", { className: "text-sm text-red-500 mt-1", children: errors.defaultValue })
|
|
183
|
-
] }),
|
|
225
|
+
] }) }),
|
|
184
226
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
185
227
|
/* @__PURE__ */ jsxs(Button, { size: "sm", onClick: handleSave, children: [
|
|
186
228
|
/* @__PURE__ */ jsx(Check, { className: "h-4 w-4 mr-2" }),
|
|
@@ -201,7 +243,8 @@ const VariableCard = ({
|
|
|
201
243
|
onSave,
|
|
202
244
|
onCancel,
|
|
203
245
|
onDelete,
|
|
204
|
-
editVariables
|
|
246
|
+
editVariables,
|
|
247
|
+
functionRegistry
|
|
205
248
|
}) => {
|
|
206
249
|
const [name, setName] = useState(variable.name);
|
|
207
250
|
const [type, setType] = useState(variable.type);
|
|
@@ -209,17 +252,35 @@ const VariableCard = ({
|
|
|
209
252
|
String(variable.defaultValue)
|
|
210
253
|
);
|
|
211
254
|
const [errors, setErrors] = useState(EMPTY_OBJECT);
|
|
255
|
+
const functionOptions = useMemo(() => {
|
|
256
|
+
if (!functionRegistry) return [];
|
|
257
|
+
return Object.entries(functionRegistry).map(([id, def]) => ({
|
|
258
|
+
id,
|
|
259
|
+
name: def.name,
|
|
260
|
+
description: def.description
|
|
261
|
+
}));
|
|
262
|
+
}, [functionRegistry]);
|
|
263
|
+
const hasFunctions = functionOptions.length > 0;
|
|
264
|
+
const getFunctionDisplayName = useCallback((funcId) => {
|
|
265
|
+
if (!functionRegistry) return funcId;
|
|
266
|
+
const fn = functionRegistry[funcId];
|
|
267
|
+
return fn ? fn.name : funcId;
|
|
268
|
+
}, [functionRegistry]);
|
|
212
269
|
const validateForm = useCallback(() => {
|
|
213
270
|
const newErrors = {};
|
|
214
271
|
if (!name.trim()) {
|
|
215
272
|
newErrors.name = "Name is required";
|
|
216
273
|
}
|
|
217
|
-
if (
|
|
274
|
+
if (type === "function") {
|
|
275
|
+
if (!defaultValue) {
|
|
276
|
+
newErrors.defaultValue = "Please select a function";
|
|
277
|
+
}
|
|
278
|
+
} else if (!defaultValue.trim()) {
|
|
218
279
|
newErrors.defaultValue = "Preview value is required";
|
|
219
280
|
}
|
|
220
281
|
setErrors(newErrors);
|
|
221
282
|
return Object.keys(newErrors).length === 0;
|
|
222
|
-
}, [name, defaultValue]);
|
|
283
|
+
}, [name, defaultValue, type]);
|
|
223
284
|
const handleSave = useCallback(() => {
|
|
224
285
|
if (!validateForm()) return;
|
|
225
286
|
let parsedValue = defaultValue;
|
|
@@ -242,7 +303,10 @@ const VariableCard = ({
|
|
|
242
303
|
[errors.name]
|
|
243
304
|
);
|
|
244
305
|
const handleTypeChange = useCallback(
|
|
245
|
-
(value) =>
|
|
306
|
+
(value) => {
|
|
307
|
+
setType(value);
|
|
308
|
+
setDefaultValue("");
|
|
309
|
+
},
|
|
246
310
|
[]
|
|
247
311
|
);
|
|
248
312
|
const handleDefaultValueChange = useCallback(
|
|
@@ -253,6 +317,14 @@ const VariableCard = ({
|
|
|
253
317
|
},
|
|
254
318
|
[errors.defaultValue]
|
|
255
319
|
);
|
|
320
|
+
const handleFunctionSelect = useCallback(
|
|
321
|
+
(value) => {
|
|
322
|
+
setDefaultValue(value);
|
|
323
|
+
if (errors.defaultValue)
|
|
324
|
+
setErrors((prev) => ({ ...prev, defaultValue: void 0 }));
|
|
325
|
+
},
|
|
326
|
+
[errors.defaultValue]
|
|
327
|
+
);
|
|
256
328
|
const handleOnEdit = useCallback(() => {
|
|
257
329
|
onEdit(variable.id);
|
|
258
330
|
}, [onEdit, variable.id]);
|
|
@@ -284,11 +356,25 @@ const VariableCard = ({
|
|
|
284
356
|
/* @__PURE__ */ jsxs(SelectContent, { children: [
|
|
285
357
|
/* @__PURE__ */ jsx(SelectItem, { value: "string", children: "String" }),
|
|
286
358
|
/* @__PURE__ */ jsx(SelectItem, { value: "number", children: "Number" }),
|
|
287
|
-
/* @__PURE__ */ jsx(SelectItem, { value: "boolean", children: "Boolean" })
|
|
359
|
+
/* @__PURE__ */ jsx(SelectItem, { value: "boolean", children: "Boolean" }),
|
|
360
|
+
hasFunctions && /* @__PURE__ */ jsx(SelectItem, { value: "function", children: "Function" })
|
|
288
361
|
] })
|
|
289
362
|
] })
|
|
290
363
|
] }),
|
|
291
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ jsx("div", { children: type === "function" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
365
|
+
/* @__PURE__ */ jsxs(Label, { htmlFor: `edit-function-${variable.id}`, children: [
|
|
366
|
+
"Function ",
|
|
367
|
+
/* @__PURE__ */ jsx("span", { className: "text-red-500", children: "*" })
|
|
368
|
+
] }),
|
|
369
|
+
/* @__PURE__ */ jsxs(Select, { value: defaultValue, onValueChange: handleFunctionSelect, children: [
|
|
370
|
+
/* @__PURE__ */ jsx(SelectTrigger, { className: errors.defaultValue ? "border-red-500" : "", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a function..." }) }),
|
|
371
|
+
/* @__PURE__ */ jsx(SelectContent, { children: functionOptions.map((fn) => /* @__PURE__ */ jsx(SelectItem, { value: fn.id, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
372
|
+
/* @__PURE__ */ jsx("span", { children: fn.name }),
|
|
373
|
+
fn.description && /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: fn.description })
|
|
374
|
+
] }) }, fn.id)) })
|
|
375
|
+
] }),
|
|
376
|
+
errors.defaultValue && /* @__PURE__ */ jsx("p", { className: "text-sm text-red-500 mt-1", children: errors.defaultValue })
|
|
377
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
292
378
|
/* @__PURE__ */ jsxs(Label, { htmlFor: `edit-default-${variable.id}`, children: [
|
|
293
379
|
"Preview Value ",
|
|
294
380
|
/* @__PURE__ */ jsx("span", { className: "text-red-500", children: "*" })
|
|
@@ -304,7 +390,7 @@ const VariableCard = ({
|
|
|
304
390
|
}
|
|
305
391
|
),
|
|
306
392
|
errors.defaultValue && /* @__PURE__ */ jsx("p", { className: "text-sm text-red-500 mt-1", children: errors.defaultValue })
|
|
307
|
-
] }),
|
|
393
|
+
] }) }),
|
|
308
394
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
309
395
|
/* @__PURE__ */ jsxs(Button, { size: "sm", onClick: handleSave, children: [
|
|
310
396
|
/* @__PURE__ */ jsx(Check, { className: "h-4 w-4 mr-2" }),
|
|
@@ -323,7 +409,7 @@ const VariableCard = ({
|
|
|
323
409
|
/* @__PURE__ */ jsx("span", { className: "font-medium", children: variable.name }),
|
|
324
410
|
/* @__PURE__ */ jsx("span", { className: "text-xs bg-muted px-2 py-1 rounded", children: variable.type })
|
|
325
411
|
] }),
|
|
326
|
-
/* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground mt-1", children: String(variable.defaultValue) })
|
|
412
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground mt-1", children: variable.type === "function" ? getFunctionDisplayName(String(variable.defaultValue)) : String(variable.defaultValue) })
|
|
327
413
|
] }),
|
|
328
414
|
editVariables && /* @__PURE__ */ jsxs("div", { className: "flex gap-1", children: [
|
|
329
415
|
/* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: handleOnEdit, children: /* @__PURE__ */ jsx(Edit2, { className: "h-4 w-4" }) }),
|
|
@@ -339,6 +425,8 @@ function getPlaceholderForType(type) {
|
|
|
339
425
|
return "0";
|
|
340
426
|
case "boolean":
|
|
341
427
|
return "true";
|
|
428
|
+
case "function":
|
|
429
|
+
return "Select a function...";
|
|
342
430
|
default:
|
|
343
431
|
return "";
|
|
344
432
|
}
|
|
@@ -15,7 +15,8 @@ const LayerRenderer = React__default.memo(function LayerRenderer2({
|
|
|
15
15
|
editorConfig,
|
|
16
16
|
componentRegistry,
|
|
17
17
|
variables,
|
|
18
|
-
variableValues
|
|
18
|
+
variableValues,
|
|
19
|
+
functionRegistry
|
|
19
20
|
}) {
|
|
20
21
|
return /* @__PURE__ */ jsxRuntime.jsx(devProfiler.DevProfiler, { id: "LayerRenderer", threshold: 30, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
21
22
|
renderUtils.RenderLayer,
|
|
@@ -24,7 +25,8 @@ const LayerRenderer = React__default.memo(function LayerRenderer2({
|
|
|
24
25
|
editorConfig,
|
|
25
26
|
componentRegistry,
|
|
26
27
|
variables,
|
|
27
|
-
variableValues
|
|
28
|
+
variableValues,
|
|
29
|
+
functionRegistry
|
|
28
30
|
}
|
|
29
31
|
) }) });
|
|
30
32
|
});
|
|
@@ -9,7 +9,8 @@ const LayerRenderer = React__default.memo(function LayerRenderer2({
|
|
|
9
9
|
editorConfig,
|
|
10
10
|
componentRegistry,
|
|
11
11
|
variables,
|
|
12
|
-
variableValues
|
|
12
|
+
variableValues,
|
|
13
|
+
functionRegistry
|
|
13
14
|
}) {
|
|
14
15
|
return /* @__PURE__ */ jsx(DevProfiler, { id: "LayerRenderer", threshold: 30, children: /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx(
|
|
15
16
|
RenderLayer,
|
|
@@ -18,7 +19,8 @@ const LayerRenderer = React__default.memo(function LayerRenderer2({
|
|
|
18
19
|
editorConfig,
|
|
19
20
|
componentRegistry,
|
|
20
21
|
variables,
|
|
21
|
-
variableValues
|
|
22
|
+
variableValues,
|
|
23
|
+
functionRegistry
|
|
22
24
|
}
|
|
23
25
|
) }) });
|
|
24
26
|
});
|
|
@@ -9,7 +9,9 @@ function useKeyboardShortcuts(combinations) {
|
|
|
9
9
|
const { keys: { ctrlKey, metaKey, shiftKey, altKey }, key, handler } = combo;
|
|
10
10
|
const isMatch = (ctrlKey === void 0 || event.ctrlKey === ctrlKey) && (metaKey === void 0 || event.metaKey === metaKey) && (shiftKey === void 0 || event.shiftKey === shiftKey) && (altKey === void 0 || event.altKey === altKey) && event.key.toLowerCase() === key.toLowerCase();
|
|
11
11
|
if (isMatch) {
|
|
12
|
-
|
|
12
|
+
if (combo.preventDefault !== false) {
|
|
13
|
+
event.preventDefault();
|
|
14
|
+
}
|
|
13
15
|
handler(event);
|
|
14
16
|
}
|
|
15
17
|
});
|
|
@@ -7,7 +7,9 @@ function useKeyboardShortcuts(combinations) {
|
|
|
7
7
|
const { keys: { ctrlKey, metaKey, shiftKey, altKey }, key, handler } = combo;
|
|
8
8
|
const isMatch = (ctrlKey === void 0 || event.ctrlKey === ctrlKey) && (metaKey === void 0 || event.metaKey === metaKey) && (shiftKey === void 0 || event.shiftKey === shiftKey) && (altKey === void 0 || event.altKey === altKey) && event.key.toLowerCase() === key.toLowerCase();
|
|
9
9
|
if (isMatch) {
|
|
10
|
-
|
|
10
|
+
if (combo.preventDefault !== false) {
|
|
11
|
+
event.preventDefault();
|
|
12
|
+
}
|
|
11
13
|
handler(event);
|
|
12
14
|
}
|
|
13
15
|
});
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const React = require('react');
|
|
4
|
+
const layerStore = require('../store/layer-store.cjs');
|
|
5
|
+
const editorStore = require('../store/editor-store.cjs');
|
|
6
|
+
const layerUtils = require('../store/layer-utils.cjs');
|
|
7
|
+
const pasteValidation = require('../utils/paste-validation.cjs');
|
|
8
|
+
|
|
9
|
+
function useGlobalLayerActions(layerId) {
|
|
10
|
+
const findLayerById = layerStore.useLayerStore((state) => state.findLayerById);
|
|
11
|
+
const removeLayer = layerStore.useLayerStore((state) => state.removeLayer);
|
|
12
|
+
const duplicateLayer = layerStore.useLayerStore((state) => state.duplicateLayer);
|
|
13
|
+
const addLayerDirect = layerStore.useLayerStore((state) => state.addLayerDirect);
|
|
14
|
+
const isLayerAPage = layerStore.useLayerStore((state) => state.isLayerAPage);
|
|
15
|
+
const componentRegistry = editorStore.useEditorStore((state) => state.registry);
|
|
16
|
+
const allowPagesCreation = editorStore.useEditorStore((state) => state.allowPagesCreation);
|
|
17
|
+
const allowPagesDeletion = editorStore.useEditorStore((state) => state.allowPagesDeletion);
|
|
18
|
+
const setClipboard = editorStore.useEditorStore((state) => state.setClipboard);
|
|
19
|
+
const clearClipboard = editorStore.useEditorStore((state) => state.clearClipboard);
|
|
20
|
+
const getEffectiveLayerId = React.useCallback(
|
|
21
|
+
() => layerId ?? layerStore.useLayerStore.getState().selectedLayerId,
|
|
22
|
+
[layerId]
|
|
23
|
+
);
|
|
24
|
+
const handleCopy = React.useCallback(() => {
|
|
25
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
26
|
+
if (!effectiveLayerId) return;
|
|
27
|
+
const layer = findLayerById(effectiveLayerId);
|
|
28
|
+
if (!layer) return;
|
|
29
|
+
const clonedLayer = layerUtils.duplicateWithNewIdsAndName(layer, false);
|
|
30
|
+
setClipboard({
|
|
31
|
+
layer: clonedLayer,
|
|
32
|
+
isCut: false,
|
|
33
|
+
sourceLayerId: effectiveLayerId
|
|
34
|
+
});
|
|
35
|
+
}, [getEffectiveLayerId, findLayerById, setClipboard]);
|
|
36
|
+
const handleCut = React.useCallback(() => {
|
|
37
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
38
|
+
if (!effectiveLayerId) return;
|
|
39
|
+
const layer = findLayerById(effectiveLayerId);
|
|
40
|
+
if (!layer) return;
|
|
41
|
+
const isPage2 = isLayerAPage(effectiveLayerId);
|
|
42
|
+
if (isPage2 && !allowPagesDeletion) return;
|
|
43
|
+
const clonedLayer = layerUtils.duplicateWithNewIdsAndName(layer, false);
|
|
44
|
+
setClipboard({
|
|
45
|
+
layer: clonedLayer,
|
|
46
|
+
isCut: true,
|
|
47
|
+
sourceLayerId: effectiveLayerId
|
|
48
|
+
});
|
|
49
|
+
removeLayer(effectiveLayerId);
|
|
50
|
+
}, [getEffectiveLayerId, findLayerById, isLayerAPage, allowPagesDeletion, removeLayer, setClipboard]);
|
|
51
|
+
const handlePaste = React.useCallback(() => {
|
|
52
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
53
|
+
if (!effectiveLayerId) return;
|
|
54
|
+
const currentClipboard = editorStore.useEditorStore.getState().clipboard;
|
|
55
|
+
if (!currentClipboard.layer) return;
|
|
56
|
+
if (!pasteValidation.canPasteLayer(currentClipboard.layer, effectiveLayerId, componentRegistry, findLayerById)) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const layerToAdd = layerUtils.duplicateWithNewIdsAndName(currentClipboard.layer, false);
|
|
60
|
+
addLayerDirect(layerToAdd, effectiveLayerId);
|
|
61
|
+
if (currentClipboard.isCut) {
|
|
62
|
+
clearClipboard();
|
|
63
|
+
}
|
|
64
|
+
}, [getEffectiveLayerId, componentRegistry, findLayerById, addLayerDirect, clearClipboard]);
|
|
65
|
+
const handleDelete = React.useCallback(() => {
|
|
66
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
67
|
+
if (!effectiveLayerId) return;
|
|
68
|
+
const isPage2 = isLayerAPage(effectiveLayerId);
|
|
69
|
+
if (isPage2 && !allowPagesDeletion) return;
|
|
70
|
+
removeLayer(effectiveLayerId);
|
|
71
|
+
}, [getEffectiveLayerId, isLayerAPage, allowPagesDeletion, removeLayer]);
|
|
72
|
+
const handleDuplicate = React.useCallback(() => {
|
|
73
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
74
|
+
if (!effectiveLayerId) return;
|
|
75
|
+
const isPage2 = isLayerAPage(effectiveLayerId);
|
|
76
|
+
if (isPage2 && !allowPagesCreation) return;
|
|
77
|
+
duplicateLayer(effectiveLayerId);
|
|
78
|
+
}, [getEffectiveLayerId, isLayerAPage, allowPagesCreation, duplicateLayer]);
|
|
79
|
+
const getCanPaste = React.useCallback(
|
|
80
|
+
() => {
|
|
81
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
82
|
+
if (!effectiveLayerId) return false;
|
|
83
|
+
const { clipboard } = editorStore.useEditorStore.getState();
|
|
84
|
+
if (!clipboard.layer) return false;
|
|
85
|
+
return pasteValidation.canPasteLayer(clipboard.layer, effectiveLayerId, componentRegistry, findLayerById);
|
|
86
|
+
},
|
|
87
|
+
[getEffectiveLayerId, componentRegistry, findLayerById]
|
|
88
|
+
);
|
|
89
|
+
const effectiveLayerIdForPermissions = getEffectiveLayerId();
|
|
90
|
+
const isPage = effectiveLayerIdForPermissions ? isLayerAPage(effectiveLayerIdForPermissions) : false;
|
|
91
|
+
const canDuplicate = !isPage || allowPagesCreation;
|
|
92
|
+
const canDelete = !isPage || allowPagesDeletion;
|
|
93
|
+
const canCut = canDelete;
|
|
94
|
+
return {
|
|
95
|
+
getCanPaste,
|
|
96
|
+
canDuplicate,
|
|
97
|
+
canDelete,
|
|
98
|
+
canCut,
|
|
99
|
+
handleCopy,
|
|
100
|
+
handleCut,
|
|
101
|
+
handlePaste,
|
|
102
|
+
handleDelete,
|
|
103
|
+
handleDuplicate
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
exports.useGlobalLayerActions = useGlobalLayerActions;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useLayerStore } from '../store/layer-store.mjs';
|
|
3
|
+
import { useEditorStore } from '../store/editor-store.mjs';
|
|
4
|
+
import { duplicateWithNewIdsAndName } from '../store/layer-utils.mjs';
|
|
5
|
+
import { canPasteLayer } from '../utils/paste-validation.mjs';
|
|
6
|
+
|
|
7
|
+
function useGlobalLayerActions(layerId) {
|
|
8
|
+
const findLayerById = useLayerStore((state) => state.findLayerById);
|
|
9
|
+
const removeLayer = useLayerStore((state) => state.removeLayer);
|
|
10
|
+
const duplicateLayer = useLayerStore((state) => state.duplicateLayer);
|
|
11
|
+
const addLayerDirect = useLayerStore((state) => state.addLayerDirect);
|
|
12
|
+
const isLayerAPage = useLayerStore((state) => state.isLayerAPage);
|
|
13
|
+
const componentRegistry = useEditorStore((state) => state.registry);
|
|
14
|
+
const allowPagesCreation = useEditorStore((state) => state.allowPagesCreation);
|
|
15
|
+
const allowPagesDeletion = useEditorStore((state) => state.allowPagesDeletion);
|
|
16
|
+
const setClipboard = useEditorStore((state) => state.setClipboard);
|
|
17
|
+
const clearClipboard = useEditorStore((state) => state.clearClipboard);
|
|
18
|
+
const getEffectiveLayerId = useCallback(
|
|
19
|
+
() => layerId ?? useLayerStore.getState().selectedLayerId,
|
|
20
|
+
[layerId]
|
|
21
|
+
);
|
|
22
|
+
const handleCopy = useCallback(() => {
|
|
23
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
24
|
+
if (!effectiveLayerId) return;
|
|
25
|
+
const layer = findLayerById(effectiveLayerId);
|
|
26
|
+
if (!layer) return;
|
|
27
|
+
const clonedLayer = duplicateWithNewIdsAndName(layer, false);
|
|
28
|
+
setClipboard({
|
|
29
|
+
layer: clonedLayer,
|
|
30
|
+
isCut: false,
|
|
31
|
+
sourceLayerId: effectiveLayerId
|
|
32
|
+
});
|
|
33
|
+
}, [getEffectiveLayerId, findLayerById, setClipboard]);
|
|
34
|
+
const handleCut = useCallback(() => {
|
|
35
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
36
|
+
if (!effectiveLayerId) return;
|
|
37
|
+
const layer = findLayerById(effectiveLayerId);
|
|
38
|
+
if (!layer) return;
|
|
39
|
+
const isPage2 = isLayerAPage(effectiveLayerId);
|
|
40
|
+
if (isPage2 && !allowPagesDeletion) return;
|
|
41
|
+
const clonedLayer = duplicateWithNewIdsAndName(layer, false);
|
|
42
|
+
setClipboard({
|
|
43
|
+
layer: clonedLayer,
|
|
44
|
+
isCut: true,
|
|
45
|
+
sourceLayerId: effectiveLayerId
|
|
46
|
+
});
|
|
47
|
+
removeLayer(effectiveLayerId);
|
|
48
|
+
}, [getEffectiveLayerId, findLayerById, isLayerAPage, allowPagesDeletion, removeLayer, setClipboard]);
|
|
49
|
+
const handlePaste = useCallback(() => {
|
|
50
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
51
|
+
if (!effectiveLayerId) return;
|
|
52
|
+
const currentClipboard = useEditorStore.getState().clipboard;
|
|
53
|
+
if (!currentClipboard.layer) return;
|
|
54
|
+
if (!canPasteLayer(currentClipboard.layer, effectiveLayerId, componentRegistry, findLayerById)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const layerToAdd = duplicateWithNewIdsAndName(currentClipboard.layer, false);
|
|
58
|
+
addLayerDirect(layerToAdd, effectiveLayerId);
|
|
59
|
+
if (currentClipboard.isCut) {
|
|
60
|
+
clearClipboard();
|
|
61
|
+
}
|
|
62
|
+
}, [getEffectiveLayerId, componentRegistry, findLayerById, addLayerDirect, clearClipboard]);
|
|
63
|
+
const handleDelete = useCallback(() => {
|
|
64
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
65
|
+
if (!effectiveLayerId) return;
|
|
66
|
+
const isPage2 = isLayerAPage(effectiveLayerId);
|
|
67
|
+
if (isPage2 && !allowPagesDeletion) return;
|
|
68
|
+
removeLayer(effectiveLayerId);
|
|
69
|
+
}, [getEffectiveLayerId, isLayerAPage, allowPagesDeletion, removeLayer]);
|
|
70
|
+
const handleDuplicate = useCallback(() => {
|
|
71
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
72
|
+
if (!effectiveLayerId) return;
|
|
73
|
+
const isPage2 = isLayerAPage(effectiveLayerId);
|
|
74
|
+
if (isPage2 && !allowPagesCreation) return;
|
|
75
|
+
duplicateLayer(effectiveLayerId);
|
|
76
|
+
}, [getEffectiveLayerId, isLayerAPage, allowPagesCreation, duplicateLayer]);
|
|
77
|
+
const getCanPaste = useCallback(
|
|
78
|
+
() => {
|
|
79
|
+
const effectiveLayerId = getEffectiveLayerId();
|
|
80
|
+
if (!effectiveLayerId) return false;
|
|
81
|
+
const { clipboard } = useEditorStore.getState();
|
|
82
|
+
if (!clipboard.layer) return false;
|
|
83
|
+
return canPasteLayer(clipboard.layer, effectiveLayerId, componentRegistry, findLayerById);
|
|
84
|
+
},
|
|
85
|
+
[getEffectiveLayerId, componentRegistry, findLayerById]
|
|
86
|
+
);
|
|
87
|
+
const effectiveLayerIdForPermissions = getEffectiveLayerId();
|
|
88
|
+
const isPage = effectiveLayerIdForPermissions ? isLayerAPage(effectiveLayerIdForPermissions) : false;
|
|
89
|
+
const canDuplicate = !isPage || allowPagesCreation;
|
|
90
|
+
const canDelete = !isPage || allowPagesDeletion;
|
|
91
|
+
const canCut = canDelete;
|
|
92
|
+
return {
|
|
93
|
+
getCanPaste,
|
|
94
|
+
canDuplicate,
|
|
95
|
+
canDelete,
|
|
96
|
+
canCut,
|
|
97
|
+
handleCopy,
|
|
98
|
+
handleCut,
|
|
99
|
+
handlePaste,
|
|
100
|
+
handleDelete,
|
|
101
|
+
handleDuplicate
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { useGlobalLayerActions };
|
|
@@ -45,8 +45,9 @@ const classNameFieldOverrides = (layer) => {
|
|
|
45
45
|
)
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
|
-
const childrenFieldOverrides = (layer) => {
|
|
48
|
+
const childrenFieldOverrides = (layer, allowVariableBinding = true) => {
|
|
49
49
|
return {
|
|
50
|
+
renderParent: allowVariableBinding ? ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(ChildrenVariableBindingWrapper, { children }) : void 0,
|
|
50
51
|
fieldType: ({
|
|
51
52
|
label,
|
|
52
53
|
isRequired,
|
|
@@ -90,7 +91,7 @@ const iconNameFieldOverrides = (layer) => {
|
|
|
90
91
|
)
|
|
91
92
|
};
|
|
92
93
|
};
|
|
93
|
-
const childrenAsTextareaFieldOverrides = (layer, allowVariableBinding =
|
|
94
|
+
const childrenAsTextareaFieldOverrides = (layer, allowVariableBinding = true) => {
|
|
94
95
|
return {
|
|
95
96
|
renderParent: allowVariableBinding ? ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(ChildrenVariableBindingWrapper, { children }) : void 0,
|
|
96
97
|
fieldType: ({
|
|
@@ -117,7 +118,7 @@ const childrenAsTextareaFieldOverrides = (layer, allowVariableBinding = false) =
|
|
|
117
118
|
)
|
|
118
119
|
};
|
|
119
120
|
};
|
|
120
|
-
const childrenAsTipTapFieldOverrides = (layer, allowVariableBinding =
|
|
121
|
+
const childrenAsTipTapFieldOverrides = (layer, allowVariableBinding = true) => {
|
|
121
122
|
return {
|
|
122
123
|
renderParent: allowVariableBinding ? ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(ChildrenVariableBindingWrapper, { children }) : void 0,
|
|
123
124
|
fieldType: ({
|
|
@@ -155,13 +156,13 @@ const childrenAsTipTapFieldOverrides = (layer, allowVariableBinding = false) =>
|
|
|
155
156
|
};
|
|
156
157
|
};
|
|
157
158
|
const memoizedCommonFieldOverrides = /* @__PURE__ */ new Map();
|
|
158
|
-
const commonFieldOverrides = (allowBinding =
|
|
159
|
+
const commonFieldOverrides = (allowBinding = true) => {
|
|
159
160
|
if (memoizedCommonFieldOverrides.has(allowBinding)) {
|
|
160
161
|
return memoizedCommonFieldOverrides.get(allowBinding);
|
|
161
162
|
}
|
|
162
163
|
const overrides = {
|
|
163
164
|
className: (layer) => classNameFieldOverrides(),
|
|
164
|
-
children: (layer) => childrenFieldOverrides(layer)
|
|
165
|
+
children: (layer) => childrenFieldOverrides(layer, allowBinding)
|
|
165
166
|
};
|
|
166
167
|
memoizedCommonFieldOverrides.set(allowBinding, overrides);
|
|
167
168
|
return overrides;
|
|
@@ -214,7 +215,7 @@ function ChildrenVariableBindingWrapper({
|
|
|
214
215
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 w-full", children: [
|
|
215
216
|
/* @__PURE__ */ jsxRuntime.jsx(label.Label, { children: "Children" }),
|
|
216
217
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2 w-full", children: [
|
|
217
|
-
/* @__PURE__ */ jsxRuntime.jsx(card.Card, { className: "w-full", children: /* @__PURE__ */ jsxRuntime.jsx(card.CardContent, { className: "py-1 px-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
218
|
+
/* @__PURE__ */ jsxRuntime.jsx(card.Card, { className: "w-full overflow-hidden min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(card.CardContent, { className: "py-1 px-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
218
219
|
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Link, { className: "h-4 w-4 flex-shrink-0" }),
|
|
219
220
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col min-w-0 flex-1", children: [
|
|
220
221
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
@@ -232,6 +233,7 @@ function ChildrenVariableBindingWrapper({
|
|
|
232
233
|
variant: "outline",
|
|
233
234
|
onClick: handleUnbind,
|
|
234
235
|
className: "px-3 h-10",
|
|
236
|
+
"data-testid": "unbind-children-button",
|
|
235
237
|
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Unlink, { className: "h-4 w-4" })
|
|
236
238
|
}
|
|
237
239
|
) }),
|
|
@@ -245,7 +247,7 @@ function ChildrenVariableBindingWrapper({
|
|
|
245
247
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children }),
|
|
246
248
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [
|
|
247
249
|
/* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
248
|
-
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", size: "sm", className: "px-3 h-10", children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Link, { className: "h-4 w-4 my-1" }) }) }) }),
|
|
250
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", size: "sm", className: "px-3 h-10", "data-testid": "bind-children-button", children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Link, { className: "h-4 w-4 my-1" }) }) }) }),
|
|
249
251
|
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: "Bind Children to Variable" })
|
|
250
252
|
] }),
|
|
251
253
|
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent, { align: "end", className: "w-56", children: [
|