@omnitron-dev/prism 0.3.0 → 0.3.2

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 (413) hide show
  1. package/README.md +216 -2
  2. package/THIRD-PARTY-NOTICES.txt +26 -0
  3. package/dist/accessibility/index.js +2 -0
  4. package/dist/accessibility/index.js.map +1 -1
  5. package/dist/auth/index.d.ts +4 -0
  6. package/dist/auth/index.d.ts.map +1 -0
  7. package/dist/auth/index.js +4 -0
  8. package/dist/auth/index.js.map +1 -0
  9. package/dist/blocks/auth-block/guards.d.ts +3 -2
  10. package/dist/blocks/auth-block/guards.d.ts.map +1 -1
  11. package/dist/blocks/dashboard-block/dashboard-block.d.ts.map +1 -1
  12. package/dist/blocks/dashboard-block/types.d.ts +4 -2
  13. package/dist/blocks/dashboard-block/types.d.ts.map +1 -1
  14. package/dist/blocks/dashboard-block/use-dashboard-block.d.ts +2 -2
  15. package/dist/blocks/dashboard-block/use-dashboard-block.d.ts.map +1 -1
  16. package/dist/blocks/data-grid-block/data-grid-block.d.ts.map +1 -1
  17. package/dist/blocks/data-grid-block/types.d.ts +3 -0
  18. package/dist/blocks/data-grid-block/types.d.ts.map +1 -1
  19. package/dist/blocks/index.js +80 -253
  20. package/dist/blocks/index.js.map +1 -1
  21. package/dist/chunk-2AB7VGPW.js +447 -0
  22. package/dist/chunk-2AB7VGPW.js.map +1 -0
  23. package/dist/{chunk-WFD54GQQ.js → chunk-2E67PQ4T.js} +14 -573
  24. package/dist/chunk-2E67PQ4T.js.map +1 -0
  25. package/dist/chunk-2KG2NI73.js +84 -0
  26. package/dist/chunk-2KG2NI73.js.map +1 -0
  27. package/dist/chunk-2UYRW6X3.js +44 -0
  28. package/dist/chunk-2UYRW6X3.js.map +1 -0
  29. package/dist/chunk-36C5H56C.js +208 -0
  30. package/dist/chunk-36C5H56C.js.map +1 -0
  31. package/dist/chunk-36FOXX25.js +73 -0
  32. package/dist/chunk-36FOXX25.js.map +1 -0
  33. package/dist/chunk-3VSM7NZG.js +562 -0
  34. package/dist/chunk-3VSM7NZG.js.map +1 -0
  35. package/dist/chunk-4B2LTPK2.js +826 -0
  36. package/dist/chunk-4B2LTPK2.js.map +1 -0
  37. package/dist/chunk-4HUGZJKU.js +108 -0
  38. package/dist/chunk-4HUGZJKU.js.map +1 -0
  39. package/dist/chunk-4Q5L7LDG.js +74 -0
  40. package/dist/chunk-4Q5L7LDG.js.map +1 -0
  41. package/dist/{chunk-BRDWQVRT.js → chunk-4R7EZ7GQ.js} +3 -2
  42. package/dist/chunk-4R7EZ7GQ.js.map +1 -0
  43. package/dist/chunk-6IANOSMD.js +185 -0
  44. package/dist/chunk-6IANOSMD.js.map +1 -0
  45. package/dist/chunk-7ATBURW2.js +206 -0
  46. package/dist/chunk-7ATBURW2.js.map +1 -0
  47. package/dist/{chunk-6AHI4GSV.js → chunk-AATAOOSF.js} +4 -3
  48. package/dist/chunk-AATAOOSF.js.map +1 -0
  49. package/dist/chunk-AKLRKCYH.js +128 -0
  50. package/dist/chunk-AKLRKCYH.js.map +1 -0
  51. package/dist/chunk-CT46KJOR.js +133 -0
  52. package/dist/chunk-CT46KJOR.js.map +1 -0
  53. package/dist/{chunk-YQW43BDH.js → chunk-D4GFAJAZ.js} +1168 -6354
  54. package/dist/chunk-D4GFAJAZ.js.map +1 -0
  55. package/dist/chunk-D5J3KW6Q.js +106 -0
  56. package/dist/chunk-D5J3KW6Q.js.map +1 -0
  57. package/dist/chunk-DEPJRTVT.js +3 -0
  58. package/dist/{chunk-FU52GL2E.js.map → chunk-DEPJRTVT.js.map} +1 -1
  59. package/dist/{chunk-S6SEGBX6.js → chunk-DHTYHUYI.js} +85 -107
  60. package/dist/chunk-DHTYHUYI.js.map +1 -0
  61. package/dist/chunk-E7WM2RXA.js +249 -0
  62. package/dist/chunk-E7WM2RXA.js.map +1 -0
  63. package/dist/chunk-F6RZ7LW6.js +1271 -0
  64. package/dist/chunk-F6RZ7LW6.js.map +1 -0
  65. package/dist/chunk-FOGY3HA4.js +217 -0
  66. package/dist/chunk-FOGY3HA4.js.map +1 -0
  67. package/dist/chunk-G2GANYMW.js +139 -0
  68. package/dist/chunk-G2GANYMW.js.map +1 -0
  69. package/dist/chunk-I6DILPFE.js +293 -0
  70. package/dist/chunk-I6DILPFE.js.map +1 -0
  71. package/dist/chunk-IRYU3NTG.js +573 -0
  72. package/dist/chunk-IRYU3NTG.js.map +1 -0
  73. package/dist/chunk-JTIUGPW5.js +284 -0
  74. package/dist/chunk-JTIUGPW5.js.map +1 -0
  75. package/dist/{chunk-GUFHFEPZ.js → chunk-JZBSPDED.js} +2 -2
  76. package/dist/{chunk-GUFHFEPZ.js.map → chunk-JZBSPDED.js.map} +1 -1
  77. package/dist/chunk-KPY7TA4D.js +191 -0
  78. package/dist/chunk-KPY7TA4D.js.map +1 -0
  79. package/dist/{chunk-OBJ244BO.js → chunk-LFWKGNCX.js} +50 -656
  80. package/dist/chunk-LFWKGNCX.js.map +1 -0
  81. package/dist/chunk-LH4ZZZYB.js +37 -0
  82. package/dist/chunk-LH4ZZZYB.js.map +1 -0
  83. package/dist/chunk-NFJ7CPG3.js +13 -0
  84. package/dist/chunk-NFJ7CPG3.js.map +1 -0
  85. package/dist/chunk-NFPOIHD4.js +3 -0
  86. package/dist/{chunk-AYYFMTMI.js.map → chunk-NFPOIHD4.js.map} +1 -1
  87. package/dist/{chunk-XIXSSI3B.js → chunk-NJM5AVBM.js} +3 -2
  88. package/dist/chunk-NJM5AVBM.js.map +1 -0
  89. package/dist/{chunk-Z5OSPAOC.js → chunk-NSNM53WI.js} +196 -175
  90. package/dist/chunk-NSNM53WI.js.map +1 -0
  91. package/dist/chunk-NTREGTG7.js +31 -0
  92. package/dist/chunk-NTREGTG7.js.map +1 -0
  93. package/dist/{chunk-ADG4HZEP.js → chunk-OKJA6SJM.js} +4 -4
  94. package/dist/chunk-OKJA6SJM.js.map +1 -0
  95. package/dist/chunk-Q6JDNFSG.js +303 -0
  96. package/dist/chunk-Q6JDNFSG.js.map +1 -0
  97. package/dist/chunk-RPOGINR5.js +115 -0
  98. package/dist/chunk-RPOGINR5.js.map +1 -0
  99. package/dist/{chunk-ZTATTUH7.js → chunk-RSWVYIXK.js} +282 -683
  100. package/dist/chunk-RSWVYIXK.js.map +1 -0
  101. package/dist/chunk-SSEHL5VP.js +110 -0
  102. package/dist/chunk-SSEHL5VP.js.map +1 -0
  103. package/dist/chunk-TEIGUOWN.js +523 -0
  104. package/dist/chunk-TEIGUOWN.js.map +1 -0
  105. package/dist/{chunk-AYYFMTMI.js → chunk-TJ7DHXUX.js} +2 -2
  106. package/dist/chunk-TJ7DHXUX.js.map +1 -0
  107. package/dist/chunk-TZHWYT34.js +590 -0
  108. package/dist/chunk-TZHWYT34.js.map +1 -0
  109. package/dist/chunk-TZWHELY4.js +45 -0
  110. package/dist/chunk-TZWHELY4.js.map +1 -0
  111. package/dist/{chunk-BZOL7GMU.js → chunk-UEINJFLS.js} +7 -7
  112. package/dist/chunk-UEINJFLS.js.map +1 -0
  113. package/dist/chunk-URFQX3I6.js +129 -0
  114. package/dist/chunk-URFQX3I6.js.map +1 -0
  115. package/dist/chunk-VG6FOMOH.js +187 -0
  116. package/dist/chunk-VG6FOMOH.js.map +1 -0
  117. package/dist/chunk-VQVVHMPG.js +106 -0
  118. package/dist/chunk-VQVVHMPG.js.map +1 -0
  119. package/dist/{chunk-DRFNMZLG.js → chunk-VUKOT432.js} +3 -2
  120. package/dist/chunk-VUKOT432.js.map +1 -0
  121. package/dist/chunk-WD4N72DL.js +315 -0
  122. package/dist/chunk-WD4N72DL.js.map +1 -0
  123. package/dist/chunk-XBYMG4QK.js +119 -0
  124. package/dist/chunk-XBYMG4QK.js.map +1 -0
  125. package/dist/chunk-YHM6GIHV.js +3 -0
  126. package/dist/chunk-YHM6GIHV.js.map +1 -0
  127. package/dist/{chunk-SNZK5X6F.js → chunk-Z2AN43YU.js} +4 -2
  128. package/dist/chunk-Z2AN43YU.js.map +1 -0
  129. package/dist/chunk-ZNWHMQRM.js +171 -0
  130. package/dist/chunk-ZNWHMQRM.js.map +1 -0
  131. package/dist/{chunk-YSIG2XYH.js → chunk-ZRJYQN6Y.js} +2 -2
  132. package/dist/{chunk-YSIG2XYH.js.map → chunk-ZRJYQN6Y.js.map} +1 -1
  133. package/dist/{chunk-AD4W7HYC.js → chunk-ZYI3MHLE.js} +3 -2
  134. package/dist/chunk-ZYI3MHLE.js.map +1 -0
  135. package/dist/cli/index.js +66 -423
  136. package/dist/cli/index.js.map +1 -1
  137. package/dist/components/accordion/accordion.d.ts.map +1 -1
  138. package/dist/components/admin-filters/admin-data-table.d.ts +7 -1
  139. package/dist/components/admin-filters/admin-data-table.d.ts.map +1 -1
  140. package/dist/components/admin-filters/filter-toolbar.d.ts.map +1 -1
  141. package/dist/components/admin-filters/index.js +8 -0
  142. package/dist/components/admin-filters/index.js.map +1 -0
  143. package/dist/components/alert/alert.d.ts.map +1 -1
  144. package/dist/components/alert/index.js +5 -0
  145. package/dist/components/alert/index.js.map +1 -0
  146. package/dist/components/animate/index.js +5 -0
  147. package/dist/components/animate/index.js.map +1 -0
  148. package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  149. package/dist/components/breadcrumbs/index.js +4 -0
  150. package/dist/components/breadcrumbs/index.js.map +1 -0
  151. package/dist/components/card/index.js +4 -0
  152. package/dist/components/card/index.js.map +1 -0
  153. package/dist/components/chart/chart.d.ts.map +1 -1
  154. package/dist/components/chart/index.css +52 -0
  155. package/dist/components/chart/index.css.map +1 -0
  156. package/dist/components/chart/index.js +5 -0
  157. package/dist/components/chart/index.js.map +1 -0
  158. package/dist/components/chart/types.d.ts +3 -1
  159. package/dist/components/chart/types.d.ts.map +1 -1
  160. package/dist/components/chart/use-chart.d.ts.map +1 -1
  161. package/dist/components/command-palette/command-palette.d.ts +3 -1
  162. package/dist/components/command-palette/command-palette.d.ts.map +1 -1
  163. package/dist/components/command-palette/index.js +4 -0
  164. package/dist/components/command-palette/index.js.map +1 -0
  165. package/dist/components/confirm-dialog/index.js +4 -0
  166. package/dist/components/confirm-dialog/index.js.map +1 -0
  167. package/dist/components/date-input/date-input.d.ts +28 -0
  168. package/dist/components/date-input/date-input.d.ts.map +1 -0
  169. package/dist/components/date-input/index.d.ts +3 -0
  170. package/dist/components/date-input/index.d.ts.map +1 -0
  171. package/dist/components/date-input/value.d.ts +9 -0
  172. package/dist/components/date-input/value.d.ts.map +1 -0
  173. package/dist/components/doc-layout/doc-sidebar.d.ts +4 -1
  174. package/dist/components/doc-layout/doc-sidebar.d.ts.map +1 -1
  175. package/dist/components/doc-layout/index.js +7 -0
  176. package/dist/components/doc-layout/index.js.map +1 -0
  177. package/dist/components/editor/editor.d.ts.map +1 -1
  178. package/dist/components/editor/icons/index.d.ts +32 -40
  179. package/dist/components/editor/icons/index.d.ts.map +1 -1
  180. package/dist/components/editor/index.js +4 -1
  181. package/dist/components/editor/index.js.map +1 -1
  182. package/dist/components/emoji-picker/index.js +2 -1
  183. package/dist/components/emoji-picker/index.js.map +1 -1
  184. package/dist/components/empty-content/empty-content.d.ts.map +1 -1
  185. package/dist/components/empty-content/index.js +4 -0
  186. package/dist/components/empty-content/index.js.map +1 -0
  187. package/dist/components/error-boundary/error-boundary.d.ts.map +1 -1
  188. package/dist/components/error-boundary/index.js +6 -0
  189. package/dist/components/error-boundary/index.js.map +1 -0
  190. package/dist/components/index.css +17 -10
  191. package/dist/components/index.css.map +1 -1
  192. package/dist/components/index.d.ts +5 -4
  193. package/dist/components/index.d.ts.map +1 -1
  194. package/dist/components/index.js +47 -11
  195. package/dist/components/index.js.map +1 -1
  196. package/dist/components/knowledge-graph/edge-labels.d.ts +14 -0
  197. package/dist/components/knowledge-graph/edge-labels.d.ts.map +1 -0
  198. package/dist/components/knowledge-graph/graph.d.ts +56 -0
  199. package/dist/components/knowledge-graph/graph.d.ts.map +1 -0
  200. package/dist/components/knowledge-graph/index.css +176 -0
  201. package/dist/components/knowledge-graph/index.css.map +1 -0
  202. package/dist/components/knowledge-graph/index.d.ts +3 -0
  203. package/dist/components/knowledge-graph/index.d.ts.map +1 -0
  204. package/dist/components/knowledge-graph/index.js +797 -0
  205. package/dist/components/knowledge-graph/index.js.map +1 -0
  206. package/dist/components/knowledge-graph/label-layout.d.ts +28 -0
  207. package/dist/components/knowledge-graph/label-layout.d.ts.map +1 -0
  208. package/dist/components/knowledge-graph/label-store.d.ts +15 -0
  209. package/dist/components/knowledge-graph/label-store.d.ts.map +1 -0
  210. package/dist/components/knowledge-graph/model.d.ts +92 -0
  211. package/dist/components/knowledge-graph/model.d.ts.map +1 -0
  212. package/dist/components/label/index.js +5 -0
  213. package/dist/components/label/index.js.map +1 -0
  214. package/dist/components/label/label.d.ts.map +1 -1
  215. package/dist/components/lightbox/lightbox.d.ts.map +1 -1
  216. package/dist/components/loading-screen/index.js +4 -0
  217. package/dist/components/loading-screen/index.js.map +1 -0
  218. package/dist/components/map/Map.d.ts +19 -43
  219. package/dist/components/map/Map.d.ts.map +1 -1
  220. package/dist/components/map/MapCoverageLayer.d.ts +1 -1
  221. package/dist/components/map/MapCoverageLayer.d.ts.map +1 -1
  222. package/dist/components/map/MapMarker.d.ts +1 -1
  223. package/dist/components/map/MapMarker.d.ts.map +1 -1
  224. package/dist/components/map/MapPlaceSearch.d.ts +33 -0
  225. package/dist/components/map/MapPlaceSearch.d.ts.map +1 -0
  226. package/dist/components/map/MapPointPicker.d.ts +21 -12
  227. package/dist/components/map/MapPointPicker.d.ts.map +1 -1
  228. package/dist/components/map/coordinates.d.ts +10 -0
  229. package/dist/components/map/coordinates.d.ts.map +1 -0
  230. package/dist/components/map/index.css +4 -0
  231. package/dist/components/map/index.css.map +1 -0
  232. package/dist/components/map/index.d.ts +7 -2
  233. package/dist/components/map/index.d.ts.map +1 -1
  234. package/dist/components/map/index.js +4 -0
  235. package/dist/components/map/index.js.map +1 -0
  236. package/dist/components/nav-card/nav-card.d.ts.map +1 -1
  237. package/dist/components/navigation-progress/index.js +4 -0
  238. package/dist/components/navigation-progress/index.js.map +1 -0
  239. package/dist/components/page-content/index.js +4 -0
  240. package/dist/components/page-content/index.js.map +1 -0
  241. package/dist/components/popover/index.js +4 -0
  242. package/dist/components/popover/index.js.map +1 -0
  243. package/dist/components/rail/rail.d.ts.map +1 -1
  244. package/dist/components/research/diagram-image.d.ts +11 -0
  245. package/dist/components/research/diagram-image.d.ts.map +1 -0
  246. package/dist/components/research/diagram.d.ts +8 -0
  247. package/dist/components/research/diagram.d.ts.map +1 -0
  248. package/dist/components/research/document.d.ts +33 -0
  249. package/dist/components/research/document.d.ts.map +1 -0
  250. package/dist/components/research/frontmatter.d.ts +15 -0
  251. package/dist/components/research/frontmatter.d.ts.map +1 -0
  252. package/dist/components/research/index.css +51 -0
  253. package/dist/components/research/index.css.map +1 -0
  254. package/dist/components/research/index.d.ts +3 -0
  255. package/dist/components/research/index.d.ts.map +1 -0
  256. package/dist/components/research/index.js +8 -0
  257. package/dist/components/research/index.js.map +1 -0
  258. package/dist/components/research/parse.d.ts +29 -0
  259. package/dist/components/research/parse.d.ts.map +1 -0
  260. package/dist/components/research-editor/block-commands.d.ts +20 -0
  261. package/dist/components/research-editor/block-commands.d.ts.map +1 -0
  262. package/dist/components/research-editor/block-controls.d.ts +13 -0
  263. package/dist/components/research-editor/block-controls.d.ts.map +1 -0
  264. package/dist/components/research-editor/editor.d.ts +75 -0
  265. package/dist/components/research-editor/editor.d.ts.map +1 -0
  266. package/dist/components/research-editor/extensions.d.ts +14 -0
  267. package/dist/components/research-editor/extensions.d.ts.map +1 -0
  268. package/dist/components/research-editor/index.css +332 -0
  269. package/dist/components/research-editor/index.css.map +1 -0
  270. package/dist/components/research-editor/index.d.ts +5 -0
  271. package/dist/components/research-editor/index.d.ts.map +1 -0
  272. package/dist/components/research-editor/index.js +1593 -0
  273. package/dist/components/research-editor/index.js.map +1 -0
  274. package/dist/components/research-editor/math-input.d.ts +32 -0
  275. package/dist/components/research-editor/math-input.d.ts.map +1 -0
  276. package/dist/components/research-editor/math-markup.d.ts +4 -0
  277. package/dist/components/research-editor/math-markup.d.ts.map +1 -0
  278. package/dist/components/research-editor/math-navigation.d.ts +6 -0
  279. package/dist/components/research-editor/math-navigation.d.ts.map +1 -0
  280. package/dist/components/research-editor/math-node.d.ts +11 -0
  281. package/dist/components/research-editor/math-node.d.ts.map +1 -0
  282. package/dist/components/research-editor/source.d.ts +19 -0
  283. package/dist/components/research-editor/source.d.ts.map +1 -0
  284. package/dist/components/scroll-to-top/index.js +4 -0
  285. package/dist/components/scroll-to-top/index.js.map +1 -0
  286. package/dist/components/scrollbar/scrollbar.d.ts +4 -2
  287. package/dist/components/scrollbar/scrollbar.d.ts.map +1 -1
  288. package/dist/components/search-input/index.js +7 -0
  289. package/dist/components/search-input/index.js.map +1 -0
  290. package/dist/components/search-input/search-input.d.ts +3 -11
  291. package/dist/components/search-input/search-input.d.ts.map +1 -1
  292. package/dist/components/skeleton/index.js +4 -0
  293. package/dist/components/skeleton/index.js.map +1 -0
  294. package/dist/components/snackbar/index.js +6 -0
  295. package/dist/components/snackbar/index.js.map +1 -0
  296. package/dist/components/stepper/index.js +4 -0
  297. package/dist/components/stepper/index.js.map +1 -0
  298. package/dist/components/table/index.d.ts +1 -0
  299. package/dist/components/table/index.d.ts.map +1 -1
  300. package/dist/components/table/index.js +5 -0
  301. package/dist/components/table/index.js.map +1 -0
  302. package/dist/components/table/table-viewport.d.ts +13 -0
  303. package/dist/components/table/table-viewport.d.ts.map +1 -0
  304. package/dist/components/table/table.d.ts +3 -1
  305. package/dist/components/table/table.d.ts.map +1 -1
  306. package/dist/components/tabs/index.js +6 -0
  307. package/dist/components/tabs/index.js.map +1 -0
  308. package/dist/components/tabs/tabs.d.ts +12 -1
  309. package/dist/components/tabs/tabs.d.ts.map +1 -1
  310. package/dist/components/tiptap-renderer/tiptap-renderer.d.ts +4 -3
  311. package/dist/components/tiptap-renderer/tiptap-renderer.d.ts.map +1 -1
  312. package/dist/core/index.d.ts +1 -1
  313. package/dist/core/index.d.ts.map +1 -1
  314. package/dist/core/index.js +12 -6
  315. package/dist/core/index.js.map +1 -1
  316. package/dist/core/provider.d.ts +7 -2
  317. package/dist/core/provider.d.ts.map +1 -1
  318. package/dist/forms/index.js +2 -0
  319. package/dist/forms/index.js.map +1 -1
  320. package/dist/forms/schema-provider.d.ts +3 -3
  321. package/dist/forms/schema-utils.d.ts +3 -3
  322. package/dist/hooks/index.js +14 -8
  323. package/dist/hooks/index.js.map +1 -1
  324. package/dist/hooks/use-config-from-query.d.ts +2 -0
  325. package/dist/hooks/use-config-from-query.d.ts.map +1 -1
  326. package/dist/hooks/use-image-dimensions.d.ts.map +1 -1
  327. package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -1
  328. package/dist/hooks/use-scroll-position.d.ts.map +1 -1
  329. package/dist/hooks/use-window-size.d.ts.map +1 -1
  330. package/dist/icons/context.d.ts +17 -0
  331. package/dist/icons/context.d.ts.map +1 -0
  332. package/dist/icons/controls.d.ts +51 -0
  333. package/dist/icons/controls.d.ts.map +1 -0
  334. package/dist/icons/index.d.ts +3 -0
  335. package/dist/icons/index.d.ts.map +1 -0
  336. package/dist/icons/index.js +5 -0
  337. package/dist/icons/index.js.map +1 -0
  338. package/dist/icons/theme.d.ts +4 -0
  339. package/dist/icons/theme.d.ts.map +1 -0
  340. package/dist/index.css +17 -10
  341. package/dist/index.css.map +1 -1
  342. package/dist/index.js +57 -20
  343. package/dist/index.js.map +1 -1
  344. package/dist/internal/research-parser.js +3 -0
  345. package/dist/internal/research-parser.js.map +1 -0
  346. package/dist/layouts/core/header-section.d.ts +1 -0
  347. package/dist/layouts/core/header-section.d.ts.map +1 -1
  348. package/dist/layouts/dashboard/labels.d.ts +12 -0
  349. package/dist/layouts/dashboard/labels.d.ts.map +1 -0
  350. package/dist/layouts/dashboard/layout.d.ts +9 -1
  351. package/dist/layouts/dashboard/layout.d.ts.map +1 -1
  352. package/dist/layouts/dashboard/sidenav.d.ts +7 -3
  353. package/dist/layouts/dashboard/sidenav.d.ts.map +1 -1
  354. package/dist/layouts/index.d.ts +5 -0
  355. package/dist/layouts/index.d.ts.map +1 -1
  356. package/dist/layouts/index.js +9 -3
  357. package/dist/layouts/index.js.map +1 -1
  358. package/dist/layouts/panel-layout.d.ts +35 -0
  359. package/dist/layouts/panel-layout.d.ts.map +1 -0
  360. package/dist/layouts/sidebar-toggle.d.ts +11 -0
  361. package/dist/layouts/sidebar-toggle.d.ts.map +1 -0
  362. package/dist/netron/index.js +2 -1
  363. package/dist/netron/index.js.map +1 -1
  364. package/dist/registry/index.js +1 -1
  365. package/dist/state/create-store.d.ts.map +1 -1
  366. package/dist/state/index.js +3 -2
  367. package/dist/state/index.js.map +1 -1
  368. package/dist/state/settings-version.d.ts.map +1 -1
  369. package/dist/state/stores/auth.d.ts +4 -16
  370. package/dist/state/stores/auth.d.ts.map +1 -1
  371. package/dist/state/stores/ui.d.ts +7 -105
  372. package/dist/state/stores/ui.d.ts.map +1 -1
  373. package/dist/theme/components/Button.d.ts.map +1 -1
  374. package/dist/theme/components/Chip.d.ts.map +1 -1
  375. package/dist/theme/components/Dialog.d.ts.map +1 -1
  376. package/dist/theme/components/FormControls.d.ts +3 -12
  377. package/dist/theme/components/FormControls.d.ts.map +1 -1
  378. package/dist/theme/components/TextField.d.ts.map +1 -1
  379. package/dist/theme/components/index.d.ts.map +1 -1
  380. package/dist/theme/components/theme-utils.d.ts +2 -2
  381. package/dist/theme/components/theme-utils.d.ts.map +1 -1
  382. package/dist/theme/create-theme.d.ts +5 -17
  383. package/dist/theme/create-theme.d.ts.map +1 -1
  384. package/dist/theme/index.js +8 -2
  385. package/dist/theme/index.js.map +1 -1
  386. package/dist/theme/mixins.d.ts +3 -1
  387. package/dist/theme/mixins.d.ts.map +1 -1
  388. package/dist/theme/palette/overrides.d.ts +24 -0
  389. package/dist/theme/palette/overrides.d.ts.map +1 -0
  390. package/dist/theme/semantic-surface.d.ts +8 -0
  391. package/dist/theme/semantic-surface.d.ts.map +1 -0
  392. package/dist/types/index.js +2 -2
  393. package/dist/ui/index.d.ts +18 -0
  394. package/dist/ui/index.d.ts.map +1 -0
  395. package/dist/ui/index.js +149 -0
  396. package/dist/ui/index.js.map +1 -0
  397. package/dist/utils/async-lock.d.ts.map +1 -1
  398. package/package.json +200 -47
  399. package/dist/chunk-6AHI4GSV.js.map +0 -1
  400. package/dist/chunk-AD4W7HYC.js.map +0 -1
  401. package/dist/chunk-ADG4HZEP.js.map +0 -1
  402. package/dist/chunk-BRDWQVRT.js.map +0 -1
  403. package/dist/chunk-BZOL7GMU.js.map +0 -1
  404. package/dist/chunk-DRFNMZLG.js.map +0 -1
  405. package/dist/chunk-FU52GL2E.js +0 -3
  406. package/dist/chunk-OBJ244BO.js.map +0 -1
  407. package/dist/chunk-S6SEGBX6.js.map +0 -1
  408. package/dist/chunk-SNZK5X6F.js.map +0 -1
  409. package/dist/chunk-WFD54GQQ.js.map +0 -1
  410. package/dist/chunk-XIXSSI3B.js.map +0 -1
  411. package/dist/chunk-YQW43BDH.js.map +0 -1
  412. package/dist/chunk-Z5OSPAOC.js.map +0 -1
  413. package/dist/chunk-ZTATTUH7.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ import { CloseIcon, SearchIcon } from './chunk-VQVVHMPG.js';
