@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.
Files changed (442) hide show
  1. package/dist/api/index.cjs +9 -1
  2. package/dist/api/index.d.cts +4 -4
  3. package/dist/api/index.d.mts +4 -4
  4. package/dist/api/index.d.ts +4 -4
  5. package/dist/api/index.mjs +9 -1
  6. package/dist/client/index.d.cts +2 -2
  7. package/dist/client/index.d.mts +2 -2
  8. package/dist/client/index.d.ts +2 -2
  9. package/dist/index.d.cts +1 -1
  10. package/dist/index.d.mts +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/node_modules/.pnpm/{react-day-picker@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
  13. package/dist/node_modules/.pnpm/{react-day-picker@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
  14. package/dist/packages/stack/src/plugins/ai-chat/api/getters.cjs +42 -0
  15. package/dist/packages/stack/src/plugins/ai-chat/api/getters.mjs +39 -0
  16. package/dist/packages/stack/src/plugins/ai-chat/api/plugin.cjs +5 -0
  17. package/dist/packages/stack/src/plugins/ai-chat/api/plugin.mjs +5 -0
  18. package/dist/packages/stack/src/plugins/blog/api/getters.cjs +131 -0
  19. package/dist/packages/stack/src/plugins/blog/api/getters.mjs +127 -0
  20. package/dist/packages/stack/src/plugins/blog/api/plugin.cjs +9 -107
  21. package/dist/packages/stack/src/plugins/blog/api/plugin.mjs +9 -107
  22. package/dist/packages/stack/src/plugins/blog/client/plugin.cjs +1 -1
  23. package/dist/packages/stack/src/plugins/blog/client/plugin.mjs +1 -1
  24. package/dist/packages/stack/src/plugins/cms/api/getters.cjs +146 -0
  25. package/dist/packages/stack/src/plugins/cms/api/getters.mjs +138 -0
  26. package/dist/packages/stack/src/plugins/cms/api/plugin.cjs +560 -622
  27. package/dist/packages/stack/src/plugins/cms/api/plugin.mjs +559 -621
  28. package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.internal.cjs +1 -1
  29. package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.internal.mjs +1 -1
  30. package/dist/packages/stack/src/plugins/cms/client/hooks/cms-hooks.cjs +6 -3
  31. package/dist/packages/stack/src/plugins/cms/client/hooks/cms-hooks.mjs +6 -3
  32. package/dist/packages/stack/src/plugins/form-builder/api/getters.cjs +111 -0
  33. package/dist/packages/stack/src/plugins/form-builder/api/getters.mjs +104 -0
  34. package/dist/packages/stack/src/plugins/form-builder/api/plugin.cjs +16 -88
  35. package/dist/packages/stack/src/plugins/form-builder/api/plugin.mjs +12 -84
  36. package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.cjs +1 -1
  37. package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.mjs +1 -1
  38. package/dist/packages/stack/src/plugins/kanban/api/getters.cjs +84 -0
  39. package/dist/packages/stack/src/plugins/kanban/api/getters.mjs +81 -0
  40. package/dist/packages/stack/src/plugins/kanban/api/plugin.cjs +9 -123
  41. package/dist/packages/stack/src/plugins/kanban/api/plugin.mjs +9 -123
  42. package/dist/packages/stack/src/plugins/kanban/client/plugin.cjs +1 -1
  43. package/dist/packages/stack/src/plugins/kanban/client/plugin.mjs +1 -1
  44. package/dist/packages/ui/src/components/calendar.cjs +2 -2
  45. package/dist/packages/ui/src/components/calendar.mjs +2 -2
  46. package/dist/packages/ui/src/components/sonner.cjs +34 -0
  47. package/dist/packages/ui/src/components/sonner.mjs +32 -0
  48. package/dist/packages/ui/src/components/ui-builder/components/code-panel.cjs +3 -2
  49. package/dist/packages/ui/src/components/ui-builder/components/code-panel.mjs +3 -2
  50. package/dist/packages/ui/src/components/ui-builder/index.cjs +10 -4
  51. package/dist/packages/ui/src/components/ui-builder/index.mjs +10 -4
  52. package/dist/packages/ui/src/components/ui-builder/internal/components/element-selector.cjs +22 -23
  53. package/dist/packages/ui/src/components/ui-builder/internal/components/element-selector.mjs +22 -23
  54. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu-portal.cjs +261 -0
  55. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu-portal.mjs +255 -0
  56. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu.cjs +125 -0
  57. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-context-menu.mjs +119 -0
  58. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-menu.cjs +6 -17
  59. package/dist/packages/ui/src/components/ui-builder/internal/components/layer-menu.mjs +7 -18
  60. package/dist/packages/ui/src/components/ui-builder/internal/components/nav.cjs +23 -18
  61. package/dist/packages/ui/src/components/ui-builder/internal/components/nav.mjs +23 -18
  62. package/dist/packages/ui/src/components/ui-builder/internal/components/tree-row-node.cjs +8 -23
  63. package/dist/packages/ui/src/components/ui-builder/internal/components/tree-row-node.mjs +9 -24
  64. package/dist/packages/ui/src/components/ui-builder/internal/editor-panel.cjs +9 -41
  65. package/dist/packages/ui/src/components/ui-builder/internal/editor-panel.mjs +9 -41
  66. package/dist/packages/ui/src/components/ui-builder/internal/layers-panel.cjs +7 -16
  67. package/dist/packages/ui/src/components/ui-builder/internal/layers-panel.mjs +7 -16
  68. package/dist/packages/ui/src/components/ui-builder/internal/utils/render-utils.cjs +16 -11
  69. package/dist/packages/ui/src/components/ui-builder/internal/utils/render-utils.mjs +16 -11
  70. package/dist/packages/ui/src/components/ui-builder/internal/utils/templates.cjs +260 -20
  71. package/dist/packages/ui/src/components/ui-builder/internal/utils/templates.mjs +260 -20
  72. package/dist/packages/ui/src/components/ui-builder/internal/variables-panel.cjs +105 -17
  73. package/dist/packages/ui/src/components/ui-builder/internal/variables-panel.mjs +107 -19
  74. package/dist/packages/ui/src/components/ui-builder/layer-renderer.cjs +4 -2
  75. package/dist/packages/ui/src/components/ui-builder/layer-renderer.mjs +4 -2
  76. package/dist/packages/ui/src/hooks/use-keyboard-shortcuts.cjs +3 -1
  77. package/dist/packages/ui/src/hooks/use-keyboard-shortcuts.mjs +3 -1
  78. package/dist/packages/ui/src/lib/ui-builder/hooks/use-layer-actions.cjs +107 -0
  79. package/dist/packages/ui/src/lib/ui-builder/hooks/use-layer-actions.mjs +105 -0
  80. package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.cjs +9 -7
  81. package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.mjs +9 -7
  82. package/dist/packages/ui/src/lib/ui-builder/shortcuts/shortcut-registry.cjs +71 -0
  83. package/dist/packages/ui/src/lib/ui-builder/shortcuts/shortcut-registry.mjs +68 -0
  84. package/dist/packages/ui/src/lib/ui-builder/store/editor-store.cjs +48 -3
  85. package/dist/packages/ui/src/lib/ui-builder/store/editor-store.mjs +48 -3
  86. package/dist/packages/ui/src/lib/ui-builder/store/layer-store.cjs +4 -1
  87. package/dist/packages/ui/src/lib/ui-builder/store/layer-store.mjs +4 -1
  88. package/dist/packages/ui/src/lib/ui-builder/store/schema-utils.cjs +8 -0
  89. package/dist/packages/ui/src/lib/ui-builder/store/schema-utils.mjs +8 -1
  90. package/dist/packages/ui/src/lib/ui-builder/utils/paste-validation.cjs +25 -0
  91. package/dist/packages/ui/src/lib/ui-builder/utils/paste-validation.mjs +23 -0
  92. package/dist/packages/ui/src/lib/ui-builder/utils/variable-resolver.cjs +42 -3
  93. package/dist/packages/ui/src/lib/ui-builder/utils/variable-resolver.mjs +42 -3
  94. package/dist/plugins/ai-chat/api/index.cjs +3 -0
  95. package/dist/plugins/ai-chat/api/index.d.cts +27 -4
  96. package/dist/plugins/ai-chat/api/index.d.mts +27 -4
  97. package/dist/plugins/ai-chat/api/index.d.ts +27 -4
  98. package/dist/plugins/ai-chat/api/index.mjs +1 -0
  99. package/dist/plugins/ai-chat/client/hooks/index.d.cts +2 -2
  100. package/dist/plugins/ai-chat/client/hooks/index.d.mts +2 -2
  101. package/dist/plugins/ai-chat/client/hooks/index.d.ts +2 -2
  102. package/dist/plugins/ai-chat/query-keys.d.cts +9 -284
  103. package/dist/plugins/ai-chat/query-keys.d.mts +9 -284
  104. package/dist/plugins/ai-chat/query-keys.d.ts +9 -284
  105. package/dist/plugins/api/index.d.cts +4 -3
  106. package/dist/plugins/api/index.d.mts +4 -3
  107. package/dist/plugins/api/index.d.ts +4 -3
  108. package/dist/plugins/blog/api/index.cjs +4 -0
  109. package/dist/plugins/blog/api/index.d.cts +3 -2
  110. package/dist/plugins/blog/api/index.d.mts +3 -2
  111. package/dist/plugins/blog/api/index.d.ts +3 -2
  112. package/dist/plugins/blog/api/index.mjs +1 -0
  113. package/dist/plugins/blog/client/hooks/index.d.cts +6 -6
  114. package/dist/plugins/blog/client/hooks/index.d.mts +6 -6
  115. package/dist/plugins/blog/client/hooks/index.d.ts +6 -6
  116. package/dist/plugins/blog/client/index.d.cts +1 -1
  117. package/dist/plugins/blog/client/index.d.mts +1 -1
  118. package/dist/plugins/blog/client/index.d.ts +1 -1
  119. package/dist/plugins/blog/query-keys.cjs +7 -4
  120. package/dist/plugins/blog/query-keys.d.cts +81 -27
  121. package/dist/plugins/blog/query-keys.d.mts +81 -27
  122. package/dist/plugins/blog/query-keys.d.ts +81 -27
  123. package/dist/plugins/blog/query-keys.mjs +7 -4
  124. package/dist/plugins/client/index.d.cts +2 -2
  125. package/dist/plugins/client/index.d.mts +2 -2
  126. package/dist/plugins/client/index.d.ts +2 -2
  127. package/dist/plugins/cms/api/index.cjs +4 -0
  128. package/dist/plugins/cms/api/index.d.cts +61 -5
  129. package/dist/plugins/cms/api/index.d.mts +61 -5
  130. package/dist/plugins/cms/api/index.d.ts +61 -5
  131. package/dist/plugins/cms/api/index.mjs +1 -0
  132. package/dist/plugins/cms/client/hooks/index.d.cts +1 -1
  133. package/dist/plugins/cms/client/hooks/index.d.mts +1 -1
  134. package/dist/plugins/cms/client/hooks/index.d.ts +1 -1
  135. package/dist/plugins/cms/query-keys.d.cts +2 -1
  136. package/dist/plugins/cms/query-keys.d.mts +2 -1
  137. package/dist/plugins/cms/query-keys.d.ts +2 -1
  138. package/dist/plugins/form-builder/api/index.cjs +4 -0
  139. package/dist/plugins/form-builder/api/index.d.cts +77 -7
  140. package/dist/plugins/form-builder/api/index.d.mts +77 -7
  141. package/dist/plugins/form-builder/api/index.d.ts +77 -7
  142. package/dist/plugins/form-builder/api/index.mjs +1 -0
  143. package/dist/plugins/form-builder/client/components/index.d.cts +1 -1
  144. package/dist/plugins/form-builder/client/components/index.d.mts +1 -1
  145. package/dist/plugins/form-builder/client/components/index.d.ts +1 -1
  146. package/dist/plugins/form-builder/client/hooks/index.d.cts +1 -1
  147. package/dist/plugins/form-builder/client/hooks/index.d.mts +1 -1
  148. package/dist/plugins/form-builder/client/hooks/index.d.ts +1 -1
  149. package/dist/plugins/form-builder/query-keys.d.cts +2 -1
  150. package/dist/plugins/form-builder/query-keys.d.mts +2 -1
  151. package/dist/plugins/form-builder/query-keys.d.ts +2 -1
  152. package/dist/plugins/kanban/api/index.cjs +3 -0
  153. package/dist/plugins/kanban/api/index.d.cts +49 -52
  154. package/dist/plugins/kanban/api/index.d.mts +49 -52
  155. package/dist/plugins/kanban/api/index.d.ts +49 -52
  156. package/dist/plugins/kanban/api/index.mjs +1 -0
  157. package/dist/plugins/kanban/client/components/index.d.cts +1 -1
  158. package/dist/plugins/kanban/client/components/index.d.mts +1 -1
  159. package/dist/plugins/kanban/client/components/index.d.ts +1 -1
  160. package/dist/plugins/kanban/client/hooks/index.d.cts +1 -1
  161. package/dist/plugins/kanban/client/hooks/index.d.mts +1 -1
  162. package/dist/plugins/kanban/client/hooks/index.d.ts +1 -1
  163. package/dist/plugins/kanban/client/index.d.cts +1 -1
  164. package/dist/plugins/kanban/client/index.d.mts +1 -1
  165. package/dist/plugins/kanban/client/index.d.ts +1 -1
  166. package/dist/plugins/kanban/query-keys.cjs +4 -3
  167. package/dist/plugins/kanban/query-keys.d.cts +2 -1
  168. package/dist/plugins/kanban/query-keys.d.mts +2 -1
  169. package/dist/plugins/kanban/query-keys.d.ts +2 -1
  170. package/dist/plugins/kanban/query-keys.mjs +4 -3
  171. package/dist/plugins/open-api/api/index.d.cts +2 -2
  172. package/dist/plugins/open-api/api/index.d.mts +2 -2
  173. package/dist/plugins/open-api/api/index.d.ts +2 -2
  174. package/dist/plugins/route-docs/client/index.d.cts +1 -1
  175. package/dist/plugins/route-docs/client/index.d.mts +1 -1
  176. package/dist/plugins/route-docs/client/index.d.ts +1 -1
  177. package/dist/plugins/ui-builder/client/components/index.d.cts +1 -1
  178. package/dist/plugins/ui-builder/client/components/index.d.mts +1 -1
  179. package/dist/plugins/ui-builder/client/components/index.d.ts +1 -1
  180. package/dist/plugins/ui-builder/client/hooks/index.d.cts +2 -2
  181. package/dist/plugins/ui-builder/client/hooks/index.d.mts +2 -2
  182. package/dist/plugins/ui-builder/client/hooks/index.d.ts +2 -2
  183. package/dist/plugins/ui-builder/client/index.d.cts +16 -6
  184. package/dist/plugins/ui-builder/client/index.d.mts +16 -6
  185. package/dist/plugins/ui-builder/client/index.d.ts +16 -6
  186. package/dist/plugins/ui-builder/index.d.cts +3 -3
  187. package/dist/plugins/ui-builder/index.d.mts +3 -3
  188. package/dist/plugins/ui-builder/index.d.ts +3 -3
  189. package/dist/shared/{stack.DYCFcnkL.d.mts → stack.6fUOjLs9.d.mts} +1 -1
  190. package/dist/shared/{stack.BoA0xkJv.d.mts → stack.7n9Y_u7N.d.cts} +33 -7
  191. package/dist/shared/{stack.BoA0xkJv.d.cts → stack.7n9Y_u7N.d.mts} +33 -7
  192. package/dist/shared/{stack.BoA0xkJv.d.ts → stack.7n9Y_u7N.d.ts} +33 -7
  193. package/dist/shared/{stack.BdJFrdyt.d.cts → stack.B-YHz18S.d.cts} +2 -2
  194. package/dist/shared/stack.BeSm90va.d.ts +289 -0
  195. package/dist/shared/{stack.kFbDspnF.d.ts → stack.C-Ptrz8s.d.ts} +1 -1
  196. package/dist/shared/{stack.BYysGdHl.d.cts → stack.C-WUPMT6.d.cts} +1 -1
  197. package/dist/shared/{stack.DzH_wcvr.d.cts → stack.CIrIsc-A.d.cts} +2 -2
  198. package/dist/shared/{stack.DzH_wcvr.d.mts → stack.CIrIsc-A.d.mts} +2 -2
  199. package/dist/shared/{stack.DzH_wcvr.d.ts → stack.CIrIsc-A.d.ts} +2 -2
  200. package/dist/shared/stack.CMh_EdxW.d.cts +289 -0
  201. package/dist/shared/{stack.BsXokfNh.d.cts → stack.CXjzTMsb.d.cts} +1 -1
  202. package/dist/shared/{stack.BsXokfNh.d.mts → stack.CXjzTMsb.d.mts} +1 -1
  203. package/dist/shared/{stack.BsXokfNh.d.ts → stack.CXjzTMsb.d.ts} +1 -1
  204. package/dist/shared/{stack.ChVuHi5e.d.mts → stack.D1DMlJp-.d.mts} +2 -2
  205. package/dist/shared/stack.Dg09R0oB.d.mts +289 -0
  206. package/dist/shared/{stack.EhM4pmtN.d.ts → stack.GygI_T3X.d.ts} +2 -2
  207. package/dist/shared/{stack.DKDMI-QO.d.mts → stack.QD1y_7NY.d.cts} +7 -1
  208. package/dist/shared/{stack.DKDMI-QO.d.ts → stack.QD1y_7NY.d.mts} +7 -1
  209. package/dist/shared/{stack.DKDMI-QO.d.cts → stack.QD1y_7NY.d.ts} +7 -1
  210. package/package.json +1 -1
  211. package/src/__tests__/stack-api.test.ts +118 -0
  212. package/src/api/index.ts +15 -1
  213. package/src/plugins/ai-chat/__tests__/getters.test.ts +109 -0
  214. package/src/plugins/ai-chat/api/getters.ts +71 -0
  215. package/src/plugins/ai-chat/api/index.ts +1 -0
  216. package/src/plugins/ai-chat/api/plugin.ts +8 -0
  217. package/src/plugins/api/index.ts +3 -1
  218. package/src/plugins/blog/__tests__/getters.test.ts +540 -0
  219. package/src/plugins/blog/api/getters.ts +243 -0
  220. package/src/plugins/blog/api/index.ts +7 -0
  221. package/src/plugins/blog/api/plugin.ts +13 -141
  222. package/src/plugins/blog/client/plugin.tsx +2 -1
  223. package/src/plugins/blog/query-keys.ts +16 -13
  224. package/src/plugins/cms/__tests__/getters.test.ts +206 -0
  225. package/src/plugins/cms/api/getters.ts +244 -0
  226. package/src/plugins/cms/api/index.ts +5 -0
  227. package/src/plugins/cms/api/plugin.ts +50 -154
  228. package/src/plugins/cms/client/components/pages/content-editor-page.internal.tsx +1 -1
  229. package/src/plugins/cms/client/hooks/cms-hooks.tsx +3 -0
  230. package/src/plugins/cms/types.ts +1 -1
  231. package/src/plugins/form-builder/__tests__/getters.test.ts +159 -0
  232. package/src/plugins/form-builder/api/getters.ts +203 -0
  233. package/src/plugins/form-builder/api/index.ts +1 -0
  234. package/src/plugins/form-builder/api/plugin.ts +22 -115
  235. package/src/plugins/form-builder/client/components/pages/submissions-page.internal.tsx +1 -1
  236. package/src/plugins/form-builder/types.ts +2 -2
  237. package/src/plugins/kanban/__tests__/getters.test.ts +172 -0
  238. package/src/plugins/kanban/api/getters.ts +149 -0
  239. package/src/plugins/kanban/api/index.ts +1 -0
  240. package/src/plugins/kanban/api/plugin.ts +16 -146
  241. package/src/plugins/kanban/client/plugin.tsx +2 -1
  242. package/src/plugins/kanban/query-keys.ts +8 -5
  243. package/src/types.ts +44 -5
  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/DayPicker.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/DayPicker.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/classes/CalendarDay.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/classes/CalendarDay.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/classes/CalendarMonth.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/classes/CalendarMonth.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/classes/CalendarWeek.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/classes/CalendarWeek.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/classes/DateLib.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/classes/DateLib.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/components/Button.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/components/Button.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/components/CaptionLabel.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/components/CaptionLabel.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/components/Chevron.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/components/Chevron.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/components/Day.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/components/Day.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/components/DayButton.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/components/DayButton.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/components/Dropdown.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/components/Dropdown.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/components/DropdownNav.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/components/DropdownNav.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/components/Footer.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/components/Footer.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/components/Month.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/components/Month.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/components/MonthCaption.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/components/MonthCaption.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/components/MonthGrid.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/components/MonthGrid.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/components/Months.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/components/Months.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/components/MonthsDropdown.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/components/MonthsDropdown.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/components/Nav.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/components/Nav.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/components/NextMonthButton.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/components/NextMonthButton.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/components/Option.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/components/Option.mjs +0 -0
  286. package/dist/node_modules/.pnpm/{react-day-picker@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
  287. package/dist/node_modules/.pnpm/{react-day-picker@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
  288. package/dist/node_modules/.pnpm/{react-day-picker@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
  289. package/dist/node_modules/.pnpm/{react-day-picker@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
  290. package/dist/node_modules/.pnpm/{react-day-picker@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
  291. package/dist/node_modules/.pnpm/{react-day-picker@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
  292. package/dist/node_modules/.pnpm/{react-day-picker@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
  293. package/dist/node_modules/.pnpm/{react-day-picker@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
  294. package/dist/node_modules/.pnpm/{react-day-picker@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
  295. package/dist/node_modules/.pnpm/{react-day-picker@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
  296. package/dist/node_modules/.pnpm/{react-day-picker@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
  297. package/dist/node_modules/.pnpm/{react-day-picker@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
  298. package/dist/node_modules/.pnpm/{react-day-picker@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
  299. package/dist/node_modules/.pnpm/{react-day-picker@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
  300. package/dist/node_modules/.pnpm/{react-day-picker@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
  301. package/dist/node_modules/.pnpm/{react-day-picker@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
  302. package/dist/node_modules/.pnpm/{react-day-picker@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
  303. package/dist/node_modules/.pnpm/{react-day-picker@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
  304. package/dist/node_modules/.pnpm/{react-day-picker@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
  305. package/dist/node_modules/.pnpm/{react-day-picker@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
  306. package/dist/node_modules/.pnpm/{react-day-picker@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
  307. package/dist/node_modules/.pnpm/{react-day-picker@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
  308. package/dist/node_modules/.pnpm/{react-day-picker@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
  309. package/dist/node_modules/.pnpm/{react-day-picker@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
  310. package/dist/node_modules/.pnpm/{react-day-picker@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
  311. package/dist/node_modules/.pnpm/{react-day-picker@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
  312. package/dist/node_modules/.pnpm/{react-day-picker@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
  313. package/dist/node_modules/.pnpm/{react-day-picker@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
  314. package/dist/node_modules/.pnpm/{react-day-picker@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
  315. package/dist/node_modules/.pnpm/{react-day-picker@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
  316. package/dist/node_modules/.pnpm/{react-day-picker@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
  317. package/dist/node_modules/.pnpm/{react-day-picker@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
  318. package/dist/node_modules/.pnpm/{react-day-picker@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
  319. package/dist/node_modules/.pnpm/{react-day-picker@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
  320. package/dist/node_modules/.pnpm/{react-day-picker@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
  321. package/dist/node_modules/.pnpm/{react-day-picker@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
  322. package/dist/node_modules/.pnpm/{react-day-picker@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
  323. package/dist/node_modules/.pnpm/{react-day-picker@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
  324. package/dist/node_modules/.pnpm/{react-day-picker@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
  325. package/dist/node_modules/.pnpm/{react-day-picker@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
  326. package/dist/node_modules/.pnpm/{react-day-picker@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
  327. package/dist/node_modules/.pnpm/{react-day-picker@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
  328. package/dist/node_modules/.pnpm/{react-day-picker@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
  329. package/dist/node_modules/.pnpm/{react-day-picker@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
  330. package/dist/node_modules/.pnpm/{react-day-picker@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
  331. package/dist/node_modules/.pnpm/{react-day-picker@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
  332. package/dist/node_modules/.pnpm/{react-day-picker@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
  333. package/dist/node_modules/.pnpm/{react-day-picker@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
  334. package/dist/node_modules/.pnpm/{react-day-picker@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
  335. package/dist/node_modules/.pnpm/{react-day-picker@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
  336. package/dist/node_modules/.pnpm/{react-day-picker@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
  337. package/dist/node_modules/.pnpm/{react-day-picker@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
  338. package/dist/node_modules/.pnpm/{react-day-picker@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
  339. package/dist/node_modules/.pnpm/{react-day-picker@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
  340. package/dist/node_modules/.pnpm/{react-day-picker@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
  341. package/dist/node_modules/.pnpm/{react-day-picker@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
  342. package/dist/node_modules/.pnpm/{react-day-picker@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
  343. package/dist/node_modules/.pnpm/{react-day-picker@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
  344. package/dist/node_modules/.pnpm/{react-day-picker@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
  345. package/dist/node_modules/.pnpm/{react-day-picker@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
  346. package/dist/node_modules/.pnpm/{react-day-picker@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
  347. package/dist/node_modules/.pnpm/{react-day-picker@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
  348. package/dist/node_modules/.pnpm/{react-day-picker@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
  349. package/dist/node_modules/.pnpm/{react-day-picker@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
  350. package/dist/node_modules/.pnpm/{react-day-picker@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
  351. package/dist/node_modules/.pnpm/{react-day-picker@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
  352. package/dist/node_modules/.pnpm/{react-day-picker@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
  353. package/dist/node_modules/.pnpm/{react-day-picker@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
  354. package/dist/node_modules/.pnpm/{react-day-picker@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
  355. package/dist/node_modules/.pnpm/{react-day-picker@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
  356. package/dist/node_modules/.pnpm/{react-day-picker@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
  357. package/dist/node_modules/.pnpm/{react-day-picker@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
  358. package/dist/node_modules/.pnpm/{react-day-picker@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
  359. package/dist/node_modules/.pnpm/{react-day-picker@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
  360. package/dist/node_modules/.pnpm/{react-day-picker@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
  361. package/dist/node_modules/.pnpm/{react-day-picker@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
  362. package/dist/node_modules/.pnpm/{react-day-picker@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
  363. package/dist/node_modules/.pnpm/{react-day-picker@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
  364. package/dist/node_modules/.pnpm/{react-day-picker@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
  365. package/dist/node_modules/.pnpm/{react-day-picker@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
  366. package/dist/node_modules/.pnpm/{react-day-picker@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
  367. package/dist/node_modules/.pnpm/{react-day-picker@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
  368. package/dist/node_modules/.pnpm/{react-day-picker@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
  369. package/dist/node_modules/.pnpm/{react-day-picker@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
  370. package/dist/node_modules/.pnpm/{react-day-picker@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
  371. package/dist/node_modules/.pnpm/{react-day-picker@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
  372. package/dist/node_modules/.pnpm/{react-day-picker@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
  373. package/dist/node_modules/.pnpm/{react-day-picker@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
  374. package/dist/node_modules/.pnpm/{react-day-picker@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
  375. package/dist/node_modules/.pnpm/{react-day-picker@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
  376. package/dist/node_modules/.pnpm/{react-day-picker@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
  377. package/dist/node_modules/.pnpm/{react-day-picker@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
  378. package/dist/node_modules/.pnpm/{react-day-picker@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
  379. package/dist/node_modules/.pnpm/{react-day-picker@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
  380. package/dist/node_modules/.pnpm/{react-day-picker@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
  381. package/dist/node_modules/.pnpm/{react-day-picker@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
  382. package/dist/node_modules/.pnpm/{react-day-picker@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
  383. package/dist/node_modules/.pnpm/{react-day-picker@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
  384. package/dist/node_modules/.pnpm/{react-day-picker@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
  385. package/dist/node_modules/.pnpm/{react-day-picker@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
  386. package/dist/node_modules/.pnpm/{react-day-picker@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
  387. package/dist/node_modules/.pnpm/{react-day-picker@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
  388. package/dist/node_modules/.pnpm/{react-day-picker@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
  389. package/dist/node_modules/.pnpm/{react-day-picker@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
  390. package/dist/node_modules/.pnpm/{react-day-picker@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
  391. package/dist/node_modules/.pnpm/{react-day-picker@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
  392. package/dist/node_modules/.pnpm/{react-day-picker@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
  393. package/dist/node_modules/.pnpm/{react-day-picker@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
  394. package/dist/node_modules/.pnpm/{react-day-picker@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
  395. package/dist/node_modules/.pnpm/{react-day-picker@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
  396. package/dist/node_modules/.pnpm/{react-day-picker@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
  397. package/dist/node_modules/.pnpm/{react-day-picker@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
  398. package/dist/node_modules/.pnpm/{react-day-picker@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
  399. package/dist/node_modules/.pnpm/{react-day-picker@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
  400. package/dist/node_modules/.pnpm/{react-day-picker@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
  401. package/dist/node_modules/.pnpm/{react-day-picker@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
  402. package/dist/node_modules/.pnpm/{react-day-picker@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
  403. package/dist/node_modules/.pnpm/{react-day-picker@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
  404. package/dist/node_modules/.pnpm/{react-day-picker@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
  405. package/dist/node_modules/.pnpm/{react-day-picker@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
  406. package/dist/node_modules/.pnpm/{react-day-picker@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
  407. package/dist/node_modules/.pnpm/{react-day-picker@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
  408. package/dist/node_modules/.pnpm/{react-day-picker@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
  409. package/dist/node_modules/.pnpm/{react-day-picker@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
  410. package/dist/node_modules/.pnpm/{react-day-picker@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
  411. package/dist/node_modules/.pnpm/{react-day-picker@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
  412. package/dist/node_modules/.pnpm/{react-day-picker@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
  413. package/dist/node_modules/.pnpm/{react-day-picker@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
  414. package/dist/node_modules/.pnpm/{react-day-picker@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
  415. package/dist/node_modules/.pnpm/{react-day-picker@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
  416. package/dist/node_modules/.pnpm/{react-day-picker@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
  417. package/dist/node_modules/.pnpm/{react-day-picker@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
  418. package/dist/node_modules/.pnpm/{react-day-picker@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
  419. package/dist/node_modules/.pnpm/{react-day-picker@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
  420. package/dist/node_modules/.pnpm/{react-day-picker@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
  421. package/dist/node_modules/.pnpm/{react-day-picker@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
  422. package/dist/node_modules/.pnpm/{react-day-picker@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
  423. package/dist/node_modules/.pnpm/{react-day-picker@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
  424. package/dist/node_modules/.pnpm/{react-day-picker@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
  425. package/dist/node_modules/.pnpm/{react-day-picker@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
  426. package/dist/node_modules/.pnpm/{react-day-picker@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
  427. package/dist/node_modules/.pnpm/{react-day-picker@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
  428. package/dist/node_modules/.pnpm/{react-day-picker@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
  429. package/dist/node_modules/.pnpm/{react-day-picker@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
  430. package/dist/node_modules/.pnpm/{react-day-picker@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
  431. package/dist/node_modules/.pnpm/{react-day-picker@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
  432. package/dist/node_modules/.pnpm/{react-day-picker@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
  433. package/dist/node_modules/.pnpm/{react-day-picker@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
  434. package/dist/node_modules/.pnpm/{react-day-picker@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
  435. package/dist/node_modules/.pnpm/{react-day-picker@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
  436. package/dist/node_modules/.pnpm/{react-day-picker@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
  437. package/dist/node_modules/.pnpm/{react-day-picker@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
  438. package/dist/node_modules/.pnpm/{react-day-picker@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
  439. package/dist/node_modules/.pnpm/{react-day-picker@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
  440. package/dist/shared/{stack.CcI4sYJP.d.ts → stack.BkYlUT_8.d.cts} +6 -6
  441. package/dist/shared/{stack.CcI4sYJP.d.cts → stack.BkYlUT_8.d.mts} +6 -6
  442. package/dist/shared/{stack.CcI4sYJP.d.mts → stack.BkYlUT_8.d.ts} +6 -6
@@ -0,0 +1,255 @@
1
+ "use client";
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import React__default, { useState, useRef, useEffect, useCallback } from 'react';
4
+ import { createPortal } from 'react-dom';
5
+ import { Plus, Copy, Scissors, ClipboardPaste, CopyPlus, Trash } from 'lucide-react';
6
+ import { useEditorStore } from '../../../../lib/ui-builder/store/editor-store.mjs';
7
+ import { useLayerStore } from '../../../../lib/ui-builder/store/layer-store.mjs';
8
+ import { canComponentAcceptChildren } from '../../../../lib/ui-builder/store/schema-utils.mjs';
9
+ import { SHORTCUTS } from '../../../../lib/ui-builder/shortcuts/shortcut-registry.mjs';
10
+ import { useGlobalLayerActions } from '../../../../lib/ui-builder/hooks/use-layer-actions.mjs';
11
+ import { canPasteLayer } from '../../../../lib/ui-builder/utils/paste-validation.mjs';
12
+ import { AddComponentsPopover } from './add-component-popover.mjs';
13
+ import { cn } from '../../../../lib/utils.mjs';
14
+ import { useFrame } from '../canvas/auto-frame.mjs';
15
+ import '../../../../../../../node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.mjs';
16
+ import '../../../../lib/ui-builder/context/dnd-context-colission-utils.mjs';
17
+ import { useDndContext } from '../../../../lib/ui-builder/context/dnd-contexts.mjs';
18
+ import { useFloating } from '../../../../../../../node_modules/.pnpm/@floating-ui_react@0.27.16_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react/dist/floating-ui.react.mjs';
19
+ import { offset, flip, shift, limitShift } from '../../../../../../../node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs';
20
+
21
+ const LayerContextMenuPortal = () => {
22
+ const contextMenu = useEditorStore((state) => state.contextMenu);
23
+ const closeContextMenu = useEditorStore((state) => state.closeContextMenu);
24
+ const selectedLayerId = useLayerStore((state) => state.selectedLayerId);
25
+ const { isDragging } = useDndContext();
26
+ const [mounted, setMounted] = useState(false);
27
+ const contextMenuLayerIdRef = useRef(null);
28
+ const frameContext = useFrame();
29
+ const { refs, floatingStyles } = useFloating({
30
+ placement: "bottom-start",
31
+ middleware: [
32
+ offset(2),
33
+ // Small offset from cursor
34
+ flip({
35
+ fallbackPlacements: ["top-start", "bottom-end", "top-end"],
36
+ padding: 8
37
+ }),
38
+ shift({
39
+ crossAxis: true,
40
+ limiter: limitShift(),
41
+ padding: 8
42
+ })
43
+ ]
44
+ });
45
+ useEffect(() => {
46
+ if (!contextMenu.open) return;
47
+ const virtualReference = {
48
+ getBoundingClientRect: () => ({
49
+ x: contextMenu.x,
50
+ y: contextMenu.y,
51
+ width: 0,
52
+ height: 0,
53
+ top: contextMenu.y,
54
+ left: contextMenu.x,
55
+ right: contextMenu.x,
56
+ bottom: contextMenu.y
57
+ })
58
+ };
59
+ refs.setPositionReference(virtualReference);
60
+ }, [contextMenu.open, contextMenu.x, contextMenu.y, refs]);
61
+ useEffect(() => {
62
+ setMounted(true);
63
+ }, []);
64
+ useEffect(() => {
65
+ if (contextMenu.open && contextMenu.layerId) {
66
+ contextMenuLayerIdRef.current = contextMenu.layerId;
67
+ } else {
68
+ contextMenuLayerIdRef.current = null;
69
+ }
70
+ }, [contextMenu.open, contextMenu.layerId]);
71
+ useEffect(() => {
72
+ if (contextMenu.open && contextMenuLayerIdRef.current && selectedLayerId !== contextMenuLayerIdRef.current) {
73
+ closeContextMenu();
74
+ }
75
+ }, [selectedLayerId, contextMenu.open, closeContextMenu]);
76
+ useEffect(() => {
77
+ if (isDragging && contextMenu.open) {
78
+ closeContextMenu();
79
+ }
80
+ }, [isDragging, contextMenu.open, closeContextMenu]);
81
+ useEffect(() => {
82
+ if (!contextMenu.open) return;
83
+ const handleClickOutside = (e) => {
84
+ const floatingEl = refs.floating.current;
85
+ if (floatingEl && !floatingEl.contains(e.target)) {
86
+ closeContextMenu();
87
+ }
88
+ };
89
+ const handleContextMenuOutside = (e) => {
90
+ const floatingEl = refs.floating.current;
91
+ if (floatingEl && !floatingEl.contains(e.target)) {
92
+ closeContextMenu();
93
+ }
94
+ };
95
+ const targetDoc = frameContext.document ?? document;
96
+ targetDoc.addEventListener("mousedown", handleClickOutside);
97
+ targetDoc.addEventListener("contextmenu", handleContextMenuOutside);
98
+ return () => {
99
+ targetDoc.removeEventListener("mousedown", handleClickOutside);
100
+ targetDoc.removeEventListener("contextmenu", handleContextMenuOutside);
101
+ };
102
+ }, [contextMenu.open, closeContextMenu, refs.floating, frameContext.document]);
103
+ useEffect(() => {
104
+ if (!contextMenu.open) return;
105
+ const handleKeyDown = (e) => {
106
+ if (e.key === "Escape") {
107
+ closeContextMenu();
108
+ }
109
+ };
110
+ const targetDoc = frameContext.document ?? document;
111
+ targetDoc.addEventListener("keydown", handleKeyDown);
112
+ return () => targetDoc.removeEventListener("keydown", handleKeyDown);
113
+ }, [contextMenu.open, closeContextMenu, frameContext.document]);
114
+ if (!mounted || !contextMenu.open || !contextMenu.layerId) {
115
+ return null;
116
+ }
117
+ const portalTarget = frameContext.document?.body || document.body;
118
+ const menuContent = /* @__PURE__ */ jsx(
119
+ "div",
120
+ {
121
+ ref: refs.setFloating,
122
+ "data-testid": "layer-context-menu-portal",
123
+ className: "z-[10000] min-w-[14rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95",
124
+ style: floatingStyles,
125
+ children: /* @__PURE__ */ jsx(
126
+ ContextMenuPortalItems,
127
+ {
128
+ layerId: contextMenu.layerId,
129
+ onAction: closeContextMenu
130
+ }
131
+ )
132
+ }
133
+ );
134
+ return createPortal(menuContent, portalTarget);
135
+ };
136
+ const ContextMenuPortalItems = ({
137
+ layerId,
138
+ onAction
139
+ }) => {
140
+ const selectedLayer = useLayerStore((state) => state.findLayerById(layerId));
141
+ const findLayerById = useLayerStore((state) => state.findLayerById);
142
+ const componentRegistry = useEditorStore((state) => state.registry);
143
+ const clipboardLayer = useEditorStore((state) => state.clipboard.layer);
144
+ const {
145
+ canDuplicate,
146
+ canDelete,
147
+ canCut,
148
+ handleCopy,
149
+ handleCut,
150
+ handlePaste,
151
+ handleDelete,
152
+ handleDuplicate
153
+ } = useGlobalLayerActions(layerId);
154
+ const canPaste = React__default.useMemo(() => {
155
+ if (!clipboardLayer || !selectedLayer) return false;
156
+ return canPasteLayer(clipboardLayer, layerId, componentRegistry, findLayerById);
157
+ }, [clipboardLayer, layerId, componentRegistry, findLayerById, selectedLayer]);
158
+ const canRenderAddChild = React__default.useMemo(() => {
159
+ if (!selectedLayer) return false;
160
+ const componentDef = componentRegistry[selectedLayer.type];
161
+ if (!componentDef) return false;
162
+ return canComponentAcceptChildren(componentDef.schema);
163
+ }, [selectedLayer, componentRegistry]);
164
+ const handleCopyClick = useCallback(() => {
165
+ handleCopy();
166
+ onAction();
167
+ }, [handleCopy, onAction]);
168
+ const handleCutClick = useCallback(() => {
169
+ handleCut();
170
+ onAction();
171
+ }, [handleCut, onAction]);
172
+ const handlePasteClick = useCallback(() => {
173
+ handlePaste();
174
+ onAction();
175
+ }, [handlePaste, onAction]);
176
+ const handleDuplicateClick = useCallback(() => {
177
+ handleDuplicate();
178
+ onAction();
179
+ }, [handleDuplicate, onAction]);
180
+ const handleDeleteClick = useCallback(() => {
181
+ handleDelete();
182
+ onAction();
183
+ }, [handleDelete, onAction]);
184
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
185
+ canRenderAddChild && /* @__PURE__ */ jsxs(Fragment, { children: [
186
+ /* @__PURE__ */ jsx(AddComponentsPopover, { parentLayerId: layerId, children: /* @__PURE__ */ jsxs(MenuItem, { onClick: (e) => e.stopPropagation(), children: [
187
+ /* @__PURE__ */ jsx(Plus, { className: "mr-2 h-4 w-4" }),
188
+ "Add Child"
189
+ ] }) }),
190
+ /* @__PURE__ */ jsx(MenuSeparator, {})
191
+ ] }),
192
+ /* @__PURE__ */ jsxs(MenuItem, { onClick: handleCopyClick, children: [
193
+ /* @__PURE__ */ jsx(Copy, { className: "mr-2 h-4 w-4" }),
194
+ "Copy",
195
+ /* @__PURE__ */ jsx(MenuShortcut, { children: SHORTCUTS.copy.shortcutDisplay })
196
+ ] }),
197
+ canCut && /* @__PURE__ */ jsxs(MenuItem, { onClick: handleCutClick, children: [
198
+ /* @__PURE__ */ jsx(Scissors, { className: "mr-2 h-4 w-4" }),
199
+ "Cut",
200
+ /* @__PURE__ */ jsx(MenuShortcut, { children: SHORTCUTS.cut.shortcutDisplay })
201
+ ] }),
202
+ /* @__PURE__ */ jsxs(MenuItem, { onClick: handlePasteClick, disabled: !canPaste, children: [
203
+ /* @__PURE__ */ jsx(ClipboardPaste, { className: "mr-2 h-4 w-4" }),
204
+ "Paste",
205
+ /* @__PURE__ */ jsx(MenuShortcut, { children: SHORTCUTS.paste.shortcutDisplay })
206
+ ] }),
207
+ /* @__PURE__ */ jsx(MenuSeparator, {}),
208
+ canDuplicate && /* @__PURE__ */ jsxs(MenuItem, { onClick: handleDuplicateClick, children: [
209
+ /* @__PURE__ */ jsx(CopyPlus, { className: "mr-2 h-4 w-4" }),
210
+ "Duplicate",
211
+ /* @__PURE__ */ jsx(MenuShortcut, { children: SHORTCUTS.duplicate.shortcutDisplay })
212
+ ] }),
213
+ canDelete && /* @__PURE__ */ jsxs(
214
+ MenuItem,
215
+ {
216
+ onClick: handleDeleteClick,
217
+ className: "text-destructive focus:text-destructive",
218
+ children: [
219
+ /* @__PURE__ */ jsx(Trash, { className: "mr-2 h-4 w-4" }),
220
+ "Delete",
221
+ /* @__PURE__ */ jsx(MenuShortcut, { children: SHORTCUTS.delete.shortcutDisplay })
222
+ ]
223
+ }
224
+ )
225
+ ] });
226
+ };
227
+ const MenuItem = ({
228
+ children,
229
+ onClick,
230
+ disabled,
231
+ className
232
+ }) => {
233
+ return /* @__PURE__ */ jsx(
234
+ "div",
235
+ {
236
+ role: "menuitem",
237
+ "data-testid": "menu-item",
238
+ onClick: disabled ? void 0 : onClick,
239
+ className: cn(
240
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
241
+ disabled && "pointer-events-none opacity-50",
242
+ className
243
+ ),
244
+ children
245
+ }
246
+ );
247
+ };
248
+ const MenuSeparator = () => {
249
+ return /* @__PURE__ */ jsx("div", { className: "-mx-1 my-1 h-px bg-muted", "data-testid": "menu-separator" });
250
+ };
251
+ const MenuShortcut = ({ children }) => {
252
+ return /* @__PURE__ */ jsx("span", { className: "ml-auto text-xs tracking-widest opacity-60", "data-testid": "menu-shortcut", children });
253
+ };
254
+
255
+ export { LayerContextMenuPortal };
@@ -0,0 +1,125 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ const jsxRuntime = require('react/jsx-runtime');
5
+ const React = require('react');
6
+ const useLayerActions = require('../../../../lib/ui-builder/hooks/use-layer-actions.cjs');
7
+ const editorStore = require('../../../../lib/ui-builder/store/editor-store.cjs');
8
+ const useKeyboardShortcuts = require('../../../../hooks/use-keyboard-shortcuts.cjs');
9
+ const shortcutRegistry = require('../../../../lib/ui-builder/shortcuts/shortcut-registry.cjs');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
12
+
13
+ const React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
+
15
+ const LayerContextMenu = ({
16
+ layerId,
17
+ isSelected,
18
+ onSelect,
19
+ children,
20
+ className,
21
+ style
22
+ }) => {
23
+ const openContextMenu = editorStore.useEditorStore((state) => state.openContextMenu);
24
+ const {
25
+ handleCopy,
26
+ handleCut,
27
+ handlePaste,
28
+ handleDelete,
29
+ handleDuplicate,
30
+ getCanPaste
31
+ } = useLayerActions.useGlobalLayerActions(layerId);
32
+ const handleContextMenu = React.useCallback(
33
+ (e) => {
34
+ e.preventDefault();
35
+ e.stopPropagation();
36
+ if (!isSelected) {
37
+ onSelect(layerId);
38
+ }
39
+ openContextMenu(e.clientX, e.clientY, layerId);
40
+ },
41
+ [isSelected, layerId, onSelect, openContextMenu]
42
+ );
43
+ const isInputFocused = React.useCallback(() => {
44
+ const activeElement = document.activeElement;
45
+ if (!activeElement) return false;
46
+ const tagName = activeElement.tagName.toLowerCase();
47
+ const isContentEditable = activeElement.isContentEditable;
48
+ return tagName === "input" || tagName === "textarea" || isContentEditable;
49
+ }, []);
50
+ const keyCombinations = React.useMemo(() => {
51
+ if (!isSelected) return [];
52
+ return [
53
+ {
54
+ keys: shortcutRegistry.SHORTCUTS.copy.keys,
55
+ key: shortcutRegistry.SHORTCUTS.copy.key,
56
+ preventDefault: false,
57
+ handler: (e) => {
58
+ if (isInputFocused()) return;
59
+ e.preventDefault();
60
+ handleCopy();
61
+ }
62
+ },
63
+ {
64
+ keys: shortcutRegistry.SHORTCUTS.cut.keys,
65
+ key: shortcutRegistry.SHORTCUTS.cut.key,
66
+ preventDefault: false,
67
+ handler: (e) => {
68
+ if (isInputFocused()) return;
69
+ e.preventDefault();
70
+ handleCut();
71
+ }
72
+ },
73
+ {
74
+ keys: shortcutRegistry.SHORTCUTS.paste.keys,
75
+ key: shortcutRegistry.SHORTCUTS.paste.key,
76
+ preventDefault: false,
77
+ handler: (e) => {
78
+ if (isInputFocused()) return;
79
+ if (!getCanPaste()) return;
80
+ e.preventDefault();
81
+ handlePaste();
82
+ }
83
+ },
84
+ {
85
+ keys: shortcutRegistry.SHORTCUTS.duplicate.keys,
86
+ key: shortcutRegistry.SHORTCUTS.duplicate.key,
87
+ preventDefault: false,
88
+ handler: (e) => {
89
+ if (isInputFocused()) return;
90
+ e.preventDefault();
91
+ handleDuplicate();
92
+ }
93
+ },
94
+ {
95
+ keys: shortcutRegistry.SHORTCUTS.delete.keys,
96
+ key: shortcutRegistry.SHORTCUTS.delete.key,
97
+ preventDefault: false,
98
+ handler: (e) => {
99
+ if (isInputFocused()) return;
100
+ e.preventDefault();
101
+ handleDelete();
102
+ }
103
+ }
104
+ ];
105
+ }, [isSelected, handleCopy, handleCut, handlePaste, handleDuplicate, handleDelete, getCanPaste, isInputFocused]);
106
+ useKeyboardShortcuts.useKeyboardShortcuts(keyCombinations);
107
+ if (React__default.isValidElement(children)) {
108
+ return React__default.cloneElement(children, {
109
+ onContextMenu: handleContextMenu,
110
+ className: className ? `${children.props.className || ""} ${className}`.trim() : children.props.className,
111
+ style: style ? { ...children.props.style, ...style } : children.props.style
112
+ });
113
+ }
114
+ return /* @__PURE__ */ jsxRuntime.jsx(
115
+ "span",
116
+ {
117
+ onContextMenu: handleContextMenu,
118
+ className,
119
+ style,
120
+ children
121
+ }
122
+ );
123
+ };
124
+
125
+ exports.LayerContextMenu = LayerContextMenu;
@@ -0,0 +1,119 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React__default, { useCallback, useMemo } from 'react';
4
+ import { useGlobalLayerActions } from '../../../../lib/ui-builder/hooks/use-layer-actions.mjs';
5
+ import { useEditorStore } from '../../../../lib/ui-builder/store/editor-store.mjs';
6
+ import { useKeyboardShortcuts } from '../../../../hooks/use-keyboard-shortcuts.mjs';
7
+ import { SHORTCUTS } from '../../../../lib/ui-builder/shortcuts/shortcut-registry.mjs';
8
+
9
+ const LayerContextMenu = ({
10
+ layerId,
11
+ isSelected,
12
+ onSelect,
13
+ children,
14
+ className,
15
+ style
16
+ }) => {
17
+ const openContextMenu = useEditorStore((state) => state.openContextMenu);
18
+ const {
19
+ handleCopy,
20
+ handleCut,
21
+ handlePaste,
22
+ handleDelete,
23
+ handleDuplicate,
24
+ getCanPaste
25
+ } = useGlobalLayerActions(layerId);
26
+ const handleContextMenu = useCallback(
27
+ (e) => {
28
+ e.preventDefault();
29
+ e.stopPropagation();
30
+ if (!isSelected) {
31
+ onSelect(layerId);
32
+ }
33
+ openContextMenu(e.clientX, e.clientY, layerId);
34
+ },
35
+ [isSelected, layerId, onSelect, openContextMenu]
36
+ );
37
+ const isInputFocused = useCallback(() => {
38
+ const activeElement = document.activeElement;
39
+ if (!activeElement) return false;
40
+ const tagName = activeElement.tagName.toLowerCase();
41
+ const isContentEditable = activeElement.isContentEditable;
42
+ return tagName === "input" || tagName === "textarea" || isContentEditable;
43
+ }, []);
44
+ const keyCombinations = useMemo(() => {
45
+ if (!isSelected) return [];
46
+ return [
47
+ {
48
+ keys: SHORTCUTS.copy.keys,
49
+ key: SHORTCUTS.copy.key,
50
+ preventDefault: false,
51
+ handler: (e) => {
52
+ if (isInputFocused()) return;
53
+ e.preventDefault();
54
+ handleCopy();
55
+ }
56
+ },
57
+ {
58
+ keys: SHORTCUTS.cut.keys,
59
+ key: SHORTCUTS.cut.key,
60
+ preventDefault: false,
61
+ handler: (e) => {
62
+ if (isInputFocused()) return;
63
+ e.preventDefault();
64
+ handleCut();
65
+ }
66
+ },
67
+ {
68
+ keys: SHORTCUTS.paste.keys,
69
+ key: SHORTCUTS.paste.key,
70
+ preventDefault: false,
71
+ handler: (e) => {
72
+ if (isInputFocused()) return;
73
+ if (!getCanPaste()) return;
74
+ e.preventDefault();
75
+ handlePaste();
76
+ }
77
+ },
78
+ {
79
+ keys: SHORTCUTS.duplicate.keys,
80
+ key: SHORTCUTS.duplicate.key,
81
+ preventDefault: false,
82
+ handler: (e) => {
83
+ if (isInputFocused()) return;
84
+ e.preventDefault();
85
+ handleDuplicate();
86
+ }
87
+ },
88
+ {
89
+ keys: SHORTCUTS.delete.keys,
90
+ key: SHORTCUTS.delete.key,
91
+ preventDefault: false,
92
+ handler: (e) => {
93
+ if (isInputFocused()) return;
94
+ e.preventDefault();
95
+ handleDelete();
96
+ }
97
+ }
98
+ ];
99
+ }, [isSelected, handleCopy, handleCut, handlePaste, handleDuplicate, handleDelete, getCanPaste, isInputFocused]);
100
+ useKeyboardShortcuts(keyCombinations);
101
+ if (React__default.isValidElement(children)) {
102
+ return React__default.cloneElement(children, {
103
+ onContextMenu: handleContextMenu,
104
+ className: className ? `${children.props.className || ""} ${className}`.trim() : children.props.className,
105
+ style: style ? { ...children.props.style, ...style } : children.props.style
106
+ });
107
+ }
108
+ return /* @__PURE__ */ jsx(
109
+ "span",
110
+ {
111
+ onContextMenu: handleContextMenu,
112
+ className,
113
+ style,
114
+ children
115
+ }
116
+ );
117
+ };
118
+
119
+ export { LayerContextMenu };
@@ -9,24 +9,14 @@ const editorStore = require('../../../../lib/ui-builder/store/editor-store.cjs')
9
9
  const addComponentPopover = require('./add-component-popover.cjs');
10
10
  const utils = require('../../../../lib/utils.cjs');
11
11
  const schemaUtils = require('../../../../lib/ui-builder/store/schema-utils.cjs');
12
+ const useLayerActions = require('../../../../lib/ui-builder/hooks/use-layer-actions.cjs');
12
13
 
13
- const LayerMenu = ({
14
- layerId,
15
- handleDuplicateComponent,
16
- handleDeleteComponent
17
- }) => {
14
+ const LayerMenu = ({ layerId }) => {
18
15
  const selectedLayer = layerStore.useLayerStore((state) => state.findLayerById(layerId));
19
16
  const isLayerAPage = layerStore.useLayerStore((state) => state.isLayerAPage(layerId));
20
17
  const [popoverOpen, setPopoverOpen] = React.useState(false);
21
18
  const componentRegistry = editorStore.useEditorStore((state) => state.registry);
22
- const allowPagesCreation = editorStore.useEditorStore(
23
- (state) => state.allowPagesCreation
24
- );
25
- const allowPagesDeletion = editorStore.useEditorStore(
26
- (state) => state.allowPagesDeletion
27
- );
28
- const canDuplicate = !isLayerAPage || allowPagesCreation;
29
- const canDelete = !isLayerAPage || allowPagesDeletion;
19
+ const { canDuplicate, canDelete, handleDuplicate, handleDelete } = useLayerActions.useGlobalLayerActions(layerId);
30
20
  const buttonVariantsValues = React.useMemo(() => {
31
21
  return button.buttonVariants({ variant: "ghost", size: "sm" });
32
22
  }, []);
@@ -35,8 +25,7 @@ const LayerMenu = ({
35
25
  if (!selectedLayer) return false;
36
26
  const componentDef = componentRegistry[selectedLayer.type];
37
27
  if (!componentDef) return false;
38
- const canAddChildren = "shape" in componentDef.schema && schemaUtils.hasAnyChildrenField(componentDef.schema) && !schemaUtils.hasChildrenFieldOfTypeString(componentDef.schema);
39
- return canAddChildren;
28
+ return schemaUtils.canComponentAcceptChildren(componentDef.schema);
40
29
  }, [selectedLayer, componentRegistry]);
41
30
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(
42
31
  "div",
@@ -61,7 +50,7 @@ const LayerMenu = ({
61
50
  "div",
62
51
  {
63
52
  className: utils.cn(buttonVariantsValues, buttonClass),
64
- onClick: handleDuplicateComponent,
53
+ onClick: handleDuplicate,
65
54
  "data-testid": "duplicate-button",
66
55
  children: [
67
56
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sr-only", children: [
@@ -76,7 +65,7 @@ const LayerMenu = ({
76
65
  "div",
77
66
  {
78
67
  className: utils.cn(buttonVariantsValues, buttonClass),
79
- onClick: handleDeleteComponent,
68
+ onClick: handleDelete,
80
69
  "data-testid": "delete-button",
81
70
  children: [
82
71
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sr-only", children: [
@@ -6,25 +6,15 @@ import { useLayerStore } from '../../../../lib/ui-builder/store/layer-store.mjs'
6
6
  import { useEditorStore } from '../../../../lib/ui-builder/store/editor-store.mjs';
7
7
  import { AddComponentsPopover } from './add-component-popover.mjs';
8
8
  import { cn } from '../../../../lib/utils.mjs';
9
- import { hasAnyChildrenField, hasChildrenFieldOfTypeString } from '../../../../lib/ui-builder/store/schema-utils.mjs';
9
+ import { canComponentAcceptChildren } from '../../../../lib/ui-builder/store/schema-utils.mjs';
10
+ import { useGlobalLayerActions } from '../../../../lib/ui-builder/hooks/use-layer-actions.mjs';
10
11
 
11
- const LayerMenu = ({
12
- layerId,
13
- handleDuplicateComponent,
14
- handleDeleteComponent
15
- }) => {
12
+ const LayerMenu = ({ layerId }) => {
16
13
  const selectedLayer = useLayerStore((state) => state.findLayerById(layerId));
17
14
  const isLayerAPage = useLayerStore((state) => state.isLayerAPage(layerId));
18
15
  const [popoverOpen, setPopoverOpen] = useState(false);
19
16
  const componentRegistry = useEditorStore((state) => state.registry);
20
- const allowPagesCreation = useEditorStore(
21
- (state) => state.allowPagesCreation
22
- );
23
- const allowPagesDeletion = useEditorStore(
24
- (state) => state.allowPagesDeletion
25
- );
26
- const canDuplicate = !isLayerAPage || allowPagesCreation;
27
- const canDelete = !isLayerAPage || allowPagesDeletion;
17
+ const { canDuplicate, canDelete, handleDuplicate, handleDelete } = useGlobalLayerActions(layerId);
28
18
  const buttonVariantsValues = useMemo(() => {
29
19
  return buttonVariants({ variant: "ghost", size: "sm" });
30
20
  }, []);
@@ -33,8 +23,7 @@ const LayerMenu = ({
33
23
  if (!selectedLayer) return false;
34
24
  const componentDef = componentRegistry[selectedLayer.type];
35
25
  if (!componentDef) return false;
36
- const canAddChildren = "shape" in componentDef.schema && hasAnyChildrenField(componentDef.schema) && !hasChildrenFieldOfTypeString(componentDef.schema);
37
- return canAddChildren;
26
+ return canComponentAcceptChildren(componentDef.schema);
38
27
  }, [selectedLayer, componentRegistry]);
39
28
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
40
29
  "div",
@@ -59,7 +48,7 @@ const LayerMenu = ({
59
48
  "div",
60
49
  {
61
50
  className: cn(buttonVariantsValues, buttonClass),
62
- onClick: handleDuplicateComponent,
51
+ onClick: handleDuplicate,
63
52
  "data-testid": "duplicate-button",
64
53
  children: [
65
54
  /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
@@ -74,7 +63,7 @@ const LayerMenu = ({
74
63
  "div",
75
64
  {
76
65
  className: cn(buttonVariantsValues, buttonClass),
77
- onClick: handleDeleteComponent,
66
+ onClick: handleDelete,
78
67
  "data-testid": "delete-button",
79
68
  children: [
80
69
  /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [