@omnitron-dev/prism 0.1.3 → 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 +187 -50
  32. package/dist/blocks/index.js.map +1 -1
  33. package/dist/{chunk-UR6X3W5I.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-BTIT7WYH.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-WC2WM2JD.js → chunk-BZOL7GMU.js} +36 -18
  44. package/dist/chunk-BZOL7GMU.js.map +1 -0
  45. package/dist/chunk-DRFNMZLG.js +192 -0
  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-LAEY5USO.js → chunk-OBJ244BO.js} +608 -95
  50. package/dist/chunk-OBJ244BO.js.map +1 -0
  51. package/dist/{chunk-E3XANPTO.js → chunk-S6SEGBX6.js} +32 -209
  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-WFD54GQQ.js +1940 -0
  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-YQW43BDH.js +11978 -0
  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-DXXZ3ITR.js → chunk-ZTATTUH7.js} +851 -500
  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 +35 -41
  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 +44 -0
  232. package/dist/components/editor/index.d.ts.map +1 -0
  233. package/dist/components/editor/index.js +3 -0
  234. package/dist/components/editor/index.js.map +1 -0
  235. package/dist/components/editor/presets.d.ts +3 -0
  236. package/dist/components/editor/presets.d.ts.map +1 -0
  237. package/dist/components/editor/styles.d.ts +2 -0
  238. package/dist/components/editor/styles.d.ts.map +1 -0
  239. package/dist/components/editor/toolbar/bubble-toolbar.d.ts +9 -0
  240. package/dist/components/editor/toolbar/bubble-toolbar.d.ts.map +1 -0
  241. package/dist/components/editor/toolbar/code-highlight-block.d.ts +3 -0
  242. package/dist/components/editor/toolbar/code-highlight-block.d.ts.map +1 -0
  243. package/dist/components/editor/toolbar/heading-block.d.ts +11 -0
  244. package/dist/components/editor/toolbar/heading-block.d.ts.map +1 -0
  245. package/dist/components/editor/toolbar/image-block.d.ts +11 -0
  246. package/dist/components/editor/toolbar/image-block.d.ts.map +1 -0
  247. package/dist/components/editor/toolbar/link-block.d.ts +13 -0
  248. package/dist/components/editor/toolbar/link-block.d.ts.map +1 -0
  249. package/dist/components/editor/toolbar/toolbar-item.d.ts +3 -0
  250. package/dist/components/editor/toolbar/toolbar-item.d.ts.map +1 -0
  251. package/dist/components/editor/toolbar/toolbar.d.ts +3 -0
  252. package/dist/components/editor/toolbar/toolbar.d.ts.map +1 -0
  253. package/dist/components/editor/toolbar/use-toolbar-state.d.ts +24 -0
  254. package/dist/components/editor/toolbar/use-toolbar-state.d.ts.map +1 -0
  255. package/dist/components/editor/types.d.ts +130 -0
  256. package/dist/components/editor/types.d.ts.map +1 -0
  257. package/dist/components/emoji-picker/emoji-picker.d.ts +24 -0
  258. package/dist/components/emoji-picker/emoji-picker.d.ts.map +1 -0
  259. package/dist/components/emoji-picker/emoji-search.d.ts +22 -0
  260. package/dist/components/emoji-picker/emoji-search.d.ts.map +1 -0
  261. package/dist/components/emoji-picker/emoji.d.ts +19 -0
  262. package/dist/components/emoji-picker/emoji.d.ts.map +1 -0
  263. package/dist/components/emoji-picker/index.d.ts +14 -0
  264. package/dist/components/emoji-picker/index.d.ts.map +1 -0
  265. package/dist/components/emoji-picker/index.js +3 -0
  266. package/dist/components/emoji-picker/index.js.map +1 -0
  267. package/dist/components/emoji-picker/twemoji-url.d.ts +26 -0
  268. package/dist/components/emoji-picker/twemoji-url.d.ts.map +1 -0
  269. package/dist/components/emoji-picker/types.d.ts +96 -0
  270. package/dist/components/emoji-picker/types.d.ts.map +1 -0
  271. package/dist/components/emoji-picker/use-emoji-data.d.ts +26 -0
  272. package/dist/components/emoji-picker/use-emoji-data.d.ts.map +1 -0
  273. package/dist/components/emoji-picker/use-recent-emojis.d.ts +16 -0
  274. package/dist/components/emoji-picker/use-recent-emojis.d.ts.map +1 -0
  275. package/dist/components/empty-content/empty-content.d.ts +92 -0
  276. package/dist/components/empty-content/empty-content.d.ts.map +1 -0
  277. package/dist/components/empty-content/index.d.ts +7 -0
  278. package/dist/components/empty-content/index.d.ts.map +1 -0
  279. package/dist/components/error-boundary/error-boundary.d.ts +162 -0
  280. package/dist/components/error-boundary/error-boundary.d.ts.map +1 -0
  281. package/dist/components/error-boundary/index.d.ts +7 -0
  282. package/dist/components/error-boundary/index.d.ts.map +1 -0
  283. package/dist/components/field/field-autocomplete.d.ts +74 -0
  284. package/dist/components/field/field-autocomplete.d.ts.map +1 -0
  285. package/dist/components/field/field-checkbox.d.ts +42 -0
  286. package/dist/components/field/field-checkbox.d.ts.map +1 -0
  287. package/dist/components/field/field-code.d.ts +80 -0
  288. package/dist/components/field/field-code.d.ts.map +1 -0
  289. package/dist/components/field/field-country-select.d.ts +84 -0
  290. package/dist/components/field/field-country-select.d.ts.map +1 -0
  291. package/dist/components/field/field-date-picker.d.ts +58 -0
  292. package/dist/components/field/field-date-picker.d.ts.map +1 -0
  293. package/dist/components/field/field-datetime-picker.d.ts +96 -0
  294. package/dist/components/field/field-datetime-picker.d.ts.map +1 -0
  295. package/dist/components/field/field-editor.d.ts +218 -0
  296. package/dist/components/field/field-editor.d.ts.map +1 -0
  297. package/dist/components/field/field-multi-checkbox.d.ts +91 -0
  298. package/dist/components/field/field-multi-checkbox.d.ts.map +1 -0
  299. package/dist/components/field/field-multi-select.d.ts +85 -0
  300. package/dist/components/field/field-multi-select.d.ts.map +1 -0
  301. package/dist/components/field/field-multi-switch.d.ts +93 -0
  302. package/dist/components/field/field-multi-switch.d.ts.map +1 -0
  303. package/dist/components/field/field-number.d.ts +50 -0
  304. package/dist/components/field/field-number.d.ts.map +1 -0
  305. package/dist/components/field/field-phone.d.ts +82 -0
  306. package/dist/components/field/field-phone.d.ts.map +1 -0
  307. package/dist/components/field/field-radio.d.ts +64 -0
  308. package/dist/components/field/field-radio.d.ts.map +1 -0
  309. package/dist/components/field/field-rating.d.ts +43 -0
  310. package/dist/components/field/field-rating.d.ts.map +1 -0
  311. package/dist/components/field/field-select.d.ts +50 -0
  312. package/dist/components/field/field-select.d.ts.map +1 -0
  313. package/dist/components/field/field-slider.d.ts +56 -0
  314. package/dist/components/field/field-slider.d.ts.map +1 -0
  315. package/dist/components/field/field-switch.d.ts +44 -0
  316. package/dist/components/field/field-switch.d.ts.map +1 -0
  317. package/dist/components/field/field-text.d.ts +38 -0
  318. package/dist/components/field/field-text.d.ts.map +1 -0
  319. package/dist/components/field/field-time-picker.d.ts +79 -0
  320. package/dist/components/field/field-time-picker.d.ts.map +1 -0
  321. package/dist/components/field/field-upload.d.ts +120 -0
  322. package/dist/components/field/field-upload.d.ts.map +1 -0
  323. package/dist/components/field/index.d.ts +149 -0
  324. package/dist/components/field/index.d.ts.map +1 -0
  325. package/dist/components/image/image.d.ts +79 -0
  326. package/dist/components/image/image.d.ts.map +1 -0
  327. package/dist/components/image/index.d.ts +7 -0
  328. package/dist/components/image/index.d.ts.map +1 -0
  329. package/dist/components/index.css +131 -0
  330. package/dist/components/index.css.map +1 -0
  331. package/dist/components/index.d.ts +61 -0
  332. package/dist/components/index.d.ts.map +1 -0
  333. package/dist/components/index.js +13 -0
  334. package/dist/components/index.js.map +1 -0
  335. package/dist/components/label/index.d.ts +7 -0
  336. package/dist/components/label/index.d.ts.map +1 -0
  337. package/dist/components/label/label.d.ts +71 -0
  338. package/dist/components/label/label.d.ts.map +1 -0
  339. package/dist/components/lightbox/classes.d.ts +34 -0
  340. package/dist/components/lightbox/classes.d.ts.map +1 -0
  341. package/dist/components/lightbox/index.d.ts +11 -0
  342. package/dist/components/lightbox/index.d.ts.map +1 -0
  343. package/dist/components/lightbox/lightbox.d.ts +42 -0
  344. package/dist/components/lightbox/lightbox.d.ts.map +1 -0
  345. package/dist/components/lightbox/types.d.ts +233 -0
  346. package/dist/components/lightbox/types.d.ts.map +1 -0
  347. package/dist/components/lightbox/use-lightbox.d.ts +42 -0
  348. package/dist/components/lightbox/use-lightbox.d.ts.map +1 -0
  349. package/dist/components/loading-screen/index.d.ts +8 -0
  350. package/dist/components/loading-screen/index.d.ts.map +1 -0
  351. package/dist/components/loading-screen/loading-screen.d.ts +37 -0
  352. package/dist/components/loading-screen/loading-screen.d.ts.map +1 -0
  353. package/dist/components/loading-screen/splash-screen.d.ts +80 -0
  354. package/dist/components/loading-screen/splash-screen.d.ts.map +1 -0
  355. package/dist/components/map/Map.d.ts +63 -0
  356. package/dist/components/map/Map.d.ts.map +1 -0
  357. package/dist/components/map/MapCoverageLayer.d.ts +25 -0
  358. package/dist/components/map/MapCoverageLayer.d.ts.map +1 -0
  359. package/dist/components/map/MapMarker.d.ts +17 -0
  360. package/dist/components/map/MapMarker.d.ts.map +1 -0
  361. package/dist/components/map/MapPointPicker.d.ts +26 -0
  362. package/dist/components/map/MapPointPicker.d.ts.map +1 -0
  363. package/dist/components/map/index.d.ts +14 -0
  364. package/dist/components/map/index.d.ts.map +1 -0
  365. package/dist/components/mega-menu/index.d.ts +12 -0
  366. package/dist/components/mega-menu/index.d.ts.map +1 -0
  367. package/dist/components/mega-menu/mega-menu-horizontal.d.ts +41 -0
  368. package/dist/components/mega-menu/mega-menu-horizontal.d.ts.map +1 -0
  369. package/dist/components/mega-menu/mega-menu-mobile.d.ts +28 -0
  370. package/dist/components/mega-menu/mega-menu-mobile.d.ts.map +1 -0
  371. package/dist/components/mega-menu/mega-menu-vertical.d.ts +28 -0
  372. package/dist/components/mega-menu/mega-menu-vertical.d.ts.map +1 -0
  373. package/dist/components/mega-menu/styles.d.ts +18 -0
  374. package/dist/components/mega-menu/styles.d.ts.map +1 -0
  375. package/dist/components/mega-menu/types.d.ts +200 -0
  376. package/dist/components/mega-menu/types.d.ts.map +1 -0
  377. package/dist/components/menu/index.d.ts +7 -0
  378. package/dist/components/menu/index.d.ts.map +1 -0
  379. package/dist/components/menu/menu.d.ts +144 -0
  380. package/dist/components/menu/menu.d.ts.map +1 -0
  381. package/dist/components/nav-card/index.d.ts +8 -0
  382. package/dist/components/nav-card/index.d.ts.map +1 -0
  383. package/dist/components/nav-card/nav-card-grid.d.ts +57 -0
  384. package/dist/components/nav-card/nav-card-grid.d.ts.map +1 -0
  385. package/dist/components/nav-card/nav-card.d.ts +69 -0
  386. package/dist/components/nav-card/nav-card.d.ts.map +1 -0
  387. package/dist/components/nav-section/components.d.ts +143 -0
  388. package/dist/components/nav-section/components.d.ts.map +1 -0
  389. package/dist/components/nav-section/index.d.ts +15 -0
  390. package/dist/components/nav-section/index.d.ts.map +1 -0
  391. package/dist/components/nav-section/nav-context.d.ts +80 -0
  392. package/dist/components/nav-section/nav-context.d.ts.map +1 -0
  393. package/dist/components/nav-section/nav-item.d.ts +20 -0
  394. package/dist/components/nav-section/nav-item.d.ts.map +1 -0
  395. package/dist/components/nav-section/nav-list.d.ts +25 -0
  396. package/dist/components/nav-section/nav-list.d.ts.map +1 -0
  397. package/dist/components/nav-section/nav-section-horizontal.d.ts +29 -0
  398. package/dist/components/nav-section/nav-section-horizontal.d.ts.map +1 -0
  399. package/dist/components/nav-section/nav-section-mini.d.ts +30 -0
  400. package/dist/components/nav-section/nav-section-mini.d.ts.map +1 -0
  401. package/dist/components/nav-section/nav-section-vertical.d.ts +37 -0
  402. package/dist/components/nav-section/nav-section-vertical.d.ts.map +1 -0
  403. package/dist/components/nav-section/styles.d.ts +35 -0
  404. package/dist/components/nav-section/styles.d.ts.map +1 -0
  405. package/dist/components/nav-section/types.d.ts +178 -0
  406. package/dist/components/nav-section/types.d.ts.map +1 -0
  407. package/dist/components/navigation-progress/index.d.ts +7 -0
  408. package/dist/components/navigation-progress/index.d.ts.map +1 -0
  409. package/dist/components/navigation-progress/navigation-progress.d.ts +36 -0
  410. package/dist/components/navigation-progress/navigation-progress.d.ts.map +1 -0
  411. package/dist/components/page-content/index.d.ts +7 -0
  412. package/dist/components/page-content/index.d.ts.map +1 -0
  413. package/dist/components/page-content/page-content.d.ts +55 -0
  414. package/dist/components/page-content/page-content.d.ts.map +1 -0
  415. package/dist/components/popover/index.d.ts +7 -0
  416. package/dist/components/popover/index.d.ts.map +1 -0
  417. package/dist/components/popover/popover.d.ts +124 -0
  418. package/dist/components/popover/popover.d.ts.map +1 -0
  419. package/dist/components/progress/countdown-ring.d.ts +60 -0
  420. package/dist/components/progress/countdown-ring.d.ts.map +1 -0
  421. package/dist/components/progress/index.d.ts +8 -0
  422. package/dist/components/progress/index.d.ts.map +1 -0
  423. package/dist/components/progress/progress.d.ts +106 -0
  424. package/dist/components/progress/progress.d.ts.map +1 -0
  425. package/dist/components/rail/index.d.ts +7 -0
  426. package/dist/components/rail/index.d.ts.map +1 -0
  427. package/dist/components/rail/rail.d.ts +39 -0
  428. package/dist/components/rail/rail.d.ts.map +1 -0
  429. package/dist/components/scroll-spy/index.d.ts +3 -0
  430. package/dist/components/scroll-spy/index.d.ts.map +1 -0
  431. package/dist/components/scroll-spy/scroll-spy-provider.d.ts +26 -0
  432. package/dist/components/scroll-spy/scroll-spy-provider.d.ts.map +1 -0
  433. package/dist/components/scroll-spy/scroll-spy-section.d.ts +10 -0
  434. package/dist/components/scroll-spy/scroll-spy-section.d.ts.map +1 -0
  435. package/dist/components/scroll-to-top/index.d.ts +7 -0
  436. package/dist/components/scroll-to-top/index.d.ts.map +1 -0
  437. package/dist/components/scroll-to-top/scroll-to-top.d.ts +25 -0
  438. package/dist/components/scroll-to-top/scroll-to-top.d.ts.map +1 -0
  439. package/dist/components/scrollbar/index.d.ts +7 -0
  440. package/dist/components/scrollbar/index.d.ts.map +1 -0
  441. package/dist/components/scrollbar/scrollbar.d.ts +59 -0
  442. package/dist/components/scrollbar/scrollbar.d.ts.map +1 -0
  443. package/dist/components/search-input/index.d.ts +2 -0
  444. package/dist/components/search-input/index.d.ts.map +1 -0
  445. package/dist/components/search-input/search-input.d.ts +46 -0
  446. package/dist/components/search-input/search-input.d.ts.map +1 -0
  447. package/dist/components/settings/index.d.ts +10 -0
  448. package/dist/components/settings/index.d.ts.map +1 -0
  449. package/dist/components/settings/settings-drawer.d.ts +39 -0
  450. package/dist/components/settings/settings-drawer.d.ts.map +1 -0
  451. package/dist/components/settings/settings-provider.d.ts +106 -0
  452. package/dist/components/settings/settings-provider.d.ts.map +1 -0
  453. package/dist/components/skeleton/index.d.ts +7 -0
  454. package/dist/components/skeleton/index.d.ts.map +1 -0
  455. package/dist/components/skeleton/skeleton.d.ts +77 -0
  456. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  457. package/dist/components/snackbar/index.d.ts +7 -0
  458. package/dist/components/snackbar/index.d.ts.map +1 -0
  459. package/dist/components/snackbar/snackbar.d.ts +120 -0
  460. package/dist/components/snackbar/snackbar.d.ts.map +1 -0
  461. package/dist/components/sponsored-slot/index.d.ts +3 -0
  462. package/dist/components/sponsored-slot/index.d.ts.map +1 -0
  463. package/dist/components/sponsored-slot/sponsored-slot.d.ts +16 -0
  464. package/dist/components/sponsored-slot/sponsored-slot.d.ts.map +1 -0
  465. package/dist/components/sponsored-slot/types.d.ts +45 -0
  466. package/dist/components/sponsored-slot/types.d.ts.map +1 -0
  467. package/dist/components/stepper/index.d.ts +7 -0
  468. package/dist/components/stepper/index.d.ts.map +1 -0
  469. package/dist/components/stepper/stepper.d.ts +145 -0
  470. package/dist/components/stepper/stepper.d.ts.map +1 -0
  471. package/dist/components/svg-color/index.d.ts +7 -0
  472. package/dist/components/svg-color/index.d.ts.map +1 -0
  473. package/dist/components/svg-color/svg-color.d.ts +80 -0
  474. package/dist/components/svg-color/svg-color.d.ts.map +1 -0
  475. package/dist/components/table/index.d.ts +7 -0
  476. package/dist/components/table/index.d.ts.map +1 -0
  477. package/dist/components/table/table.d.ts +184 -0
  478. package/dist/components/table/table.d.ts.map +1 -0
  479. package/dist/components/tabs/index.d.ts +7 -0
  480. package/dist/components/tabs/index.d.ts.map +1 -0
  481. package/dist/components/tabs/tabs.d.ts +146 -0
  482. package/dist/components/tabs/tabs.d.ts.map +1 -0
  483. package/dist/components/tag-cloud/index.d.ts +7 -0
  484. package/dist/components/tag-cloud/index.d.ts.map +1 -0
  485. package/dist/components/tag-cloud/tag-cloud.d.ts +58 -0
  486. package/dist/components/tag-cloud/tag-cloud.d.ts.map +1 -0
  487. package/dist/components/tiptap-renderer/index.d.ts +2 -0
  488. package/dist/components/tiptap-renderer/index.d.ts.map +1 -0
  489. package/dist/components/tiptap-renderer/tiptap-renderer.d.ts +45 -0
  490. package/dist/components/tiptap-renderer/tiptap-renderer.d.ts.map +1 -0
  491. package/dist/components/tooltip/index.d.ts +7 -0
  492. package/dist/components/tooltip/index.d.ts.map +1 -0
  493. package/dist/components/tooltip/tooltip.d.ts +38 -0
  494. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  495. package/dist/components/virtual-list/index.d.ts +7 -0
  496. package/dist/components/virtual-list/index.d.ts.map +1 -0
  497. package/dist/components/virtual-list/virtual-list.d.ts +64 -0
  498. package/dist/components/virtual-list/virtual-list.d.ts.map +1 -0
  499. package/dist/core/accessibility/index.d.ts +96 -0
  500. package/dist/core/accessibility/index.d.ts.map +1 -0
  501. package/dist/core/accessibility/skip-link.d.ts +31 -0
  502. package/dist/core/accessibility/skip-link.d.ts.map +1 -0
  503. package/dist/core/context.d.ts +99 -0
  504. package/dist/core/context.d.ts.map +1 -0
  505. package/dist/core/hooks/use-boolean.d.ts +54 -0
  506. package/dist/core/hooks/use-boolean.d.ts.map +1 -0
  507. package/dist/core/hooks/use-breakpoints.d.ts +87 -0
  508. package/dist/core/hooks/use-breakpoints.d.ts.map +1 -0
  509. package/dist/core/hooks/use-click-outside.d.ts +26 -0
  510. package/dist/core/hooks/use-click-outside.d.ts.map +1 -0
  511. package/dist/core/hooks/use-copy-to-clipboard.d.ts +66 -0
  512. package/dist/core/hooks/use-copy-to-clipboard.d.ts.map +1 -0
  513. package/dist/core/hooks/use-countdown.d.ts +105 -0
  514. package/dist/core/hooks/use-countdown.d.ts.map +1 -0
  515. package/dist/core/hooks/use-debounce.d.ts +64 -0
  516. package/dist/core/hooks/use-debounce.d.ts.map +1 -0
  517. package/dist/core/hooks/use-event-listener.d.ts +37 -0
  518. package/dist/core/hooks/use-event-listener.d.ts.map +1 -0
  519. package/dist/core/hooks/use-interval.d.ts +30 -0
  520. package/dist/core/hooks/use-interval.d.ts.map +1 -0
  521. package/dist/core/hooks/use-is-client.d.ts +24 -0
  522. package/dist/core/hooks/use-is-client.d.ts.map +1 -0
  523. package/dist/core/hooks/use-local-storage.d.ts +61 -0
  524. package/dist/core/hooks/use-local-storage.d.ts.map +1 -0
  525. package/dist/core/hooks/use-media-query.d.ts +107 -0
  526. package/dist/core/hooks/use-media-query.d.ts.map +1 -0
  527. package/dist/core/hooks/use-mounted.d.ts +33 -0
  528. package/dist/core/hooks/use-mounted.d.ts.map +1 -0
  529. package/dist/core/hooks/use-multi-select.d.ts +113 -0
  530. package/dist/core/hooks/use-multi-select.d.ts.map +1 -0
  531. package/dist/core/hooks/use-previous.d.ts +23 -0
  532. package/dist/core/hooks/use-previous.d.ts.map +1 -0
  533. package/dist/core/hooks/use-set-state.d.ts +56 -0
  534. package/dist/core/hooks/use-set-state.d.ts.map +1 -0
  535. package/dist/core/hooks/use-tabs.d.ts +74 -0
  536. package/dist/core/hooks/use-tabs.d.ts.map +1 -0
  537. package/dist/core/hooks/use-timeout.d.ts +37 -0
  538. package/dist/core/hooks/use-timeout.d.ts.map +1 -0
  539. package/dist/core/index.d.ts +36 -453
  540. package/dist/core/index.d.ts.map +1 -0
  541. package/dist/core/index.js +6 -7
  542. package/dist/core/provider-stack.d.ts +181 -0
  543. package/dist/core/provider-stack.d.ts.map +1 -0
  544. package/dist/core/provider.d.ts +67 -0
  545. package/dist/core/provider.d.ts.map +1 -0
  546. package/dist/forms/index.d.ts +6 -557
  547. package/dist/forms/index.d.ts.map +1 -0
  548. package/dist/forms/index.js +0 -1
  549. package/dist/forms/index.js.map +1 -1
  550. package/dist/forms/schema-provider.d.ts +282 -0
  551. package/dist/forms/schema-provider.d.ts.map +1 -0
  552. package/dist/forms/schema-utils.d.ts +286 -0
  553. package/dist/forms/schema-utils.d.ts.map +1 -0
  554. package/dist/hooks/index.d.ts +38 -7
  555. package/dist/hooks/index.d.ts.map +1 -0
  556. package/dist/hooks/index.js +8 -8
  557. package/dist/hooks/use-array.d.ts +126 -0
  558. package/dist/hooks/use-array.d.ts.map +1 -0
  559. package/dist/hooks/use-async.d.ts +88 -0
  560. package/dist/hooks/use-async.d.ts.map +1 -0
  561. package/dist/hooks/use-back-to-top.d.ts +57 -0
  562. package/dist/hooks/use-back-to-top.d.ts.map +1 -0
  563. package/dist/hooks/use-client-rect.d.ts +67 -0
  564. package/dist/hooks/use-client-rect.d.ts.map +1 -0
  565. package/dist/hooks/use-config-from-query.d.ts +98 -0
  566. package/dist/hooks/use-config-from-query.d.ts.map +1 -0
  567. package/dist/hooks/use-cookies.d.ts +62 -0
  568. package/dist/hooks/use-cookies.d.ts.map +1 -0
  569. package/dist/hooks/use-countdown-date.d.ts +47 -0
  570. package/dist/hooks/use-countdown-date.d.ts.map +1 -0
  571. package/dist/hooks/use-countdown-seconds.d.ts +83 -0
  572. package/dist/hooks/use-countdown-seconds.d.ts.map +1 -0
  573. package/dist/hooks/use-double-click.d.ts +67 -0
  574. package/dist/hooks/use-double-click.d.ts.map +1 -0
  575. package/dist/hooks/use-focus-trap.d.ts +66 -0
  576. package/dist/hooks/use-focus-trap.d.ts.map +1 -0
  577. package/dist/hooks/use-image-dimensions.d.ts +124 -0
  578. package/dist/hooks/use-image-dimensions.d.ts.map +1 -0
  579. package/dist/hooks/use-infinite-scroll.d.ts +204 -0
  580. package/dist/hooks/use-infinite-scroll.d.ts.map +1 -0
  581. package/dist/hooks/use-intersection-observer.d.ts +93 -0
  582. package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
  583. package/dist/hooks/use-isomorphic-layout-effect.d.ts +34 -0
  584. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  585. package/dist/hooks/use-keyboard-shortcut.d.ts +112 -0
  586. package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -0
  587. package/dist/hooks/use-lazy-query.d.ts +132 -0
  588. package/dist/hooks/use-lazy-query.d.ts.map +1 -0
  589. package/dist/hooks/use-mutation.d.ts +141 -0
  590. package/dist/hooks/use-mutation.d.ts.map +1 -0
  591. package/dist/hooks/use-online-status.d.ts +56 -0
  592. package/dist/hooks/use-online-status.d.ts.map +1 -0
  593. package/dist/hooks/use-password-visibility.d.ts +83 -0
  594. package/dist/hooks/use-password-visibility.d.ts.map +1 -0
  595. package/dist/hooks/use-popover-hover.d.ts +78 -0
  596. package/dist/hooks/use-popover-hover.d.ts.map +1 -0
  597. package/dist/hooks/use-scroll-offset-top.d.ts +69 -0
  598. package/dist/hooks/use-scroll-offset-top.d.ts.map +1 -0
  599. package/dist/hooks/use-scroll-position.d.ts +96 -0
  600. package/dist/hooks/use-scroll-position.d.ts.map +1 -0
  601. package/dist/hooks/use-session-storage.d.ts +66 -0
  602. package/dist/hooks/use-session-storage.d.ts.map +1 -0
  603. package/dist/hooks/use-throttle.d.ts +67 -0
  604. package/dist/hooks/use-throttle.d.ts.map +1 -0
  605. package/dist/hooks/use-update-effect.d.ts +53 -0
  606. package/dist/hooks/use-update-effect.d.ts.map +1 -0
  607. package/dist/hooks/use-window-size.d.ts +132 -0
  608. package/dist/hooks/use-window-size.d.ts.map +1 -0
  609. package/dist/http/client.d.ts +74 -0
  610. package/dist/http/client.d.ts.map +1 -0
  611. package/dist/http/index.d.ts +6 -229
  612. package/dist/http/index.d.ts.map +1 -0
  613. package/dist/http/index.js +0 -2
  614. package/dist/http/index.js.map +1 -1
  615. package/dist/http/types.d.ts +158 -0
  616. package/dist/http/types.d.ts.map +1 -0
  617. package/dist/index.d.ts +19 -9108
  618. package/dist/index.d.ts.map +1 -0
  619. package/dist/index.js +107 -11678
  620. package/dist/index.js.map +1 -1
  621. package/dist/layouts/auth/centered.d.ts +49 -0
  622. package/dist/layouts/auth/centered.d.ts.map +1 -0
  623. package/dist/layouts/auth/index.d.ts +12 -0
  624. package/dist/layouts/auth/index.d.ts.map +1 -0
  625. package/dist/layouts/auth/simple.d.ts +58 -0
  626. package/dist/layouts/auth/simple.d.ts.map +1 -0
  627. package/dist/layouts/auth/split.d.ts +81 -0
  628. package/dist/layouts/auth/split.d.ts.map +1 -0
  629. package/dist/layouts/core/context.d.ts +102 -0
  630. package/dist/layouts/core/context.d.ts.map +1 -0
  631. package/dist/layouts/core/css-vars.d.ts +43 -0
  632. package/dist/layouts/core/css-vars.d.ts.map +1 -0
  633. package/dist/layouts/core/header-section.d.ts +79 -0
  634. package/dist/layouts/core/header-section.d.ts.map +1 -0
  635. package/dist/layouts/core/index.d.ts +18 -0
  636. package/dist/layouts/core/index.d.ts.map +1 -0
  637. package/dist/layouts/core/layout-section.d.ts +64 -0
  638. package/dist/layouts/core/layout-section.d.ts.map +1 -0
  639. package/dist/layouts/core/user-menu.d.ts +88 -0
  640. package/dist/layouts/core/user-menu.d.ts.map +1 -0
  641. package/dist/layouts/dashboard/index.d.ts +10 -0
  642. package/dist/layouts/dashboard/index.d.ts.map +1 -0
  643. package/dist/layouts/dashboard/layout.d.ts +90 -0
  644. package/dist/layouts/dashboard/layout.d.ts.map +1 -0
  645. package/dist/layouts/dashboard/sidenav.d.ts +58 -0
  646. package/dist/layouts/dashboard/sidenav.d.ts.map +1 -0
  647. package/dist/layouts/dashboard/topnav.d.ts +41 -0
  648. package/dist/layouts/dashboard/topnav.d.ts.map +1 -0
  649. package/dist/layouts/index.d.ts +27 -850
  650. package/dist/layouts/index.d.ts.map +1 -0
  651. package/dist/layouts/index.js +3 -4
  652. package/dist/layouts/types.d.ts +317 -0
  653. package/dist/layouts/types.d.ts.map +1 -0
  654. package/dist/netron/context.d.ts +18 -0
  655. package/dist/netron/context.d.ts.map +1 -0
  656. package/dist/netron/hooks.d.ts +10 -0
  657. package/dist/netron/hooks.d.ts.map +1 -0
  658. package/dist/netron/index.d.ts +47 -4
  659. package/dist/netron/index.d.ts.map +1 -0
  660. package/dist/netron/index.js +1 -2
  661. package/dist/netron/types.d.ts +12 -0
  662. package/dist/netron/types.d.ts.map +1 -0
  663. package/dist/registry/index.d.ts +8 -341
  664. package/dist/registry/index.d.ts.map +1 -0
  665. package/dist/registry/index.js +1 -2
  666. package/dist/registry/installer.d.ts +137 -0
  667. package/dist/registry/installer.d.ts.map +1 -0
  668. package/dist/registry/manager.d.ts +196 -0
  669. package/dist/registry/manager.d.ts.map +1 -0
  670. package/dist/state/create-store.d.ts +164 -0
  671. package/dist/state/create-store.d.ts.map +1 -0
  672. package/dist/state/index.d.ts +12 -969
  673. package/dist/state/index.d.ts.map +1 -0
  674. package/dist/state/index.js +2 -3
  675. package/dist/state/settings-version.d.ts +255 -0
  676. package/dist/state/settings-version.d.ts.map +1 -0
  677. package/dist/state/stores/auth.d.ts +155 -0
  678. package/dist/state/stores/auth.d.ts.map +1 -0
  679. package/dist/state/stores/index.d.ts +10 -0
  680. package/dist/state/stores/index.d.ts.map +1 -0
  681. package/dist/state/stores/settings.d.ts +151 -0
  682. package/dist/state/stores/settings.d.ts.map +1 -0
  683. package/dist/state/stores/theme.d.ts +87 -0
  684. package/dist/state/stores/theme.d.ts.map +1 -0
  685. package/dist/state/stores/ui.d.ts +204 -0
  686. package/dist/state/stores/ui.d.ts.map +1 -0
  687. package/dist/theme/colors/base.d.ts +61 -0
  688. package/dist/theme/colors/base.d.ts.map +1 -0
  689. package/dist/theme/colors/index.d.ts +10 -0
  690. package/dist/theme/colors/index.d.ts.map +1 -0
  691. package/dist/theme/colors/luxury.d.ts +49 -0
  692. package/dist/theme/colors/luxury.d.ts.map +1 -0
  693. package/dist/theme/components/Autocomplete.d.ts +9 -0
  694. package/dist/theme/components/Autocomplete.d.ts.map +1 -0
  695. package/dist/theme/components/Button.d.ts +33 -0
  696. package/dist/theme/components/Button.d.ts.map +1 -0
  697. package/dist/theme/components/Card.d.ts +20 -0
  698. package/dist/theme/components/Card.d.ts.map +1 -0
  699. package/dist/theme/components/Chip.d.ts +29 -0
  700. package/dist/theme/components/Chip.d.ts.map +1 -0
  701. package/dist/theme/components/DataGrid.d.ts +15 -0
  702. package/dist/theme/components/DataGrid.d.ts.map +1 -0
  703. package/dist/theme/components/DatePicker.d.ts +19 -0
  704. package/dist/theme/components/DatePicker.d.ts.map +1 -0
  705. package/dist/theme/components/Dialog.d.ts +23 -0
  706. package/dist/theme/components/Dialog.d.ts.map +1 -0
  707. package/dist/theme/components/FormControls.d.ts +53 -0
  708. package/dist/theme/components/FormControls.d.ts.map +1 -0
  709. package/dist/theme/components/Tabs.d.ts +21 -0
  710. package/dist/theme/components/Tabs.d.ts.map +1 -0
  711. package/dist/theme/components/TextField.d.ts +87 -0
  712. package/dist/theme/components/TextField.d.ts.map +1 -0
  713. package/dist/theme/components/index.d.ts +27 -0
  714. package/dist/theme/components/index.d.ts.map +1 -0
  715. package/dist/theme/components/theme-utils.d.ts +42 -0
  716. package/dist/theme/components/theme-utils.d.ts.map +1 -0
  717. package/dist/theme/create-theme.d.ts +131 -0
  718. package/dist/theme/create-theme.d.ts.map +1 -0
  719. package/dist/theme/css-variables.d.ts +42 -0
  720. package/dist/theme/css-variables.d.ts.map +1 -0
  721. package/dist/theme/custom-shadows.d.ts +58 -0
  722. package/dist/theme/custom-shadows.d.ts.map +1 -0
  723. package/dist/theme/index.d.ts +23 -1045
  724. package/dist/theme/index.d.ts.map +1 -0
  725. package/dist/theme/index.js +2 -3
  726. package/dist/theme/mixins.d.ts +332 -0
  727. package/dist/theme/mixins.d.ts.map +1 -0
  728. package/dist/theme/opacity.d.ts +51 -0
  729. package/dist/theme/opacity.d.ts.map +1 -0
  730. package/dist/theme/palette/builder.d.ts +138 -0
  731. package/dist/theme/palette/builder.d.ts.map +1 -0
  732. package/dist/theme/palette/index.d.ts +7 -0
  733. package/dist/theme/palette/index.d.ts.map +1 -0
  734. package/dist/theme/palette.d.ts +43 -0
  735. package/dist/theme/palette.d.ts.map +1 -0
  736. package/dist/theme/presets/arctic.d.ts +13 -0
  737. package/dist/theme/presets/arctic.d.ts.map +1 -0
  738. package/dist/theme/presets/default.d.ts +13 -0
  739. package/dist/theme/presets/default.d.ts.map +1 -0
  740. package/dist/theme/presets/dracula.d.ts +27 -0
  741. package/dist/theme/presets/dracula.d.ts.map +1 -0
  742. package/dist/theme/presets/ember.d.ts +23 -0
  743. package/dist/theme/presets/ember.d.ts.map +1 -0
  744. package/dist/theme/presets/index.d.ts +39 -0
  745. package/dist/theme/presets/index.d.ts.map +1 -0
  746. package/dist/theme/presets/luxury.d.ts +13 -0
  747. package/dist/theme/presets/luxury.d.ts.map +1 -0
  748. package/dist/theme/presets/midnight.d.ts +23 -0
  749. package/dist/theme/presets/midnight.d.ts.map +1 -0
  750. package/dist/theme/presets/minimal.d.ts +23 -0
  751. package/dist/theme/presets/minimal.d.ts.map +1 -0
  752. package/dist/theme/presets/nature.d.ts +14 -0
  753. package/dist/theme/presets/nature.d.ts.map +1 -0
  754. package/dist/theme/presets/retro.d.ts +23 -0
  755. package/dist/theme/presets/retro.d.ts.map +1 -0
  756. package/dist/theme/shadows.d.ts +61 -0
  757. package/dist/theme/shadows.d.ts.map +1 -0
  758. package/dist/theme/typography.d.ts +24 -0
  759. package/dist/theme/typography.d.ts.map +1 -0
  760. package/dist/theme/utils/color.d.ts +295 -0
  761. package/dist/theme/utils/color.d.ts.map +1 -0
  762. package/dist/theme/utils/index.d.ts +7 -0
  763. package/dist/theme/utils/index.d.ts.map +1 -0
  764. package/dist/{registry-BrDNftd5.d.ts → types/blocks.d.ts} +30 -191
  765. package/dist/types/blocks.d.ts.map +1 -0
  766. package/dist/types/components.d.ts +139 -0
  767. package/dist/types/components.d.ts.map +1 -0
  768. package/dist/{config-BA6IeTq9.d.ts → types/config.d.ts} +14 -16
  769. package/dist/types/config.d.ts.map +1 -0
  770. package/dist/types/index.d.ts +11 -144
  771. package/dist/types/index.d.ts.map +1 -0
  772. package/dist/types/index.js +1 -2
  773. package/dist/types/registry.d.ts +158 -0
  774. package/dist/types/registry.d.ts.map +1 -0
  775. package/dist/{theme-CrXLfP1c.d.ts → types/theme.d.ts} +31 -34
  776. package/dist/types/theme.d.ts.map +1 -0
  777. package/dist/utils/async-lock.d.ts +169 -0
  778. package/dist/utils/async-lock.d.ts.map +1 -0
  779. package/dist/utils/cn.d.ts +80 -0
  780. package/dist/utils/cn.d.ts.map +1 -0
  781. package/dist/utils/cookies.d.ts +68 -0
  782. package/dist/utils/cookies.d.ts.map +1 -0
  783. package/dist/utils/create-classes.d.ts +90 -0
  784. package/dist/utils/create-classes.d.ts.map +1 -0
  785. package/dist/utils/errors.d.ts +201 -0
  786. package/dist/utils/errors.d.ts.map +1 -0
  787. package/dist/utils/fetch-interceptor.d.ts +230 -0
  788. package/dist/utils/fetch-interceptor.d.ts.map +1 -0
  789. package/dist/utils/font.d.ts +65 -0
  790. package/dist/utils/font.d.ts.map +1 -0
  791. package/dist/utils/format-crypto.d.ts +312 -0
  792. package/dist/utils/format-crypto.d.ts.map +1 -0
  793. package/dist/utils/format-date.d.ts +240 -0
  794. package/dist/utils/format-date.d.ts.map +1 -0
  795. package/dist/utils/format-number.d.ts +245 -0
  796. package/dist/utils/format-number.d.ts.map +1 -0
  797. package/dist/utils/i18n-text.d.ts +68 -0
  798. package/dist/utils/i18n-text.d.ts.map +1 -0
  799. package/dist/utils/index.d.ts +30 -0
  800. package/dist/utils/index.d.ts.map +1 -0
  801. package/dist/utils/jwt.d.ts +227 -0
  802. package/dist/utils/jwt.d.ts.map +1 -0
  803. package/dist/utils/object.d.ts +96 -0
  804. package/dist/utils/object.d.ts.map +1 -0
  805. package/dist/utils/refs.d.ts +60 -0
  806. package/dist/utils/refs.d.ts.map +1 -0
  807. package/dist/utils/rtl.d.ts +75 -0
  808. package/dist/utils/rtl.d.ts.map +1 -0
  809. package/dist/utils/storage.d.ts +190 -0
  810. package/dist/utils/storage.d.ts.map +1 -0
  811. package/dist/utils/string.d.ts +216 -0
  812. package/dist/utils/string.d.ts.map +1 -0
  813. package/dist/utils/template-resolver.d.ts +12 -0
  814. package/dist/utils/template-resolver.d.ts.map +1 -0
  815. package/dist/utils/toast.d.ts +25 -0
  816. package/dist/utils/toast.d.ts.map +1 -0
  817. package/dist/utils/transform-number.d.ts +108 -0
  818. package/dist/utils/transform-number.d.ts.map +1 -0
  819. package/dist/utils/url.d.ts +198 -0
  820. package/dist/utils/url.d.ts.map +1 -0
  821. package/package.json +77 -61
  822. package/dist/chunk-77KIJLPP.js +0 -37
  823. package/dist/chunk-77KIJLPP.js.map +0 -1
  824. package/dist/chunk-BTIT7WYH.js.map +0 -1
  825. package/dist/chunk-BV32OJ2A.js.map +0 -1
  826. package/dist/chunk-DDY7TLUI.js.map +0 -1
  827. package/dist/chunk-DXXZ3ITR.js.map +0 -1
  828. package/dist/chunk-E3XANPTO.js.map +0 -1
  829. package/dist/chunk-GYDT5EKX.js +0 -16505
  830. package/dist/chunk-GYDT5EKX.js.map +0 -1
  831. package/dist/chunk-HO2GKTWJ.js.map +0 -1
  832. package/dist/chunk-JDTC2SBY.js.map +0 -1
  833. package/dist/chunk-LAEY5USO.js.map +0 -1
  834. package/dist/chunk-UR6X3W5I.js.map +0 -1
  835. package/dist/chunk-WC2WM2JD.js.map +0 -1
  836. package/dist/chunk-XWL6J6IO.js.map +0 -1
  837. package/dist/index-odhPSv9I.d.ts +0 -2491
  838. package/dist/settings-plpR26Xk.d.ts +0 -455
  839. package/dist/use-timeout-D7U3EAtH.d.ts +0 -808
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/theme/utils/color.ts","../src/theme/colors/base.ts","../src/theme/palette/builder.ts","../src/theme/components/theme-utils.ts","../src/theme/components/Button.ts","../src/theme/mixins.ts","../src/theme/components/Chip.ts","../src/theme/components/TextField.ts","../src/theme/components/FormControls.tsx","../src/theme/components/Tabs.ts","../src/theme/components/index.ts","../src/theme/shadows.ts","../src/theme/typography.ts","../src/theme/colors/luxury.ts","../src/theme/presets/arctic.ts","../src/theme/presets/dracula.ts","../src/theme/presets/ember.ts","../src/theme/presets/midnight.ts","../src/theme/presets/retro.ts","../src/theme/presets/minimal.ts","../src/theme/create-theme.ts"],"names":["getLuminance","getContrastText","grey","base","hover","softVariants","dashedVariants","disabledVariants","svgIconClasses","newPrimary","getDensityMultiplier","lightPalette","darkPalette","muiCreateTheme"],"mappings":"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","file":"chunk-DXXZ3ITR.js","sourcesContent":["/**\n * Color Utilities\n *\n * Functions for color manipulation, channel generation, and palette creation.\n * Uses HSL-based color math for perceptually correct results.\n * Combines Aurora's sophisticated color system with Prism's extensibility.\n *\n * @module @omnitron-dev/prism/theme/utils/color\n */\n\nimport type {\n ColorScale,\n ColorScaleWithChannels,\n ColorShadeKey,\n PaletteColor,\n PaletteColorWithChannels,\n} from '../../types/theme.js';\n\n// =============================================================================\n// COLOR CONVERSION\n// =============================================================================\n\n/**\n * Convert hex color to RGB values.\n *\n * @param hex - Hex color string (e.g., '#FF5630' or 'FF5630')\n * @returns RGB tuple [r, g, b]\n */\nexport function hexToRgb(hex: string): [number, number, number] {\n const h = hex.replace('#', '');\n const expanded =\n h.length === 3\n ? h\n .split('')\n .map((c) => c + c)\n .join('')\n : h;\n const bigint = parseInt(expanded, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n return [r, g, b];\n}\n\n/**\n * Convert hex color to RGB channel string.\n *\n * @param hex - Hex color string\n * @returns RGB channel string (e.g., '255 86 48')\n */\nexport function hexToRgbChannel(hex: string): string {\n const [r, g, b] = hexToRgb(hex);\n return `${r} ${g} ${b}`;\n}\n\n/**\n * Convert RGB values to hex color.\n *\n * @param r - Red (0-255)\n * @param g - Green (0-255)\n * @param b - Blue (0-255)\n * @returns Hex color string (e.g., '#FF5630')\n */\nexport function rgbToHex(r: number, g: number, b: number): string {\n const to2 = (n: number) => Math.round(n).toString(16).padStart(2, '0');\n return `#${to2(r)}${to2(g)}${to2(b)}`.toUpperCase();\n}\n\n/**\n * Convert hex to HSL values.\n *\n * @param hex - Hex color string\n * @returns HSL values { h: 0-360, s: 0-100, l: 0-100 }\n */\nexport function hexToHsl(hex: string): { h: number; s: number; l: number } {\n const [r, g, b] = hexToRgb(hex);\n const r1 = r / 255;\n const g1 = g / 255;\n const b1 = b / 255;\n const max = Math.max(r1, g1, b1);\n const min = Math.min(r1, g1, b1);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n const d = max - min;\n\n if (d !== 0) {\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r1:\n h = (g1 - b1) / d + (g1 < b1 ? 6 : 0);\n break;\n case g1:\n h = (b1 - r1) / d + 2;\n break;\n default:\n h = (r1 - g1) / d + 4;\n }\n h /= 6;\n }\n\n return { h: h * 360, s: s * 100, l: l * 100 };\n}\n\n/**\n * Convert HSL values to hex color.\n *\n * @param h - Hue (0-360)\n * @param s - Saturation (0-100)\n * @param l - Lightness (0-100)\n * @returns Hex color string\n */\nexport function hslToHex(h: number, s: number, l: number): string {\n const s1 = s / 100;\n const l1 = l / 100;\n const c = (1 - Math.abs(2 * l1 - 1)) * s1;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l1 - c / 2;\n let r1: number;\n let g1: number;\n let b1: number;\n\n if (h >= 0 && h < 60) {\n [r1, g1, b1] = [c, x, 0];\n } else if (h >= 60 && h < 120) {\n [r1, g1, b1] = [x, c, 0];\n } else if (h >= 120 && h < 180) {\n [r1, g1, b1] = [0, c, x];\n } else if (h >= 180 && h < 240) {\n [r1, g1, b1] = [0, x, c];\n } else if (h >= 240 && h < 300) {\n [r1, g1, b1] = [x, 0, c];\n } else {\n [r1, g1, b1] = [c, 0, x];\n }\n\n return rgbToHex(Math.round((r1 + m) * 255), Math.round((g1 + m) * 255), Math.round((b1 + m) * 255));\n}\n\n// =============================================================================\n// RGBA UTILITIES\n// =============================================================================\n\n/**\n * Create CSS rgba() from hex color.\n *\n * @param color - Hex color string\n * @param alpha - Alpha value (0-1)\n * @returns CSS rgba string\n */\nexport function rgba(color: string, alpha: number): string {\n const [r, g, b] = hexToRgb(color);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\n/**\n * Create CSS rgba() from RGB channel string.\n * Useful for CSS variable references.\n *\n * @param channel - RGB channel string (e.g., '255 86 48')\n * @param alpha - Alpha value (0-1)\n * @returns CSS rgba string using modern syntax\n */\nexport function cssVarRgba(channel: string, alpha: number): string {\n return `rgba(${channel} / ${alpha})`;\n}\n\n// =============================================================================\n// CHANNEL GENERATION\n// =============================================================================\n\n/**\n * Generate palette color with channel values.\n *\n * @param color - Palette color object\n * @returns Palette color with channel values\n */\nexport function generatePaletteColorWithChannels(color: PaletteColor): PaletteColorWithChannels {\n return {\n ...color,\n lighterChannel: hexToRgbChannel(color.lighter),\n lightChannel: hexToRgbChannel(color.light),\n mainChannel: hexToRgbChannel(color.main),\n darkChannel: hexToRgbChannel(color.dark),\n darkerChannel: hexToRgbChannel(color.darker),\n contrastTextChannel: hexToRgbChannel(color.contrastText),\n };\n}\n\n/**\n * Generate color scale with channel values.\n *\n * @param scale - Color scale object\n * @returns Color scale with channel values\n */\nexport function generateColorScaleWithChannels(scale: ColorScale): ColorScaleWithChannels {\n const shadeKeys: ColorShadeKey[] = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n const channels = {} as Record<`${ColorShadeKey}Channel`, string>;\n\n for (const key of shadeKeys) {\n const channelKey = `${key}Channel` as `${ColorShadeKey}Channel`;\n channels[channelKey] = hexToRgbChannel(scale[key]);\n }\n\n return { ...scale, ...channels };\n}\n\n// =============================================================================\n// SHADE GENERATION\n// =============================================================================\n\n/**\n * Clamp a number between min and max.\n */\nfunction clamp(n: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, n));\n}\n\n/**\n * Generate 11-shade color scale from a base color.\n * Uses HSL manipulation to create consistent, accessible shades.\n *\n * @param baseColor - Base hex color (typically the 500 shade)\n * @returns Full 11-shade color scale\n */\nexport function generateColorScale(baseColor: string): ColorScale {\n const base = hexToHsl(baseColor);\n\n const tones: Array<{ key: ColorShadeKey; lDelta: number }> = [\n { key: 50, lDelta: +40 },\n { key: 100, lDelta: +32 },\n { key: 200, lDelta: +24 },\n { key: 300, lDelta: +16 },\n { key: 400, lDelta: +8 },\n { key: 500, lDelta: 0 },\n { key: 600, lDelta: -8 },\n { key: 700, lDelta: -16 },\n { key: 800, lDelta: -24 },\n { key: 900, lDelta: -32 },\n { key: 950, lDelta: -40 },\n ];\n\n const scale = {} as ColorScale;\n\n for (const { key, lDelta } of tones) {\n const l = clamp(base.l + lDelta, 5, 95);\n scale[key] = hslToHex(base.h, base.s, l);\n }\n\n return scale;\n}\n\n/**\n * Generate primary color shades from a base color.\n * Alias for generateColorScale for compatibility with Aurora's naming.\n */\nexport const generatePrimaryShades = generateColorScale;\n\n// =============================================================================\n// PALETTE HELPERS\n// =============================================================================\n\n/**\n * Calculate relative luminance of a hex color for WCAG contrast calculations.\n */\nfunction getLuminanceForContrast(hex: string): number {\n const rgb = hex.replace('#', '').match(/.{2}/g);\n if (!rgb) return 0;\n const [r, g, b] = rgb.map((c) => {\n const val = parseInt(c, 16) / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n\n/**\n * Get appropriate contrast text color for WCAG AA compliance.\n * Uses luminance to determine if white or dark text provides better contrast.\n * Threshold of 0.4 ensures colored buttons get white text for better UX.\n */\nfunction getContrastTextColor(bgColor: string): string {\n const luminance = getLuminanceForContrast(bgColor);\n // Higher threshold (0.4) ensures most colored backgrounds get white text\n // Only very bright colors like yellow/warning get dark text\n return luminance < 0.4 ? '#FFFFFF' : '#212121';\n}\n\n/**\n * Create semantic palette color from a color scale.\n * Maps 11-shade scale to 5-shade semantic naming.\n *\n * @param scale - Full color scale\n * @param mode - Light or dark mode\n * @returns Semantic palette color\n */\nexport function createPaletteColorFromScale(scale: ColorScale, mode: 'light' | 'dark' = 'light'): PaletteColor {\n const mainColor = mode === 'dark' ? scale[400] : scale[500];\n const contrastText = getContrastTextColor(mainColor);\n\n if (mode === 'dark') {\n return {\n lighter: scale[950],\n light: scale[700],\n main: mainColor,\n dark: scale[300],\n darker: scale[100],\n contrastText,\n };\n }\n\n return {\n lighter: scale[50],\n light: scale[400],\n main: mainColor,\n dark: scale[600],\n darker: scale[900],\n contrastText,\n };\n}\n\n/**\n * Create inverted color scale for dark mode.\n * Swaps light and dark shades for proper dark mode contrast.\n *\n * @param scale - Original color scale\n * @returns Inverted color scale\n */\nexport function invertColorScale(scale: ColorScale): ColorScale {\n return {\n 50: scale[950],\n 100: scale[800],\n 200: scale[700],\n 300: scale[600],\n 400: scale[500],\n 500: scale[400],\n 600: scale[300],\n 700: scale[200],\n 800: scale[100],\n 900: scale[50],\n 950: '#FFFFFF',\n };\n}\n\n// =============================================================================\n// CONTRAST UTILITIES\n// =============================================================================\n\n/**\n * Calculate relative luminance of a color.\n *\n * @param hex - Hex color string\n * @returns Relative luminance (0-1)\n */\nexport function getLuminance(hex: string): number {\n const [r, g, b] = hexToRgb(hex).map((c) => {\n const sRgb = c / 255;\n return sRgb <= 0.03928 ? sRgb / 12.92 : Math.pow((sRgb + 0.055) / 1.055, 2.4);\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n\n/**\n * Calculate contrast ratio between two colors.\n *\n * @param color1 - First hex color\n * @param color2 - Second hex color\n * @returns Contrast ratio (1-21)\n */\nexport function getContrastRatio(color1: string, color2: string): number {\n const l1 = getLuminance(color1);\n const l2 = getLuminance(color2);\n const lighter = Math.max(l1, l2);\n const darker = Math.min(l1, l2);\n return (lighter + 0.05) / (darker + 0.05);\n}\n\n/**\n * Determine if a color is light or dark.\n *\n * @param hex - Hex color string\n * @returns True if color is light\n */\nexport function isLightColor(hex: string): boolean {\n return getLuminance(hex) > 0.5;\n}\n\n/**\n * Get optimal contrast text color for a background.\n *\n * @param background - Background hex color\n * @param lightText - Light text color (default: white)\n * @param darkText - Dark text color (default: black)\n * @returns Best contrast text color\n */\nexport function getContrastText(background: string, lightText = '#FFFFFF', darkText = '#000000'): string {\n return isLightColor(background) ? darkText : lightText;\n}\n\n// =============================================================================\n// HSL-BASED COLOR MANIPULATION\n// =============================================================================\n\n/**\n * Lighten a color using HSL.\n * Preserves hue and saturation while increasing lightness.\n *\n * @param hex - Hex color string\n * @param amount - Amount to lighten (0-100 percentage points)\n * @returns Lightened hex color\n */\nexport function lighten(hex: string, amount: number): string {\n const hsl = hexToHsl(hex);\n const newL = clamp(hsl.l + amount, 0, 100);\n return hslToHex(hsl.h, hsl.s, newL);\n}\n\n/**\n * Darken a color using HSL.\n * Preserves hue and saturation while decreasing lightness.\n *\n * @param hex - Hex color string\n * @param amount - Amount to darken (0-100 percentage points)\n * @returns Darkened hex color\n */\nexport function darken(hex: string, amount: number): string {\n const hsl = hexToHsl(hex);\n const newL = clamp(hsl.l - amount, 0, 100);\n return hslToHex(hsl.h, hsl.s, newL);\n}\n\n/**\n * Saturate a color using HSL.\n *\n * @param hex - Hex color string\n * @param amount - Amount to increase saturation (0-100 percentage points)\n * @returns Saturated hex color\n */\nexport function saturate(hex: string, amount: number): string {\n const hsl = hexToHsl(hex);\n const newS = clamp(hsl.s + amount, 0, 100);\n return hslToHex(hsl.h, newS, hsl.l);\n}\n\n/**\n * Desaturate a color using HSL.\n *\n * @param hex - Hex color string\n * @param amount - Amount to decrease saturation (0-100 percentage points)\n * @returns Desaturated hex color\n */\nexport function desaturate(hex: string, amount: number): string {\n const hsl = hexToHsl(hex);\n const newS = clamp(hsl.s - amount, 0, 100);\n return hslToHex(hsl.h, newS, hsl.l);\n}\n\n/**\n * Adjust hue of a color.\n *\n * @param hex - Hex color string\n * @param degrees - Degrees to rotate hue (-360 to 360)\n * @returns Color with adjusted hue\n */\nexport function adjustHue(hex: string, degrees: number): string {\n const hsl = hexToHsl(hex);\n const newH = (hsl.h + degrees + 360) % 360;\n return hslToHex(newH, hsl.s, hsl.l);\n}\n\n/**\n * Mix two colors together.\n *\n * @param color1 - First hex color\n * @param color2 - Second hex color\n * @param weight - Weight of first color (0-1, default: 0.5)\n * @returns Mixed hex color\n */\nexport function mix(color1: string, color2: string, weight = 0.5): string {\n const [r1, g1, b1] = hexToRgb(color1);\n const [r2, g2, b2] = hexToRgb(color2);\n const w = clamp(weight, 0, 1);\n const newR = Math.round(r1 * w + r2 * (1 - w));\n const newG = Math.round(g1 * w + g2 * (1 - w));\n const newB = Math.round(b1 * w + b2 * (1 - w));\n return rgbToHex(newR, newG, newB);\n}\n\n// =============================================================================\n// CSS VARIABLE ALPHA UTILITIES (Aurora pattern)\n// =============================================================================\n\n/**\n * Validate and normalize opacity value.\n *\n * @param opacity - Opacity value (number 0-1, percentage string, or CSS variable)\n * @param color - Color string for error messages\n * @returns Normalized opacity as percentage string\n * @throws Error if opacity is invalid\n */\nfunction validateOpacity(opacity: string | number, color: string): string {\n const isCSSVar = (val: string) => val.includes('var(--');\n const isPercentage = (val: string) => val.trim().endsWith('%');\n\n const errors = {\n invalid: `[varAlpha]: Invalid opacity \"${opacity}\" for \"${color}\".`,\n range: 'Must be a number between 0 and 1 (e.g., 0.48).',\n format: 'Must be a percentage (e.g., \"48%\") or CSS variable (e.g., \"var(--opacity)\").',\n };\n\n if (typeof opacity === 'string') {\n // Already a percentage - return as-is\n if (isPercentage(opacity)) return opacity;\n\n // CSS variable - wrap in calc to convert to percentage\n if (isCSSVar(opacity)) return `calc(${opacity} * 100%)`;\n\n // Try parsing as a number string\n const parsed = parseFloat(opacity.trim());\n if (!isNaN(parsed) && parsed >= 0 && parsed <= 1) {\n return `${Number((parsed * 100).toFixed(2))}%`;\n }\n\n throw new Error(`${errors.invalid} ${errors.format}`);\n }\n\n if (typeof opacity === 'number') {\n if (opacity >= 0 && opacity <= 1) {\n return `${Number((opacity * 100).toFixed(2))}%`;\n }\n throw new Error(`${errors.invalid} ${errors.range}`);\n }\n\n throw new Error(`${errors.invalid}`);\n}\n\n/**\n * Create CSS rgba() using a CSS variable channel.\n * Essential for dynamic alpha with CSS custom properties.\n *\n * Supports:\n * - RGB channel strings: \"200 250 214\"\n * - CSS variables: \"var(--palette-primary-mainChannel)\"\n * - currentColor (via color-mix)\n *\n * Does NOT support (will throw):\n * - Hex colors: \"#00B8D9\"\n * - RGB: \"rgb(0, 184, 217)\"\n * - RGBA: \"rgba(0, 184, 217, 1)\"\n *\n * @example\n * ```tsx\n * // With CSS variable channel\n * varAlpha('var(--palette-primary-mainChannel)', 0.5)\n * // Returns: \"rgba(var(--palette-primary-mainChannel) / 50%)\"\n *\n * // With RGB channel string\n * varAlpha('200 250 214', 0.8)\n * // Returns: \"rgba(200 250 214 / 80%)\"\n *\n * // With percentage opacity\n * varAlpha('var(--palette-primary-mainChannel)', '50%')\n * // Returns: \"rgba(var(--palette-primary-mainChannel) / 50%)\"\n *\n * // With CSS variable opacity\n * varAlpha('var(--palette-primary-mainChannel)', 'var(--opacity)')\n * // Returns: \"rgba(var(--palette-primary-mainChannel) / calc(var(--opacity) * 100%))\"\n *\n * // With currentColor\n * varAlpha('currentColor', 0.5)\n * // Returns: \"color-mix(in srgb, currentColor 50%, transparent)\"\n * ```\n *\n * @param color - CSS variable reference for the RGB channel, RGB channel string, or 'currentColor'\n * @param opacity - Alpha value (0-1 number, percentage string, or CSS variable)\n * @returns CSS rgba/color-mix string\n * @throws Error if color format is unsupported or opacity is invalid\n */\nexport function varAlpha(color: string, opacity: string | number = 1): string {\n // Validate color input\n if (!color?.trim()) {\n throw new Error('[varAlpha]: Color is undefined or empty!');\n }\n\n // Check for unsupported color formats\n const isUnsupported =\n color.startsWith('#') ||\n color.startsWith('rgb(') ||\n color.startsWith('rgba(') ||\n (!color.includes('var') && color.includes('Channel'));\n\n if (isUnsupported) {\n throw new Error(\n [\n `[varAlpha]: Unsupported color format \"${color}\"`,\n '✅ Supported formats:',\n ' - RGB channels: \"0 184 217\"',\n ' - CSS variables: \"var(--palette-primary-mainChannel)\"',\n ' - currentColor',\n '❌ Unsupported formats:',\n ' - Hex: \"#00B8D9\"',\n ' - RGB: \"rgb(0, 184, 217)\"',\n ' - RGBA: \"rgba(0, 184, 217, 1)\"',\n ].join('\\n')\n );\n }\n\n // Validate and normalize opacity\n const alpha = validateOpacity(opacity, color);\n\n // Handle currentColor specially using color-mix\n if (color.toLowerCase() === 'currentcolor') {\n return `color-mix(in srgb, currentColor ${alpha}, transparent)`;\n }\n\n return `rgba(${color} / ${alpha})`;\n}\n\n/**\n * Create palette channel CSS variables object.\n * Maps semantic color keys to CSS variable references.\n *\n * @param prefix - CSS variable prefix (e.g., '--palette-primary')\n * @returns Object with channel variable references\n */\nexport function createPaletteChannelVars(prefix: string): Record<string, string> {\n return {\n lighterChannel: `var(${prefix}-lighterChannel)`,\n lightChannel: `var(${prefix}-lightChannel)`,\n mainChannel: `var(${prefix}-mainChannel)`,\n darkChannel: `var(${prefix}-darkChannel)`,\n darkerChannel: `var(${prefix}-darkerChannel)`,\n contrastTextChannel: `var(${prefix}-contrastTextChannel)`,\n };\n}\n\n// =============================================================================\n// CSS VARIABLE UTILITIES\n// =============================================================================\n\n/**\n * Parse CSS variable name from a var() expression.\n *\n * @param cssVar - CSS var() expression (e.g., 'var(--prism-primary-main)' or '--prism-primary-main')\n * @returns Variable name without -- prefix, or null if invalid\n *\n * @example\n * ```ts\n * parseCssVar('var(--prism-primary-main)') // 'prism-primary-main'\n * parseCssVar('var(--color, #fff)') // 'color'\n * parseCssVar('--my-variable') // 'my-variable'\n * parseCssVar('invalid') // null\n * ```\n */\nexport function parseCssVar(cssVar: string): string | null {\n if (!cssVar) return null;\n\n // Handle var(--name) or var(--name, fallback) format\n const varMatch = cssVar.match(/var\\(\\s*--([^,)]+)\\s*(?:,\\s*[^)]*)?\\)/);\n if (varMatch) {\n return varMatch[1].trim();\n }\n\n // Handle --name format (direct CSS variable name)\n if (cssVar.startsWith('--')) {\n return cssVar.slice(2);\n }\n\n return null;\n}\n\n/**\n * Check if a value is a CSS variable expression.\n *\n * @param value - Value to check\n * @returns True if value is a var() expression or --variable\n */\nexport function isCssVar(value: string): boolean {\n return value.startsWith('var(') || value.startsWith('--');\n}\n\n/**\n * Extract all CSS variables from a theme.vars object path.\n *\n * @param varsPath - Dot-separated path to CSS variables (e.g., 'palette.primary')\n * @param vars - Theme vars object (from theme.vars)\n * @returns Object with variable names as keys and CSS var expressions as values\n *\n * @example\n * ```ts\n * const vars = extractCssVars('palette.primary', theme.vars);\n * // { main: 'var(--prism-palette-primary-main)', light: '...', dark: '...' }\n * ```\n */\nexport function extractCssVars(varsPath: string, vars: Record<string, unknown>): Record<string, string> {\n const parts = varsPath.split('.');\n let current: Record<string, unknown> = vars;\n\n for (const part of parts) {\n if (current && typeof current === 'object' && part in current) {\n current = current[part] as Record<string, unknown>;\n } else {\n return {};\n }\n }\n\n const result: Record<string, string> = {};\n for (const [key, value] of Object.entries(current)) {\n if (typeof value === 'string' && isCssVar(value)) {\n result[key] = value;\n }\n }\n return result;\n}\n","/**\n * Base Color Scales\n *\n * Foundation colors used across all presets.\n * 11-shade scales (50-950) for maximum flexibility.\n *\n * @module @omnitron-dev/prism/theme/colors/base\n */\n\nimport type { ColorScale } from '../../types/theme.js';\n\n// =============================================================================\n// NEUTRAL COLORS\n// =============================================================================\n\n/**\n * Grey scale - neutral foundation.\n */\nexport const grey: ColorScale = {\n 50: '#F7FAFC',\n 100: '#EBF2F5',\n 200: '#DBE6EB',\n 300: '#C3D3DB',\n 400: '#9CAEB8',\n 500: '#77878F',\n 600: '#4D595E',\n 700: '#262D30',\n 800: '#1B2124',\n 900: '#111417',\n 950: '#06080A',\n};\n\n// =============================================================================\n// PRIMARY COLORS\n// =============================================================================\n\n/**\n * Blue - default primary.\n */\nexport const blue: ColorScale = {\n 50: '#EAF3FD',\n 100: '#C6DDFB',\n 200: '#A1C7F8',\n 300: '#7DB1F5',\n 400: '#589BF3',\n 500: '#3385F0',\n 600: '#2B71CC',\n 700: '#245DA8',\n 800: '#1C4984',\n 900: '#143560',\n 950: '#0A1B30',\n};\n\n/**\n * Green - success/teal variant.\n */\nexport const green: ColorScale = {\n 50: '#E6F5F0',\n 100: '#BBE4D5',\n 200: '#8ED3BA',\n 300: '#62C29F',\n 400: '#35B084',\n 500: '#099F69',\n 600: '#088759',\n 700: '#066F49',\n 800: '#05573A',\n 900: '#04402A',\n 950: '#022015',\n};\n\n/**\n * Purple - secondary.\n */\nexport const purple: ColorScale = {\n 50: '#F2E4FE',\n 100: '#E6CAFE',\n 200: '#D6A8FD',\n 300: '#C686FC',\n 400: '#B663FB',\n 500: '#A641FA',\n 600: '#8D37D5',\n 700: '#742DAF',\n 800: '#5B2489',\n 900: '#421A64',\n 950: '#210D32',\n};\n\n// =============================================================================\n// SEMANTIC COLORS\n// =============================================================================\n\n/**\n * Red - error/destructive.\n */\nexport const red: ColorScale = {\n 50: '#F9E2E6',\n 100: '#F2C1CA',\n 200: '#E99AA8',\n 300: '#E17286',\n 400: '#D84A63',\n 500: '#D02241',\n 600: '#B11D37',\n 700: '#91182D',\n 800: '#721324',\n 900: '#530E1A',\n 950: '#3A0A12',\n};\n\n/**\n * Orange - warning.\n */\nexport const orange: ColorScale = {\n 50: '#FEEFE1',\n 100: '#FCDFC4',\n 200: '#FBCB9D',\n 300: '#F9B677',\n 400: '#F8A250',\n 500: '#F68D2A',\n 600: '#D17824',\n 700: '#AC631D',\n 800: '#874E17',\n 900: '#623811',\n 950: '#372412',\n};\n\n/**\n * Light Blue - info.\n */\nexport const lightBlue: ColorScale = {\n 50: '#E0F3FA',\n 100: '#BCE6F4',\n 200: '#90D6EC',\n 300: '#64C6E5',\n 400: '#39B6DD',\n 500: '#0DA6D6',\n 600: '#0B8DB6',\n 700: '#097496',\n 800: '#075B76',\n 900: '#054256',\n 950: '#03212B',\n};\n\n// =============================================================================\n// BASIC COLORS\n// =============================================================================\n\n/**\n * Basic black and white.\n */\nexport const basic = {\n white: '#FFFFFF',\n black: '#000000',\n} as const;\n\n// =============================================================================\n// EXPORTS\n// =============================================================================\n\n/**\n * All base color scales.\n */\nexport const baseColors = {\n grey,\n blue,\n green,\n purple,\n red,\n orange,\n lightBlue,\n basic,\n} as const;\n","/**\n * Palette Builder\n *\n * Creates MUI-native palette structures with full channel support.\n * Designed for maximum integration with MUI's colorSchemes and CSS variables.\n *\n * Key MUI Integration Points:\n * - Uses MUI's PaletteOptions structure directly\n * - Generates channel values for use with `theme.vars.palette.*.mainChannel`\n * - Supports MUI's `applyStyles` for dark mode variants\n * - Works seamlessly with MUI's CSS variable system\n *\n * @module @omnitron-dev/prism/theme/palette/builder\n */\n\nimport type { PaletteOptions } from '@mui/material/styles';\nimport type {\n ColorScale,\n PaletteColor,\n PaletteColorWithChannels,\n VibrantPalette,\n ChartPalette,\n} from '../../types/theme.js';\nimport {\n hexToRgbChannel,\n generateColorScaleWithChannels,\n generatePaletteColorWithChannels,\n cssVarRgba,\n} from '../utils/color.js';\nimport { grey as baseGrey, blue, green, purple, red, orange, lightBlue, basic } from '../colors/base.js';\n\n// =============================================================================\n// PALETTE COLOR BUILDER\n// =============================================================================\n\n/**\n * Calculate relative luminance of a hex color.\n * Used for determining if text should be light or dark for contrast.\n */\nfunction getLuminance(hex: string): number {\n const rgb = hex.replace('#', '').match(/.{2}/g);\n if (!rgb) return 0;\n const [r, g, b] = rgb.map((c) => {\n const val = parseInt(c, 16) / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n\n/**\n * Get appropriate contrast text color for a background.\n * Uses luminance to determine if white or dark text provides better contrast.\n * Threshold of 0.4 ensures colored buttons get white text for better UX.\n */\nfunction getContrastText(bgColor: string): string {\n const luminance = getLuminance(bgColor);\n // Threshold 0.179 is WCAG standard; 0.3 balances WCAG AA compliance\n // with UX preference for white text on colored buttons.\n // Colors brighter than 0.3 luminance (e.g. yellow, light orange) get dark text.\n return luminance < 0.3 ? '#FFFFFF' : '#212121';\n}\n\n/**\n * Build palette color from color scale.\n *\n * @param scale - 11-shade color scale\n * @param mode - Light or dark mode\n * @returns Palette color with channels\n */\nexport function buildPaletteColor(scale: ColorScale, mode: 'light' | 'dark' = 'light'): PaletteColorWithChannels {\n // Determine main color and calculate appropriate contrast text\n const mainColor = mode === 'dark' ? scale[400] : scale[500];\n const contrastText = getContrastText(mainColor);\n\n const color: PaletteColor =\n mode === 'dark'\n ? {\n lighter: scale[950],\n light: scale[700],\n main: mainColor,\n dark: scale[300],\n darker: scale[100],\n contrastText,\n }\n : {\n lighter: scale[50],\n light: scale[400],\n main: mainColor,\n dark: scale[600],\n darker: scale[900],\n contrastText,\n };\n\n return generatePaletteColorWithChannels(color);\n}\n\n// =============================================================================\n// BACKGROUND BUILDER\n// =============================================================================\n\nexport interface BackgroundColors {\n default: string;\n paper: string;\n neutral: string;\n elevation1: string;\n elevation2: string;\n elevation3: string;\n elevation4: string;\n menu: string;\n menuElevation1: string;\n menuElevation2: string;\n}\n\n/**\n * Build background palette from grey scale.\n *\n * @param grey - Grey color scale\n * @param mode - Light or dark mode\n * @returns Background colors\n */\nexport function buildBackground(grey: ColorScale, mode: 'light' | 'dark' = 'light'): BackgroundColors {\n if (mode === 'dark') {\n return {\n default: grey[950],\n paper: grey[900],\n neutral: grey[800],\n elevation1: grey[800],\n elevation2: grey[700],\n elevation3: grey[600],\n elevation4: grey[500],\n menu: grey[900],\n menuElevation1: grey[800],\n menuElevation2: grey[700],\n };\n }\n\n return {\n default: '#FFFFFF',\n paper: '#FFFFFF',\n neutral: grey[50],\n elevation1: grey[50],\n elevation2: grey[100],\n elevation3: grey[200],\n elevation4: grey[300],\n menu: '#FFFFFF',\n menuElevation1: grey[50],\n menuElevation2: grey[100],\n };\n}\n\n// =============================================================================\n// TEXT BUILDER\n// =============================================================================\n\nexport interface TextColors {\n primary: string;\n secondary: string;\n disabled: string;\n primaryChannel: string;\n secondaryChannel: string;\n disabledChannel: string;\n}\n\n/**\n * Build text colors from grey scale.\n *\n * @param grey - Grey color scale\n * @param mode - Light or dark mode\n * @returns Text colors with channels\n */\nexport function buildText(grey: ColorScale, mode: 'light' | 'dark' = 'light'): TextColors {\n const colors =\n mode === 'dark'\n ? {\n primary: grey[50],\n secondary: grey[300],\n disabled: grey[500],\n }\n : {\n primary: grey[900],\n secondary: grey[600],\n disabled: grey[400],\n };\n\n return {\n ...colors,\n primaryChannel: hexToRgbChannel(colors.primary),\n secondaryChannel: hexToRgbChannel(colors.secondary),\n disabledChannel: hexToRgbChannel(colors.disabled),\n };\n}\n\n// =============================================================================\n// ACTION BUILDER\n// =============================================================================\n\nexport interface ActionColors {\n active: string;\n hover: string;\n selected: string;\n disabled: string;\n disabledBackground: string;\n focus: string;\n}\n\n/**\n * Build action colors from grey scale.\n *\n * @param grey - Grey color scale\n * @param mode - Light or dark mode\n * @returns Action colors\n */\nexport function buildAction(grey: ColorScale, mode: 'light' | 'dark' = 'light'): ActionColors {\n if (mode === 'dark') {\n return {\n active: grey[400],\n hover: grey[700],\n selected: grey[700],\n disabled: grey[600],\n disabledBackground: grey[800],\n focus: grey[600],\n };\n }\n\n return {\n active: grey[500],\n hover: grey[100],\n selected: grey[100],\n disabled: grey[400],\n disabledBackground: grey[200],\n focus: grey[300],\n };\n}\n\n// =============================================================================\n// VIBRANT BUILDER\n// =============================================================================\n\n/**\n * Build vibrant colors for overlays and glass effects.\n *\n * @param commonWhiteChannel - White color channel\n * @param textPrimary - Primary text color\n * @param mode - Light or dark mode\n * @returns Vibrant palette\n */\nexport function buildVibrant(\n commonWhiteChannel: string,\n textPrimary: string,\n mode: 'light' | 'dark' = 'light'\n): VibrantPalette {\n const textChannel = hexToRgbChannel(textPrimary);\n\n return {\n listItemHover: cssVarRgba(commonWhiteChannel, mode === 'dark' ? 0.08 : 0.5),\n buttonHover: cssVarRgba(commonWhiteChannel, mode === 'dark' ? 0.12 : 0.7),\n textFieldHover: cssVarRgba(commonWhiteChannel, mode === 'dark' ? 0.12 : 0.7),\n text: {\n secondary: cssVarRgba(textChannel, 0.76),\n disabled: cssVarRgba(textChannel, 0.4),\n },\n overlay: cssVarRgba(commonWhiteChannel, mode === 'dark' ? 0.16 : 0.7),\n };\n}\n\n// =============================================================================\n// CHART COLORS BUILDER\n// =============================================================================\n\n/**\n * Build chart color palette.\n *\n * @param options - Color scales for charts\n * @returns Chart palette\n */\nexport function buildChartColors(options: {\n grey: ColorScale;\n red: ColorScale;\n blue: ColorScale;\n green: ColorScale;\n orange: ColorScale;\n lightBlue: ColorScale;\n purple: ColorScale;\n}): ChartPalette {\n return {\n chGrey: generateColorScaleWithChannels(options.grey),\n chRed: generateColorScaleWithChannels(options.red),\n chBlue: generateColorScaleWithChannels(options.blue),\n chGreen: generateColorScaleWithChannels(options.green),\n chOrange: generateColorScaleWithChannels(options.orange),\n chLightBlue: generateColorScaleWithChannels(options.lightBlue),\n chPurple: generateColorScaleWithChannels(options.purple),\n };\n}\n\n// =============================================================================\n// FULL PALETTE BUILDER\n// =============================================================================\n\nexport interface BuildPaletteOptions {\n /** Primary color scale */\n primary: ColorScale;\n /** Secondary color scale */\n secondary: ColorScale;\n /** Info color scale */\n info: ColorScale;\n /** Success color scale */\n success: ColorScale;\n /** Warning color scale */\n warning: ColorScale;\n /** Error color scale */\n error: ColorScale;\n /** Neutral/grey color scale */\n grey: ColorScale;\n /** Light or dark mode */\n mode: 'light' | 'dark';\n /** Custom background default color */\n backgroundDefault?: string;\n /** Custom paper color */\n paperColor?: string;\n}\n\n/**\n * Build complete MUI-compatible palette.\n *\n * @param options - Palette build options\n * @returns Complete MUI palette options\n */\nexport function buildPalette(options: BuildPaletteOptions): PaletteOptions {\n const { primary, secondary, info, success, warning, error, grey, mode, backgroundDefault, paperColor } = options;\n\n const greyWithChannels = generateColorScaleWithChannels(grey);\n const background = buildBackground(grey, mode);\n const text = buildText(grey, mode);\n const action = buildAction(grey, mode);\n\n // Override with custom colors if provided\n if (backgroundDefault) {\n background.default = backgroundDefault;\n }\n if (paperColor) {\n background.paper = paperColor;\n background.menu = paperColor;\n }\n\n const common = {\n black: basic.black,\n white: basic.white,\n blackChannel: hexToRgbChannel(basic.black),\n whiteChannel: hexToRgbChannel(basic.white),\n };\n\n const vibrant = buildVibrant(common.whiteChannel, text.primary, mode);\n\n const chart = buildChartColors({\n grey,\n red,\n blue,\n green,\n orange,\n lightBlue,\n purple,\n });\n\n // Dividers\n const divider = mode === 'dark' ? grey[700] : grey[300];\n const dividerLight = cssVarRgba(hexToRgbChannel(grey[mode === 'dark' ? 700 : 300]), 0.6);\n const menuDivider = cssVarRgba(hexToRgbChannel(grey[700]), 0);\n\n return {\n mode,\n common,\n grey: greyWithChannels,\n primary: buildPaletteColor(primary, mode),\n secondary: buildPaletteColor(secondary, mode),\n info: buildPaletteColor(info, mode),\n success: buildPaletteColor(success, mode),\n warning: buildPaletteColor(warning, mode),\n error: buildPaletteColor(error, mode),\n neutral: buildPaletteColor(grey, mode),\n background,\n text,\n action,\n divider,\n dividerLight,\n menuDivider,\n vibrant,\n chart,\n } as PaletteOptions;\n}\n\n// =============================================================================\n// DEFAULT PALETTES\n// =============================================================================\n\n/**\n * Default light palette.\n */\nexport const defaultLightPalette = buildPalette({\n primary: blue,\n secondary: purple,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: baseGrey,\n mode: 'light',\n});\n\n/**\n * Default dark palette.\n */\nexport const defaultDarkPalette = buildPalette({\n primary: blue,\n secondary: purple,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: baseGrey,\n mode: 'dark',\n});\n","/**\n * Shared Theme Utilities for Component Overrides\n *\n * Centralized color channel helpers and density utilities.\n * Used across all component override modules.\n *\n * @module @omnitron-dev/prism/theme/components/theme-utils\n */\n\nimport type { Theme } from '@mui/material/styles';\nimport type { ComponentsConfig } from '../../types/theme.js';\n\n// =============================================================================\n// COLOR CHANNEL HELPERS\n// =============================================================================\n\n/**\n * Safely get a grey color channel from theme.vars or return fallback.\n * MUI's Color type doesn't include channel properties, so we access dynamically.\n */\nexport function getGreyChannel(theme: Theme, shade: '500' | '900' = '500'): string {\n const channelKey = `${shade}Channel` as const;\n const vars = theme.vars?.palette.grey as Record<string, string> | undefined;\n const fallbacks: Record<string, string> = {\n '500': '145 158 171',\n '900': '0 0 0',\n };\n return vars?.[channelKey] ?? fallbacks[shade];\n}\n\n/**\n * Safely get a semantic color channel from theme.vars.\n */\nexport function getColorChannel(theme: Theme, color: 'primary' | 'success' | 'error' | 'warning' | 'info'): string {\n const vars = theme.vars?.palette[color] as { mainChannel?: string } | undefined;\n const fallbacks: Record<string, string> = {\n primary: '51 133 240',\n success: '9 159 105',\n error: '208 34 65',\n warning: '246 141 42',\n info: '13 166 214',\n };\n return vars?.mainChannel ?? fallbacks[color];\n}\n\n// =============================================================================\n// DENSITY HELPERS\n// =============================================================================\n\n/**\n * Get density multiplier from config.\n */\nexport function getDensityMultiplier(density: ComponentsConfig['density']): number {\n switch (density) {\n case 'compact':\n return 0.75;\n case 'comfortable':\n return 1.25;\n default:\n return 1;\n }\n}\n","/**\n * Button Component Overrides\n *\n * MUI Button customization with custom variants: soft, dashed, shapes.\n *\n * @module @omnitron-dev/prism/theme/components/Button\n */\n\nimport type { Components, Theme, ButtonProps, ComponentsVariants } from '@mui/material';\nimport type { ComponentsConfig } from '../../types/theme.js';\n\nimport { buttonClasses } from '@mui/material/Button';\n\nimport { getDensityMultiplier } from './theme-utils.js';\n\n// =============================================================================\n// MODULE AUGMENTATION\n// =============================================================================\n\ndeclare module '@mui/material/Button' {\n interface ButtonPropsVariantOverrides {\n /** Soft variant - subtle background with colored text */\n soft: true;\n /** Dashed variant - dashed border */\n dashed: true;\n }\n\n interface ButtonPropsColorOverrides {\n /** Neutral color option */\n neutral: true;\n }\n\n interface ButtonPropsSizeOverrides {\n /** Extra-large size */\n xLarge: true;\n }\n\n interface ButtonOwnProps {\n /** Shape variant for icon buttons */\n shape?: 'square' | 'circle';\n }\n}\n\n// =============================================================================\n// HELPERS\n// =============================================================================\n\ntype PaletteColorKey = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error';\ntype ButtonVariants = ComponentsVariants<Theme>['MuiButton'];\n\nconst btnColors: PaletteColorKey[] = ['primary', 'secondary', 'info', 'success', 'warning', 'error'];\n\n// =============================================================================\n// SOFT VARIANT\n// =============================================================================\n\nconst softVariants = [\n ...btnColors.map((color) => ({\n props: { variant: 'soft' as const, color: color as ButtonProps['color'] },\n style: ({ theme }: { theme: Theme }) => ({\n backgroundColor: `rgba(var(--prism-${color}-main-channel, 51 133 240) / 0.16)`,\n color: theme.vars?.palette[color]?.dark || theme.palette[color].dark,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: `rgba(var(--prism-${color}-main-channel, 51 133 240) / 0.32)`,\n boxShadow: 'none',\n },\n '&:active': {\n backgroundColor: `rgba(var(--prism-${color}-main-channel, 51 133 240) / 0.4)`,\n },\n }),\n })),\n // Neutral soft variant\n {\n props: { variant: 'soft' as const, color: 'neutral' as ButtonProps['color'] },\n style: ({ theme }: { theme: Theme }) => ({\n backgroundColor: theme.vars?.palette.background.elevation2 || theme.palette.grey[100],\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: theme.vars?.palette.background.elevation3 || theme.palette.grey[200],\n boxShadow: 'none',\n },\n }),\n },\n // Inherit soft variant\n {\n props: { variant: 'soft' as const, color: 'inherit' as ButtonProps['color'] },\n style: ({ theme }: { theme: Theme }) => ({\n backgroundColor: theme.vars?.palette.action.selected || theme.palette.action.selected,\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n boxShadow: 'none',\n },\n }),\n },\n] satisfies ButtonVariants;\n\n// =============================================================================\n// DASHED VARIANT\n// =============================================================================\n\nconst dashedVariants = [\n ...btnColors.map((color) => ({\n props: { variant: 'dashed' as const, color: color as ButtonProps['color'] },\n style: ({ theme }: { theme: Theme }) => ({\n border: `1px dashed ${theme.vars?.palette[color]?.main || theme.palette[color].main}`,\n backgroundColor: 'transparent',\n color: theme.vars?.palette[color]?.main || theme.palette[color].main,\n '&:hover': {\n backgroundColor: `rgba(var(--prism-${color}-main-channel, 51 133 240) / 0.08)`,\n borderColor: theme.vars?.palette[color]?.dark || theme.palette[color].dark,\n },\n }),\n })),\n // Inherit dashed variant\n {\n props: { variant: 'dashed' as const, color: 'inherit' as ButtonProps['color'] },\n style: ({ theme }: { theme: Theme }) => ({\n border: `1px dashed ${theme.vars?.palette.grey?.[500] || theme.palette.grey[500]}`,\n backgroundColor: 'transparent',\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n borderColor: theme.vars?.palette.text.primary || theme.palette.text.primary,\n },\n }),\n },\n] satisfies ButtonVariants;\n\n// =============================================================================\n// SHAPE VARIANTS\n// =============================================================================\n\nconst shapes = ['circle', 'square'] as const;\nconst shapeSizes: Record<string, number> = { small: 30, medium: 36, large: 42, xLarge: 52 };\n\nconst shapeVariants = shapes.flatMap((shape) =>\n Object.keys(shapeSizes).map((size) => ({\n props: { shape, size: size as ButtonProps['size'] },\n style: {\n height: shapeSizes[size],\n minWidth: shapeSizes[size],\n padding: 0,\n borderRadius: shape === 'circle' ? '50%' : undefined,\n },\n }))\n) satisfies ButtonVariants;\n\n// =============================================================================\n// OUTLINED NEUTRAL VARIANT\n// =============================================================================\n\nconst outlinedNeutralVariants = [\n {\n props: { variant: 'outlined' as const, color: 'neutral' as ButtonProps['color'] },\n style: ({ theme }: { theme: Theme }) => ({\n borderColor: theme.vars?.palette.divider || theme.palette.divider,\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n '&:hover': {\n backgroundColor: theme.vars?.palette.background.elevation2 || theme.palette.grey[100],\n borderColor: theme.vars?.palette.text.secondary || theme.palette.text.secondary,\n },\n }),\n },\n] satisfies ButtonVariants;\n\n// =============================================================================\n// DISABLED VARIANTS\n// =============================================================================\n\nconst disabledVariants = [\n {\n props: { variant: 'soft' as const },\n style: ({ theme }: { theme: Theme }) => ({\n [`&.${buttonClasses.disabled}`]: {\n backgroundColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground,\n },\n }),\n },\n {\n props: { variant: 'dashed' as const },\n style: ({ theme }: { theme: Theme }) => ({\n [`&.${buttonClasses.disabled}`]: {\n borderStyle: 'dashed',\n },\n }),\n },\n] satisfies ButtonVariants;\n\n// =============================================================================\n// MAIN EXPORT\n// =============================================================================\n\nexport function createButtonOverrides(config: ComponentsConfig): Components<Theme>['MuiButton'] {\n const { borderRadius, density } = config;\n const dm = getDensityMultiplier(density);\n\n const sizeVariants = [\n {\n props: { size: 'xLarge' as const },\n style: {\n minHeight: 56,\n fontSize: '15px',\n padding: `${10 * dm}px ${22 * dm}px`,\n lineHeight: 1.467,\n },\n },\n ] satisfies ButtonVariants;\n\n return {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n textTransform: 'none',\n fontSize: '14px',\n fontWeight: 600,\n borderRadius,\n padding: `${8 * dm}px ${16 * dm}px`,\n lineHeight: 1.429,\n variants: [\n ...softVariants,\n ...dashedVariants,\n ...shapeVariants,\n ...outlinedNeutralVariants,\n ...sizeVariants,\n ...disabledVariants,\n ],\n },\n sizeLarge: {\n fontSize: '16px',\n padding: `${10 * dm}px ${22 * dm}px`,\n lineHeight: 1.375,\n },\n sizeSmall: {\n padding: `${6 * dm}px ${10 * dm}px`,\n fontSize: '13px',\n lineHeight: 1.286,\n },\n outlinedSizeLarge: {\n paddingTop: 9 * dm,\n paddingBottom: 9 * dm,\n },\n outlinedSizeMedium: {\n paddingTop: 7 * dm,\n paddingBottom: 7 * dm,\n },\n outlinedSizeSmall: {\n paddingTop: 5 * dm,\n paddingBottom: 5 * dm,\n },\n startIcon: {\n marginRight: 4,\n [`& > *:first-of-type`]: {\n fontSize: 16,\n },\n },\n endIcon: {\n marginLeft: 4,\n [`& > *:first-of-type`]: {\n fontSize: 16,\n },\n },\n },\n };\n}\n\nexport function createButtonBaseOverrides(): Components<Theme>['MuiButtonBase'] {\n return {\n defaultProps: {\n disableRipple: false,\n },\n };\n}\n\nexport function createButtonGroupOverrides(config: ComponentsConfig): Components<Theme>['MuiButtonGroup'] {\n return {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: config.borderRadius,\n },\n },\n };\n}\n","/**\n * Theme Mixins\n *\n * Reusable style utilities for component overrides.\n * Based on Minimals template patterns.\n *\n * @module @omnitron-dev/prism/theme/mixins\n */\n\nimport type { Theme, CSSObject } from '@mui/material/styles';\nimport { varAlpha } from './utils/color.js';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Color key types for style variants.\n */\nexport type PaletteColorKey = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error';\nexport type CommonColorsKeys = 'black' | 'white';\nexport type ColorKey = CommonColorsKeys | PaletteColorKey | 'default' | 'inherit';\n\n/**\n * Options for style variants.\n */\nexport interface StyleOptions {\n hover?: boolean | CSSObject;\n}\n\n/**\n * Options for paper styles.\n */\nexport interface PaperStyleOptions {\n blur?: number;\n color?: string;\n dropdown?: boolean;\n}\n\n/**\n * Background gradient options.\n */\nexport interface BgGradientOptions {\n images?: string[];\n sizes?: string[];\n positions?: string[];\n colors?: string[];\n direction?: string;\n}\n\n// Re-export varAlpha for backwards compatibility\nexport { varAlpha } from './utils/color.js';\n\n/**\n * Helper to generate hover styles.\n */\nfunction getHoverStyles(hoverOption: StyleOptions['hover'], hoverBase: CSSObject): CSSObject {\n if (!hoverOption) return {};\n\n return {\n '&:hover': {\n ...hoverBase,\n ...(typeof hoverOption === 'object' ? hoverOption : {}),\n },\n };\n}\n\n// =============================================================================\n// STYLE VARIANTS\n// =============================================================================\n\n/**\n * Generate filled style variant for components.\n *\n * @example\n * ```tsx\n * // In component styleOverrides\n * ...filledStyles(theme, 'primary', { hover: true })\n * ...filledStyles(theme, 'inherit', { hover: { boxShadow: theme.vars.customShadows.z8 } })\n * ```\n */\nexport function filledStyles(theme: Theme, colorKey: ColorKey, options?: StyleOptions): CSSObject {\n if (!colorKey) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Prism filledStyles] Missing colorKey parameter.');\n }\n return {};\n }\n\n const palette = theme.vars?.palette || theme.palette;\n const grey = palette.grey;\n\n if (colorKey === 'default') {\n const base: CSSObject = {\n color: grey[800],\n backgroundColor: grey[300],\n };\n const hover = getHoverStyles(options?.hover, {\n backgroundColor: grey[400],\n });\n return { ...base, ...hover };\n }\n\n if (colorKey === 'inherit') {\n const base: CSSObject = {\n color: palette.common.white,\n backgroundColor: grey[800],\n };\n const hover = getHoverStyles(options?.hover, {\n backgroundColor: grey[700],\n });\n return { ...base, ...hover };\n }\n\n if (colorKey === 'white' || colorKey === 'black') {\n const oppositeColor = colorKey === 'white' ? 'black' : 'white';\n const base: CSSObject = {\n color: palette.common[oppositeColor],\n backgroundColor: palette.common[colorKey],\n };\n const hover = getHoverStyles(options?.hover, {\n opacity: 0.8,\n });\n return { ...base, ...hover };\n }\n\n // Palette colors (primary, secondary, info, success, warning, error)\n const paletteColor = palette[colorKey];\n const base: CSSObject = {\n color: paletteColor.contrastText,\n backgroundColor: paletteColor.main,\n };\n const hover = getHoverStyles(options?.hover, {\n backgroundColor: paletteColor.dark,\n });\n\n return { ...base, ...hover };\n}\n\n/**\n * Generate soft style variant for components.\n *\n * @example\n * ```tsx\n * // In component styleOverrides\n * ...softStyles(theme, 'primary')\n * ...softStyles(theme, 'inherit', { hover: true })\n * ```\n */\nexport function softStyles(theme: Theme, colorKey: ColorKey, options?: StyleOptions): CSSObject {\n if (!colorKey) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Prism softStyles] Missing colorKey parameter.');\n }\n return {};\n }\n\n const palette = theme.vars?.palette || theme.palette;\n const grey = palette.grey;\n\n if (colorKey === 'default') {\n return {\n ...filledStyles(theme, 'default', options),\n boxShadow: 'none',\n };\n }\n\n if (colorKey === 'inherit') {\n const greyChannel = (grey as { ['500Channel']?: string })['500Channel'] || '145, 158, 171';\n const base: CSSObject = {\n boxShadow: 'none',\n backgroundColor: varAlpha(greyChannel, 0.16),\n };\n const hover = getHoverStyles(options?.hover, {\n backgroundColor: varAlpha(greyChannel, 0.32),\n });\n return { ...base, ...hover };\n }\n\n if (colorKey === 'white' || colorKey === 'black') {\n const base: CSSObject = {\n boxShadow: 'none',\n color: palette.common[colorKey],\n backgroundColor: varAlpha('currentColor', 0.08),\n };\n const hover = getHoverStyles(options?.hover, {\n backgroundColor: varAlpha('currentColor', 0.16),\n });\n return { ...base, ...hover };\n }\n\n // Palette colors\n const paletteColor = palette[colorKey];\n const mainChannel =\n (paletteColor as { mainChannel?: string }).mainChannel ||\n (palette.primary as { mainChannel?: string }).mainChannel ||\n '51, 133, 240';\n\n const base: CSSObject = {\n boxShadow: 'none',\n color: paletteColor.dark,\n backgroundColor: varAlpha(mainChannel, 0.16),\n };\n const hover = getHoverStyles(options?.hover, {\n backgroundColor: varAlpha(mainChannel, 0.32),\n });\n\n return { ...base, ...hover };\n}\n\n/**\n * Generate background gradient styles.\n *\n * @example\n * ```tsx\n * ...bgGradient({\n * colors: ['rgba(0,0,0,0.5)', 'rgba(0,0,0,0.8)'],\n * direction: 'to bottom'\n * })\n * ```\n */\nexport function bgGradient(options: BgGradientOptions): CSSObject {\n const { images, sizes, positions, colors, direction = 'to bottom' } = options;\n\n if (colors && colors.length > 0) {\n return {\n background: `linear-gradient(${direction}, ${colors.join(', ')})`,\n };\n }\n\n if (images && images.length > 0) {\n return {\n backgroundImage: images.join(', '),\n backgroundSize: sizes?.join(', ') || 'cover',\n backgroundPosition: positions?.join(', ') || 'center',\n backgroundRepeat: 'no-repeat',\n };\n }\n\n return {};\n}\n\n/**\n * Generate blur background styles.\n *\n * @example\n * ```tsx\n * ...bgBlur({ blur: 20, color: 'rgba(255,255,255,0.8)' })\n * ```\n */\nexport function bgBlur(options: { blur?: number; color?: string }): CSSObject {\n const { blur = 20, color = 'rgba(255, 255, 255, 0.8)' } = options;\n\n return {\n backdropFilter: `blur(${blur}px)`,\n WebkitBackdropFilter: `blur(${blur}px)`,\n backgroundColor: color,\n };\n}\n\n/**\n * Generate paper styles with glass effect.\n *\n * @example\n * ```tsx\n * ...paperStyles(theme, { dropdown: true })\n * ```\n */\nexport function paperStyles(theme: Theme, options?: PaperStyleOptions): CSSObject {\n const { blur = 20, color, dropdown } = options ?? {};\n const palette = theme.vars?.palette || theme.palette;\n\n const baseStyles: CSSObject = {\n backdropFilter: `blur(${blur}px)`,\n WebkitBackdropFilter: `blur(${blur}px)`,\n backgroundColor: color ?? varAlpha('255, 255, 255', 0.9),\n };\n\n if (dropdown) {\n const customShadows = (theme as { customShadows?: { dropdown?: string } }).customShadows;\n const greyChannel = (palette.grey as { ['500Channel']?: string })['500Channel'] || '145, 158, 171';\n return {\n ...baseStyles,\n padding: theme.spacing(0.5),\n boxShadow:\n customShadows?.dropdown ||\n `0 0 2px 0 rgba(${greyChannel}, 0.24), -20px 20px 40px -4px rgba(${greyChannel}, 0.24)`,\n borderRadius: `${Number(theme.shape.borderRadius) * 1.25}px`,\n };\n }\n\n return baseStyles;\n}\n\n/**\n * Generate menu item styles.\n *\n * @example\n * ```tsx\n * ...menuItemStyles(theme)\n * ```\n */\nexport function menuItemStyles(theme: Theme): CSSObject {\n const palette = theme.vars?.palette || theme.palette;\n\n return {\n ...theme.typography.body2,\n padding: theme.spacing(0.75, 1),\n borderRadius: Number(theme.shape.borderRadius) * 0.75,\n '&:not(:last-of-type)': {\n marginBottom: 4,\n },\n '&.Mui-selected': {\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: palette.action.selected,\n '&:hover': { backgroundColor: palette.action.hover },\n },\n };\n}\n\n/**\n * Generate max lines text truncation.\n *\n * @example\n * ```tsx\n * ...maxLine({ lines: 2 })\n * ```\n */\nexport function maxLine(options: { lines: number; lineHeight?: number }): CSSObject {\n const { lines, lineHeight = 1.5 } = options;\n\n return {\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n textOverflow: 'ellipsis',\n ...(lineHeight && { lineHeight }),\n };\n}\n\n/**\n * Generate text gradient effect.\n *\n * @example\n * ```tsx\n * ...textGradient('to right', '#FF5630', '#00AB55')\n * ```\n */\nexport function textGradient(direction: string, ...colors: string[]): CSSObject {\n return {\n background: `linear-gradient(${direction}, ${colors.join(', ')})`,\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n backgroundClip: 'text',\n textFillColor: 'transparent',\n display: 'inline-block',\n };\n}\n\n/**\n * Generate border gradient effect using background-clip trick.\n *\n * @example\n * ```tsx\n * ...borderGradient({ color: 'linear-gradient(135deg, #FF5630, #00AB55)', borderWidth: 2 })\n * ```\n */\nexport function borderGradient(options: { color?: string; borderWidth?: number; borderRadius?: number }): CSSObject {\n const { color = 'linear-gradient(135deg, #FF5630, #00AB55)', borderWidth = 2, borderRadius = 0 } = options;\n\n return {\n position: 'relative' as const,\n border: 'none',\n borderRadius,\n '&::before': {\n content: '\"\"',\n position: 'absolute' as const,\n inset: 0,\n borderRadius: 'inherit',\n padding: borderWidth,\n background: color,\n WebkitMask: 'linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)',\n WebkitMaskComposite: 'xor',\n maskComposite: 'exclude',\n pointerEvents: 'none' as const,\n },\n };\n}\n\n/**\n * Generate theme-aware scrollbar styles.\n * Uses CSS variables for proper dark mode support.\n *\n * @example\n * ```tsx\n * ...scrollbarStyles(theme)\n * ```\n */\nexport function scrollbarStyles(theme: Theme): CSSObject {\n const palette = theme.vars?.palette || theme.palette;\n const greyChannel = (palette.grey as { ['500Channel']?: string })['500Channel'] || '145, 158, 171';\n\n return {\n scrollbarWidth: 'thin' as const,\n scrollbarColor: `${varAlpha(greyChannel, 0.4)} ${varAlpha(greyChannel, 0.08)}`,\n '&::-webkit-scrollbar': {\n width: 6,\n height: 6,\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: 'transparent',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: varAlpha(greyChannel, 0.4),\n borderRadius: 3,\n '&:hover': {\n backgroundColor: varAlpha(greyChannel, 0.6),\n },\n },\n };\n}\n\n// =============================================================================\n// KEYFRAME ANIMATIONS\n// =============================================================================\n\n/**\n * Spin animation keyframes (for loading spinners).\n */\nexport const spinKeyframes = {\n '@keyframes prism-spin': {\n from: { transform: 'rotate(0deg)' },\n to: { transform: 'rotate(360deg)' },\n },\n};\n\n/**\n * Dash animation keyframes (for SVG stroke animations).\n */\nexport const dashKeyframes = {\n '@keyframes prism-dash': {\n '0%': { strokeDasharray: '1, 200', strokeDashoffset: 0 },\n '50%': { strokeDasharray: '100, 200', strokeDashoffset: -15 },\n '100%': { strokeDasharray: '100, 200', strokeDashoffset: -125 },\n },\n};\n\n/**\n * Pulse animation keyframes.\n */\nexport const pulseKeyframes = {\n '@keyframes prism-pulse': {\n '0%': { transform: 'scale(1)', opacity: 1 },\n '50%': { transform: 'scale(1.05)', opacity: 0.7 },\n '100%': { transform: 'scale(1)', opacity: 1 },\n },\n};\n\n/**\n * Shimmer animation for skeleton loading.\n */\nexport const shimmerKeyframes = {\n '@keyframes prism-shimmer': {\n '0%': { backgroundPosition: '-200% 0' },\n '100%': { backgroundPosition: '200% 0' },\n },\n};\n\n/**\n * Fade in animation.\n */\nexport const fadeInKeyframes = {\n '@keyframes prism-fadeIn': {\n from: { opacity: 0 },\n to: { opacity: 1 },\n },\n};\n\n/**\n * Slide up animation.\n */\nexport const slideUpKeyframes = {\n '@keyframes prism-slideUp': {\n from: { transform: 'translateY(16px)', opacity: 0 },\n to: { transform: 'translateY(0)', opacity: 1 },\n },\n};\n\n// =============================================================================\n// BASIC MIXINS\n// =============================================================================\n\n/**\n * MUI mixins configuration.\n */\nexport const mixins = {\n toolbar: {\n minHeight: 56,\n '@media (min-width:0px)': {\n '@media (orientation: landscape)': {\n minHeight: 48,\n },\n },\n '@media (min-width:600px)': {\n minHeight: 64,\n },\n },\n // Extended mixins\n hideScrollX: {\n msOverflowStyle: 'none' as const,\n scrollbarWidth: 'none' as const,\n overflowX: 'auto' as const,\n '&::-webkit-scrollbar': { display: 'none' },\n },\n hideScrollY: {\n msOverflowStyle: 'none' as const,\n scrollbarWidth: 'none' as const,\n overflowY: 'auto' as const,\n '&::-webkit-scrollbar': { display: 'none' },\n },\n // Style functions (attached at theme creation)\n bgBlur,\n bgGradient,\n maxLine,\n softStyles,\n filledStyles,\n paperStyles,\n menuItemStyles,\n varAlpha,\n textGradient,\n borderGradient,\n scrollbarStyles,\n};\n\n/**\n * Hide scrollbar mixin.\n */\nexport const hideScrollbarMixin = {\n scrollbarWidth: 'none' as const,\n msOverflowStyle: 'none' as const,\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n};\n\n/**\n * Custom scrollbar mixin.\n */\nexport function customScrollbarMixin(theme: Theme): CSSObject {\n const palette = theme.vars?.palette || theme.palette;\n const greyChannel = (palette.grey as { ['500Channel']?: string })['500Channel'] || '145, 158, 171';\n\n return {\n scrollbarWidth: 'thin' as const,\n scrollbarColor: `${varAlpha(greyChannel, 0.4)} ${varAlpha(greyChannel, 0.08)}`,\n '&::-webkit-scrollbar': {\n width: 6,\n height: 6,\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: 'transparent',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: varAlpha(greyChannel, 0.4),\n borderRadius: 3,\n '&:hover': {\n backgroundColor: varAlpha(greyChannel, 0.6),\n },\n },\n };\n}\n\n/**\n * Text overflow ellipsis mixin.\n */\nexport const textEllipsisMixin = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap' as const,\n};\n\n/**\n * Multi-line text overflow mixin.\n */\nexport function multiLineEllipsisMixin(lines: number) {\n return {\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical' as const,\n WebkitLineClamp: lines,\n };\n}\n\n/**\n * Focus visible ring mixin.\n */\nexport const focusRingMixin = {\n '&:focus-visible': {\n outline: 'none',\n boxShadow: '0 0 0 2px var(--prism-background, #FFF), 0 0 0 4px var(--prism-primary, #3385F0)',\n },\n};\n\n/**\n * Glass/blur background mixin.\n */\nexport const glassMixin = {\n backdropFilter: 'blur(20px)',\n backgroundColor: 'var(--prism-vibrant-overlay, rgba(255, 255, 255, 0.7))',\n};\n","/**\n * Chip Component Overrides\n *\n * MUI Chip customization with custom variants: soft, dashed.\n * Follows MUI v7 best practices: chipClasses selectors, slot-based styleOverrides,\n * variants inside styleOverrides.root.\n *\n * @module @omnitron-dev/prism/theme/components/Chip\n */\n\nimport type { Components, Theme, ChipProps, ComponentsVariants } from '@mui/material';\nimport type { ComponentsConfig } from '../../types/theme.js';\n\nimport { chipClasses } from '@mui/material/Chip';\n\nimport { getDensityMultiplier } from './theme-utils.js';\n\n// =============================================================================\n// MODULE AUGMENTATION\n// =============================================================================\n\ndeclare module '@mui/material/Chip' {\n interface ChipPropsVariantOverrides {\n /** Soft variant - subtle background with colored text */\n soft: true;\n /** Dashed variant - dashed border */\n dashed: true;\n }\n\n interface ChipPropsColorOverrides {\n /** Neutral color option */\n neutral: true;\n }\n\n interface ChipPropsSizeOverrides {\n /** Extra-small size */\n xSmall: true;\n }\n}\n\n// =============================================================================\n// HELPERS\n// =============================================================================\n\ntype PaletteColorKey = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error';\nconst chipColors: PaletteColorKey[] = ['primary', 'secondary', 'info', 'success', 'warning', 'error'];\n\ntype ChipVariants = ComponentsVariants<Theme>['MuiChip'];\n\n// =============================================================================\n// SOFT VARIANT\n// =============================================================================\n\nconst softVariants = [\n ...chipColors.map((color) => ({\n props: (props: ChipProps) => props.variant === 'soft' && props.color === color,\n style: ({ theme }: { theme: Theme }) => ({\n backgroundColor: `rgba(var(--prism-${color}-main-channel, 51 133 240) / 0.16)`,\n color: theme.vars?.palette[color]?.dark || theme.palette[color].dark,\n }),\n })),\n // Neutral soft variant\n {\n props: (props: ChipProps) => props.variant === 'soft' && props.color === 'neutral',\n style: ({ theme }: { theme: Theme }) => ({\n backgroundColor: theme.vars?.palette.background.elevation2 || theme.palette.grey[100],\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n }),\n },\n // Default soft variant (no color specified)\n {\n props: (props: ChipProps) => props.variant === 'soft' && !props.color,\n style: ({ theme }: { theme: Theme }) => ({\n backgroundColor: theme.vars?.palette.background.elevation2 || theme.palette.grey[100],\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n }),\n },\n] satisfies ChipVariants;\n\n// =============================================================================\n// DASHED VARIANT\n// =============================================================================\n\nconst dashedVariants = [\n ...chipColors.map((color) => ({\n props: (props: ChipProps) => props.variant === 'dashed' && props.color === color,\n style: ({ theme }: { theme: Theme }) => ({\n border: `1px dashed ${theme.vars?.palette[color]?.main || theme.palette[color].main}`,\n backgroundColor: 'transparent',\n color: theme.vars?.palette[color]?.main || theme.palette[color].main,\n }),\n })),\n // Neutral dashed variant\n {\n props: (props: ChipProps) => props.variant === 'dashed' && props.color === 'neutral',\n style: ({ theme }: { theme: Theme }) => ({\n border: `1px dashed ${theme.vars?.palette.divider || theme.palette.divider}`,\n backgroundColor: 'transparent',\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n }),\n },\n] satisfies ChipVariants;\n\n// =============================================================================\n// OUTLINED NEUTRAL VARIANT\n// =============================================================================\n\nconst outlinedNeutralVariant = [\n {\n props: (props: ChipProps) => props.variant === 'outlined' && props.color === 'neutral',\n style: ({ theme }: { theme: Theme }) => ({\n borderColor: theme.vars?.palette.divider || theme.palette.divider,\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n }),\n },\n] satisfies ChipVariants;\n\n// =============================================================================\n// FILLED NEUTRAL VARIANT\n// =============================================================================\n\nconst filledNeutralVariant = [\n {\n props: (props: ChipProps) => props.variant === 'filled' && props.color === 'neutral',\n style: ({ theme }: { theme: Theme }) => ({\n backgroundColor: theme.vars?.palette.grey[300] || theme.palette.grey[300],\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n }),\n },\n] satisfies ChipVariants;\n\n// =============================================================================\n// DISABLED VARIANTS\n// =============================================================================\n\nconst disabledVariants = [\n {\n props: {},\n style: ({ theme }: { theme: Theme }) => ({\n [`&.${chipClasses.disabled}`]: {\n opacity: 1,\n color: theme.vars?.palette.action.disabled || theme.palette.action.disabled,\n [`&:not(.${chipClasses.outlined})`]: {\n backgroundColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground,\n },\n [`&.${chipClasses.outlined}`]: {\n borderColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground,\n },\n },\n }),\n },\n] satisfies ChipVariants;\n\n// =============================================================================\n// XSMALL SIZE VARIANT\n// =============================================================================\n\nconst xSmallVariant = [\n {\n props: { size: 'xSmall' as const },\n style: {\n height: 20,\n fontSize: '0.6875rem',\n padding: '0 6px',\n },\n },\n] satisfies ChipVariants;\n\n// =============================================================================\n// MAIN EXPORT\n// =============================================================================\n\nexport function createChipOverrides(config: ComponentsConfig): Components<Theme>['MuiChip'] {\n const { borderRadius, density } = config;\n const densityMultiplier = getDensityMultiplier(density);\n\n return {\n styleOverrides: {\n root: {\n borderRadius,\n fontWeight: 500,\n variants: [\n ...softVariants,\n ...dashedVariants,\n ...outlinedNeutralVariant,\n ...filledNeutralVariant,\n ...disabledVariants,\n ...xSmallVariant,\n ],\n },\n sizeSmall: {\n height: 24 * densityMultiplier,\n },\n sizeMedium: {\n height: 32 * densityMultiplier,\n },\n label: {\n fontWeight: 500,\n },\n labelSmall: {\n fontSize: '0.75rem',\n paddingLeft: 8,\n paddingRight: 8,\n },\n labelMedium: {\n fontSize: '0.8125rem',\n paddingLeft: 12,\n paddingRight: 12,\n },\n icon: {\n fontSize: 18,\n color: 'currentColor',\n },\n deleteIcon: {\n fontSize: 18,\n opacity: 0.48,\n color: 'currentColor',\n '&:hover': {\n opacity: 0.8,\n color: 'currentColor',\n },\n },\n },\n };\n}\n","/**\n * TextField Component Overrides\n *\n * Refined styling for text inputs based on Minimals patterns.\n * Uses MUI v7 class constants for type-safe selectors.\n *\n * @module @omnitron-dev/prism/theme/components/TextField\n */\n\nimport type { Theme, Components, CSSObject } from '@mui/material/styles';\nimport type { ComponentsConfig } from '../../types/theme.js';\nimport { varAlpha } from '../mixins.js';\nimport { getGreyChannel } from './theme-utils.js';\n\nimport { inputBaseClasses } from '@mui/material/InputBase';\nimport { outlinedInputClasses } from '@mui/material/OutlinedInput';\nimport { filledInputClasses } from '@mui/material/FilledInput';\nimport { inputAdornmentClasses } from '@mui/material/InputAdornment';\nimport { inputLabelClasses } from '@mui/material/InputLabel';\n\n// =============================================================================\n// CONSTANTS\n// =============================================================================\n\n/**\n * Input typography configuration.\n */\nexport const INPUT_TYPOGRAPHY = {\n fontSize: { base: 15, responsive: 16 },\n lineHeight: 24,\n} as const;\n\n/**\n * Input padding configuration for different variants and sizes.\n */\nexport const INPUT_PADDING: Record<string, Record<string, CSSObject>> = {\n base: {\n small: { paddingTop: 0, paddingBottom: 4 },\n medium: { paddingTop: 4, paddingBottom: 4 },\n },\n outlined: {\n small: { paddingTop: 8, paddingBottom: 8 },\n medium: { paddingTop: 16, paddingBottom: 16 },\n },\n filled: {\n small: { paddingTop: 20 },\n medium: { paddingTop: 24 },\n smallHidden: { paddingTop: 8, paddingBottom: 8 },\n mediumHidden: { paddingTop: 16, paddingBottom: 16 },\n },\n};\n\n// =============================================================================\n// HELPERS\n// =============================================================================\n\n/**\n * Get input typography styles.\n */\nexport function getInputTypography(theme: Theme, keys: Array<'fontSize' | 'height' | 'lineHeight'>): CSSObject {\n const { fontSize, lineHeight } = INPUT_TYPOGRAPHY;\n\n const baseStyles = {\n fontSize: theme.typography.pxToRem(fontSize.base),\n height: `${lineHeight}px`,\n lineHeight: `${lineHeight}px`,\n };\n\n const responsiveStyles = {\n fontSize: theme.typography.pxToRem(fontSize.responsive),\n height: `${lineHeight}px`,\n lineHeight: `${lineHeight}px`,\n };\n\n return {\n ...Object.fromEntries(keys.map((k) => [k, baseStyles[k]])),\n [theme.breakpoints.down('sm')]: Object.fromEntries(keys.map((k) => [k, responsiveStyles[k]])),\n };\n}\n\n// =============================================================================\n// COLOR CHANNEL HELPERS\n// =============================================================================\n\n/**\n * Safely access error channel from theme with fallback.\n */\nfunction getErrorChannel(theme: Theme): string {\n const vars = theme.vars?.palette.error as Record<string, string> | undefined;\n return vars?.mainChannel ?? '208 34 65';\n}\n\n// =============================================================================\n// COMPONENT OVERRIDES\n// =============================================================================\n\n/**\n * Create InputBase overrides.\n */\nexport function createInputBaseOverrides(_config: ComponentsConfig): Components<Theme>['MuiInputBase'] {\n return {\n styleOverrides: {\n root: ({ theme }) => ({\n '--disabled-color': theme.vars?.palette.action.disabled || theme.palette.action.disabled,\n ...getInputTypography(theme, ['lineHeight']),\n [`&.${inputBaseClasses.disabled}`]: {\n [`& .${inputAdornmentClasses.root} *`]: { color: 'var(--disabled-color)' },\n },\n }),\n input: ({ theme }) => ({\n ...getInputTypography(theme, ['fontSize', 'height', 'lineHeight']),\n '&:focus': { borderRadius: 'inherit' },\n '&::placeholder': {\n color: theme.vars?.palette.text.disabled || theme.palette.text.disabled,\n opacity: 1,\n },\n }),\n },\n };\n}\n\n/**\n * Create Input (standard variant underline) overrides.\n */\nexport function createInputOverrides(_config: ComponentsConfig): Components<Theme>['MuiInput'] {\n return {\n styleOverrides: {\n root: ({ theme }) => ({\n '&::before': {\n borderBottomColor: varAlpha(getGreyChannel(theme), 0.2),\n },\n '&::after': {\n borderBottomColor: theme.vars?.palette.text.primary || theme.palette.text.primary,\n },\n }),\n },\n };\n}\n\n/**\n * Create OutlinedInput overrides.\n */\nexport function createOutlinedInputOverrides(config: ComponentsConfig): Components<Theme>['MuiOutlinedInput'] {\n const { borderRadius } = config;\n\n return {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius,\n [`&.${outlinedInputClasses.focused}:not(.${outlinedInputClasses.error})`]: {\n [`& .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.vars?.palette.text.primary || theme.palette.text.primary,\n },\n },\n [`&.${outlinedInputClasses.disabled}`]: {\n [`& .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground,\n },\n },\n }),\n input: {\n ...INPUT_PADDING.outlined.medium,\n '&.MuiInputBase-inputSizeSmall': {\n ...INPUT_PADDING.outlined.small,\n },\n '&.MuiInputBase-inputMultiline': {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n notchedOutline: ({ theme }) => ({\n borderColor: varAlpha(getGreyChannel(theme), 0.2),\n transition: theme.transitions.create(['border-color'], {\n duration: theme.transitions.duration.shortest,\n }),\n // Align fieldset font-size with InputLabel (14px) so the legend\n // notch width (0.75em) matches the visually-scaled label exactly.\n fontSize: theme.typography.pxToRem(14),\n '& legend > span': { paddingInline: 3 },\n }),\n },\n };\n}\n\n/**\n * Create FilledInput overrides.\n */\nexport function createFilledInputOverrides(config: ComponentsConfig): Components<Theme>['MuiFilledInput'] {\n const { borderRadius } = config;\n\n return {\n defaultProps: {\n disableUnderline: true,\n },\n styleOverrides: {\n root: ({ theme }) => {\n const greyChannel = getGreyChannel(theme);\n const errChannel = getErrorChannel(theme);\n const baseBg = varAlpha(greyChannel, 0.08);\n const hoverBg = varAlpha(greyChannel, 0.16);\n const errorBg = varAlpha(errChannel, 0.08);\n const errorHoverBg = varAlpha(errChannel, 0.16);\n const disabledBg = theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground;\n\n return {\n backgroundColor: baseBg,\n borderRadius,\n [`&:hover, &.${filledInputClasses.focused}`]: { backgroundColor: hoverBg },\n [`&.${filledInputClasses.error}`]: {\n backgroundColor: errorBg,\n [`&:hover, &.${filledInputClasses.focused}`]: { backgroundColor: errorHoverBg },\n },\n [`&.${filledInputClasses.disabled}`]: { backgroundColor: disabledBg },\n };\n },\n input: {\n ...INPUT_PADDING.filled.medium,\n '&.MuiInputBase-inputSizeSmall': {\n ...INPUT_PADDING.filled.small,\n },\n '&.MuiInputBase-inputMultiline': {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n },\n };\n}\n\n/**\n * Create TextField overrides.\n */\nexport function createTextFieldOverrides(config: ComponentsConfig): Components<Theme>['MuiTextField'] {\n return {\n defaultProps: {\n variant: 'outlined',\n size: config.density === 'compact' ? 'small' : 'medium',\n },\n };\n}\n\n/**\n * Create InputLabel overrides with shrink variants.\n */\nexport function createInputLabelOverrides(_config: ComponentsConfig): Components<Theme>['MuiInputLabel'] {\n return {\n styleOverrides: {\n root: ({ theme }) => ({\n fontSize: theme.typography.pxToRem(14),\n lineHeight: 1.5,\n variants: [\n {\n props: (props: Record<string, unknown>) => !props.shrink,\n style: {\n ...getInputTypography(theme, ['fontSize', 'lineHeight']),\n color: theme.vars?.palette.text.disabled || theme.palette.text.disabled,\n },\n },\n {\n props: (props: Record<string, unknown>) => !!props.shrink,\n style: {\n fontWeight: 600,\n [`&.${inputLabelClasses.focused}:not(.${inputLabelClasses.error})`]: {\n color: 'inherit',\n },\n },\n },\n ],\n }),\n },\n };\n}\n\n/**\n * Create FormHelperText overrides with flex layout for icon support.\n */\nexport function createFormHelperTextOverrides(_config: ComponentsConfig): Components<Theme>['MuiFormHelperText'] {\n return {\n defaultProps: {\n component: 'div',\n },\n styleOverrides: {\n root: ({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n marginTop: theme.spacing(0.75),\n fontSize: theme.typography.pxToRem(12),\n lineHeight: 1.5,\n '& > svg': { width: 16, height: 16 },\n }),\n },\n };\n}\n","/**\n * Form Control Component Overrides\n *\n * Refined styling for Checkbox, Radio, Switch, and FormLabel with custom icons.\n * Based on Minimals template patterns with MUI v7 best practices.\n *\n * @module @omnitron-dev/prism/theme/components/FormControls\n */\n\nimport * as React from 'react';\nimport type { Theme, Components, ComponentsVariants } from '@mui/material/styles';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport type { SvgIconProps } from '@mui/material/SvgIcon';\nimport { checkboxClasses } from '@mui/material/Checkbox';\nimport { radioClasses } from '@mui/material/Radio';\nimport { switchClasses } from '@mui/material/Switch';\nimport { formLabelClasses } from '@mui/material/FormLabel';\nimport type { ComponentsConfig } from '../../types/theme.js';\nimport { getGreyChannel } from './theme-utils.js';\nimport { varAlpha } from '../mixins.js';\n\n// =============================================================================\n// CUSTOM ICONS\n// =============================================================================\n\n/**\n * Checkbox unchecked icon.\n */\nexport function CheckboxIcon(props: SvgIconProps): React.ReactNode {\n return (\n <SvgIcon {...props}>\n <path d=\"M17.9 2.318A5 5 0 0 1 22.895 7.1l.005.217v10a5 5 0 0 1-4.783 4.995l-.217.005h-10a5 5 0 0 1-4.995-4.783l-.005-.217v-10a5 5 0 0 1 4.783-4.996l.217-.004h10Zm-.5 1.5h-9a4 4 0 0 0-4 4v9a4 4 0 0 0 4 4h9a4 4 0 0 0 4-4v-9a4 4 0 0 0-4-4Z\" />\n </SvgIcon>\n );\n}\n\n/**\n * Checkbox checked icon.\n */\nexport function CheckboxCheckedIcon(props: SvgIconProps): React.ReactNode {\n return (\n <SvgIcon {...props}>\n <path d=\"M17 2a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5Zm-1.625 7.255-4.13 4.13-1.75-1.75a.881.881 0 0 0-1.24 0c-.34.34-.34.89 0 1.24l2.38 2.37c.17.17.39.25.61.25.23 0 .45-.08.62-.25l4.75-4.75c.34-.34.34-.89 0-1.24a.881.881 0 0 0-1.24 0Z\" />\n </SvgIcon>\n );\n}\n\n/**\n * Checkbox indeterminate icon.\n */\nexport function CheckboxIndeterminateIcon(props: SvgIconProps): React.ReactNode {\n return (\n <SvgIcon {...props}>\n <path d=\"M17,2 C19.7614,2 22,4.23858 22,7 L22,7 L22,17 C22,19.7614 19.7614,22 17,22 L17,22 L7,22 C4.23858,22 2,19.7614 2,17 L2,17 L2,7 C2,4.23858 4.23858,2 7,2 L7,2 Z M15,11 L9,11 C8.44772,11 8,11.4477 8,12 C8,12.5523 8.44772,13 9,13 L15,13 C15.5523,13 16,12.5523 16,12 C16,11.4477 15.5523,11 15,11 Z\" />\n </SvgIcon>\n );\n}\n\n// =============================================================================\n// SWITCH DIMENSIONS\n// =============================================================================\n\nconst SWITCH_DIMENSIONS: Record<\n 'small' | 'medium',\n { thumb: number; track: number; trackRadius: number; translateX: string }\n> = {\n small: { thumb: 10, track: 16, trackRadius: 8, translateX: '10px' },\n medium: { thumb: 14, track: 20, trackRadius: 10, translateX: '14px' },\n};\n\n// =============================================================================\n// SWITCH VARIANT DEFINITIONS\n// =============================================================================\n\ntype SwitchVariants = ComponentsVariants<Theme>['MuiSwitch'];\n\nconst switchColorVariants = [\n {\n props: (props) => props.color === 'default',\n style: ({ theme }) => ({\n [`&.${switchClasses.checked}`]: {\n [`& + .${switchClasses.track}`]: {\n backgroundColor: theme.vars?.palette.text.primary,\n },\n [`& .${switchClasses.thumb}`]: {\n ...theme.applyStyles('dark', {\n color: theme.vars?.palette.grey[800],\n }),\n },\n },\n }),\n },\n] satisfies SwitchVariants;\n\nconst switchCheckedVariants = [\n {\n props: {},\n style: {\n [`&.${switchClasses.checked}`]: {\n transform: `translateX(${SWITCH_DIMENSIONS.medium.translateX})`,\n [`& + .${switchClasses.track}`]: {\n opacity: 1,\n },\n },\n },\n },\n] satisfies SwitchVariants;\n\nconst switchDisabledVariants = [\n {\n props: {},\n style: ({ theme }) => ({\n [`&.${switchClasses.disabled}`]: {\n [`& + .${switchClasses.track}`]: {\n opacity: 0.48,\n },\n [`& .${switchClasses.thumb}`]: {\n ...theme.applyStyles('dark', {\n opacity: 0.48,\n }),\n },\n },\n }),\n },\n] satisfies SwitchVariants;\n\nconst switchSizeVariants = [\n {\n props: (props) => props.size === 'small',\n style: {\n [`& .${switchClasses.switchBase}`]: {\n [`&.${switchClasses.checked}`]: {\n transform: `translateX(${SWITCH_DIMENSIONS.small.translateX})`,\n },\n },\n [`& .${switchClasses.thumb}`]: {\n width: SWITCH_DIMENSIONS.small.thumb,\n height: SWITCH_DIMENSIONS.small.thumb,\n },\n [`& .${switchClasses.track}`]: {\n height: SWITCH_DIMENSIONS.small.track,\n borderRadius: SWITCH_DIMENSIONS.small.trackRadius,\n },\n },\n },\n] satisfies SwitchVariants;\n\n// =============================================================================\n// COMPONENT OVERRIDES\n// =============================================================================\n\n/**\n * Create Checkbox overrides with custom icons.\n * Uses MUI v7 variants inside styleOverrides.root and class constants.\n */\nexport function createCheckboxOverrides(config: ComponentsConfig): Components<Theme>['MuiCheckbox'] {\n return {\n defaultProps: {\n size: config.density === 'compact' ? 'small' : 'medium',\n icon: <CheckboxIcon />,\n checkedIcon: <CheckboxCheckedIcon />,\n indeterminateIcon: <CheckboxIndeterminateIcon />,\n },\n styleOverrides: {\n root: ({ theme }) => ({\n padding: theme.spacing(1),\n variants: [\n {\n props: (props) => props.color === 'default',\n style: {\n [`&.${checkboxClasses.checked}`]: {\n color: theme.vars?.palette.text.primary,\n },\n },\n },\n ...(['primary', 'secondary', 'info', 'success', 'warning', 'error'] as const).map((color) => ({\n props: { color },\n style: {\n '&:hover': {\n backgroundColor: varAlpha(\n (theme.vars?.palette[color] as { mainChannel?: string })?.mainChannel ?? '51 133 240',\n 0.12\n ),\n },\n },\n })),\n ],\n }),\n sizeSmall: {\n '& svg': { fontSize: 16 },\n },\n sizeMedium: {\n '& svg': { fontSize: 20 },\n },\n },\n };\n}\n\n/**\n * Create Radio overrides.\n * Uses radioClasses constants and color === 'default' variant per reference.\n */\nexport function createRadioOverrides(config: ComponentsConfig): Components<Theme>['MuiRadio'] {\n return {\n defaultProps: {\n size: config.density === 'compact' ? 'small' : 'medium',\n },\n styleOverrides: {\n root: ({ theme }) => ({\n padding: theme.spacing(1),\n variants: [\n {\n props: (props) => props.color === 'default',\n style: {\n [`&.${radioClasses.checked}`]: {\n color: theme.vars?.palette.text.primary,\n },\n },\n },\n ],\n }),\n },\n };\n}\n\n/**\n * Create Switch overrides with refined styling.\n * Uses switchClasses constants, variants on switchBase slot, and size variants on root.\n */\nexport function createSwitchOverrides(config: ComponentsConfig): Components<Theme>['MuiSwitch'] {\n return {\n defaultProps: {\n size: config.density === 'compact' ? 'small' : 'medium',\n },\n styleOverrides: {\n root: {\n alignItems: 'center',\n variants: [...switchSizeVariants],\n },\n switchBase: {\n top: 'auto',\n left: '6px',\n variants: [...switchColorVariants, ...switchCheckedVariants, ...switchDisabledVariants],\n },\n thumb: ({ theme }) => ({\n width: SWITCH_DIMENSIONS.medium.thumb,\n height: SWITCH_DIMENSIONS.medium.thumb,\n color: theme.vars?.palette.common.white,\n }),\n track: ({ theme }) => ({\n height: SWITCH_DIMENSIONS.medium.track,\n borderRadius: SWITCH_DIMENSIONS.medium.trackRadius,\n backgroundColor: varAlpha(getGreyChannel(theme), 0.48),\n opacity: 1,\n }),\n },\n };\n}\n\n/**\n * Create FormLabel overrides.\n * Applies label styles to Checkbox, RadioGroup, Switch.\n */\nexport function createFormLabelOverrides(_config: ComponentsConfig): Components<Theme>['MuiFormLabel'] {\n return {\n styleOverrides: {\n root: ({ theme }) => ({\n [`&.${formLabelClasses.disabled}`]: {\n color: theme.vars?.palette.action.disabled,\n },\n variants: [\n {\n props: (props) => !props.error,\n style: {\n [`&.${formLabelClasses.focused}`]: {\n color: theme.vars?.palette.text.secondary,\n },\n },\n },\n ],\n }),\n },\n };\n}\n\n/**\n * Create FormControlLabel overrides.\n */\nexport function createFormControlLabelOverrides(_config: ComponentsConfig): Components<Theme>['MuiFormControlLabel'] {\n return {\n styleOverrides: {\n label: ({ theme }) => ({\n ...theme.typography.body2,\n }),\n },\n };\n}\n\n/**\n * Create FormControl overrides.\n */\nexport function createFormControlOverrides(_config: ComponentsConfig): Components<Theme>['MuiFormControl'] {\n return {\n defaultProps: {\n variant: 'outlined',\n },\n styleOverrides: {\n root: {\n '& .MuiFormLabel-root': {\n marginBottom: 8,\n },\n },\n },\n };\n}\n","/**\n * Tabs Component Overrides\n *\n * MUI v7 best practices: typed class selectors, ComponentsVariants,\n * density-aware sizing via shared getDensityMultiplier.\n *\n * @module @omnitron-dev/prism/theme/components/Tabs\n */\n\nimport type { Theme, Components, ComponentsVariants } from '@mui/material/styles';\nimport type { ComponentsConfig } from '../../types/theme.js';\n\nimport { tabClasses } from '@mui/material/Tab';\nimport { svgIconClasses } from '@mui/material/SvgIcon';\nimport { getDensityMultiplier } from './theme-utils.js';\n\n// =============================================================================\n// VARIANT TYPES\n// =============================================================================\n\ntype TabsVariants = ComponentsVariants<Theme>['MuiTabs'];\ntype TabVariants = ComponentsVariants<Theme>['MuiTab'];\n\n// =============================================================================\n// VARIANTS\n// =============================================================================\n\nconst tabsVariants = {\n root: [\n {\n props: (props: { indicatorColor?: string }) => props.indicatorColor === 'inherit',\n style: {\n '& .MuiTabs-indicator': {\n backgroundColor: 'currentColor',\n },\n },\n },\n ] satisfies TabsVariants,\n list: [\n {\n props: {},\n style: ({ theme }) => ({\n gap: theme.spacing(1),\n }),\n },\n ] satisfies TabsVariants,\n};\n\nconst tabVariants = [\n {\n props: {},\n style: ({ theme }) => ({\n [`&.${tabClasses.selected}`]: {\n fontWeight: 600,\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n },\n }),\n },\n {\n props: (props) => !!props.icon && !!props.label,\n style: {\n minHeight: 'auto',\n },\n },\n] satisfies TabVariants;\n\n// =============================================================================\n// COMPONENT OVERRIDES\n// =============================================================================\n\n/**\n * Create Tabs overrides.\n * Density-aware compact dimensions with indicator styling.\n */\nexport function createTabsOverrides(config: ComponentsConfig): Components<Theme>['MuiTabs'] {\n const dm = getDensityMultiplier(config.density);\n\n return {\n defaultProps: {\n variant: 'scrollable',\n textColor: 'inherit',\n indicatorColor: 'primary',\n allowScrollButtonsMobile: true,\n },\n styleOverrides: {\n root: ({ theme }) => ({\n minHeight: 36 * dm,\n variants: [...tabsVariants.root],\n }),\n list: {\n variants: [...tabsVariants.list],\n },\n indicator: {\n borderRadius: 2,\n },\n },\n };\n}\n\n/**\n * Create Tab overrides.\n * Compact styling with typed class selectors for selected state and icon sizing.\n */\nexport function createTabOverrides(config: ComponentsConfig): Components<Theme>['MuiTab'] {\n const dm = getDensityMultiplier(config.density);\n\n return {\n defaultProps: {\n disableRipple: true,\n iconPosition: 'start',\n },\n styleOverrides: {\n root: ({ theme }) => ({\n padding: 8 * dm,\n minHeight: 36 * dm,\n minWidth: 36 * dm,\n opacity: 1,\n textTransform: 'none',\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.vars?.palette.text.secondary || theme.palette.text.secondary,\n lineHeight: theme.typography.body2.lineHeight,\n [`& .${svgIconClasses.root}`]: {\n fontSize: 20,\n },\n variants: [...tabVariants],\n }),\n },\n };\n}\n","/**\n * Component Overrides\n *\n * MUI component customizations for Prism themes.\n * Combines best practices from Minimals and Aurora templates.\n *\n * Key Features:\n * - Density-based spacing (compact/standard/comfortable)\n * - Custom variants (soft, dashed, shapes)\n * - Refined input styling with proper typography\n * - Custom checkbox/radio/switch icons\n * - Full CSS variable integration\n *\n * @module @omnitron-dev/prism/theme/components\n */\n\nimport type { Components, Theme } from '@mui/material/styles';\nimport type { ComponentsConfig } from '../../types/theme.js';\n\nimport { iconButtonClasses } from '@mui/material/IconButton';\nimport { accordionClasses } from '@mui/material/Accordion';\nimport { accordionSummaryClasses } from '@mui/material/AccordionSummary';\nimport { autocompleteClasses } from '@mui/material/Autocomplete';\nimport { svgIconClasses } from '@mui/material/SvgIcon';\nimport { tableRowClasses } from '@mui/material/TableRow';\nimport { tableCellClasses } from '@mui/material/TableCell';\nimport { stepIconClasses } from '@mui/material/StepIcon';\nimport { stepLabelClasses } from '@mui/material/StepLabel';\nimport { toggleButtonClasses } from '@mui/material/ToggleButton';\nimport { paginationItemClasses } from '@mui/material/PaginationItem';\n\nimport { getGreyChannel, getColorChannel, getDensityMultiplier } from './theme-utils.js';\nimport { createButtonOverrides, createButtonBaseOverrides, createButtonGroupOverrides } from './Button.js';\nimport { createChipOverrides } from './Chip.js';\nimport {\n createInputBaseOverrides,\n createInputOverrides,\n createOutlinedInputOverrides,\n createFilledInputOverrides,\n createTextFieldOverrides,\n createInputLabelOverrides,\n createFormHelperTextOverrides,\n} from './TextField.js';\nimport {\n createCheckboxOverrides,\n createRadioOverrides,\n createSwitchOverrides,\n createFormControlLabelOverrides,\n createFormControlOverrides,\n createFormLabelOverrides,\n} from './FormControls.js';\nimport { createTabsOverrides, createTabOverrides } from './Tabs.js';\n\n// =============================================================================\n// MAIN EXPORT\n// =============================================================================\n\n/**\n * Generate MUI component overrides based on configuration.\n * Combines best practices from Minimals (refined inputs, custom shadows)\n * and Aurora (compact dimensions, shape variants).\n *\n * @param config - Components configuration\n * @returns MUI components overrides\n */\nexport function componentOverrides(config: ComponentsConfig): Components<Theme> & Record<string, unknown> {\n const { density, borderRadius } = config;\n const dm = getDensityMultiplier(density);\n\n return {\n // =========================================================================\n // BUTTONS (Modular)\n // =========================================================================\n MuiButton: createButtonOverrides(config),\n MuiButtonBase: createButtonBaseOverrides(),\n MuiButtonGroup: createButtonGroupOverrides(config),\n\n // =========================================================================\n // ICON BUTTON\n // =========================================================================\n MuiIconButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius,\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n }),\n },\n },\n MuiInputAdornment: {\n styleOverrides: {\n root: {\n [`& .${iconButtonClasses.root}:hover`]: {\n backgroundColor: 'transparent',\n },\n },\n },\n },\n\n // =========================================================================\n // FAB\n // =========================================================================\n MuiFab: {\n defaultProps: {\n color: 'primary',\n },\n styleOverrides: {\n root: ({ theme }) => ({\n boxShadow: `0 8px 16px 0 rgba(${getColorChannel(theme, 'primary')} / 0.24)`,\n '&:hover': {\n boxShadow: `0 8px 16px 0 rgba(${getColorChannel(theme, 'primary')} / 0.32)`,\n },\n }),\n },\n },\n\n // =========================================================================\n // INPUTS (Refined - from Minimals patterns)\n // =========================================================================\n MuiInputBase: createInputBaseOverrides(config),\n MuiInput: createInputOverrides(config),\n MuiTextField: createTextFieldOverrides(config),\n MuiOutlinedInput: createOutlinedInputOverrides(config),\n MuiFilledInput: createFilledInputOverrides(config),\n MuiInputLabel: createInputLabelOverrides(config),\n MuiFormHelperText: createFormHelperTextOverrides(config),\n MuiSelect: {\n styleOverrides: {\n select: {\n // Reset minHeight so Select matches TextField height exactly.\n minHeight: 'auto',\n display: 'flex',\n alignItems: 'center',\n },\n icon: {\n right: 10,\n width: 18,\n height: 18,\n top: 'calc(50% - 9px)',\n },\n },\n },\n MuiNativeSelect: {\n styleOverrides: {\n icon: {\n right: 10,\n width: 18,\n height: 18,\n top: 'calc(50% - 9px)',\n },\n },\n },\n MuiAutocomplete: {\n styleOverrides: {\n paper: ({ theme }) => ({\n borderRadius,\n boxShadow: `0 0 2px 0 rgba(${getGreyChannel(theme)} / 0.24), -20px 20px 40px -4px rgba(${getGreyChannel(theme)} / 0.24)`,\n }),\n listbox: {\n padding: 4,\n },\n option: ({ theme }) => ({\n borderRadius: borderRadius - 2,\n margin: 2,\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: theme.vars?.palette.action.selected || theme.palette.action.selected,\n fontWeight: 500,\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n },\n }),\n popupIndicator: {\n [`& .${svgIconClasses.root}`]: {\n fontSize: 20,\n },\n },\n clearIndicator: {\n [`& .${svgIconClasses.root}`]: {\n fontSize: 18,\n },\n },\n },\n },\n\n // =========================================================================\n // CARDS\n // =========================================================================\n MuiCard: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: ({ theme }) => ({\n position: 'relative',\n zIndex: 0, // Safari stacking context fix\n borderRadius: borderRadius * 1.5,\n border: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n backgroundImage: 'none',\n boxShadow: `0 0 2px 0 rgba(${getGreyChannel(theme)} / 0.2), 0 12px 24px -4px rgba(${getGreyChannel(theme)} / 0.12)`,\n }),\n },\n },\n MuiCardHeader: {\n defaultProps: {\n titleTypographyProps: { variant: 'h6' },\n subheaderTypographyProps: { variant: 'body2' },\n },\n styleOverrides: {\n root: {\n padding: `${16 * dm}px ${20 * dm}px`,\n },\n title: ({ theme }) => ({\n fontSize: theme.typography.pxToRem(16),\n fontWeight: 600,\n lineHeight: 1.5,\n }),\n subheader: ({ theme }) => ({\n fontSize: theme.typography.pxToRem(14),\n lineHeight: 22 / 14,\n color: theme.vars?.palette.text.secondary || theme.palette.text.secondary,\n }),\n },\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: `${16 * dm}px ${20 * dm}px`,\n '&:last-child': {\n paddingBottom: 16 * dm,\n },\n },\n },\n },\n MuiCardActions: {\n styleOverrides: {\n root: {\n padding: `${12 * dm}px ${20 * dm}px`,\n gap: 8,\n },\n },\n },\n\n // =========================================================================\n // PAPER & SURFACES\n // =========================================================================\n MuiPaper: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: {\n backgroundImage: 'none',\n },\n rounded: {\n borderRadius: borderRadius * 1.5,\n },\n outlined: ({ theme }) => ({\n borderColor: `rgba(${getGreyChannel(theme)} / 0.16)`,\n }),\n elevation1: ({ theme }) => ({\n boxShadow: `0 1px 2px 0 rgba(${getGreyChannel(theme, '900')} / 0.08)`,\n }),\n elevation2: ({ theme }) => ({\n boxShadow: `0 2px 4px 0 rgba(${getGreyChannel(theme, '900')} / 0.08), 0 1px 2px 0 rgba(${getGreyChannel(theme, '900')} / 0.04)`,\n }),\n elevation3: ({ theme }) => ({\n boxShadow: `0 4px 8px 0 rgba(${getGreyChannel(theme, '900')} / 0.08), 0 2px 4px 0 rgba(${getGreyChannel(theme, '900')} / 0.04)`,\n }),\n elevation4: ({ theme }) => ({\n boxShadow: `0 8px 16px 0 rgba(${getGreyChannel(theme, '900')} / 0.08), 0 4px 8px 0 rgba(${getGreyChannel(theme, '900')} / 0.04)`,\n }),\n elevation5: ({ theme }) => ({\n boxShadow: `0 12px 24px -4px rgba(${getGreyChannel(theme, '900')} / 0.08), 0 8px 16px 0 rgba(${getGreyChannel(theme, '900')} / 0.04)`,\n }),\n },\n },\n\n // =========================================================================\n // DIALOGS\n // =========================================================================\n MuiDialog: {\n styleOverrides: {\n paper: ({ theme }) => ({\n boxShadow: `0 24px 48px -12px rgba(${getGreyChannel(theme, '900')} / 0.24)`,\n // Mobile-first: fullscreen on < sm (600px)\n [theme.breakpoints.down('sm')]: {\n margin: 0,\n width: '100% !important',\n maxWidth: 'none !important',\n maxHeight: 'none !important',\n height: '100%',\n borderRadius: '0 !important',\n },\n variants: [\n {\n props: (props: Record<string, unknown>) => !props.fullScreen,\n style: {\n borderRadius: borderRadius * 2,\n [theme.breakpoints.up('sm')]: {\n margin: theme.spacing(2),\n },\n },\n },\n ],\n }),\n },\n },\n MuiDialogTitle: {\n styleOverrides: {\n root: ({ theme }) => ({\n padding: `${20 * dm}px ${24 * dm}px`,\n fontSize: theme.typography.pxToRem(18),\n fontWeight: 600,\n lineHeight: 28 / 18,\n }),\n },\n },\n MuiDialogContent: {\n styleOverrides: {\n root: {\n padding: `${16 * dm}px ${24 * dm}px`,\n },\n },\n },\n MuiDialogActions: {\n styleOverrides: {\n root: {\n padding: `${16 * dm}px ${24 * dm}px`,\n gap: 8,\n },\n },\n },\n\n // =========================================================================\n // NAVIGATION\n // =========================================================================\n MuiDrawer: {\n styleOverrides: {\n paper: {\n backgroundImage: 'none',\n },\n },\n },\n MuiAppBar: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: ({ theme }) => ({\n backgroundImage: 'none',\n borderBottom: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n }),\n },\n },\n // Tabs (Refined - combining Aurora compact + Minimals indicators)\n MuiTabs: createTabsOverrides(config),\n MuiTab: createTabOverrides(config),\n MuiBreadcrumbs: {\n styleOverrides: {\n separator: {\n marginLeft: 8,\n marginRight: 8,\n },\n },\n },\n\n // =========================================================================\n // ACCORDION\n // =========================================================================\n MuiAccordion: {\n defaultProps: {\n disableGutters: true,\n elevation: 0,\n },\n styleOverrides: {\n root: ({ theme }) => ({\n border: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n borderRadius,\n '&::before': {\n display: 'none',\n },\n '&:first-of-type': {\n borderTopLeftRadius: borderRadius,\n borderTopRightRadius: borderRadius,\n },\n '&:last-of-type': {\n borderBottomLeftRadius: borderRadius,\n borderBottomRightRadius: borderRadius,\n },\n '&:not(:last-of-type)': {\n borderBottom: 0,\n },\n [`&.${accordionClasses.expanded}`]: {\n margin: 0,\n '&:first-of-type': { marginTop: 0 },\n '&:last-of-type': { marginBottom: 0 },\n },\n [`&.${accordionClasses.disabled}`]: {\n backgroundColor: 'transparent',\n },\n }),\n },\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: ({ theme }) => ({\n minHeight: 48 * dm,\n padding: `0 ${16 * dm}px`,\n fontWeight: 500,\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 48 * dm,\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: 0.5,\n },\n }),\n content: {\n margin: `${12 * dm}px 0`,\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: `${12 * dm}px 0`,\n },\n },\n expandIconWrapper: ({ theme }) => ({\n color: theme.vars?.palette.text.secondary || theme.palette.text.secondary,\n }),\n },\n },\n MuiAccordionDetails: {\n styleOverrides: {\n root: ({ theme }) => ({\n padding: `${8 * dm}px ${16 * dm}px ${16 * dm}px`,\n borderTop: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n }),\n },\n },\n\n // =========================================================================\n // STEPPER\n // =========================================================================\n MuiStep: {\n styleOverrides: {\n root: {\n padding: 0,\n },\n },\n },\n MuiStepLabel: {\n styleOverrides: {\n label: ({ theme }) => ({\n fontSize: theme.typography.pxToRem(14),\n fontWeight: 500,\n [`&.${stepLabelClasses.active}`]: {\n fontWeight: 600,\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n },\n [`&.${stepLabelClasses.completed}`]: {\n fontWeight: 500,\n color: theme.vars?.palette.text.primary || theme.palette.text.primary,\n },\n }),\n iconContainer: {\n paddingRight: 12 * dm,\n },\n },\n },\n MuiStepConnector: {\n styleOverrides: {\n line: ({ theme }) => ({\n borderColor: theme.vars?.palette.divider || theme.palette.divider,\n borderTopWidth: 2,\n }),\n },\n },\n MuiStepIcon: {\n styleOverrides: {\n root: ({ theme }) => ({\n color: theme.vars?.palette.grey?.[300] || theme.palette.grey[300],\n [`&.${stepIconClasses.active}`]: {\n color: theme.vars?.palette.primary.main || theme.palette.primary.main,\n },\n [`&.${stepIconClasses.completed}`]: {\n color: theme.vars?.palette.primary.main || theme.palette.primary.main,\n },\n }),\n text: {\n fontWeight: 600,\n fontSize: '0.75rem',\n },\n },\n },\n MuiStepContent: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderLeft: `2px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n marginLeft: 11,\n paddingLeft: 20,\n paddingRight: 8,\n }),\n },\n },\n\n // =========================================================================\n // PAGINATION\n // =========================================================================\n MuiPagination: {\n defaultProps: {\n shape: 'rounded',\n size: density === 'compact' ? 'small' : 'medium',\n },\n },\n MuiPaginationItem: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius - 2,\n fontWeight: 500,\n [`&.${paginationItemClasses.selected}`]: {\n fontWeight: 600,\n },\n }),\n outlined: ({ theme }) => ({\n borderColor: theme.vars?.palette.divider || theme.palette.divider,\n [`&.${paginationItemClasses.selected}`]: {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.08)`,\n borderColor: theme.vars?.palette.primary.main || theme.palette.primary.main,\n },\n }),\n text: ({ theme }) => ({\n [`&.${paginationItemClasses.selected}`]: {\n backgroundColor: theme.vars?.palette.primary.main || theme.palette.primary.main,\n color: theme.vars?.palette.primary.contrastText || theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.vars?.palette.primary.dark || theme.palette.primary.dark,\n },\n },\n }),\n previousNext: ({ theme }) => ({\n borderRadius: borderRadius - 2,\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n }),\n firstLast: ({ theme }) => ({\n borderRadius: borderRadius - 2,\n }),\n },\n },\n\n // =========================================================================\n // DATA DISPLAY\n // =========================================================================\n MuiChip: createChipOverrides(config),\n MuiAvatar: {\n styleOverrides: {\n root: ({ theme }) => ({\n fontSize: theme.typography.pxToRem(14),\n fontWeight: 600,\n }),\n },\n },\n MuiBadge: {\n styleOverrides: {\n badge: {\n fontWeight: 600,\n },\n },\n },\n MuiTooltip: {\n defaultProps: {\n arrow: true,\n },\n styleOverrides: {\n tooltip: ({ theme }) => ({\n borderRadius: borderRadius - 2,\n fontSize: theme.typography.pxToRem(12),\n padding: '6px 12px',\n backgroundColor: theme.vars?.palette.grey?.[800] || theme.palette.grey[800],\n }),\n arrow: ({ theme }) => ({\n color: theme.vars?.palette.grey?.[800] || theme.palette.grey[800],\n }),\n },\n },\n\n // =========================================================================\n // TABLES\n // =========================================================================\n MuiTableContainer: {\n styleOverrides: {\n root: {\n position: 'relative',\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: ({ theme }) => ({\n [`& .${tableCellClasses.head}`]: {\n fontWeight: 600,\n backgroundColor: theme.vars?.palette.background.neutral || theme.palette.grey[50],\n color: theme.vars?.palette.text.secondary || theme.palette.text.secondary,\n },\n }),\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: ({ theme }) => ({\n padding: `${12 * dm}px ${16 * dm}px`,\n borderBottomColor: `rgba(${getGreyChannel(theme)} / 0.2)`,\n }),\n sizeSmall: {\n padding: `${8 * dm}px ${12 * dm}px`,\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: ({ theme }) => ({\n [`&:last-child .${tableCellClasses.root}`]: {\n borderBottom: 'none',\n },\n [`&.${tableRowClasses.selected}`]: {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.08)`,\n '&:hover': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.12)`,\n },\n },\n }),\n },\n },\n MuiTablePagination: {\n defaultProps: {\n backIconButtonProps: { size: 'small' },\n nextIconButtonProps: { size: 'small' },\n slotProps: { select: { name: 'table-pagination-select' } },\n },\n styleOverrides: {\n root: ({ theme }) => ({\n borderTop: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n }),\n toolbar: {\n minHeight: 44 * dm,\n paddingLeft: 8 * dm,\n paddingRight: 8 * dm,\n },\n actions: {\n marginRight: 8,\n },\n select: {\n display: 'flex',\n alignItems: 'center',\n },\n selectIcon: {\n right: 4,\n width: 16,\n height: 16,\n top: 'calc(50% - 8px)',\n },\n selectLabel: ({ theme }) => ({\n ...theme.typography.body2,\n }),\n displayedRows: ({ theme }) => ({\n ...theme.typography.body2,\n }),\n },\n },\n\n // =========================================================================\n // FEEDBACK\n // =========================================================================\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius,\n },\n standardSuccess: ({ theme }) => ({\n backgroundColor: `rgba(${getColorChannel(theme, 'success')} / 0.08)`,\n color: theme.vars?.palette.success.dark || theme.palette.success.dark,\n }),\n standardError: ({ theme }) => ({\n backgroundColor: `rgba(${getColorChannel(theme, 'error')} / 0.08)`,\n color: theme.vars?.palette.error.dark || theme.palette.error.dark,\n }),\n standardWarning: ({ theme }) => ({\n backgroundColor: `rgba(${getColorChannel(theme, 'warning')} / 0.08)`,\n color: theme.vars?.palette.warning.dark || theme.palette.warning.dark,\n }),\n standardInfo: ({ theme }) => ({\n backgroundColor: `rgba(${getColorChannel(theme, 'info')} / 0.08)`,\n color: theme.vars?.palette.info.dark || theme.palette.info.dark,\n }),\n },\n },\n MuiSnackbar: {\n styleOverrides: {\n root: {\n '& .MuiPaper-root': {\n borderRadius,\n },\n },\n },\n },\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n borderRadius: 4,\n height: 6,\n },\n },\n },\n\n // =========================================================================\n // SLIDER\n // =========================================================================\n MuiSlider: {\n defaultProps: {\n size: density === 'compact' ? 'small' : 'medium',\n },\n styleOverrides: {\n root: ({ theme }) => ({\n '&.Mui-disabled': {\n color: theme.vars?.palette.action.disabled || theme.palette.action.disabled,\n },\n }),\n rail: ({ theme }) => ({\n opacity: 0.32,\n backgroundColor: theme.vars?.palette.grey?.[500] || theme.palette.grey[500],\n }),\n track: {\n border: 'none',\n },\n thumb: ({ theme }) => ({\n width: density === 'compact' ? 16 : 20,\n height: density === 'compact' ? 16 : 20,\n backgroundColor: theme.vars?.palette.common.white || theme.palette.common.white,\n border: '2px solid currentColor',\n boxShadow: `0 1px 3px 0 rgba(${getGreyChannel(theme, '900')} / 0.2)`,\n '&::before': {\n display: 'none',\n },\n '&:hover, &.Mui-focusVisible': {\n boxShadow: `0 0 0 8px rgba(${getColorChannel(theme, 'primary')} / 0.16)`,\n },\n '&.Mui-active': {\n boxShadow: `0 0 0 12px rgba(${getColorChannel(theme, 'primary')} / 0.24)`,\n },\n }),\n valueLabel: ({ theme }) => ({\n borderRadius: borderRadius - 2,\n backgroundColor: theme.vars?.palette.grey?.[800] || theme.palette.grey[800],\n '&::before': {\n display: 'none',\n },\n }),\n mark: ({ theme }) => ({\n width: 4,\n height: 4,\n borderRadius: '50%',\n backgroundColor: theme.vars?.palette.grey?.[400] || theme.palette.grey[400],\n }),\n markActive: ({ theme }) => ({\n backgroundColor: theme.vars?.palette.common.white || theme.palette.common.white,\n }),\n },\n },\n\n // =========================================================================\n // RATING\n // =========================================================================\n MuiRating: {\n defaultProps: {\n size: density === 'compact' ? 'small' : 'medium',\n emptyIcon: undefined, // Use default empty icon\n },\n styleOverrides: {\n root: ({ theme }) => ({\n '&.Mui-disabled': {\n opacity: 0.48,\n },\n }),\n icon: {\n fontSize: 'inherit',\n },\n iconEmpty: ({ theme }) => ({\n color: theme.vars?.palette.grey?.[300] || theme.palette.grey[300],\n }),\n iconFilled: ({ theme }) => ({\n color: theme.vars?.palette.warning.main || theme.palette.warning.main,\n }),\n iconHover: ({ theme }) => ({\n color: theme.vars?.palette.warning.dark || theme.palette.warning.dark,\n }),\n sizeSmall: {\n fontSize: '1.125rem',\n },\n sizeMedium: {\n fontSize: '1.5rem',\n },\n sizeLarge: {\n fontSize: '2rem',\n },\n },\n },\n\n // =========================================================================\n // FORMS (Refined - with custom icons)\n // =========================================================================\n MuiCheckbox: createCheckboxOverrides(config),\n MuiRadio: createRadioOverrides(config),\n MuiSwitch: createSwitchOverrides(config),\n MuiFormControl: createFormControlOverrides(config),\n MuiFormControlLabel: createFormControlLabelOverrides(config),\n MuiFormLabel: createFormLabelOverrides(config),\n\n // =========================================================================\n // LISTS\n // =========================================================================\n MuiListItemButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius: borderRadius - 2,\n margin: 2,\n '&.Mui-selected': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.08)`,\n fontWeight: 500,\n },\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n }),\n },\n },\n MuiListItemIcon: {\n styleOverrides: {\n root: {\n minWidth: 40,\n },\n },\n },\n\n // =========================================================================\n // MENUS (Refined - with proper menu item styles)\n // =========================================================================\n MuiMenu: {\n styleOverrides: {\n paper: ({ theme }) => ({\n borderRadius,\n marginTop: 4,\n boxShadow: `0 0 2px 0 rgba(${getGreyChannel(theme)} / 0.24), -20px 20px 40px -4px rgba(${getGreyChannel(theme)} / 0.24)`,\n }),\n list: {\n padding: 4,\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: ({ theme }) => ({\n ...theme.typography.body2,\n borderRadius: borderRadius - 2,\n margin: 2,\n padding: `${8 * dm}px ${12 * dm}px`,\n '&:not(:last-of-type)': {\n marginBottom: 4,\n },\n '&.Mui-selected': {\n fontWeight: 500,\n backgroundColor: theme.vars?.palette.action.selected || theme.palette.action.selected,\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n },\n }),\n },\n },\n MuiPopover: {\n styleOverrides: {\n paper: ({ theme }) => ({\n borderRadius,\n boxShadow: `0 0 2px 0 rgba(${getGreyChannel(theme)} / 0.24), -20px 20px 40px -4px rgba(${getGreyChannel(theme)} / 0.24)`,\n }),\n },\n },\n\n // =========================================================================\n // MISC\n // =========================================================================\n MuiDivider: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderColor: `rgba(${getGreyChannel(theme)} / 0.2)`,\n }),\n },\n },\n MuiSkeleton: {\n styleOverrides: {\n rounded: {\n borderRadius,\n },\n },\n },\n MuiBackdrop: {\n styleOverrides: {\n root: ({ theme }) => ({\n backgroundColor: `rgba(${getGreyChannel(theme, '900')} / 0.5)`,\n }),\n },\n },\n\n // =========================================================================\n // LINK\n // =========================================================================\n MuiLink: {\n defaultProps: {\n underline: 'hover',\n },\n styleOverrides: {\n root: ({ theme }) => ({\n color: theme.vars?.palette.primary.main || theme.palette.primary.main,\n textDecorationColor: 'transparent',\n transition: 'color 150ms, text-decoration-color 150ms',\n '&:hover': {\n textDecorationColor: 'currentColor',\n },\n }),\n },\n },\n\n // =========================================================================\n // TOGGLE BUTTON\n // =========================================================================\n MuiToggleButton: {\n styleOverrides: {\n root: ({ theme }) => ({\n borderRadius,\n fontWeight: 500,\n textTransform: 'none' as const,\n border: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n [`&.${toggleButtonClasses.selected}`]: {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.08)`,\n borderColor: theme.vars?.palette.primary.main || theme.palette.primary.main,\n color: theme.vars?.palette.primary.main || theme.palette.primary.main,\n '&:hover': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.16)`,\n },\n },\n [`&.${toggleButtonClasses.disabled}`]: {\n borderColor: theme.vars?.palette.action.disabledBackground || theme.palette.action.disabledBackground,\n },\n }),\n sizeSmall: {\n padding: `${4 * dm}px ${8 * dm}px`,\n fontSize: '0.8125rem',\n },\n sizeMedium: {\n padding: `${6 * dm}px ${12 * dm}px`,\n },\n sizeLarge: {\n padding: `${8 * dm}px ${16 * dm}px`,\n fontSize: '0.9375rem',\n },\n },\n },\n MuiToggleButtonGroup: {\n styleOverrides: {\n root: {\n gap: 4,\n '& .MuiToggleButton-root': {\n border: '1px solid',\n borderRadius: `${borderRadius}px !important`,\n },\n },\n grouped: {\n '&:not(:first-of-type)': {\n marginLeft: 0,\n borderLeft: '1px solid',\n },\n },\n },\n },\n\n // =========================================================================\n // TIMELINE\n // =========================================================================\n MuiTimeline: {\n styleOverrides: {\n root: {\n padding: 0,\n },\n },\n },\n MuiTimelineItem: {\n styleOverrides: {\n root: {\n '&::before': {\n display: 'none',\n },\n },\n },\n },\n MuiTimelineDot: {\n styleOverrides: {\n root: ({ theme }: { theme: Theme }) => ({\n boxShadow: 'none',\n borderColor: 'transparent',\n padding: 3,\n }),\n outlined: ({ theme }: { theme: Theme }) => ({\n borderColor: theme.vars?.palette.divider || theme.palette.divider,\n backgroundColor: 'transparent',\n }),\n },\n },\n MuiTimelineConnector: {\n styleOverrides: {\n root: ({ theme }: { theme: Theme }) => ({\n backgroundColor: theme.vars?.palette.divider || theme.palette.divider,\n width: 2,\n }),\n },\n },\n MuiTimelineContent: {\n styleOverrides: {\n root: ({ theme }: { theme: Theme }) => ({\n ...theme.typography.body2,\n padding: `${6 * dm}px ${16 * dm}px`,\n }),\n },\n },\n\n // =========================================================================\n // DATA GRID (MUI X)\n // =========================================================================\n MuiDataGrid: {\n styleOverrides: {\n root: ({ theme }: { theme: Theme }) => ({\n border: 'none',\n borderRadius,\n '--DataGrid-containerBackground': theme.vars?.palette.background.neutral || theme.palette.grey[50],\n '--DataGrid-pinnedBackground': theme.vars?.palette.background.paper || theme.palette.background.paper,\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n },\n '& .MuiDataGrid-columnHeader': {\n fontWeight: 600,\n fontSize: theme.typography.pxToRem(14),\n color: theme.vars?.palette.text.secondary || theme.palette.text.secondary,\n '&:focus, &:focus-within': {\n outline: 'none',\n },\n },\n '& .MuiDataGrid-cell': {\n borderBottom: `1px solid rgba(${getGreyChannel(theme)} / 0.12)`,\n '&:focus, &:focus-within': {\n outline: 'none',\n },\n },\n '& .MuiDataGrid-row': {\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n '&.Mui-selected': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.08)`,\n '&:hover': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.12)`,\n },\n },\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: `1px solid ${theme.vars?.palette.divider || theme.palette.divider}`,\n },\n '& .MuiDataGrid-selectedRowCount': {\n whiteSpace: 'nowrap',\n },\n '& .MuiDataGrid-toolbarContainer': {\n padding: theme.spacing(1.5, 1.5, 0.5),\n gap: theme.spacing(1),\n },\n '& .MuiDataGrid-columnSeparator': {\n color: theme.vars?.palette.divider || theme.palette.divider,\n },\n }),\n },\n },\n\n // =========================================================================\n // DATE/TIME PICKERS (MUI X)\n // =========================================================================\n MuiDatePicker: {\n defaultProps: {\n slotProps: {\n openPickerButton: {\n size: density === 'compact' ? 'small' : 'medium',\n },\n },\n },\n },\n MuiPickersLayout: {\n styleOverrides: {\n root: ({ theme }: { theme: Theme }) => ({\n '& .MuiPickersLayout-actionBar': {\n padding: theme.spacing(1, 2),\n },\n }),\n },\n },\n MuiPickersDay: {\n styleOverrides: {\n root: ({ theme }: { theme: Theme }) => ({\n borderRadius: borderRadius - 2,\n fontWeight: 400,\n '&.Mui-selected': {\n fontWeight: 600,\n },\n }),\n today: ({ theme }: { theme: Theme }) => ({\n borderColor: theme.vars?.palette.primary.main || theme.palette.primary.main,\n '&:not(.Mui-selected)': {\n backgroundColor: 'transparent',\n },\n }),\n },\n },\n MuiPickersYear: {\n styleOverrides: {\n yearButton: ({ theme }: { theme: Theme }) => ({\n borderRadius,\n '&.Mui-selected': {\n fontWeight: 600,\n },\n }),\n },\n },\n MuiPickersMonth: {\n styleOverrides: {\n monthButton: ({ theme }: { theme: Theme }) => ({\n borderRadius,\n '&.Mui-selected': {\n fontWeight: 600,\n },\n }),\n },\n },\n\n // =========================================================================\n // TREE VIEW (MUI X)\n // =========================================================================\n MuiTreeItem: {\n styleOverrides: {\n root: {\n // Default styling\n },\n content: ({ theme }: { theme: Theme }) => ({\n borderRadius: borderRadius - 2,\n padding: `${4 * dm}px ${8 * dm}px`,\n '&.Mui-selected': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.08)`,\n '&:hover': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.16)`,\n },\n '&.Mui-focused': {\n backgroundColor: `rgba(${getColorChannel(theme, 'primary')} / 0.12)`,\n },\n },\n '&:hover': {\n backgroundColor: theme.vars?.palette.action.hover || theme.palette.action.hover,\n },\n }),\n label: ({ theme }: { theme: Theme }) => ({\n ...theme.typography.body2,\n fontWeight: 500,\n }),\n iconContainer: {\n width: 'auto',\n },\n },\n },\n\n MuiCssBaseline: {\n styleOverrides: (theme) => ({\n html: {\n scrollBehavior: 'smooth',\n },\n body: {\n scrollbarWidth: 'thin',\n scrollbarColor: `rgba(${getGreyChannel(theme)} / 0.4) rgba(${getGreyChannel(theme)} / 0.08)`,\n },\n '*, *::before, *::after': {\n boxSizing: 'border-box',\n },\n '#root, #__next': {\n height: '100%',\n },\n // Webkit scrollbar styling\n '::-webkit-scrollbar': {\n width: 6,\n height: 6,\n },\n '::-webkit-scrollbar-track': {\n backgroundColor: 'transparent',\n },\n '::-webkit-scrollbar-thumb': {\n backgroundColor: `rgba(${getGreyChannel(theme)} / 0.4)`,\n borderRadius: 3,\n },\n '::-webkit-scrollbar-thumb:hover': {\n backgroundColor: `rgba(${getGreyChannel(theme)} / 0.6)`,\n },\n // Vision Mode Accessibility Filters\n // These apply SVG color matrix filters to simulate color blindness\n 'html[data-vision=\"protanopia\"]:not([data-showcase])': {\n filter: 'url(\"#protanopia-filter\")',\n },\n 'html[data-vision=\"deuteranopia\"]:not([data-showcase])': {\n filter: 'url(\"#deuteranopia-filter\")',\n },\n 'html[data-vision=\"tritanopia\"]:not([data-showcase])': {\n filter: 'url(\"#tritanopia-filter\")',\n },\n 'html[data-vision=\"achromatopsia\"]:not([data-showcase])': {\n filter: 'url(\"#achromatopsia-filter\")',\n },\n }),\n },\n };\n}\n","/**\n * Shadow System\n *\n * Shadow configuration for Prism themes.\n *\n * @module @omnitron-dev/prism/theme/shadows\n */\n\nimport type { Shadows } from '@mui/material/styles';\n\n/**\n * Default shadows array (MUI expects 25 shadows).\n */\nexport const shadows: Shadows = [\n 'none',\n '0px 1px 2px 0px rgba(0, 0, 0, 0.05)',\n '0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 1px 2px -1px rgba(0, 0, 0, 0.1)',\n '0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -2px rgba(0, 0, 0, 0.1)',\n '0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -4px rgba(0, 0, 0, 0.1)',\n '0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 8px 10px -6px rgba(0, 0, 0, 0.1)',\n '0px 25px 50px -12px rgba(0, 0, 0, 0.25)',\n // Cards and dropdowns\n '0px 2px 4px rgba(0, 0, 0, 0.08)',\n '0px 4px 8px rgba(0, 0, 0, 0.08)',\n '0px 8px 16px rgba(0, 0, 0, 0.08)',\n '0px 12px 24px rgba(0, 0, 0, 0.08)',\n '0px 16px 32px rgba(0, 0, 0, 0.08)',\n '0px 20px 40px rgba(0, 0, 0, 0.08)',\n // Modals and dialogs\n '0px 4px 6px -2px rgba(0, 0, 0, 0.05), 0px 10px 15px -3px rgba(0, 0, 0, 0.1)',\n '0px 10px 10px -5px rgba(0, 0, 0, 0.04), 0px 20px 25px -5px rgba(0, 0, 0, 0.1)',\n '0px 20px 20px -10px rgba(0, 0, 0, 0.04), 0px 25px 50px -12px rgba(0, 0, 0, 0.25)',\n // Navigation\n '0px 0px 0px 1px rgba(0, 0, 0, 0.05)',\n '0px 1px 2px rgba(0, 0, 0, 0.05), 0px 0px 0px 1px rgba(0, 0, 0, 0.05)',\n '0px 2px 4px rgba(0, 0, 0, 0.05), 0px 0px 0px 1px rgba(0, 0, 0, 0.05)',\n // Focus rings\n '0px 0px 0px 3px rgba(66, 153, 225, 0.5)',\n '0px 0px 0px 3px rgba(72, 187, 120, 0.5)',\n '0px 0px 0px 3px rgba(245, 101, 101, 0.5)',\n // Inset\n 'inset 0px 2px 4px rgba(0, 0, 0, 0.06)',\n 'inset 0px 4px 6px rgba(0, 0, 0, 0.1)',\n 'inset 0px 0px 0px 1px rgba(0, 0, 0, 0.1)',\n];\n\n/**\n * Create shadows with optional opacity multiplier for dark mode.\n *\n * @param primaryColor - Primary color for tinted shadows (reserved for future)\n * @param opacityMultiplier - Multiplier for shadow opacity (default: 1, use 0.4-0.6 for dark mode)\n * @returns Shadows array with adjusted opacity\n */\nexport function createShadows(primaryColor?: string, opacityMultiplier = 1): Shadows {\n if (opacityMultiplier === 1) {\n return [...shadows] as Shadows;\n }\n\n // Adjust shadow opacity for dark mode\n return shadows.map((shadow) => {\n if (shadow === 'none') return shadow;\n\n // Replace rgba opacity values\n return shadow.replace(/rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([\\d.]+)\\)/g, (_, r, g, b, a) => {\n const newAlpha = Math.min(1, parseFloat(a) * opacityMultiplier);\n return `rgba(${r}, ${g}, ${b}, ${newAlpha.toFixed(2)})`;\n });\n }) as Shadows;\n}\n\n/**\n * Named shadow presets for easier usage.\n */\nexport const shadowPresets = {\n /** No shadow */\n none: shadows[0],\n /** Extra small shadow */\n xs: shadows[1],\n /** Small shadow */\n sm: shadows[2],\n /** Medium shadow */\n md: shadows[3],\n /** Large shadow */\n lg: shadows[4],\n /** Extra large shadow */\n xl: shadows[5],\n /** 2x extra large shadow */\n '2xl': shadows[6],\n /** Card shadow */\n card: shadows[8],\n /** Dropdown shadow */\n dropdown: shadows[9],\n /** Modal shadow */\n modal: shadows[14],\n /** Dialog shadow */\n dialog: shadows[15],\n /** Focus ring (primary) */\n focusPrimary: shadows[19],\n /** Focus ring (success) */\n focusSuccess: shadows[20],\n /** Focus ring (error) */\n focusError: shadows[21],\n /** Inset shadow */\n inset: shadows[22],\n} as const;\n\nexport type ShadowPreset = keyof typeof shadowPresets;\n\n/**\n * Dark mode shadow - subtle shadow for dark backgrounds.\n */\nexport const darkShadow = '0px 0px 0px 1px rgba(255, 255, 255, 0.1)';\n","/**\n * Typography System\n *\n * Typography configuration for Prism themes.\n *\n * @module @omnitron-dev/prism/theme/typography\n */\n\nimport type { ThemeOptions } from '@mui/material/styles';\nimport type { ThemeTypography } from '../types/theme.js';\n\n/** MUI Typography options type */\ntype TypographyOptions = NonNullable<ThemeOptions['typography']>;\n\n/**\n * Default typography configuration.\n */\nexport const typography: ThemeTypography = {\n fontFamily: {\n primary: '\"Nunito Sans Variable\", \"Nunito Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n secondary: '\"Exo 2\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n mono: '\"JetBrains Mono\", \"Fira Code\", Consolas, Monaco, monospace',\n },\n fontWeights: {\n light: 300,\n regular: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n },\n};\n\n/**\n * Font size scale (in rem).\n */\nconst fontSizes = {\n xs: '0.75rem', // 12px\n sm: '0.875rem', // 14px\n md: '1rem', // 16px\n lg: '1.125rem', // 18px\n xl: '1.25rem', // 20px\n '2xl': '1.5rem', // 24px\n '3xl': '1.875rem', // 30px\n '4xl': '2.25rem', // 36px\n '5xl': '3rem', // 48px\n '6xl': '3.75rem', // 60px\n};\n\n/**\n * Line height scale.\n */\nconst lineHeights = {\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n};\n\n/**\n * Create MUI typography options from Prism typography config.\n *\n * @param config - Typography configuration\n * @returns MUI typography options\n */\nexport function createTypography(config: ThemeTypography): TypographyOptions {\n const { fontFamily, fontWeights } = config;\n\n return {\n fontFamily: fontFamily.primary,\n fontWeightLight: fontWeights.light,\n fontWeightRegular: fontWeights.regular,\n fontWeightMedium: fontWeights.medium,\n fontWeightBold: fontWeights.bold,\n\n // Headings\n h1: {\n fontFamily: fontFamily.secondary || fontFamily.primary,\n fontWeight: fontWeights.bold,\n fontSize: fontSizes['5xl'],\n lineHeight: lineHeights.tight,\n letterSpacing: '-0.025em',\n },\n h2: {\n fontFamily: fontFamily.secondary || fontFamily.primary,\n fontWeight: fontWeights.bold,\n fontSize: fontSizes['4xl'],\n lineHeight: lineHeights.tight,\n letterSpacing: '-0.025em',\n },\n h3: {\n fontFamily: fontFamily.secondary || fontFamily.primary,\n fontWeight: fontWeights.semiBold,\n fontSize: fontSizes['3xl'],\n lineHeight: lineHeights.snug,\n letterSpacing: '-0.02em',\n },\n h4: {\n fontFamily: fontFamily.secondary || fontFamily.primary,\n fontWeight: fontWeights.semiBold,\n fontSize: fontSizes['2xl'],\n lineHeight: lineHeights.snug,\n letterSpacing: '-0.02em',\n },\n h5: {\n fontFamily: fontFamily.secondary || fontFamily.primary,\n fontWeight: fontWeights.semiBold,\n fontSize: fontSizes.xl,\n lineHeight: lineHeights.snug,\n },\n h6: {\n fontFamily: fontFamily.secondary || fontFamily.primary,\n fontWeight: fontWeights.semiBold,\n fontSize: fontSizes.lg,\n lineHeight: lineHeights.snug,\n },\n\n // Body text\n body1: {\n fontSize: fontSizes.md,\n lineHeight: lineHeights.relaxed,\n },\n body2: {\n fontSize: fontSizes.sm,\n lineHeight: lineHeights.relaxed,\n },\n\n // Subtitles\n subtitle1: {\n fontSize: fontSizes.md,\n fontWeight: fontWeights.medium,\n lineHeight: lineHeights.normal,\n },\n subtitle2: {\n fontSize: fontSizes.sm,\n fontWeight: fontWeights.medium,\n lineHeight: lineHeights.normal,\n },\n\n // Captions and overlines\n caption: {\n fontSize: fontSizes.xs,\n lineHeight: lineHeights.normal,\n },\n overline: {\n fontSize: fontSizes.xs,\n fontWeight: fontWeights.semiBold,\n lineHeight: lineHeights.normal,\n textTransform: 'uppercase',\n letterSpacing: '0.08em',\n },\n\n // Buttons\n button: {\n fontSize: fontSizes.sm,\n fontWeight: fontWeights.semiBold,\n lineHeight: lineHeights.normal,\n textTransform: 'none',\n },\n };\n}\n","/**\n * Luxury Preset Colors\n *\n * Rich, elegant color scales with gold/amber tones.\n *\n * @module @omnitron-dev/prism/theme/colors/luxury\n */\n\nimport type { ColorScale } from '../../types/theme.js';\n\n/**\n * Luxury Primary - Rich Gold/Amber.\n */\nexport const luxuryPrimary: ColorScale = {\n 50: '#FBF7E8',\n 100: '#F5EBC9',\n 200: '#EDDFA8',\n 300: '#E3D086',\n 400: '#D9C164',\n 500: '#C9A227',\n 600: '#A88820',\n 700: '#876D1A',\n 800: '#665314',\n 900: '#45380E',\n 950: '#241D07',\n};\n\n/**\n * Luxury Secondary - Deep Purple.\n */\nexport const luxurySecondary: ColorScale = {\n 50: '#F5EEF5',\n 100: '#E8D5E8',\n 200: '#D4B3D4',\n 300: '#B38AB3',\n 400: '#996399',\n 500: '#6B3A6B',\n 600: '#5A305A',\n 700: '#4A284A',\n 800: '#3A1F3A',\n 900: '#2A172A',\n 950: '#1A0F1A',\n};\n\n/**\n * Luxury Neutral - Warm Grey.\n */\nexport const luxuryNeutral: ColorScale = {\n 50: '#FAF9F7',\n 100: '#F5F3F0',\n 200: '#E8E4DE',\n 300: '#D4CEC4',\n 400: '#B8AFA0',\n 500: '#9C917C',\n 600: '#7A6F5C',\n 700: '#5C5244',\n 800: '#3E362C',\n 900: '#201C16',\n 950: '#100E0B',\n};\n\n/**\n * Luxury Error - Muted Red.\n */\nexport const luxuryError: ColorScale = {\n 50: '#F9E8E8',\n 100: '#F0C9C9',\n 200: '#E4A3A3',\n 300: '#D57C7C',\n 400: '#C65656',\n 500: '#B82E2E',\n 600: '#9A2626',\n 700: '#7D1E1E',\n 800: '#5F1717',\n 900: '#42100F',\n 950: '#250908',\n};\n\n/**\n * Luxury Warning - Rich Amber.\n */\nexport const luxuryWarning: ColorScale = {\n 50: '#FEF8E6',\n 100: '#FCEFC2',\n 200: '#F9E394',\n 300: '#F5D566',\n 400: '#F0C538',\n 500: '#D4A012',\n 600: '#B1850F',\n 700: '#8E6B0C',\n 800: '#6B5009',\n 900: '#483606',\n 950: '#251B03',\n};\n\n/**\n * Luxury Success - Forest Green.\n */\nexport const luxurySuccess: ColorScale = {\n 50: '#E8F4E8',\n 100: '#C9E4C9',\n 200: '#A3D1A3',\n 300: '#7DBD7D',\n 400: '#56A956',\n 500: '#2E8B2E',\n 600: '#267426',\n 700: '#1E5D1E',\n 800: '#174717',\n 900: '#0F300F',\n 950: '#081A08',\n};\n\n/**\n * Luxury Info - Steel Blue.\n */\nexport const luxuryInfo: ColorScale = {\n 50: '#E8F0F6',\n 100: '#C9DCEB',\n 200: '#A3C4DD',\n 300: '#7DACCE',\n 400: '#5694C0',\n 500: '#2E7AB8',\n 600: '#26669A',\n 700: '#1E527C',\n 800: '#173E5E',\n 900: '#0F2A40',\n 950: '#081520',\n};\n\n/**\n * All luxury colors.\n */\nexport const luxuryColors = {\n primary: luxuryPrimary,\n secondary: luxurySecondary,\n neutral: luxuryNeutral,\n error: luxuryError,\n warning: luxuryWarning,\n success: luxurySuccess,\n info: luxuryInfo,\n} as const;\n","/**\n * Arctic Theme Preset\n *\n * A cool, crisp blue theme inspired by northern landscapes.\n *\n * @module @omnitron-dev/prism/theme/presets/arctic\n */\n\nimport type { ThemePresetDefinition, PresetPalette } from '../../types/theme.js';\n\n/**\n * Light mode palette.\n */\nconst lightPalette: PresetPalette = {\n primary: {\n lighter: '#D6E9F8',\n light: '#7BC1F0',\n main: '#1E88E5',\n dark: '#1565C0',\n darker: '#0D47A1',\n contrastText: '#FFFFFF',\n },\n secondary: {\n lighter: '#E3F2FD',\n light: '#90CAF9',\n main: '#42A5F5',\n dark: '#1E88E5',\n darker: '#1565C0',\n contrastText: '#FFFFFF',\n },\n info: {\n lighter: '#E0F7FA',\n light: '#80DEEA',\n main: '#26C6DA',\n dark: '#00ACC1',\n darker: '#00838F',\n contrastText: '#FFFFFF',\n },\n success: {\n lighter: '#E8F5E9',\n light: '#A5D6A7',\n main: '#66BB6A',\n dark: '#43A047',\n darker: '#2E7D32',\n contrastText: '#FFFFFF',\n },\n warning: {\n lighter: '#FFF8E1',\n light: '#FFE082',\n main: '#FFB300',\n dark: '#FF8F00',\n darker: '#FF6F00',\n contrastText: '#212121',\n },\n error: {\n lighter: '#FFEBEE',\n light: '#EF9A9A',\n main: '#EF5350',\n dark: '#E53935',\n darker: '#C62828',\n contrastText: '#FFFFFF',\n },\n grey: {\n 50: '#FAFBFC',\n 100: '#F4F6F8',\n 200: '#E4E9ED',\n 300: '#D0D7DE',\n 400: '#AFB8C1',\n 500: '#8C959F',\n 600: '#6E7781',\n 700: '#57606A',\n 800: '#424A53',\n 900: '#32383F',\n 950: '#272C31',\n },\n common: {\n black: '#1B1F23',\n white: '#FFFFFF',\n },\n background: {\n default: '#E8F0F6',\n paper: '#F1F9FB',\n neutral: '#E4E9ED',\n },\n text: {\n primary: '#1B1F23',\n secondary: '#57606A',\n disabled: '#8C959F',\n },\n};\n\n/**\n * Dark mode palette.\n */\nconst darkPalette: PresetPalette = {\n primary: {\n lighter: '#D6E9F8',\n light: '#7BC1F0',\n main: '#42A5F5',\n dark: '#1E88E5',\n darker: '#1565C0',\n contrastText: '#FFFFFF',\n },\n secondary: {\n lighter: '#E3F2FD',\n light: '#90CAF9',\n main: '#64B5F6',\n dark: '#42A5F5',\n darker: '#1E88E5',\n contrastText: '#FFFFFF',\n },\n info: {\n lighter: '#E0F7FA',\n light: '#80DEEA',\n main: '#4DD0E1',\n dark: '#26C6DA',\n darker: '#00ACC1',\n contrastText: '#FFFFFF',\n },\n success: {\n lighter: '#E8F5E9',\n light: '#A5D6A7',\n main: '#81C784',\n dark: '#66BB6A',\n darker: '#4CAF50',\n contrastText: '#FFFFFF',\n },\n warning: {\n lighter: '#FFF8E1',\n light: '#FFE082',\n main: '#FFCA28',\n dark: '#FFB300',\n darker: '#FFA000',\n contrastText: '#212121',\n },\n error: {\n lighter: '#FFEBEE',\n light: '#EF9A9A',\n main: '#EF5350',\n dark: '#F44336',\n darker: '#E53935',\n contrastText: '#FFFFFF',\n },\n grey: {\n 50: '#0D1117',\n 100: '#161B22',\n 200: '#21262D',\n 300: '#30363D',\n 400: '#484F58',\n 500: '#6E7681',\n 600: '#8B949E',\n 700: '#B1BAC4',\n 800: '#C9D1D9',\n 900: '#F0F6FC',\n },\n common: {\n black: '#010409',\n white: '#FFFFFF',\n },\n background: {\n default: '#0D1117',\n paper: '#161B22',\n neutral: '#21262D',\n },\n text: {\n primary: '#F0F6FC',\n secondary: '#B1BAC4',\n disabled: '#6E7681',\n },\n};\n\n/**\n * Arctic theme preset.\n */\nexport const arcticPreset: ThemePresetDefinition = {\n name: 'arctic',\n displayName: 'Arctic',\n description: 'A cool, crisp blue theme inspired by northern landscapes.',\n preferredMode: 'light',\n lightPalette,\n darkPalette,\n typography: {\n fontFamily: {\n primary: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n secondary: '\"Poppins\", -apple-system, BlinkMacSystemFont, sans-serif',\n mono: '\"Fira Code\", Consolas, Monaco, monospace',\n },\n fontWeights: {\n light: 300,\n regular: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n },\n },\n colorGroup: {\n key: 'arctic',\n main: '#1E88E5',\n },\n};\n","/**\n * Dracula Theme Preset\n *\n * A dark theme inspired by the popular Dracula color scheme.\n * Features purple primary with distinct accent colors.\n *\n * @module @omnitron-dev/prism/theme/presets/dracula\n */\n\nimport type { ThemePresetDefinition, ColorScale } from '../../types/theme.js';\n\n/**\n * Dracula purple primary.\n */\nexport const draculaPurple: ColorScale = {\n 50: '#F9F5FF',\n 100: '#F0E6FF',\n 200: '#E3CFFF',\n 300: '#CEA9FF',\n 400: '#B574FF',\n 500: '#BD93F9', // Main Dracula purple\n 600: '#A57EE0',\n 700: '#8666B8',\n 800: '#6E5394',\n 900: '#5B4579',\n 950: '#3B2D4D',\n};\n\n/**\n * Dracula pink accent.\n */\nexport const draculaPink: ColorScale = {\n 50: '#FFF5F7',\n 100: '#FFE5EA',\n 200: '#FFCCD6',\n 300: '#FFA4B5',\n 400: '#FF6E8B',\n 500: '#FF79C6', // Main Dracula pink\n 600: '#E85AA1',\n 700: '#C4407F',\n 800: '#A2356A',\n 900: '#87305B',\n 950: '#4E1533',\n};\n\n/**\n * Dracula cyan accent.\n */\nexport const draculaCyan: ColorScale = {\n 50: '#ECFFFE',\n 100: '#CFFFFE',\n 200: '#A5FFFE',\n 300: '#67FFFC',\n 400: '#22FFF5',\n 500: '#8BE9FD', // Main Dracula cyan\n 600: '#06D1E7',\n 700: '#0BA6BC',\n 800: '#118497',\n 900: '#136C7D',\n 950: '#05484E',\n};\n\n/**\n * Dracula theme preset.\n * Dark-only theme inspired by the popular Dracula scheme.\n */\nexport const draculaPreset: ThemePresetDefinition = {\n name: 'dracula',\n displayName: 'Dracula',\n description: 'A dark theme inspired by the popular Dracula color scheme.',\n preferredMode: 'dark',\n typography: {\n fontFamily: {\n primary: '\"Fira Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n secondary: '\"DM Sans\", -apple-system, BlinkMacSystemFont, sans-serif',\n mono: '\"Fira Code\", Consolas, Monaco, monospace',\n },\n fontWeights: {\n light: 300,\n regular: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n },\n },\n colorGroup: {\n key: 'dracula',\n main: draculaPurple[500],\n palette: draculaPurple,\n },\n};\n","/**\n * Ember Theme Preset\n *\n * A warm, fiery theme with deep oranges and reds.\n * Optimized for dark mode with glowing ember accents.\n *\n * @module @omnitron-dev/prism/theme/presets/ember\n */\n\nimport type { ThemePresetDefinition, ColorScale } from '../../types/theme.js';\n\n/**\n * Ember primary color scale - warm orange-red.\n */\nexport const emberPrimary: ColorScale = {\n 50: '#FFF4ED',\n 100: '#FFE4D4',\n 200: '#FFC9A8',\n 300: '#FFAA71',\n 400: '#FF8038',\n 500: '#FF5F11',\n 600: '#F04006',\n 700: '#C72D07',\n 800: '#9E250E',\n 900: '#7F230F',\n 950: '#450E05',\n};\n\n/**\n * Ember secondary color scale - deep red.\n */\nexport const emberSecondary: ColorScale = {\n 50: '#FFF1F2',\n 100: '#FFE1E3',\n 200: '#FFC8CD',\n 300: '#FFA1A9',\n 400: '#FF6B78',\n 500: '#FA3D4D',\n 600: '#E81B2D',\n 700: '#C31323',\n 800: '#A11421',\n 900: '#861721',\n 950: '#49060C',\n};\n\n/**\n * Ember theme preset.\n * Optimized for dark mode with warm fire tones.\n */\nexport const emberPreset: ThemePresetDefinition = {\n name: 'ember',\n displayName: 'Ember',\n description: 'A warm, fiery theme with deep oranges and reds.',\n preferredMode: 'dark',\n typography: {\n fontFamily: {\n primary: '\"Outfit\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n secondary: '\"Playfair Display\", Georgia, serif',\n mono: '\"Source Code Pro\", Consolas, Monaco, monospace',\n },\n fontWeights: {\n light: 300,\n regular: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n },\n },\n colorGroup: {\n key: 'ember',\n main: emberPrimary[500],\n palette: emberPrimary,\n },\n};\n","/**\n * Midnight Theme Preset\n *\n * A deep blue-black theme for late night coding sessions.\n * Features indigo primary with soft blue accents.\n *\n * @module @omnitron-dev/prism/theme/presets/midnight\n */\n\nimport type { ThemePresetDefinition, ColorScale } from '../../types/theme.js';\n\n/**\n * Midnight indigo primary.\n */\nexport const midnightIndigo: ColorScale = {\n 50: '#EEF2FF',\n 100: '#E0E7FF',\n 200: '#C7D2FE',\n 300: '#A5B4FC',\n 400: '#818CF8',\n 500: '#6366F1', // Main indigo\n 600: '#4F46E5',\n 700: '#4338CA',\n 800: '#3730A3',\n 900: '#312E81',\n 950: '#1E1B4B',\n};\n\n/**\n * Midnight blue-grey background scale.\n */\nexport const midnightBackground: ColorScale = {\n 50: '#F8FAFC',\n 100: '#F1F5F9',\n 200: '#E2E8F0',\n 300: '#CBD5E1',\n 400: '#94A3B8',\n 500: '#64748B',\n 600: '#475569',\n 700: '#334155',\n 800: '#1E293B',\n 900: '#0F172A', // Main dark background\n 950: '#020617',\n};\n\n/**\n * Midnight theme preset.\n * Deep blue-black theme optimized for dark mode.\n */\nexport const midnightPreset: ThemePresetDefinition = {\n name: 'midnight',\n displayName: 'Midnight',\n description: 'A deep blue-black theme for late night coding sessions.',\n preferredMode: 'dark',\n typography: {\n fontFamily: {\n primary: '\"Space Grotesk\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n secondary: '\"Sora\", -apple-system, BlinkMacSystemFont, sans-serif',\n mono: '\"IBM Plex Mono\", Consolas, Monaco, monospace',\n },\n fontWeights: {\n light: 300,\n regular: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n },\n },\n colorGroup: {\n key: 'midnight',\n main: midnightIndigo[500],\n palette: midnightIndigo,\n },\n};\n","/**\n * Retro Theme Preset\n *\n * A nostalgic theme with vintage computer aesthetics.\n * Features amber/gold primary with classic terminal vibes.\n *\n * @module @omnitron-dev/prism/theme/presets/retro\n */\n\nimport type { ThemePresetDefinition, ColorScale } from '../../types/theme.js';\n\n/**\n * Retro amber primary - classic terminal gold.\n */\nexport const retroAmber: ColorScale = {\n 50: '#FFFBEB',\n 100: '#FEF3C7',\n 200: '#FDE68A',\n 300: '#FCD34D',\n 400: '#FBBF24',\n 500: '#F59E0B', // Main amber\n 600: '#D97706',\n 700: '#B45309',\n 800: '#92400E',\n 900: '#78350F',\n 950: '#451A03',\n};\n\n/**\n * Retro teal secondary - vintage accent.\n */\nexport const retroTeal: ColorScale = {\n 50: '#F0FDFA',\n 100: '#CCFBF1',\n 200: '#99F6E4',\n 300: '#5EEAD4',\n 400: '#2DD4BF',\n 500: '#14B8A6', // Main teal\n 600: '#0D9488',\n 700: '#0F766E',\n 800: '#115E59',\n 900: '#134E4A',\n 950: '#042F2E',\n};\n\n/**\n * Retro theme preset.\n * Nostalgic vintage computer aesthetic optimized for light mode.\n */\nexport const retroPreset: ThemePresetDefinition = {\n name: 'retro',\n displayName: 'Retro',\n description: 'A nostalgic theme with vintage computer aesthetics.',\n preferredMode: 'light',\n typography: {\n fontFamily: {\n primary: '\"VT323\", \"Courier New\", Courier, monospace',\n secondary: '\"Press Start 2P\", \"Courier New\", monospace',\n mono: '\"VT323\", \"Courier New\", Courier, monospace',\n },\n fontWeights: {\n light: 400,\n regular: 400,\n medium: 400,\n semiBold: 400,\n bold: 400,\n },\n },\n colorGroup: {\n key: 'retro',\n main: retroAmber[500],\n palette: retroAmber,\n },\n};\n","/**\n * Minimal Theme Preset\n *\n * A clean, minimalist theme with subtle grays and muted accents.\n * Focuses on content over chrome with maximum readability.\n *\n * @module @omnitron-dev/prism/theme/presets/minimal\n */\n\nimport type { ThemePresetDefinition, ColorScale } from '../../types/theme.js';\n\n/**\n * Minimal neutral scale - refined grays.\n */\nexport const minimalNeutral: ColorScale = {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373', // Main neutral\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n 950: '#0A0A0A',\n};\n\n/**\n * Minimal accent scale - subtle blue-grey.\n */\nexport const minimalAccent: ColorScale = {\n 50: '#F8FAFC',\n 100: '#F1F5F9',\n 200: '#E2E8F0',\n 300: '#CBD5E1',\n 400: '#94A3B8',\n 500: '#64748B', // Main slate\n 600: '#475569',\n 700: '#334155',\n 800: '#1E293B',\n 900: '#0F172A',\n 950: '#020617',\n};\n\n/**\n * Minimal theme preset.\n * Clean, content-focused theme that works in both light and dark modes.\n */\nexport const minimalPreset: ThemePresetDefinition = {\n name: 'minimal',\n displayName: 'Minimal',\n description: 'A clean, minimalist theme with subtle grays and muted accents.',\n preferredMode: 'light',\n typography: {\n fontFamily: {\n primary: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n secondary: '\"Inter\", -apple-system, BlinkMacSystemFont, sans-serif',\n mono: '\"SF Mono\", Menlo, Consolas, Monaco, monospace',\n },\n fontWeights: {\n light: 300,\n regular: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n },\n },\n colorGroup: {\n key: 'minimal',\n main: minimalNeutral[500],\n palette: minimalNeutral,\n },\n};\n","/**\n * Theme Factory\n *\n * Creates MUI themes with full Prism integration.\n * Uses MUI's native colorSchemes for automatic light/dark mode.\n *\n * Key Features:\n * - Native MUI colorSchemes integration (automatic dark/light switching)\n * - CSS variables with configurable prefix and `theme.vars.palette.*` access\n * - Density-based component sizing (compact/standard/comfortable)\n * - Runtime primary color override system\n * - Full TypeScript inference\n * - Tree-shakeable component overrides\n *\n * @module @omnitron-dev/prism/theme/create-theme\n */\n\nimport { createTheme as muiCreateTheme, responsiveFontSizes } from '@mui/material/styles';\nimport * as locales from '@mui/material/locale';\nimport type { PaletteOptions, ThemeOptions } from '@mui/material/styles';\nimport type {\n ThemePreset,\n ThemeMode,\n ThemeDirection,\n ComponentDensity,\n CssVariablesConfig,\n ComponentsConfig,\n PrismTheme,\n ColorGroup,\n} from '../types/theme.js';\nimport { buildPalette, defaultLightPalette, defaultDarkPalette } from './palette/builder.js';\nimport { componentOverrides } from './components/index.js';\nimport { createShadows } from './shadows.js';\nimport { createTypography, typography } from './typography.js';\nimport { mixins } from './mixins.js';\nimport { generateColorScale, generatePaletteColorWithChannels } from './utils/color.js';\nimport { blue, purple, green, red, orange, lightBlue, grey as baseGrey } from './colors/base.js';\nimport {\n luxuryPrimary,\n luxurySecondary,\n luxuryNeutral,\n luxuryError,\n luxuryWarning,\n luxurySuccess,\n luxuryInfo,\n} from './colors/luxury.js';\n// Preset color scales\nimport { draculaPurple, draculaPink, draculaCyan } from './presets/dracula.js';\nimport { emberPrimary, emberSecondary } from './presets/ember.js';\nimport { midnightIndigo, midnightBackground } from './presets/midnight.js';\nimport { retroAmber, retroTeal } from './presets/retro.js';\nimport { minimalNeutral, minimalAccent } from './presets/minimal.js';\nimport { arcticPreset } from './presets/arctic.js';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport type SupportedLocale = keyof typeof locales;\n\n/**\n * Options for creating a Prism theme.\n *\n * @example\n * ```tsx\n * // Minimal configuration\n * const theme = createPrismTheme();\n *\n * // Full configuration\n * const theme = createPrismTheme({\n * preset: 'luxury',\n * mode: 'dark',\n * primaryColor: '#FF5630',\n * density: 'compact',\n * locale: 'ruRU',\n * direction: 'ltr',\n * cssVarPrefix: 'myapp',\n * borderRadius: 12,\n * responsiveFonts: true,\n * });\n * ```\n */\nexport interface CreatePrismThemeOptions {\n /** Theme preset (default: 'default-light') */\n preset?: ThemePreset;\n /** Light/dark/system mode (default: 'light') */\n mode?: ThemeMode;\n /** Text direction (default: 'ltr') */\n direction?: ThemeDirection;\n /** MUI locale for i18n (default: 'enUS') */\n locale?: SupportedLocale;\n /** Custom primary color override (hex, e.g., '#FF5630') */\n primaryColor?: string | null;\n /** CSS variable prefix (default: 'prism') */\n cssVarPrefix?: string;\n /** Component density (default: 'standard') */\n density?: ComponentDensity;\n /** Border radius in pixels (default: 8) */\n borderRadius?: number;\n /** Enable responsive font sizes (default: true) */\n responsiveFonts?: boolean;\n /** Custom MUI theme overrides */\n overrides?: Partial<ThemeOptions>;\n /** Typography configuration (optional override) */\n typography?: Partial<ThemeOptions['typography']>;\n /** CSS variables configuration (optional override) */\n cssVariables?: Partial<CssVariablesConfig>;\n /** Components configuration (optional override) */\n components?: Partial<ComponentsConfig>;\n /** Contrast mode: 'default' or 'high' (default: 'default') */\n contrast?: 'default' | 'high';\n /** Override primary font family */\n fontFamily?: string | null;\n /** Override base font size in px (12-20, default: 16) */\n fontSize?: number;\n}\n\n// =============================================================================\n// PRESET CONFIGURATIONS\n// =============================================================================\n\ninterface PresetConfig {\n lightPalette: PaletteOptions;\n darkPalette: PaletteOptions;\n colorGroup: ColorGroup;\n}\n\n/**\n * Get preset configuration.\n * Each preset defines light and dark palettes plus a color group for matching.\n */\nfunction getPresetConfig(preset: ThemePreset): PresetConfig {\n switch (preset) {\n case 'luxury':\n return {\n lightPalette: buildPalette({\n primary: luxuryPrimary,\n secondary: luxurySecondary,\n info: luxuryInfo,\n success: luxurySuccess,\n warning: luxuryWarning,\n error: luxuryError,\n grey: luxuryNeutral,\n mode: 'light',\n backgroundDefault: '#FAF7F5',\n paperColor: '#FDFBFB',\n }),\n darkPalette: buildPalette({\n primary: luxuryPrimary,\n secondary: luxurySecondary,\n info: luxuryInfo,\n success: luxurySuccess,\n warning: luxuryWarning,\n error: luxuryError,\n grey: luxuryNeutral,\n mode: 'dark',\n }),\n colorGroup: {\n key: 'luxury',\n main: luxuryPrimary[500],\n palette: luxuryPrimary,\n },\n };\n\n case 'arctic':\n // Arctic has full palettes defined in the preset file\n return {\n lightPalette: buildPaletteFromPreset(arcticPreset.lightPalette!, 'light'),\n darkPalette: buildPaletteFromPreset(arcticPreset.darkPalette!, 'dark'),\n colorGroup: {\n key: 'arctic',\n main: '#1E88E5',\n palette: blue, // Use blue as base for color group\n },\n };\n\n case 'dracula':\n // Dark-only theme with purple/pink/cyan accents\n return {\n lightPalette: buildPalette({\n primary: draculaPurple,\n secondary: draculaPink,\n info: draculaCyan,\n success: green,\n warning: orange,\n error: red,\n grey: baseGrey,\n mode: 'light',\n backgroundDefault: '#F5F0FA',\n paperColor: '#FAF7FC',\n }),\n darkPalette: buildPalette({\n primary: draculaPurple,\n secondary: draculaPink,\n info: draculaCyan,\n success: green,\n warning: orange,\n error: red,\n grey: baseGrey,\n mode: 'dark',\n backgroundDefault: '#282A36', // Dracula background\n paperColor: '#21222C',\n }),\n colorGroup: {\n key: 'dracula',\n main: draculaPurple[500],\n palette: draculaPurple,\n },\n };\n\n case 'ember':\n // Warm, fiery theme with orange-red\n return {\n lightPalette: buildPalette({\n primary: emberPrimary,\n secondary: emberSecondary,\n info: lightBlue,\n success: green,\n warning: orange,\n error: emberSecondary,\n grey: baseGrey,\n mode: 'light',\n backgroundDefault: '#FFF5F0',\n paperColor: '#FFFAF7',\n }),\n darkPalette: buildPalette({\n primary: emberPrimary,\n secondary: emberSecondary,\n info: lightBlue,\n success: green,\n warning: orange,\n error: emberSecondary,\n grey: baseGrey,\n mode: 'dark',\n backgroundDefault: '#1A0A05',\n paperColor: '#2D1610',\n }),\n colorGroup: {\n key: 'ember',\n main: emberPrimary[500],\n palette: emberPrimary,\n },\n };\n\n case 'midnight':\n // Deep blue-black theme with indigo\n return {\n lightPalette: buildPalette({\n primary: midnightIndigo,\n secondary: purple,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: midnightBackground,\n mode: 'light',\n backgroundDefault: '#F0F0F8',\n paperColor: '#F7F7FC',\n }),\n darkPalette: buildPalette({\n primary: midnightIndigo,\n secondary: purple,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: midnightBackground,\n mode: 'dark',\n backgroundDefault: midnightBackground[950],\n paperColor: midnightBackground[900],\n }),\n colorGroup: {\n key: 'midnight',\n main: midnightIndigo[500],\n palette: midnightIndigo,\n },\n };\n\n case 'retro':\n // Nostalgic vintage theme with amber/teal\n return {\n lightPalette: buildPalette({\n primary: retroAmber,\n secondary: retroTeal,\n info: lightBlue,\n success: retroTeal,\n warning: retroAmber,\n error: red,\n grey: baseGrey,\n mode: 'light',\n backgroundDefault: '#F8F1E0',\n paperColor: '#FDF8EE',\n }),\n darkPalette: buildPalette({\n primary: retroAmber,\n secondary: retroTeal,\n info: lightBlue,\n success: retroTeal,\n warning: retroAmber,\n error: red,\n grey: baseGrey,\n mode: 'dark',\n backgroundDefault: '#1A1814',\n paperColor: '#252218',\n }),\n colorGroup: {\n key: 'retro',\n main: retroAmber[500],\n palette: retroAmber,\n },\n };\n\n case 'minimal':\n // Clean, minimalist theme with neutral grays\n return {\n lightPalette: buildPalette({\n primary: minimalAccent,\n secondary: minimalNeutral,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: minimalNeutral,\n mode: 'light',\n backgroundDefault: '#FAFAFA',\n paperColor: '#FFFFFF',\n }),\n darkPalette: buildPalette({\n primary: minimalAccent,\n secondary: minimalNeutral,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: minimalNeutral,\n mode: 'dark',\n backgroundDefault: '#0A0A0A',\n paperColor: '#171717',\n }),\n colorGroup: {\n key: 'minimal',\n main: minimalAccent[500],\n palette: minimalAccent,\n },\n };\n\n case 'nature':\n // Earthy green theme\n return {\n lightPalette: buildPalette({\n primary: green,\n secondary: purple,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: baseGrey,\n mode: 'light',\n backgroundDefault: '#EEF6EE',\n paperColor: '#F5FAF5',\n }),\n darkPalette: buildPalette({\n primary: green,\n secondary: purple,\n info: lightBlue,\n success: green,\n warning: orange,\n error: red,\n grey: baseGrey,\n mode: 'dark',\n backgroundDefault: '#0A1A0A',\n paperColor: '#0F1F0F',\n }),\n colorGroup: {\n key: 'nature',\n main: green[500],\n palette: green,\n },\n };\n\n case 'default-dark':\n return {\n lightPalette: defaultLightPalette,\n darkPalette: defaultDarkPalette,\n colorGroup: {\n key: 'default-dark',\n main: blue[400],\n palette: blue,\n },\n };\n\n case 'default-light':\n default:\n return {\n lightPalette: defaultLightPalette,\n darkPalette: defaultDarkPalette,\n colorGroup: {\n key: 'default-light',\n main: blue[500],\n palette: blue,\n },\n };\n }\n}\n\n/**\n * Build palette from preset palette definition (for presets with full palette specs).\n */\nfunction buildPaletteFromPreset(\n presetPalette: import('../types/theme.js').PresetPalette,\n mode: 'light' | 'dark'\n): PaletteOptions {\n const grey = presetPalette.grey as import('../types/theme.js').ColorScale;\n\n return {\n mode,\n primary: generatePaletteColorWithChannels(presetPalette.primary),\n secondary: generatePaletteColorWithChannels(presetPalette.secondary),\n info: generatePaletteColorWithChannels(presetPalette.info),\n success: generatePaletteColorWithChannels(presetPalette.success),\n warning: generatePaletteColorWithChannels(presetPalette.warning),\n error: generatePaletteColorWithChannels(presetPalette.error),\n grey,\n common: presetPalette.common,\n background: presetPalette.background,\n text: presetPalette.text,\n };\n}\n\n// =============================================================================\n// COLOR GROUPS FOR PRIMARY OVERRIDE\n// =============================================================================\n\n/**\n * Available color groups for primary color override.\n * When primaryColor matches a group's main color, we use that group's full palette\n * for proper shade generation in both light and dark modes.\n */\nexport const COLOR_GROUPS: ColorGroup[] = [\n // Default presets\n { key: 'default-light', main: blue[500], palette: blue },\n { key: 'default-dark', main: blue[400], palette: blue },\n // Base colors\n { key: 'green', main: green[500], palette: green },\n { key: 'purple', main: purple[500], palette: purple },\n { key: 'red', main: red[500], palette: red },\n { key: 'orange', main: orange[500], palette: orange },\n { key: 'lightBlue', main: lightBlue[500], palette: lightBlue },\n // Preset colors\n { key: 'luxury', main: luxuryPrimary[500], palette: luxuryPrimary },\n { key: 'dracula', main: draculaPurple[500], palette: draculaPurple },\n { key: 'ember', main: emberPrimary[500], palette: emberPrimary },\n { key: 'midnight', main: midnightIndigo[500], palette: midnightIndigo },\n { key: 'retro', main: retroAmber[500], palette: retroAmber },\n { key: 'minimal', main: minimalAccent[500], palette: minimalAccent },\n { key: 'nature', main: green[500], palette: green },\n { key: 'arctic', main: '#1E88E5', palette: blue },\n];\n\n// =============================================================================\n// PRIMARY COLOR OVERRIDE\n// =============================================================================\n\n/**\n * Apply primary color override to palette.\n * Uses existing color group if exact match, otherwise generates new shades.\n */\nfunction applyPrimaryOverride(\n basePalette: PaletteOptions,\n primaryColor: string | null | undefined,\n mode: 'light' | 'dark'\n): PaletteOptions {\n if (!primaryColor) return basePalette;\n\n // Find matching color group for optimal shades\n const colorGroup = COLOR_GROUPS.find((group) => group.main === primaryColor);\n\n if (colorGroup?.palette) {\n // Use pre-defined palette for best results\n const newPrimary =\n mode === 'dark'\n ? generatePaletteColorWithChannels({\n lighter: colorGroup.palette[950],\n light: colorGroup.palette[700],\n main: primaryColor,\n dark: colorGroup.palette[300],\n darker: colorGroup.palette[100],\n contrastText: colorGroup.palette[950],\n })\n : generatePaletteColorWithChannels({\n lighter: colorGroup.palette[50],\n light: colorGroup.palette[400],\n main: primaryColor,\n dark: colorGroup.palette[600],\n darker: colorGroup.palette[900],\n contrastText: colorGroup.palette[50],\n });\n\n return { ...basePalette, primary: newPrimary };\n }\n\n // Generate new color scale from custom color\n const generatedScale = generateColorScale(primaryColor);\n const newPrimary =\n mode === 'dark'\n ? generatePaletteColorWithChannels({\n lighter: generatedScale[950],\n light: generatedScale[700],\n main: generatedScale[400],\n dark: generatedScale[300],\n darker: generatedScale[100],\n contrastText: generatedScale[950],\n })\n : generatePaletteColorWithChannels({\n lighter: generatedScale[50],\n light: generatedScale[400],\n main: generatedScale[500],\n dark: generatedScale[600],\n darker: generatedScale[900],\n contrastText: generatedScale[50],\n });\n\n return { ...basePalette, primary: newPrimary };\n}\n\n// =============================================================================\n// DENSITY MULTIPLIER\n// =============================================================================\n\n/**\n * Get density multiplier for spacing calculations.\n * Used by component overrides to scale padding/margins.\n */\nfunction getDensityMultiplier(density: ComponentDensity): number {\n switch (density) {\n case 'compact':\n return 0.75;\n case 'comfortable':\n return 1.25;\n case 'standard':\n default:\n return 1;\n }\n}\n\n// =============================================================================\n// DEEP MERGE\n// =============================================================================\n\n/**\n * Deep merge two theme option objects.\n * Arrays are replaced, not concatenated. Functions are overwritten.\n * Preserves nested component overrides, palette, typography, etc.\n */\nfunction deepMergeThemeOptions(base: ThemeOptions, overrides: Partial<ThemeOptions>): ThemeOptions {\n const result: Record<string, unknown> = { ...base };\n\n for (const key of Object.keys(overrides)) {\n const baseVal = (base as Record<string, unknown>)[key];\n const overrideVal = (overrides as Record<string, unknown>)[key];\n\n if (\n overrideVal !== null &&\n typeof overrideVal === 'object' &&\n !Array.isArray(overrideVal) &&\n typeof overrideVal !== 'function' &&\n baseVal !== null &&\n typeof baseVal === 'object' &&\n !Array.isArray(baseVal) &&\n typeof baseVal !== 'function'\n ) {\n result[key] = deepMergeThemeOptions(baseVal as ThemeOptions, overrideVal as Partial<ThemeOptions>);\n } else {\n result[key] = overrideVal;\n }\n }\n\n return result as ThemeOptions;\n}\n\n// =============================================================================\n// THEME FACTORY\n// =============================================================================\n\n/**\n * Create a Prism theme.\n *\n * This is the main entry point for creating themes. It uses MUI's native\n * colorSchemes for automatic light/dark mode switching, CSS variables\n * for dynamic theming, and includes all Prism extensions.\n *\n * @example\n * ```tsx\n * // Basic usage\n * const theme = createPrismTheme({ preset: 'luxury', mode: 'dark' });\n *\n * // With custom primary color\n * const theme = createPrismTheme({\n * preset: 'default-light',\n * primaryColor: '#FF5630',\n * density: 'compact',\n * });\n *\n * // Use with MUI ThemeProvider\n * <ThemeProvider theme={theme}>\n * <App />\n * </ThemeProvider>\n * ```\n *\n * @param options - Theme creation options\n * @returns MUI theme with Prism extensions\n */\nexport function createPrismTheme(options: CreatePrismThemeOptions = {}): PrismTheme {\n const {\n preset = 'default-light',\n mode = 'light',\n direction = 'ltr',\n locale = 'enUS',\n primaryColor = null,\n cssVarPrefix = 'prism',\n density = 'standard',\n borderRadius = 8,\n responsiveFonts = true,\n contrast = 'default',\n overrides,\n } = options;\n\n // Get preset configuration\n const presetConfig = getPresetConfig(preset);\n\n // Note: MUI 7 handles 'system' mode automatically via CSS media queries\n // No need to resolve mode here - CSS variables handle light/dark switching\n\n // Apply primary color override if provided\n let lightPalette = applyPrimaryOverride(presetConfig.lightPalette, primaryColor, 'light');\n let darkPalette = applyPrimaryOverride(presetConfig.darkPalette, primaryColor, 'dark');\n\n // Apply high contrast mode if enabled (increases background/paper contrast)\n if (contrast === 'high') {\n lightPalette = {\n ...lightPalette,\n background: {\n ...lightPalette.background,\n default: baseGrey[200],\n paper: '#FFFFFF',\n },\n };\n darkPalette = {\n ...darkPalette,\n background: {\n ...darkPalette.background,\n default: '#000000',\n paper: baseGrey[900],\n },\n };\n }\n\n // Get density multiplier\n const densityMultiplier = getDensityMultiplier(density);\n\n // Components configuration\n const componentsConfig: ComponentsConfig = {\n density,\n borderRadius,\n buttonStyle: 'contained',\n };\n\n // CSS variables configuration\n const cssVariablesConfig: CssVariablesConfig = {\n prefix: cssVarPrefix,\n colorSchemeSelector: `data-${cssVarPrefix}-color-scheme`,\n enabled: true,\n };\n\n // Build MUI locale\n const muiLocale = locales[locale] || locales.enUS;\n\n // Get shadows for light and dark modes\n const primaryMain = (lightPalette.primary as { main?: string })?.main || blue[500];\n const lightShadows = createShadows(primaryMain);\n // Dark mode uses subtle shadows with reduced opacity\n const darkShadows = createShadows(primaryMain, 0.4);\n\n // Resolve effective mode ('system' → actual light/dark)\n // Note: PrismProvider resolves 'system' before calling this, but handle fallback here\n const effectiveMode = mode === 'dark' ? 'dark' : 'light';\n\n // Select palette and shadows based on active mode\n const activePalette = effectiveMode === 'dark' ? darkPalette : lightPalette;\n const activeShadows = effectiveMode === 'dark' ? darkShadows : lightShadows;\n\n // Build base theme options\n const themeOptions: ThemeOptions = {\n // CSS Variables integration - enables theme.vars.palette.*\n cssVariables: {\n cssVarPrefix,\n colorSchemeSelector: cssVariablesConfig.colorSchemeSelector,\n },\n\n // Active palette based on resolved mode\n // PrismProvider recreates the theme on mode change, so we use the resolved palette directly\n palette: activePalette,\n\n // Active shadows based on resolved mode\n shadows: activeShadows,\n\n // Typography (uses Nunito Sans / Exo 2 defaults, overridable via options)\n typography: createTypography({\n fontFamily: {\n primary: options.fontFamily\n ? `\"${options.fontFamily}\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif`\n : typography.fontFamily.primary,\n secondary: typography.fontFamily.secondary,\n mono: typography.fontFamily.mono,\n },\n fontWeights: typography.fontWeights,\n }),\n // Note: actual html font-size is set by PrismProvider via useEffect.\n // Do NOT set htmlFontSize here — MUI would compensate its rem values,\n // cancelling out the scaling effect we want.\n\n // Direction (RTL support)\n direction,\n\n // Shape\n shape: {\n borderRadius,\n },\n\n // Mixins\n mixins,\n\n // Component overrides with density support\n components: componentOverrides(componentsConfig),\n };\n\n // Deep merge with custom overrides (preserves nested component overrides)\n const finalOptions = overrides ? deepMergeThemeOptions(themeOptions, overrides) : themeOptions;\n\n // Create base theme\n let theme = muiCreateTheme(finalOptions, muiLocale);\n\n // Apply responsive font sizes\n if (responsiveFonts) {\n theme = responsiveFontSizes(theme);\n }\n\n // Add Prism metadata\n const prismTheme = theme as unknown as PrismTheme;\n prismTheme.prism = {\n preset,\n mode,\n direction,\n density,\n densityMultiplier,\n cssVariables: cssVariablesConfig,\n };\n\n return prismTheme;\n}\n\n// =============================================================================\n// CONVENIENCE EXPORTS\n// =============================================================================\n\n/**\n * Available preset names.\n */\nexport const PRESET_NAMES: readonly ThemePreset[] = [\n 'default-light',\n 'default-dark',\n 'luxury',\n 'arctic',\n 'nature',\n 'ember',\n 'dracula',\n 'midnight',\n 'retro',\n 'minimal',\n] as const;\n\n/**\n * Preset display names for UI.\n */\nexport const PRESET_DISPLAY_NAMES: Record<ThemePreset, string> = {\n 'default-light': 'Default (Light)',\n 'default-dark': 'Default (Dark)',\n luxury: 'Luxury',\n arctic: 'Arctic',\n nature: 'Nature',\n ember: 'Ember',\n dracula: 'Dracula',\n midnight: 'Midnight',\n retro: 'Retro',\n minimal: 'Minimal',\n};\n\n/**\n * Inherent mode for each preset.\n * Non-default presets are inherently light or dark — selecting them forces the mode.\n * Default presets respect the user's light/dark/system toggle.\n */\nexport const PRESET_INHERENT_MODE: Record<ThemePreset, 'light' | 'dark'> = {\n 'default-light': 'light',\n 'default-dark': 'dark',\n luxury: 'light',\n arctic: 'light',\n nature: 'light',\n retro: 'light',\n minimal: 'light',\n ember: 'dark',\n dracula: 'dark',\n midnight: 'dark',\n};\n\n/**\n * Get preset display name.\n */\nexport function getPresetDisplayName(preset: ThemePreset): string {\n return PRESET_DISPLAY_NAMES[preset];\n}\n\n// Re-export types for convenience\nexport type { PrismTheme, ThemePreset, ThemeMode, ThemeDirection, ComponentDensity };\n"]}