@omnitron-dev/prism 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) hide show
  1. package/dist/accessibility/index.d.ts +7 -151
  2. package/dist/accessibility/index.d.ts.map +1 -0
  3. package/dist/accessibility/index.js +0 -1
  4. package/dist/accessibility/index.js.map +1 -1
  5. package/dist/accessibility/vision-mode.d.ts +154 -0
  6. package/dist/accessibility/vision-mode.d.ts.map +1 -0
  7. package/dist/blocks/auth-block/auth-block.d.ts +107 -0
  8. package/dist/blocks/auth-block/auth-block.d.ts.map +1 -0
  9. package/dist/blocks/auth-block/guards.d.ts +262 -0
  10. package/dist/blocks/auth-block/guards.d.ts.map +1 -0
  11. package/dist/blocks/auth-block/index.d.ts +13 -0
  12. package/dist/blocks/auth-block/index.d.ts.map +1 -0
  13. package/dist/blocks/auth-block/types.d.ts +232 -0
  14. package/dist/blocks/auth-block/types.d.ts.map +1 -0
  15. package/dist/blocks/dashboard-block/dashboard-block.d.ts +53 -0
  16. package/dist/blocks/dashboard-block/dashboard-block.d.ts.map +1 -0
  17. package/dist/blocks/dashboard-block/index.d.ts +12 -0
  18. package/dist/blocks/dashboard-block/index.d.ts.map +1 -0
  19. package/dist/blocks/dashboard-block/types.d.ts +182 -0
  20. package/dist/blocks/dashboard-block/types.d.ts.map +1 -0
  21. package/dist/blocks/dashboard-block/use-dashboard-block.d.ts +95 -0
  22. package/dist/blocks/dashboard-block/use-dashboard-block.d.ts.map +1 -0
  23. package/dist/blocks/data-grid-block/data-grid-block.d.ts +81 -0
  24. package/dist/blocks/data-grid-block/data-grid-block.d.ts.map +1 -0
  25. package/dist/blocks/data-grid-block/index.d.ts +11 -0
  26. package/dist/blocks/data-grid-block/index.d.ts.map +1 -0
  27. package/dist/blocks/data-grid-block/types.d.ts +304 -0
  28. package/dist/blocks/data-grid-block/types.d.ts.map +1 -0
  29. package/dist/blocks/index.d.ts +10 -1235
  30. package/dist/blocks/index.d.ts.map +1 -0
  31. package/dist/blocks/index.js +139 -42
  32. package/dist/blocks/index.js.map +1 -1
  33. package/dist/{chunk-VAAIHNWQ.js → chunk-6AHI4GSV.js} +3 -3
  34. package/dist/chunk-6AHI4GSV.js.map +1 -0
  35. package/dist/{chunk-JDTC2SBY.js → chunk-AD4W7HYC.js} +2 -2
  36. package/dist/chunk-AD4W7HYC.js.map +1 -0
  37. package/dist/{chunk-SNKGGHBT.js → chunk-ADG4HZEP.js} +3 -3
  38. package/dist/chunk-ADG4HZEP.js.map +1 -0
  39. package/dist/{chunk-JNU4QHJK.js → chunk-AYYFMTMI.js} +5 -4
  40. package/dist/{chunk-JNU4QHJK.js.map → chunk-AYYFMTMI.js.map} +1 -1
  41. package/dist/{chunk-HO2GKTWJ.js → chunk-BRDWQVRT.js} +2 -2
  42. package/dist/chunk-BRDWQVRT.js.map +1 -0
  43. package/dist/{chunk-XXP3ZGU6.js → chunk-BZOL7GMU.js} +21 -13
  44. package/dist/chunk-BZOL7GMU.js.map +1 -0
  45. package/dist/{chunk-2FYNRDXR.js → chunk-DRFNMZLG.js} +2 -2
  46. package/dist/chunk-DRFNMZLG.js.map +1 -0
  47. package/dist/{chunk-BV32OJ2A.js → chunk-GUFHFEPZ.js} +2 -2
  48. package/dist/chunk-GUFHFEPZ.js.map +1 -0
  49. package/dist/{chunk-KTCWPGON.js → chunk-OBJ244BO.js} +558 -75
  50. package/dist/chunk-OBJ244BO.js.map +1 -0
  51. package/dist/{chunk-IZOIO7PA.js → chunk-S6SEGBX6.js} +31 -22
  52. package/dist/chunk-S6SEGBX6.js.map +1 -0
  53. package/dist/chunk-SNZK5X6F.js +594 -0
  54. package/dist/chunk-SNZK5X6F.js.map +1 -0
  55. package/dist/{chunk-YJMAQL3S.js → chunk-WFD54GQQ.js} +122 -69
  56. package/dist/chunk-WFD54GQQ.js.map +1 -0
  57. package/dist/{chunk-DDY7TLUI.js → chunk-XIXSSI3B.js} +28 -2
  58. package/dist/chunk-XIXSSI3B.js.map +1 -0
  59. package/dist/{chunk-A2Z7NVGL.js → chunk-YQW43BDH.js} +1274 -792
  60. package/dist/chunk-YQW43BDH.js.map +1 -0
  61. package/dist/{chunk-XWL6J6IO.js → chunk-YSIG2XYH.js} +2 -2
  62. package/dist/chunk-YSIG2XYH.js.map +1 -0
  63. package/dist/chunk-Z5OSPAOC.js +1576 -0
  64. package/dist/chunk-Z5OSPAOC.js.map +1 -0
  65. package/dist/{chunk-MEFT6XPH.js → chunk-ZTATTUH7.js} +170 -85
  66. package/dist/chunk-ZTATTUH7.js.map +1 -0
  67. package/dist/cli/commands/add.d.ts +22 -0
  68. package/dist/cli/commands/add.d.ts.map +1 -0
  69. package/dist/cli/commands/diff.d.ts +13 -0
  70. package/dist/cli/commands/diff.d.ts.map +1 -0
  71. package/dist/cli/commands/doctor.d.ts +13 -0
  72. package/dist/cli/commands/doctor.d.ts.map +1 -0
  73. package/dist/cli/commands/init.d.ts +13 -0
  74. package/dist/cli/commands/init.d.ts.map +1 -0
  75. package/dist/cli/commands/list.d.ts +13 -0
  76. package/dist/cli/commands/list.d.ts.map +1 -0
  77. package/dist/cli/commands/remove.d.ts +13 -0
  78. package/dist/cli/commands/remove.d.ts.map +1 -0
  79. package/dist/cli/commands/update.d.ts +13 -0
  80. package/dist/cli/commands/update.d.ts.map +1 -0
  81. package/dist/cli/config.d.ts +73 -0
  82. package/dist/cli/config.d.ts.map +1 -0
  83. package/dist/cli/constants.d.ts +60 -0
  84. package/dist/cli/constants.d.ts.map +1 -0
  85. package/dist/cli/index.d.ts +27 -0
  86. package/dist/cli/index.d.ts.map +1 -0
  87. package/dist/cli/index.js +31 -37
  88. package/dist/cli/index.js.map +1 -1
  89. package/dist/components/accordion/accordion.d.ts +149 -0
  90. package/dist/components/accordion/accordion.d.ts.map +1 -0
  91. package/dist/components/accordion/index.d.ts +7 -0
  92. package/dist/components/accordion/index.d.ts.map +1 -0
  93. package/dist/components/admin-filters/admin-data-table.d.ts +185 -0
  94. package/dist/components/admin-filters/admin-data-table.d.ts.map +1 -0
  95. package/dist/components/admin-filters/amount-cell.d.ts +39 -0
  96. package/dist/components/admin-filters/amount-cell.d.ts.map +1 -0
  97. package/dist/components/admin-filters/filter-toolbar.d.ts +99 -0
  98. package/dist/components/admin-filters/filter-toolbar.d.ts.map +1 -0
  99. package/dist/components/admin-filters/index.d.ts +13 -0
  100. package/dist/components/admin-filters/index.d.ts.map +1 -0
  101. package/dist/components/admin-filters/status-chip.d.ts +55 -0
  102. package/dist/components/admin-filters/status-chip.d.ts.map +1 -0
  103. package/dist/components/alert/alert.d.ts +159 -0
  104. package/dist/components/alert/alert.d.ts.map +1 -0
  105. package/dist/components/alert/index.d.ts +7 -0
  106. package/dist/components/alert/index.d.ts.map +1 -0
  107. package/dist/components/animate/animate-border.d.ts +33 -0
  108. package/dist/components/animate/animate-border.d.ts.map +1 -0
  109. package/dist/components/animate/index.d.ts +3 -0
  110. package/dist/components/animate/index.d.ts.map +1 -0
  111. package/dist/components/animate/motion-lazy.d.ts +5 -0
  112. package/dist/components/animate/motion-lazy.d.ts.map +1 -0
  113. package/dist/components/avatar/avatar.d.ts +78 -0
  114. package/dist/components/avatar/avatar.d.ts.map +1 -0
  115. package/dist/components/avatar/index.d.ts +7 -0
  116. package/dist/components/avatar/index.d.ts.map +1 -0
  117. package/dist/components/badge/badge.d.ts +102 -0
  118. package/dist/components/badge/badge.d.ts.map +1 -0
  119. package/dist/components/badge/index.d.ts +7 -0
  120. package/dist/components/badge/index.d.ts.map +1 -0
  121. package/dist/components/breadcrumbs/breadcrumbs.d.ts +100 -0
  122. package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  123. package/dist/components/breadcrumbs/index.d.ts +7 -0
  124. package/dist/components/breadcrumbs/index.d.ts.map +1 -0
  125. package/dist/components/card/card.d.ts +127 -0
  126. package/dist/components/card/card.d.ts.map +1 -0
  127. package/dist/components/card/index.d.ts +7 -0
  128. package/dist/components/card/index.d.ts.map +1 -0
  129. package/dist/components/carousel/carousel.d.ts +35 -0
  130. package/dist/components/carousel/carousel.d.ts.map +1 -0
  131. package/dist/components/carousel/classes.d.ts +35 -0
  132. package/dist/components/carousel/classes.d.ts.map +1 -0
  133. package/dist/components/carousel/index.d.ts +10 -0
  134. package/dist/components/carousel/index.d.ts.map +1 -0
  135. package/dist/components/carousel/types.d.ts +167 -0
  136. package/dist/components/carousel/types.d.ts.map +1 -0
  137. package/dist/components/carousel/use-carousel.d.ts +51 -0
  138. package/dist/components/carousel/use-carousel.d.ts.map +1 -0
  139. package/dist/components/changelog/changelog-entry.d.ts +10 -0
  140. package/dist/components/changelog/changelog-entry.d.ts.map +1 -0
  141. package/dist/components/changelog/changelog-timeline.d.ts +9 -0
  142. package/dist/components/changelog/changelog-timeline.d.ts.map +1 -0
  143. package/dist/components/changelog/index.d.ts +3 -0
  144. package/dist/components/changelog/index.d.ts.map +1 -0
  145. package/dist/components/chart/chart.d.ts +39 -0
  146. package/dist/components/chart/chart.d.ts.map +1 -0
  147. package/dist/components/chart/classes.d.ts +24 -0
  148. package/dist/components/chart/classes.d.ts.map +1 -0
  149. package/dist/components/chart/components/chart-legends.d.ts +24 -0
  150. package/dist/components/chart/components/chart-legends.d.ts.map +1 -0
  151. package/dist/components/chart/components/chart-loading.d.ts +21 -0
  152. package/dist/components/chart/components/chart-loading.d.ts.map +1 -0
  153. package/dist/components/chart/components/index.d.ts +8 -0
  154. package/dist/components/chart/components/index.d.ts.map +1 -0
  155. package/dist/components/chart/index.d.ts +14 -0
  156. package/dist/components/chart/index.d.ts.map +1 -0
  157. package/dist/components/chart/types.d.ts +264 -0
  158. package/dist/components/chart/types.d.ts.map +1 -0
  159. package/dist/components/chart/use-chart.d.ts +34 -0
  160. package/dist/components/chart/use-chart.d.ts.map +1 -0
  161. package/dist/components/command-palette/command-palette.d.ts +73 -0
  162. package/dist/components/command-palette/command-palette.d.ts.map +1 -0
  163. package/dist/components/command-palette/index.d.ts +7 -0
  164. package/dist/components/command-palette/index.d.ts.map +1 -0
  165. package/dist/components/confirm-dialog/confirm-dialog.d.ts +89 -0
  166. package/dist/components/confirm-dialog/confirm-dialog.d.ts.map +1 -0
  167. package/dist/components/confirm-dialog/index.d.ts +7 -0
  168. package/dist/components/confirm-dialog/index.d.ts.map +1 -0
  169. package/dist/components/content-renderer/classes.d.ts +33 -0
  170. package/dist/components/content-renderer/classes.d.ts.map +1 -0
  171. package/dist/components/content-renderer/content-renderer.d.ts +37 -0
  172. package/dist/components/content-renderer/content-renderer.d.ts.map +1 -0
  173. package/dist/components/content-renderer/html-tags.d.ts +6 -0
  174. package/dist/components/content-renderer/html-tags.d.ts.map +1 -0
  175. package/dist/components/content-renderer/html-to-markdown.d.ts +7 -0
  176. package/dist/components/content-renderer/html-to-markdown.d.ts.map +1 -0
  177. package/dist/components/content-renderer/index.d.ts +7 -0
  178. package/dist/components/content-renderer/index.d.ts.map +1 -0
  179. package/dist/components/content-renderer/markdown.d.ts +23 -0
  180. package/dist/components/content-renderer/markdown.d.ts.map +1 -0
  181. package/dist/components/content-renderer/remark-spoiler.d.ts +9 -0
  182. package/dist/components/content-renderer/remark-spoiler.d.ts.map +1 -0
  183. package/dist/components/content-renderer/styles.d.ts +2 -0
  184. package/dist/components/content-renderer/styles.d.ts.map +1 -0
  185. package/dist/components/country-select/country-select.d.ts +101 -0
  186. package/dist/components/country-select/country-select.d.ts.map +1 -0
  187. package/dist/components/country-select/flag-icon.d.ts +36 -0
  188. package/dist/components/country-select/flag-icon.d.ts.map +1 -0
  189. package/dist/components/country-select/index.d.ts +5 -0
  190. package/dist/components/country-select/index.d.ts.map +1 -0
  191. package/dist/components/date-range-picker/date-range-input.d.ts +48 -0
  192. package/dist/components/date-range-picker/date-range-input.d.ts.map +1 -0
  193. package/dist/components/date-range-picker/date-range-picker.d.ts +39 -0
  194. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -0
  195. package/dist/components/date-range-picker/index.d.ts +7 -0
  196. package/dist/components/date-range-picker/index.d.ts.map +1 -0
  197. package/dist/components/date-range-picker/use-date-range-picker.d.ts +28 -0
  198. package/dist/components/date-range-picker/use-date-range-picker.d.ts.map +1 -0
  199. package/dist/components/deadline-chip/deadline-chip.d.ts +41 -0
  200. package/dist/components/deadline-chip/deadline-chip.d.ts.map +1 -0
  201. package/dist/components/deadline-chip/index.d.ts +7 -0
  202. package/dist/components/deadline-chip/index.d.ts.map +1 -0
  203. package/dist/components/doc-layout/doc-layout.d.ts +17 -0
  204. package/dist/components/doc-layout/doc-layout.d.ts.map +1 -0
  205. package/dist/components/doc-layout/doc-section-nav.d.ts +16 -0
  206. package/dist/components/doc-layout/doc-section-nav.d.ts.map +1 -0
  207. package/dist/components/doc-layout/doc-sidebar.d.ts +15 -0
  208. package/dist/components/doc-layout/doc-sidebar.d.ts.map +1 -0
  209. package/dist/components/doc-layout/index.d.ts +4 -0
  210. package/dist/components/doc-layout/index.d.ts.map +1 -0
  211. package/dist/components/drawer/drawer.d.ts +65 -0
  212. package/dist/components/drawer/drawer.d.ts.map +1 -0
  213. package/dist/components/drawer/index.d.ts +7 -0
  214. package/dist/components/drawer/index.d.ts.map +1 -0
  215. package/dist/components/duration-picker/duration-picker.d.ts +24 -0
  216. package/dist/components/duration-picker/duration-picker.d.ts.map +1 -0
  217. package/dist/components/duration-picker/index.d.ts +2 -0
  218. package/dist/components/duration-picker/index.d.ts.map +1 -0
  219. package/dist/components/editor/classes.d.ts +52 -0
  220. package/dist/components/editor/classes.d.ts.map +1 -0
  221. package/dist/components/editor/editor.d.ts +15 -0
  222. package/dist/components/editor/editor.d.ts.map +1 -0
  223. package/dist/components/editor/extensions/clear-format.d.ts +3 -0
  224. package/dist/components/editor/extensions/clear-format.d.ts.map +1 -0
  225. package/dist/components/editor/extensions/index.d.ts +3 -0
  226. package/dist/components/editor/extensions/index.d.ts.map +1 -0
  227. package/dist/components/editor/extensions/text-transform.d.ts +20 -0
  228. package/dist/components/editor/extensions/text-transform.d.ts.map +1 -0
  229. package/dist/components/editor/icons/index.d.ts +42 -0
  230. package/dist/components/editor/icons/index.d.ts.map +1 -0
  231. package/dist/components/editor/index.d.ts +41 -104
  232. package/dist/components/editor/index.d.ts.map +1 -0
  233. package/dist/components/editor/index.js +1 -2
  234. package/dist/components/editor/presets.d.ts +3 -0
  235. package/dist/components/editor/presets.d.ts.map +1 -0
  236. package/dist/components/editor/styles.d.ts +2 -0
  237. package/dist/components/editor/styles.d.ts.map +1 -0
  238. package/dist/components/editor/toolbar/bubble-toolbar.d.ts +9 -0
  239. package/dist/components/editor/toolbar/bubble-toolbar.d.ts.map +1 -0
  240. package/dist/components/editor/toolbar/code-highlight-block.d.ts +3 -0
  241. package/dist/components/editor/toolbar/code-highlight-block.d.ts.map +1 -0
  242. package/dist/components/editor/toolbar/heading-block.d.ts +11 -0
  243. package/dist/components/editor/toolbar/heading-block.d.ts.map +1 -0
  244. package/dist/components/editor/toolbar/image-block.d.ts +11 -0
  245. package/dist/components/editor/toolbar/image-block.d.ts.map +1 -0
  246. package/dist/components/editor/toolbar/link-block.d.ts +13 -0
  247. package/dist/components/editor/toolbar/link-block.d.ts.map +1 -0
  248. package/dist/components/editor/toolbar/toolbar-item.d.ts +3 -0
  249. package/dist/components/editor/toolbar/toolbar-item.d.ts.map +1 -0
  250. package/dist/components/editor/toolbar/toolbar.d.ts +3 -0
  251. package/dist/components/editor/toolbar/toolbar.d.ts.map +1 -0
  252. package/dist/components/editor/toolbar/use-toolbar-state.d.ts +24 -0
  253. package/dist/components/editor/toolbar/use-toolbar-state.d.ts.map +1 -0
  254. package/dist/components/editor/types.d.ts +130 -0
  255. package/dist/components/editor/types.d.ts.map +1 -0
  256. package/dist/components/emoji-picker/emoji-picker.d.ts +24 -0
  257. package/dist/components/emoji-picker/emoji-picker.d.ts.map +1 -0
  258. package/dist/components/emoji-picker/emoji-search.d.ts +22 -0
  259. package/dist/components/emoji-picker/emoji-search.d.ts.map +1 -0
  260. package/dist/components/emoji-picker/emoji.d.ts +19 -0
  261. package/dist/components/emoji-picker/emoji.d.ts.map +1 -0
  262. package/dist/components/emoji-picker/index.d.ts +14 -0
  263. package/dist/components/emoji-picker/index.d.ts.map +1 -0
  264. package/dist/components/emoji-picker/index.js +3 -0
  265. package/dist/components/emoji-picker/index.js.map +1 -0
  266. package/dist/components/emoji-picker/twemoji-url.d.ts +26 -0
  267. package/dist/components/emoji-picker/twemoji-url.d.ts.map +1 -0
  268. package/dist/components/emoji-picker/types.d.ts +96 -0
  269. package/dist/components/emoji-picker/types.d.ts.map +1 -0
  270. package/dist/components/emoji-picker/use-emoji-data.d.ts +26 -0
  271. package/dist/components/emoji-picker/use-emoji-data.d.ts.map +1 -0
  272. package/dist/components/emoji-picker/use-recent-emojis.d.ts +16 -0
  273. package/dist/components/emoji-picker/use-recent-emojis.d.ts.map +1 -0
  274. package/dist/components/empty-content/empty-content.d.ts +92 -0
  275. package/dist/components/empty-content/empty-content.d.ts.map +1 -0
  276. package/dist/components/empty-content/index.d.ts +7 -0
  277. package/dist/components/empty-content/index.d.ts.map +1 -0
  278. package/dist/components/error-boundary/error-boundary.d.ts +162 -0
  279. package/dist/components/error-boundary/error-boundary.d.ts.map +1 -0
  280. package/dist/components/error-boundary/index.d.ts +7 -0
  281. package/dist/components/error-boundary/index.d.ts.map +1 -0
  282. package/dist/components/field/field-autocomplete.d.ts +74 -0
  283. package/dist/components/field/field-autocomplete.d.ts.map +1 -0
  284. package/dist/components/field/field-checkbox.d.ts +42 -0
  285. package/dist/components/field/field-checkbox.d.ts.map +1 -0
  286. package/dist/components/field/field-code.d.ts +80 -0
  287. package/dist/components/field/field-code.d.ts.map +1 -0
  288. package/dist/components/field/field-country-select.d.ts +84 -0
  289. package/dist/components/field/field-country-select.d.ts.map +1 -0
  290. package/dist/components/field/field-date-picker.d.ts +58 -0
  291. package/dist/components/field/field-date-picker.d.ts.map +1 -0
  292. package/dist/components/field/field-datetime-picker.d.ts +96 -0
  293. package/dist/components/field/field-datetime-picker.d.ts.map +1 -0
  294. package/dist/components/field/field-editor.d.ts +218 -0
  295. package/dist/components/field/field-editor.d.ts.map +1 -0
  296. package/dist/components/field/field-multi-checkbox.d.ts +91 -0
  297. package/dist/components/field/field-multi-checkbox.d.ts.map +1 -0
  298. package/dist/components/field/field-multi-select.d.ts +85 -0
  299. package/dist/components/field/field-multi-select.d.ts.map +1 -0
  300. package/dist/components/field/field-multi-switch.d.ts +93 -0
  301. package/dist/components/field/field-multi-switch.d.ts.map +1 -0
  302. package/dist/components/field/field-number.d.ts +50 -0
  303. package/dist/components/field/field-number.d.ts.map +1 -0
  304. package/dist/components/field/field-phone.d.ts +82 -0
  305. package/dist/components/field/field-phone.d.ts.map +1 -0
  306. package/dist/components/field/field-radio.d.ts +64 -0
  307. package/dist/components/field/field-radio.d.ts.map +1 -0
  308. package/dist/components/field/field-rating.d.ts +43 -0
  309. package/dist/components/field/field-rating.d.ts.map +1 -0
  310. package/dist/components/field/field-select.d.ts +50 -0
  311. package/dist/components/field/field-select.d.ts.map +1 -0
  312. package/dist/components/field/field-slider.d.ts +56 -0
  313. package/dist/components/field/field-slider.d.ts.map +1 -0
  314. package/dist/components/field/field-switch.d.ts +44 -0
  315. package/dist/components/field/field-switch.d.ts.map +1 -0
  316. package/dist/components/field/field-text.d.ts +38 -0
  317. package/dist/components/field/field-text.d.ts.map +1 -0
  318. package/dist/components/field/field-time-picker.d.ts +79 -0
  319. package/dist/components/field/field-time-picker.d.ts.map +1 -0
  320. package/dist/components/field/field-upload.d.ts +120 -0
  321. package/dist/components/field/field-upload.d.ts.map +1 -0
  322. package/dist/components/field/index.d.ts +149 -0
  323. package/dist/components/field/index.d.ts.map +1 -0
  324. package/dist/components/image/image.d.ts +79 -0
  325. package/dist/components/image/image.d.ts.map +1 -0
  326. package/dist/components/image/index.d.ts +7 -0
  327. package/dist/components/image/index.d.ts.map +1 -0
  328. package/dist/components/index.d.ts +60 -7072
  329. package/dist/components/index.d.ts.map +1 -0
  330. package/dist/components/index.js +11 -11
  331. package/dist/components/label/index.d.ts +7 -0
  332. package/dist/components/label/index.d.ts.map +1 -0
  333. package/dist/components/label/label.d.ts +71 -0
  334. package/dist/components/label/label.d.ts.map +1 -0
  335. package/dist/components/lightbox/classes.d.ts +34 -0
  336. package/dist/components/lightbox/classes.d.ts.map +1 -0
  337. package/dist/components/lightbox/index.d.ts +11 -0
  338. package/dist/components/lightbox/index.d.ts.map +1 -0
  339. package/dist/components/lightbox/lightbox.d.ts +42 -0
  340. package/dist/components/lightbox/lightbox.d.ts.map +1 -0
  341. package/dist/components/lightbox/types.d.ts +233 -0
  342. package/dist/components/lightbox/types.d.ts.map +1 -0
  343. package/dist/components/lightbox/use-lightbox.d.ts +42 -0
  344. package/dist/components/lightbox/use-lightbox.d.ts.map +1 -0
  345. package/dist/components/loading-screen/index.d.ts +8 -0
  346. package/dist/components/loading-screen/index.d.ts.map +1 -0
  347. package/dist/components/loading-screen/loading-screen.d.ts +37 -0
  348. package/dist/components/loading-screen/loading-screen.d.ts.map +1 -0
  349. package/dist/components/loading-screen/splash-screen.d.ts +80 -0
  350. package/dist/components/loading-screen/splash-screen.d.ts.map +1 -0
  351. package/dist/components/map/Map.d.ts +63 -0
  352. package/dist/components/map/Map.d.ts.map +1 -0
  353. package/dist/components/map/MapCoverageLayer.d.ts +25 -0
  354. package/dist/components/map/MapCoverageLayer.d.ts.map +1 -0
  355. package/dist/components/map/MapMarker.d.ts +17 -0
  356. package/dist/components/map/MapMarker.d.ts.map +1 -0
  357. package/dist/components/map/MapPointPicker.d.ts +26 -0
  358. package/dist/components/map/MapPointPicker.d.ts.map +1 -0
  359. package/dist/components/map/index.d.ts +14 -0
  360. package/dist/components/map/index.d.ts.map +1 -0
  361. package/dist/components/mega-menu/index.d.ts +12 -0
  362. package/dist/components/mega-menu/index.d.ts.map +1 -0
  363. package/dist/components/mega-menu/mega-menu-horizontal.d.ts +41 -0
  364. package/dist/components/mega-menu/mega-menu-horizontal.d.ts.map +1 -0
  365. package/dist/components/mega-menu/mega-menu-mobile.d.ts +28 -0
  366. package/dist/components/mega-menu/mega-menu-mobile.d.ts.map +1 -0
  367. package/dist/components/mega-menu/mega-menu-vertical.d.ts +28 -0
  368. package/dist/components/mega-menu/mega-menu-vertical.d.ts.map +1 -0
  369. package/dist/components/mega-menu/styles.d.ts +18 -0
  370. package/dist/components/mega-menu/styles.d.ts.map +1 -0
  371. package/dist/components/mega-menu/types.d.ts +200 -0
  372. package/dist/components/mega-menu/types.d.ts.map +1 -0
  373. package/dist/components/menu/index.d.ts +7 -0
  374. package/dist/components/menu/index.d.ts.map +1 -0
  375. package/dist/components/menu/menu.d.ts +144 -0
  376. package/dist/components/menu/menu.d.ts.map +1 -0
  377. package/dist/components/nav-card/index.d.ts +8 -0
  378. package/dist/components/nav-card/index.d.ts.map +1 -0
  379. package/dist/components/nav-card/nav-card-grid.d.ts +57 -0
  380. package/dist/components/nav-card/nav-card-grid.d.ts.map +1 -0
  381. package/dist/components/nav-card/nav-card.d.ts +69 -0
  382. package/dist/components/nav-card/nav-card.d.ts.map +1 -0
  383. package/dist/components/nav-section/components.d.ts +143 -0
  384. package/dist/components/nav-section/components.d.ts.map +1 -0
  385. package/dist/components/nav-section/index.d.ts +15 -0
  386. package/dist/components/nav-section/index.d.ts.map +1 -0
  387. package/dist/components/nav-section/nav-context.d.ts +80 -0
  388. package/dist/components/nav-section/nav-context.d.ts.map +1 -0
  389. package/dist/components/nav-section/nav-item.d.ts +20 -0
  390. package/dist/components/nav-section/nav-item.d.ts.map +1 -0
  391. package/dist/components/nav-section/nav-list.d.ts +25 -0
  392. package/dist/components/nav-section/nav-list.d.ts.map +1 -0
  393. package/dist/components/nav-section/nav-section-horizontal.d.ts +29 -0
  394. package/dist/components/nav-section/nav-section-horizontal.d.ts.map +1 -0
  395. package/dist/components/nav-section/nav-section-mini.d.ts +30 -0
  396. package/dist/components/nav-section/nav-section-mini.d.ts.map +1 -0
  397. package/dist/components/nav-section/nav-section-vertical.d.ts +37 -0
  398. package/dist/components/nav-section/nav-section-vertical.d.ts.map +1 -0
  399. package/dist/components/nav-section/styles.d.ts +35 -0
  400. package/dist/components/nav-section/styles.d.ts.map +1 -0
  401. package/dist/components/nav-section/types.d.ts +178 -0
  402. package/dist/components/nav-section/types.d.ts.map +1 -0
  403. package/dist/components/navigation-progress/index.d.ts +7 -0
  404. package/dist/components/navigation-progress/index.d.ts.map +1 -0
  405. package/dist/components/navigation-progress/navigation-progress.d.ts +36 -0
  406. package/dist/components/navigation-progress/navigation-progress.d.ts.map +1 -0
  407. package/dist/components/page-content/index.d.ts +7 -0
  408. package/dist/components/page-content/index.d.ts.map +1 -0
  409. package/dist/components/page-content/page-content.d.ts +55 -0
  410. package/dist/components/page-content/page-content.d.ts.map +1 -0
  411. package/dist/components/popover/index.d.ts +7 -0
  412. package/dist/components/popover/index.d.ts.map +1 -0
  413. package/dist/{popover-Dmw7SJLR.d.ts → components/popover/popover.d.ts} +11 -14
  414. package/dist/components/popover/popover.d.ts.map +1 -0
  415. package/dist/components/progress/countdown-ring.d.ts +60 -0
  416. package/dist/components/progress/countdown-ring.d.ts.map +1 -0
  417. package/dist/components/progress/index.d.ts +8 -0
  418. package/dist/components/progress/index.d.ts.map +1 -0
  419. package/dist/components/progress/progress.d.ts +106 -0
  420. package/dist/components/progress/progress.d.ts.map +1 -0
  421. package/dist/components/rail/index.d.ts +7 -0
  422. package/dist/components/rail/index.d.ts.map +1 -0
  423. package/dist/components/rail/rail.d.ts +39 -0
  424. package/dist/components/rail/rail.d.ts.map +1 -0
  425. package/dist/components/scroll-spy/index.d.ts +3 -0
  426. package/dist/components/scroll-spy/index.d.ts.map +1 -0
  427. package/dist/components/scroll-spy/scroll-spy-provider.d.ts +26 -0
  428. package/dist/components/scroll-spy/scroll-spy-provider.d.ts.map +1 -0
  429. package/dist/components/scroll-spy/scroll-spy-section.d.ts +10 -0
  430. package/dist/components/scroll-spy/scroll-spy-section.d.ts.map +1 -0
  431. package/dist/components/scroll-to-top/index.d.ts +7 -0
  432. package/dist/components/scroll-to-top/index.d.ts.map +1 -0
  433. package/dist/components/scroll-to-top/scroll-to-top.d.ts +25 -0
  434. package/dist/components/scroll-to-top/scroll-to-top.d.ts.map +1 -0
  435. package/dist/components/scrollbar/index.d.ts +7 -0
  436. package/dist/components/scrollbar/index.d.ts.map +1 -0
  437. package/dist/components/scrollbar/scrollbar.d.ts +59 -0
  438. package/dist/components/scrollbar/scrollbar.d.ts.map +1 -0
  439. package/dist/components/search-input/index.d.ts +2 -0
  440. package/dist/components/search-input/index.d.ts.map +1 -0
  441. package/dist/components/search-input/search-input.d.ts +46 -0
  442. package/dist/components/search-input/search-input.d.ts.map +1 -0
  443. package/dist/components/settings/index.d.ts +10 -0
  444. package/dist/components/settings/index.d.ts.map +1 -0
  445. package/dist/components/settings/settings-drawer.d.ts +39 -0
  446. package/dist/components/settings/settings-drawer.d.ts.map +1 -0
  447. package/dist/components/settings/settings-provider.d.ts +106 -0
  448. package/dist/components/settings/settings-provider.d.ts.map +1 -0
  449. package/dist/components/skeleton/index.d.ts +7 -0
  450. package/dist/components/skeleton/index.d.ts.map +1 -0
  451. package/dist/components/skeleton/skeleton.d.ts +77 -0
  452. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  453. package/dist/components/snackbar/index.d.ts +7 -0
  454. package/dist/components/snackbar/index.d.ts.map +1 -0
  455. package/dist/components/snackbar/snackbar.d.ts +120 -0
  456. package/dist/components/snackbar/snackbar.d.ts.map +1 -0
  457. package/dist/components/sponsored-slot/index.d.ts +3 -0
  458. package/dist/components/sponsored-slot/index.d.ts.map +1 -0
  459. package/dist/components/sponsored-slot/sponsored-slot.d.ts +16 -0
  460. package/dist/components/sponsored-slot/sponsored-slot.d.ts.map +1 -0
  461. package/dist/components/sponsored-slot/types.d.ts +45 -0
  462. package/dist/components/sponsored-slot/types.d.ts.map +1 -0
  463. package/dist/components/stepper/index.d.ts +7 -0
  464. package/dist/components/stepper/index.d.ts.map +1 -0
  465. package/dist/components/stepper/stepper.d.ts +145 -0
  466. package/dist/components/stepper/stepper.d.ts.map +1 -0
  467. package/dist/components/svg-color/index.d.ts +7 -0
  468. package/dist/components/svg-color/index.d.ts.map +1 -0
  469. package/dist/components/svg-color/svg-color.d.ts +80 -0
  470. package/dist/components/svg-color/svg-color.d.ts.map +1 -0
  471. package/dist/components/table/index.d.ts +7 -0
  472. package/dist/components/table/index.d.ts.map +1 -0
  473. package/dist/components/table/table.d.ts +184 -0
  474. package/dist/components/table/table.d.ts.map +1 -0
  475. package/dist/components/tabs/index.d.ts +7 -0
  476. package/dist/components/tabs/index.d.ts.map +1 -0
  477. package/dist/components/tabs/tabs.d.ts +146 -0
  478. package/dist/components/tabs/tabs.d.ts.map +1 -0
  479. package/dist/components/tag-cloud/index.d.ts +7 -0
  480. package/dist/components/tag-cloud/index.d.ts.map +1 -0
  481. package/dist/components/tag-cloud/tag-cloud.d.ts +58 -0
  482. package/dist/components/tag-cloud/tag-cloud.d.ts.map +1 -0
  483. package/dist/components/tiptap-renderer/index.d.ts +2 -0
  484. package/dist/components/tiptap-renderer/index.d.ts.map +1 -0
  485. package/dist/components/tiptap-renderer/tiptap-renderer.d.ts +45 -0
  486. package/dist/components/tiptap-renderer/tiptap-renderer.d.ts.map +1 -0
  487. package/dist/components/tooltip/index.d.ts +7 -0
  488. package/dist/components/tooltip/index.d.ts.map +1 -0
  489. package/dist/components/tooltip/tooltip.d.ts +38 -0
  490. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  491. package/dist/components/virtual-list/index.d.ts +7 -0
  492. package/dist/components/virtual-list/index.d.ts.map +1 -0
  493. package/dist/components/virtual-list/virtual-list.d.ts +64 -0
  494. package/dist/components/virtual-list/virtual-list.d.ts.map +1 -0
  495. package/dist/core/accessibility/index.d.ts +96 -0
  496. package/dist/core/accessibility/index.d.ts.map +1 -0
  497. package/dist/core/accessibility/skip-link.d.ts +31 -0
  498. package/dist/core/accessibility/skip-link.d.ts.map +1 -0
  499. package/dist/core/context.d.ts +99 -0
  500. package/dist/core/context.d.ts.map +1 -0
  501. package/dist/core/hooks/use-boolean.d.ts +54 -0
  502. package/dist/core/hooks/use-boolean.d.ts.map +1 -0
  503. package/dist/core/hooks/use-breakpoints.d.ts +87 -0
  504. package/dist/core/hooks/use-breakpoints.d.ts.map +1 -0
  505. package/dist/core/hooks/use-click-outside.d.ts +26 -0
  506. package/dist/core/hooks/use-click-outside.d.ts.map +1 -0
  507. package/dist/core/hooks/use-copy-to-clipboard.d.ts +66 -0
  508. package/dist/core/hooks/use-copy-to-clipboard.d.ts.map +1 -0
  509. package/dist/core/hooks/use-countdown.d.ts +105 -0
  510. package/dist/core/hooks/use-countdown.d.ts.map +1 -0
  511. package/dist/core/hooks/use-debounce.d.ts +64 -0
  512. package/dist/core/hooks/use-debounce.d.ts.map +1 -0
  513. package/dist/core/hooks/use-event-listener.d.ts +37 -0
  514. package/dist/core/hooks/use-event-listener.d.ts.map +1 -0
  515. package/dist/core/hooks/use-interval.d.ts +30 -0
  516. package/dist/core/hooks/use-interval.d.ts.map +1 -0
  517. package/dist/core/hooks/use-is-client.d.ts +24 -0
  518. package/dist/core/hooks/use-is-client.d.ts.map +1 -0
  519. package/dist/core/hooks/use-local-storage.d.ts +61 -0
  520. package/dist/core/hooks/use-local-storage.d.ts.map +1 -0
  521. package/dist/core/hooks/use-media-query.d.ts +107 -0
  522. package/dist/core/hooks/use-media-query.d.ts.map +1 -0
  523. package/dist/core/hooks/use-mounted.d.ts +33 -0
  524. package/dist/core/hooks/use-mounted.d.ts.map +1 -0
  525. package/dist/core/hooks/use-multi-select.d.ts +113 -0
  526. package/dist/core/hooks/use-multi-select.d.ts.map +1 -0
  527. package/dist/core/hooks/use-previous.d.ts +23 -0
  528. package/dist/core/hooks/use-previous.d.ts.map +1 -0
  529. package/dist/core/hooks/use-set-state.d.ts +56 -0
  530. package/dist/core/hooks/use-set-state.d.ts.map +1 -0
  531. package/dist/core/hooks/use-tabs.d.ts +74 -0
  532. package/dist/core/hooks/use-tabs.d.ts.map +1 -0
  533. package/dist/core/hooks/use-timeout.d.ts +37 -0
  534. package/dist/core/hooks/use-timeout.d.ts.map +1 -0
  535. package/dist/core/index.d.ts +36 -468
  536. package/dist/core/index.d.ts.map +1 -0
  537. package/dist/core/index.js +6 -7
  538. package/dist/core/provider-stack.d.ts +181 -0
  539. package/dist/core/provider-stack.d.ts.map +1 -0
  540. package/dist/core/provider.d.ts +67 -0
  541. package/dist/core/provider.d.ts.map +1 -0
  542. package/dist/forms/index.d.ts +6 -557
  543. package/dist/forms/index.d.ts.map +1 -0
  544. package/dist/forms/index.js +0 -1
  545. package/dist/forms/index.js.map +1 -1
  546. package/dist/forms/schema-provider.d.ts +282 -0
  547. package/dist/forms/schema-provider.d.ts.map +1 -0
  548. package/dist/forms/schema-utils.d.ts +286 -0
  549. package/dist/forms/schema-utils.d.ts.map +1 -0
  550. package/dist/hooks/index.d.ts +38 -8
  551. package/dist/hooks/index.d.ts.map +1 -0
  552. package/dist/hooks/index.js +8 -9
  553. package/dist/hooks/use-array.d.ts +126 -0
  554. package/dist/hooks/use-array.d.ts.map +1 -0
  555. package/dist/hooks/use-async.d.ts +88 -0
  556. package/dist/hooks/use-async.d.ts.map +1 -0
  557. package/dist/hooks/use-back-to-top.d.ts +57 -0
  558. package/dist/hooks/use-back-to-top.d.ts.map +1 -0
  559. package/dist/hooks/use-client-rect.d.ts +67 -0
  560. package/dist/hooks/use-client-rect.d.ts.map +1 -0
  561. package/dist/hooks/use-config-from-query.d.ts +98 -0
  562. package/dist/hooks/use-config-from-query.d.ts.map +1 -0
  563. package/dist/hooks/use-cookies.d.ts +62 -0
  564. package/dist/hooks/use-cookies.d.ts.map +1 -0
  565. package/dist/hooks/use-countdown-date.d.ts +47 -0
  566. package/dist/hooks/use-countdown-date.d.ts.map +1 -0
  567. package/dist/hooks/use-countdown-seconds.d.ts +83 -0
  568. package/dist/hooks/use-countdown-seconds.d.ts.map +1 -0
  569. package/dist/hooks/use-double-click.d.ts +67 -0
  570. package/dist/hooks/use-double-click.d.ts.map +1 -0
  571. package/dist/hooks/use-focus-trap.d.ts +66 -0
  572. package/dist/hooks/use-focus-trap.d.ts.map +1 -0
  573. package/dist/hooks/use-image-dimensions.d.ts +124 -0
  574. package/dist/hooks/use-image-dimensions.d.ts.map +1 -0
  575. package/dist/hooks/use-infinite-scroll.d.ts +204 -0
  576. package/dist/hooks/use-infinite-scroll.d.ts.map +1 -0
  577. package/dist/hooks/use-intersection-observer.d.ts +93 -0
  578. package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
  579. package/dist/hooks/use-isomorphic-layout-effect.d.ts +34 -0
  580. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  581. package/dist/hooks/use-keyboard-shortcut.d.ts +112 -0
  582. package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -0
  583. package/dist/hooks/use-lazy-query.d.ts +132 -0
  584. package/dist/hooks/use-lazy-query.d.ts.map +1 -0
  585. package/dist/hooks/use-mutation.d.ts +141 -0
  586. package/dist/hooks/use-mutation.d.ts.map +1 -0
  587. package/dist/hooks/use-online-status.d.ts +56 -0
  588. package/dist/hooks/use-online-status.d.ts.map +1 -0
  589. package/dist/hooks/use-password-visibility.d.ts +83 -0
  590. package/dist/hooks/use-password-visibility.d.ts.map +1 -0
  591. package/dist/hooks/use-popover-hover.d.ts +78 -0
  592. package/dist/hooks/use-popover-hover.d.ts.map +1 -0
  593. package/dist/hooks/use-scroll-offset-top.d.ts +69 -0
  594. package/dist/hooks/use-scroll-offset-top.d.ts.map +1 -0
  595. package/dist/hooks/use-scroll-position.d.ts +96 -0
  596. package/dist/hooks/use-scroll-position.d.ts.map +1 -0
  597. package/dist/hooks/use-session-storage.d.ts +66 -0
  598. package/dist/hooks/use-session-storage.d.ts.map +1 -0
  599. package/dist/hooks/use-throttle.d.ts +67 -0
  600. package/dist/hooks/use-throttle.d.ts.map +1 -0
  601. package/dist/hooks/use-update-effect.d.ts +53 -0
  602. package/dist/hooks/use-update-effect.d.ts.map +1 -0
  603. package/dist/hooks/use-window-size.d.ts +132 -0
  604. package/dist/hooks/use-window-size.d.ts.map +1 -0
  605. package/dist/http/client.d.ts +74 -0
  606. package/dist/http/client.d.ts.map +1 -0
  607. package/dist/http/index.d.ts +6 -229
  608. package/dist/http/index.d.ts.map +1 -0
  609. package/dist/http/index.js +0 -2
  610. package/dist/http/index.js.map +1 -1
  611. package/dist/http/types.d.ts +158 -0
  612. package/dist/http/types.d.ts.map +1 -0
  613. package/dist/index.d.ts +19 -2758
  614. package/dist/index.d.ts.map +1 -0
  615. package/dist/index.js +35 -63
  616. package/dist/index.js.map +1 -1
  617. package/dist/layouts/auth/centered.d.ts +49 -0
  618. package/dist/layouts/auth/centered.d.ts.map +1 -0
  619. package/dist/layouts/auth/index.d.ts +12 -0
  620. package/dist/layouts/auth/index.d.ts.map +1 -0
  621. package/dist/layouts/auth/simple.d.ts +58 -0
  622. package/dist/layouts/auth/simple.d.ts.map +1 -0
  623. package/dist/layouts/auth/split.d.ts +81 -0
  624. package/dist/layouts/auth/split.d.ts.map +1 -0
  625. package/dist/layouts/core/context.d.ts +102 -0
  626. package/dist/layouts/core/context.d.ts.map +1 -0
  627. package/dist/layouts/core/css-vars.d.ts +43 -0
  628. package/dist/layouts/core/css-vars.d.ts.map +1 -0
  629. package/dist/layouts/core/header-section.d.ts +79 -0
  630. package/dist/layouts/core/header-section.d.ts.map +1 -0
  631. package/dist/layouts/core/index.d.ts +18 -0
  632. package/dist/layouts/core/index.d.ts.map +1 -0
  633. package/dist/layouts/core/layout-section.d.ts +64 -0
  634. package/dist/layouts/core/layout-section.d.ts.map +1 -0
  635. package/dist/layouts/core/user-menu.d.ts +88 -0
  636. package/dist/layouts/core/user-menu.d.ts.map +1 -0
  637. package/dist/layouts/dashboard/index.d.ts +10 -0
  638. package/dist/layouts/dashboard/index.d.ts.map +1 -0
  639. package/dist/layouts/dashboard/layout.d.ts +90 -0
  640. package/dist/layouts/dashboard/layout.d.ts.map +1 -0
  641. package/dist/layouts/dashboard/sidenav.d.ts +58 -0
  642. package/dist/layouts/dashboard/sidenav.d.ts.map +1 -0
  643. package/dist/layouts/dashboard/topnav.d.ts +41 -0
  644. package/dist/layouts/dashboard/topnav.d.ts.map +1 -0
  645. package/dist/layouts/index.d.ts +27 -850
  646. package/dist/layouts/index.d.ts.map +1 -0
  647. package/dist/layouts/index.js +3 -4
  648. package/dist/layouts/types.d.ts +317 -0
  649. package/dist/layouts/types.d.ts.map +1 -0
  650. package/dist/netron/context.d.ts +18 -0
  651. package/dist/netron/context.d.ts.map +1 -0
  652. package/dist/netron/hooks.d.ts +10 -0
  653. package/dist/netron/hooks.d.ts.map +1 -0
  654. package/dist/netron/index.d.ts +47 -4
  655. package/dist/netron/index.d.ts.map +1 -0
  656. package/dist/netron/index.js +1 -2
  657. package/dist/netron/types.d.ts +12 -0
  658. package/dist/netron/types.d.ts.map +1 -0
  659. package/dist/registry/index.d.ts +8 -341
  660. package/dist/registry/index.d.ts.map +1 -0
  661. package/dist/registry/index.js +1 -2
  662. package/dist/registry/installer.d.ts +137 -0
  663. package/dist/registry/installer.d.ts.map +1 -0
  664. package/dist/registry/manager.d.ts +196 -0
  665. package/dist/registry/manager.d.ts.map +1 -0
  666. package/dist/state/create-store.d.ts +164 -0
  667. package/dist/state/create-store.d.ts.map +1 -0
  668. package/dist/state/index.d.ts +12 -969
  669. package/dist/state/index.d.ts.map +1 -0
  670. package/dist/state/index.js +2 -3
  671. package/dist/state/settings-version.d.ts +255 -0
  672. package/dist/state/settings-version.d.ts.map +1 -0
  673. package/dist/state/stores/auth.d.ts +155 -0
  674. package/dist/state/stores/auth.d.ts.map +1 -0
  675. package/dist/state/stores/index.d.ts +10 -0
  676. package/dist/state/stores/index.d.ts.map +1 -0
  677. package/dist/state/stores/settings.d.ts +151 -0
  678. package/dist/state/stores/settings.d.ts.map +1 -0
  679. package/dist/state/stores/theme.d.ts +87 -0
  680. package/dist/state/stores/theme.d.ts.map +1 -0
  681. package/dist/state/stores/ui.d.ts +204 -0
  682. package/dist/state/stores/ui.d.ts.map +1 -0
  683. package/dist/theme/colors/base.d.ts +61 -0
  684. package/dist/theme/colors/base.d.ts.map +1 -0
  685. package/dist/theme/colors/index.d.ts +10 -0
  686. package/dist/theme/colors/index.d.ts.map +1 -0
  687. package/dist/theme/colors/luxury.d.ts +49 -0
  688. package/dist/theme/colors/luxury.d.ts.map +1 -0
  689. package/dist/theme/components/Autocomplete.d.ts +9 -0
  690. package/dist/theme/components/Autocomplete.d.ts.map +1 -0
  691. package/dist/theme/components/Button.d.ts +33 -0
  692. package/dist/theme/components/Button.d.ts.map +1 -0
  693. package/dist/theme/components/Card.d.ts +20 -0
  694. package/dist/theme/components/Card.d.ts.map +1 -0
  695. package/dist/theme/components/Chip.d.ts +29 -0
  696. package/dist/theme/components/Chip.d.ts.map +1 -0
  697. package/dist/theme/components/DataGrid.d.ts +15 -0
  698. package/dist/theme/components/DataGrid.d.ts.map +1 -0
  699. package/dist/theme/components/DatePicker.d.ts +19 -0
  700. package/dist/theme/components/DatePicker.d.ts.map +1 -0
  701. package/dist/theme/components/Dialog.d.ts +23 -0
  702. package/dist/theme/components/Dialog.d.ts.map +1 -0
  703. package/dist/theme/components/FormControls.d.ts +53 -0
  704. package/dist/theme/components/FormControls.d.ts.map +1 -0
  705. package/dist/theme/components/Tabs.d.ts +21 -0
  706. package/dist/theme/components/Tabs.d.ts.map +1 -0
  707. package/dist/theme/components/TextField.d.ts +87 -0
  708. package/dist/theme/components/TextField.d.ts.map +1 -0
  709. package/dist/theme/components/index.d.ts +27 -0
  710. package/dist/theme/components/index.d.ts.map +1 -0
  711. package/dist/theme/components/theme-utils.d.ts +42 -0
  712. package/dist/theme/components/theme-utils.d.ts.map +1 -0
  713. package/dist/theme/create-theme.d.ts +131 -0
  714. package/dist/theme/create-theme.d.ts.map +1 -0
  715. package/dist/theme/css-variables.d.ts +42 -0
  716. package/dist/theme/css-variables.d.ts.map +1 -0
  717. package/dist/theme/custom-shadows.d.ts +58 -0
  718. package/dist/theme/custom-shadows.d.ts.map +1 -0
  719. package/dist/theme/index.d.ts +23 -1045
  720. package/dist/theme/index.d.ts.map +1 -0
  721. package/dist/theme/index.js +2 -3
  722. package/dist/theme/mixins.d.ts +332 -0
  723. package/dist/theme/mixins.d.ts.map +1 -0
  724. package/dist/theme/opacity.d.ts +51 -0
  725. package/dist/theme/opacity.d.ts.map +1 -0
  726. package/dist/theme/palette/builder.d.ts +138 -0
  727. package/dist/theme/palette/builder.d.ts.map +1 -0
  728. package/dist/theme/palette/index.d.ts +7 -0
  729. package/dist/theme/palette/index.d.ts.map +1 -0
  730. package/dist/theme/palette.d.ts +43 -0
  731. package/dist/theme/palette.d.ts.map +1 -0
  732. package/dist/theme/presets/arctic.d.ts +13 -0
  733. package/dist/theme/presets/arctic.d.ts.map +1 -0
  734. package/dist/theme/presets/default.d.ts +13 -0
  735. package/dist/theme/presets/default.d.ts.map +1 -0
  736. package/dist/theme/presets/dracula.d.ts +27 -0
  737. package/dist/theme/presets/dracula.d.ts.map +1 -0
  738. package/dist/theme/presets/ember.d.ts +23 -0
  739. package/dist/theme/presets/ember.d.ts.map +1 -0
  740. package/dist/theme/presets/index.d.ts +39 -0
  741. package/dist/theme/presets/index.d.ts.map +1 -0
  742. package/dist/theme/presets/luxury.d.ts +13 -0
  743. package/dist/theme/presets/luxury.d.ts.map +1 -0
  744. package/dist/theme/presets/midnight.d.ts +23 -0
  745. package/dist/theme/presets/midnight.d.ts.map +1 -0
  746. package/dist/theme/presets/minimal.d.ts +23 -0
  747. package/dist/theme/presets/minimal.d.ts.map +1 -0
  748. package/dist/theme/presets/nature.d.ts +14 -0
  749. package/dist/theme/presets/nature.d.ts.map +1 -0
  750. package/dist/theme/presets/retro.d.ts +23 -0
  751. package/dist/theme/presets/retro.d.ts.map +1 -0
  752. package/dist/theme/shadows.d.ts +61 -0
  753. package/dist/theme/shadows.d.ts.map +1 -0
  754. package/dist/theme/typography.d.ts +24 -0
  755. package/dist/theme/typography.d.ts.map +1 -0
  756. package/dist/theme/utils/color.d.ts +295 -0
  757. package/dist/theme/utils/color.d.ts.map +1 -0
  758. package/dist/theme/utils/index.d.ts +7 -0
  759. package/dist/theme/utils/index.d.ts.map +1 -0
  760. package/dist/{registry-DQcIzW2s.d.ts → types/blocks.d.ts} +30 -191
  761. package/dist/types/blocks.d.ts.map +1 -0
  762. package/dist/{components-BCGZ-Rwt.d.ts → types/components.d.ts} +17 -20
  763. package/dist/types/components.d.ts.map +1 -0
  764. package/dist/{config-Pct0n_Kq.d.ts → types/config.d.ts} +14 -16
  765. package/dist/types/config.d.ts.map +1 -0
  766. package/dist/types/index.d.ts +13 -7
  767. package/dist/types/index.d.ts.map +1 -0
  768. package/dist/types/index.js +1 -2
  769. package/dist/types/registry.d.ts +158 -0
  770. package/dist/types/registry.d.ts.map +1 -0
  771. package/dist/{theme-B4Q3Bg5o.d.ts → types/theme.d.ts} +31 -34
  772. package/dist/types/theme.d.ts.map +1 -0
  773. package/dist/utils/async-lock.d.ts +169 -0
  774. package/dist/utils/async-lock.d.ts.map +1 -0
  775. package/dist/utils/cn.d.ts +80 -0
  776. package/dist/utils/cn.d.ts.map +1 -0
  777. package/dist/utils/cookies.d.ts +68 -0
  778. package/dist/utils/cookies.d.ts.map +1 -0
  779. package/dist/utils/create-classes.d.ts +90 -0
  780. package/dist/utils/create-classes.d.ts.map +1 -0
  781. package/dist/utils/errors.d.ts +201 -0
  782. package/dist/utils/errors.d.ts.map +1 -0
  783. package/dist/utils/fetch-interceptor.d.ts +230 -0
  784. package/dist/utils/fetch-interceptor.d.ts.map +1 -0
  785. package/dist/utils/font.d.ts +65 -0
  786. package/dist/utils/font.d.ts.map +1 -0
  787. package/dist/utils/format-crypto.d.ts +312 -0
  788. package/dist/utils/format-crypto.d.ts.map +1 -0
  789. package/dist/utils/format-date.d.ts +240 -0
  790. package/dist/utils/format-date.d.ts.map +1 -0
  791. package/dist/utils/format-number.d.ts +245 -0
  792. package/dist/utils/format-number.d.ts.map +1 -0
  793. package/dist/utils/i18n-text.d.ts +68 -0
  794. package/dist/utils/i18n-text.d.ts.map +1 -0
  795. package/dist/utils/index.d.ts +30 -0
  796. package/dist/utils/index.d.ts.map +1 -0
  797. package/dist/utils/jwt.d.ts +227 -0
  798. package/dist/utils/jwt.d.ts.map +1 -0
  799. package/dist/utils/object.d.ts +96 -0
  800. package/dist/utils/object.d.ts.map +1 -0
  801. package/dist/utils/refs.d.ts +60 -0
  802. package/dist/utils/refs.d.ts.map +1 -0
  803. package/dist/utils/rtl.d.ts +75 -0
  804. package/dist/utils/rtl.d.ts.map +1 -0
  805. package/dist/utils/storage.d.ts +190 -0
  806. package/dist/utils/storage.d.ts.map +1 -0
  807. package/dist/utils/string.d.ts +216 -0
  808. package/dist/utils/string.d.ts.map +1 -0
  809. package/dist/utils/template-resolver.d.ts +12 -0
  810. package/dist/utils/template-resolver.d.ts.map +1 -0
  811. package/dist/utils/toast.d.ts +25 -0
  812. package/dist/utils/toast.d.ts.map +1 -0
  813. package/dist/utils/transform-number.d.ts +108 -0
  814. package/dist/utils/transform-number.d.ts.map +1 -0
  815. package/dist/utils/url.d.ts +198 -0
  816. package/dist/utils/url.d.ts.map +1 -0
  817. package/package.json +69 -59
  818. package/dist/chunk-2FYNRDXR.js.map +0 -1
  819. package/dist/chunk-77KIJLPP.js +0 -37
  820. package/dist/chunk-77KIJLPP.js.map +0 -1
  821. package/dist/chunk-A2Z7NVGL.js.map +0 -1
  822. package/dist/chunk-BV32OJ2A.js.map +0 -1
  823. package/dist/chunk-DDY7TLUI.js.map +0 -1
  824. package/dist/chunk-HO2GKTWJ.js.map +0 -1
  825. package/dist/chunk-IZOIO7PA.js.map +0 -1
  826. package/dist/chunk-JDTC2SBY.js.map +0 -1
  827. package/dist/chunk-KTCWPGON.js.map +0 -1
  828. package/dist/chunk-MEFT6XPH.js.map +0 -1
  829. package/dist/chunk-SNKGGHBT.js.map +0 -1
  830. package/dist/chunk-VAAIHNWQ.js.map +0 -1
  831. package/dist/chunk-XQXGE2PW.js +0 -16793
  832. package/dist/chunk-XQXGE2PW.js.map +0 -1
  833. package/dist/chunk-XWL6J6IO.js.map +0 -1
  834. package/dist/chunk-XXP3ZGU6.js.map +0 -1
  835. package/dist/chunk-YJMAQL3S.js.map +0 -1
  836. package/dist/index-nmJ8Muwg.d.ts +0 -2368
  837. package/dist/settings-CAC0qFjS.d.ts +0 -455
  838. package/dist/text-transform-D6MzzF7V.d.ts +0 -165
  839. package/dist/use-timeout-D7U3EAtH.d.ts +0 -808
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/editor/types.ts","../src/components/editor/classes.ts","../src/components/editor/styles.tsx","../src/components/editor/presets.ts","../src/components/editor/toolbar/toolbar-item.tsx","../src/components/editor/icons/index.tsx","../src/components/editor/toolbar/heading-block.tsx","../src/components/editor/toolbar/link-block.tsx","../src/components/editor/toolbar/image-block.tsx","../src/components/editor/toolbar/use-toolbar-state.ts","../src/components/editor/toolbar/toolbar.tsx","../src/components/editor/toolbar/bubble-toolbar.tsx","../src/components/editor/toolbar/code-highlight-block.tsx","../src/components/editor/extensions/clear-format.ts","../src/components/editor/extensions/text-transform.ts","../src/components/editor/editor.tsx"],"names":["SvgIcon","styled","jsxs","jsx","ButtonBase","useState","useCallback","Fragment","TextField","Popover","Button","alpha","Divider","editor","Box"],"mappings":"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","file":"chunk-WFD54GQQ.js","sourcesContent":["import type { BoxProps } from '@mui/material/Box';\nimport type { Theme, SxProps } from '@mui/material/styles';\nimport type { Editor, UseEditorOptions } from '@tiptap/react';\nimport type { ButtonBaseProps } from '@mui/material/ButtonBase';\n\n// ---------------------------------------------------------------------------\n// Toolbar presets — define which toolbar items are visible per use case\n// ---------------------------------------------------------------------------\n\nexport type ToolbarPreset = 'full' | 'standard' | 'compact' | 'minimal' | 'chat' | 'inline';\n\n/**\n * Individual toolbar items that can be toggled on/off.\n */\nexport type ToolbarItem =\n // Text formatting\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strike'\n | 'code'\n // Headings\n | 'heading'\n // Lists\n | 'bulletList'\n | 'orderedList'\n | 'taskList'\n // Alignment\n | 'alignLeft'\n | 'alignCenter'\n | 'alignRight'\n | 'alignJustify'\n // Block elements\n | 'blockquote'\n | 'codeBlock'\n | 'horizontalRule'\n // Media & links\n | 'link'\n | 'image'\n // Utilities\n | 'hardBreak'\n | 'clearFormat'\n | 'undo'\n | 'redo'\n | 'fullscreen';\n\n/**\n * Toolbar configuration — either use a preset name or provide explicit items.\n */\nexport type ToolbarConfig = ToolbarPreset | { items: ToolbarItem[]; bubbleMenu?: boolean };\n\n/**\n * Resolved toolbar shape used internally.\n */\nexport interface ResolvedToolbar {\n items: Set<ToolbarItem>;\n bubbleMenu: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Editor component props\n// ---------------------------------------------------------------------------\n\nexport type EditorOutputFormat = 'html' | 'json';\n\nexport type EditorProps = Omit<UseEditorOptions, 'extensions' | 'content'> & {\n /** HTML string or TipTap JSON document */\n value?: string;\n /** Controlled onChange — receives HTML string or JSON string depending on `format` */\n onChange?: (value: string) => void;\n /** Output format: 'html' returns HTML string, 'json' returns stringified TipTap JSON. @default 'json' */\n format?: EditorOutputFormat;\n /** Error state */\n error?: boolean;\n /** Helper text displayed below the editor */\n helperText?: React.ReactNode;\n /** Placeholder text */\n placeholder?: string;\n /** Toolbar preset or explicit config. @default 'standard' */\n toolbar?: ToolbarConfig;\n /** Enable bubble menu (floating toolbar on selection). @default true for standard+ */\n bubbleMenu?: boolean;\n /** Min height of editor content area in px. @default 160 */\n minHeight?: number;\n /** Max height of editor content area in px (enables scroll). @default undefined */\n maxHeight?: number;\n /** Whether content is editable. @default true */\n editable?: boolean;\n /** Reset content when value becomes empty. @default false */\n resetValue?: boolean;\n /** Additional TipTap extensions to merge with preset */\n extraExtensions?: UseEditorOptions['extensions'];\n /** CSS class name */\n className?: string;\n /** MUI sx prop */\n sx?: SxProps<Theme>;\n /** Slot props for wrapper */\n slotProps?: {\n wrapper?: BoxProps;\n };\n /** Ref to the content container */\n ref?: React.RefObject<HTMLDivElement | null> | React.RefCallback<HTMLDivElement | null>;\n /** Accessible names for the toolbar controls. Partial — anything omitted\n * keeps its English default. See {@link EditorLabels}. */\n labels?: Partial<EditorLabels>;\n};\n\n// ---------------------------------------------------------------------------\n// Toolbar labels\n// ---------------------------------------------------------------------------\n\n/**\n * Accessible names for every toolbar control, so a consumer can localise them.\n *\n * They were hardcoded English, which is fine for a design system's default and\n * not fine on a Russian-first product: the editor is on every content form —\n * a post, a community description, an organisation profile, a shop — and every\n * tooltip in it read \"Bold\", \"Insert link\", \"Fullscreen\" next to Russian field\n * labels. The names are also the ONLY text a screen reader gets for these\n * buttons, so an English default is a localisation gap in the accessibility\n * tree, not just in the tooltip.\n *\n * Defaults keep the previous strings verbatim, so a consumer that passes\n * nothing is unchanged.\n */\nexport type EditorLabels = {\n bold: string;\n italic: string;\n underline: string;\n strike: string;\n inlineCode: string;\n clearFormat: string;\n headingMenu: string;\n bulletList: string;\n orderedList: string;\n taskList: string;\n alignLeft: string;\n alignCenter: string;\n alignRight: string;\n alignJustify: string;\n blockquote: string;\n codeBlock: string;\n horizontalRule: string;\n insertLink: string;\n removeLink: string;\n insertImage: string;\n hardBreak: string;\n undo: string;\n redo: string;\n fullscreen: string;\n exitFullscreen: string;\n /** The two popovers carry visible text of their own, not just icons. */\n linkUrlField: string;\n linkApply: string;\n imagePopoverTitle: string;\n imageUrlField: string;\n imageAltField: string;\n imageApply: string;\n /** The code block's language picker, whose first option is a word. */\n codeLanguageAuto: string;\n};\n\n/** The strings the toolbar used before `labels` existed. */\nexport const DEFAULT_EDITOR_LABELS: EditorLabels = {\n bold: 'Bold (⌘B)',\n italic: 'Italic (⌘I)',\n underline: 'Underline (⌘U)',\n strike: 'Strikethrough',\n inlineCode: 'Inline code (⌘E)',\n clearFormat: 'Clear format (⌘⇧X)',\n headingMenu: 'Heading menu',\n bulletList: 'Bullet list',\n orderedList: 'Ordered list',\n taskList: 'Task list',\n alignLeft: 'Align left',\n alignCenter: 'Align center',\n alignRight: 'Align right',\n alignJustify: 'Align justify',\n blockquote: 'Blockquote',\n codeBlock: 'Code block',\n horizontalRule: 'Horizontal rule',\n insertLink: 'Insert link',\n removeLink: 'Remove link',\n insertImage: 'Insert image',\n hardBreak: 'Hard break',\n undo: 'Undo (⌘Z)',\n redo: 'Redo (⌘⇧Z)',\n fullscreen: 'Fullscreen',\n exitFullscreen: 'Exit fullscreen',\n linkUrlField: 'Link URL',\n linkApply: 'Apply',\n imagePopoverTitle: 'Add image',\n imageUrlField: 'Image URL',\n imageAltField: 'Alt text',\n imageApply: 'Apply',\n codeLanguageAuto: 'auto',\n};\n\n// ---------------------------------------------------------------------------\n// Toolbar sub-component props\n// ---------------------------------------------------------------------------\n\nexport type EditorToolbarProps = {\n editor: Editor;\n toolbar: ResolvedToolbar;\n fullscreen: boolean;\n onToggleFullscreen: () => void;\n labels: EditorLabels;\n};\n\nexport type EditorToolbarItemProps = ButtonBaseProps & {\n label?: string;\n active?: boolean;\n icon?: React.ReactNode;\n};\n","// ---------------------------------------------------------------------------\n// Editor CSS class tokens\n// ---------------------------------------------------------------------------\n\nconst cls = (name: string) => `prism-editor-${name}`;\n\nexport const editorClasses = {\n root: cls('root'),\n toolbar: {\n root: cls('toolbar'),\n hr: cls('toolbar-hr'),\n bold: cls('toolbar-bold'),\n italic: cls('toolbar-italic'),\n underline: cls('toolbar-underline'),\n strike: cls('toolbar-strike'),\n code: cls('toolbar-code'),\n codeBlock: cls('toolbar-code-block'),\n link: cls('toolbar-link'),\n unlink: cls('toolbar-unlink'),\n image: cls('toolbar-image'),\n alignLeft: cls('toolbar-align-left'),\n alignCenter: cls('toolbar-align-center'),\n alignRight: cls('toolbar-align-right'),\n alignJustify: cls('toolbar-align-justify'),\n bulletList: cls('toolbar-bullet-list'),\n orderedList: cls('toolbar-ordered-list'),\n taskList: cls('toolbar-task-list'),\n blockquote: cls('toolbar-blockquote'),\n hardBreak: cls('toolbar-hard-break'),\n clear: cls('toolbar-clear'),\n undo: cls('toolbar-undo'),\n redo: cls('toolbar-redo'),\n fullscreen: cls('toolbar-fullscreen'),\n },\n content: {\n root: cls('content'),\n hr: cls('content-hr'),\n link: cls('content-link'),\n image: cls('content-image'),\n heading: cls('content-heading'),\n codeInline: cls('content-code-inline'),\n codeBlock: cls('content-code-block'),\n langSelect: cls('content-lang-select'),\n blockquote: cls('content-blockquote'),\n bulletList: cls('content-bullet-list'),\n orderedList: cls('content-ordered-list'),\n listItem: cls('content-list-item'),\n taskList: cls('content-task-list'),\n taskItem: cls('content-task-item'),\n placeholder: cls('content-placeholder'),\n },\n state: {\n error: cls('state-error'),\n disabled: cls('state-disabled'),\n fullscreen: cls('state-fullscreen'),\n },\n};\n","import { styled, alpha } from '@mui/material/styles';\n\nimport { editorClasses } from './classes.js';\n\nconst MARGIN = '0.75em';\n\nexport const EditorRoot = styled('div')(({ theme }) => ({\n minHeight: 240,\n display: 'flex',\n flexDirection: 'column',\n borderRadius: Number(theme.shape.borderRadius) * 1.5,\n border: `solid 1px ${alpha(theme.palette.grey[500], 0.2)}`,\n transition: theme.transitions.create(['border-color', 'box-shadow'], {\n duration: theme.transitions.duration.short,\n }),\n '&:focus-within': {\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 1px ${alpha(theme.palette.primary.main, 0.2)}`,\n },\n\n // ---------------------------------------------------------------------------\n // State: error\n // ---------------------------------------------------------------------------\n [`&.${editorClasses.state.error}`]: {\n borderColor: theme.palette.error.main,\n [`& .${editorClasses.content.root}`]: {\n backgroundColor: alpha(theme.palette.error.main, 0.04),\n },\n },\n\n // ---------------------------------------------------------------------------\n // State: disabled\n // ---------------------------------------------------------------------------\n [`&.${editorClasses.state.disabled}`]: {\n opacity: 0.48,\n pointerEvents: 'none',\n },\n\n // ---------------------------------------------------------------------------\n // State: fullscreen\n // ---------------------------------------------------------------------------\n [`&.${editorClasses.state.fullscreen}`]: {\n top: 16,\n left: 16,\n position: 'fixed',\n maxHeight: 'unset',\n width: 'calc(100% - 32px)',\n height: 'calc(100% - 32px)',\n zIndex: theme.zIndex.modal,\n borderRadius: Number(theme.shape.borderRadius) * 2,\n backgroundColor: theme.palette.background.default,\n boxShadow: theme.shadows[24],\n },\n\n // ---------------------------------------------------------------------------\n // Placeholder\n // ---------------------------------------------------------------------------\n [`& .${editorClasses.content.placeholder}`]: {\n // `:first-child::before` — placeholder is rendered as the first\n // element of the editable content area when the editor is empty.\n // The previous of-type form fired only when the placeholder was\n // the first sibling of its tag, which is fragile if the editor\n // wrapper changes tag (the placeholder might be the SECOND child\n // of its tag but still the first child overall — both intents\n // converge on the first-child variant).\n '&:first-child::before': {\n ...theme.typography.body2,\n height: 0,\n float: 'left',\n pointerEvents: 'none',\n content: 'attr(data-placeholder)',\n color: theme.palette.text.disabled,\n },\n },\n\n // ---------------------------------------------------------------------------\n // Content area\n // ---------------------------------------------------------------------------\n [`& .${editorClasses.content.root}`]: {\n display: 'flex',\n flex: '1 1 auto',\n overflowY: 'auto',\n flexDirection: 'column',\n borderBottomLeftRadius: 'inherit',\n borderBottomRightRadius: 'inherit',\n backgroundColor: alpha(theme.palette.grey[500], 0.04),\n\n '& .tiptap': {\n '> * + *': { marginTop: 0, marginBottom: MARGIN },\n '&.ProseMirror': {\n flex: '1 1 auto',\n outline: 'none',\n padding: theme.spacing(0, 2),\n },\n\n // Headings\n h1: { ...theme.typography.h1, marginTop: 40, marginBottom: 8 },\n h2: { ...theme.typography.h2, marginTop: 40, marginBottom: 8 },\n h3: { ...theme.typography.h3, marginTop: 24, marginBottom: 8 },\n h4: { ...theme.typography.h4, marginTop: 24, marginBottom: 8 },\n h5: { ...theme.typography.h5, marginTop: 24, marginBottom: 8 },\n h6: { ...theme.typography.h6, marginTop: 24, marginBottom: 8 },\n p: { ...theme.typography.body1, marginBottom: '1.25rem' },\n\n // Link\n [`& .${editorClasses.content.link}`]: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': { textDecoration: 'underline' },\n },\n\n // Horizontal rule\n [`& .${editorClasses.content.hr}`]: {\n flexShrink: 0,\n borderWidth: 0,\n margin: '2em 0',\n borderStyle: 'solid',\n borderBottomWidth: 'thin',\n borderColor: theme.palette.divider,\n },\n\n // Image\n [`& .${editorClasses.content.image}`]: {\n width: '100%',\n height: 'auto',\n maxWidth: '100%',\n borderRadius: theme.shape.borderRadius,\n margin: 'auto auto 1.25em',\n '&.ProseMirror-selectednode': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2,\n },\n },\n\n // Lists\n [`& .${editorClasses.content.bulletList}`]: {\n paddingLeft: 16,\n listStyleType: 'disc',\n },\n [`& .${editorClasses.content.orderedList}`]: {\n paddingLeft: 16,\n },\n [`& .${editorClasses.content.listItem}`]: {\n lineHeight: 2,\n '& > p': { margin: 0 },\n },\n\n // Task list\n [`& .${editorClasses.content.taskList}`]: {\n listStyle: 'none',\n padding: 0,\n '& li': {\n display: 'flex',\n alignItems: 'flex-start',\n gap: theme.spacing(1),\n '& > label': {\n marginTop: 4,\n flexShrink: 0,\n },\n '& > div': { flex: 1 },\n },\n },\n\n // Blockquote\n [`& .${editorClasses.content.blockquote}`]: {\n lineHeight: 1.5,\n fontSize: '1.5em',\n margin: '24px auto',\n position: 'relative',\n fontFamily: 'Georgia, serif',\n padding: theme.spacing(3, 3, 3, 8),\n color: theme.palette.text.secondary,\n borderLeft: `solid 8px ${alpha(theme.palette.grey[500], 0.08)}`,\n [theme.breakpoints.up('md')]: { width: '100%', maxWidth: 640 },\n '& p': { margin: 0, fontSize: 'inherit', fontFamily: 'inherit' },\n '&::before': {\n left: 16,\n top: -8,\n display: 'block',\n fontSize: '3em',\n content: '\"\\\\201C\"',\n position: 'absolute',\n color: theme.palette.text.disabled,\n },\n },\n\n // Inline code\n [`& .${editorClasses.content.codeInline}`]: {\n padding: theme.spacing(0.25, 0.5),\n color: theme.palette.text.secondary,\n fontSize: theme.typography.body2.fontSize,\n borderRadius: Number(theme.shape.borderRadius) / 2,\n backgroundColor: alpha(theme.palette.grey[500], 0.16),\n fontFamily: \"'JetBrains Mono', 'Fira Code', monospace\",\n },\n\n // Code block\n [`& .${editorClasses.content.codeBlock}`]: {\n position: 'relative',\n '& pre': {\n overflowX: 'auto',\n color: theme.palette.common.white,\n padding: theme.spacing(5, 3, 3, 3),\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.grey[900],\n fontFamily: \"'JetBrains Mono', 'Fira Code', monospace\",\n '& code': { fontSize: theme.typography.body2.fontSize },\n },\n [`& .${editorClasses.content.langSelect}`]: {\n top: 8,\n right: 8,\n zIndex: 1,\n padding: 4,\n outline: 'none',\n borderRadius: 4,\n position: 'absolute',\n color: theme.palette.common.white,\n fontWeight: theme.typography.fontWeightMedium,\n borderColor: alpha(theme.palette.grey[500], 0.08),\n backgroundColor: alpha(theme.palette.grey[500], 0.08),\n },\n },\n },\n },\n}));\n","import type { ToolbarItem, ToolbarConfig, ToolbarPreset, ResolvedToolbar } from './types.js';\n\n// ---------------------------------------------------------------------------\n// Preset definitions — which toolbar items each preset includes\n// ---------------------------------------------------------------------------\n\nconst PRESET_ITEMS: Record<ToolbarPreset, ToolbarItem[]> = {\n /**\n * Full — CMS pages, blog articles, documentation.\n * Everything enabled including headings, alignment, code blocks, images.\n */\n full: [\n 'heading',\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'code',\n 'bulletList',\n 'orderedList',\n 'taskList',\n 'alignLeft',\n 'alignCenter',\n 'alignRight',\n 'alignJustify',\n 'blockquote',\n 'codeBlock',\n 'horizontalRule',\n 'link',\n 'image',\n 'hardBreak',\n 'clearFormat',\n 'undo',\n 'redo',\n 'fullscreen',\n ],\n\n /**\n * Standard — blog posts, forum discussions, product descriptions.\n * Most formatting without advanced alignment and task lists.\n */\n standard: [\n 'heading',\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'bulletList',\n 'orderedList',\n 'blockquote',\n 'codeBlock',\n 'link',\n 'image',\n 'hardBreak',\n 'clearFormat',\n 'undo',\n 'redo',\n 'fullscreen',\n ],\n\n /**\n * Compact — comments, forum replies.\n * Basic formatting, links, code, no images/headings.\n */\n compact: [\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'code',\n 'bulletList',\n 'orderedList',\n 'blockquote',\n 'link',\n 'clearFormat',\n ],\n\n /**\n * Minimal — quick feedback, short messages.\n * Only essential inline formatting.\n */\n minimal: ['bold', 'italic', 'code', 'link'],\n\n /**\n * Chat — messaging system.\n * Lightweight formatting, optimized for speed.\n */\n chat: ['bold', 'italic', 'strike', 'code', 'link', 'bulletList', 'orderedList', 'codeBlock'],\n\n /**\n * Inline — single-line fields (titles, captions).\n * No toolbar, no block-level elements.\n */\n inline: [],\n};\n\n/**\n * Whether each preset shows a bubble menu by default.\n */\nconst PRESET_BUBBLE_MENU: Record<ToolbarPreset, boolean> = {\n full: true,\n standard: true,\n compact: true,\n minimal: false,\n chat: false,\n inline: false,\n};\n\n// ---------------------------------------------------------------------------\n// Resolver\n// ---------------------------------------------------------------------------\n\nexport function resolveToolbar(config: ToolbarConfig | undefined): ResolvedToolbar {\n if (!config) {\n return resolveToolbar('standard');\n }\n\n if (typeof config === 'string') {\n return {\n items: new Set(PRESET_ITEMS[config]),\n bubbleMenu: PRESET_BUBBLE_MENU[config],\n };\n }\n\n return {\n items: new Set(config.items),\n bubbleMenu: config.bubbleMenu ?? false,\n };\n}\n","import type { EditorToolbarItemProps } from '../types.js';\n\nimport SvgIcon from '@mui/material/SvgIcon';\nimport Tooltip from '@mui/material/Tooltip';\nimport { styled } from '@mui/material/styles';\nimport ButtonBase from '@mui/material/ButtonBase';\n\nexport function ToolbarItem({ sx, icon, label, active, disabled, ...other }: EditorToolbarItemProps) {\n const ariaLabel = other['aria-label'];\n\n const renderItem = () => (\n <ItemRoot disableRipple disableTouchRipple disabled={disabled} active={active} sx={sx} {...other}>\n {icon && <SvgIcon sx={{ fontSize: 18 }}>{icon}</SvgIcon>}\n {label && label}\n </ItemRoot>\n );\n\n if (ariaLabel) {\n return <Tooltip title={ariaLabel}>{renderItem()}</Tooltip>;\n }\n\n return renderItem();\n}\n\nconst ItemRoot = styled(ButtonBase, {\n shouldForwardProp: (prop: string) => !['active', 'disabled', 'sx'].includes(prop),\n})<Pick<EditorToolbarItemProps, 'active'>>(({ theme }) => ({\n ...theme.typography.body2,\n width: 28,\n height: 28,\n padding: theme.spacing(0, 0.75),\n borderRadius: Number(theme.shape.borderRadius) * 0.75,\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n variants: [\n {\n props: (props) => !!props.active,\n style: {\n backgroundColor: theme.palette.action.selected,\n border: `solid 1px ${theme.palette.action.hover}`,\n },\n },\n {\n props: (props) => !!props.disabled,\n style: {\n opacity: 0.48,\n cursor: 'default',\n pointerEvents: 'none',\n },\n },\n ],\n}));\n","/**\n * Editor toolbar icons — HugeIcons Duotone Rounded style.\n * Source: experiments/portal-old/src/components/editor/toolbar/icons\n *\n * All icons use stroke-based SVG with `currentColor` for theme integration.\n */\n\nimport SvgIcon from '@mui/material/SvgIcon';\nimport type { SvgIconProps } from '@mui/material/SvgIcon';\n\n// ---------------------------------------------------------------------------\n// Helper\n// ---------------------------------------------------------------------------\n\ntype IconComponent = (props?: SvgIconProps) => React.JSX.Element;\n\n// ---------------------------------------------------------------------------\n// Text Formatting\n// ---------------------------------------------------------------------------\n\nexport const BoldIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5 6C5 4.58579 5 3.87868 5.43934 3.43934C5.87868 3 6.58579 3 8 3H12.5789C15.0206 3 17 5.01472 17 7.5C17 9.98528 15.0206 12 12.5789 12H5V6Z\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M12.4286 12H13.6667C16.0599 12 18 14.0147 18 16.5C18 18.9853 16.0599 21 13.6667 21H8C6.58579 21 5.87868 21 5.43934 20.5607C5 20.1213 5 19.4142 5 18V12\"\n />\n </SvgIcon>\n);\n\nexport const ItalicIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M12 4H19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M5 20H12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </SvgIcon>\n);\n\nexport const UnderlineIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M5.5 3V11.5C5.5 15.0899 8.41015 18 12 18C15.5899 18 18.5 15.0899 18.5 11.5V3\"\n />\n <path d=\"M3 21H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </SvgIcon>\n);\n\nexport const StrikeIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M4 12H20\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n d=\"M17.5 7.66667C17.5 5.08934 15.0376 3 12 3C8.96243 3 6.5 5.08934 6.5 7.66667C6.5 8.15279 6.55336 8.59783 6.6668 9M6 16.3333C6 18.9107 8.68629 21 12 21C15.3137 21 18 19.6667 18 16.3333C18 13.9404 16.9693 12.5782 14.9079 12\"\n />\n </SvgIcon>\n);\n\nexport const InlineCodeIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M17 8L18.8398 9.85008C19.6133 10.6279 20 11.0168 20 11.5C20 11.9832 19.6133 12.3721 18.8398 13.1499L17 15\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M7 8L5.16019 9.85008C4.38673 10.6279 4 11.0168 4 11.5C4 11.9832 4.38673 12.3721 5.16019 13.1499L7 15\"\n />\n <path d=\"M14.5 4L9.5 20\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const CodeBlockIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M16 10L17.2265 11.0572C17.7422 11.5016 18 11.7239 18 12C18 12.2761 17.7422 12.4984 17.2265 12.9428L16 14\"\n />\n <path\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M8 10L6.77346 11.0572C6.25782 11.5016 6 11.7239 6 12C6 12.2761 6.25782 12.4984 6.77346 12.9428L8 14\"\n />\n <path d=\"M13 9L11 15\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n d=\"M2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12Z\"\n />\n </SvgIcon>\n);\n\n// ---------------------------------------------------------------------------\n// Headings\n// ---------------------------------------------------------------------------\n\nexport const H1Icon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M4 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M14 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n d=\"M17 19H18.5M20 19H18.5M18.5 19V11L17 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M4 12L14 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const H2Icon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M13.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.5 19H16.5V18.6907C16.5 18.2521 16.5 18.0327 16.5865 17.8385C16.673 17.6443 16.836 17.4976 17.1621 17.2041L19.7671 14.8596C20.2336 14.4397 20.5 13.8416 20.5 13.214V13C20.5 11.8954 19.6046 11 18.5 11C17.3954 11 16.5 11.8954 16.5 13V13.4\"\n />\n <path d=\"M3.5 12L13.5 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const H3Icon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M13.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M16.5 17C16.5 18.1046 17.3954 19 18.5 19C19.6046 19 20.5 18.1046 20.5 17C20.5 15.8954 19.6046 15 18.5 15C19.6046 15 20.5 14.1046 20.5 13C20.5 11.8954 19.6046 11 18.5 11C17.3954 11 16.5 11.8954 16.5 13\"\n />\n <path d=\"M3.5 12L13.5 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const H4Icon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M13.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n d=\"M16.5 11V15H20.5M20.5 15V19M20.5 15V11\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M3.5 12L13.5 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const H5Icon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M13.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n d=\"M16.5 16.5V17C16.5 18.1046 17.3954 19 18.5 19C19.6046 19 20.5 18.1046 20.5 17V16.5C20.5 15.1193 19.3807 14 18 14H16.5V11H20.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M3.5 12L13.5 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const H6Icon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M13.5 5V19\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n d=\"M16.5 17C16.5 18.1046 17.3954 19 18.5 19C19.6046 19 20.5 18.1046 20.5 17C20.5 15.8954 19.6046 15 18.5 15C17.3954 15 16.5 15.8954 16.5 17ZM16.5 17V13C16.5 11.8954 17.3954 11 18.5 11C19.6046 11 20.5 11.8954 20.5 13\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M3.5 12L13.5 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const ParagraphIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15 21.001H9\" />\n <path\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n d=\"M12 3.00001V21.0008M12 3.00001C13.3874 3.00001 15.1695 3.03055 16.5884 3.17649C17.1885 3.2382 17.4886 3.26906 17.7541 3.37791C18.3066 3.60429 18.7518 4.10063 18.9194 4.67681C19 4.95382 19 5.26992 19 5.90215M12 3.00001C10.6126 3.00001 8.83047 3.03055 7.41161 3.17649C6.8115 3.2382 6.51144 3.26906 6.24586 3.37791C5.69344 3.60429 5.24816 4.10063 5.08057 4.67681C5 4.95382 5 5.26992 5 5.90215\"\n />\n </SvgIcon>\n);\n\n// ---------------------------------------------------------------------------\n// Alignment\n// ---------------------------------------------------------------------------\n\nexport const AlignLeftIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3 3H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 9H11\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 15H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 21H11\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const AlignCenterIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3 3H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M8 9H16\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 15H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M8 21H16\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const AlignRightIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3 3H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M13 9H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 15H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M13 21H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const AlignJustifyIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M3 3H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 9H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 15H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 21H21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\n// ---------------------------------------------------------------------------\n// Lists\n// ---------------------------------------------------------------------------\n\nexport const BulletListIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M11 5.5L21 5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n d=\"M5.4 16.8926C6.46667 17.607 7 17.9642 7 18.5C7 19.0358 6.46667 19.393 5.4 20.1074C4.33333 20.8218 3.8 21.1789 3.4 20.9111C3 20.6432 3 19.9288 3 18.5C3 17.0712 3 16.3568 3.4 16.0889C3.8 15.8211 4.33333 16.1782 5.4 16.8926Z\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n d=\"M5.4 3.89263C6.46667 4.60702 7 4.96421 7 5.5C7 6.03579 6.46667 6.39298 5.4 7.10737C4.33333 7.82176 3.8 8.17895 3.4 7.91105C3 7.64316 3 6.92877 3 5.5C3 4.07123 3 3.35684 3.4 3.08895C3.8 2.82105 4.33333 3.17824 5.4 3.89263Z\"\n />\n <path d=\"M11 12L21 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M11 18.5L21 18.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </SvgIcon>\n);\n\nexport const OrderedListIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M11 6L21 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M11 12L21 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M11 18L21 18\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3 15H4.5C4.77879 15 4.91819 15 5.03411 15.0231C5.51014 15.1177 5.88225 15.4899 5.97694 15.9659C6 16.0818 6 16.2212 6 16.5C6 16.7788 6 16.9182 5.97694 17.0341C5.88225 17.5101 5.51014 17.8823 5.03411 17.9769C4.91819 18 4.77879 18 4.5 18C4.22121 18 4.08181 18 3.96589 18.0231C3.48986 18.1177 3.11775 18.4899 3.02306 18.9659C3 19.0818 3 19.2212 3 19.5V20.4C3 20.6828 3 20.8243 3.08787 20.9121C3.17574 21 3.31716 21 3.6 21H6\"\n />\n <path\n d=\"M3 3H4.2C4.36569 3 4.5 3.13431 4.5 3.3V9M4.5 9H3M4.5 9H6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgIcon>\n);\n\nexport const CheckListIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M11 6L21 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M11 12L21 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M11 18L21 18\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3 7.39286C3 7.39286 4 8.04466 4.5 9C4.5 9 6 5.25 8 4\"\n />\n <path\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3 18.3929C3 18.3929 4 19.0447 4.5 20C4.5 20 6 16.25 8 15\"\n />\n </SvgIcon>\n);\n\n// ---------------------------------------------------------------------------\n// Block Elements\n// ---------------------------------------------------------------------------\n\nexport const QuoteIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n d=\"M14 16C14 14.1144 14 13.1716 14.5858 12.5858C15.1716 12 16.1144 12 18 12C19.8856 12 20.8284 12 21.4142 12.5858C22 13.1716 22 14.1144 22 16C22 17.8856 22 18.8284 21.4142 19.4142C20.8284 20 19.8856 20 18 20C16.1144 20 15.1716 20 14.5858 19.4142C14 18.8284 14 17.8856 14 16Z\"\n />\n <path\n fill=\"none\"\n d=\"M14 16V11.8626C14 8.19569 16.5157 5.08584 20 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n d=\"M2 16C2 14.1144 2 13.1716 2.58579 12.5858C3.17157 12 4.11438 12 6 12C7.88562 12 8.82843 12 9.41421 12.5858C10 13.1716 10 14.1144 10 16C10 17.8856 10 18.8284 9.41421 19.4142C8.82843 20 7.88562 20 6 20C4.11438 20 3.17157 20 2.58579 19.4142C2 18.8284 2 17.8856 2 16Z\"\n />\n <path\n fill=\"none\"\n d=\"M2 16V11.8626C2 8.19569 4.51571 5.08584 8 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </SvgIcon>\n);\n\nexport const HorizontalRuleIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M2.5 12L21.5002 12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </SvgIcon>\n);\n\nexport const TableIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088Z\"\n />\n <path d=\"M2.5 9L21.5 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 13L21.5 13\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 17L21.5 17\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M12 21.5L12 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </SvgIcon>\n);\n\n// ---------------------------------------------------------------------------\n// Media & Links\n// ---------------------------------------------------------------------------\n\nexport const LinkIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M9.5 14.5L14.5 9.49995\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n d=\"M16.8463 14.6095L19.4558 12C21.5147 9.94108 21.5147 6.60298 19.4558 4.54411C17.397 2.48524 14.0589 2.48524 12 4.54411L9.39045 7.15366M14.6095 16.8463L12 19.4558C9.94113 21.5147 6.60303 21.5147 4.54416 19.4558C2.48528 17.3969 2.48528 14.0588 4.54416 12L7.1537 9.39041\"\n />\n </SvgIcon>\n);\n\nexport const UnlinkIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n d=\"M16.8463 14.6095L19.4558 12C21.5147 9.94113 21.5147 6.60303 19.4558 4.54416C17.397 2.48528 14.0589 2.48528 12 4.54416L9.39045 7.1537M14.6095 16.8463L12 19.4558C9.94113 21.5147 6.60303 21.5147 4.54416 19.4558C2.48528 17.397 2.48528 14.0589 4.54416 12L7.1537 9.39045\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M22 17H19.9211M17 22L17 19.9211\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M2 7H4.07889M7 2L7 4.07889\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgIcon>\n);\n\nexport const ImageIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <circle\n fill=\"none\"\n cx=\"7.5\"\n cy=\"7.5\"\n r=\"1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n d=\"M2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12Z\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n d=\"M5 21C9.37246 15.775 14.2741 8.88406 21.4975 13.5424\"\n />\n </SvgIcon>\n);\n\n// ---------------------------------------------------------------------------\n// Utilities\n// ---------------------------------------------------------------------------\n\nexport const ClearMarksIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path d=\"M11 20.001H5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 3L21 21\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n d=\"M19 7C19 6.36778 19 5.95381 18.9194 5.6768C18.7518 5.10062 18.3066 4.60428 17.7541 4.37789C17.4886 4.26905 17.1885 4.23819 16.5884 4.17648C15.1695 4.03054 13.3874 4 12 4H8\"\n />\n <path\n d=\"M12 4L11.2 7.20003M8 20.0008L10.4001 10.4001\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgIcon>\n);\n\nexport const UndoIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n d=\"M3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C8.79275 3 5.97733 4.67765 4.38341 7.20327M3.29339 3.00076L3.46556 5.05452C3.58958 6.53384 3.65159 7.27349 4.13359 7.68914C4.61559 8.10479 5.32673 8.03185 6.74899 7.88595L8.79339 7.67625\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </SvgIcon>\n);\n\nexport const RedoIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C15.2073 3 18.0227 4.67765 19.6166 7.20327M20.7066 3.00076L20.5344 5.05452C20.4104 6.53384 20.3484 7.27349 19.8664 7.68914C19.3844 8.10479 18.6733 8.03185 17.251 7.88595L15.2066 7.67625\"\n />\n </SvgIcon>\n);\n\nexport const HardBreakIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M13 6H8.5C6.01472 6 4 8.01472 4 10.5C4 12.9853 6.01472 15 8.5 15H20\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M17 12C17 12 20 14.2095 20 15C20 15.7906 17 18 17 18\"\n />\n </SvgIcon>\n);\n\nexport const FullscreenIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M15.5 21C16.8956 21 17.5933 21 18.1611 20.8278C19.4395 20.44 20.44 19.4395 20.8278 18.1611C21 17.5933 21 16.8956 21 15.5M21 8.5C21 7.10444 21 6.40666 20.8278 5.83886C20.44 4.56046 19.4395 3.56004 18.1611 3.17224C17.5933 3 16.8956 3 15.5 3M8.5 21C7.10444 21 6.40666 21 5.83886 20.8278C4.56046 20.44 3.56004 19.4395 3.17224 18.1611C3 17.5933 3 16.8956 3 15.5M3 8.5C3 7.10444 3 6.40666 3.17224 5.83886C3.56004 4.56046 4.56046 3.56004 5.83886 3.17224C6.40666 3 7.10444 3 8.5 3\"\n />\n </SvgIcon>\n);\n\nexport const ExitFullscreenIcon: IconComponent = (props) => (\n <SvgIcon {...props}>\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M15.5 9.5L21 4M15.5 9.5V5M15.5 9.5H20M8.5 14.5L3 20M8.5 14.5V19M8.5 14.5H4\"\n />\n </SvgIcon>\n);\n","import type { Editor } from '@tiptap/react';\nimport type { EditorLabels } from '../types.js';\nimport type { TextHeadingLevel } from './use-toolbar-state.js';\n\nimport { useState, useCallback } from 'react';\n\nimport Menu from '@mui/material/Menu';\nimport { styled } from '@mui/material/styles';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport { listClasses } from '@mui/material/List';\nimport { buttonBaseClasses } from '@mui/material/ButtonBase';\n\nimport { ToolbarItem } from './toolbar-item.js';\nimport { ParagraphIcon, H1Icon, H2Icon, H3Icon, H4Icon, H5Icon, H6Icon } from '../icons/index.js';\n\nconst HEADING_OPTIONS = [\n { key: 'Paragraph', level: null as TextHeadingLevel, icon: <ParagraphIcon sx={{ fontSize: 18 }} /> },\n { key: 'Heading 1', level: 1 as TextHeadingLevel, icon: <H1Icon sx={{ fontSize: 18 }} /> },\n { key: 'Heading 2', level: 2 as TextHeadingLevel, icon: <H2Icon sx={{ fontSize: 18 }} /> },\n { key: 'Heading 3', level: 3 as TextHeadingLevel, icon: <H3Icon sx={{ fontSize: 18 }} /> },\n { key: 'Heading 4', level: 4 as TextHeadingLevel, icon: <H4Icon sx={{ fontSize: 18 }} /> },\n { key: 'Heading 5', level: 5 as TextHeadingLevel, icon: <H5Icon sx={{ fontSize: 18 }} /> },\n { key: 'Heading 6', level: 6 as TextHeadingLevel, icon: <H6Icon sx={{ fontSize: 18 }} /> },\n];\n\ninterface HeadingBlockProps {\n labels: EditorLabels;\n editor: Editor;\n isActive: (value: TextHeadingLevel) => boolean;\n}\n\nexport function HeadingBlock({ editor, isActive, labels }: HeadingBlockProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n\n const handleOpen = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n }, []);\n\n const handleClose = useCallback(() => {\n setAnchorEl(null);\n }, []);\n\n const handleSelect = useCallback(\n (value: TextHeadingLevel) => {\n handleClose();\n if (value) {\n editor.chain().focus().toggleHeading({ level: value }).run();\n } else {\n editor.chain().focus().setParagraph().run();\n }\n },\n [editor, handleClose]\n );\n\n const activeIcon = (editor.isActive('heading', { level: 1 }) && <H1Icon sx={{ fontSize: 18 }} />) ||\n (editor.isActive('heading', { level: 2 }) && <H2Icon sx={{ fontSize: 18 }} />) ||\n (editor.isActive('heading', { level: 3 }) && <H3Icon sx={{ fontSize: 18 }} />) ||\n (editor.isActive('heading', { level: 4 }) && <H4Icon sx={{ fontSize: 18 }} />) ||\n (editor.isActive('heading', { level: 5 }) && <H5Icon sx={{ fontSize: 18 }} />) ||\n (editor.isActive('heading', { level: 6 }) && <H6Icon sx={{ fontSize: 18 }} />) || (\n <ParagraphIcon sx={{ fontSize: 18 }} />\n );\n\n const buttonId = 'heading-menu-button';\n const menuId = 'heading-menu';\n\n return (\n <>\n <HeadingButton\n id={buttonId}\n aria-label={labels.headingMenu}\n aria-controls={open ? menuId : undefined}\n aria-haspopup=\"true\"\n aria-expanded={open ? 'true' : undefined}\n onClick={handleOpen}\n >\n {activeIcon}\n </HeadingButton>\n\n <Menu\n id={menuId}\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n slotProps={{\n list: { 'aria-labelledby': buttonId },\n paper: {\n sx: {\n width: 42,\n [`& .${listClasses.root}`]: { gap: 0.5, display: 'flex', flexDirection: 'column' },\n [`& .${buttonBaseClasses.root}`]: {\n px: 1,\n width: 1,\n height: 34,\n borderRadius: 0.75,\n justifyContent: 'flex-start',\n '&:hover': { backgroundColor: 'action.hover' },\n },\n },\n },\n }}\n >\n {HEADING_OPTIONS.map((option) => (\n <ToolbarItem\n key={option.key}\n component=\"li\"\n aria-label={option.key}\n icon={option.icon}\n active={isActive(option.level)}\n onClick={() => handleSelect(option.level)}\n />\n ))}\n </Menu>\n </>\n );\n}\n\nconst HeadingButton = styled(ButtonBase)(({ theme }) => ({\n width: 28,\n height: 28,\n borderRadius: Number(theme.shape.borderRadius) * 0.75,\n justifyContent: 'center',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n}));\n","import type { Editor } from '@tiptap/react';\nimport type { EditorToolbarItemProps } from '../types.js';\nimport type { EditorLabels } from '../types.js';\n\nimport { useState, useCallback } from 'react';\n\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Popover from '@mui/material/Popover';\nimport TextField from '@mui/material/TextField';\n\nimport { editorClasses } from '../classes.js';\nimport { ToolbarItem } from './toolbar-item.js';\n\ninterface LinkBlockProps {\n labels: EditorLabels;\n editor: Editor;\n active: boolean;\n linkIcon: EditorToolbarItemProps['icon'];\n unlinkIcon: EditorToolbarItemProps['icon'];\n}\n\nexport function LinkBlock({ editor, linkIcon, unlinkIcon, active, labels }: LinkBlockProps) {\n const [linkUrl, setLinkUrl] = useState('');\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n\n const handleOpen = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n const currentUrl = editor.getAttributes('link').href ?? '';\n setAnchorEl(event.currentTarget);\n setLinkUrl(currentUrl);\n },\n [editor]\n );\n\n const handleClose = useCallback(() => {\n setAnchorEl(null);\n }, []);\n\n const handleApply = useCallback(() => {\n handleClose();\n const chain = () => editor.chain().focus().extendMarkRange('link');\n if (linkUrl) {\n chain().setLink({ href: linkUrl }).run();\n } else {\n chain().unsetLink().run();\n }\n }, [editor, linkUrl, handleClose]);\n\n const popoverId = open ? 'link-popover' : undefined;\n\n return (\n <>\n <ToolbarItem\n aria-describedby={popoverId}\n aria-label={labels.insertLink}\n active={active}\n className={editorClasses.toolbar.link}\n onClick={handleOpen}\n icon={linkIcon}\n />\n\n <ToolbarItem\n aria-label={labels.removeLink}\n disabled={!active}\n className={editorClasses.toolbar.unlink}\n onClick={() => editor.chain().focus().unsetLink().run()}\n icon={unlinkIcon}\n />\n\n <Popover\n id={popoverId}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n slotProps={{\n paper: {\n sx: { p: 2.5, gap: 1.25, width: 1, maxWidth: 320, display: 'flex', flexDirection: 'column' },\n },\n }}\n >\n {/* Floating Material-Design label sits in the outline notch\n when the field is empty/focused and tucks above when filled\n — replaces the old `<Typography>` heading + bare-placeholder\n shape which left the outline notched without a label,\n producing a visible gap. */}\n <Box sx={{ gap: 1, display: 'flex', alignItems: 'center' }}>\n <TextField\n fullWidth\n size=\"small\"\n label={labels.linkUrlField}\n placeholder=\"https://\"\n value={linkUrl}\n onChange={(e) => setLinkUrl(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') handleApply();\n }}\n />\n <Button variant=\"contained\" disabled={!linkUrl} onClick={handleApply}>\n {labels.linkApply}\n </Button>\n </Box>\n </Popover>\n </>\n );\n}\n","import type { Editor } from '@tiptap/react';\nimport type { EditorToolbarItemProps } from '../types.js';\nimport type { EditorLabels } from '../types.js';\n\nimport { useState, useCallback } from 'react';\n\nimport Button from '@mui/material/Button';\nimport Popover from '@mui/material/Popover';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\n\nimport { editorClasses } from '../classes.js';\nimport { ToolbarItem } from './toolbar-item.js';\n\ninterface ImageBlockProps {\n labels: EditorLabels;\n editor: Editor;\n icon: EditorToolbarItemProps['icon'];\n}\n\nexport function ImageBlock({ editor, icon, labels }: ImageBlockProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n const [state, setState] = useState({ imageUrl: '', altText: '' });\n\n const handleOpen = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n }, []);\n\n const handleClose = useCallback(() => {\n setAnchorEl(null);\n }, []);\n\n const handleApply = useCallback(() => {\n handleClose();\n setState({ imageUrl: '', altText: '' });\n editor.chain().focus().setImage({ src: state.imageUrl, alt: state.altText }).run();\n }, [editor, handleClose, state]);\n\n const popoverId = open ? 'image-popover' : undefined;\n\n return (\n <>\n <ToolbarItem\n aria-describedby={popoverId}\n aria-label={labels.insertImage}\n className={editorClasses.toolbar.image}\n onClick={handleOpen}\n icon={icon}\n />\n\n <Popover\n id={popoverId}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n slotProps={{\n paper: {\n sx: { p: 2.5, gap: 1.25, width: 1, maxWidth: 320, display: 'flex', flexDirection: 'column' },\n },\n }}\n >\n <Typography variant=\"subtitle2\">{labels.imagePopoverTitle}</Typography>\n <TextField\n fullWidth\n size=\"small\"\n label={labels.imageUrlField}\n placeholder=\"https://\"\n value={state.imageUrl}\n onChange={(e) => setState((prev) => ({ ...prev, imageUrl: e.target.value }))}\n />\n <TextField\n fullWidth\n size=\"small\"\n label={labels.imageAltField}\n value={state.altText}\n onChange={(e) => setState((prev) => ({ ...prev, altText: e.target.value }))}\n />\n <Button variant=\"contained\" disabled={!state.imageUrl} onClick={handleApply} sx={{ alignSelf: 'flex-end' }}>\n {labels.imageApply}\n </Button>\n </Popover>\n </>\n );\n}\n","import type { Editor } from '@tiptap/react';\nimport type { TextTransformValue } from '../extensions/text-transform.js';\n\nimport { useEditorState } from '@tiptap/react';\n\nexport type TextAlignValue = 'left' | 'center' | 'right' | 'justify';\nexport type TextHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6 | null;\n\nexport interface UseToolbarStateReturn {\n isBold: boolean;\n isCode: boolean;\n isLink: boolean;\n isItalic: boolean;\n isStrike: boolean;\n isUnderline: boolean;\n isCodeBlock: boolean;\n isBulletList: boolean;\n isBlockquote: boolean;\n isOrderedList: boolean;\n isTaskList: boolean;\n isAlign: (value: TextAlignValue) => boolean;\n isTextLevel: (value: TextHeadingLevel) => boolean;\n isTextTransform: (value: TextTransformValue) => boolean;\n canUndo: boolean;\n canRedo: boolean;\n}\n\nexport function useToolbarState(editor: Editor): UseToolbarStateReturn {\n return useEditorState({\n editor,\n selector: (ctx) => {\n const canRun = ctx.editor.can().chain().focus();\n\n return {\n isBold: ctx.editor.isActive('bold'),\n isCode: ctx.editor.isActive('code'),\n isLink: ctx.editor.isActive('link'),\n isItalic: ctx.editor.isActive('italic'),\n isStrike: ctx.editor.isActive('strike'),\n isUnderline: ctx.editor.isActive('underline'),\n isCodeBlock: ctx.editor.isActive('codeBlock'),\n isBulletList: ctx.editor.isActive('bulletList'),\n isBlockquote: ctx.editor.isActive('blockquote'),\n isOrderedList: ctx.editor.isActive('orderedList'),\n isTaskList: ctx.editor.isActive('taskList'),\n isAlign: (value: TextAlignValue) => ctx.editor.isActive({ textAlign: value }),\n isTextTransform: (value: TextTransformValue) => ctx.editor.isActive('textTransform', { textTransform: value }),\n isTextLevel: (value: TextHeadingLevel) =>\n value ? ctx.editor.isActive('heading', { level: value }) : ctx.editor.isActive('paragraph'),\n canUndo: canRun.undo().run(),\n canRedo: canRun.redo().run(),\n };\n },\n });\n}\n","import type { EditorToolbarProps } from '../types.js';\n\nimport Divider from '@mui/material/Divider';\nimport { alpha, styled } from '@mui/material/styles';\n\nimport { editorClasses } from '../classes.js';\nimport { ToolbarItem } from './toolbar-item.js';\nimport { HeadingBlock } from './heading-block.js';\nimport { LinkBlock } from './link-block.js';\nimport { ImageBlock } from './image-block.js';\nimport { useToolbarState } from './use-toolbar-state.js';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n StrikeIcon,\n InlineCodeIcon,\n BulletListIcon,\n OrderedListIcon,\n CheckListIcon,\n AlignLeftIcon,\n AlignCenterIcon,\n AlignRightIcon,\n AlignJustifyIcon,\n QuoteIcon,\n CodeBlockIcon,\n HorizontalRuleIcon,\n LinkIcon,\n UnlinkIcon,\n ImageIcon,\n HardBreakIcon,\n ClearMarksIcon,\n UndoIcon,\n RedoIcon,\n FullscreenIcon,\n ExitFullscreenIcon,\n} from '../icons/index.js';\n\nexport function Toolbar({ editor, toolbar, fullscreen, onToggleFullscreen, labels }: EditorToolbarProps) {\n const state = useToolbarState(editor);\n const has = (item: string) => toolbar.items.has(item as any);\n const chain = () => editor.chain().focus();\n\n const hasAnyInGroup = (...items: string[]) => items.some(has);\n\n return (\n <ToolbarRoot className={editorClasses.toolbar.root}>\n {/* Heading selector */}\n {has('heading') && (\n <>\n <HeadingBlock labels={labels} editor={editor} isActive={state.isTextLevel} />\n <ToolbarDivider />\n </>\n )}\n\n {/* Text styles */}\n {hasAnyInGroup('bold', 'italic', 'underline', 'strike', 'code') && (\n <>\n <ToolbarBlock>\n {has('bold') && (\n <ToolbarItem\n aria-label={labels.bold}\n active={state.isBold}\n className={editorClasses.toolbar.bold}\n onClick={() => chain().toggleBold().run()}\n icon={<BoldIcon />}\n />\n )}\n {has('italic') && (\n <ToolbarItem\n aria-label={labels.italic}\n active={state.isItalic}\n className={editorClasses.toolbar.italic}\n onClick={() => chain().toggleItalic().run()}\n icon={<ItalicIcon />}\n />\n )}\n {has('underline') && (\n <ToolbarItem\n aria-label={labels.underline}\n active={state.isUnderline}\n className={editorClasses.toolbar.underline}\n onClick={() => chain().toggleUnderline().run()}\n icon={<UnderlineIcon />}\n />\n )}\n {has('strike') && (\n <ToolbarItem\n aria-label={labels.strike}\n active={state.isStrike}\n className={editorClasses.toolbar.strike}\n onClick={() => chain().toggleStrike().run()}\n icon={<StrikeIcon />}\n />\n )}\n {has('code') && (\n <ToolbarItem\n aria-label={labels.inlineCode}\n active={state.isCode}\n className={editorClasses.toolbar.code}\n onClick={() => chain().toggleCode().run()}\n icon={<InlineCodeIcon />}\n />\n )}\n </ToolbarBlock>\n <ToolbarDivider />\n </>\n )}\n\n {/* Lists */}\n {hasAnyInGroup('bulletList', 'orderedList', 'taskList') && (\n <>\n <ToolbarBlock>\n {has('bulletList') && (\n <ToolbarItem\n aria-label={labels.bulletList}\n active={state.isBulletList}\n className={editorClasses.toolbar.bulletList}\n onClick={() => chain().toggleBulletList().run()}\n icon={<BulletListIcon />}\n />\n )}\n {has('orderedList') && (\n <ToolbarItem\n aria-label={labels.orderedList}\n active={state.isOrderedList}\n className={editorClasses.toolbar.orderedList}\n onClick={() => chain().toggleOrderedList().run()}\n icon={<OrderedListIcon />}\n />\n )}\n {has('taskList') && (\n <ToolbarItem\n aria-label={labels.taskList}\n active={state.isTaskList}\n className={editorClasses.toolbar.taskList}\n onClick={() => chain().toggleTaskList().run()}\n icon={<CheckListIcon />}\n />\n )}\n </ToolbarBlock>\n <ToolbarDivider />\n </>\n )}\n\n {/* Alignment */}\n {hasAnyInGroup('alignLeft', 'alignCenter', 'alignRight', 'alignJustify') && (\n <>\n <ToolbarBlock>\n {has('alignLeft') && (\n <ToolbarItem\n aria-label={labels.alignLeft}\n active={state.isAlign('left')}\n className={editorClasses.toolbar.alignLeft}\n onClick={() => chain().setTextAlign('left').run()}\n icon={<AlignLeftIcon />}\n />\n )}\n {has('alignCenter') && (\n <ToolbarItem\n aria-label={labels.alignCenter}\n active={state.isAlign('center')}\n className={editorClasses.toolbar.alignCenter}\n onClick={() => chain().setTextAlign('center').run()}\n icon={<AlignCenterIcon />}\n />\n )}\n {has('alignRight') && (\n <ToolbarItem\n aria-label={labels.alignRight}\n active={state.isAlign('right')}\n className={editorClasses.toolbar.alignRight}\n onClick={() => chain().setTextAlign('right').run()}\n icon={<AlignRightIcon />}\n />\n )}\n {has('alignJustify') && (\n <ToolbarItem\n aria-label={labels.alignJustify}\n active={state.isAlign('justify')}\n className={editorClasses.toolbar.alignJustify}\n onClick={() => chain().setTextAlign('justify').run()}\n icon={<AlignJustifyIcon />}\n />\n )}\n </ToolbarBlock>\n <ToolbarDivider />\n </>\n )}\n\n {/* Block elements */}\n {hasAnyInGroup('blockquote', 'codeBlock', 'horizontalRule') && (\n <>\n <ToolbarBlock>\n {has('blockquote') && (\n <ToolbarItem\n aria-label={labels.blockquote}\n active={state.isBlockquote}\n className={editorClasses.toolbar.blockquote}\n onClick={() => chain().toggleBlockquote().run()}\n icon={<QuoteIcon />}\n />\n )}\n {has('codeBlock') && (\n <ToolbarItem\n aria-label={labels.codeBlock}\n active={state.isCodeBlock}\n className={editorClasses.toolbar.codeBlock}\n onClick={() => chain().toggleCodeBlock().run()}\n icon={<CodeBlockIcon />}\n />\n )}\n {has('horizontalRule') && (\n <ToolbarItem\n aria-label={labels.horizontalRule}\n className={editorClasses.toolbar.hr}\n onClick={() => chain().setHorizontalRule().run()}\n icon={<HorizontalRuleIcon />}\n />\n )}\n </ToolbarBlock>\n <ToolbarDivider />\n </>\n )}\n\n {/* Link & Image */}\n {hasAnyInGroup('link', 'image') && (\n <>\n <ToolbarBlock>\n {has('link') && (\n <LinkBlock labels={labels} editor={editor} active={state.isLink} linkIcon={<LinkIcon />} unlinkIcon={<UnlinkIcon />} />\n )}\n {has('image') && <ImageBlock labels={labels} editor={editor} icon={<ImageIcon />} />}\n </ToolbarBlock>\n <ToolbarDivider />\n </>\n )}\n\n {/* Utilities */}\n {hasAnyInGroup('hardBreak', 'clearFormat') && (\n <>\n <ToolbarBlock>\n {has('hardBreak') && (\n <ToolbarItem\n aria-label={labels.hardBreak}\n className={editorClasses.toolbar.hardBreak}\n onClick={() => chain().setHardBreak().run()}\n icon={<HardBreakIcon />}\n />\n )}\n {has('clearFormat') && (\n <ToolbarItem\n aria-label={labels.clearFormat}\n className={editorClasses.toolbar.clear}\n onClick={() => chain().clearNodes().unsetAllMarks().run()}\n icon={<ClearMarksIcon />}\n />\n )}\n </ToolbarBlock>\n <ToolbarDivider />\n </>\n )}\n\n {/* Undo/Redo */}\n {hasAnyInGroup('undo', 'redo') && (\n <>\n <ToolbarBlock>\n {has('undo') && (\n <ToolbarItem\n aria-label={labels.undo}\n disabled={!state.canUndo}\n className={editorClasses.toolbar.undo}\n onClick={() => chain().undo().run()}\n icon={<UndoIcon />}\n />\n )}\n {has('redo') && (\n <ToolbarItem\n aria-label={labels.redo}\n disabled={!state.canRedo}\n className={editorClasses.toolbar.redo}\n onClick={() => chain().redo().run()}\n icon={<RedoIcon />}\n />\n )}\n </ToolbarBlock>\n <ToolbarDivider />\n </>\n )}\n\n {/* Fullscreen */}\n {has('fullscreen') && (\n <ToolbarBlock>\n <ToolbarItem\n aria-label={fullscreen ? labels.exitFullscreen : labels.fullscreen}\n active={fullscreen}\n className={editorClasses.toolbar.fullscreen}\n onClick={onToggleFullscreen}\n icon={fullscreen ? <ExitFullscreenIcon /> : <FullscreenIcon />}\n />\n </ToolbarBlock>\n )}\n </ToolbarRoot>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Styled\n// ---------------------------------------------------------------------------\n\nconst ToolbarRoot = styled('div')(({ theme }) => ({\n flexWrap: 'wrap',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(1),\n padding: theme.spacing(1.25),\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n backgroundColor: theme.palette.background.paper,\n borderBottom: `solid 1px ${alpha(theme.palette.grey[500], 0.2)}`,\n}));\n\nconst ToolbarBlock = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}));\n\nfunction ToolbarDivider() {\n return <Divider orientation=\"vertical\" flexItem sx={{ height: 16, my: 'auto' }} />;\n}\n","import type { Editor } from '@tiptap/react';\nimport type { EditorLabels } from '../types.js';\n\nimport { BubbleMenu } from '@tiptap/react/menus';\nimport Divider from '@mui/material/Divider';\nimport { alpha, styled } from '@mui/material/styles';\n\nimport { editorClasses } from '../classes.js';\nimport { ToolbarItem } from './toolbar-item.js';\nimport { LinkBlock } from './link-block.js';\nimport { useToolbarState } from './use-toolbar-state.js';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n StrikeIcon,\n LinkIcon,\n UnlinkIcon,\n ClearMarksIcon,\n} from '../icons/index.js';\n\ninterface BubbleToolbarProps {\n editor: Editor;\n labels: EditorLabels;\n}\n\nexport function BubbleToolbar({ editor, labels }: BubbleToolbarProps) {\n const state = useToolbarState(editor);\n const chain = () => editor.chain().focus();\n\n return (\n <BubbleMenu editor={editor}>\n <BubbleRoot>\n <ToolbarItem\n aria-label={labels.bold}\n active={state.isBold}\n className={editorClasses.toolbar.bold}\n onClick={() => chain().toggleBold().run()}\n icon={<BoldIcon />}\n />\n <ToolbarItem\n aria-label={labels.italic}\n active={state.isItalic}\n className={editorClasses.toolbar.italic}\n onClick={() => chain().toggleItalic().run()}\n icon={<ItalicIcon />}\n />\n <ToolbarItem\n aria-label={labels.underline}\n active={state.isUnderline}\n className={editorClasses.toolbar.underline}\n onClick={() => chain().toggleUnderline().run()}\n icon={<UnderlineIcon />}\n />\n <ToolbarItem\n aria-label={labels.strike}\n active={state.isStrike}\n className={editorClasses.toolbar.strike}\n onClick={() => chain().toggleStrike().run()}\n icon={<StrikeIcon />}\n />\n <LinkBlock labels={labels} editor={editor} active={state.isLink} linkIcon={<LinkIcon />} unlinkIcon={<UnlinkIcon />} />\n <Divider orientation=\"vertical\" flexItem sx={{ height: 16, my: 'auto' }} />\n <ToolbarItem\n aria-label={labels.clearFormat}\n className={editorClasses.toolbar.clear}\n onClick={() => chain().clearNodes().unsetAllMarks().run()}\n icon={<ClearMarksIcon />}\n />\n </BubbleRoot>\n </BubbleMenu>\n );\n}\n\nconst BubbleRoot = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(0.5),\n padding: theme.spacing(0.5),\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[8],\n backgroundColor: theme.palette.background.paper,\n border: `1px solid ${alpha(theme.palette.grey[500], 0.16)}`,\n}));\n","import type { ReactNodeViewProps } from '@tiptap/react';\n\nimport { useCallback } from 'react';\nimport { NodeViewContent, NodeViewWrapper } from '@tiptap/react';\n\nimport { editorClasses } from '../classes.js';\nimport { DEFAULT_EDITOR_LABELS } from '../types.js';\n\nexport function CodeHighlightBlock(props: ReactNodeViewProps) {\n const { node, extension, updateAttributes } = props;\n const language = node.attrs.language;\n const lowlight = extension.options.lowlight;\n // A node view is rendered by the extension, not by the toolbar, so the\n // label reaches it through the extension's options — the same door the\n // lowlight instance comes through. The default keeps the previous word for\n // anyone configuring the extension directly.\n const autoLabel: string = extension.options.autoLanguageLabel ?? DEFAULT_EDITOR_LABELS.codeLanguageAuto;\n\n const handleChangeLanguage = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n updateAttributes({ language: event.target.value });\n },\n [updateAttributes]\n );\n\n return (\n <NodeViewWrapper className={editorClasses.content.codeBlock}>\n <select\n name=\"language\"\n contentEditable={false}\n value={language || 'null'}\n onChange={handleChangeLanguage}\n className={editorClasses.content.langSelect}\n >\n <option value=\"null\">{autoLabel}</option>\n <option disabled>—</option>\n {lowlight.listLanguages().map((lang: string) => (\n <option key={lang} value={lang}>\n {lang}\n </option>\n ))}\n </select>\n <pre>\n <NodeViewContent<'code'> as=\"code\" />\n </pre>\n </NodeViewWrapper>\n );\n}\n","import { Extension } from '@tiptap/core';\n\nexport const ClearFormat = Extension.create({\n name: 'clearFormat',\n addKeyboardShortcuts() {\n return {\n 'Mod-Shift-X': ({ editor }) => editor.chain().focus().clearNodes().unsetAllMarks().run(),\n };\n },\n});\n","import type { CommandProps } from '@tiptap/core';\n\nimport { Mark } from '@tiptap/core';\n\nexport type TextTransformValue = 'uppercase' | 'lowercase' | 'capitalize';\n\nexport interface TextTransformOptions {\n allowedValues: TextTransformValue[];\n defaultValue?: TextTransformValue;\n}\n\nexport interface TextTransformAttributes {\n textTransform?: TextTransformValue;\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n textTransform: {\n unsetTextTransform: () => ReturnType;\n setTextTransform: (value: TextTransformValue) => ReturnType;\n toggleTextTransform: (value: TextTransformValue) => ReturnType;\n };\n }\n}\n\nconst isHTMLElement = (node: unknown): node is HTMLElement => node instanceof HTMLElement;\n\nconst isValidTextTransform = (value: unknown, allowed: readonly TextTransformValue[]): value is TextTransformValue =>\n typeof value === 'string' && allowed.includes(value as TextTransformValue);\n\nexport const TextTransform = Mark.create<TextTransformOptions, TextTransformAttributes>({\n name: 'textTransform',\n\n addOptions() {\n return {\n allowedValues: ['uppercase', 'lowercase', 'capitalize'],\n defaultValue: undefined,\n };\n },\n\n addAttributes() {\n return {\n textTransform: {\n default: this.options.defaultValue,\n parseHTML: (element): TextTransformValue | undefined => {\n if (!isHTMLElement(element)) return undefined;\n const rawValue =\n element.style.textTransform || element.getAttribute('style')?.match(/text-transform:\\s*(\\w+)/)?.[1];\n return isValidTextTransform(rawValue, this.options.allowedValues) ? rawValue : undefined;\n },\n renderHTML: (attributes: TextTransformAttributes): Record<string, string> => {\n if (!attributes.textTransform) return {};\n return { style: `text-transform: ${attributes.textTransform}` };\n },\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[style]',\n getAttrs: (node) => {\n if (!isHTMLElement(node)) return null;\n const styleValue = node.style.textTransform;\n return isValidTextTransform(styleValue, this.options.allowedValues) ? {} : false;\n },\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['span', HTMLAttributes, 0];\n },\n\n addCommands() {\n return {\n setTextTransform:\n (value: TextTransformValue) =>\n ({ commands }: CommandProps): boolean => {\n if (!isValidTextTransform(value, this.options.allowedValues)) return false;\n return commands.setMark(this.name, { textTransform: value });\n },\n unsetTextTransform:\n () =>\n ({ commands }: CommandProps): boolean =>\n commands.unsetMark(this.name),\n toggleTextTransform:\n (value: TextTransformValue) =>\n ({ editor, commands }: CommandProps): boolean => {\n if (!isValidTextTransform(value, this.options.allowedValues)) return false;\n const isActive = editor.isActive(this.name, { textTransform: value });\n return isActive ? commands.unsetTextTransform() : commands.setTextTransform(value);\n },\n };\n },\n});\n","import type { EditorProps } from './types.js';\nimport { DEFAULT_EDITOR_LABELS } from './types.js';\n\nimport { useMemo, useState, useEffect, useCallback } from 'react';\nimport { common, createLowlight } from 'lowlight';\nimport StarterKitExtension from '@tiptap/starter-kit';\nimport UnderlineExtension from '@tiptap/extension-underline';\nimport TextAlignExtension from '@tiptap/extension-text-align';\nimport ImageExtension from '@tiptap/extension-image';\nimport LinkExtension from '@tiptap/extension-link';\nimport PlaceholderExtension from '@tiptap/extension-placeholder';\nimport TaskListExtension from '@tiptap/extension-task-list';\nimport TaskItemExtension from '@tiptap/extension-task-item';\nimport CodeBlockLowlightExtension, {\n type CodeBlockLowlightOptions,\n} from '@tiptap/extension-code-block-lowlight';\nimport { useEditor, EditorContent, ReactNodeViewRenderer } from '@tiptap/react';\n\nimport Box from '@mui/material/Box';\nimport Portal from '@mui/material/Portal';\nimport Backdrop from '@mui/material/Backdrop';\nimport FormHelperText from '@mui/material/FormHelperText';\n\nimport { editorClasses } from './classes.js';\nimport { EditorRoot } from './styles.js';\nimport { resolveToolbar } from './presets.js';\nimport { Toolbar } from './toolbar/toolbar.js';\nimport { BubbleToolbar } from './toolbar/bubble-toolbar.js';\nimport { CodeHighlightBlock } from './toolbar/code-highlight-block.js';\nimport { ClearFormat } from './extensions/clear-format.js';\nimport { TextTransform } from './extensions/text-transform.js';\n\n/**\n * PrismEditor — configurable rich text editor built on TipTap.\n *\n * Use `toolbar` prop to select a preset or provide custom toolbar items:\n * - `\"full\"` — CMS pages, blog articles (all features)\n * - `\"standard\"` — blog posts, forums (default)\n * - `\"compact\"` — comments, replies\n * - `\"minimal\"` — short feedback\n * - `\"chat\"` — messaging\n * - `\"inline\"` — no toolbar (titles, captions)\n * - `{ items: [...], bubbleMenu: true }` — custom\n */\nexport function Editor({\n sx,\n error,\n onChange,\n slotProps,\n helperText,\n resetValue,\n className,\n toolbar: toolbarConfig,\n bubbleMenu: bubbleMenuProp,\n format = 'json',\n minHeight = 160,\n maxHeight,\n editable = true,\n extraExtensions,\n placeholder = 'Write something...',\n labels: labelOverrides,\n ref: contentRef,\n value: initialContent = '',\n ...other\n}: EditorProps) {\n const [fullscreen, setFullscreen] = useState(false);\n const [rerenderKey, setRerenderKey] = useState(0);\n\n const resolvedToolbar = useMemo(() => resolveToolbar(toolbarConfig), [toolbarConfig]);\n const showBubbleMenu = bubbleMenuProp ?? resolvedToolbar.bubbleMenu;\n const showToolbar = resolvedToolbar.items.size > 0;\n\n const lowlight = useMemo(() => createLowlight(common), []);\n\n // Merged once per identity change so the toolbar's props stay stable.\n const labels = useMemo(\n () => ({ ...DEFAULT_EDITOR_LABELS, ...labelOverrides }),\n [labelOverrides],\n );\n\n // Parse initial content — if format is 'json' and value looks like JSON, parse it\n const parsedContent = useMemo(() => {\n if (!initialContent) return '';\n if (format === 'json' && initialContent.startsWith('{')) {\n try {\n return JSON.parse(initialContent);\n } catch {\n return initialContent;\n }\n }\n return initialContent;\n }, [initialContent, format]);\n\n const debouncedOnChange = useMemo(() => {\n let timer: ReturnType<typeof setTimeout>;\n return (editor: any) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n if (format === 'json') {\n onChange?.(JSON.stringify(editor.getJSON()));\n } else {\n onChange?.(editor.getHTML());\n }\n }, 200);\n };\n }, [onChange, format]);\n\n const extensions = useMemo(() => {\n const has = (item: string) => resolvedToolbar.items.has(item as any);\n const exts: any[] = [\n StarterKitExtension.configure({\n codeBlock: false,\n // Underline and Link are registered separately (below) to allow per-preset control\n underline: false,\n link: false,\n code: has('code') ? { HTMLAttributes: { class: editorClasses.content.codeInline } } : false,\n heading: has('heading') ? { HTMLAttributes: { class: editorClasses.content.heading } } : false,\n horizontalRule: has('horizontalRule') ? { HTMLAttributes: { class: editorClasses.content.hr } } : false,\n listItem: { HTMLAttributes: { class: editorClasses.content.listItem } },\n blockquote: has('blockquote') ? { HTMLAttributes: { class: editorClasses.content.blockquote } } : false,\n bulletList: has('bulletList') ? { HTMLAttributes: { class: editorClasses.content.bulletList } } : false,\n orderedList: has('orderedList') ? { HTMLAttributes: { class: editorClasses.content.orderedList } } : false,\n }),\n PlaceholderExtension.configure({\n placeholder,\n emptyEditorClass: editorClasses.content.placeholder,\n }),\n ClearFormat,\n TextTransform,\n ];\n\n if (has('underline')) {\n exts.push(UnderlineExtension);\n }\n\n if (has('alignLeft') || has('alignCenter') || has('alignRight') || has('alignJustify')) {\n exts.push(TextAlignExtension.configure({ types: ['heading', 'paragraph'] }));\n }\n\n if (has('image')) {\n exts.push(ImageExtension.configure({ HTMLAttributes: { class: editorClasses.content.image } }));\n }\n\n if (has('link')) {\n exts.push(\n LinkExtension.configure({\n openOnClick: false,\n HTMLAttributes: { class: editorClasses.content.link },\n })\n );\n }\n\n if (has('codeBlock')) {\n exts.push(\n CodeBlockLowlightExtension.extend<\n CodeBlockLowlightOptions & { autoLanguageLabel: string }\n >({\n addOptions() {\n const inherited = this.parent?.() as CodeBlockLowlightOptions;\n return { ...inherited, autoLanguageLabel: DEFAULT_EDITOR_LABELS.codeLanguageAuto };\n },\n addNodeView: () => ReactNodeViewRenderer(CodeHighlightBlock),\n }).configure({ lowlight, autoLanguageLabel: labels.codeLanguageAuto })\n );\n }\n\n if (has('taskList')) {\n exts.push(\n TaskListExtension.configure({ HTMLAttributes: { class: editorClasses.content.taskList } }),\n TaskItemExtension.configure({\n nested: true,\n HTMLAttributes: { class: editorClasses.content.taskItem },\n })\n );\n }\n\n if (extraExtensions) {\n exts.push(...extraExtensions);\n }\n\n return exts;\n // `labels` is a dependency because the code block's language picker is a\n // node view: its word lives in the extension, so a language switch has to\n // rebuild the extensions to reach it.\n }, [resolvedToolbar, placeholder, lowlight, extraExtensions, labels]);\n\n const editor = useEditor({\n editable,\n immediatelyRender: false,\n content: parsedContent,\n shouldRerenderOnTransaction: !!rerenderKey,\n onUpdate: (ctx) => {\n debouncedOnChange(ctx.editor);\n },\n extensions,\n ...other,\n });\n\n // Fullscreen handlers\n const handleToggleFullscreen = useCallback(() => {\n editor?.unmount();\n setFullscreen((prev) => !prev);\n setRerenderKey((prev) => prev + 1);\n }, [editor]);\n\n const handleExitFullscreen = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n editor?.unmount();\n setFullscreen(false);\n setRerenderKey((prev) => prev + 1);\n }\n },\n [editor]\n );\n\n // Sync content from outside\n useEffect(() => {\n const timer = setTimeout(() => {\n if (!editor?.isDestroyed && editor?.isEmpty && parsedContent && parsedContent !== '<p></p>') {\n editor?.commands.setContent(parsedContent);\n }\n }, 200);\n return () => clearTimeout(timer);\n }, [parsedContent, editor]);\n\n // Reset support\n useEffect(() => {\n if (resetValue && !initialContent) {\n editor?.commands.clearContent();\n }\n }, [initialContent, resetValue, editor]);\n\n // Fullscreen ESC listener\n useEffect(() => {\n if (!fullscreen) return undefined;\n document.body.style.overflow = 'hidden';\n window.addEventListener('keydown', handleExitFullscreen);\n return () => {\n document.body.style.overflow = '';\n window.removeEventListener('keydown', handleExitFullscreen);\n };\n }, [fullscreen, handleExitFullscreen]);\n\n const rootClassName = [\n editorClasses.root,\n className,\n error && editorClasses.state.error,\n !editable && editorClasses.state.disabled,\n fullscreen && editorClasses.state.fullscreen,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <Portal disablePortal={!fullscreen}>\n {fullscreen && <Backdrop open sx={(theme) => ({ zIndex: theme.zIndex.modal - 1 })} />}\n\n <Box\n {...slotProps?.wrapper}\n sx={[\n { display: 'flex', flexDirection: 'column' },\n ...(Array.isArray(slotProps?.wrapper?.sx) ? slotProps.wrapper.sx : [slotProps?.wrapper?.sx]),\n ]}\n >\n <EditorRoot className={rootClassName} sx={[{ minHeight }, ...(Array.isArray(sx) ? sx : [sx])]}>\n {editor && !editor.isDestroyed && (\n <>\n {showToolbar && (\n <Toolbar\n labels={labels}\n editor={editor}\n toolbar={resolvedToolbar}\n fullscreen={fullscreen}\n onToggleFullscreen={handleToggleFullscreen}\n />\n )}\n {showBubbleMenu && <BubbleToolbar editor={editor} labels={labels} />}\n <EditorContent\n ref={contentRef}\n spellCheck={false}\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n editor={editor}\n className={editorClasses.content.root}\n style={maxHeight ? { maxHeight, overflowY: 'auto' } : undefined}\n />\n </>\n )}\n </EditorRoot>\n\n {helperText && <FormHelperText error={!!error}>{helperText}</FormHelperText>}\n </Box>\n </Portal>\n );\n}\n"]}
@@ -24,11 +24,37 @@ function createPrismStore(initializer, options) {
24
24
  function createUIStore(initializer, name) {
25
25
  return createPrismStore(initializer, { name, persist: false });
26
26
  }
27
+ function mergeCompatibleFields(persisted, current) {
28
+ if (!persisted || typeof persisted !== "object") return current;
29
+ const stored = persisted;
30
+ const merged = { ...current };
31
+ for (const [key, value] of Object.entries(stored)) {
32
+ if (!(key in merged)) continue;
33
+ const currentValue = merged[key];
34
+ if (typeof currentValue === "function") continue;
35
+ if (currentValue === void 0 || currentValue === null) {
36
+ merged[key] = value;
37
+ continue;
38
+ }
39
+ if (value === null || value === void 0) continue;
40
+ const sameShape = typeof value === typeof currentValue && Array.isArray(value) === Array.isArray(currentValue);
41
+ if (sameShape) merged[key] = value;
42
+ }
43
+ return merged;
44
+ }
27
45
  function createPersistedStore(initializer, name, persistOptions) {
28
46
  return createPrismStore(initializer, {
29
47
  name,
30
48
  persist: {
31
49
  version: 1,
50
+ // Two hooks, and both are needed. `migrate` runs only on a version
51
+ // mismatch and decides whether the stored state survives at all —
52
+ // returning it unchanged is what stops zustand discarding it. `merge`
53
+ // runs every load and decides how it combines with the current
54
+ // defaults; zustand's own is a shallow spread, which would let a
55
+ // stored field of the wrong shape overwrite a good default.
56
+ migrate: (persisted) => persisted,
57
+ merge: (persisted, current) => mergeCompatibleFields(persisted, current),
32
58
  storage: {
33
59
  getItem: (key) => {
34
60
  try {
@@ -135,5 +161,5 @@ function getDefaultSettings() {
135
161
  }
136
162
 
137
163
  export { createPersistedStore, createPrismStore, createSelectors, createUIStore, getDefaultSettings, settingsStore, useSettingsStore };
138
- //# sourceMappingURL=chunk-DDY7TLUI.js.map
139
- //# sourceMappingURL=chunk-DDY7TLUI.js.map
164
+ //# sourceMappingURL=chunk-XIXSSI3B.js.map
165
+ //# sourceMappingURL=chunk-XIXSSI3B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/state/create-store.ts","../src/state/stores/settings.ts"],"names":[],"mappings":"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","file":"chunk-XIXSSI3B.js","sourcesContent":["/**\n * Prism Store Factory\n *\n * Creates Zustand stores with sensible defaults:\n * - Immer middleware for immutable updates\n * - DevTools integration\n * - Optional persistence\n *\n * @module @omnitron-dev/prism/state\n */\n\nimport { create, type StateCreator, type StoreApi, type UseBoundStore } from 'zustand';\nimport { devtools, persist, type PersistOptions, type DevtoolsOptions } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\n\n/**\n * Options for creating a Prism store.\n */\nexport interface CreateStoreOptions<T> {\n /** Store name for DevTools and persistence */\n name: string;\n /** Enable persistence to localStorage */\n persist?: boolean | Partial<PersistOptions<T>>;\n /** Enable Redux DevTools (default: true in development) */\n devtools?: boolean;\n}\n\n/**\n * Middleware type helpers for proper typing.\n */\ntype ImmerMiddleware = ['zustand/immer', never];\ntype DevtoolsMiddleware = ['zustand/devtools', never];\ntype PersistMiddleware<T> = ['zustand/persist', T];\n\n/**\n * Creates a Zustand store with Prism defaults.\n *\n * @example\n * ```typescript\n * interface CounterState {\n * count: number;\n * increment: () => void;\n * decrement: () => void;\n * }\n *\n * export const useCounterStore = createPrismStore<CounterState>(\n * (set) => ({\n * count: 0,\n * increment: () => set((state) => { state.count += 1; }),\n * decrement: () => set((state) => { state.count -= 1; }),\n * }),\n * { name: 'counter', persist: true }\n * );\n * ```\n */\n/**\n * A store that persists — the return type of `createPersistedStore`.\n *\n * Narrower than `createPrismStore`'s union: the `persist` API is guaranteed,\n * because this factory always installs the middleware.\n */\nexport type PersistedStore<T extends object> = UseBoundStore<StoreApi<T>> & {\n persist: {\n hasHydrated: () => boolean;\n rehydrate: () => Promise<void> | void;\n clearStorage: () => void;\n setOptions: (options: Partial<PersistOptions<T>>) => void;\n onHydrate: (fn: (state: T) => void) => () => void;\n onFinishHydration: (fn: (state: T) => void) => () => void;\n getOptions: () => Partial<PersistOptions<T>>;\n };\n};\n\nexport function createPrismStore<T extends object>(\n initializer: StateCreator<T, [ImmerMiddleware], []>,\n options: CreateStoreOptions<T>\n) {\n const { name, persist: persistOption, devtools: devtoolsOption = true } = options;\n const enableDevtools = devtoolsOption && typeof window !== 'undefined';\n\n // Prepare persist config\n const persistConfig: PersistOptions<T> | null = persistOption\n ? {\n name: `prism-${name}`,\n ...(typeof persistOption === 'object' ? persistOption : {}),\n }\n : null;\n\n // Prepare devtools config\n const devtoolsConfig: DevtoolsOptions = { name: `Prism:${name}` };\n\n // Create store based on which middleware are enabled\n // Using explicit middleware chains for proper type inference\n if (persistConfig && enableDevtools) {\n return create<T>()(devtools(persist(immer(initializer), persistConfig), devtoolsConfig));\n }\n\n if (persistConfig) {\n return create<T>()(persist(immer(initializer), persistConfig));\n }\n\n if (enableDevtools) {\n return create<T>()(devtools(immer(initializer), devtoolsConfig));\n }\n\n // No middleware except immer\n return create<T>()(immer(initializer));\n}\n\n/**\n * Creates a simple store without persistence (for UI-only state).\n */\nexport function createUIStore<T extends object>(initializer: StateCreator<T, [ImmerMiddleware], []>, name: string) {\n return createPrismStore(initializer, { name, persist: false });\n}\n\n/**\n * Merge a persisted state written under an older version into the current one.\n *\n * zustand's default when a version differs and no `migrate` is supplied is to\n * discard the stored state entirely and fall back to defaults — it logs\n * \"State loaded from storage couldn't be migrated since no migrate function\n * was provided\" to the console and moves on. In a browser that message is\n * seen by nobody, and what the user sees is their theme, layout, density and\n * language silently back at factory settings after an update that had nothing\n * to do with any of them.\n *\n * Discarding is the safe default for a library that cannot know what changed.\n * It is the wrong default here, because these stores hold preferences: the\n * cost of keeping a value that no longer means anything is one wrong setting,\n * and the cost of dropping everything is every setting.\n *\n * So: keep each stored key whose name still exists in the current defaults\n * AND whose type still matches. A field that was removed is dropped, a field\n * that changed shape is replaced by the new default, everything else\n * survives. A store needing more than that passes its own `migrate` — this\n * only fills in where none was given.\n */\nfunction mergeCompatibleFields<T extends object>(persisted: unknown, current: T): T {\n if (!persisted || typeof persisted !== 'object') return current;\n\n const stored = persisted as Record<string, unknown>;\n const merged = { ...current } as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(stored)) {\n if (!(key in merged)) continue; // field is gone\n const currentValue = merged[key];\n if (typeof currentValue === 'function') continue; // actions are not state\n if (currentValue === undefined || currentValue === null) {\n merged[key] = value;\n continue;\n }\n if (value === null || value === undefined) continue; // keep the default\n // Same primitive type, or both plain objects / both arrays.\n const sameShape =\n typeof value === typeof currentValue &&\n Array.isArray(value) === Array.isArray(currentValue);\n if (sameShape) merged[key] = value;\n }\n\n return merged as T;\n}\n\n/**\n * Creates a persisted store (for settings, preferences).\n *\n * Includes a storage wrapper that catches errors from localStorage\n * (e.g., private browsing, quota exceeded) and falls back gracefully, and a\n * default `migrate` that preserves settings across a version bump — see\n * `mergeCompatibleFields`.\n */\nexport function createPersistedStore<T extends object>(\n initializer: StateCreator<T, [ImmerMiddleware], []>,\n name: string,\n persistOptions?: Partial<PersistOptions<T>>\n): PersistedStore<T> {\n // `createPrismStore` decides its middleware chain at runtime (devtools are\n // enabled only in a browser), so its return type is a union in which one\n // branch carries no `persist` API. This function always persists — the\n // whole of its contract — and callers need `persist.hasHydrated()` and\n // `persist.rehydrate()`. Stating the narrower type here is what makes\n // those reachable; without it a caller has to cast, which is how a store\n // that does not persist would look identical to one that does.\n return createPrismStore(initializer, {\n name,\n persist: {\n version: 1,\n // Two hooks, and both are needed. `migrate` runs only on a version\n // mismatch and decides whether the stored state survives at all —\n // returning it unchanged is what stops zustand discarding it. `merge`\n // runs every load and decides how it combines with the current\n // defaults; zustand's own is a shallow spread, which would let a\n // stored field of the wrong shape overwrite a good default.\n migrate: (persisted: unknown) => persisted as T,\n merge: (persisted: unknown, current: T) => mergeCompatibleFields(persisted, current),\n storage: {\n getItem: (key) => {\n try {\n const value = localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch {\n return null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // Silently fail (private browsing, quota exceeded)\n }\n },\n removeItem: (key) => {\n try {\n localStorage.removeItem(key);\n } catch {\n // Silently fail\n }\n },\n },\n ...persistOptions,\n },\n }) as PersistedStore<T>;\n}\n\n/**\n * Selector type for store state.\n */\nexport type StoreSelector<T, U> = (state: T) => U;\n\n/**\n * Helper to create typed selectors for a store.\n *\n * @example\n * ```typescript\n * const selectors = createSelectors(useUserStore);\n * const userName = selectors.use.name();\n * ```\n */\nexport function createSelectors<T extends object>(store: UseBoundStore<StoreApi<T>>) {\n const storeIn = store as UseBoundStore<StoreApi<T>> & {\n use: { [K in keyof T]: () => T[K] };\n };\n\n // Use Proxy so selectors work for dynamically added state keys,\n // not just keys present at creation time\n storeIn.use = new Proxy({} as { [K in keyof T]: () => T[K] }, {\n get: (_target, prop: string | symbol) => {\n if (typeof prop !== 'string') return undefined;\n return () => store((state: T) => state[prop as keyof T]);\n },\n });\n\n return storeIn;\n}\n","/**\n * Settings Store\n *\n * Comprehensive settings management with persistence.\n * Combines theme preferences with layout and navigation settings.\n *\n * @module state/stores/settings\n */\n\nimport { createPersistedStore, createSelectors } from '../create-store.js';\nimport type { ThemePreset, ThemeMode, ThemeDirection, ComponentDensity } from '../../types/theme.js';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Navigation layout options for dashboard.\n */\nexport type NavLayout = 'vertical' | 'horizontal' | 'mini';\n\n/**\n * Navigation color scheme.\n */\nexport type NavColor = 'integrate' | 'apparent';\n\n/**\n * Settings state and actions.\n */\nexport interface SettingsState {\n // Theme\n /** Current theme mode */\n mode: ThemeMode;\n /** Current theme preset */\n preset: ThemePreset;\n /** Primary color override (hex) */\n primaryColor: string | null;\n /** High contrast mode */\n contrast: 'default' | 'high';\n /** Text direction */\n direction: ThemeDirection;\n\n // Typography\n /** Base font size (12-20) */\n fontSize: number;\n /** Font family override */\n fontFamily: string | null;\n\n // Layout\n /** Component density */\n density: ComponentDensity;\n /** Compact sidebar (deprecated — use sidebarCollapsed) */\n compactSidebar: boolean;\n /** Per-layout sidebar collapsed state (keyed by persistKey) */\n sidebarCollapsed: Record<string, boolean>;\n /** Dashboard navigation layout */\n navLayout: NavLayout;\n /** Navigation color scheme */\n navColor: NavColor;\n /** Stretch content to full width */\n stretch: boolean;\n\n /** Per-table rows-per-page preference (keyed by table ID) */\n tableRowsPerPage: Record<string, number>;\n\n // Actions\n setMode: (mode: ThemeMode) => void;\n toggleMode: () => void;\n setPreset: (preset: ThemePreset) => void;\n setPrimaryColor: (color: string | null) => void;\n setContrast: (contrast: 'default' | 'high') => void;\n setDirection: (direction: ThemeDirection) => void;\n setFontSize: (size: number) => void;\n setFontFamily: (family: string | null) => void;\n setDensity: (density: ComponentDensity) => void;\n setCompactSidebar: (compact: boolean) => void;\n setSidebarCollapsed: (key: string, collapsed: boolean) => void;\n getSidebarCollapsed: (key: string) => boolean;\n setNavLayout: (layout: NavLayout) => void;\n setNavColor: (color: NavColor) => void;\n setStretch: (stretch: boolean) => void;\n setTableRowsPerPage: (tableId: string, rows: number) => void;\n getTableRowsPerPage: (tableId: string, fallback?: number) => number;\n updateSettings: (updates: Partial<SettingsValues>) => void;\n reset: () => void;\n canReset: () => boolean;\n}\n\n/**\n * Settings values (state without actions).\n */\nexport type SettingsValues = Omit<\n SettingsState,\n | 'setMode'\n | 'toggleMode'\n | 'setPreset'\n | 'setPrimaryColor'\n | 'setContrast'\n | 'setDirection'\n | 'setFontSize'\n | 'setFontFamily'\n | 'setDensity'\n | 'setCompactSidebar'\n | 'setSidebarCollapsed'\n | 'getSidebarCollapsed'\n | 'setNavLayout'\n | 'setNavColor'\n | 'setStretch'\n | 'setTableRowsPerPage'\n | 'getTableRowsPerPage'\n | 'updateSettings'\n | 'reset'\n | 'canReset'\n>;\n\n// =============================================================================\n// DEFAULT STATE\n// =============================================================================\n\nconst defaultSettings: SettingsValues = {\n // Theme\n mode: 'light',\n preset: 'default-light',\n primaryColor: null,\n contrast: 'default',\n direction: 'ltr',\n\n // Typography\n fontSize: 16,\n fontFamily: null, // null = use Prism default (Nunito Sans Variable)\n\n // Layout\n density: 'standard',\n compactSidebar: false,\n sidebarCollapsed: {},\n navLayout: 'vertical',\n navColor: 'integrate',\n stretch: true,\n tableRowsPerPage: {},\n};\n\n// =============================================================================\n// STORE\n// =============================================================================\n\n/**\n * Settings store with persistence.\n *\n * @example\n * ```tsx\n * function SettingsPanel() {\n * const { mode, setMode, preset, setPreset, canReset, reset } = useSettingsStore();\n *\n * return (\n * <div>\n * <Switch checked={mode === 'dark'} onChange={() => setMode(mode === 'dark' ? 'light' : 'dark')} />\n * <Select value={preset} onChange={(e) => setPreset(e.target.value as ThemePreset)}>\n * <MenuItem value=\"default-light\">Light</MenuItem>\n * <MenuItem value=\"luxury\">Luxury</MenuItem>\n * </Select>\n * {canReset() && <Button onClick={reset}>Reset</Button>}\n * </div>\n * );\n * }\n * ```\n */\nexport const useSettingsStore = createPersistedStore<SettingsState>(\n (set, get) => ({\n ...defaultSettings,\n\n // Theme actions\n setMode: (mode) => set({ mode }),\n toggleMode: () =>\n set((state) => {\n state.mode = state.mode === 'light' ? 'dark' : 'light';\n }),\n setPreset: (preset) => set({ preset }),\n setPrimaryColor: (primaryColor) => set({ primaryColor }),\n setContrast: (contrast) => set({ contrast }),\n setDirection: (direction) => set({ direction }),\n\n // Typography actions\n setFontSize: (fontSize) => set({ fontSize: Math.min(20, Math.max(12, fontSize)) }),\n setFontFamily: (fontFamily) => set({ fontFamily }),\n\n // Layout actions\n setDensity: (density) => set({ density }),\n setCompactSidebar: (compactSidebar) => set({ compactSidebar }),\n setSidebarCollapsed: (key, collapsed) =>\n set((state) => {\n state.sidebarCollapsed = { ...state.sidebarCollapsed, [key]: collapsed };\n }),\n getSidebarCollapsed: (key) => get().sidebarCollapsed[key] ?? false,\n setNavLayout: (navLayout) => set({ navLayout }),\n setNavColor: (navColor) => set({ navColor }),\n setStretch: (stretch) => set({ stretch }),\n setTableRowsPerPage: (tableId, rows) =>\n set((state) => {\n state.tableRowsPerPage = { ...state.tableRowsPerPage, [tableId]: rows };\n }),\n getTableRowsPerPage: (tableId, fallback = 25) => get().tableRowsPerPage[tableId] ?? fallback,\n\n // Batch update\n updateSettings: (updates) => set(updates),\n\n // Reset\n reset: () => set(defaultSettings),\n canReset: () => {\n const state = get();\n return Object.keys(defaultSettings).some(\n (key) => state[key as keyof SettingsValues] !== defaultSettings[key as keyof SettingsValues]\n );\n },\n }),\n 'settings'\n);\n\n/**\n * Settings store with auto-generated selectors.\n *\n * @example\n * ```tsx\n * const mode = settingsStore.use.mode();\n * const preset = settingsStore.use.preset();\n * ```\n */\nexport const settingsStore = createSelectors(useSettingsStore);\n\n/**\n * Get default settings values.\n */\nexport function getDefaultSettings(): SettingsValues {\n return { ...defaultSettings };\n}\n"]}