2
+ import { useState, useRef, useEffect } from 'react';
3
+ import InputBase from '@mui/material/InputBase';
4
+ import InputAdornment from '@mui/material/InputAdornment';
5
+ import Tooltip from '@mui/material/Tooltip';
6
+ import Box from '@mui/material/Box';
7
+ import { useTheme, alpha } from '@mui/material/styles';
8
+ import { jsx } from 'react/jsx-runtime';
9
+
10
+ function SearchIcon2({ size = 18 }) {
11
+ return /* @__PURE__ */ jsx(SearchIcon, { sx: { fontSize: size } });
12
+ }
13
+ function ClearIcon() {
14
+ return /* @__PURE__ */ jsx(CloseIcon, { sx: { fontSize: 16 } });
15
+ }
16
+ function SearchInput({
17
+ value: controlledValue,
18
+ onChange,
19
+ placeholder = "Search...",
20
+ "aria-label": ariaLabel,
21
+ debounce = 0,
22
+ compact = false,
23
+ fullWidth = true,
24
+ width,
25
+ minWidth,
26
+ clearTooltip = "Clear",
27
+ autoFocus,
28
+ onFocus,
29
+ onBlur,
30
+ onKeyDown,
31
+ sx,
32
+ ref
33
+ }) {
34
+ const theme = useTheme();
35
+ const [localValue, setLocalValue] = useState(controlledValue ?? "");
36
+ const timerRef = useRef(void 0);
37
+ useEffect(() => {
38
+ if (controlledValue !== void 0) {
39
+ clearTimeout(timerRef.current);
40
+ setLocalValue(controlledValue);
41
+ }
42
+ }, [controlledValue]);
43
+ const displayValue = controlledValue !== void 0 && debounce === 0 ? controlledValue : localValue;
44
+ const handleChange = (e) => {
45
+ const val = e.target.value;
46
+ setLocalValue(val);
47
+ if (debounce > 0) {
48
+ clearTimeout(timerRef.current);
49
+ timerRef.current = setTimeout(() => onChange?.(val), debounce);
50
+ } else {
51
+ onChange?.(val);
52
+ }
53
+ };
54
+ const handleClear = () => {
55
+ setLocalValue("");
56
+ clearTimeout(timerRef.current);
57
+ onChange?.("");
58
+ };
59
+ useEffect(() => () => clearTimeout(timerRef.current), []);
60
+ const py = compact ? 0.625 : 0.75;
61
+ const px = compact ? 1.25 : 1.5;
62
+ const inputPy = compact ? "3px" : "4px";
63
+ return /* @__PURE__ */ jsx(
64
+ InputBase,
65
+ {
66
+ "data-keyboard-search": true,
67
+ ref,
68
+ fullWidth,
69
+ placeholder,
70
+ inputProps: { "aria-label": ariaLabel ?? placeholder },
71
+ value: displayValue,
72
+ onChange: handleChange,
73
+ autoFocus,
74
+ onFocus,
75
+ onBlur,
76
+ onKeyDown,
77
+ startAdornment: /* @__PURE__ */ jsx(InputAdornment, { position: "start", sx: { color: "text.disabled", mr: compact ? 0.75 : 1 }, children: /* @__PURE__ */ jsx(SearchIcon2, { size: compact ? 16 : 18 }) }),
78
+ endAdornment: displayValue ? /* @__PURE__ */ jsx(InputAdornment, { position: "end", children: /* @__PURE__ */ jsx(Tooltip, { title: clearTooltip, children: /* @__PURE__ */ jsx(
79
+ Box,
80
+ {
81
+ component: "button",
82
+ type: "button",
83
+ "aria-label": clearTooltip,
84
+ onClick: handleClear,
85
+ sx: {
86
+ p: 0.25,
87
+ border: "none",
88
+ background: "none",
89
+ cursor: "pointer",
90
+ color: "text.disabled",
91
+ display: "flex",
92
+ alignItems: "center",
93
+ borderRadius: "50%",
94
+ "&:hover": { color: "text.secondary" }
95
+ },
96
+ children: /* @__PURE__ */ jsx(ClearIcon, {})
97
+ }
98
+ ) }) }) : null,
99
+ sx: {
100
+ px,
101
+ py,
102
+ borderRadius: 1,
103
+ fontSize: "0.875rem",
104
+ bgcolor: alpha(theme.palette.grey[500], 0.08),
105
+ transition: theme.transitions.create(["background-color"], {
106
+ duration: theme.transitions.duration.shorter
107
+ }),
108
+ "&:hover": {
109
+ bgcolor: alpha(theme.palette.grey[500], 0.12)
110
+ },
111
+ "&.Mui-focused": {
112
+ bgcolor: alpha(theme.palette.grey[500], 0.16)
113
+ },
114
+ "& .MuiInputBase-input": {
115
+ py: inputPy,
116
+ px: 0,
117
+ overflow: "visible",
118
+ "&::placeholder": {
119
+ opacity: 0.64
120
+ }
121
+ },
122
+ ...width != null && { width },
123
+ ...minWidth != null && { minWidth },
124
+ ...!fullWidth && { width: width ?? "auto" },
125
+ ...Array.isArray(sx) ? Object.assign({}, ...sx) : sx
126
+ }
127
+ }
128
+ );
129
+ }
130
+
131
+ export { SearchInput };
132
+ //# sourceMappingURL=chunk-CT46KJOR.js.map
133
+ //# sourceMappingURL=chunk-CT46KJOR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/search-input/search-input.tsx"],"names":["SearchIcon"],"mappings":"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","file":"chunk-CT46KJOR.js","sourcesContent":["import { SearchIcon as SearchGlyph, CloseIcon } from '../../icons/controls.js';\n/**\n * SearchInput — Unified search field for the entire platform.\n *\n * Features:\n * - Consistent styling (filled appearance, no outline notch issues)\n * - Built-in search icon (left) and clear button (right)\n * - Optional debounce for expensive filters\n * - Compact mode for sidebars (smaller padding)\n * - Works standalone or controlled\n */\n\nimport { useState, useEffect, useRef, type ChangeEvent, type ReactNode } from 'react';\nimport type { Ref } from 'react';\nimport InputBase from '@mui/material/InputBase';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport Tooltip from '@mui/material/Tooltip';\nimport Box from '@mui/material/Box';\nimport { alpha, useTheme, type SxProps, type Theme } from '@mui/material/styles';\n\n// ---------------------------------------------------------------------------\n// Icons (inline SVG — no external dependency)\n// ---------------------------------------------------------------------------\n\nfunction SearchIcon({ size = 18 }: { size?: number }): ReactNode {\n return <SearchGlyph sx={{ fontSize: size }} />;\n}\n\nfunction ClearIcon(): ReactNode {\n return <CloseIcon sx={{ fontSize: 16 }} />;\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface SearchInputProps {\n /** Current value (controlled). */\n value?: string;\n /** Change handler. Receives the raw string (or debounced string if `debounce` > 0). */\n onChange?: (value: string) => void;\n /** Accessible name; defaults to the placeholder. */\n 'aria-label'?: string;\n /** Placeholder text. */\n placeholder?: string;\n /** Debounce delay in ms. 0 = no debounce (default). */\n debounce?: number;\n /** Compact mode — smaller padding, for sidebars and tight spaces. */\n compact?: boolean;\n /** Full width. Default true. */\n fullWidth?: boolean;\n /** Fixed or min width. */\n width?: number | string;\n /** Min width. */\n minWidth?: number | string;\n /** Clear button tooltip text. */\n clearTooltip?: string;\n /** Autofocus on mount. */\n autoFocus?: boolean;\n /** Focus handler. */\n onFocus?: () => void;\n /** Blur handler. */\n onBlur?: () => void;\n /** Keyboard handler. */\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Custom sx overrides. */\n sx?: SxProps<Theme>;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function SearchInput({\n value: controlledValue,\n onChange,\n placeholder = 'Search...',\n 'aria-label': ariaLabel,\n debounce = 0,\n compact = false,\n fullWidth = true,\n width,\n minWidth,\n clearTooltip = 'Clear',\n autoFocus,\n onFocus,\n onBlur,\n onKeyDown,\n sx,\n ref,\n}: SearchInputProps & { ref?: Ref<HTMLInputElement> }) {\n const theme = useTheme();\n\n // Internal state for debounced mode or uncontrolled usage\n const [localValue, setLocalValue] = useState(controlledValue ?? '');\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n\n // Sync internal state when controlled value changes externally\n useEffect(() => {\n if (controlledValue !== undefined) {\n clearTimeout(timerRef.current);\n setLocalValue(controlledValue);\n }\n }, [controlledValue]);\n\n const displayValue = controlledValue !== undefined && debounce === 0 ? controlledValue : localValue;\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setLocalValue(val);\n\n if (debounce > 0) {\n clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => onChange?.(val), debounce);\n } else {\n onChange?.(val);\n }\n };\n\n const handleClear = () => {\n setLocalValue('');\n clearTimeout(timerRef.current);\n onChange?.('');\n };\n\n // Cleanup timer\n useEffect(() => () => clearTimeout(timerRef.current), []);\n\n const py = compact ? 0.625 : 0.75;\n const px = compact ? 1.25 : 1.5;\n const inputPy = compact ? '3px' : '4px';\n\n return (\n <InputBase\n data-keyboard-search\n ref={ref}\n fullWidth={fullWidth}\n placeholder={placeholder}\n inputProps={{ 'aria-label': ariaLabel ?? placeholder }}\n value={displayValue}\n onChange={handleChange}\n autoFocus={autoFocus}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n startAdornment={\n <InputAdornment position=\"start\" sx={{ color: 'text.disabled', mr: compact ? 0.75 : 1 }}>\n <SearchIcon size={compact ? 16 : 18} />\n </InputAdornment>\n }\n endAdornment={\n displayValue ? (\n <InputAdornment position=\"end\">\n <Tooltip title={clearTooltip}>\n <Box\n component=\"button\"\n type=\"button\"\n aria-label={clearTooltip}\n onClick={handleClear}\n sx={{\n p: 0.25,\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n color: 'text.disabled',\n display: 'flex',\n alignItems: 'center',\n borderRadius: '50%',\n '&:hover': { color: 'text.secondary' },\n }}\n >\n <ClearIcon />\n </Box>\n </Tooltip>\n </InputAdornment>\n ) : null\n }\n sx={{\n px,\n py,\n borderRadius: 1,\n fontSize: '0.875rem',\n bgcolor: alpha(theme.palette.grey[500], 0.08),\n transition: theme.transitions.create(['background-color'], {\n duration: theme.transitions.duration.shorter,\n }),\n '&:hover': {\n bgcolor: alpha(theme.palette.grey[500], 0.12),\n },\n '&.Mui-focused': {\n bgcolor: alpha(theme.palette.grey[500], 0.16),\n },\n '& .MuiInputBase-input': {\n py: inputPy,\n px: 0,\n overflow: 'visible',\n '&::placeholder': {\n opacity: 0.64,\n },\n },\n ...(width != null && { width }),\n ...(minWidth != null && { minWidth }),\n ...(!fullWidth && { width: width ?? 'auto' }),\n ...(Array.isArray(sx) ? Object.assign({}, ...sx) : sx),\n }}\n />\n );\n}\n"]}