@delmaredigital/payload-puck 0.6.13 → 0.6.15

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 (698) hide show
  1. package/README.md +15 -3
  2. package/dist/admin/EditWithPuckButton.d.ts +0 -1
  3. package/dist/admin/EditWithPuckButton.js +0 -2
  4. package/dist/admin/EditWithPuckCell.d.ts +0 -1
  5. package/dist/admin/EditWithPuckCell.js +0 -2
  6. package/dist/admin/PuckEditorView.d.ts +0 -1
  7. package/dist/admin/PuckEditorView.js +0 -2
  8. package/dist/admin/client.d.ts +0 -1
  9. package/dist/admin/client.js +0 -2
  10. package/dist/admin/generateAdminComponents.d.ts +0 -1
  11. package/dist/admin/generateAdminComponents.js +0 -2
  12. package/dist/admin/index.d.ts +0 -1
  13. package/dist/admin/index.js +0 -2
  14. package/dist/ai/collections/AiContext.d.ts +0 -1
  15. package/dist/ai/collections/AiContext.js +0 -2
  16. package/dist/ai/collections/AiPrompts.d.ts +0 -1
  17. package/dist/ai/collections/AiPrompts.js +0 -2
  18. package/dist/ai/createAiApiRoutes.d.ts +0 -1
  19. package/dist/ai/createAiApiRoutes.js +5 -4
  20. package/dist/ai/createAiGenerate.d.ts +0 -1
  21. package/dist/ai/createAiGenerate.js +5 -4
  22. package/dist/ai/createAiPlugin.d.ts +0 -1
  23. package/dist/ai/createAiPlugin.js +4 -4
  24. package/dist/ai/hooks/useAiContext.d.ts +0 -1
  25. package/dist/ai/hooks/useAiContext.js +0 -2
  26. package/dist/ai/hooks/useAiPrompts.d.ts +0 -1
  27. package/dist/ai/hooks/useAiPrompts.js +0 -2
  28. package/dist/ai/index.d.ts +0 -1
  29. package/dist/ai/index.js +0 -2
  30. package/dist/ai/plugins/ContextEditorPanel.d.ts +0 -1
  31. package/dist/ai/plugins/ContextEditorPanel.js +0 -2
  32. package/dist/ai/plugins/PromptEditorPanel.d.ts +0 -1
  33. package/dist/ai/plugins/PromptEditorPanel.js +0 -2
  34. package/dist/ai/plugins/contextEditorPlugin.d.ts +0 -1
  35. package/dist/ai/plugins/contextEditorPlugin.js +0 -2
  36. package/dist/ai/plugins/promptApiRoutes.d.ts +0 -1
  37. package/dist/ai/plugins/promptApiRoutes.js +0 -2
  38. package/dist/ai/plugins/promptEditorPlugin.d.ts +0 -1
  39. package/dist/ai/plugins/promptEditorPlugin.js +0 -2
  40. package/dist/ai/presets/componentAiDefaults.d.ts +0 -1
  41. package/dist/ai/presets/componentAiDefaults.js +0 -2
  42. package/dist/ai/presets/index.d.ts +0 -1
  43. package/dist/ai/presets/index.js +0 -2
  44. package/dist/ai/presets/instructions/interactive.d.ts +0 -1
  45. package/dist/ai/presets/instructions/interactive.js +0 -2
  46. package/dist/ai/presets/instructions/layout.d.ts +0 -1
  47. package/dist/ai/presets/instructions/layout.js +0 -2
  48. package/dist/ai/presets/instructions/media.d.ts +0 -1
  49. package/dist/ai/presets/instructions/media.js +0 -2
  50. package/dist/ai/presets/instructions/pagePatterns.d.ts +0 -1
  51. package/dist/ai/presets/instructions/pagePatterns.js +0 -2
  52. package/dist/ai/presets/instructions/schemas.d.ts +0 -1
  53. package/dist/ai/presets/instructions/schemas.js +0 -2
  54. package/dist/ai/presets/instructions/typography.d.ts +0 -1
  55. package/dist/ai/presets/instructions/typography.js +0 -2
  56. package/dist/ai/tools/index.d.ts +0 -1
  57. package/dist/ai/tools/index.js +0 -2
  58. package/dist/ai/types.d.ts +109 -3
  59. package/dist/ai/types.js +0 -2
  60. package/dist/ai/utils/injectAiConfig.d.ts +0 -1
  61. package/dist/ai/utils/injectAiConfig.js +0 -2
  62. package/dist/api/createPuckApiRoutes.d.ts +0 -1
  63. package/dist/api/createPuckApiRoutes.js +0 -2
  64. package/dist/api/createPuckApiRoutesVersions.d.ts +0 -1
  65. package/dist/api/createPuckApiRoutesVersions.js +0 -2
  66. package/dist/api/createPuckApiRoutesWithId.d.ts +0 -1
  67. package/dist/api/createPuckApiRoutesWithId.js +0 -2
  68. package/dist/api/index.d.ts +0 -1
  69. package/dist/api/index.js +0 -2
  70. package/dist/api/payload-config.d.js +1 -2
  71. package/dist/api/types.d.ts +0 -1
  72. package/dist/api/types.js +0 -2
  73. package/dist/api/utils/mapRootProps.d.ts +0 -1
  74. package/dist/api/utils/mapRootProps.js +0 -2
  75. package/dist/collections/Templates.d.ts +0 -1
  76. package/dist/collections/Templates.js +0 -2
  77. package/dist/components/AccordionClient.d.ts +0 -1
  78. package/dist/components/AccordionClient.js +0 -2
  79. package/dist/components/AnimatedWrapper.d.ts +0 -1
  80. package/dist/components/AnimatedWrapper.js +0 -2
  81. package/dist/components/exports.d.ts +0 -1
  82. package/dist/components/exports.js +0 -2
  83. package/dist/components/index.d.ts +0 -1
  84. package/dist/components/index.js +0 -2
  85. package/dist/components/interactive/Accordion.d.ts +0 -1
  86. package/dist/components/interactive/Accordion.js +0 -2
  87. package/dist/components/interactive/Accordion.server.d.ts +0 -1
  88. package/dist/components/interactive/Accordion.server.js +0 -2
  89. package/dist/components/interactive/Button.d.ts +0 -1
  90. package/dist/components/interactive/Button.js +0 -2
  91. package/dist/components/interactive/Button.server.d.ts +0 -1
  92. package/dist/components/interactive/Button.server.js +0 -2
  93. package/dist/components/interactive/Card.d.ts +0 -1
  94. package/dist/components/interactive/Card.js +0 -2
  95. package/dist/components/interactive/Card.server.d.ts +0 -1
  96. package/dist/components/interactive/Card.server.js +0 -2
  97. package/dist/components/interactive/Divider.d.ts +0 -1
  98. package/dist/components/interactive/Divider.js +0 -2
  99. package/dist/components/interactive/Divider.server.d.ts +0 -1
  100. package/dist/components/interactive/Divider.server.js +0 -2
  101. package/dist/components/interactive/index.d.ts +0 -1
  102. package/dist/components/interactive/index.js +0 -2
  103. package/dist/components/layout/Container.d.ts +0 -1
  104. package/dist/components/layout/Container.js +0 -2
  105. package/dist/components/layout/Container.server.d.ts +0 -1
  106. package/dist/components/layout/Container.server.js +0 -2
  107. package/dist/components/layout/Flex.d.ts +0 -1
  108. package/dist/components/layout/Flex.js +0 -2
  109. package/dist/components/layout/Flex.server.d.ts +0 -1
  110. package/dist/components/layout/Flex.server.js +0 -2
  111. package/dist/components/layout/Grid.d.ts +0 -1
  112. package/dist/components/layout/Grid.js +0 -2
  113. package/dist/components/layout/Grid.server.d.ts +0 -1
  114. package/dist/components/layout/Grid.server.js +0 -2
  115. package/dist/components/layout/Section.d.ts +0 -1
  116. package/dist/components/layout/Section.js +0 -2
  117. package/dist/components/layout/Section.server.d.ts +0 -1
  118. package/dist/components/layout/Section.server.js +0 -2
  119. package/dist/components/layout/Spacer.d.ts +0 -1
  120. package/dist/components/layout/Spacer.js +0 -2
  121. package/dist/components/layout/Spacer.server.d.ts +0 -1
  122. package/dist/components/layout/Spacer.server.js +0 -2
  123. package/dist/components/layout/Template.d.ts +0 -1
  124. package/dist/components/layout/Template.js +0 -2
  125. package/dist/components/layout/Template.server.d.ts +0 -1
  126. package/dist/components/layout/Template.server.js +0 -2
  127. package/dist/components/layout/index.d.ts +0 -1
  128. package/dist/components/layout/index.js +0 -2
  129. package/dist/components/media/Image.d.ts +0 -1
  130. package/dist/components/media/Image.js +0 -2
  131. package/dist/components/media/Image.server.d.ts +0 -1
  132. package/dist/components/media/Image.server.js +0 -2
  133. package/dist/components/media/index.d.ts +0 -1
  134. package/dist/components/media/index.js +0 -2
  135. package/dist/components/typography/Heading.d.ts +0 -1
  136. package/dist/components/typography/Heading.js +0 -2
  137. package/dist/components/typography/Heading.server.d.ts +0 -1
  138. package/dist/components/typography/Heading.server.js +0 -2
  139. package/dist/components/typography/RichText.editor.d.ts +0 -1
  140. package/dist/components/typography/RichText.editor.js +0 -2
  141. package/dist/components/typography/RichText.server.d.ts +0 -1
  142. package/dist/components/typography/RichText.server.js +0 -2
  143. package/dist/components/typography/Text.d.ts +0 -1
  144. package/dist/components/typography/Text.js +0 -2
  145. package/dist/components/typography/Text.server.d.ts +0 -1
  146. package/dist/components/typography/Text.server.js +0 -2
  147. package/dist/components/typography/index.d.ts +0 -1
  148. package/dist/components/typography/index.js +0 -2
  149. package/dist/config/config.editor.d.ts +0 -1
  150. package/dist/config/config.editor.js +0 -2
  151. package/dist/config/index.d.ts +0 -1
  152. package/dist/config/index.js +0 -2
  153. package/dist/config/merge.d.ts +0 -1
  154. package/dist/config/merge.js +0 -2
  155. package/dist/config/presets.d.ts +0 -1
  156. package/dist/config/presets.js +0 -2
  157. package/dist/config/types.d.ts +0 -1
  158. package/dist/config/types.js +0 -2
  159. package/dist/editor/PuckEditor.d.ts +18 -1
  160. package/dist/editor/PuckEditor.js +0 -2
  161. package/dist/editor/PuckEditorImpl.client.d.ts +10 -1
  162. package/dist/editor/PuckEditorImpl.client.js +3 -3
  163. package/dist/editor/components/DarkModeStyles.d.ts +0 -1
  164. package/dist/editor/components/DarkModeStyles.js +0 -2
  165. package/dist/editor/components/HeaderActions.d.ts +0 -1
  166. package/dist/editor/components/HeaderActions.js +0 -2
  167. package/dist/editor/components/IframeWrapper.d.ts +0 -1
  168. package/dist/editor/components/IframeWrapper.js +0 -2
  169. package/dist/editor/components/LoadingState.d.ts +0 -1
  170. package/dist/editor/components/LoadingState.js +0 -2
  171. package/dist/editor/components/PreviewModal.d.ts +0 -1
  172. package/dist/editor/components/PreviewModal.js +0 -2
  173. package/dist/editor/components/PreviewModeToggle.d.ts +0 -1
  174. package/dist/editor/components/PreviewModeToggle.js +0 -2
  175. package/dist/editor/components/VersionHistory.d.ts +0 -1
  176. package/dist/editor/components/VersionHistory.js +0 -2
  177. package/dist/editor/hooks/useDarkMode.d.ts +0 -1
  178. package/dist/editor/hooks/useDarkMode.js +0 -2
  179. package/dist/editor/hooks/useUnsavedChanges.d.ts +0 -1
  180. package/dist/editor/hooks/useUnsavedChanges.js +0 -2
  181. package/dist/editor/index.d.ts +0 -1
  182. package/dist/editor/index.js +0 -2
  183. package/dist/editor/plugins/VersionHistoryPanel.d.ts +0 -1
  184. package/dist/editor/plugins/VersionHistoryPanel.js +0 -2
  185. package/dist/editor/plugins/index.d.ts +0 -1
  186. package/dist/editor/plugins/index.js +0 -2
  187. package/dist/editor/plugins/versionHistoryPlugin.d.ts +0 -1
  188. package/dist/editor/plugins/versionHistoryPlugin.js +0 -2
  189. package/dist/editor/utils/detectPageTree.d.ts +0 -1
  190. package/dist/editor/utils/detectPageTree.js +0 -2
  191. package/dist/editor/utils/index.d.ts +0 -1
  192. package/dist/editor/utils/index.js +0 -2
  193. package/dist/editor/utils/injectPageTreeFields.d.ts +0 -1
  194. package/dist/editor/utils/injectPageTreeFields.js +0 -2
  195. package/dist/endpoints/ai.d.ts +13 -1
  196. package/dist/endpoints/ai.js +6 -3
  197. package/dist/endpoints/context.d.ts +0 -1
  198. package/dist/endpoints/context.js +0 -2
  199. package/dist/endpoints/index.d.ts +0 -1
  200. package/dist/endpoints/index.js +0 -2
  201. package/dist/endpoints/postcss.d.js +1 -2
  202. package/dist/endpoints/prompts.d.ts +0 -1
  203. package/dist/endpoints/prompts.js +0 -2
  204. package/dist/endpoints/styles.d.ts +0 -1
  205. package/dist/endpoints/styles.js +0 -2
  206. package/dist/exports/client.d.ts +0 -1
  207. package/dist/exports/client.js +0 -2
  208. package/dist/exports/rsc.d.ts +0 -1
  209. package/dist/exports/rsc.js +0 -2
  210. package/dist/fields/AlignmentField.d.ts +0 -1
  211. package/dist/fields/AlignmentField.js +0 -2
  212. package/dist/fields/AnimationField.d.ts +0 -1
  213. package/dist/fields/AnimationField.js +0 -2
  214. package/dist/fields/BackgroundField.d.ts +0 -1
  215. package/dist/fields/BackgroundField.js +0 -2
  216. package/dist/fields/BorderField.d.ts +0 -1
  217. package/dist/fields/BorderField.js +0 -2
  218. package/dist/fields/ColorPickerField.d.ts +0 -1
  219. package/dist/fields/ColorPickerField.js +0 -2
  220. package/dist/fields/ContentAlignmentField.d.ts +0 -1
  221. package/dist/fields/ContentAlignmentField.js +0 -2
  222. package/dist/fields/DimensionsField.d.ts +0 -1
  223. package/dist/fields/DimensionsField.js +0 -2
  224. package/dist/fields/FlexAlignmentField.d.ts +0 -1
  225. package/dist/fields/FlexAlignmentField.js +0 -2
  226. package/dist/fields/FolderPickerField.d.ts +0 -1
  227. package/dist/fields/FolderPickerField.js +0 -2
  228. package/dist/fields/GradientEditor.d.ts +0 -1
  229. package/dist/fields/GradientEditor.js +0 -2
  230. package/dist/fields/LockedField.d.ts +0 -1
  231. package/dist/fields/LockedField.js +0 -2
  232. package/dist/fields/MarginField.d.ts +0 -1
  233. package/dist/fields/MarginField.js +0 -2
  234. package/dist/fields/MediaField.d.ts +0 -1
  235. package/dist/fields/MediaField.js +0 -2
  236. package/dist/fields/PaddingField.d.ts +0 -1
  237. package/dist/fields/PaddingField.js +0 -2
  238. package/dist/fields/PageSegmentField.d.ts +0 -1
  239. package/dist/fields/PageSegmentField.js +0 -2
  240. package/dist/fields/ResetField.d.ts +0 -1
  241. package/dist/fields/ResetField.js +0 -2
  242. package/dist/fields/ResponsiveField.d.ts +0 -1
  243. package/dist/fields/ResponsiveField.js +0 -2
  244. package/dist/fields/ResponsiveVisibilityField.d.ts +0 -1
  245. package/dist/fields/ResponsiveVisibilityField.js +0 -2
  246. package/dist/fields/SizeField.d.ts +0 -1
  247. package/dist/fields/SizeField.js +0 -2
  248. package/dist/fields/SlugPreviewField.d.ts +0 -1
  249. package/dist/fields/SlugPreviewField.js +0 -2
  250. package/dist/fields/TemplateField.d.ts +0 -1
  251. package/dist/fields/TemplateField.js +0 -2
  252. package/dist/fields/TransformField.d.ts +0 -1
  253. package/dist/fields/TransformField.js +0 -2
  254. package/dist/fields/VerticalAlignmentField.d.ts +0 -1
  255. package/dist/fields/VerticalAlignmentField.js +0 -2
  256. package/dist/fields/WidthField.d.ts +0 -1
  257. package/dist/fields/WidthField.js +0 -2
  258. package/dist/fields/index.d.ts +0 -1
  259. package/dist/fields/index.js +0 -2
  260. package/dist/fields/richtext/controls/ColorPickerControl.d.ts +0 -1
  261. package/dist/fields/richtext/controls/ColorPickerControl.js +0 -2
  262. package/dist/fields/richtext/controls/DropdownPortal.d.ts +0 -1
  263. package/dist/fields/richtext/controls/DropdownPortal.js +0 -2
  264. package/dist/fields/richtext/controls/FontSizeControl.d.ts +0 -1
  265. package/dist/fields/richtext/controls/FontSizeControl.js +0 -2
  266. package/dist/fields/richtext/controls/HighlightControl.d.ts +0 -1
  267. package/dist/fields/richtext/controls/HighlightControl.js +0 -2
  268. package/dist/fields/richtext/controls/index.d.ts +0 -1
  269. package/dist/fields/richtext/controls/index.js +0 -2
  270. package/dist/fields/richtext/controls/shared.d.ts +0 -1
  271. package/dist/fields/richtext/controls/shared.js +0 -2
  272. package/dist/fields/richtext/createRichTextField.d.ts +0 -1
  273. package/dist/fields/richtext/createRichTextField.js +0 -2
  274. package/dist/fields/richtext/extensions/FontSize.d.ts +0 -1
  275. package/dist/fields/richtext/extensions/FontSize.js +0 -2
  276. package/dist/fields/richtext/extensions/index.d.ts +0 -1
  277. package/dist/fields/richtext/extensions/index.js +0 -2
  278. package/dist/fields/richtext/index.d.ts +0 -1
  279. package/dist/fields/richtext/index.js +0 -2
  280. package/dist/fields/shared.d.ts +0 -1
  281. package/dist/fields/shared.js +0 -2
  282. package/dist/hooks/index.d.ts +0 -1
  283. package/dist/hooks/index.js +0 -2
  284. package/dist/hooks/useResponsiveStyles.d.ts +0 -1
  285. package/dist/hooks/useResponsiveStyles.js +0 -2
  286. package/dist/hooks/useScrollAnimation.d.ts +0 -1
  287. package/dist/hooks/useScrollAnimation.js +0 -2
  288. package/dist/index.d.ts +0 -1
  289. package/dist/index.js +0 -2
  290. package/dist/layouts/LayoutWrapper.d.ts +0 -1
  291. package/dist/layouts/LayoutWrapper.js +0 -2
  292. package/dist/layouts/defaults.d.ts +0 -1
  293. package/dist/layouts/defaults.js +0 -2
  294. package/dist/layouts/index.d.ts +0 -1
  295. package/dist/layouts/index.js +0 -2
  296. package/dist/layouts/types.d.ts +0 -1
  297. package/dist/layouts/types.js +0 -2
  298. package/dist/layouts/utils.d.ts +0 -1
  299. package/dist/layouts/utils.js +0 -2
  300. package/dist/next/index.d.ts +0 -1
  301. package/dist/next/index.js +0 -2
  302. package/dist/plugin/collections/Pages.d.ts +0 -1
  303. package/dist/plugin/collections/Pages.js +0 -2
  304. package/dist/plugin/fields/index.d.ts +0 -1
  305. package/dist/plugin/fields/index.js +0 -2
  306. package/dist/plugin/fields/types.d.ts +0 -1
  307. package/dist/plugin/fields/types.js +0 -2
  308. package/dist/plugin/hooks/index.d.ts +0 -1
  309. package/dist/plugin/hooks/index.js +0 -2
  310. package/dist/plugin/hooks/isHomepageUnique.d.ts +0 -1
  311. package/dist/plugin/hooks/isHomepageUnique.js +0 -2
  312. package/dist/plugin/index.d.ts +0 -1
  313. package/dist/plugin/index.js +2 -3
  314. package/dist/render/HybridPageRenderer.d.ts +0 -1
  315. package/dist/render/HybridPageRenderer.js +0 -2
  316. package/dist/render/PageRenderer.d.ts +0 -1
  317. package/dist/render/PageRenderer.js +0 -2
  318. package/dist/render/PuckEditor.client.d.ts +0 -1
  319. package/dist/render/PuckEditor.client.js +0 -2
  320. package/dist/render/index.d.ts +0 -1
  321. package/dist/render/index.js +0 -2
  322. package/dist/theme/context.d.ts +0 -1
  323. package/dist/theme/context.js +0 -2
  324. package/dist/theme/defaults.d.ts +0 -1
  325. package/dist/theme/defaults.js +0 -2
  326. package/dist/theme/example.d.ts +0 -1
  327. package/dist/theme/example.js +0 -2
  328. package/dist/theme/index.d.ts +0 -1
  329. package/dist/theme/index.js +0 -2
  330. package/dist/theme/types.d.ts +0 -1
  331. package/dist/theme/types.js +0 -2
  332. package/dist/theme/utils.d.ts +0 -1
  333. package/dist/theme/utils.js +0 -2
  334. package/dist/types/index.d.ts +0 -1
  335. package/dist/types/index.js +0 -2
  336. package/dist/utils/index.d.ts +0 -1
  337. package/dist/utils/index.js +0 -2
  338. package/dist/utils/migration.d.ts +0 -1
  339. package/dist/utils/migration.js +0 -2
  340. package/dist/utils/validation.d.ts +0 -1
  341. package/dist/utils/validation.js +0 -2
  342. package/dist/version.d.ts +1 -2
  343. package/dist/version.js +1 -3
  344. package/dist/views/PuckConfigContext.d.ts +0 -1
  345. package/dist/views/PuckConfigContext.js +0 -2
  346. package/dist/views/PuckEditorView.d.ts +0 -1
  347. package/dist/views/PuckEditorView.js +0 -2
  348. package/dist/views/index.d.ts +0 -1
  349. package/dist/views/index.js +0 -2
  350. package/package.json +20 -20
  351. package/dist/admin/EditWithPuckButton.d.ts.map +0 -1
  352. package/dist/admin/EditWithPuckButton.js.map +0 -1
  353. package/dist/admin/EditWithPuckCell.d.ts.map +0 -1
  354. package/dist/admin/EditWithPuckCell.js.map +0 -1
  355. package/dist/admin/PuckEditorView.d.ts.map +0 -1
  356. package/dist/admin/PuckEditorView.js.map +0 -1
  357. package/dist/admin/client.d.ts.map +0 -1
  358. package/dist/admin/client.js.map +0 -1
  359. package/dist/admin/generateAdminComponents.d.ts.map +0 -1
  360. package/dist/admin/generateAdminComponents.js.map +0 -1
  361. package/dist/admin/index.d.ts.map +0 -1
  362. package/dist/admin/index.js.map +0 -1
  363. package/dist/ai/collections/AiContext.d.ts.map +0 -1
  364. package/dist/ai/collections/AiContext.js.map +0 -1
  365. package/dist/ai/collections/AiPrompts.d.ts.map +0 -1
  366. package/dist/ai/collections/AiPrompts.js.map +0 -1
  367. package/dist/ai/createAiApiRoutes.d.ts.map +0 -1
  368. package/dist/ai/createAiApiRoutes.js.map +0 -1
  369. package/dist/ai/createAiGenerate.d.ts.map +0 -1
  370. package/dist/ai/createAiGenerate.js.map +0 -1
  371. package/dist/ai/createAiPlugin.d.ts.map +0 -1
  372. package/dist/ai/createAiPlugin.js.map +0 -1
  373. package/dist/ai/hooks/useAiContext.d.ts.map +0 -1
  374. package/dist/ai/hooks/useAiContext.js.map +0 -1
  375. package/dist/ai/hooks/useAiPrompts.d.ts.map +0 -1
  376. package/dist/ai/hooks/useAiPrompts.js.map +0 -1
  377. package/dist/ai/index.d.ts.map +0 -1
  378. package/dist/ai/index.js.map +0 -1
  379. package/dist/ai/plugins/ContextEditorPanel.d.ts.map +0 -1
  380. package/dist/ai/plugins/ContextEditorPanel.js.map +0 -1
  381. package/dist/ai/plugins/PromptEditorPanel.d.ts.map +0 -1
  382. package/dist/ai/plugins/PromptEditorPanel.js.map +0 -1
  383. package/dist/ai/plugins/contextEditorPlugin.d.ts.map +0 -1
  384. package/dist/ai/plugins/contextEditorPlugin.js.map +0 -1
  385. package/dist/ai/plugins/promptApiRoutes.d.ts.map +0 -1
  386. package/dist/ai/plugins/promptApiRoutes.js.map +0 -1
  387. package/dist/ai/plugins/promptEditorPlugin.d.ts.map +0 -1
  388. package/dist/ai/plugins/promptEditorPlugin.js.map +0 -1
  389. package/dist/ai/presets/componentAiDefaults.d.ts.map +0 -1
  390. package/dist/ai/presets/componentAiDefaults.js.map +0 -1
  391. package/dist/ai/presets/index.d.ts.map +0 -1
  392. package/dist/ai/presets/index.js.map +0 -1
  393. package/dist/ai/presets/instructions/interactive.d.ts.map +0 -1
  394. package/dist/ai/presets/instructions/interactive.js.map +0 -1
  395. package/dist/ai/presets/instructions/layout.d.ts.map +0 -1
  396. package/dist/ai/presets/instructions/layout.js.map +0 -1
  397. package/dist/ai/presets/instructions/media.d.ts.map +0 -1
  398. package/dist/ai/presets/instructions/media.js.map +0 -1
  399. package/dist/ai/presets/instructions/pagePatterns.d.ts.map +0 -1
  400. package/dist/ai/presets/instructions/pagePatterns.js.map +0 -1
  401. package/dist/ai/presets/instructions/schemas.d.ts.map +0 -1
  402. package/dist/ai/presets/instructions/schemas.js.map +0 -1
  403. package/dist/ai/presets/instructions/typography.d.ts.map +0 -1
  404. package/dist/ai/presets/instructions/typography.js.map +0 -1
  405. package/dist/ai/tools/index.d.ts.map +0 -1
  406. package/dist/ai/tools/index.js.map +0 -1
  407. package/dist/ai/types.d.ts.map +0 -1
  408. package/dist/ai/types.js.map +0 -1
  409. package/dist/ai/utils/injectAiConfig.d.ts.map +0 -1
  410. package/dist/ai/utils/injectAiConfig.js.map +0 -1
  411. package/dist/api/createPuckApiRoutes.d.ts.map +0 -1
  412. package/dist/api/createPuckApiRoutes.js.map +0 -1
  413. package/dist/api/createPuckApiRoutesVersions.d.ts.map +0 -1
  414. package/dist/api/createPuckApiRoutesVersions.js.map +0 -1
  415. package/dist/api/createPuckApiRoutesWithId.d.ts.map +0 -1
  416. package/dist/api/createPuckApiRoutesWithId.js.map +0 -1
  417. package/dist/api/index.d.ts.map +0 -1
  418. package/dist/api/index.js.map +0 -1
  419. package/dist/api/payload-config.d.js.map +0 -1
  420. package/dist/api/types.d.ts.map +0 -1
  421. package/dist/api/types.js.map +0 -1
  422. package/dist/api/utils/mapRootProps.d.ts.map +0 -1
  423. package/dist/api/utils/mapRootProps.js.map +0 -1
  424. package/dist/collections/Templates.d.ts.map +0 -1
  425. package/dist/collections/Templates.js.map +0 -1
  426. package/dist/components/AccordionClient.d.ts.map +0 -1
  427. package/dist/components/AccordionClient.js.map +0 -1
  428. package/dist/components/AnimatedWrapper.d.ts.map +0 -1
  429. package/dist/components/AnimatedWrapper.js.map +0 -1
  430. package/dist/components/exports.d.ts.map +0 -1
  431. package/dist/components/exports.js.map +0 -1
  432. package/dist/components/index.d.ts.map +0 -1
  433. package/dist/components/index.js.map +0 -1
  434. package/dist/components/interactive/Accordion.d.ts.map +0 -1
  435. package/dist/components/interactive/Accordion.js.map +0 -1
  436. package/dist/components/interactive/Accordion.server.d.ts.map +0 -1
  437. package/dist/components/interactive/Accordion.server.js.map +0 -1
  438. package/dist/components/interactive/Button.d.ts.map +0 -1
  439. package/dist/components/interactive/Button.js.map +0 -1
  440. package/dist/components/interactive/Button.server.d.ts.map +0 -1
  441. package/dist/components/interactive/Button.server.js.map +0 -1
  442. package/dist/components/interactive/Card.d.ts.map +0 -1
  443. package/dist/components/interactive/Card.js.map +0 -1
  444. package/dist/components/interactive/Card.server.d.ts.map +0 -1
  445. package/dist/components/interactive/Card.server.js.map +0 -1
  446. package/dist/components/interactive/Divider.d.ts.map +0 -1
  447. package/dist/components/interactive/Divider.js.map +0 -1
  448. package/dist/components/interactive/Divider.server.d.ts.map +0 -1
  449. package/dist/components/interactive/Divider.server.js.map +0 -1
  450. package/dist/components/interactive/index.d.ts.map +0 -1
  451. package/dist/components/interactive/index.js.map +0 -1
  452. package/dist/components/layout/Container.d.ts.map +0 -1
  453. package/dist/components/layout/Container.js.map +0 -1
  454. package/dist/components/layout/Container.server.d.ts.map +0 -1
  455. package/dist/components/layout/Container.server.js.map +0 -1
  456. package/dist/components/layout/Flex.d.ts.map +0 -1
  457. package/dist/components/layout/Flex.js.map +0 -1
  458. package/dist/components/layout/Flex.server.d.ts.map +0 -1
  459. package/dist/components/layout/Flex.server.js.map +0 -1
  460. package/dist/components/layout/Grid.d.ts.map +0 -1
  461. package/dist/components/layout/Grid.js.map +0 -1
  462. package/dist/components/layout/Grid.server.d.ts.map +0 -1
  463. package/dist/components/layout/Grid.server.js.map +0 -1
  464. package/dist/components/layout/Section.d.ts.map +0 -1
  465. package/dist/components/layout/Section.js.map +0 -1
  466. package/dist/components/layout/Section.server.d.ts.map +0 -1
  467. package/dist/components/layout/Section.server.js.map +0 -1
  468. package/dist/components/layout/Spacer.d.ts.map +0 -1
  469. package/dist/components/layout/Spacer.js.map +0 -1
  470. package/dist/components/layout/Spacer.server.d.ts.map +0 -1
  471. package/dist/components/layout/Spacer.server.js.map +0 -1
  472. package/dist/components/layout/Template.d.ts.map +0 -1
  473. package/dist/components/layout/Template.js.map +0 -1
  474. package/dist/components/layout/Template.server.d.ts.map +0 -1
  475. package/dist/components/layout/Template.server.js.map +0 -1
  476. package/dist/components/layout/index.d.ts.map +0 -1
  477. package/dist/components/layout/index.js.map +0 -1
  478. package/dist/components/media/Image.d.ts.map +0 -1
  479. package/dist/components/media/Image.js.map +0 -1
  480. package/dist/components/media/Image.server.d.ts.map +0 -1
  481. package/dist/components/media/Image.server.js.map +0 -1
  482. package/dist/components/media/index.d.ts.map +0 -1
  483. package/dist/components/media/index.js.map +0 -1
  484. package/dist/components/typography/Heading.d.ts.map +0 -1
  485. package/dist/components/typography/Heading.js.map +0 -1
  486. package/dist/components/typography/Heading.server.d.ts.map +0 -1
  487. package/dist/components/typography/Heading.server.js.map +0 -1
  488. package/dist/components/typography/RichText.editor.d.ts.map +0 -1
  489. package/dist/components/typography/RichText.editor.js.map +0 -1
  490. package/dist/components/typography/RichText.server.d.ts.map +0 -1
  491. package/dist/components/typography/RichText.server.js.map +0 -1
  492. package/dist/components/typography/Text.d.ts.map +0 -1
  493. package/dist/components/typography/Text.js.map +0 -1
  494. package/dist/components/typography/Text.server.d.ts.map +0 -1
  495. package/dist/components/typography/Text.server.js.map +0 -1
  496. package/dist/components/typography/index.d.ts.map +0 -1
  497. package/dist/components/typography/index.js.map +0 -1
  498. package/dist/config/config.editor.d.ts.map +0 -1
  499. package/dist/config/config.editor.js.map +0 -1
  500. package/dist/config/index.d.ts.map +0 -1
  501. package/dist/config/index.js.map +0 -1
  502. package/dist/config/merge.d.ts.map +0 -1
  503. package/dist/config/merge.js.map +0 -1
  504. package/dist/config/presets.d.ts.map +0 -1
  505. package/dist/config/presets.js.map +0 -1
  506. package/dist/config/types.d.ts.map +0 -1
  507. package/dist/config/types.js.map +0 -1
  508. package/dist/editor/PuckEditor.d.ts.map +0 -1
  509. package/dist/editor/PuckEditor.js.map +0 -1
  510. package/dist/editor/PuckEditorImpl.client.d.ts.map +0 -1
  511. package/dist/editor/PuckEditorImpl.client.js.map +0 -1
  512. package/dist/editor/components/DarkModeStyles.d.ts.map +0 -1
  513. package/dist/editor/components/DarkModeStyles.js.map +0 -1
  514. package/dist/editor/components/HeaderActions.d.ts.map +0 -1
  515. package/dist/editor/components/HeaderActions.js.map +0 -1
  516. package/dist/editor/components/IframeWrapper.d.ts.map +0 -1
  517. package/dist/editor/components/IframeWrapper.js.map +0 -1
  518. package/dist/editor/components/LoadingState.d.ts.map +0 -1
  519. package/dist/editor/components/LoadingState.js.map +0 -1
  520. package/dist/editor/components/PreviewModal.d.ts.map +0 -1
  521. package/dist/editor/components/PreviewModal.js.map +0 -1
  522. package/dist/editor/components/PreviewModeToggle.d.ts.map +0 -1
  523. package/dist/editor/components/PreviewModeToggle.js.map +0 -1
  524. package/dist/editor/components/VersionHistory.d.ts.map +0 -1
  525. package/dist/editor/components/VersionHistory.js.map +0 -1
  526. package/dist/editor/hooks/useDarkMode.d.ts.map +0 -1
  527. package/dist/editor/hooks/useDarkMode.js.map +0 -1
  528. package/dist/editor/hooks/useUnsavedChanges.d.ts.map +0 -1
  529. package/dist/editor/hooks/useUnsavedChanges.js.map +0 -1
  530. package/dist/editor/index.d.ts.map +0 -1
  531. package/dist/editor/index.js.map +0 -1
  532. package/dist/editor/plugins/VersionHistoryPanel.d.ts.map +0 -1
  533. package/dist/editor/plugins/VersionHistoryPanel.js.map +0 -1
  534. package/dist/editor/plugins/index.d.ts.map +0 -1
  535. package/dist/editor/plugins/index.js.map +0 -1
  536. package/dist/editor/plugins/versionHistoryPlugin.d.ts.map +0 -1
  537. package/dist/editor/plugins/versionHistoryPlugin.js.map +0 -1
  538. package/dist/editor/utils/detectPageTree.d.ts.map +0 -1
  539. package/dist/editor/utils/detectPageTree.js.map +0 -1
  540. package/dist/editor/utils/index.d.ts.map +0 -1
  541. package/dist/editor/utils/index.js.map +0 -1
  542. package/dist/editor/utils/injectPageTreeFields.d.ts.map +0 -1
  543. package/dist/editor/utils/injectPageTreeFields.js.map +0 -1
  544. package/dist/endpoints/ai.d.ts.map +0 -1
  545. package/dist/endpoints/ai.js.map +0 -1
  546. package/dist/endpoints/context.d.ts.map +0 -1
  547. package/dist/endpoints/context.js.map +0 -1
  548. package/dist/endpoints/index.d.ts.map +0 -1
  549. package/dist/endpoints/index.js.map +0 -1
  550. package/dist/endpoints/postcss.d.js.map +0 -1
  551. package/dist/endpoints/prompts.d.ts.map +0 -1
  552. package/dist/endpoints/prompts.js.map +0 -1
  553. package/dist/endpoints/styles.d.ts.map +0 -1
  554. package/dist/endpoints/styles.js.map +0 -1
  555. package/dist/exports/client.d.ts.map +0 -1
  556. package/dist/exports/client.js.map +0 -1
  557. package/dist/exports/rsc.d.ts.map +0 -1
  558. package/dist/exports/rsc.js.map +0 -1
  559. package/dist/fields/AlignmentField.d.ts.map +0 -1
  560. package/dist/fields/AlignmentField.js.map +0 -1
  561. package/dist/fields/AnimationField.d.ts.map +0 -1
  562. package/dist/fields/AnimationField.js.map +0 -1
  563. package/dist/fields/BackgroundField.d.ts.map +0 -1
  564. package/dist/fields/BackgroundField.js.map +0 -1
  565. package/dist/fields/BorderField.d.ts.map +0 -1
  566. package/dist/fields/BorderField.js.map +0 -1
  567. package/dist/fields/ColorPickerField.d.ts.map +0 -1
  568. package/dist/fields/ColorPickerField.js.map +0 -1
  569. package/dist/fields/ContentAlignmentField.d.ts.map +0 -1
  570. package/dist/fields/ContentAlignmentField.js.map +0 -1
  571. package/dist/fields/DimensionsField.d.ts.map +0 -1
  572. package/dist/fields/DimensionsField.js.map +0 -1
  573. package/dist/fields/FlexAlignmentField.d.ts.map +0 -1
  574. package/dist/fields/FlexAlignmentField.js.map +0 -1
  575. package/dist/fields/FolderPickerField.d.ts.map +0 -1
  576. package/dist/fields/FolderPickerField.js.map +0 -1
  577. package/dist/fields/GradientEditor.d.ts.map +0 -1
  578. package/dist/fields/GradientEditor.js.map +0 -1
  579. package/dist/fields/LockedField.d.ts.map +0 -1
  580. package/dist/fields/LockedField.js.map +0 -1
  581. package/dist/fields/MarginField.d.ts.map +0 -1
  582. package/dist/fields/MarginField.js.map +0 -1
  583. package/dist/fields/MediaField.d.ts.map +0 -1
  584. package/dist/fields/MediaField.js.map +0 -1
  585. package/dist/fields/PaddingField.d.ts.map +0 -1
  586. package/dist/fields/PaddingField.js.map +0 -1
  587. package/dist/fields/PageSegmentField.d.ts.map +0 -1
  588. package/dist/fields/PageSegmentField.js.map +0 -1
  589. package/dist/fields/ResetField.d.ts.map +0 -1
  590. package/dist/fields/ResetField.js.map +0 -1
  591. package/dist/fields/ResponsiveField.d.ts.map +0 -1
  592. package/dist/fields/ResponsiveField.js.map +0 -1
  593. package/dist/fields/ResponsiveVisibilityField.d.ts.map +0 -1
  594. package/dist/fields/ResponsiveVisibilityField.js.map +0 -1
  595. package/dist/fields/SizeField.d.ts.map +0 -1
  596. package/dist/fields/SizeField.js.map +0 -1
  597. package/dist/fields/SlugPreviewField.d.ts.map +0 -1
  598. package/dist/fields/SlugPreviewField.js.map +0 -1
  599. package/dist/fields/TemplateField.d.ts.map +0 -1
  600. package/dist/fields/TemplateField.js.map +0 -1
  601. package/dist/fields/TransformField.d.ts.map +0 -1
  602. package/dist/fields/TransformField.js.map +0 -1
  603. package/dist/fields/VerticalAlignmentField.d.ts.map +0 -1
  604. package/dist/fields/VerticalAlignmentField.js.map +0 -1
  605. package/dist/fields/WidthField.d.ts.map +0 -1
  606. package/dist/fields/WidthField.js.map +0 -1
  607. package/dist/fields/index.d.ts.map +0 -1
  608. package/dist/fields/index.js.map +0 -1
  609. package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +0 -1
  610. package/dist/fields/richtext/controls/ColorPickerControl.js.map +0 -1
  611. package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +0 -1
  612. package/dist/fields/richtext/controls/DropdownPortal.js.map +0 -1
  613. package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +0 -1
  614. package/dist/fields/richtext/controls/FontSizeControl.js.map +0 -1
  615. package/dist/fields/richtext/controls/HighlightControl.d.ts.map +0 -1
  616. package/dist/fields/richtext/controls/HighlightControl.js.map +0 -1
  617. package/dist/fields/richtext/controls/index.d.ts.map +0 -1
  618. package/dist/fields/richtext/controls/index.js.map +0 -1
  619. package/dist/fields/richtext/controls/shared.d.ts.map +0 -1
  620. package/dist/fields/richtext/controls/shared.js.map +0 -1
  621. package/dist/fields/richtext/createRichTextField.d.ts.map +0 -1
  622. package/dist/fields/richtext/createRichTextField.js.map +0 -1
  623. package/dist/fields/richtext/extensions/FontSize.d.ts.map +0 -1
  624. package/dist/fields/richtext/extensions/FontSize.js.map +0 -1
  625. package/dist/fields/richtext/extensions/index.d.ts.map +0 -1
  626. package/dist/fields/richtext/extensions/index.js.map +0 -1
  627. package/dist/fields/richtext/index.d.ts.map +0 -1
  628. package/dist/fields/richtext/index.js.map +0 -1
  629. package/dist/fields/shared.d.ts.map +0 -1
  630. package/dist/fields/shared.js.map +0 -1
  631. package/dist/hooks/index.d.ts.map +0 -1
  632. package/dist/hooks/index.js.map +0 -1
  633. package/dist/hooks/useResponsiveStyles.d.ts.map +0 -1
  634. package/dist/hooks/useResponsiveStyles.js.map +0 -1
  635. package/dist/hooks/useScrollAnimation.d.ts.map +0 -1
  636. package/dist/hooks/useScrollAnimation.js.map +0 -1
  637. package/dist/index.d.ts.map +0 -1
  638. package/dist/index.js.map +0 -1
  639. package/dist/layouts/LayoutWrapper.d.ts.map +0 -1
  640. package/dist/layouts/LayoutWrapper.js.map +0 -1
  641. package/dist/layouts/defaults.d.ts.map +0 -1
  642. package/dist/layouts/defaults.js.map +0 -1
  643. package/dist/layouts/index.d.ts.map +0 -1
  644. package/dist/layouts/index.js.map +0 -1
  645. package/dist/layouts/types.d.ts.map +0 -1
  646. package/dist/layouts/types.js.map +0 -1
  647. package/dist/layouts/utils.d.ts.map +0 -1
  648. package/dist/layouts/utils.js.map +0 -1
  649. package/dist/next/index.d.ts.map +0 -1
  650. package/dist/next/index.js.map +0 -1
  651. package/dist/plugin/collections/Pages.d.ts.map +0 -1
  652. package/dist/plugin/collections/Pages.js.map +0 -1
  653. package/dist/plugin/fields/index.d.ts.map +0 -1
  654. package/dist/plugin/fields/index.js.map +0 -1
  655. package/dist/plugin/fields/types.d.ts.map +0 -1
  656. package/dist/plugin/fields/types.js.map +0 -1
  657. package/dist/plugin/hooks/index.d.ts.map +0 -1
  658. package/dist/plugin/hooks/index.js.map +0 -1
  659. package/dist/plugin/hooks/isHomepageUnique.d.ts.map +0 -1
  660. package/dist/plugin/hooks/isHomepageUnique.js.map +0 -1
  661. package/dist/plugin/index.d.ts.map +0 -1
  662. package/dist/plugin/index.js.map +0 -1
  663. package/dist/render/HybridPageRenderer.d.ts.map +0 -1
  664. package/dist/render/HybridPageRenderer.js.map +0 -1
  665. package/dist/render/PageRenderer.d.ts.map +0 -1
  666. package/dist/render/PageRenderer.js.map +0 -1
  667. package/dist/render/PuckEditor.client.d.ts.map +0 -1
  668. package/dist/render/PuckEditor.client.js.map +0 -1
  669. package/dist/render/index.d.ts.map +0 -1
  670. package/dist/render/index.js.map +0 -1
  671. package/dist/theme/context.d.ts.map +0 -1
  672. package/dist/theme/context.js.map +0 -1
  673. package/dist/theme/defaults.d.ts.map +0 -1
  674. package/dist/theme/defaults.js.map +0 -1
  675. package/dist/theme/example.d.ts.map +0 -1
  676. package/dist/theme/example.js.map +0 -1
  677. package/dist/theme/index.d.ts.map +0 -1
  678. package/dist/theme/index.js.map +0 -1
  679. package/dist/theme/types.d.ts.map +0 -1
  680. package/dist/theme/types.js.map +0 -1
  681. package/dist/theme/utils.d.ts.map +0 -1
  682. package/dist/theme/utils.js.map +0 -1
  683. package/dist/types/index.d.ts.map +0 -1
  684. package/dist/types/index.js.map +0 -1
  685. package/dist/utils/index.d.ts.map +0 -1
  686. package/dist/utils/index.js.map +0 -1
  687. package/dist/utils/migration.d.ts.map +0 -1
  688. package/dist/utils/migration.js.map +0 -1
  689. package/dist/utils/validation.d.ts.map +0 -1
  690. package/dist/utils/validation.js.map +0 -1
  691. package/dist/version.d.ts.map +0 -1
  692. package/dist/version.js.map +0 -1
  693. package/dist/views/PuckConfigContext.d.ts.map +0 -1
  694. package/dist/views/PuckConfigContext.js.map +0 -1
  695. package/dist/views/PuckEditorView.d.ts.map +0 -1
  696. package/dist/views/PuckEditorView.js.map +0 -1
  697. package/dist/views/index.d.ts.map +0 -1
  698. package/dist/views/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/fields/WidthField.tsx"],"sourcesContent":["'use client'\n\n/**\n * WidthField - Custom Puck field for flexible width control\n *\n * This component provides:\n * - Width mode selector (Full, Contained, Custom)\n * - Custom max-width input with unit selector (px, %, rem, vw)\n * - Content alignment (left, center, right)\n * - Preset quick-select buttons for common widths\n */\n\nimport React, { useCallback, memo, type CSSProperties } from 'react'\nimport type { CustomField } from '@puckeditor/core'\nimport {\n X,\n AlignLeft,\n AlignCenter,\n AlignRight,\n MoveHorizontal,\n Container,\n SlidersHorizontal,\n} from 'lucide-react'\nimport type { WidthValue } from './shared.js'\n\n// =============================================================================\n// Types\n// =============================================================================\n\ntype WidthUnit = 'px' | 'rem' | '%' | 'vw'\ntype WidthMode = 'full' | 'contained' | 'custom'\ntype ContentAlignment = 'left' | 'center' | 'right'\n\ninterface WidthFieldProps {\n value: WidthValue | null\n onChange: (value: WidthValue | null) => void\n label?: string\n readOnly?: boolean\n}\n\n// =============================================================================\n// Default Value\n// =============================================================================\n\nconst DEFAULT_VALUE: WidthValue = {\n mode: 'contained',\n maxWidth: 1200,\n unit: 'px',\n alignment: 'center',\n}\n\n// =============================================================================\n// Preset Widths\n// =============================================================================\n\nconst WIDTH_PRESETS = [\n { label: 'Narrow', value: 680 },\n { label: 'Medium', value: 960 },\n { label: 'Wide', value: 1200 },\n { label: 'XL', value: 1440 },\n]\n\n// =============================================================================\n// Styles\n// =============================================================================\n\nconst styles = {\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n } as CSSProperties,\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n } as CSSProperties,\n label: {\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--theme-elevation-800)',\n } as CSSProperties,\n clearButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px',\n padding: 0,\n border: 'none',\n borderRadius: '4px',\n backgroundColor: 'transparent',\n color: 'var(--theme-elevation-500)',\n cursor: 'pointer',\n } as CSSProperties,\n modeGroup: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n } as CSSProperties,\n modeButton: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '4px',\n padding: '4px 12px',\n fontSize: '12px',\n fontWeight: 500,\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-bg)',\n color: 'var(--theme-elevation-700)',\n cursor: 'pointer',\n } as CSSProperties,\n modeButtonActive: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '4px',\n padding: '4px 12px',\n fontSize: '12px',\n fontWeight: 500,\n border: '1px solid var(--theme-elevation-800)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-elevation-800)',\n color: 'var(--theme-bg)',\n cursor: 'pointer',\n } as CSSProperties,\n controlsPanel: {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n padding: '12px',\n backgroundColor: 'var(--theme-elevation-50)',\n borderRadius: '6px',\n } as CSSProperties,\n sectionLabel: {\n fontSize: '10px',\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n color: 'var(--theme-elevation-500)',\n } as CSSProperties,\n presetGroup: {\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n } as CSSProperties,\n presetButtons: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n } as CSSProperties,\n presetButton: {\n height: '28px',\n padding: '0 12px',\n fontSize: '12px',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-bg)',\n color: 'var(--theme-elevation-700)',\n cursor: 'pointer',\n } as CSSProperties,\n presetButtonActive: {\n height: '28px',\n padding: '0 12px',\n fontSize: '12px',\n border: '1px solid var(--theme-elevation-800)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-elevation-800)',\n color: 'var(--theme-bg)',\n cursor: 'pointer',\n } as CSSProperties,\n inputGroup: {\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n } as CSSProperties,\n inputRow: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: '8px',\n } as CSSProperties,\n input: {\n flex: 1,\n minWidth: '80px',\n height: '32px',\n padding: '0 8px',\n fontSize: '14px',\n fontFamily: 'monospace',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-input-bg)',\n color: 'var(--theme-elevation-800)',\n } as CSSProperties,\n unitGroup: {\n display: 'flex',\n flexShrink: 0,\n gap: '4px',\n } as CSSProperties,\n unitButton: {\n height: '32px',\n padding: '0 8px',\n fontSize: '12px',\n fontFamily: 'monospace',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-bg)',\n color: 'var(--theme-elevation-500)',\n cursor: 'pointer',\n } as CSSProperties,\n unitButtonActive: {\n height: '32px',\n padding: '0 8px',\n fontSize: '12px',\n fontFamily: 'monospace',\n border: '1px solid var(--theme-elevation-800)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-elevation-800)',\n color: 'var(--theme-bg)',\n cursor: 'pointer',\n } as CSSProperties,\n footer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n gap: '8px',\n } as CSSProperties,\n alignGroup: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n } as CSSProperties,\n alignLabel: {\n fontSize: '12px',\n color: 'var(--theme-elevation-500)',\n flexShrink: 0,\n } as CSSProperties,\n alignButtons: {\n display: 'flex',\n gap: '4px',\n } as CSSProperties,\n alignButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '32px',\n height: '32px',\n padding: 0,\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-bg)',\n color: 'var(--theme-elevation-700)',\n cursor: 'pointer',\n } as CSSProperties,\n alignButtonActive: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '32px',\n height: '32px',\n padding: 0,\n border: '1px solid var(--theme-elevation-800)',\n borderRadius: '4px',\n backgroundColor: 'var(--theme-elevation-800)',\n color: 'var(--theme-bg)',\n cursor: 'pointer',\n } as CSSProperties,\n alignButtonDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n } as CSSProperties,\n summary: {\n fontSize: '12px',\n color: 'var(--theme-elevation-500)',\n fontFamily: 'monospace',\n } as CSSProperties,\n}\n\n// =============================================================================\n// WidthField Component\n// =============================================================================\n\nfunction WidthFieldInner({\n value,\n onChange,\n label,\n readOnly,\n}: WidthFieldProps) {\n const currentValue = value || DEFAULT_VALUE\n\n const handleModeChange = useCallback((mode: WidthMode) => {\n if (mode === 'full') {\n onChange({\n ...currentValue,\n mode,\n alignment: 'center',\n })\n } else {\n onChange({\n ...currentValue,\n mode,\n })\n }\n }, [currentValue, onChange])\n\n const handleMaxWidthChange = useCallback((maxWidth: number) => {\n onChange({\n ...currentValue,\n maxWidth,\n })\n }, [currentValue, onChange])\n\n const handleUnitChange = useCallback((unit: WidthUnit) => {\n onChange({\n ...currentValue,\n unit,\n })\n }, [currentValue, onChange])\n\n const handleAlignmentChange = useCallback((alignment: ContentAlignment) => {\n onChange({\n ...currentValue,\n alignment,\n })\n }, [currentValue, onChange])\n\n const handlePresetSelect = useCallback((presetValue: number) => {\n onChange({\n ...currentValue,\n mode: 'contained',\n maxWidth: presetValue,\n unit: 'px',\n })\n }, [currentValue, onChange])\n\n const handleClear = useCallback(() => {\n onChange(null)\n }, [onChange])\n\n const modeConfig = [\n { mode: 'full' as WidthMode, icon: MoveHorizontal, label: 'Full', title: 'Full width (100%)' },\n { mode: 'contained' as WidthMode, icon: Container, label: 'Contain', title: 'Contained (centered with max-width)' },\n { mode: 'custom' as WidthMode, icon: SlidersHorizontal, label: 'Custom', title: 'Custom width settings' },\n ]\n\n const alignmentConfig = [\n { alignment: 'left' as ContentAlignment, icon: AlignLeft, title: 'Align left' },\n { alignment: 'center' as ContentAlignment, icon: AlignCenter, title: 'Align center' },\n { alignment: 'right' as ContentAlignment, icon: AlignRight, title: 'Align right' },\n ]\n\n return (\n <div className=\"puck-field\" style={styles.container}>\n {/* Header with label and clear */}\n <div style={styles.header}>\n {label && (\n <label style={styles.label}>{label}</label>\n )}\n {value && !readOnly && (\n <button\n type=\"button\"\n onClick={handleClear}\n style={styles.clearButton}\n title=\"Reset to default\"\n >\n <X style={{ width: '16px', height: '16px' }} />\n </button>\n )}\n </div>\n\n {/* Width Mode Selector */}\n <div style={styles.modeGroup}>\n {modeConfig.map(({ mode, icon: Icon, label: modeLabel, title }) => {\n const isActive = currentValue.mode === mode\n return (\n <button\n key={mode}\n type=\"button\"\n onClick={() => handleModeChange(mode)}\n disabled={readOnly}\n style={isActive ? styles.modeButtonActive : styles.modeButton}\n title={title}\n >\n <Icon style={{ width: '14px', height: '14px' }} />\n {modeLabel}\n </button>\n )\n })}\n </div>\n\n {/* Max Width Controls */}\n {currentValue.mode !== 'full' && (\n <div style={styles.controlsPanel as CSSProperties}>\n {/* Preset Quick Selects */}\n <div style={styles.presetGroup as CSSProperties}>\n <label style={styles.sectionLabel as CSSProperties}>Presets</label>\n <div style={styles.presetButtons}>\n {WIDTH_PRESETS.map((preset) => {\n const isActive = currentValue.maxWidth === preset.value && currentValue.unit === 'px'\n return (\n <button\n key={preset.value}\n type=\"button\"\n onClick={() => handlePresetSelect(preset.value)}\n disabled={readOnly}\n style={isActive ? styles.presetButtonActive : styles.presetButton}\n >\n {preset.label}\n </button>\n )\n })}\n </div>\n </div>\n\n {/* Custom Width Input */}\n <div style={styles.inputGroup as CSSProperties}>\n <label style={styles.sectionLabel as CSSProperties}>Max Width</label>\n <div style={styles.inputRow}>\n <input\n type=\"number\"\n min={0}\n value={currentValue.maxWidth}\n onChange={(e) => handleMaxWidthChange(parseInt(e.target.value, 10) || 0)}\n disabled={readOnly}\n style={styles.input}\n />\n <div style={styles.unitGroup}>\n {(['px', '%', 'rem', 'vw'] as WidthUnit[]).map((unit) => {\n const isActive = currentValue.unit === unit\n return (\n <button\n key={unit}\n type=\"button\"\n onClick={() => handleUnitChange(unit)}\n disabled={readOnly}\n style={isActive ? styles.unitButtonActive : styles.unitButton}\n >\n {unit}\n </button>\n )\n })}\n </div>\n </div>\n </div>\n </div>\n )}\n\n {/* Alignment Controls */}\n <div style={styles.footer}>\n <div style={styles.alignGroup}>\n <label style={styles.alignLabel}>Align:</label>\n <div style={styles.alignButtons}>\n {alignmentConfig.map(({ alignment, icon: Icon, title }) => {\n const isActive = currentValue.alignment === alignment\n const isDisabled = readOnly || currentValue.mode === 'full'\n return (\n <button\n key={alignment}\n type=\"button\"\n onClick={() => handleAlignmentChange(alignment)}\n disabled={isDisabled}\n style={{\n ...(isActive ? styles.alignButtonActive : styles.alignButton),\n ...(isDisabled ? styles.alignButtonDisabled : {}),\n }}\n title={title}\n >\n <Icon style={{ width: '14px', height: '14px' }} />\n </button>\n )\n })}\n </div>\n </div>\n {/* Current value summary */}\n <span style={styles.summary}>\n {currentValue.mode === 'full'\n ? '100%'\n : `${currentValue.maxWidth}${currentValue.unit}`\n }\n </span>\n </div>\n </div>\n )\n}\n\nexport const WidthField = memo(WidthFieldInner)\n\n// =============================================================================\n// Field Configuration Factory\n// =============================================================================\n\n/**\n * Creates a Puck field configuration for width control\n */\nexport function createWidthField(config: {\n label?: string\n}): CustomField<WidthValue | null> {\n return {\n type: 'custom',\n label: config.label,\n render: ({ value, onChange, readOnly }) => (\n <WidthField\n value={value}\n onChange={onChange}\n label={config.label}\n readOnly={readOnly}\n />\n ),\n }\n}\n"],"names":["React","useCallback","memo","X","AlignLeft","AlignCenter","AlignRight","MoveHorizontal","Container","SlidersHorizontal","DEFAULT_VALUE","mode","maxWidth","unit","alignment","WIDTH_PRESETS","label","value","styles","container","display","flexDirection","gap","header","alignItems","justifyContent","fontSize","fontWeight","color","clearButton","width","height","padding","border","borderRadius","backgroundColor","cursor","modeGroup","flexWrap","modeButton","modeButtonActive","controlsPanel","sectionLabel","textTransform","letterSpacing","presetGroup","presetButtons","presetButton","presetButtonActive","inputGroup","inputRow","input","flex","minWidth","fontFamily","unitGroup","flexShrink","unitButton","unitButtonActive","footer","alignGroup","alignLabel","alignButtons","alignButton","alignButtonActive","alignButtonDisabled","opacity","summary","WidthFieldInner","onChange","readOnly","currentValue","handleModeChange","handleMaxWidthChange","handleUnitChange","handleAlignmentChange","handlePresetSelect","presetValue","handleClear","modeConfig","icon","title","alignmentConfig","div","className","style","button","type","onClick","map","Icon","modeLabel","isActive","disabled","preset","min","e","parseInt","target","isDisabled","span","WidthField","createWidthField","config","render"],"mappings":"AAAA;;AAEA;;;;;;;;CAQC,GAED,OAAOA,SAASC,WAAW,EAAEC,IAAI,QAA4B,QAAO;AAEpE,SACEC,CAAC,EACDC,SAAS,EACTC,WAAW,EACXC,UAAU,EACVC,cAAc,EACdC,SAAS,EACTC,iBAAiB,QACZ,eAAc;AAkBrB,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,MAAMC,gBAA4B;IAChCC,MAAM;IACNC,UAAU;IACVC,MAAM;IACNC,WAAW;AACb;AAEA,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,MAAMC,gBAAgB;IACpB;QAAEC,OAAO;QAAUC,OAAO;IAAI;IAC9B;QAAED,OAAO;QAAUC,OAAO;IAAI;IAC9B;QAAED,OAAO;QAAQC,OAAO;IAAK;IAC7B;QAAED,OAAO;QAAMC,OAAO;IAAK;CAC5B;AAED,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAMC,SAAS;IACbC,WAAW;QACTC,SAAS;QACTC,eAAe;QACfC,KAAK;IACP;IACAC,QAAQ;QACNH,SAAS;QACTI,YAAY;QACZC,gBAAgB;IAClB;IACAT,OAAO;QACLU,UAAU;QACVC,YAAY;QACZC,OAAO;IACT;IACAC,aAAa;QACXT,SAAS;QACTI,YAAY;QACZC,gBAAgB;QAChBK,OAAO;QACPC,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACAC,WAAW;QACTjB,SAAS;QACTkB,UAAU;QACVhB,KAAK;IACP;IACAiB,YAAY;QACVnB,SAAS;QACTI,YAAY;QACZF,KAAK;QACLU,SAAS;QACTN,UAAU;QACVC,YAAY;QACZM,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACAI,kBAAkB;QAChBpB,SAAS;QACTI,YAAY;QACZF,KAAK;QACLU,SAAS;QACTN,UAAU;QACVC,YAAY;QACZM,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACAK,eAAe;QACbrB,SAAS;QACTC,eAAe;QACfC,KAAK;QACLU,SAAS;QACTG,iBAAiB;QACjBD,cAAc;IAChB;IACAQ,cAAc;QACZhB,UAAU;QACViB,eAAe;QACfC,eAAe;QACfhB,OAAO;IACT;IACAiB,aAAa;QACXzB,SAAS;QACTC,eAAe;QACfC,KAAK;IACP;IACAwB,eAAe;QACb1B,SAAS;QACTkB,UAAU;QACVhB,KAAK;IACP;IACAyB,cAAc;QACZhB,QAAQ;QACRC,SAAS;QACTN,UAAU;QACVO,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACAY,oBAAoB;QAClBjB,QAAQ;QACRC,SAAS;QACTN,UAAU;QACVO,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACAa,YAAY;QACV7B,SAAS;QACTC,eAAe;QACfC,KAAK;IACP;IACA4B,UAAU;QACR9B,SAAS;QACTI,YAAY;QACZc,UAAU;QACVhB,KAAK;IACP;IACA6B,OAAO;QACLC,MAAM;QACNC,UAAU;QACVtB,QAAQ;QACRC,SAAS;QACTN,UAAU;QACV4B,YAAY;QACZrB,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;IACT;IACA2B,WAAW;QACTnC,SAAS;QACToC,YAAY;QACZlC,KAAK;IACP;IACAmC,YAAY;QACV1B,QAAQ;QACRC,SAAS;QACTN,UAAU;QACV4B,YAAY;QACZrB,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACAsB,kBAAkB;QAChB3B,QAAQ;QACRC,SAAS;QACTN,UAAU;QACV4B,YAAY;QACZrB,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACAuB,QAAQ;QACNvC,SAAS;QACTI,YAAY;QACZC,gBAAgB;QAChBa,UAAU;QACVhB,KAAK;IACP;IACAsC,YAAY;QACVxC,SAAS;QACTI,YAAY;QACZF,KAAK;IACP;IACAuC,YAAY;QACVnC,UAAU;QACVE,OAAO;QACP4B,YAAY;IACd;IACAM,cAAc;QACZ1C,SAAS;QACTE,KAAK;IACP;IACAyC,aAAa;QACX3C,SAAS;QACTI,YAAY;QACZC,gBAAgB;QAChBK,OAAO;QACPC,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACA4B,mBAAmB;QACjB5C,SAAS;QACTI,YAAY;QACZC,gBAAgB;QAChBK,OAAO;QACPC,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,cAAc;QACdC,iBAAiB;QACjBP,OAAO;QACPQ,QAAQ;IACV;IACA6B,qBAAqB;QACnBC,SAAS;QACT9B,QAAQ;IACV;IACA+B,SAAS;QACPzC,UAAU;QACVE,OAAO;QACP0B,YAAY;IACd;AACF;AAEA,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,SAASc,gBAAgB,EACvBnD,KAAK,EACLoD,QAAQ,EACRrD,KAAK,EACLsD,QAAQ,EACQ;IAChB,MAAMC,eAAetD,SAASP;IAE9B,MAAM8D,mBAAmBvE,YAAY,CAACU;QACpC,IAAIA,SAAS,QAAQ;YACnB0D,SAAS;gBACP,GAAGE,YAAY;gBACf5D;gBACAG,WAAW;YACb;QACF,OAAO;YACLuD,SAAS;gBACP,GAAGE,YAAY;gBACf5D;YACF;QACF;IACF,GAAG;QAAC4D;QAAcF;KAAS;IAE3B,MAAMI,uBAAuBxE,YAAY,CAACW;QACxCyD,SAAS;YACP,GAAGE,YAAY;YACf3D;QACF;IACF,GAAG;QAAC2D;QAAcF;KAAS;IAE3B,MAAMK,mBAAmBzE,YAAY,CAACY;QACpCwD,SAAS;YACP,GAAGE,YAAY;YACf1D;QACF;IACF,GAAG;QAAC0D;QAAcF;KAAS;IAE3B,MAAMM,wBAAwB1E,YAAY,CAACa;QACzCuD,SAAS;YACP,GAAGE,YAAY;YACfzD;QACF;IACF,GAAG;QAACyD;QAAcF;KAAS;IAE3B,MAAMO,qBAAqB3E,YAAY,CAAC4E;QACtCR,SAAS;YACP,GAAGE,YAAY;YACf5D,MAAM;YACNC,UAAUiE;YACVhE,MAAM;QACR;IACF,GAAG;QAAC0D;QAAcF;KAAS;IAE3B,MAAMS,cAAc7E,YAAY;QAC9BoE,SAAS;IACX,GAAG;QAACA;KAAS;IAEb,MAAMU,aAAa;QACjB;YAAEpE,MAAM;YAAqBqE,MAAMzE;YAAgBS,OAAO;YAAQiE,OAAO;QAAoB;QAC7F;YAAEtE,MAAM;YAA0BqE,MAAMxE;YAAWQ,OAAO;YAAWiE,OAAO;QAAsC;QAClH;YAAEtE,MAAM;YAAuBqE,MAAMvE;YAAmBO,OAAO;YAAUiE,OAAO;QAAwB;KACzG;IAED,MAAMC,kBAAkB;QACtB;YAAEpE,WAAW;YAA4BkE,MAAM5E;YAAW6E,OAAO;QAAa;QAC9E;YAAEnE,WAAW;YAA8BkE,MAAM3E;YAAa4E,OAAO;QAAe;QACpF;YAAEnE,WAAW;YAA6BkE,MAAM1E;YAAY2E,OAAO;QAAc;KAClF;IAED,qBACE,MAACE;QAAIC,WAAU;QAAaC,OAAOnE,OAAOC,SAAS;;0BAEjD,MAACgE;gBAAIE,OAAOnE,OAAOK,MAAM;;oBACtBP,uBACC,KAACA;wBAAMqE,OAAOnE,OAAOF,KAAK;kCAAGA;;oBAE9BC,SAAS,CAACqD,0BACT,KAACgB;wBACCC,MAAK;wBACLC,SAASV;wBACTO,OAAOnE,OAAOW,WAAW;wBACzBoD,OAAM;kCAEN,cAAA,KAAC9E;4BAAEkF,OAAO;gCAAEvD,OAAO;gCAAQC,QAAQ;4BAAO;;;;;0BAMhD,KAACoD;gBAAIE,OAAOnE,OAAOmB,SAAS;0BACzB0C,WAAWU,GAAG,CAAC,CAAC,EAAE9E,IAAI,EAAEqE,MAAMU,IAAI,EAAE1E,OAAO2E,SAAS,EAAEV,KAAK,EAAE;oBAC5D,MAAMW,WAAWrB,aAAa5D,IAAI,KAAKA;oBACvC,qBACE,MAAC2E;wBAECC,MAAK;wBACLC,SAAS,IAAMhB,iBAAiB7D;wBAChCkF,UAAUvB;wBACVe,OAAOO,WAAW1E,OAAOsB,gBAAgB,GAAGtB,OAAOqB,UAAU;wBAC7D0C,OAAOA;;0CAEP,KAACS;gCAAKL,OAAO;oCAAEvD,OAAO;oCAAQC,QAAQ;gCAAO;;4BAC5C4D;;uBARIhF;gBAWX;;YAID4D,aAAa5D,IAAI,KAAK,wBACrB,MAACwE;gBAAIE,OAAOnE,OAAOuB,aAAa;;kCAE9B,MAAC0C;wBAAIE,OAAOnE,OAAO2B,WAAW;;0CAC5B,KAAC7B;gCAAMqE,OAAOnE,OAAOwB,YAAY;0CAAmB;;0CACpD,KAACyC;gCAAIE,OAAOnE,OAAO4B,aAAa;0CAC7B/B,cAAc0E,GAAG,CAAC,CAACK;oCAClB,MAAMF,WAAWrB,aAAa3D,QAAQ,KAAKkF,OAAO7E,KAAK,IAAIsD,aAAa1D,IAAI,KAAK;oCACjF,qBACE,KAACyE;wCAECC,MAAK;wCACLC,SAAS,IAAMZ,mBAAmBkB,OAAO7E,KAAK;wCAC9C4E,UAAUvB;wCACVe,OAAOO,WAAW1E,OAAO8B,kBAAkB,GAAG9B,OAAO6B,YAAY;kDAEhE+C,OAAO9E,KAAK;uCANR8E,OAAO7E,KAAK;gCASvB;;;;kCAKJ,MAACkE;wBAAIE,OAAOnE,OAAO+B,UAAU;;0CAC3B,KAACjC;gCAAMqE,OAAOnE,OAAOwB,YAAY;0CAAmB;;0CACpD,MAACyC;gCAAIE,OAAOnE,OAAOgC,QAAQ;;kDACzB,KAACC;wCACCoC,MAAK;wCACLQ,KAAK;wCACL9E,OAAOsD,aAAa3D,QAAQ;wCAC5ByD,UAAU,CAAC2B,IAAMvB,qBAAqBwB,SAASD,EAAEE,MAAM,CAACjF,KAAK,EAAE,OAAO;wCACtE4E,UAAUvB;wCACVe,OAAOnE,OAAOiC,KAAK;;kDAErB,KAACgC;wCAAIE,OAAOnE,OAAOqC,SAAS;kDACzB,AAAC;4CAAC;4CAAM;4CAAK;4CAAO;yCAAK,CAAiBkC,GAAG,CAAC,CAAC5E;4CAC9C,MAAM+E,WAAWrB,aAAa1D,IAAI,KAAKA;4CACvC,qBACE,KAACyE;gDAECC,MAAK;gDACLC,SAAS,IAAMd,iBAAiB7D;gDAChCgF,UAAUvB;gDACVe,OAAOO,WAAW1E,OAAOwC,gBAAgB,GAAGxC,OAAOuC,UAAU;0DAE5D5C;+CANIA;wCASX;;;;;;;;0BAQV,MAACsE;gBAAIE,OAAOnE,OAAOyC,MAAM;;kCACvB,MAACwB;wBAAIE,OAAOnE,OAAO0C,UAAU;;0CAC3B,KAAC5C;gCAAMqE,OAAOnE,OAAO2C,UAAU;0CAAE;;0CACjC,KAACsB;gCAAIE,OAAOnE,OAAO4C,YAAY;0CAC5BoB,gBAAgBO,GAAG,CAAC,CAAC,EAAE3E,SAAS,EAAEkE,MAAMU,IAAI,EAAET,KAAK,EAAE;oCACpD,MAAMW,WAAWrB,aAAazD,SAAS,KAAKA;oCAC5C,MAAMqF,aAAa7B,YAAYC,aAAa5D,IAAI,KAAK;oCACrD,qBACE,KAAC2E;wCAECC,MAAK;wCACLC,SAAS,IAAMb,sBAAsB7D;wCACrC+E,UAAUM;wCACVd,OAAO;4CACL,GAAIO,WAAW1E,OAAO8C,iBAAiB,GAAG9C,OAAO6C,WAAW;4CAC5D,GAAIoC,aAAajF,OAAO+C,mBAAmB,GAAG,CAAC,CAAC;wCAClD;wCACAgB,OAAOA;kDAEP,cAAA,KAACS;4CAAKL,OAAO;gDAAEvD,OAAO;gDAAQC,QAAQ;4CAAO;;uCAVxCjB;gCAaX;;;;kCAIJ,KAACsF;wBAAKf,OAAOnE,OAAOiD,OAAO;kCACxBI,aAAa5D,IAAI,KAAK,SACnB,SACA,GAAG4D,aAAa3D,QAAQ,GAAG2D,aAAa1D,IAAI,EAAE;;;;;;AAM5D;AAEA,OAAO,MAAMwF,2BAAanG,KAAKkE,iBAAgB;AAE/C,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;CAEC,GACD,OAAO,SAASkC,iBAAiBC,MAEhC;IACC,OAAO;QACLhB,MAAM;QACNvE,OAAOuF,OAAOvF,KAAK;QACnBwF,QAAQ,CAAC,EAAEvF,KAAK,EAAEoD,QAAQ,EAAEC,QAAQ,EAAE,iBACpC,KAAC+B;gBACCpF,OAAOA;gBACPoD,UAAUA;gBACVrD,OAAOuF,OAAOvF,KAAK;gBACnBsD,UAAUA;;IAGhB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/fields/index.ts"],"sourcesContent":["/**\n * Custom Puck fields for the visual editor\n *\n * These fields provide enhanced editing experiences for specific content types.\n */\n\n// Shared field definitions\nexport * from './shared.js'\n\n// Custom field components\nexport { MediaField, createMediaField } from './MediaField.js'\nexport type { MediaReference } from './MediaField.js'\n\nexport { ColorPickerField, createColorPickerField, colorToRgba } from './ColorPickerField.js'\n\n// =============================================================================\n// RichText Field\n// Uses Puck's native richtext with custom TipTap extensions for colors, sizes, etc.\n// =============================================================================\nexport {\n createRichTextField,\n fullRichTextField,\n minimalRichTextField,\n sidebarRichTextField,\n type CreateRichTextFieldOptions,\n // Extensions for advanced customization\n FontSize,\n // Controls for custom menu building\n ColorPickerControl,\n ColorPickerPanel,\n FontSizeControl,\n HighlightControl,\n // Utilities\n normalizeHex,\n hexToRgba,\n parseColor,\n FONT_SIZES,\n FONT_SIZE_UNITS,\n controlStyles,\n type FontSizeUnit,\n} from './richtext/index.js'\n\nexport { PaddingField, createPaddingField } from './PaddingField.js'\n\nexport { MarginField, createMarginField } from './MarginField.js'\nexport type { MarginValue } from './MarginField.js'\n\nexport { BorderField, createBorderField } from './BorderField.js'\n\nexport { WidthField, createWidthField } from './WidthField.js'\n\nexport { DimensionsField, createDimensionsField } from './DimensionsField.js'\nexport {\n dimensionsValueToCSS,\n getDimensionsSummary,\n isLegacyWidthValue,\n migrateWidthValue,\n} from './shared.js'\nexport type {\n DimensionsValue,\n DimensionConstraint,\n DimensionsUnit,\n DimensionsMode,\n ContentAlignment,\n} from './shared.js'\n\nexport {\n LockedTextField,\n LockedRadioField,\n createLockedTextField,\n createLockedRadioField,\n lockedSlugField,\n lockedHomepageField,\n} from './LockedField.js'\n\nexport { AlignmentField, createAlignmentField } from './AlignmentField.js'\nexport type { Alignment } from './AlignmentField.js'\n\nexport {\n JustifyContentField,\n AlignItemsField,\n createJustifyContentField,\n createAlignItemsField,\n} from './FlexAlignmentField.js'\nexport type { JustifyContent, AlignItems } from './FlexAlignmentField.js'\n\nexport { VerticalAlignmentField, createVerticalAlignmentField } from './VerticalAlignmentField.js'\nexport type { VerticalAlignment } from './VerticalAlignmentField.js'\n\nexport {\n ContentAlignmentField,\n createContentAlignmentField,\n alignmentToFlexCSS,\n alignmentToGridCSS,\n alignmentToPlaceSelfCSS,\n alignmentToTailwind,\n} from './ContentAlignmentField.js'\nexport type {\n ContentAlignmentValue,\n HorizontalAlign,\n VerticalAlign,\n PositionLabel,\n} from './ContentAlignmentField.js'\n\nexport { SizeField, createSizeField, sizeValueToCSS, getSizeClasses } from './SizeField.js'\nexport type { SizeValue, SizeMode, SizeUnit } from './SizeField.js'\n\nexport { GradientEditor } from './GradientEditor.js'\n\nexport { BackgroundField, createBackgroundField } from './BackgroundField.js'\nexport type {\n BackgroundValue,\n BackgroundImageValue,\n BackgroundOverlay,\n GradientValue,\n GradientStop,\n GradientMask,\n} from './shared.js'\nexport { backgroundValueToCSS, gradientValueToCSS, getBackgroundImageOpacity } from './shared.js'\n\nexport { ResponsiveField, createResponsiveField } from './ResponsiveField.js'\nexport type { Breakpoint, ResponsiveValue, VisibilityValue, ResponsiveCSSResult } from './shared.js'\nexport {\n BREAKPOINTS,\n isResponsiveValue,\n responsiveValueToCSS,\n cssPropertiesToString,\n visibilityValueToCSS,\n DEFAULT_VISIBILITY,\n} from './shared.js'\n\nexport {\n ResponsiveVisibilityField,\n createResponsiveVisibilityField,\n} from './ResponsiveVisibilityField.js'\n\nexport { AnimationField, createAnimationField } from './AnimationField.js'\nexport type {\n AnimationValue,\n EasingFunction,\n AdvancedEasingFunction,\n EntranceAnimation,\n AnimationOrigin,\n AnimationCategory,\n StaggerConfig,\n StaggerDirection,\n} from './shared.js'\nexport {\n animationValueToCSS,\n getEntranceAnimationStyles,\n getAnimationCSSVariables,\n getDefaultEasingForAnimation,\n getRelevantIntensityControls,\n getStaggerDelay,\n generateStaggerStyles,\n EASING_CSS_MAP,\n ANIMATION_CATEGORIES,\n DEFAULT_ANIMATION,\n} from './shared.js'\n\nexport { TransformField, createTransformField } from './TransformField.js'\nexport type { TransformValue, TransformOrigin } from './shared.js'\nexport { transformValueToCSS, DEFAULT_TRANSFORM } from './shared.js'\n\n// =============================================================================\n// Legacy CSS Utilities (Deprecated)\n// =============================================================================\n\n/**\n * @deprecated No longer needed. RichText component now uses Tailwind Typography's\n * `prose` class for styling. Install @tailwindcss/typography instead.\n */\nexport const RICHTEXT_OUTPUT_CSS = ''\n\n/**\n * @deprecated No longer needed. RichText component now uses Tailwind Typography's\n * `prose` class for styling. Install @tailwindcss/typography instead.\n */\nexport function injectRichtextStyles() {\n console.warn(\n 'injectRichtextStyles() is deprecated. RichText now uses Tailwind Typography. ' +\n 'Install @tailwindcss/typography and use the `prose` class instead.'\n )\n}\n\n// =============================================================================\n// Page-Tree Integration Fields\n// =============================================================================\n\nexport { FolderPickerField, createFolderPickerField } from './FolderPickerField.js'\nexport {\n PageSegmentField,\n createPageSegmentField,\n LockedPageSegmentField,\n createLockedPageSegmentField,\n} from './PageSegmentField.js'\nexport { SlugPreviewField, createSlugPreviewField } from './SlugPreviewField.js'\n"],"names":["MediaField","createMediaField","ColorPickerField","createColorPickerField","colorToRgba","createRichTextField","fullRichTextField","minimalRichTextField","sidebarRichTextField","FontSize","ColorPickerControl","ColorPickerPanel","FontSizeControl","HighlightControl","normalizeHex","hexToRgba","parseColor","FONT_SIZES","FONT_SIZE_UNITS","controlStyles","PaddingField","createPaddingField","MarginField","createMarginField","BorderField","createBorderField","WidthField","createWidthField","DimensionsField","createDimensionsField","dimensionsValueToCSS","getDimensionsSummary","isLegacyWidthValue","migrateWidthValue","LockedTextField","LockedRadioField","createLockedTextField","createLockedRadioField","lockedSlugField","lockedHomepageField","AlignmentField","createAlignmentField","JustifyContentField","AlignItemsField","createJustifyContentField","createAlignItemsField","VerticalAlignmentField","createVerticalAlignmentField","ContentAlignmentField","createContentAlignmentField","alignmentToFlexCSS","alignmentToGridCSS","alignmentToPlaceSelfCSS","alignmentToTailwind","SizeField","createSizeField","sizeValueToCSS","getSizeClasses","GradientEditor","BackgroundField","createBackgroundField","backgroundValueToCSS","gradientValueToCSS","getBackgroundImageOpacity","ResponsiveField","createResponsiveField","BREAKPOINTS","isResponsiveValue","responsiveValueToCSS","cssPropertiesToString","visibilityValueToCSS","DEFAULT_VISIBILITY","ResponsiveVisibilityField","createResponsiveVisibilityField","AnimationField","createAnimationField","animationValueToCSS","getEntranceAnimationStyles","getAnimationCSSVariables","getDefaultEasingForAnimation","getRelevantIntensityControls","getStaggerDelay","generateStaggerStyles","EASING_CSS_MAP","ANIMATION_CATEGORIES","DEFAULT_ANIMATION","TransformField","createTransformField","transformValueToCSS","DEFAULT_TRANSFORM","RICHTEXT_OUTPUT_CSS","injectRichtextStyles","console","warn","FolderPickerField","createFolderPickerField","PageSegmentField","createPageSegmentField","LockedPageSegmentField","createLockedPageSegmentField","SlugPreviewField","createSlugPreviewField"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorPickerControl.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/controls/ColorPickerControl.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAA;AAKxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,uBAAuB,qBA2DnF;AAMD,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,aAAa,EACb,OAAO,EACP,IAAI,EACJ,WAAkB,GACnB,EAAE,qBAAqB,qBAqLvB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/controls/ColorPickerControl.tsx"],"sourcesContent":["'use client'\n\n/**\n * ColorPickerControl - Text color control for Puck RichText toolbar\n *\n * A dropdown color picker with:\n * - Native color input\n * - Hex input with validation\n * - Opacity slider (RGBA support)\n * - Theme color presets\n * - \"Theme Color (Auto)\" option for dark/light mode adaptation\n */\n\nimport React, { useState, useCallback, type CSSProperties } from 'react'\nimport { Palette, ChevronDown } from 'lucide-react'\nimport { useTheme } from '../../../theme/index.js'\nimport { parseColor, normalizeHex, hexToRgba, controlStyles } from './shared.js'\nimport { Dropdown } from './DropdownPortal.js'\nimport type { Editor } from '@tiptap/react'\n\ninterface ColorPickerControlProps {\n editor: Editor\n currentColor: string | undefined\n}\n\nexport function ColorPickerControl({ editor, currentColor }: ColorPickerControlProps) {\n const [isOpen, setIsOpen] = useState(false)\n\n const handleColorChange = useCallback(\n (color: string | null) => {\n if (color) {\n editor.chain().focus().setColor(color).run()\n } else {\n editor.chain().focus().unsetColor().run()\n }\n },\n [editor]\n )\n\n const close = useCallback(() => setIsOpen(false), [])\n\n const hasColor = Boolean(currentColor)\n\n const trigger = (\n <button\n type=\"button\"\n title=\"Text Color\"\n style={{\n ...controlStyles.dropdownTrigger,\n ...(hasColor ? controlStyles.dropdownTriggerActive : {}),\n }}\n >\n <Palette style={controlStyles.icon} />\n <ChevronDown style={{ width: '12px', height: '12px' }} />\n {/* Color indicator */}\n {currentColor && (\n <span\n style={{\n position: 'absolute',\n bottom: '2px',\n left: '50%',\n transform: 'translateX(-50%)',\n width: '12px',\n height: '3px',\n borderRadius: '1px',\n backgroundColor: currentColor,\n }}\n />\n )}\n </button>\n )\n\n return (\n <div style={{ position: 'relative' }}>\n <Dropdown isOpen={isOpen} onOpenChange={setIsOpen} trigger={trigger} minWidth={260}>\n <ColorPickerPanel\n currentColor={currentColor}\n onColorChange={handleColorChange}\n onClose={close}\n mode=\"text\"\n />\n </Dropdown>\n </div>\n )\n}\n\n// =============================================================================\n// Color Picker Panel (shared between text and highlight)\n// =============================================================================\n\ninterface ColorPickerPanelProps {\n currentColor: string | undefined\n onColorChange: (color: string | null) => void\n onClose: () => void\n mode: 'text' | 'highlight'\n showOpacity?: boolean\n}\n\nexport function ColorPickerPanel({\n currentColor,\n onColorChange,\n onClose,\n mode,\n showOpacity = true,\n}: ColorPickerPanelProps) {\n const theme = useTheme()\n const presets = theme.colorPresets\n const parsed = parseColor(currentColor)\n\n const [hex, setHex] = useState(parsed.hex)\n const [hexInput, setHexInput] = useState(parsed.hex)\n const [opacity, setOpacity] = useState(parsed.opacity)\n const [hoverTheme, setHoverTheme] = useState(false)\n\n // Apply color (converts to rgba if opacity < 100)\n const applyColor = useCallback(\n (h: string, o: number) => {\n if (o < 100) {\n onColorChange(hexToRgba(h, o))\n } else {\n onColorChange(h)\n }\n },\n [onColorChange]\n )\n\n const handleColorInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newHex = e.target.value\n setHex(newHex)\n setHexInput(newHex)\n applyColor(newHex, opacity)\n },\n [opacity, applyColor]\n )\n\n const handleHexInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target.value\n setHexInput(input)\n const normalized = normalizeHex(input)\n if (normalized) {\n setHex(normalized)\n applyColor(normalized, opacity)\n }\n },\n [opacity, applyColor]\n )\n\n const handleHexInputBlur = useCallback(() => {\n setHexInput(hex)\n }, [hex])\n\n const handleOpacityChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newOpacity = parseInt(e.target.value, 10)\n setOpacity(newOpacity)\n applyColor(hex, newOpacity)\n },\n [hex, applyColor]\n )\n\n const handlePresetClick = useCallback(\n (preset: { hex: string; label: string }) => {\n setHex(preset.hex)\n setHexInput(preset.hex)\n setOpacity(100)\n applyColor(preset.hex, 100)\n onClose()\n },\n [applyColor, onClose]\n )\n\n const handleClearColor = useCallback(() => {\n onColorChange(null)\n onClose()\n }, [onColorChange, onClose])\n\n const previewColor = hexToRgba(hex, opacity)\n\n return (\n <div style={controlStyles.colorPickerContainer as CSSProperties}>\n {/* Theme/Auto color option */}\n <button\n type=\"button\"\n onClick={handleClearColor}\n onMouseEnter={() => setHoverTheme(true)}\n onMouseLeave={() => setHoverTheme(false)}\n style={{\n ...controlStyles.colorPickerThemeButton,\n ...(hoverTheme ? { backgroundColor: 'var(--puck-color-grey-01)' } : {}),\n }}\n >\n <span style={controlStyles.colorPickerThemeSwatch} />\n {mode === 'text' ? 'Theme Color (Auto)' : 'Remove Highlight'}\n </button>\n\n {/* Color picker row: native picker + hex input + preview */}\n <div style={controlStyles.colorPickerRow}>\n <input\n type=\"color\"\n value={hex}\n onChange={handleColorInputChange}\n style={controlStyles.colorPickerInput}\n title=\"Pick a color\"\n />\n <input\n type=\"text\"\n value={hexInput}\n onChange={handleHexInputChange}\n onBlur={handleHexInputBlur}\n placeholder=\"#000000\"\n style={controlStyles.colorPickerHexInput}\n />\n <div\n style={controlStyles.colorPickerPreview as CSSProperties}\n title={`${hex} at ${opacity}% opacity`}\n >\n <div style={controlStyles.colorPickerCheckerboard as CSSProperties} />\n <div\n style={{ ...(controlStyles.colorPickerOverlay as CSSProperties), backgroundColor: previewColor }}\n />\n </div>\n </div>\n\n {/* Opacity slider */}\n {showOpacity && (\n <div style={controlStyles.colorPickerOpacitySection as CSSProperties}>\n <div style={controlStyles.colorPickerOpacityHeader}>\n <label style={controlStyles.colorPickerOpacityLabel}>Opacity</label>\n <span style={controlStyles.colorPickerOpacityValue}>{opacity}%</span>\n </div>\n <div style={controlStyles.colorPickerOpacitySlider as CSSProperties}>\n <div style={controlStyles.colorPickerCheckerboard as CSSProperties} />\n <div\n style={{\n ...(controlStyles.colorPickerOverlay as CSSProperties),\n background: `linear-gradient(to right, transparent 0%, ${hex} 100%)`,\n }}\n />\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n value={opacity}\n onChange={handleOpacityChange}\n style={controlStyles.colorPickerOpacityInputRange as CSSProperties}\n />\n <div\n style={{\n ...(controlStyles.colorPickerOpacityThumb as CSSProperties),\n left: `calc(${opacity}% - 2px)`,\n }}\n />\n </div>\n </div>\n )}\n\n {/* Preset swatches */}\n {presets.length > 0 && (\n <div>\n <div style={controlStyles.colorPickerPresetsLabel}>Presets</div>\n <div style={controlStyles.colorPickerPresetsGrid as CSSProperties}>\n {presets.map((preset) => {\n const isSelected = hex.toLowerCase() === preset.hex.toLowerCase()\n return (\n <button\n key={preset.hex}\n type=\"button\"\n onClick={() => handlePresetClick(preset)}\n style={{\n ...(isSelected\n ? controlStyles.colorPickerPresetButtonSelected\n : controlStyles.colorPickerPresetButton),\n backgroundColor: preset.hex,\n }}\n title={preset.label}\n />\n )\n })}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","useState","useCallback","Palette","ChevronDown","useTheme","parseColor","normalizeHex","hexToRgba","controlStyles","Dropdown","ColorPickerControl","editor","currentColor","isOpen","setIsOpen","handleColorChange","color","chain","focus","setColor","run","unsetColor","close","hasColor","Boolean","trigger","button","type","title","style","dropdownTrigger","dropdownTriggerActive","icon","width","height","span","position","bottom","left","transform","borderRadius","backgroundColor","div","onOpenChange","minWidth","ColorPickerPanel","onColorChange","onClose","mode","showOpacity","theme","presets","colorPresets","parsed","hex","setHex","hexInput","setHexInput","opacity","setOpacity","hoverTheme","setHoverTheme","applyColor","h","o","handleColorInputChange","e","newHex","target","value","handleHexInputChange","input","normalized","handleHexInputBlur","handleOpacityChange","newOpacity","parseInt","handlePresetClick","preset","handleClearColor","previewColor","colorPickerContainer","onClick","onMouseEnter","onMouseLeave","colorPickerThemeButton","colorPickerThemeSwatch","colorPickerRow","onChange","colorPickerInput","onBlur","placeholder","colorPickerHexInput","colorPickerPreview","colorPickerCheckerboard","colorPickerOverlay","colorPickerOpacitySection","colorPickerOpacityHeader","label","colorPickerOpacityLabel","colorPickerOpacityValue","colorPickerOpacitySlider","background","min","max","colorPickerOpacityInputRange","colorPickerOpacityThumb","length","colorPickerPresetsLabel","colorPickerPresetsGrid","map","isSelected","toLowerCase","colorPickerPresetButtonSelected","colorPickerPresetButton"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DropdownPortal.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/controls/DropdownPortal.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAQ7C,UAAU,aAAa;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAc,EAAE,EAAE,aAAa,qBAuBlG;AAGD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/controls/DropdownPortal.tsx"],"sourcesContent":["'use client'\n\n/**\n * Dropdown - Renders dropdown content using Radix Popover for proper focus management\n *\n * Uses @radix-ui/react-popover which provides:\n * - Proper focus management that integrates with Puck's dirty state tracking\n * - Automatic close on escape and click outside\n * - Focus restoration to trigger element on close\n *\n * IMPORTANT: Uses data-puck-rte-menu attribute so Puck's blur handler recognizes\n * this dropdown as part of the rich text menu. Without this, clicking the dropdown\n * causes the editor to blur, clearing currentRichText state and breaking all menu\n * controls (including native Puck ones like HeadingSelect).\n */\n\nimport React, { type ReactNode } from 'react'\nimport {\n Root as PopoverRoot,\n Trigger as PopoverTrigger,\n Portal as PopoverPortal,\n Content as PopoverContent,\n} from '@radix-ui/react-popover'\n\ninterface DropdownProps {\n isOpen: boolean\n onOpenChange: (open: boolean) => void\n trigger: ReactNode\n children: ReactNode\n minWidth?: number\n}\n\nexport function Dropdown({ isOpen, onOpenChange, trigger, children, minWidth = 160 }: DropdownProps) {\n return (\n <PopoverRoot open={isOpen} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild>{trigger}</PopoverTrigger>\n <PopoverPortal>\n <PopoverContent\n align=\"start\"\n sideOffset={4}\n style={{\n backgroundColor: 'var(--puck-color-white)',\n border: '1px solid var(--puck-color-grey-09)',\n borderRadius: '8px',\n boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n zIndex: 99999,\n minWidth,\n }}\n data-puck-rte-menu\n >\n {children}\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n )\n}\n\n// Keep the old export name for backwards compatibility during migration\nexport { Dropdown as DropdownPortal }\n"],"names":["React","Root","PopoverRoot","Trigger","PopoverTrigger","Portal","PopoverPortal","Content","PopoverContent","Dropdown","isOpen","onOpenChange","trigger","children","minWidth","open","asChild","align","sideOffset","style","backgroundColor","border","borderRadius","boxShadow","zIndex","data-puck-rte-menu","DropdownPortal"],"mappings":"AAAA;;AAEA;;;;;;;;;;;;CAYC,GAED,OAAOA,WAA+B,QAAO;AAC7C,SACEC,QAAQC,WAAW,EACnBC,WAAWC,cAAc,EACzBC,UAAUC,aAAa,EACvBC,WAAWC,cAAc,QACpB,0BAAyB;AAUhC,OAAO,SAASC,SAAS,EAAEC,MAAM,EAAEC,YAAY,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,GAAG,EAAiB;IACjG,qBACE,MAACZ;QAAYa,MAAML;QAAQC,cAAcA;;0BACvC,KAACP;gBAAeY,OAAO;0BAAEJ;;0BACzB,KAACN;0BACC,cAAA,KAACE;oBACCS,OAAM;oBACNC,YAAY;oBACZC,OAAO;wBACLC,iBAAiB;wBACjBC,QAAQ;wBACRC,cAAc;wBACdC,WAAW;wBACXC,QAAQ;wBACRV;oBACF;oBACAW,oBAAkB;8BAEjBZ;;;;;AAKX;AAEA,wEAAwE;AACxE,SAASJ,YAAYiB,cAAc,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontSizeControl.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/controls/FontSizeControl.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAA;AAIxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,oBAAoB,qBA6H5E"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/controls/FontSizeControl.tsx"],"sourcesContent":["'use client'\n\n/**\n * FontSizeControl - Font size control for Puck RichText toolbar\n *\n * A dropdown with:\n * - 9 preset sizes (XS to 4XL)\n * - Custom size input with px/rem/em unit selection\n */\n\nimport React, { useState, useCallback, type CSSProperties } from 'react'\nimport { ALargeSmall, ChevronDown } from 'lucide-react'\nimport { FONT_SIZES, FONT_SIZE_UNITS, controlStyles } from './shared.js'\nimport { Dropdown } from './DropdownPortal.js'\nimport type { Editor } from '@tiptap/react'\n\ninterface FontSizeControlProps {\n editor: Editor\n currentSize: string | undefined\n}\n\nexport function FontSizeControl({ editor, currentSize }: FontSizeControlProps) {\n const [isOpen, setIsOpen] = useState(false)\n const [customValue, setCustomValue] = useState('')\n const [customUnit, setCustomUnit] = useState<'px' | 'rem' | 'em'>('px')\n\n const handlePresetClick = useCallback(\n (value: string | null) => {\n if (value) {\n editor.chain().focus().setFontSize(value).run()\n } else {\n editor.chain().focus().unsetFontSize().run()\n }\n setIsOpen(false)\n },\n [editor]\n )\n\n const handleCustomApply = useCallback(() => {\n if (customValue) {\n const size = `${customValue}${customUnit}`\n editor.chain().focus().setFontSize(size).run()\n setIsOpen(false)\n setCustomValue('')\n }\n }, [editor, customValue, customUnit])\n\n const handleCustomKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleCustomApply()\n }\n },\n [handleCustomApply]\n )\n\n // Find current preset label if any\n const currentPreset = FONT_SIZES.find((s) => s.value === currentSize)\n const hasCustomSize = currentSize && !currentPreset\n\n const trigger = (\n <button\n type=\"button\"\n title=\"Font Size\"\n style={{\n ...controlStyles.dropdownTrigger,\n ...(currentSize ? controlStyles.dropdownTriggerActive : {}),\n }}\n >\n <ALargeSmall style={controlStyles.icon} />\n <ChevronDown style={{ width: '12px', height: '12px' }} />\n </button>\n )\n\n return (\n <div style={{ position: 'relative' }}>\n <Dropdown isOpen={isOpen} onOpenChange={setIsOpen} trigger={trigger} minWidth={200}>\n {/* Preset label */}\n <div style={controlStyles.dropdownLabel}>Presets</div>\n\n {/* Preset grid */}\n <div style={controlStyles.fontSizeGrid as CSSProperties}>\n {FONT_SIZES.map((size) => {\n const isActive = size.value === currentSize || (!size.value && !currentSize)\n return (\n <button\n key={size.label}\n type=\"button\"\n onClick={() => handlePresetClick(size.value)}\n title={size.px}\n style={{\n ...controlStyles.fontSizeButton,\n ...(isActive ? controlStyles.fontSizeButtonActive : {}),\n }}\n >\n {size.label}\n </button>\n )\n })}\n </div>\n\n {/* Custom size input */}\n <div style={controlStyles.customSizeRow as CSSProperties}>\n <input\n type=\"number\"\n placeholder=\"16\"\n min=\"8\"\n max=\"200\"\n value={customValue}\n onChange={(e) => setCustomValue(e.target.value)}\n onKeyDown={handleCustomKeyDown}\n style={controlStyles.customSizeInput}\n />\n <select\n value={customUnit}\n onChange={(e) => setCustomUnit(e.target.value as 'px' | 'rem' | 'em')}\n style={controlStyles.customSizeSelect}\n >\n {FONT_SIZE_UNITS.map((unit) => (\n <option key={unit} value={unit}>\n {unit}\n </option>\n ))}\n </select>\n <button type=\"button\" onClick={handleCustomApply} style={controlStyles.customSizeApply}>\n Apply\n </button>\n </div>\n\n {/* Show current custom size if any */}\n {hasCustomSize && (\n <div\n style={{\n padding: '8px 12px',\n fontSize: '12px',\n color: 'var(--puck-color-grey-05)',\n borderTop: '1px solid var(--puck-color-grey-03)',\n }}\n >\n Current: {currentSize}\n </div>\n )}\n </Dropdown>\n </div>\n )\n}\n"],"names":["React","useState","useCallback","ALargeSmall","ChevronDown","FONT_SIZES","FONT_SIZE_UNITS","controlStyles","Dropdown","FontSizeControl","editor","currentSize","isOpen","setIsOpen","customValue","setCustomValue","customUnit","setCustomUnit","handlePresetClick","value","chain","focus","setFontSize","run","unsetFontSize","handleCustomApply","size","handleCustomKeyDown","e","key","preventDefault","currentPreset","find","s","hasCustomSize","trigger","button","type","title","style","dropdownTrigger","dropdownTriggerActive","icon","width","height","div","position","onOpenChange","minWidth","dropdownLabel","fontSizeGrid","map","isActive","onClick","px","fontSizeButton","fontSizeButtonActive","label","customSizeRow","input","placeholder","min","max","onChange","target","onKeyDown","customSizeInput","select","customSizeSelect","unit","option","customSizeApply","padding","fontSize","color","borderTop"],"mappings":"AAAA;;AAEA;;;;;;CAMC,GAED,OAAOA,SAASC,QAAQ,EAAEC,WAAW,QAA4B,QAAO;AACxE,SAASC,WAAW,EAAEC,WAAW,QAAQ,eAAc;AACvD,SAASC,UAAU,EAAEC,eAAe,EAAEC,aAAa,QAAQ,cAAa;AACxE,SAASC,QAAQ,QAAQ,sBAAqB;AAQ9C,OAAO,SAASC,gBAAgB,EAAEC,MAAM,EAAEC,WAAW,EAAwB;IAC3E,MAAM,CAACC,QAAQC,UAAU,GAAGZ,SAAS;IACrC,MAAM,CAACa,aAAaC,eAAe,GAAGd,SAAS;IAC/C,MAAM,CAACe,YAAYC,cAAc,GAAGhB,SAA8B;IAElE,MAAMiB,oBAAoBhB,YACxB,CAACiB;QACC,IAAIA,OAAO;YACTT,OAAOU,KAAK,GAAGC,KAAK,GAAGC,WAAW,CAACH,OAAOI,GAAG;QAC/C,OAAO;YACLb,OAAOU,KAAK,GAAGC,KAAK,GAAGG,aAAa,GAAGD,GAAG;QAC5C;QACAV,UAAU;IACZ,GACA;QAACH;KAAO;IAGV,MAAMe,oBAAoBvB,YAAY;QACpC,IAAIY,aAAa;YACf,MAAMY,OAAO,GAAGZ,cAAcE,YAAY;YAC1CN,OAAOU,KAAK,GAAGC,KAAK,GAAGC,WAAW,CAACI,MAAMH,GAAG;YAC5CV,UAAU;YACVE,eAAe;QACjB;IACF,GAAG;QAACL;QAAQI;QAAaE;KAAW;IAEpC,MAAMW,sBAAsBzB,YAC1B,CAAC0B;QACC,IAAIA,EAAEC,GAAG,KAAK,SAAS;YACrBD,EAAEE,cAAc;YAChBL;QACF;IACF,GACA;QAACA;KAAkB;IAGrB,mCAAmC;IACnC,MAAMM,gBAAgB1B,WAAW2B,IAAI,CAAC,CAACC,IAAMA,EAAEd,KAAK,KAAKR;IACzD,MAAMuB,gBAAgBvB,eAAe,CAACoB;IAEtC,MAAMI,wBACJ,MAACC;QACCC,MAAK;QACLC,OAAM;QACNC,OAAO;YACL,GAAGhC,cAAciC,eAAe;YAChC,GAAI7B,cAAcJ,cAAckC,qBAAqB,GAAG,CAAC,CAAC;QAC5D;;0BAEA,KAACtC;gBAAYoC,OAAOhC,cAAcmC,IAAI;;0BACtC,KAACtC;gBAAYmC,OAAO;oBAAEI,OAAO;oBAAQC,QAAQ;gBAAO;;;;IAIxD,qBACE,KAACC;QAAIN,OAAO;YAAEO,UAAU;QAAW;kBACjC,cAAA,MAACtC;YAASI,QAAQA;YAAQmC,cAAclC;YAAWsB,SAASA;YAASa,UAAU;;8BAE7E,KAACH;oBAAIN,OAAOhC,cAAc0C,aAAa;8BAAE;;8BAGzC,KAACJ;oBAAIN,OAAOhC,cAAc2C,YAAY;8BACnC7C,WAAW8C,GAAG,CAAC,CAACzB;wBACf,MAAM0B,WAAW1B,KAAKP,KAAK,KAAKR,eAAgB,CAACe,KAAKP,KAAK,IAAI,CAACR;wBAChE,qBACE,KAACyB;4BAECC,MAAK;4BACLgB,SAAS,IAAMnC,kBAAkBQ,KAAKP,KAAK;4BAC3CmB,OAAOZ,KAAK4B,EAAE;4BACdf,OAAO;gCACL,GAAGhC,cAAcgD,cAAc;gCAC/B,GAAIH,WAAW7C,cAAciD,oBAAoB,GAAG,CAAC,CAAC;4BACxD;sCAEC9B,KAAK+B,KAAK;2BATN/B,KAAK+B,KAAK;oBAYrB;;8BAIF,MAACZ;oBAAIN,OAAOhC,cAAcmD,aAAa;;sCACrC,KAACC;4BACCtB,MAAK;4BACLuB,aAAY;4BACZC,KAAI;4BACJC,KAAI;4BACJ3C,OAAOL;4BACPiD,UAAU,CAACnC,IAAMb,eAAea,EAAEoC,MAAM,CAAC7C,KAAK;4BAC9C8C,WAAWtC;4BACXY,OAAOhC,cAAc2D,eAAe;;sCAEtC,KAACC;4BACChD,OAAOH;4BACP+C,UAAU,CAACnC,IAAMX,cAAcW,EAAEoC,MAAM,CAAC7C,KAAK;4BAC7CoB,OAAOhC,cAAc6D,gBAAgB;sCAEpC9D,gBAAgB6C,GAAG,CAAC,CAACkB,qBACpB,KAACC;oCAAkBnD,OAAOkD;8CACvBA;mCADUA;;sCAKjB,KAACjC;4BAAOC,MAAK;4BAASgB,SAAS5B;4BAAmBc,OAAOhC,cAAcgE,eAAe;sCAAE;;;;gBAMzFrC,+BACC,MAACW;oBACCN,OAAO;wBACLiC,SAAS;wBACTC,UAAU;wBACVC,OAAO;wBACPC,WAAW;oBACb;;wBACD;wBACWhE;;;;;;AAMtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HighlightControl.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/controls/HighlightControl.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBAyDzF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/controls/HighlightControl.tsx"],"sourcesContent":["'use client'\n\n/**\n * HighlightControl - Text highlight control for Puck RichText toolbar\n *\n * A dropdown color picker for text highlighting with:\n * - Native color input\n * - Hex input with validation\n * - Opacity slider (RGBA support)\n * - Theme color presets\n * - Remove highlight option\n */\n\nimport React, { useState, useCallback } from 'react'\nimport { Highlighter, ChevronDown } from 'lucide-react'\nimport { controlStyles } from './shared.js'\nimport { ColorPickerPanel } from './ColorPickerControl.js'\nimport { Dropdown } from './DropdownPortal.js'\nimport type { Editor } from '@tiptap/react'\n\ninterface HighlightControlProps {\n editor: Editor\n currentColor: string | undefined\n isActive: boolean\n}\n\nexport function HighlightControl({ editor, currentColor, isActive }: HighlightControlProps) {\n const [isOpen, setIsOpen] = useState(false)\n\n const handleColorChange = useCallback(\n (color: string | null) => {\n if (color) {\n editor.chain().focus().setHighlight({ color }).run()\n } else {\n editor.chain().focus().unsetHighlight().run()\n }\n },\n [editor]\n )\n\n const close = useCallback(() => setIsOpen(false), [])\n\n const trigger = (\n <button\n type=\"button\"\n title=\"Highlight\"\n style={{\n ...controlStyles.dropdownTrigger,\n ...(isActive ? controlStyles.dropdownTriggerActive : {}),\n }}\n >\n <Highlighter style={controlStyles.icon} />\n <ChevronDown style={{ width: '12px', height: '12px' }} />\n {/* Highlight color indicator */}\n {currentColor && (\n <span\n style={{\n position: 'absolute',\n bottom: '2px',\n left: '50%',\n transform: 'translateX(-50%)',\n width: '12px',\n height: '3px',\n borderRadius: '1px',\n backgroundColor: currentColor,\n }}\n />\n )}\n </button>\n )\n\n return (\n <div style={{ position: 'relative' }}>\n <Dropdown isOpen={isOpen} onOpenChange={setIsOpen} trigger={trigger} minWidth={260}>\n <ColorPickerPanel\n currentColor={currentColor}\n onColorChange={handleColorChange}\n onClose={close}\n mode=\"highlight\"\n />\n </Dropdown>\n </div>\n )\n}\n"],"names":["React","useState","useCallback","Highlighter","ChevronDown","controlStyles","ColorPickerPanel","Dropdown","HighlightControl","editor","currentColor","isActive","isOpen","setIsOpen","handleColorChange","color","chain","focus","setHighlight","run","unsetHighlight","close","trigger","button","type","title","style","dropdownTrigger","dropdownTriggerActive","icon","width","height","span","position","bottom","left","transform","borderRadius","backgroundColor","div","onOpenChange","minWidth","onColorChange","onClose","mode"],"mappings":"AAAA;;AAEA;;;;;;;;;CASC,GAED,OAAOA,SAASC,QAAQ,EAAEC,WAAW,QAAQ,QAAO;AACpD,SAASC,WAAW,EAAEC,WAAW,QAAQ,eAAc;AACvD,SAASC,aAAa,QAAQ,cAAa;AAC3C,SAASC,gBAAgB,QAAQ,0BAAyB;AAC1D,SAASC,QAAQ,QAAQ,sBAAqB;AAS9C,OAAO,SAASC,iBAAiB,EAAEC,MAAM,EAAEC,YAAY,EAAEC,QAAQ,EAAyB;IACxF,MAAM,CAACC,QAAQC,UAAU,GAAGZ,SAAS;IAErC,MAAMa,oBAAoBZ,YACxB,CAACa;QACC,IAAIA,OAAO;YACTN,OAAOO,KAAK,GAAGC,KAAK,GAAGC,YAAY,CAAC;gBAAEH;YAAM,GAAGI,GAAG;QACpD,OAAO;YACLV,OAAOO,KAAK,GAAGC,KAAK,GAAGG,cAAc,GAAGD,GAAG;QAC7C;IACF,GACA;QAACV;KAAO;IAGV,MAAMY,QAAQnB,YAAY,IAAMW,UAAU,QAAQ,EAAE;IAEpD,MAAMS,wBACJ,MAACC;QACCC,MAAK;QACLC,OAAM;QACNC,OAAO;YACL,GAAGrB,cAAcsB,eAAe;YAChC,GAAIhB,WAAWN,cAAcuB,qBAAqB,GAAG,CAAC,CAAC;QACzD;;0BAEA,KAACzB;gBAAYuB,OAAOrB,cAAcwB,IAAI;;0BACtC,KAACzB;gBAAYsB,OAAO;oBAAEI,OAAO;oBAAQC,QAAQ;gBAAO;;YAEnDrB,8BACC,KAACsB;gBACCN,OAAO;oBACLO,UAAU;oBACVC,QAAQ;oBACRC,MAAM;oBACNC,WAAW;oBACXN,OAAO;oBACPC,QAAQ;oBACRM,cAAc;oBACdC,iBAAiB5B;gBACnB;;;;IAMR,qBACE,KAAC6B;QAAIb,OAAO;YAAEO,UAAU;QAAW;kBACjC,cAAA,KAAC1B;YAASK,QAAQA;YAAQ4B,cAAc3B;YAAWS,SAASA;YAASmB,UAAU;sBAC7E,cAAA,KAACnC;gBACCI,cAAcA;gBACdgC,eAAe5B;gBACf6B,SAAStB;gBACTuB,MAAK;;;;AAKf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/controls/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,UAAU,EAEV,UAAU,EACV,eAAe,EAEf,aAAa,GACd,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/controls/index.ts"],"sourcesContent":["/**\n * RichText toolbar controls\n *\n * Custom controls for Puck's native richtext field.\n */\n\nexport { ColorPickerControl, ColorPickerPanel } from './ColorPickerControl.js'\nexport { FontSizeControl } from './FontSizeControl.js'\nexport { HighlightControl } from './HighlightControl.js'\n\nexport {\n // Color utilities\n normalizeHex,\n hexToRgba,\n parseColor,\n // Font size presets\n FONT_SIZES,\n FONT_SIZE_UNITS,\n // Shared styles\n controlStyles,\n} from './shared.js'\n\nexport type { FontSizeUnit } from './shared.js'\n"],"names":["ColorPickerControl","ColorPickerPanel","FontSizeControl","HighlightControl","normalizeHex","hexToRgba","parseColor","FONT_SIZES","FONT_SIZE_UNITS","controlStyles"],"mappings":"AAAA;;;;CAIC,GAED,SAASA,kBAAkB,EAAEC,gBAAgB,QAAQ,0BAAyB;AAC9E,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,gBAAgB,QAAQ,wBAAuB;AAExD,SACE,kBAAkB;AAClBC,YAAY,EACZC,SAAS,EACTC,UAAU,EACV,oBAAoB;AACpBC,UAAU,EACVC,eAAe,EACf,gBAAgB;AAChBC,aAAa,QACR,cAAa"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/controls/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAM1C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUb,CAAA;AAEV,eAAO,MAAM,eAAe,8BAA+B,CAAA;AAE3D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAM3D;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYhD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqBtF;AAMD,eAAO,MAAM,aAAa;UAInB,aAAa;qBAcb,aAAa;2BAIb,aAAa;cAab,aAAa;kBAab,aAAa;mBASb,aAAa;uBAMb,aAAa;0BASb,aAAa;oBAMb,aAAa;sBAUb,aAAa;yBAab,aAAa;wBAUb,aAAa;6BAUb,aAAa;wBAKb,aAAa;+BAMb,aAAa;8BAMb,aAAa;6BAKb,aAAa;6BAMb,aAAa;8BAQb,aAAa;kCAUb,aAAa;6BAYb,aAAa;6BAMb,aAAa;4BAMb,aAAa;6BAWb,aAAa;qCAWb,aAAa;4BAeb,aAAa;4BASb,aAAa;kBAQb,aAAa;oBAYb,aAAa;0BAOb,aAAa;mBAQb,aAAa;qBAWb,aAAa;sBAUb,aAAa;qBAWb,aAAa;CACnB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/controls/shared.ts"],"sourcesContent":["/**\n * Shared utilities for RichText controls\n *\n * Color manipulation, font size presets, and common types.\n */\n\nimport type { CSSProperties } from 'react'\n\n// =============================================================================\n// Font Size Presets\n// =============================================================================\n\nexport const FONT_SIZES = [\n { label: 'XS', value: '0.75rem', px: '12px' },\n { label: 'Small', value: '0.875rem', px: '14px' },\n { label: 'Normal', value: null, px: '16px' },\n { label: 'Medium', value: '1.125rem', px: '18px' },\n { label: 'Large', value: '1.25rem', px: '20px' },\n { label: 'XL', value: '1.5rem', px: '24px' },\n { label: '2XL', value: '1.875rem', px: '30px' },\n { label: '3XL', value: '2.25rem', px: '36px' },\n { label: '4XL', value: '3rem', px: '48px' },\n] as const\n\nexport const FONT_SIZE_UNITS = ['px', 'rem', 'em'] as const\n\nexport type FontSizeUnit = (typeof FONT_SIZE_UNITS)[number]\n\n// =============================================================================\n// Color Utilities\n// =============================================================================\n\n/**\n * Validates and normalizes a hex color string\n */\nexport function normalizeHex(hex: string): string {\n let clean = hex.replace(/^#/, '')\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('')\n }\n if (!/^[0-9A-Fa-f]{6}$/.test(clean)) {\n return ''\n }\n return `#${clean.toLowerCase()}`\n}\n\n/**\n * Converts hex + opacity to rgba CSS string\n */\nexport function hexToRgba(hex: string, opacity: number): string {\n const clean = hex.replace(/^#/, '')\n const r = parseInt(clean.substring(0, 2), 16)\n const g = parseInt(clean.substring(2, 4), 16)\n const b = parseInt(clean.substring(4, 6), 16)\n return `rgba(${r}, ${g}, ${b}, ${opacity / 100})`\n}\n\n/**\n * Parses a color string (hex or rgba) and returns hex + opacity\n */\nexport function parseColor(color: string | undefined): { hex: string; opacity: number } {\n if (!color) return { hex: '#000000', opacity: 100 }\n\n // Handle rgba\n const rgbaMatch = color.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*([\\d.]+))?\\)/)\n if (rgbaMatch) {\n const r = parseInt(rgbaMatch[1], 10)\n const g = parseInt(rgbaMatch[2], 10)\n const b = parseInt(rgbaMatch[3], 10)\n const a = rgbaMatch[4] ? parseFloat(rgbaMatch[4]) : 1\n const hex = `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`\n return { hex, opacity: Math.round(a * 100) }\n }\n\n // Handle hex\n const normalized = normalizeHex(color)\n if (normalized) {\n return { hex: normalized, opacity: 100 }\n }\n\n return { hex: '#000000', opacity: 100 }\n}\n\n// =============================================================================\n// Shared Styles\n// =============================================================================\n\nexport const controlStyles = {\n icon: {\n width: '16px',\n height: '16px',\n } as CSSProperties,\n\n dropdownTrigger: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '2px',\n height: '28px',\n padding: '0 6px',\n borderRadius: '4px',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n transition: 'background-color 0.15s',\n } as CSSProperties,\n\n dropdownTriggerActive: {\n color: 'var(--puck-color-azure-04)',\n } as CSSProperties,\n\n dropdown: {\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: '4px',\n backgroundColor: 'var(--puck-color-white)',\n border: '1px solid var(--puck-color-grey-03)',\n borderRadius: '6px',\n boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n zIndex: 9999, // High z-index to ensure dropdown appears above sidebar content\n minWidth: '160px',\n } as CSSProperties,\n\n dropdownItem: {\n width: '100%',\n padding: '8px 12px',\n textAlign: 'left',\n fontSize: '14px',\n transition: 'background-color 0.15s',\n display: 'flex',\n alignItems: 'center',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n } as CSSProperties,\n\n dropdownLabel: {\n padding: '4px 12px',\n fontSize: '11px',\n color: 'var(--puck-color-grey-05)',\n fontWeight: 500,\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n } as CSSProperties,\n\n dropdownSeparator: {\n height: '1px',\n backgroundColor: 'var(--puck-color-grey-03)',\n margin: '4px 0',\n } as CSSProperties,\n\n // Color picker specific styles\n colorPickerContainer: {\n padding: '12px',\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n minWidth: '240px',\n } as CSSProperties,\n\n colorPickerRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n } as CSSProperties,\n\n colorPickerInput: {\n width: '36px',\n height: '36px',\n padding: 0,\n border: '1px solid var(--puck-color-grey-03)',\n borderRadius: '6px',\n cursor: 'pointer',\n flexShrink: 0,\n } as CSSProperties,\n\n colorPickerHexInput: {\n flex: 1,\n height: '36px',\n padding: '0 10px',\n fontSize: '13px',\n fontFamily: 'monospace',\n border: '1px solid var(--puck-color-grey-03)',\n borderRadius: '6px',\n backgroundColor: 'var(--puck-color-white)',\n color: 'var(--puck-color-grey-08)',\n outline: 'none',\n } as CSSProperties,\n\n colorPickerPreview: {\n width: '36px',\n height: '36px',\n borderRadius: '6px',\n border: '1px solid var(--puck-color-grey-03)',\n flexShrink: 0,\n position: 'relative',\n overflow: 'hidden',\n } as CSSProperties,\n\n colorPickerCheckerboard: {\n position: 'absolute',\n inset: 0,\n backgroundImage:\n 'linear-gradient(45deg, #d0d0d0 25%, transparent 25%), linear-gradient(-45deg, #d0d0d0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d0d0d0 75%), linear-gradient(-45deg, transparent 75%, #d0d0d0 75%)',\n backgroundSize: '8px 8px',\n backgroundPosition: '0 0, 0 4px, 4px -4px, -4px 0px',\n backgroundColor: '#f0f0f0',\n } as CSSProperties,\n\n colorPickerOverlay: {\n position: 'absolute',\n inset: 0,\n } as CSSProperties,\n\n colorPickerOpacitySection: {\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n } as CSSProperties,\n\n colorPickerOpacityHeader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n } as CSSProperties,\n\n colorPickerOpacityLabel: {\n fontSize: '11px',\n color: 'var(--puck-color-grey-05)',\n } as CSSProperties,\n\n colorPickerOpacityValue: {\n fontSize: '11px',\n fontFamily: 'monospace',\n color: 'var(--puck-color-grey-05)',\n } as CSSProperties,\n\n colorPickerOpacitySlider: {\n position: 'relative',\n height: '10px',\n borderRadius: '5px',\n overflow: 'hidden',\n border: '1px solid var(--puck-color-grey-03)',\n } as CSSProperties,\n\n colorPickerOpacityInputRange: {\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n cursor: 'pointer',\n margin: 0,\n } as CSSProperties,\n\n colorPickerOpacityThumb: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n width: '4px',\n backgroundColor: 'white',\n border: '1px solid var(--puck-color-grey-04)',\n borderRadius: '2px',\n boxShadow: '0 1px 2px rgba(0,0,0,0.15)',\n pointerEvents: 'none',\n } as CSSProperties,\n\n colorPickerPresetsLabel: {\n fontSize: '11px',\n color: 'var(--puck-color-grey-05)',\n marginBottom: '4px',\n } as CSSProperties,\n\n colorPickerPresetsGrid: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n } as CSSProperties,\n\n colorPickerPresetButton: {\n width: '22px',\n height: '22px',\n padding: 0,\n borderRadius: '4px',\n cursor: 'pointer',\n border: '1px solid var(--puck-color-grey-03)',\n outline: 'none',\n transition: 'transform 0.1s',\n } as CSSProperties,\n\n colorPickerPresetButtonSelected: {\n width: '22px',\n height: '22px',\n padding: 0,\n borderRadius: '4px',\n cursor: 'pointer',\n border: '2px solid var(--puck-color-grey-08)',\n outline: '2px solid var(--puck-color-grey-03)',\n outlineOffset: '1px',\n } as CSSProperties,\n\n colorPickerThemeButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n width: '100%',\n padding: '8px',\n border: '1px solid var(--puck-color-grey-03)',\n borderRadius: '6px',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n fontSize: '13px',\n color: 'var(--puck-color-grey-07)',\n transition: 'background-color 0.15s',\n } as CSSProperties,\n\n colorPickerThemeSwatch: {\n width: '20px',\n height: '20px',\n borderRadius: '4px',\n border: '1px solid var(--puck-color-grey-03)',\n flexShrink: 0,\n background: 'linear-gradient(135deg, #fff 50%, #1f2937 50%)',\n } as CSSProperties,\n\n // Font size specific styles\n fontSizeGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(3, 1fr)',\n gap: '4px',\n padding: '8px',\n } as CSSProperties,\n\n fontSizeButton: {\n padding: '6px 8px',\n fontSize: '12px',\n borderRadius: '4px',\n border: '1px solid var(--puck-color-grey-03)',\n backgroundColor: 'var(--puck-color-white)',\n color: 'var(--puck-color-grey-07)',\n cursor: 'pointer',\n textAlign: 'center',\n transition: 'background-color 0.15s, border-color 0.15s',\n } as CSSProperties,\n\n fontSizeButtonActive: {\n backgroundColor: 'var(--puck-color-azure-11)',\n border: '1px solid var(--puck-color-azure-11)',\n color: 'var(--puck-color-azure-04)',\n fontWeight: 500,\n } as CSSProperties,\n\n customSizeRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n padding: '8px',\n borderTop: '1px solid var(--puck-color-grey-03)',\n } as CSSProperties,\n\n customSizeInput: {\n width: '60px',\n padding: '6px 8px',\n fontSize: '13px',\n border: '1px solid var(--puck-color-grey-03)',\n borderRadius: '4px',\n outline: 'none',\n backgroundColor: 'var(--puck-color-white)',\n color: 'var(--puck-color-grey-08)',\n } as CSSProperties,\n\n customSizeSelect: {\n padding: '6px 4px',\n fontSize: '13px',\n border: '1px solid var(--puck-color-grey-03)',\n borderRadius: '4px',\n outline: 'none',\n backgroundColor: 'var(--puck-color-white)',\n color: 'var(--puck-color-grey-08)',\n } as CSSProperties,\n\n customSizeApply: {\n padding: '6px 10px',\n fontSize: '12px',\n backgroundColor: 'var(--puck-color-azure-04)',\n color: 'var(--puck-color-white)',\n borderRadius: '4px',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n } as CSSProperties,\n}\n"],"names":["FONT_SIZES","label","value","px","FONT_SIZE_UNITS","normalizeHex","hex","clean","replace","length","split","map","c","join","test","toLowerCase","hexToRgba","opacity","r","parseInt","substring","g","b","parseColor","color","rgbaMatch","match","a","parseFloat","toString","padStart","Math","round","normalized","controlStyles","icon","width","height","dropdownTrigger","display","alignItems","justifyContent","gap","padding","borderRadius","border","backgroundColor","cursor","transition","dropdownTriggerActive","dropdown","position","top","left","marginTop","boxShadow","zIndex","minWidth","dropdownItem","textAlign","fontSize","dropdownLabel","fontWeight","textTransform","letterSpacing","dropdownSeparator","margin","colorPickerContainer","flexDirection","colorPickerRow","colorPickerInput","flexShrink","colorPickerHexInput","flex","fontFamily","outline","colorPickerPreview","overflow","colorPickerCheckerboard","inset","backgroundImage","backgroundSize","backgroundPosition","colorPickerOverlay","colorPickerOpacitySection","colorPickerOpacityHeader","colorPickerOpacityLabel","colorPickerOpacityValue","colorPickerOpacitySlider","colorPickerOpacityInputRange","colorPickerOpacityThumb","bottom","pointerEvents","colorPickerPresetsLabel","marginBottom","colorPickerPresetsGrid","flexWrap","colorPickerPresetButton","colorPickerPresetButtonSelected","outlineOffset","colorPickerThemeButton","colorPickerThemeSwatch","background","fontSizeGrid","gridTemplateColumns","fontSizeButton","fontSizeButtonActive","customSizeRow","borderTop","customSizeInput","customSizeSelect","customSizeApply"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRichTextField.d.ts","sourceRoot":"","sources":["../../../src/fields/richtext/createRichTextField.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAoBzB,MAAM,WAAW,0BAA0B;IACzC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE/B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AA0BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;kBAmFhE,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;EAgE1E;AAMD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;kBA9ElB,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;CAgFzE,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;kBA1FrB,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;CA6FzE,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;kBAvGrB,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;CAwGzE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/fields/richtext/createRichTextField.tsx"],"sourcesContent":["'use client'\n\n/**\n * createRichTextField - Factory for enhanced Puck richtext fields\n *\n * Creates a Puck native richtext field with additional features:\n * - Text color with opacity (RGBA)\n * - Highlight with multicolor support\n * - Font size (9 presets + custom)\n * - Superscript and subscript\n * - Theme color presets integration\n *\n * Uses Puck's official extension points (tiptap.extensions, tiptap.selector, renderMenu)\n * for native integration with contentEditable support.\n */\n\nimport React from 'react'\nimport { RichTextMenu } from '@puckeditor/core'\nimport { TextStyle } from '@tiptap/extension-text-style'\nimport { Color } from '@tiptap/extension-color'\nimport HighlightExtension from '@tiptap/extension-highlight'\nimport Superscript from '@tiptap/extension-superscript'\nimport Subscript from '@tiptap/extension-subscript'\nimport { Superscript as SuperscriptIcon, Subscript as SubscriptIcon } from 'lucide-react'\n\nimport { FontSize } from './extensions/FontSize.js'\nimport { ColorPickerControl } from './controls/ColorPickerControl.js'\nimport { FontSizeControl } from './controls/FontSizeControl.js'\nimport { HighlightControl } from './controls/HighlightControl.js'\n\nimport type { Editor } from '@tiptap/react'\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface CreateRichTextFieldOptions {\n /** Field label shown in sidebar */\n label?: string\n\n /**\n * Enable inline editing on canvas.\n * When true, users can edit text directly in the preview.\n * @default false\n */\n contentEditable?: boolean\n\n /**\n * Initial height for sidebar editor (ignored if contentEditable is true)\n * @default 192\n */\n initialHeight?: number | string\n\n /**\n * Heading levels to allow\n * @default [1, 2, 3, 4, 5, 6]\n */\n headingLevels?: (1 | 2 | 3 | 4 | 5 | 6)[]\n\n /**\n * Enable font size control\n * @default true\n */\n fontSize?: boolean\n\n /**\n * Enable text color control\n * @default true\n */\n textColor?: boolean\n\n /**\n * Enable highlight control\n * @default true\n */\n highlight?: boolean\n\n /**\n * Enable superscript\n * @default true\n */\n superscript?: boolean\n\n /**\n * Enable subscript\n * @default true\n */\n subscript?: boolean\n\n /**\n * Enable code blocks (in addition to inline code)\n * @default true\n */\n codeBlock?: boolean\n\n /**\n * Enable blockquotes\n * @default true\n */\n blockquote?: boolean\n}\n\n// =============================================================================\n// Custom Editor State Interface\n// =============================================================================\n\ninterface CustomEditorState {\n // Text color\n currentColor: string | undefined\n // Highlight\n highlightColor: string | undefined\n isHighlight: boolean\n // Font size\n currentFontSize: string | undefined\n // Superscript/Subscript\n isSuperscript: boolean\n isSubscript: boolean\n canSuperscript: boolean\n canSubscript: boolean\n}\n\n\n// =============================================================================\n// Factory Function\n// =============================================================================\n\n/**\n * Creates a Puck richtext field with enhanced features.\n *\n * @example\n * ```tsx\n * const myConfig: ComponentConfig = {\n * fields: {\n * content: createRichTextField({\n * label: 'Content',\n * contentEditable: true,\n * }),\n * },\n * // ...\n * }\n * ```\n */\nexport function createRichTextField(options: CreateRichTextFieldOptions = {}) {\n const {\n label,\n contentEditable = false,\n initialHeight = 192,\n headingLevels = [1, 2, 3, 4, 5, 6],\n fontSize = true,\n textColor = true,\n highlight = true,\n superscript = true,\n subscript = true,\n codeBlock = true,\n blockquote = true,\n } = options\n\n // Build custom TipTap extensions array\n // Using any[] to avoid complex union types with TipTap extensions\n const customExtensions: any[] = [TextStyle]\n\n if (textColor) {\n customExtensions.push(Color)\n }\n\n if (highlight) {\n customExtensions.push(HighlightExtension.configure({ multicolor: true }))\n }\n\n if (fontSize) {\n customExtensions.push(FontSize)\n }\n\n if (superscript) {\n customExtensions.push(Superscript)\n }\n\n if (subscript) {\n customExtensions.push(Subscript)\n }\n\n return {\n type: 'richtext' as const,\n label,\n\n // Puck richtext options\n contentEditable,\n initialHeight,\n\n // Configure built-in extensions\n // Note: Puck expects `false` to disable or config object to customize\n // Omitting a key or setting to `undefined` means \"use default\" (enabled)\n options: {\n heading: { levels: headingLevels },\n codeBlock: codeBlock ? undefined : (false as const),\n blockquote: blockquote ? undefined : (false as const),\n },\n\n // Add our custom TipTap extensions\n tiptap: {\n extensions: customExtensions,\n\n // Expose custom state for our controls\n // Cast to any because Puck's types expect Record<string, boolean> but we need strings for colors/sizes\n selector: ((ctx: { editor: Editor | null }) => {\n if (!ctx.editor) {\n return {}\n }\n return {\n // Text color state\n currentColor: ctx.editor.getAttributes('textStyle').color,\n\n // Highlight state\n highlightColor: ctx.editor.getAttributes('highlight').color,\n isHighlight: ctx.editor.isActive('highlight'),\n\n // Font size state\n currentFontSize: ctx.editor.getAttributes('textStyle').fontSize,\n\n // Superscript/Subscript state\n isSuperscript: ctx.editor.isActive('superscript'),\n isSubscript: ctx.editor.isActive('subscript'),\n canSuperscript: ctx.editor.can().toggleSuperscript(),\n canSubscript: ctx.editor.can().toggleSubscript(),\n }\n }) as any,\n },\n\n // Custom menu with our additional controls\n // Using any types for Puck compatibility - our selector adds custom properties to editorState\n renderMenu: ({ editor, editorState }: { editor: any; editorState: any }) => {\n // Guard against null editor/state during initialization\n if (!editor || !editorState) {\n return null\n }\n\n return (\n <RichTextMenu>\n {/* Text Formatting - consolidated into one group */}\n <RichTextMenu.Group>\n <RichTextMenu.Bold />\n <RichTextMenu.Italic />\n <RichTextMenu.Underline />\n <RichTextMenu.Strikethrough />\n {superscript && (\n <RichTextMenu.Control\n icon={<SuperscriptIcon size={16} />}\n title=\"Superscript\"\n active={editorState.isSuperscript}\n disabled={!editorState.canSuperscript}\n onClick={() => editor.chain().focus().toggleSuperscript().run()}\n />\n )}\n {subscript && (\n <RichTextMenu.Control\n icon={<SubscriptIcon size={16} />}\n title=\"Subscript\"\n active={editorState.isSubscript}\n disabled={!editorState.canSubscript}\n onClick={() => editor.chain().focus().toggleSubscript().run()}\n />\n )}\n </RichTextMenu.Group>\n\n {/* Structure - Headings, Lists (as select dropdowns to save space) */}\n <RichTextMenu.Group>\n <RichTextMenu.HeadingSelect />\n <RichTextMenu.ListSelect />\n <RichTextMenu.AlignSelect />\n </RichTextMenu.Group>\n\n {/* Colors and Font Size (custom controls) */}\n <RichTextMenu.Group>\n {fontSize && <FontSizeControl editor={editor} currentSize={editorState.currentFontSize} />}\n {textColor && <ColorPickerControl editor={editor} currentColor={editorState.currentColor} />}\n {highlight && (\n <HighlightControl\n editor={editor}\n currentColor={editorState.highlightColor}\n isActive={editorState.isHighlight}\n />\n )}\n </RichTextMenu.Group>\n\n {/* Block Elements */}\n <RichTextMenu.Group>\n {blockquote && <RichTextMenu.Blockquote />}\n {codeBlock && <RichTextMenu.CodeBlock />}\n <RichTextMenu.HorizontalRule />\n </RichTextMenu.Group>\n </RichTextMenu>\n )\n },\n }\n}\n\n// =============================================================================\n// Preset Configurations\n// =============================================================================\n\n/**\n * Full-featured richtext field with all enhancements\n */\nexport const fullRichTextField = createRichTextField({\n contentEditable: true,\n fontSize: true,\n textColor: true,\n highlight: true,\n superscript: true,\n subscript: true,\n})\n\n/**\n * Minimal richtext field - structure only, no styling controls\n */\nexport const minimalRichTextField = createRichTextField({\n contentEditable: true,\n fontSize: false,\n textColor: false,\n highlight: false,\n superscript: false,\n subscript: false,\n headingLevels: [1, 2, 3],\n})\n\n/**\n * Sidebar-only richtext field (no inline editing)\n */\nexport const sidebarRichTextField = createRichTextField({\n contentEditable: false,\n initialHeight: 300,\n fontSize: true,\n textColor: true,\n highlight: true,\n})\n"],"names":["React","RichTextMenu","TextStyle","Color","HighlightExtension","Superscript","Subscript","SuperscriptIcon","SubscriptIcon","FontSize","ColorPickerControl","FontSizeControl","HighlightControl","createRichTextField","options","label","contentEditable","initialHeight","headingLevels","fontSize","textColor","highlight","superscript","subscript","codeBlock","blockquote","customExtensions","push","configure","multicolor","type","heading","levels","undefined","tiptap","extensions","selector","ctx","editor","currentColor","getAttributes","color","highlightColor","isHighlight","isActive","currentFontSize","isSuperscript","isSubscript","canSuperscript","can","toggleSuperscript","canSubscript","toggleSubscript","renderMenu","editorState","Group","Bold","Italic","Underline","Strikethrough","Control","icon","size","title","active","disabled","onClick","chain","focus","run","HeadingSelect","ListSelect","AlignSelect","currentSize","Blockquote","CodeBlock","HorizontalRule","fullRichTextField","minimalRichTextField","sidebarRichTextField"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontSize.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/extensions/FontSize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,QAAQ,EAAE;YACR;;eAEG;YACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAA;YACzC;;eAEG;YACH,aAAa,EAAE,MAAM,UAAU,CAAA;SAChC,CAAA;KACF;CACF;AAED,eAAO,MAAM,QAAQ,qBA6CnB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/extensions/FontSize.ts"],"sourcesContent":["/**\n * FontSize Extension for TipTap\n *\n * Custom TipTap extension that adds font-size support via inline styles.\n * Used with Puck's native richtext field via tiptap.extensions.\n */\n\nimport { Extension } from '@tiptap/core'\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n fontSize: {\n /**\n * Set the font size (e.g., '1.5rem', '24px', '1.25em')\n */\n setFontSize: (size: string) => ReturnType\n /**\n * Remove the font size (revert to default)\n */\n unsetFontSize: () => ReturnType\n }\n }\n}\n\nexport const FontSize = Extension.create({\n name: 'fontSize',\n\n addOptions() {\n return {\n types: ['textStyle'],\n }\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n fontSize: {\n default: null,\n parseHTML: (element) => element.style.fontSize?.replace(/['\"]+/g, ''),\n renderHTML: (attributes) => {\n if (!attributes.fontSize) {\n return {}\n }\n return {\n style: `font-size: ${attributes.fontSize}`,\n }\n },\n },\n },\n },\n ]\n },\n\n addCommands() {\n return {\n setFontSize:\n (fontSize: string) =>\n ({ chain }) => {\n return chain().setMark('textStyle', { fontSize }).run()\n },\n unsetFontSize:\n () =>\n ({ chain }) => {\n return chain().setMark('textStyle', { fontSize: null }).removeEmptyTextStyle().run()\n },\n }\n },\n})\n"],"names":["Extension","FontSize","create","name","addOptions","types","addGlobalAttributes","options","attributes","fontSize","default","parseHTML","element","style","replace","renderHTML","addCommands","setFontSize","chain","setMark","run","unsetFontSize","removeEmptyTextStyle"],"mappings":"AAAA;;;;;CAKC,GAED,SAASA,SAAS,QAAQ,eAAc;AAiBxC,OAAO,MAAMC,WAAWD,UAAUE,MAAM,CAAC;IACvCC,MAAM;IAENC;QACE,OAAO;YACLC,OAAO;gBAAC;aAAY;QACtB;IACF;IAEAC;QACE,OAAO;YACL;gBACED,OAAO,IAAI,CAACE,OAAO,CAACF,KAAK;gBACzBG,YAAY;oBACVC,UAAU;wBACRC,SAAS;wBACTC,WAAW,CAACC,UAAYA,QAAQC,KAAK,CAACJ,QAAQ,EAAEK,QAAQ,UAAU;wBAClEC,YAAY,CAACP;4BACX,IAAI,CAACA,WAAWC,QAAQ,EAAE;gCACxB,OAAO,CAAC;4BACV;4BACA,OAAO;gCACLI,OAAO,CAAC,WAAW,EAAEL,WAAWC,QAAQ,EAAE;4BAC5C;wBACF;oBACF;gBACF;YACF;SACD;IACH;IAEAO;QACE,OAAO;YACLC,aACE,CAACR,WACD,CAAC,EAAES,KAAK,EAAE;oBACR,OAAOA,QAAQC,OAAO,CAAC,aAAa;wBAAEV;oBAAS,GAAGW,GAAG;gBACvD;YACFC,eACE,IACA,CAAC,EAAEH,KAAK,EAAE;oBACR,OAAOA,QAAQC,OAAO,CAAC,aAAa;wBAAEV,UAAU;oBAAK,GAAGa,oBAAoB,GAAGF,GAAG;gBACpF;QACJ;IACF;AACF,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/richtext/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/richtext/extensions/index.ts"],"sourcesContent":["/**\n * Custom TipTap extensions for Puck richtext field\n */\n\nexport { FontSize } from './FontSize.js'\n"],"names":["FontSize"],"mappings":"AAAA;;CAEC,GAED,SAASA,QAAQ,QAAQ,gBAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/richtext/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,qBAAqB,CAAA;AAG5B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,0BAA0B,GAChC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAGnD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/fields/richtext/index.ts"],"sourcesContent":["/**\n * RichText field for Puck\n *\n * Enhanced richtext field using Puck's native implementation with\n * custom TipTap extensions for colors, font sizes, and more.\n */\n\n// Import CSS for menu overrides (flex-wrap fix)\nimport './richtext-menu.css'\n\n// Main factory\nexport {\n createRichTextField,\n fullRichTextField,\n minimalRichTextField,\n sidebarRichTextField,\n type CreateRichTextFieldOptions,\n} from './createRichTextField.js'\n\n// Extensions (for advanced customization)\nexport { FontSize } from './extensions/FontSize.js'\n\n// Controls (for custom menu building)\nexport { ColorPickerControl, ColorPickerPanel } from './controls/ColorPickerControl.js'\nexport { FontSizeControl } from './controls/FontSizeControl.js'\nexport { HighlightControl } from './controls/HighlightControl.js'\n\n// Utilities\nexport {\n normalizeHex,\n hexToRgba,\n parseColor,\n FONT_SIZES,\n FONT_SIZE_UNITS,\n controlStyles,\n type FontSizeUnit,\n} from './controls/shared.js'\n"],"names":["createRichTextField","fullRichTextField","minimalRichTextField","sidebarRichTextField","FontSize","ColorPickerControl","ColorPickerPanel","FontSizeControl","HighlightControl","normalizeHex","hexToRgba","parseColor","FONT_SIZES","FONT_SIZE_UNITS","controlStyles"],"mappings":"AAAA;;;;;CAKC,GAED,gDAAgD;AAChD,OAAO,sBAAqB;AAE5B,eAAe;AACf,SACEA,mBAAmB,EACnBC,iBAAiB,EACjBC,oBAAoB,EACpBC,oBAAoB,QAEf,2BAA0B;AAEjC,0CAA0C;AAC1C,SAASC,QAAQ,QAAQ,2BAA0B;AAEnD,sCAAsC;AACtC,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,mCAAkC;AACvF,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,gBAAgB,QAAQ,iCAAgC;AAEjE,YAAY;AACZ,SACEC,YAAY,EACZC,SAAS,EACTC,UAAU,EACVC,UAAU,EACVC,eAAe,EACfC,aAAa,QAER,uBAAsB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/fields/shared.ts"],"names":[],"mappings":"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"}