@btst/stack 2.0.0 → 2.1.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.
Files changed (288) hide show
  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
  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
  3. package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-interface.cjs +32 -0
  4. package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-interface.mjs +32 -0
  5. package/dist/packages/ui/src/components/calendar.cjs +2 -2
  6. package/dist/packages/ui/src/components/calendar.mjs +2 -2
  7. package/dist/packages/ui/src/components/sonner.cjs +34 -0
  8. package/dist/packages/ui/src/components/sonner.mjs +32 -0
  9. package/dist/packages/ui/src/components/ui-builder/components/code-panel.cjs +3 -2
  10. package/dist/packages/ui/src/components/ui-builder/components/code-panel.mjs +3 -2
  11. package/dist/packages/ui/src/components/ui-builder/index.cjs +10 -4
  12. package/dist/packages/ui/src/components/ui-builder/index.mjs +10 -4
  13. package/dist/packages/ui/src/components/ui-builder/internal/components/element-selector.cjs +22 -23
  14. package/dist/packages/ui/src/components/ui-builder/internal/components/element-selector.mjs +22 -23
  15. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu-portal.cjs +261 -0
  16. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu-portal.mjs +255 -0
  17. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu.cjs +125 -0
  18. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu.mjs +119 -0
  19. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-menu.cjs +6 -17
  20. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-menu.mjs +7 -18
  21. package/dist/packages/ui/src/components/ui-builder/internal/components/nav.cjs +23 -18
  22. package/dist/packages/ui/src/components/ui-builder/internal/components/nav.mjs +23 -18
  23. package/dist/packages/ui/src/components/ui-builder/internal/components/tree-row-node.cjs +8 -23
  24. package/dist/packages/ui/src/components/ui-builder/internal/components/tree-row-node.mjs +9 -24
  25. package/dist/packages/ui/src/components/ui-builder/internal/editor-panel.cjs +9 -41
  26. package/dist/packages/ui/src/components/ui-builder/internal/editor-panel.mjs +9 -41
  27. package/dist/packages/ui/src/components/ui-builder/internal/layers-panel.cjs +7 -16
  28. package/dist/packages/ui/src/components/ui-builder/internal/layers-panel.mjs +7 -16
  29. package/dist/packages/ui/src/components/ui-builder/internal/utils/render-utils.cjs +16 -11
  30. package/dist/packages/ui/src/components/ui-builder/internal/utils/render-utils.mjs +16 -11
  31. package/dist/packages/ui/src/components/ui-builder/internal/utils/templates.cjs +260 -20
  32. package/dist/packages/ui/src/components/ui-builder/internal/utils/templates.mjs +260 -20
  33. package/dist/packages/ui/src/components/ui-builder/internal/variables-panel.cjs +105 -17
  34. package/dist/packages/ui/src/components/ui-builder/internal/variables-panel.mjs +107 -19
  35. package/dist/packages/ui/src/components/ui-builder/layer-renderer.cjs +4 -2
  36. package/dist/packages/ui/src/components/ui-builder/layer-renderer.mjs +4 -2
  37. package/dist/packages/ui/src/hooks/use-keyboard-shortcuts.cjs +3 -1
  38. package/dist/packages/ui/src/hooks/use-keyboard-shortcuts.mjs +3 -1
  39. package/dist/packages/ui/src/lib/ui-builder/hooks/use-layer-actions.cjs +107 -0
  40. package/dist/packages/ui/src/lib/ui-builder/hooks/use-layer-actions.mjs +105 -0
  41. package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.cjs +9 -7
  42. package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.mjs +9 -7
  43. package/dist/packages/ui/src/lib/ui-builder/shortcuts/shortcut-registry.cjs +71 -0
  44. package/dist/packages/ui/src/lib/ui-builder/shortcuts/shortcut-registry.mjs +68 -0
  45. package/dist/packages/ui/src/lib/ui-builder/store/editor-store.cjs +48 -3
  46. package/dist/packages/ui/src/lib/ui-builder/store/editor-store.mjs +48 -3
  47. package/dist/packages/ui/src/lib/ui-builder/store/layer-store.cjs +4 -1
  48. package/dist/packages/ui/src/lib/ui-builder/store/layer-store.mjs +4 -1
  49. package/dist/packages/ui/src/lib/ui-builder/store/schema-utils.cjs +8 -0
  50. package/dist/packages/ui/src/lib/ui-builder/store/schema-utils.mjs +8 -1
  51. package/dist/packages/ui/src/lib/ui-builder/utils/paste-validation.cjs +25 -0
  52. package/dist/packages/ui/src/lib/ui-builder/utils/paste-validation.mjs +23 -0
  53. package/dist/packages/ui/src/lib/ui-builder/utils/variable-resolver.cjs +42 -3
  54. package/dist/packages/ui/src/lib/ui-builder/utils/variable-resolver.mjs +42 -3
  55. package/dist/plugins/blog/api/index.d.cts +1 -1
  56. package/dist/plugins/blog/api/index.d.mts +1 -1
  57. package/dist/plugins/blog/api/index.d.ts +1 -1
  58. package/dist/plugins/blog/client/hooks/index.d.cts +4 -4
  59. package/dist/plugins/blog/client/hooks/index.d.mts +4 -4
  60. package/dist/plugins/blog/client/hooks/index.d.ts +4 -4
  61. package/dist/plugins/blog/client/index.d.cts +1 -1
  62. package/dist/plugins/blog/client/index.d.mts +1 -1
  63. package/dist/plugins/blog/client/index.d.ts +1 -1
  64. package/dist/plugins/blog/query-keys.d.cts +4 -4
  65. package/dist/plugins/blog/query-keys.d.mts +4 -4
  66. package/dist/plugins/blog/query-keys.d.ts +4 -4
  67. package/dist/plugins/cms/api/index.d.cts +1 -1
  68. package/dist/plugins/cms/api/index.d.mts +1 -1
  69. package/dist/plugins/cms/api/index.d.ts +1 -1
  70. package/dist/plugins/ui-builder/client/components/index.d.cts +1 -1
  71. package/dist/plugins/ui-builder/client/components/index.d.mts +1 -1
  72. package/dist/plugins/ui-builder/client/components/index.d.ts +1 -1
  73. package/dist/plugins/ui-builder/client/hooks/index.d.cts +2 -2
  74. package/dist/plugins/ui-builder/client/hooks/index.d.mts +2 -2
  75. package/dist/plugins/ui-builder/client/hooks/index.d.ts +2 -2
  76. package/dist/plugins/ui-builder/client/index.d.cts +16 -6
  77. package/dist/plugins/ui-builder/client/index.d.mts +16 -6
  78. package/dist/plugins/ui-builder/client/index.d.ts +16 -6
  79. package/dist/plugins/ui-builder/index.d.cts +2 -2
  80. package/dist/plugins/ui-builder/index.d.mts +2 -2
  81. package/dist/plugins/ui-builder/index.d.ts +2 -2
  82. package/dist/shared/{stack.DYCFcnkL.d.mts → stack.6fUOjLs9.d.mts} +1 -1
  83. package/dist/shared/{stack.BdJFrdyt.d.cts → stack.B-YHz18S.d.cts} +2 -2
  84. package/dist/shared/{stack.kFbDspnF.d.ts → stack.C-Ptrz8s.d.ts} +1 -1
  85. package/dist/shared/{stack.BYysGdHl.d.cts → stack.C-WUPMT6.d.cts} +1 -1
  86. package/dist/shared/{stack.ChVuHi5e.d.mts → stack.D1DMlJp-.d.mts} +2 -2
  87. package/dist/shared/{stack.EhM4pmtN.d.ts → stack.GygI_T3X.d.ts} +2 -2
  88. package/package.json +1 -1
  89. package/src/plugins/ai-chat/client/components/chat-interface.tsx +64 -1
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. 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
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. 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
  158. 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
  159. 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
  160. 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
  161. 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
  162. 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
  163. 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
  164. 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
  165. 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
  166. 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
  167. 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
  168. 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
  169. 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
  170. 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
  171. 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
  172. 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
  173. 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
  174. 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
  175. 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
  176. 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
  177. 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
  178. 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
  179. 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
  180. 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
  181. 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
  182. 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
  183. 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
  184. 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
  185. 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
  186. 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
  187. 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
  188. 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
  189. 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
  190. 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
  191. 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
  192. 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
  193. 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
  194. 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
  195. 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
  196. 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
  197. 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
  198. 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
  199. 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
  200. 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
  201. 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
  202. 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
  203. 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
  204. 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
  205. 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
  206. 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
  207. 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
  208. 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
  209. 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
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. 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
  217. 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
  218. 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
  219. 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
  220. 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
  221. 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
  222. 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
  223. 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
  224. 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
  225. 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
  226. 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
  227. 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
  228. 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
  229. 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
  230. 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
  231. 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
  232. 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
  233. 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
  234. 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
  235. 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
  236. 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
  237. 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
  238. 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
  239. 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
  240. 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
  241. 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
  242. 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
  243. 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
  244. 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
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. 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
  251. 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
  252. 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
  253. 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
  254. 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
  255. 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
  256. 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
  257. 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
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. 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
  269. 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
  270. 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
  271. 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
  272. 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
  273. 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
  274. 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
  275. 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
  276. 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
  277. 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
  278. 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
  279. 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
  280. 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
  281. 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
  282. 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
  283. 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
  284. 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
  285. 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
  286. package/dist/shared/{stack.CcI4sYJP.d.ts → stack.CbuN2zVV.d.cts} +3 -3
  287. package/dist/shared/{stack.CcI4sYJP.d.cts → stack.CbuN2zVV.d.mts} +3 -3
  288. package/dist/shared/{stack.CcI4sYJP.d.mts → stack.CbuN2zVV.d.ts} +3 -3
@@ -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 (!defaultValue.trim()) {
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) => setType(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__ */ jsxs("div", { children: [
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 (!defaultValue.trim()) {
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) => setType(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__ */ jsxs("div", { children: [
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
- event.preventDefault();
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
- event.preventDefault();
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 = false) => {
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 = false) => {
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 = false) => {
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: [