@startdownnotez404/ui 1.0.0 → 1.3.5

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 (439) hide show
  1. package/README.md +110 -0
  2. package/dist/AutocompleteField-ZKNU2IRR.mjs +181 -0
  3. package/dist/AutocompleteField-ZKNU2IRR.mjs.map +1 -0
  4. package/dist/AvatarField-SAODT3CZ.mjs +275 -0
  5. package/dist/AvatarField-SAODT3CZ.mjs.map +1 -0
  6. package/dist/CodeEditor-JF55ZNVD.mjs +34 -0
  7. package/dist/CodeEditor-JF55ZNVD.mjs.map +1 -0
  8. package/dist/DateField-ZYMZFHL4.mjs +82 -0
  9. package/dist/DateField-ZYMZFHL4.mjs.map +1 -0
  10. package/dist/DateTimeField-TPTJ7YIZ.mjs +65 -0
  11. package/dist/DateTimeField-TPTJ7YIZ.mjs.map +1 -0
  12. package/dist/FileUploadField-NTMWBJER.mjs +78 -0
  13. package/dist/FileUploadField-NTMWBJER.mjs.map +1 -0
  14. package/dist/JSONEditorField-TMRWGXVR.mjs +64 -0
  15. package/dist/JSONEditorField-TMRWGXVR.mjs.map +1 -0
  16. package/dist/PopperMenu-LJ36RPBW.mjs +416 -0
  17. package/dist/PopperMenu-LJ36RPBW.mjs.map +1 -0
  18. package/dist/TelField-LOGRVZ4I.mjs +88 -0
  19. package/dist/TelField-LOGRVZ4I.mjs.map +1 -0
  20. package/dist/alert.d.mts +202 -0
  21. package/dist/alert.d.ts +202 -0
  22. package/dist/alert.js +784 -0
  23. package/dist/alert.js.map +1 -0
  24. package/dist/alert.mjs +47 -0
  25. package/dist/alert.mjs.map +1 -0
  26. package/dist/appBar.d.mts +21 -0
  27. package/dist/appBar.d.ts +21 -0
  28. package/dist/appBar.js +64 -0
  29. package/dist/appBar.js.map +1 -0
  30. package/dist/appBar.mjs +12 -0
  31. package/dist/appBar.mjs.map +1 -0
  32. package/dist/autocomplete.d.mts +121 -0
  33. package/dist/autocomplete.d.ts +121 -0
  34. package/dist/autocomplete.js +2052 -0
  35. package/dist/autocomplete.js.map +1 -0
  36. package/dist/autocomplete.mjs +21 -0
  37. package/dist/autocomplete.mjs.map +1 -0
  38. package/dist/avatar.d.mts +253 -0
  39. package/dist/avatar.d.ts +253 -0
  40. package/dist/avatar.js +992 -0
  41. package/dist/avatar.js.map +1 -0
  42. package/dist/avatar.mjs +41 -0
  43. package/dist/avatar.mjs.map +1 -0
  44. package/dist/badge.d.mts +123 -0
  45. package/dist/badge.d.ts +123 -0
  46. package/dist/badge.js +151 -0
  47. package/dist/badge.js.map +1 -0
  48. package/dist/badge.mjs +10 -0
  49. package/dist/badge.mjs.map +1 -0
  50. package/dist/box.d.mts +36 -0
  51. package/dist/box.d.ts +36 -0
  52. package/dist/box.js +199 -0
  53. package/dist/box.js.map +1 -0
  54. package/dist/box.mjs +14 -0
  55. package/dist/box.mjs.map +1 -0
  56. package/dist/button.d.mts +230 -52
  57. package/dist/button.d.ts +230 -52
  58. package/dist/button.js +392 -60
  59. package/dist/button.js.map +1 -1
  60. package/dist/button.mjs +14 -8
  61. package/dist/card.d.mts +47 -0
  62. package/dist/card.d.ts +47 -0
  63. package/dist/card.js +135 -0
  64. package/dist/card.js.map +1 -0
  65. package/dist/card.mjs +24 -0
  66. package/dist/card.mjs.map +1 -0
  67. package/dist/chart.d.mts +40 -0
  68. package/dist/chart.d.ts +40 -0
  69. package/dist/chart.js +1234 -0
  70. package/dist/chart.js.map +1 -0
  71. package/dist/chart.mjs +10 -0
  72. package/dist/chart.mjs.map +1 -0
  73. package/dist/checkbox.d.mts +62 -0
  74. package/dist/checkbox.d.ts +62 -0
  75. package/dist/checkbox.js +299 -0
  76. package/dist/checkbox.js.map +1 -0
  77. package/dist/checkbox.mjs +14 -0
  78. package/dist/checkbox.mjs.map +1 -0
  79. package/dist/chip.d.mts +96 -0
  80. package/dist/chip.d.ts +96 -0
  81. package/dist/chip.js +112 -0
  82. package/dist/chip.js.map +1 -0
  83. package/dist/chip.mjs +10 -0
  84. package/dist/chip.mjs.map +1 -0
  85. package/dist/chunk-24XDGNJ6.mjs +1450 -0
  86. package/dist/chunk-24XDGNJ6.mjs.map +1 -0
  87. package/dist/chunk-27KYFU7R.mjs +30 -0
  88. package/dist/chunk-27KYFU7R.mjs.map +1 -0
  89. package/dist/chunk-2FFLT5VP.mjs +7 -0
  90. package/dist/chunk-2FFLT5VP.mjs.map +1 -0
  91. package/dist/chunk-2ZZJTBTE.mjs +148 -0
  92. package/dist/chunk-2ZZJTBTE.mjs.map +1 -0
  93. package/dist/chunk-3DQINB57.mjs +15 -0
  94. package/dist/chunk-3DQINB57.mjs.map +1 -0
  95. package/dist/chunk-3VUAM2GY.mjs +52 -0
  96. package/dist/chunk-3VUAM2GY.mjs.map +1 -0
  97. package/dist/chunk-4Q54P737.mjs +19 -0
  98. package/dist/chunk-4Q54P737.mjs.map +1 -0
  99. package/dist/chunk-4RPFRNXG.mjs +62 -0
  100. package/dist/chunk-4RPFRNXG.mjs.map +1 -0
  101. package/dist/chunk-56TI2ZBT.mjs +114 -0
  102. package/dist/chunk-56TI2ZBT.mjs.map +1 -0
  103. package/dist/chunk-6REEQBJI.mjs +62 -0
  104. package/dist/chunk-6REEQBJI.mjs.map +1 -0
  105. package/dist/chunk-AAH2O24U.mjs +325 -0
  106. package/dist/chunk-AAH2O24U.mjs.map +1 -0
  107. package/dist/chunk-B7DAB22K.mjs +16 -0
  108. package/dist/chunk-B7DAB22K.mjs.map +1 -0
  109. package/dist/chunk-BGB7JHIU.mjs +222 -0
  110. package/dist/chunk-BGB7JHIU.mjs.map +1 -0
  111. package/dist/chunk-CRYIEYZZ.mjs +756 -0
  112. package/dist/chunk-CRYIEYZZ.mjs.map +1 -0
  113. package/dist/chunk-CWFWRZWU.mjs +23 -0
  114. package/dist/chunk-CWFWRZWU.mjs.map +1 -0
  115. package/dist/chunk-DELCADNF.mjs +1926 -0
  116. package/dist/chunk-DELCADNF.mjs.map +1 -0
  117. package/dist/chunk-E3I2VDHZ.mjs +292 -0
  118. package/dist/chunk-E3I2VDHZ.mjs.map +1 -0
  119. package/dist/chunk-EEH7HACG.mjs +249 -0
  120. package/dist/chunk-EEH7HACG.mjs.map +1 -0
  121. package/dist/chunk-EKPULYPU.mjs +497 -0
  122. package/dist/chunk-EKPULYPU.mjs.map +1 -0
  123. package/dist/chunk-EW4DTFH3.mjs +69 -0
  124. package/dist/chunk-EW4DTFH3.mjs.map +1 -0
  125. package/dist/chunk-FJ6ZGZIA.mjs +43 -0
  126. package/dist/chunk-FJ6ZGZIA.mjs.map +1 -0
  127. package/dist/chunk-HE7MY3RT.mjs +23 -0
  128. package/dist/chunk-HE7MY3RT.mjs.map +1 -0
  129. package/dist/chunk-HR3A4H4E.mjs +1289 -0
  130. package/dist/chunk-HR3A4H4E.mjs.map +1 -0
  131. package/dist/chunk-I5JWS4Z7.mjs +91 -0
  132. package/dist/chunk-I5JWS4Z7.mjs.map +1 -0
  133. package/dist/chunk-IN3O4R7Q.mjs +932 -0
  134. package/dist/chunk-IN3O4R7Q.mjs.map +1 -0
  135. package/dist/chunk-JIU5GVM7.mjs +414 -0
  136. package/dist/chunk-JIU5GVM7.mjs.map +1 -0
  137. package/dist/chunk-JWANK42G.mjs +170 -0
  138. package/dist/chunk-JWANK42G.mjs.map +1 -0
  139. package/dist/chunk-MDAUF7IL.mjs +9 -0
  140. package/dist/chunk-MDAUF7IL.mjs.map +1 -0
  141. package/dist/chunk-MI64T62E.mjs +26 -0
  142. package/dist/chunk-MI64T62E.mjs.map +1 -0
  143. package/dist/chunk-NJYNJLT7.mjs +172 -0
  144. package/dist/chunk-NJYNJLT7.mjs.map +1 -0
  145. package/dist/chunk-NLBDBJ3R.mjs +97 -0
  146. package/dist/chunk-NLBDBJ3R.mjs.map +1 -0
  147. package/dist/chunk-OGNGPI3M.mjs +333 -0
  148. package/dist/chunk-OGNGPI3M.mjs.map +1 -0
  149. package/dist/chunk-OJV6V7YZ.mjs +552 -0
  150. package/dist/chunk-OJV6V7YZ.mjs.map +1 -0
  151. package/dist/chunk-ONQMRE2G.mjs +26 -0
  152. package/dist/chunk-ONQMRE2G.mjs.map +1 -0
  153. package/dist/chunk-OP6LKXPA.mjs +75 -0
  154. package/dist/chunk-OP6LKXPA.mjs.map +1 -0
  155. package/dist/chunk-QFF3HTHL.mjs +14 -0
  156. package/dist/chunk-QFF3HTHL.mjs.map +1 -0
  157. package/dist/chunk-QKGCW37O.mjs +1175 -0
  158. package/dist/chunk-QKGCW37O.mjs.map +1 -0
  159. package/dist/chunk-R5MKQN6D.mjs +227 -0
  160. package/dist/chunk-R5MKQN6D.mjs.map +1 -0
  161. package/dist/chunk-RXBQ7KXF.mjs +652 -0
  162. package/dist/chunk-RXBQ7KXF.mjs.map +1 -0
  163. package/dist/chunk-S6EZVRZC.mjs +161 -0
  164. package/dist/chunk-S6EZVRZC.mjs.map +1 -0
  165. package/dist/chunk-SGCUDWO3.mjs +396 -0
  166. package/dist/chunk-SGCUDWO3.mjs.map +1 -0
  167. package/dist/chunk-SRWPHN2N.mjs +188 -0
  168. package/dist/chunk-SRWPHN2N.mjs.map +1 -0
  169. package/dist/chunk-T34IULP5.mjs +242 -0
  170. package/dist/chunk-T34IULP5.mjs.map +1 -0
  171. package/dist/chunk-T4X375IG.mjs +100 -0
  172. package/dist/chunk-T4X375IG.mjs.map +1 -0
  173. package/dist/chunk-T6AMRENK.mjs +376 -0
  174. package/dist/chunk-T6AMRENK.mjs.map +1 -0
  175. package/dist/chunk-TDRA5EZI.mjs +325 -0
  176. package/dist/chunk-TDRA5EZI.mjs.map +1 -0
  177. package/dist/chunk-UDREPVEY.mjs +356 -0
  178. package/dist/chunk-UDREPVEY.mjs.map +1 -0
  179. package/dist/chunk-UGMRJMFZ.mjs +172 -0
  180. package/dist/chunk-UGMRJMFZ.mjs.map +1 -0
  181. package/dist/chunk-UMJ5SCIQ.mjs +438 -0
  182. package/dist/chunk-UMJ5SCIQ.mjs.map +1 -0
  183. package/dist/chunk-UTVSYS6S.mjs +270 -0
  184. package/dist/chunk-UTVSYS6S.mjs.map +1 -0
  185. package/dist/chunk-V26V2S3W.mjs +197 -0
  186. package/dist/chunk-V26V2S3W.mjs.map +1 -0
  187. package/dist/chunk-VYD3PDBB.mjs +38 -0
  188. package/dist/chunk-VYD3PDBB.mjs.map +1 -0
  189. package/dist/chunk-WYYP3Y34.mjs +55 -0
  190. package/dist/chunk-WYYP3Y34.mjs.map +1 -0
  191. package/dist/chunk-XIMFP6RB.mjs +161 -0
  192. package/dist/chunk-XIMFP6RB.mjs.map +1 -0
  193. package/dist/chunk-XJ2SXC2Q.mjs +558 -0
  194. package/dist/chunk-XJ2SXC2Q.mjs.map +1 -0
  195. package/dist/chunk-Y74ALKBL.mjs +565 -0
  196. package/dist/chunk-Y74ALKBL.mjs.map +1 -0
  197. package/dist/chunk-ZG3NQI77.mjs +353 -0
  198. package/dist/chunk-ZG3NQI77.mjs.map +1 -0
  199. package/dist/chunk-ZVFYOXDE.mjs +297 -0
  200. package/dist/chunk-ZVFYOXDE.mjs.map +1 -0
  201. package/dist/collapse.d.mts +10 -0
  202. package/dist/collapse.d.ts +10 -0
  203. package/dist/collapse.js +53 -0
  204. package/dist/collapse.js.map +1 -0
  205. package/dist/collapse.mjs +10 -0
  206. package/dist/collapse.mjs.map +1 -0
  207. package/dist/datePicker.d.mts +133 -0
  208. package/dist/datePicker.d.ts +133 -0
  209. package/dist/datePicker.js +482 -0
  210. package/dist/datePicker.js.map +1 -0
  211. package/dist/datePicker.mjs +29 -0
  212. package/dist/datePicker.mjs.map +1 -0
  213. package/dist/displayFile.d.mts +95 -0
  214. package/dist/displayFile.d.ts +95 -0
  215. package/dist/displayFile.js +357 -0
  216. package/dist/displayFile.js.map +1 -0
  217. package/dist/displayFile.mjs +19 -0
  218. package/dist/displayFile.mjs.map +1 -0
  219. package/dist/divider.d.mts +9 -0
  220. package/dist/divider.d.ts +9 -0
  221. package/dist/divider.js +52 -0
  222. package/dist/divider.js.map +1 -0
  223. package/dist/divider.mjs +10 -0
  224. package/dist/divider.mjs.map +1 -0
  225. package/dist/fileUploader.d.mts +86 -0
  226. package/dist/fileUploader.d.ts +86 -0
  227. package/dist/fileUploader.js +722 -0
  228. package/dist/fileUploader.js.map +1 -0
  229. package/dist/fileUploader.mjs +16 -0
  230. package/dist/fileUploader.mjs.map +1 -0
  231. package/dist/flowMap.d.mts +353 -0
  232. package/dist/flowMap.d.ts +353 -0
  233. package/dist/flowMap.js +94806 -0
  234. package/dist/flowMap.js.map +1 -0
  235. package/dist/flowMap.mjs +94585 -0
  236. package/dist/flowMap.mjs.map +1 -0
  237. package/dist/form.d.mts +84 -0
  238. package/dist/form.d.ts +84 -0
  239. package/dist/form.js +144 -0
  240. package/dist/form.js.map +1 -0
  241. package/dist/form.mjs +24 -0
  242. package/dist/form.mjs.map +1 -0
  243. package/dist/icons.d.mts +160 -0
  244. package/dist/icons.d.ts +160 -0
  245. package/dist/icons.js +540 -0
  246. package/dist/icons.js.map +1 -0
  247. package/dist/icons.mjs +306 -0
  248. package/dist/icons.mjs.map +1 -0
  249. package/dist/image.d.mts +49 -0
  250. package/dist/image.d.ts +49 -0
  251. package/dist/image.js +1348 -0
  252. package/dist/image.js.map +1 -0
  253. package/dist/image.mjs +19 -0
  254. package/dist/image.mjs.map +1 -0
  255. package/dist/index.d.ts +46 -0
  256. package/dist/index.js +20198 -0
  257. package/dist/index.js.map +1 -0
  258. package/dist/index.mjs +912 -0
  259. package/dist/index.mjs.map +1 -0
  260. package/dist/input.d.mts +195 -0
  261. package/dist/input.d.ts +195 -0
  262. package/dist/input.js +1101 -0
  263. package/dist/input.js.map +1 -0
  264. package/dist/input.mjs +32 -0
  265. package/dist/input.mjs.map +1 -0
  266. package/dist/jsonEditor.d.mts +13 -0
  267. package/dist/jsonEditor.d.ts +13 -0
  268. package/dist/jsonEditor.js +247 -0
  269. package/dist/jsonEditor.js.map +1 -0
  270. package/dist/jsonEditor.mjs +9 -0
  271. package/dist/jsonEditor.mjs.map +1 -0
  272. package/dist/list.d.mts +83 -0
  273. package/dist/list.d.ts +83 -0
  274. package/dist/list.js +564 -0
  275. package/dist/list.js.map +1 -0
  276. package/dist/list.mjs +39 -0
  277. package/dist/list.mjs.map +1 -0
  278. package/dist/loading.d.mts +48 -0
  279. package/dist/loading.d.ts +48 -0
  280. package/dist/loading.js +383 -0
  281. package/dist/loading.js.map +1 -0
  282. package/dist/loading.mjs +23 -0
  283. package/dist/loading.mjs.map +1 -0
  284. package/dist/markdown.d.mts +14 -0
  285. package/dist/markdown.d.ts +14 -0
  286. package/dist/markdown.js +25927 -0
  287. package/dist/markdown.js.map +1 -0
  288. package/dist/markdown.mjs +25623 -0
  289. package/dist/markdown.mjs.map +1 -0
  290. package/dist/menu.d.mts +368 -0
  291. package/dist/menu.d.ts +368 -0
  292. package/dist/menu.js +1571 -0
  293. package/dist/menu.js.map +1 -0
  294. package/dist/menu.mjs +43 -0
  295. package/dist/menu.mjs.map +1 -0
  296. package/dist/modal.d.mts +90 -0
  297. package/dist/modal.d.ts +90 -0
  298. package/dist/modal.js +883 -0
  299. package/dist/modal.js.map +1 -0
  300. package/dist/modal.mjs +25 -0
  301. package/dist/modal.mjs.map +1 -0
  302. package/dist/overlay.d.mts +2 -0
  303. package/dist/overlay.d.ts +2 -0
  304. package/dist/overlay.js +46 -0
  305. package/dist/overlay.js.map +1 -0
  306. package/dist/overlay.mjs +10 -0
  307. package/dist/overlay.mjs.map +1 -0
  308. package/dist/paper.d.mts +38 -0
  309. package/dist/paper.d.ts +38 -0
  310. package/dist/paper.js +90 -0
  311. package/dist/paper.js.map +1 -0
  312. package/dist/paper.mjs +12 -0
  313. package/dist/paper.mjs.map +1 -0
  314. package/dist/patterns.d.mts +133 -0
  315. package/dist/patterns.d.ts +133 -0
  316. package/dist/patterns.js +483 -0
  317. package/dist/patterns.js.map +1 -0
  318. package/dist/patterns.mjs +46 -0
  319. package/dist/patterns.mjs.map +1 -0
  320. package/dist/process.d.mts +125 -0
  321. package/dist/process.d.ts +125 -0
  322. package/dist/process.js +1471 -0
  323. package/dist/process.js.map +1 -0
  324. package/dist/process.mjs +30 -0
  325. package/dist/process.mjs.map +1 -0
  326. package/dist/progress.d.mts +44 -0
  327. package/dist/progress.d.ts +44 -0
  328. package/dist/progress.js +94 -0
  329. package/dist/progress.js.map +1 -0
  330. package/dist/progress.mjs +14 -0
  331. package/dist/progress.mjs.map +1 -0
  332. package/dist/resizablePanel.d.mts +297 -0
  333. package/dist/resizablePanel.d.ts +297 -0
  334. package/dist/resizablePanel.js +122 -0
  335. package/dist/resizablePanel.js.map +1 -0
  336. package/dist/resizablePanel.mjs +22 -0
  337. package/dist/resizablePanel.mjs.map +1 -0
  338. package/dist/scrollToLoad.d.mts +41 -0
  339. package/dist/scrollToLoad.d.ts +41 -0
  340. package/dist/scrollToLoad.js +256 -0
  341. package/dist/scrollToLoad.js.map +1 -0
  342. package/dist/scrollToLoad.mjs +16 -0
  343. package/dist/scrollToLoad.mjs.map +1 -0
  344. package/dist/select.d.mts +50 -0
  345. package/dist/select.d.ts +50 -0
  346. package/dist/select.js +426 -0
  347. package/dist/select.js.map +1 -0
  348. package/dist/select.mjs +24 -0
  349. package/dist/select.mjs.map +1 -0
  350. package/dist/skeleton.d.mts +13 -0
  351. package/dist/skeleton.d.ts +13 -0
  352. package/dist/skeleton.js +68 -0
  353. package/dist/skeleton.js.map +1 -0
  354. package/dist/skeleton.mjs +11 -0
  355. package/dist/skeleton.mjs.map +1 -0
  356. package/dist/slider.d.mts +65 -0
  357. package/dist/slider.d.ts +65 -0
  358. package/dist/slider.js +106 -0
  359. package/dist/slider.js.map +1 -0
  360. package/dist/slider.mjs +10 -0
  361. package/dist/slider.mjs.map +1 -0
  362. package/dist/stepper.d.mts +98 -0
  363. package/dist/stepper.d.ts +98 -0
  364. package/dist/stepper.js +313 -0
  365. package/dist/stepper.js.map +1 -0
  366. package/dist/stepper.mjs +38 -0
  367. package/dist/stepper.mjs.map +1 -0
  368. package/dist/switch.d.mts +151 -0
  369. package/dist/switch.d.ts +151 -0
  370. package/dist/switch.js +289 -0
  371. package/dist/switch.js.map +1 -0
  372. package/dist/switch.mjs +17 -0
  373. package/dist/switch.mjs.map +1 -0
  374. package/dist/tab.d.mts +182 -0
  375. package/dist/tab.d.ts +182 -0
  376. package/dist/tab.js +1418 -0
  377. package/dist/tab.js.map +1 -0
  378. package/dist/tab.mjs +34 -0
  379. package/dist/tab.mjs.map +1 -0
  380. package/dist/table.d.mts +720 -0
  381. package/dist/table.d.ts +720 -0
  382. package/dist/table.js +10882 -0
  383. package/dist/table.js.map +1 -0
  384. package/dist/table.mjs +63 -0
  385. package/dist/table.mjs.map +1 -0
  386. package/dist/theme.d.mts +30 -4
  387. package/dist/theme.d.ts +30 -4
  388. package/dist/theme.js +3210 -170
  389. package/dist/theme.js.map +1 -1
  390. package/dist/theme.mjs +52 -230
  391. package/dist/theme.mjs.map +1 -1
  392. package/dist/timeline.d.mts +30 -0
  393. package/dist/timeline.d.ts +30 -0
  394. package/dist/timeline.js +273 -0
  395. package/dist/timeline.js.map +1 -0
  396. package/dist/timeline.mjs +14 -0
  397. package/dist/timeline.mjs.map +1 -0
  398. package/dist/toggleButtonGroup.d.mts +125 -0
  399. package/dist/toggleButtonGroup.d.ts +125 -0
  400. package/dist/toggleButtonGroup.js +190 -0
  401. package/dist/toggleButtonGroup.js.map +1 -0
  402. package/dist/toggleButtonGroup.mjs +15 -0
  403. package/dist/toggleButtonGroup.mjs.map +1 -0
  404. package/dist/tooltip.d.mts +13 -0
  405. package/dist/tooltip.d.ts +13 -0
  406. package/dist/tooltip.js +56 -0
  407. package/dist/tooltip.js.map +1 -0
  408. package/dist/tooltip.mjs +10 -0
  409. package/dist/tooltip.mjs.map +1 -0
  410. package/dist/typography.d.mts +21 -23
  411. package/dist/typography.d.ts +21 -23
  412. package/dist/typography.js +37 -63
  413. package/dist/typography.js.map +1 -1
  414. package/dist/typography.mjs +2 -1
  415. package/dist/useForm.d.mts +588 -0
  416. package/dist/useForm.d.ts +588 -0
  417. package/dist/useForm.js +8743 -0
  418. package/dist/useForm.js.map +1 -0
  419. package/dist/useForm.mjs +45 -0
  420. package/dist/useForm.mjs.map +1 -0
  421. package/dist/useSearch.d.mts +126 -0
  422. package/dist/useSearch.d.ts +126 -0
  423. package/dist/useSearch.js +1125 -0
  424. package/dist/useSearch.js.map +1 -0
  425. package/dist/useSearch.mjs +42 -0
  426. package/dist/useSearch.mjs.map +1 -0
  427. package/dist/variablesRenderer.d.mts +45 -0
  428. package/dist/variablesRenderer.d.ts +45 -0
  429. package/dist/variablesRenderer.js +511 -0
  430. package/dist/variablesRenderer.js.map +1 -0
  431. package/dist/variablesRenderer.mjs +21 -0
  432. package/dist/variablesRenderer.mjs.map +1 -0
  433. package/package.json +109 -15
  434. package/dist/chunk-PKADXEAD.mjs +0 -116
  435. package/dist/chunk-PKADXEAD.mjs.map +0 -1
  436. package/dist/chunk-YGBJCPUS.mjs +0 -88
  437. package/dist/chunk-YGBJCPUS.mjs.map +0 -1
  438. package/dist/theme.css +0 -44
  439. package/dist/theme.css.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/elemental/Tab/src/Tab/index.ts","../src/components/elemental/Tab/src/Tab/themes.ts","../src/components/elemental/Tab/src/TabPanel/TabPanel.tsx","../src/components/elemental/Tab/src/TabPanel/useTabsOverflow.ts","../src/components/elemental/Tab/src/TabPanel/tabPanelVars.ts"],"sourcesContent":["export { default as Tab } from '@mui/material/Tab'\nexport type { TabProps } from '@mui/material/Tab'\nexport { default as Tabs } from '@mui/material/Tabs'\nexport type { TabsProps } from '@mui/material/Tabs'\nexport * from './themes'","import type { MuiComponentTheme } from '@/_utils/_types'\n\nexport const tabTheme = {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: ({ theme }) => ({\n minHeight: 44,\n minWidth: 0,\n paddingInline: theme.spacing(1.5),\n paddingBlock: theme.spacing(1),\n borderRadius: theme.shape.borderRadius,\n textTransform: 'none',\n fontWeight: theme.typography.fontWeightMedium,\n color: 'var(--mui-palette-text-secondary)',\n transition: theme.transitions.create(['color', 'background-color'], {\n duration: theme.transitions.duration.shorter,\n }),\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 92%)',\n },\n '&.Mui-selected': {\n color: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'transparent',\n },\n '&.Mui-selected:hover': {\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)',\n },\n '&.Mui-disabled': {\n color: 'var(--mui-palette-text-disabled)',\n },\n }),\n },\n} as const satisfies MuiComponentTheme<'MuiTab'>\n\nexport const tabsTheme = {\n styleOverrides: {\n root: {\n minHeight: 44,\n },\n list: {\n gap: 4,\n },\n indicator: {\n height: 3,\n borderRadius: 999,\n backgroundColor: 'var(--mui-palette-primary-emphasis)',\n },\n scrollButtons: {\n color: 'var(--mui-palette-text-secondary)',\n '&.Mui-disabled': {\n opacity: 0.4,\n },\n },\n },\n} as const satisfies MuiComponentTheme<'MuiTabs'>","'use client'\n\nimport React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport type { SxProps, Theme } from '@mui/material/styles'\n\nimport { mergeSx } from '@/_utils/_func'\nimport { Box } from '@/ele/Box'\nimport { Typography } from '@/ele/Typography'\nimport { KeyboardArrowDownIcon, MoreHorizIcon } from '@/icons/MuiIcon'\nimport { useMenu, MenuPopper } from '@/ele/Menu'\n\nimport type { TabPanelItem, TabPanelProps } from './types'\nimport { useTabsOverflowSplit } from './useTabsOverflow'\nimport {\n tabPanelRootSx,\n tabPanelStyleToCssVars,\n} from './tabPanelVars'\n\nconst TRACK_PAD = 3\nconst ITEM_GAP = 1\nconst DEFAULT_TRACK_RADIUS = 12\nconst DEFAULT_FOCUS_RADIUS = 10\n/** Keep in sync with `--tabpanel-indicator-ms` / `--tabpanel-indicator-ease`. */\nconst INDICATOR_EASE = 'cubic-bezier(0.32, 0.72, 0, 1)'\nconst INDICATOR_MS = 380\n\n/** Numbers are px so MUI does not multiply by theme.shape.borderRadius. */\nfunction toCssRadius(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value\n}\n\n/**\n * Commit WAAPI values to inline styles, then cancel so `fill: 'forwards'`\n * cannot leave a stale computed transform that fights Emotion/CSS classes.\n */\nfunction finishIndicatorAnimation(animation: Animation) {\n try {\n animation.commitStyles?.()\n } catch {\n // commitStyles can throw if the animation was already canceled.\n }\n animation.cancel()\n}\n\nfunction clearIndicatorAnimations(element: HTMLElement) {\n element.getAnimations().forEach((animation) => {\n finishIndicatorAnimation(animation)\n })\n}\n\nfunction resolveSelectedId(\n items: TabPanelItem[],\n value: string | undefined,\n internal: string | undefined\n): string | undefined {\n const candidate = value ?? internal\n if (candidate && items.some((item) => item.id === candidate && !item.disabled)) {\n return candidate\n }\n return items.find((item) => !item.disabled)?.id\n}\n\nfunction TabItemContent({\n item,\n showLabels,\n active,\n endAdornment,\n}: {\n item: TabPanelItem\n showLabels: boolean\n active: boolean\n endAdornment?: React.ReactNode\n}) {\n const showLabel = showLabels || !item.icon\n const badgeLabel =\n item.badge == null\n ? null\n : typeof item.badge === 'number' && item.badge > 99\n ? '99+'\n : String(item.badge)\n\n return (\n <Box\n sx={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n gap: 0.5,\n px: showLabels ? 1.15 : 0.9,\n py: 0.5,\n minHeight: 28,\n pr: endAdornment ? 0.75 : undefined,\n }}\n >\n {item.icon ? (\n <Box\n component=\"span\"\n sx={{\n display: 'inline-flex',\n color: 'inherit',\n lineHeight: 0,\n opacity: active ? 1 : 0.88,\n transition:\n 'opacity var(--tabpanel-indicator-ms) var(--tabpanel-indicator-ease)',\n '& > *': { fontSize: 16 },\n }}\n >\n {item.icon}\n </Box>\n ) : null}\n {showLabel ? (\n <Typography\n component=\"span\"\n sx={{\n m: 0,\n fontSize: '0.75rem',\n letterSpacing: '0.01em',\n fontWeight: active ? 600 : 500,\n color: 'inherit',\n lineHeight: 1.15,\n whiteSpace: 'nowrap',\n }}\n >\n {item.label}\n </Typography>\n ) : (\n <Typography\n component=\"span\"\n sx={{\n position: 'absolute',\n width: 1,\n height: 1,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n }}\n >\n {item.label}\n </Typography>\n )}\n {endAdornment}\n {badgeLabel != null ? (\n <Box\n component=\"span\"\n aria-label={`${item.badge} notifications`}\n sx={{\n position: 'absolute',\n top: 1,\n right: endAdornment ? 10 : 1,\n zIndex: 1,\n pointerEvents: 'none',\n minWidth: 12,\n height: 12,\n px: 0.3,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 999,\n bgcolor: 'var(--tabpanel-badge-bg)',\n color: 'var(--tabpanel-badge-color)',\n fontSize: 8,\n fontWeight: 700,\n lineHeight: 1,\n }}\n >\n {badgeLabel}\n </Box>\n ) : null}\n </Box>\n )\n}\n\nfunction MoreTriggerContent({\n showLabels,\n open,\n}: {\n showLabels: boolean\n open: boolean\n}) {\n return (\n <Box\n sx={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n gap: 0.35,\n px: showLabels ? 1.15 : 0.9,\n py: 0.5,\n minHeight: 28,\n }}\n >\n <MoreHorizIcon sx={{ fontSize: 16 }} />\n {showLabels ? (\n <Typography\n component=\"span\"\n sx={{\n m: 0,\n fontSize: '0.75rem',\n fontWeight: 500,\n color: 'inherit',\n lineHeight: 1.15,\n whiteSpace: 'nowrap',\n }}\n >\n More\n </Typography>\n ) : null}\n <KeyboardArrowDownIcon\n sx={{\n fontSize: 14,\n opacity: 0.75,\n transition: 'transform 180ms ease',\n transform: open ? 'rotate(180deg)' : 'none',\n }}\n />\n </Box>\n )\n}\n\n/**\n * Adaptive content tabs: soft liquid track + morphing pill.\n * Overflow cuts trailing tabs into a More dropdown (selected stays visible).\n *\n * Colors / radii are CSS vars on the root (`tabPanelRootSx`). Override via\n * `sx`, `slotProps.root.style`, or `slotProps.root.sx`.\n */\nexport function TabPanel({\n items,\n value,\n defaultValue,\n onChange,\n showLabels = true,\n focusRadius = DEFAULT_FOCUS_RADIUS,\n trackRadius = DEFAULT_TRACK_RADIUS,\n sx,\n className,\n slotProps,\n}: TabPanelProps) {\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = useState<string | undefined>(\n () => defaultValue ?? items.find((item) => !item.disabled)?.id\n )\n\n const selectedId = resolveSelectedId(items, value, internalValue)\n\n const select = useCallback(\n (id: string) => {\n const item = items.find((entry) => entry.id === id)\n if (!item || item.disabled) {\n return\n }\n if (!isControlled) {\n setInternalValue(id)\n }\n onChange?.(id)\n },\n [isControlled, items, onChange]\n )\n\n const rootRef = useRef<HTMLDivElement>(null)\n const stripRef = useRef<HTMLDivElement>(null)\n const measureRef = useRef<HTMLDivElement>(null)\n const moreMeasureRef = useRef<HTMLDivElement>(null)\n const indicatorRef = useRef<HTMLDivElement>(null)\n const itemRefs = useRef<Map<string, HTMLButtonElement>>(new Map())\n const indicatorRectRef = useRef({ top: 0, left: 0, width: 0, height: 0 })\n const indicatorMountedRef = useRef(false)\n const indicatorAnimatingRef = useRef(false)\n\n const [availableWidth, setAvailableWidth] = useState(0)\n const [itemWidths, setItemWidths] = useState<number[]>([])\n const [moreWidth, setMoreWidth] = useState(0)\n\n const selectedIndex = useMemo(\n () => items.findIndex((item) => item.id === selectedId),\n [items, selectedId]\n )\n\n const { visibleIndexes, overflowIndexes } = useTabsOverflowSplit(\n itemWidths,\n moreWidth,\n availableWidth,\n selectedIndex,\n ITEM_GAP\n )\n\n const visibleItems = useMemo(\n () => visibleIndexes.map((index) => items[index]!).filter(Boolean),\n [visibleIndexes, items]\n )\n const overflowItems = useMemo(\n () => overflowIndexes.map((index) => items[index]!).filter(Boolean),\n [overflowIndexes, items]\n )\n const hasOverflow = overflowItems.length > 0\n\n const rootCssVars = useMemo(\n () => ({\n ...tabPanelStyleToCssVars(slotProps?.root?.style),\n '--tabpanel-focus-radius': toCssRadius(focusRadius),\n '--tabpanel-track-radius': toCssRadius(trackRadius),\n // Prop radii win unless style explicitly set them.\n ...(slotProps?.root?.style?.focusRadius != null\n ? { '--tabpanel-focus-radius': slotProps.root.style.focusRadius }\n : null),\n ...(slotProps?.root?.style?.trackRadius != null\n ? { '--tabpanel-track-radius': slotProps.root.style.trackRadius }\n : null),\n }),\n [focusRadius, trackRadius, slotProps?.root?.style]\n )\n\n useLayoutEffect(() => {\n const root = rootRef.current\n const measure = measureRef.current\n const moreMeasure = moreMeasureRef.current\n if (!root || !measure || !moreMeasure) {\n return\n }\n\n const update = () => {\n setAvailableWidth(Math.max(0, root.clientWidth - TRACK_PAD * 2))\n\n const widths = Array.from(\n measure.querySelectorAll<HTMLElement>('[data-tab-measure]')\n ).map((node) => node.getBoundingClientRect().width)\n\n setItemWidths((prev) => {\n if (\n prev.length === widths.length &&\n prev.every((width, index) => Math.abs(width - (widths[index] ?? 0)) < 0.5)\n ) {\n return prev\n }\n return widths\n })\n\n const nextMore = Math.max(\n moreMeasure.scrollWidth,\n moreMeasure.getBoundingClientRect().width\n )\n setMoreWidth((prev) => (Math.abs(prev - nextMore) < 0.5 ? prev : nextMore))\n }\n\n update()\n const observer = new ResizeObserver(update)\n observer.observe(root)\n observer.observe(measure)\n observer.observe(moreMeasure)\n return () => observer.disconnect()\n }, [items, showLabels])\n\n useLayoutEffect(() => {\n const strip = stripRef.current\n const indicator = indicatorRef.current\n if (!strip || !indicator || !selectedId) {\n return\n }\n\n const slideToActive = () => {\n const activeEl = itemRefs.current.get(selectedId)\n if (!activeEl) {\n return\n }\n\n const stripBox = strip.getBoundingClientRect()\n const itemBox = activeEl.getBoundingClientRect()\n const next = {\n top: itemBox.top - stripBox.top,\n left: itemBox.left - stripBox.left,\n width: itemBox.width,\n height: itemBox.height,\n }\n\n const applyRect = (rect: typeof next) => {\n indicator.style.transform = `translate3d(${rect.left}px, ${rect.top}px, 0)`\n indicator.style.width = `${rect.width}px`\n indicator.style.height = `${rect.height}px`\n }\n\n if (!indicatorMountedRef.current || indicatorRectRef.current.width <= 0) {\n clearIndicatorAnimations(indicator)\n indicator.style.transition = 'none'\n applyRect(next)\n indicator.style.opacity = '1'\n indicatorRectRef.current = next\n indicatorMountedRef.current = true\n return\n }\n\n // Commit in-flight WAAPI values to inline styles before measuring so\n // interrupt reads the true animated rect, not a stale fill/class mix.\n clearIndicatorAnimations(indicator)\n const liveBox = indicator.getBoundingClientRect()\n const prev = {\n top: liveBox.top - stripBox.top,\n left: liveBox.left - stripBox.left,\n width: liveBox.width,\n height: liveBox.height,\n }\n\n const same =\n Math.abs(prev.left - next.left) < 0.5 &&\n Math.abs(prev.top - next.top) < 0.5 &&\n Math.abs(prev.width - next.width) < 0.5 &&\n Math.abs(prev.height - next.height) < 0.5\n\n if (same) {\n applyRect(next)\n indicatorRectRef.current = next\n return\n }\n\n const bridgeLeft = Math.min(prev.left, next.left)\n const bridgeRight = Math.max(prev.left + prev.width, next.left + next.width)\n const bridge = {\n left: bridgeLeft,\n top: next.top,\n width: Math.max(bridgeRight - bridgeLeft, next.width),\n height: next.height,\n }\n\n indicator.style.transition = 'none'\n applyRect(prev)\n indicator.style.opacity = '1'\n indicatorAnimatingRef.current = true\n\n const animation = indicator.animate(\n [\n {\n transform: `translate3d(${prev.left}px, ${prev.top}px, 0)`,\n width: `${prev.width}px`,\n height: `${prev.height}px`,\n },\n {\n transform: `translate3d(${bridge.left}px, ${bridge.top}px, 0)`,\n width: `${bridge.width}px`,\n height: `${bridge.height}px`,\n offset: 0.4,\n },\n {\n transform: `translate3d(${next.left}px, ${next.top}px, 0)`,\n width: `${next.width}px`,\n height: `${next.height}px`,\n },\n ],\n {\n duration: INDICATOR_MS,\n easing: INDICATOR_EASE,\n fill: 'forwards',\n }\n )\n\n animation.onfinish = () => {\n finishIndicatorAnimation(animation)\n applyRect(next)\n indicatorRectRef.current = next\n indicatorAnimatingRef.current = false\n }\n animation.oncancel = () => {\n indicatorAnimatingRef.current = false\n }\n indicatorRectRef.current = next\n }\n\n slideToActive()\n const observer = new ResizeObserver(() => {\n if (indicatorAnimatingRef.current) {\n return\n }\n const activeEl = itemRefs.current.get(selectedId)\n const ind = indicatorRef.current\n if (!activeEl || !ind || !stripRef.current) {\n return\n }\n const stripBox = stripRef.current.getBoundingClientRect()\n const itemBox = activeEl.getBoundingClientRect()\n const next = {\n top: itemBox.top - stripBox.top,\n left: itemBox.left - stripBox.left,\n width: itemBox.width,\n height: itemBox.height,\n }\n clearIndicatorAnimations(ind)\n ind.style.transition = 'none'\n ind.style.transform = `translate3d(${next.left}px, ${next.top}px, 0)`\n ind.style.width = `${next.width}px`\n ind.style.height = `${next.height}px`\n ind.style.opacity = '1'\n indicatorRectRef.current = next\n indicatorMountedRef.current = true\n })\n observer.observe(strip)\n return () => observer.disconnect()\n }, [visibleIndexes, overflowIndexes, selectedId, items, showLabels, focusRadius])\n\n useEffect(() => {\n if (isControlled) {\n return\n }\n const next = resolveSelectedId(items, undefined, internalValue)\n if (next && next !== internalValue) {\n setInternalValue(next)\n }\n }, [items, isControlled, internalValue])\n\n const menu = useMenu({\n onItemClickClientArg: ({ closeHandler }) => {\n closeHandler?.()\n },\n })\n\n const menuOptions = useMemo(\n () =>\n overflowItems.map((item) => ({\n id: item.id,\n label: item.label,\n icon: item.icon ? (item.icon as React.ReactElement) : undefined,\n onClick: () => {\n if (!item.disabled) {\n select(item.id)\n }\n },\n })),\n [overflowItems, select]\n )\n\n const selectedItem = items.find((item) => item.id === selectedId)\n\n const stripSx = {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n flexWrap: 'nowrap',\n alignSelf: 'flex-start',\n maxWidth: '100%',\n gap: 'var(--tabpanel-item-gap)',\n p: 'var(--tabpanel-track-pad)',\n borderRadius: 'var(--tabpanel-track-radius)',\n border: 'none',\n bgcolor: 'var(--tabpanel-track-bg)',\n } as const satisfies SxProps<Theme>\n\n const tabButtonSx = {\n position: 'relative',\n zIndex: 1,\n appearance: 'none',\n border: 'none',\n background: 'transparent',\n p: 0,\n m: 0,\n borderRadius: 'var(--tabpanel-focus-radius)',\n color: 'var(--tabpanel-tab-color)',\n transition:\n 'color var(--tabpanel-indicator-ms) var(--tabpanel-indicator-ease)',\n flexShrink: 0,\n '&:hover': {\n color: 'var(--tabpanel-tab-color-active)',\n },\n '&:focus-visible': {\n outline: '2px solid var(--tabpanel-accent)',\n outlineOffset: 3,\n },\n '&[aria-selected=\"true\"]': {\n color: 'var(--tabpanel-tab-color-active)',\n '&:hover': {\n color: 'var(--tabpanel-tab-color-active)',\n },\n },\n } as const satisfies SxProps<Theme>\n\n const setItemRef = (id: string) => (node: HTMLButtonElement | null) => {\n if (node) {\n itemRefs.current.set(id, node)\n } else {\n itemRefs.current.delete(id)\n }\n }\n\n return (\n <Box\n ref={rootRef}\n className={className}\n sx={mergeSx(\n {\n ...tabPanelRootSx,\n ...rootCssVars,\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n gap: 1.5,\n },\n slotProps?.root?.sx,\n sx\n )}\n >\n <Box\n ref={measureRef}\n aria-hidden\n sx={{\n position: 'fixed',\n left: -99999,\n top: 0,\n visibility: 'hidden',\n pointerEvents: 'none',\n display: 'inline-flex',\n alignItems: 'center',\n flexWrap: 'nowrap',\n gap: 'var(--tabpanel-item-gap)',\n width: 'max-content',\n maxWidth: 'none',\n }}\n >\n {items.map((item) => (\n <Box\n key={`measure-${item.id}`}\n data-tab-measure\n sx={{ display: 'inline-flex', flexShrink: 0 }}\n >\n <TabItemContent item={item} showLabels={showLabels} active={false} />\n </Box>\n ))}\n </Box>\n\n <Box\n ref={moreMeasureRef}\n aria-hidden\n sx={{\n position: 'fixed',\n left: -99999,\n top: 0,\n visibility: 'hidden',\n pointerEvents: 'none',\n display: 'inline-flex',\n width: 'max-content',\n }}\n >\n <MoreTriggerContent showLabels={showLabels} open={false} />\n </Box>\n\n <Box\n ref={stripRef}\n role=\"tablist\"\n sx={mergeSx(\n stripSx,\n hasOverflow\n ? (slotProps?.menu?.sx ?? slotProps?.strip?.sx)\n : slotProps?.strip?.sx\n )}\n >\n <Box\n ref={indicatorRef}\n aria-hidden\n sx={mergeSx(\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n borderRadius: 'var(--tabpanel-focus-radius)',\n border: 'none',\n bgcolor: 'var(--tabpanel-focus-bg)',\n backdropFilter: 'blur(12px) saturate(1.2)',\n WebkitBackdropFilter: 'blur(12px) saturate(1.2)',\n boxShadow: 'var(--tabpanel-focus-shadow)',\n opacity: 0,\n pointerEvents: 'none',\n zIndex: 0,\n // Geometry (transform / width / height) is JS + WAAPI only —\n // never set transform here or Emotion fights fill: 'forwards'.\n willChange: 'transform, width, height',\n '[color-scheme=dark] &': {\n bgcolor: 'var(--tabpanel-focus-bg-dark)',\n backdropFilter: 'blur(8px) saturate(1.05)',\n WebkitBackdropFilter: 'blur(8px) saturate(1.05)',\n boxShadow: 'var(--tabpanel-focus-shadow-dark)',\n },\n },\n slotProps?.indicator?.sx\n )}\n />\n\n {visibleItems.map((item) => {\n const active = item.id === selectedId\n return (\n <Box\n key={item.id}\n component=\"button\"\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n disabled={item.disabled}\n ref={setItemRef(item.id)}\n onClick={() => select(item.id)}\n sx={mergeSx(\n {\n ...tabButtonSx,\n cursor: item.disabled ? 'not-allowed' : 'pointer',\n opacity: item.disabled ? 0.4 : 1,\n ...(item.disabled\n ? {\n color: 'var(--tabpanel-tab-color-disabled)',\n '&:hover': {\n color: 'var(--tabpanel-tab-color-disabled)',\n },\n }\n : null),\n },\n slotProps?.tab?.sx\n )}\n >\n <TabItemContent\n item={item}\n showLabels={showLabels}\n active={active}\n />\n </Box>\n )\n })}\n\n {hasOverflow ? (\n <>\n <Box\n component=\"button\"\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={Boolean(menu.anchorEl)}\n aria-label={`More tabs, ${overflowItems.length} hidden`}\n onClick={menu.onTriggerClickHandler}\n sx={mergeSx(\n {\n ...tabButtonSx,\n cursor: 'pointer',\n },\n slotProps?.tab?.sx\n )}\n >\n <MoreTriggerContent\n showLabels={showLabels}\n open={Boolean(menu.anchorEl)}\n />\n </Box>\n <MenuPopper\n placement=\"bottom-end\"\n options={menuOptions}\n openMenuProps={{\n ...menu,\n initSelected: selectedId ? [selectedId] : [],\n }}\n />\n </>\n ) : null}\n </Box>\n\n {selectedItem?.content != null ? (\n <Box\n role=\"tabpanel\"\n sx={mergeSx({ minWidth: 0 }, slotProps?.panel?.sx)}\n >\n {selectedItem.content}\n </Box>\n ) : null}\n </Box>\n )\n}\n\nexport default TabPanel\n","import { useMemo } from 'react'\n\n/**\n * Progressive overflow: keep as many tabs as fit, reserve room for a trailing\n * \"More\" control, and always keep the selected tab on the strip when possible.\n */\nexport function computeVisibleIndexes(\n itemWidths: number[],\n moreWidth: number,\n availableWidth: number,\n selectedIndex: number,\n gapPx: number\n): { visibleIndexes: number[]; overflowIndexes: number[] } {\n const count = itemWidths.length\n if (count === 0) {\n return { visibleIndexes: [], overflowIndexes: [] }\n }\n\n if (itemWidths.some((width) => width <= 0) || availableWidth <= 0) {\n return {\n visibleIndexes: itemWidths.map((_, index) => index),\n overflowIndexes: [],\n }\n }\n\n const totalNeeded =\n itemWidths.reduce((sum, width) => sum + width, 0) +\n Math.max(0, count - 1) * gapPx\n\n if (totalNeeded <= availableWidth) {\n return {\n visibleIndexes: itemWidths.map((_, index) => index),\n overflowIndexes: [],\n }\n }\n\n const reserveMore = moreWidth > 0 ? moreWidth + gapPx : 0\n const budget = Math.max(0, availableWidth - reserveMore)\n\n const pickPrefix = (maxExclusive: number, limit: number) => {\n const indexes: number[] = []\n let used = 0\n for (let i = 0; i < maxExclusive; i += 1) {\n const width = itemWidths[i] ?? 0\n const nextUsed = used + width + (indexes.length > 0 ? gapPx : 0)\n if (nextUsed <= limit) {\n indexes.push(i)\n used = nextUsed\n } else {\n break\n }\n }\n return indexes\n }\n\n let visibleIndexes: number[]\n\n if (selectedIndex < 0 || selectedIndex >= count) {\n visibleIndexes = pickPrefix(count, budget)\n } else {\n const selectedWidth = itemWidths[selectedIndex] ?? 0\n const prefixBudget = Math.max(\n 0,\n budget - selectedWidth - (selectedWidth > 0 ? gapPx : 0)\n )\n const prefix = pickPrefix(selectedIndex, prefixBudget)\n\n let used =\n prefix.reduce((sum, index, order) => {\n return sum + (itemWidths[index] ?? 0) + (order > 0 ? gapPx : 0)\n }, 0) +\n (prefix.length > 0 ? gapPx : 0) +\n selectedWidth\n\n const after: number[] = []\n for (let i = selectedIndex + 1; i < count; i += 1) {\n const width = itemWidths[i] ?? 0\n const nextUsed = used + gapPx + width\n if (nextUsed <= budget) {\n after.push(i)\n used = nextUsed\n } else {\n break\n }\n }\n\n visibleIndexes = [...prefix, selectedIndex, ...after]\n }\n\n if (visibleIndexes.length === 0 && selectedIndex >= 0 && selectedIndex < count) {\n visibleIndexes = [selectedIndex]\n }\n\n const visibleSet = new Set(visibleIndexes)\n const overflowIndexes = itemWidths\n .map((_, index) => index)\n .filter((index) => !visibleSet.has(index))\n\n return { visibleIndexes, overflowIndexes }\n}\n\nexport function useTabsOverflowSplit(\n itemWidths: number[],\n moreWidth: number,\n availableWidth: number,\n selectedIndex: number,\n gapPx: number\n) {\n return useMemo(\n () =>\n computeVisibleIndexes(\n itemWidths,\n moreWidth,\n availableWidth,\n selectedIndex,\n gapPx\n ),\n [itemWidths, moreWidth, availableWidth, selectedIndex, gapPx]\n )\n}\n","import type { SxProps, Theme } from '@mui/material/styles'\n\n/**\n * Default TabPanel CSS variables — set on the root wrapper via `sx`.\n * Override with `sx`, `slotProps.root.sx`, or `slotProps.root.style`.\n */\nexport const tabPanelRootSx = {\n '--tabpanel-accent': 'var(--mui-palette-primary-emphasis)',\n '--tabpanel-track-bg':\n 'color-mix(in lab, var(--tabpanel-accent), transparent 92%)',\n '--tabpanel-tab-color': 'var(--mui-palette-text-secondary)',\n '--tabpanel-tab-color-active': 'var(--tabpanel-accent)',\n '--tabpanel-tab-color-disabled': 'var(--mui-palette-text-disabled)',\n '--tabpanel-badge-color': 'var(--mui-palette-error-main)',\n '--tabpanel-badge-bg':\n 'color-mix(in lab, var(--mui-palette-error-main), transparent 86%)',\n '--tabpanel-focus-bg':\n 'color-mix(in lab, var(--mui-palette-background-paper), transparent 78%)',\n '--tabpanel-focus-bg-dark':\n 'color-mix(in lab, var(--mui-palette-background-paper), transparent 55%)',\n '--tabpanel-focus-shadow': [\n 'inset 0 1px 1px color-mix(in lab, var(--mui-palette-background-paper), transparent 15%)',\n 'inset 0 -1px 3px color-mix(in lab, var(--tabpanel-accent), transparent 80%)',\n 'inset 0 0 16px color-mix(in lab, var(--mui-palette-background-paper), transparent 50%)',\n '0 0 0 1px color-mix(in lab, var(--mui-palette-background-paper), transparent 45%)',\n '0 0 20px color-mix(in lab, var(--tabpanel-accent), transparent 76%)',\n '0 8px 22px color-mix(in lab, var(--tabpanel-accent), transparent 84%)',\n ].join(', '),\n '--tabpanel-focus-shadow-dark': [\n 'inset 0 1px 0 rgba(255, 255, 255, 0.06)',\n 'inset 0 0 0 1px color-mix(in lab, var(--tabpanel-accent), transparent 82%)',\n '0 0 0 1px rgba(0, 0, 0, 0.35)',\n '0 4px 12px rgba(0, 0, 0, 0.35)',\n ].join(', '),\n '--tabpanel-focus-radius': '10px',\n '--tabpanel-track-radius': '12px',\n '--tabpanel-track-pad': '3px',\n '--tabpanel-item-gap': '1px',\n '--tabpanel-indicator-ease': 'cubic-bezier(0.32, 0.72, 0, 1)',\n '--tabpanel-indicator-ms': '380ms',\n} as const satisfies SxProps<Theme>\n\nexport type TabPanelStyleVars = {\n accent?: string\n trackBg?: string\n tabColor?: string\n tabColorActive?: string\n tabColorDisabled?: string\n badgeColor?: string\n badgeBg?: string\n focusBg?: string\n focusBgDark?: string\n focusShadow?: string\n focusShadowDark?: string\n focusRadius?: string\n trackRadius?: string\n}\n\n/** Maps typed style tokens onto CSS custom properties for the root wrapper. */\nexport function tabPanelStyleToCssVars(\n style?: TabPanelStyleVars\n): Record<string, string> {\n if (!style) {\n return {}\n }\n\n const vars: Record<string, string> = {}\n if (style.accent != null) vars['--tabpanel-accent'] = style.accent\n if (style.trackBg != null) vars['--tabpanel-track-bg'] = style.trackBg\n if (style.tabColor != null) vars['--tabpanel-tab-color'] = style.tabColor\n if (style.tabColorActive != null) {\n vars['--tabpanel-tab-color-active'] = style.tabColorActive\n }\n if (style.tabColorDisabled != null) {\n vars['--tabpanel-tab-color-disabled'] = style.tabColorDisabled\n }\n if (style.badgeColor != null) vars['--tabpanel-badge-color'] = style.badgeColor\n if (style.badgeBg != null) vars['--tabpanel-badge-bg'] = style.badgeBg\n if (style.focusBg != null) vars['--tabpanel-focus-bg'] = style.focusBg\n if (style.focusBgDark != null) {\n vars['--tabpanel-focus-bg-dark'] = style.focusBgDark\n }\n if (style.focusShadow != null) {\n vars['--tabpanel-focus-shadow'] = style.focusShadow\n }\n if (style.focusShadowDark != null) {\n vars['--tabpanel-focus-shadow-dark'] = style.focusShadowDark\n }\n if (style.focusRadius != null) {\n vars['--tabpanel-focus-radius'] = style.focusRadius\n }\n if (style.trackRadius != null) {\n vars['--tabpanel-track-radius'] = style.trackRadius\n }\n return vars\n}\n"],"mappings":"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","names":["default","useMemo","default","useMemo"]}
@@ -0,0 +1,414 @@
1
+ import {
2
+ default as default3
3
+ } from "./chunk-4Q54P737.mjs";
4
+ import {
5
+ Chip
6
+ } from "./chunk-OP6LKXPA.mjs";
7
+ import {
8
+ default as default2,
9
+ mergeSx
10
+ } from "./chunk-S6EZVRZC.mjs";
11
+
12
+ // src/components/elemental/Button/src/Button/Button.tsx
13
+ import MuiButton from "@mui/material/Button";
14
+ import { jsx } from "react/jsx-runtime";
15
+ function Button(p) {
16
+ const { children, slotProps, ...rest } = p;
17
+ const { sx, ...boxRest } = slotProps?.innerBox ?? {};
18
+ return /* @__PURE__ */ jsx(MuiButton, { ...rest, children: /* @__PURE__ */ jsx(
19
+ default2,
20
+ {
21
+ ...boxRest,
22
+ sx: mergeSx(
23
+ {
24
+ textOverflow: "ellipsis",
25
+ overflow: "hidden",
26
+ whiteSpace: "pre"
27
+ },
28
+ sx
29
+ ),
30
+ children
31
+ }
32
+ ) });
33
+ }
34
+
35
+ // src/components/elemental/Button/src/Button/themes.ts
36
+ var buttonTheme = {
37
+ defaultProps: {
38
+ variant: "outlined",
39
+ focusRipple: false,
40
+ disableRipple: true,
41
+ size: "small"
42
+ },
43
+ styleOverrides: {
44
+ root: {
45
+ textTransform: "capitalize",
46
+ // MUI Button defaults to 250ms bg/color/border-color. Snap palette
47
+ // token flips instead of interpolating. :active scale stays a snap
48
+ // transform (no transform transition).
49
+ transition: "background-color 0s, border-color 0s, color 0s, box-shadow 0s",
50
+ "--button-color": "var(--mui-palette-text-primary)",
51
+ "--button-filled-bg": "var(--mui-palette-primary-background)",
52
+ "--button-hover-border-color": "var(--mui-palette-border-hover-1)",
53
+ "--variant-outlinedColor": "var(--button-color)",
54
+ "--variant-outlinedBg": "transparent",
55
+ "--variant-containedColor": "var(--button-color)",
56
+ "--variant-containedBg": "var(--button-filled-bg)",
57
+ "--variant-textBorderColor": "transparent",
58
+ "&:hover": {
59
+ "--variant-textBorderColor": "var(--button-hover-border-color)"
60
+ },
61
+ "&.MuiButton-colorError": {
62
+ "--button-color": "var(--mui-palette-error-main)",
63
+ "--button-filled-bg": "var(--mui-palette-error-background)",
64
+ "--button-hover-border-color": "var(--mui-palette-error-dark)"
65
+ },
66
+ "&.MuiButton-colorInfo": {
67
+ "--button-color": "var(--mui-palette-info-main)",
68
+ "--button-filled-bg": "var(--mui-palette-info-background)",
69
+ "--button-hover-border-color": "var(--mui-palette-info-dark)"
70
+ },
71
+ "&.MuiButton-colorSuccess": {
72
+ "--button-color": "var(--mui-palette-success-dark)",
73
+ "--button-filled-bg": "var(--mui-palette-success-background)",
74
+ "--button-hover-border-color": "var(--mui-palette-success-dark)"
75
+ },
76
+ "&.MuiButton-colorWarning": {
77
+ "--button-color": "var(--mui-palette-warning-main)",
78
+ "--button-filled-bg": "var(--mui-palette-warning-background)",
79
+ "--button-hover-border-color": "var(--mui-palette-warning-dark)"
80
+ },
81
+ "&.MuiButton-colorSystem": {
82
+ "--button-color": "var(--mui-palette-system-main)",
83
+ "--button-filled-bg": "var(--mui-palette-system-background)",
84
+ "--button-hover-border-color": "var(--mui-palette-system-dark)"
85
+ },
86
+ "&.MuiButton-colorInsight": {
87
+ "--button-color": "var(--mui-palette-insight-main)",
88
+ "--button-filled-bg": "var(--mui-palette-insight-background)",
89
+ "--button-hover-border-color": "var(--mui-palette-insight-dark)"
90
+ },
91
+ "&.MuiButton-colorSecondary": {
92
+ "--button-color": "var(--mui-palette-secondary-main)",
93
+ "--button-filled-bg": "var(--mui-palette-secondary-background)",
94
+ "--button-hover-border-color": "var(--mui-palette-border-hover-1)"
95
+ },
96
+ "&.MuiButton-colorPrimary": {
97
+ "--button-color": "var(--mui-palette-primary-emphasis)",
98
+ "--button-filled-bg": "var(--mui-palette-container-bg-primary)",
99
+ "--button-hover-border-color": "var(--mui-palette-primary-emphasis)",
100
+ "--variant-outlinedBorder": "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)",
101
+ "--variant-textColor": "var(--mui-palette-primary-emphasis)",
102
+ "--variant-containedColor": "var(--mui-palette-text-primary)",
103
+ "&.MuiButton-outlined": {
104
+ color: "var(--mui-palette-primary-emphasis)",
105
+ borderColor: "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)",
106
+ "&:hover": {
107
+ color: "var(--mui-palette-primary-emphasis)",
108
+ borderColor: "var(--mui-palette-primary-emphasis)",
109
+ backgroundColor: "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)"
110
+ }
111
+ },
112
+ "&.MuiButton-contained": {
113
+ color: "var(--mui-palette-primary-emphasis)",
114
+ backgroundColor: "var(--mui-palette-container-bg-primary)",
115
+ "&:hover": {
116
+ color: "var(--mui-palette-primary-emphasis)",
117
+ borderColor: "var(--mui-palette-border-hover-1)",
118
+ backgroundColor: "var(--mui-palette-container-bg-primary)"
119
+ }
120
+ },
121
+ "&.MuiButton-text": {
122
+ color: "var(--mui-palette-primary-emphasis)",
123
+ "&:hover": {
124
+ color: "var(--mui-palette-primary-emphasis)",
125
+ borderColor: "var(--mui-palette-primary-emphasis)",
126
+ backgroundColor: "color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)"
127
+ }
128
+ }
129
+ },
130
+ "&:active": {
131
+ scale: "0.9"
132
+ }
133
+ },
134
+ outlined: {
135
+ "&:hover": {
136
+ borderColor: "var(--button-hover-border-color)"
137
+ }
138
+ },
139
+ contained: {
140
+ boxShadow: "none",
141
+ border: "1px solid transparent",
142
+ "&:hover": {
143
+ boxShadow: "none",
144
+ borderColor: "var(--button-hover-border-color)",
145
+ backgroundColor: "var(--button-filled-bg)"
146
+ }
147
+ },
148
+ text: {
149
+ border: "1px solid transparent",
150
+ borderColor: "var(--variant-textBorderColor)"
151
+ }
152
+ }
153
+ };
154
+ var buttonBaseTheme = {
155
+ styleOverrides: {
156
+ root: {
157
+ textTransform: "capitalize"
158
+ }
159
+ }
160
+ };
161
+
162
+ // src/components/elemental/Button/src/IconButton/IconButton.tsx
163
+ import { forwardRef } from "react";
164
+ import MuiIconButton from "@mui/material/IconButton";
165
+ import { jsx as jsx2 } from "react/jsx-runtime";
166
+ var IconButton = forwardRef(({
167
+ title = "",
168
+ children,
169
+ color,
170
+ size,
171
+ slotProps,
172
+ selected,
173
+ className,
174
+ ...props
175
+ }, ref) => {
176
+ return /* @__PURE__ */ jsx2(
177
+ default3,
178
+ {
179
+ title,
180
+ slotProps: {
181
+ popper: {
182
+ sx: {
183
+ textTransform: "capitalize"
184
+ }
185
+ },
186
+ ...slotProps?.tooltip
187
+ },
188
+ children: /* @__PURE__ */ jsx2(default2, { component: "span", sx: { width: "fit-content" }, children: /* @__PURE__ */ jsx2(
189
+ MuiIconButton,
190
+ {
191
+ ref,
192
+ color,
193
+ size,
194
+ className: [className, selected ? "Mui-selected" : ""].filter(Boolean).join(" "),
195
+ ...props,
196
+ children
197
+ }
198
+ ) })
199
+ }
200
+ );
201
+ });
202
+ var IconButton_default = IconButton;
203
+
204
+ // src/components/elemental/Button/src/IconButton/IconButton.HoverSpinnin.tsx
205
+ import { styled } from "@mui/material/styles";
206
+ var IconButton_HoverSpinnin_default = styled(IconButton_default)({
207
+ "&:hover svg": {
208
+ transform: "rotate(360deg)",
209
+ transition: "transform 0.3s ease-in-out"
210
+ }
211
+ });
212
+
213
+ // src/components/elemental/Button/src/IconButton/IconButton.Fade.tsx
214
+ import { forwardRef as forwardRef2, useState, useEffect } from "react";
215
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
216
+ var IconButtonFade = forwardRef2(({
217
+ fadeIcon,
218
+ fadeDuration = 1e3,
219
+ children,
220
+ onClick,
221
+ ...rest
222
+ }, ref) => {
223
+ const [active, setActive] = useState(false);
224
+ const handleClick = (e) => {
225
+ onClick?.(e);
226
+ setActive(true);
227
+ };
228
+ useEffect(() => {
229
+ if (!active) return;
230
+ const timer = setTimeout(() => setActive(false), fadeDuration);
231
+ return () => clearTimeout(timer);
232
+ }, [active, fadeDuration]);
233
+ return /* @__PURE__ */ jsx3(
234
+ IconButton_default,
235
+ {
236
+ ref,
237
+ ...rest,
238
+ onClick: handleClick,
239
+ children: /* @__PURE__ */ jsxs(default2, { sx: { position: "relative", display: "inline-flex" }, children: [
240
+ /* @__PURE__ */ jsx3(
241
+ default2,
242
+ {
243
+ sx: {
244
+ opacity: active ? 0 : 1,
245
+ transition: "opacity 0.2s ease-in-out"
246
+ },
247
+ children
248
+ }
249
+ ),
250
+ /* @__PURE__ */ jsx3(
251
+ default2,
252
+ {
253
+ sx: {
254
+ position: "absolute",
255
+ top: 0,
256
+ left: 0,
257
+ opacity: active ? 1 : 0,
258
+ transition: "opacity 0.2s ease-in-out"
259
+ },
260
+ children: fadeIcon
261
+ }
262
+ )
263
+ ] })
264
+ }
265
+ );
266
+ });
267
+ var IconButton_Fade_default = IconButtonFade;
268
+
269
+ // src/components/elemental/Button/src/IconButton/theme.ts
270
+ var iconButtonTheme = {
271
+ defaultProps: {
272
+ focusRipple: false,
273
+ disableRipple: true,
274
+ color: "secondary",
275
+ size: "small"
276
+ },
277
+ styleOverrides: {
278
+ root: ({ theme }) => ({
279
+ // MUI IconButton defaults to 150ms background-color. Drop color
280
+ // interpolation; :active scale stays a snap transform.
281
+ transition: "background-color 0s, border-color 0s, color 0s",
282
+ "--button-color": "var(--mui-palette-text-primary)",
283
+ "--button-hover-border-color": "var(--mui-palette-border-hover-1)",
284
+ "&.MuiIconButton-colorError": {
285
+ "--button-color": "var(--mui-palette-error-main)",
286
+ "--button-hover-border-color": "var(--mui-palette-error-dark)"
287
+ },
288
+ "&.MuiIconButton-colorInfo": {
289
+ "--button-color": "var(--mui-palette-info-main)",
290
+ "--button-hover-border-color": "var(--mui-palette-info-dark)"
291
+ },
292
+ "&.MuiIconButton-colorSuccess": {
293
+ "--button-color": "var(--mui-palette-success-dark)",
294
+ "--button-hover-border-color": "var(--mui-palette-success-dark)"
295
+ },
296
+ "&.MuiIconButton-colorWarning": {
297
+ "--button-color": "var(--mui-palette-warning-main)",
298
+ "--button-hover-border-color": "var(--mui-palette-warning-dark)"
299
+ },
300
+ "&.MuiIconButton-colorSecondary": {
301
+ "--button-color": "var(--mui-palette-secondary-dark)",
302
+ "--button-hover-border-color": "var(--mui-palette-secondary-main)"
303
+ },
304
+ "&.MuiIconButton-colorPrimary": {
305
+ "--button-color": "var(--mui-palette-primary-emphasis)",
306
+ "--button-hover-border-color": "var(--mui-palette-primary-emphasis)"
307
+ },
308
+ "&.MuiIconButton-colorSystem": {
309
+ "--button-color": "var(--mui-palette-system-main)",
310
+ "--button-hover-border-color": "var(--mui-palette-system-dark)"
311
+ },
312
+ "&.MuiIconButton-colorInsight": {
313
+ "--button-color": "var(--mui-palette-insight-main)",
314
+ "--button-hover-border-color": "var(--mui-palette-insight-dark)"
315
+ },
316
+ "--color-p": "var(--button-color)",
317
+ "--bg": "color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)",
318
+ padding: theme.spacing(0.5),
319
+ borderRadius: "8px",
320
+ color: "var(--color-p)",
321
+ backgroundColor: "var(--bg)",
322
+ "&:active svg": {
323
+ scale: "0.9"
324
+ },
325
+ "&.Mui-disabled": {
326
+ "--color-p": "var(--mui-palette-action-disabled)",
327
+ "--bg": "color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)",
328
+ color: "var(--color-p)",
329
+ backgroundColor: "var(--bg)",
330
+ "& svg.MuiSvgIcon-root": {
331
+ color: "var(--color-p)"
332
+ }
333
+ },
334
+ border: "1px solid transparent",
335
+ "&:hover": {
336
+ borderColor: "color-mix(in lab, var(--mui-palette-border-1) 80%, var(--button-hover-border-color))"
337
+ },
338
+ "&:active": {
339
+ scale: "0.9"
340
+ }
341
+ })
342
+ }
343
+ };
344
+
345
+ // src/components/elemental/Button/src/TagButton/TagButton.tsx
346
+ import { styled as styled2 } from "@mui/material/styles";
347
+
348
+ // src/components/elemental/Button/src/TagButton/theme.ts
349
+ var tagButtonVars = {
350
+ "--tag-color": "var(--mui-palette-text-grey-1)",
351
+ "--tag-bg": "var(--mui-palette-background-grey-1)",
352
+ "--tag-bg-hover": "var(--mui-palette-focus-soft-1)"
353
+ };
354
+
355
+ // src/components/elemental/Button/src/TagButton/TagButton.tsx
356
+ var TagButton = styled2(Chip, {})(() => ({
357
+ ...tagButtonVars,
358
+ "&.MuiChip-root": {
359
+ maxWidth: "fit-content",
360
+ textTransform: "lowercase",
361
+ color: "var(--tag-color)",
362
+ fontStyle: "italic",
363
+ padding: "2px 4px",
364
+ border: "none",
365
+ borderRadius: "var(--mui-shape-borderRadius)",
366
+ // use theme shape token
367
+ fontSize: "12px",
368
+ lineHeight: "16px",
369
+ height: "auto",
370
+ width: "auto",
371
+ boxShadow: "none",
372
+ gap: "2px",
373
+ background: "var(--tag-bg)",
374
+ transition: "none",
375
+ borderWidth: "0px",
376
+ "&.MuiChip-clickable:hover": {
377
+ background: "var(--tag-bg-hover)",
378
+ boxShadow: "none"
379
+ },
380
+ "& .MuiChip-icon": {
381
+ color: "var(--tag-color)",
382
+ fontSize: "1rem",
383
+ margin: "0",
384
+ padding: "0"
385
+ },
386
+ "& .MuiChip-label": {
387
+ padding: "0 1px",
388
+ margin: "0",
389
+ marginRight: "4px"
390
+ },
391
+ "& .MuiChip-deleteIcon": {
392
+ fontSize: "1rem",
393
+ borderRadius: "50%",
394
+ color: "var(--tag-color)",
395
+ margin: "0"
396
+ },
397
+ "& .MuiSvgIcon-root": {
398
+ fontSize: "1em"
399
+ }
400
+ }
401
+ }));
402
+ var TagButton_default = TagButton;
403
+
404
+ export {
405
+ Button,
406
+ buttonTheme,
407
+ buttonBaseTheme,
408
+ IconButton_default,
409
+ IconButton_HoverSpinnin_default,
410
+ IconButton_Fade_default,
411
+ iconButtonTheme,
412
+ TagButton_default
413
+ };
414
+ //# sourceMappingURL=chunk-JIU5GVM7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/elemental/Button/src/Button/Button.tsx","../src/components/elemental/Button/src/Button/themes.ts","../src/components/elemental/Button/src/IconButton/IconButton.tsx","../src/components/elemental/Button/src/IconButton/IconButton.HoverSpinnin.tsx","../src/components/elemental/Button/src/IconButton/IconButton.Fade.tsx","../src/components/elemental/Button/src/IconButton/theme.ts","../src/components/elemental/Button/src/TagButton/TagButton.tsx","../src/components/elemental/Button/src/TagButton/theme.ts"],"sourcesContent":["import React from 'react';\n\nimport MuiButton from '@mui/material/Button';\nimport { Box } from '@/ele/Box';\nimport { mergeSx } from '@/_utils/_func';\n\n/**\n * A modified MUI Button that truncates long text with ellipsis.\n * \n * [Doc](https://mui.com/material-ui/react-button/)\n * [API](https://mui.com/material-ui/api/button/)\n */\nexport default function Button(p:\n React.ComponentProps<typeof MuiButton> & {\n slotProps?: {\n innerBox?: React.ComponentProps<typeof Box>\n }\n }) {\n const {children, slotProps, ...rest} = p\n const {sx, ...boxRest} = slotProps?.innerBox ?? {}\n return <MuiButton {...rest}>\n <Box \n {...boxRest}\n sx={mergeSx(\n {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'pre',\n },\n sx,\n )}>\n {children}\n </Box>\n </MuiButton>\n}","import type { MuiComponentTheme } from '@/_utils/_types'\n\nexport const buttonTheme = {\n defaultProps: {\n variant: 'outlined',\n focusRipple: false,\n disableRipple: true,\n size: 'small',\n },\n styleOverrides: {\n root: {\n textTransform: 'capitalize',\n // MUI Button defaults to 250ms bg/color/border-color. Snap palette\n // token flips instead of interpolating. :active scale stays a snap\n // transform (no transform transition).\n transition: 'background-color 0s, border-color 0s, color 0s, box-shadow 0s',\n\n '--button-color':'var(--mui-palette-text-primary)',\n '--button-filled-bg':'var(--mui-palette-primary-background)',\n '--button-hover-border-color':'var(--mui-palette-border-hover-1)',\n\n \"--variant-outlinedColor\":\"var(--button-color)\",\n \"--variant-outlinedBg\":\"transparent\",\n\n \"--variant-containedColor\":\"var(--button-color)\",\n \"--variant-containedBg\":\"var(--button-filled-bg)\",\n\n \"--variant-textBorderColor\": 'transparent',\n \"&:hover\": {\n \"--variant-textBorderColor\":\"var(--button-hover-border-color)\",\n },\n\n \"&.MuiButton-colorError\":{\n '--button-color':'var(--mui-palette-error-main)',\n '--button-filled-bg':'var(--mui-palette-error-background)',\n '--button-hover-border-color':'var(--mui-palette-error-dark)',\n },\n \"&.MuiButton-colorInfo\":{\n '--button-color':'var(--mui-palette-info-main)',\n '--button-filled-bg':'var(--mui-palette-info-background)',\n '--button-hover-border-color':'var(--mui-palette-info-dark)',\n },\n \"&.MuiButton-colorSuccess\":{\n '--button-color':'var(--mui-palette-success-dark)',\n '--button-filled-bg':'var(--mui-palette-success-background)',\n '--button-hover-border-color':'var(--mui-palette-success-dark)',\n },\n \"&.MuiButton-colorWarning\":{\n '--button-color':'var(--mui-palette-warning-main)',\n '--button-filled-bg':'var(--mui-palette-warning-background)',\n '--button-hover-border-color':'var(--mui-palette-warning-dark)',\n },\n \"&.MuiButton-colorSystem\":{\n '--button-color':'var(--mui-palette-system-main)',\n '--button-filled-bg':'var(--mui-palette-system-background)',\n '--button-hover-border-color':'var(--mui-palette-system-dark)',\n },\n \"&.MuiButton-colorInsight\":{\n '--button-color':'var(--mui-palette-insight-main)',\n '--button-filled-bg':'var(--mui-palette-insight-background)',\n '--button-hover-border-color':'var(--mui-palette-insight-dark)',\n },\n \"&.MuiButton-colorSecondary\":{\n '--button-color':'var(--mui-palette-secondary-main)',\n '--button-filled-bg':'var(--mui-palette-secondary-background)',\n '--button-hover-border-color':'var(--mui-palette-border-hover-1)',\n },\n \"&.MuiButton-colorPrimary\":{\n '--button-color':'var(--mui-palette-primary-emphasis)',\n '--button-filled-bg':'var(--mui-palette-container-bg-primary)',\n '--button-hover-border-color':'var(--mui-palette-primary-emphasis)',\n\n '--variant-outlinedBorder': 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)',\n '--variant-textColor':'var(--mui-palette-primary-emphasis)',\n '--variant-containedColor':'var(--mui-palette-text-primary)',\n\n '&.MuiButton-outlined': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 62%)',\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)',\n },\n },\n '&.MuiButton-contained': {\n color: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'var(--mui-palette-container-bg-primary)',\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'var(--mui-palette-border-hover-1)',\n backgroundColor: 'var(--mui-palette-container-bg-primary)',\n },\n },\n '&.MuiButton-text': {\n color: 'var(--mui-palette-primary-emphasis)',\n '&:hover': {\n color: 'var(--mui-palette-primary-emphasis)',\n borderColor: 'var(--mui-palette-primary-emphasis)',\n backgroundColor: 'color-mix(in lab, var(--mui-palette-primary-emphasis), transparent 94%)',\n },\n },\n },\n\n \"&:active\": {\n scale:\"0.9\",\n },\n },\n outlined: {\n \"&:hover\": {\n borderColor: 'var(--button-hover-border-color)',\n },\n },\n contained: {\n boxShadow: 'none',\n border:'1px solid transparent',\n '&:hover': {\n boxShadow: 'none',\n borderColor: 'var(--button-hover-border-color)',\n backgroundColor: 'var(--button-filled-bg)',\n },\n },\n\n text: {\n border:'1px solid transparent',\n borderColor: 'var(--variant-textBorderColor)',\n },\n }\n\n} as const satisfies MuiComponentTheme<\"MuiButton\">\n\nexport const buttonBaseTheme = {\n styleOverrides: {\n root: {\n textTransform: 'capitalize',\n },\n }\n \n} as const satisfies MuiComponentTheme<\"MuiButtonBase\">","'use client'\nimport {forwardRef} from 'react'\nimport MuiIconButton from '@mui/material/IconButton'\nimport { Tooltip } from '@/ele/Tooltip'\nimport { type TooltipProps } from '@mui/material/Tooltip'\nimport { Box } from '@/ele/Box'\n\ntype IconButtonProps = React.ComponentProps<typeof MuiIconButton>\ntype Props = {\n /** The Icon to render */\n children: React.ReactNode;\n /** The title of the tooltip */\n title?: string;\n /** \n * The color theme of the entire component.\n * @default 'secondary' (from theme)\n */\n color?: IconButtonProps['color'];\n /**\n * The size of the component.\n * @default 'small' (from theme)\n */\n size?: IconButtonProps['size'];\n \n selected?: boolean;\n \n slotProps?: {\n tooltip?: Omit<TooltipProps, \"children\">\n };\n} & Omit<IconButtonProps, \"color\" | \"size\">;\n\n/**\n * A MuiIconButton wrapped in a MuiTooltip.\n * Default props like `size` and `color` are handled by the theme.\n */\nconst IconButton = forwardRef<HTMLButtonElement, Props>(({\n title = \"\",\n children,\n color,\n size,\n slotProps,\n selected,\n className,\n ...props\n}, ref) => {\n return (\n <Tooltip \n title={title} \n slotProps={{\n popper: {\n sx: {\n textTransform: \"capitalize\",\n }\n },\n ...slotProps?.tooltip\n }}\n >\n <Box component=\"span\" sx={{width: \"fit-content\"}}>\n <MuiIconButton\n ref={ref}\n color={color}\n size={size}\n className={[className, selected ? 'Mui-selected' : ''].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </MuiIconButton>\n </Box>\n </Tooltip>\n )\n})\n\nexport default IconButton","'use client'\nimport { styled } from '@mui/material/styles'\n\nimport IconButton from './IconButton'\n\nexport default styled(IconButton)({\n \"&:hover svg\": {\n transform:\"rotate(360deg)\",\n transition:\"transform 0.3s ease-in-out\",\n },\n})","'use client'\nimport { forwardRef, useState, useEffect, type ComponentProps } from 'react'\nimport { Box } from '@/ele/Box'\nimport IconButton from './IconButton'\n\n// reuse the public prop types from the regular IconButton component; this\n// automatically keeps the two in sync and avoids exporting an explicit\n// `Props` type from IconButton.tsx.\nexport type IconButtonFadeProps = ComponentProps<typeof IconButton> & {\n /**\n * element that is shown temporarily when the button is activated (usually\n * another icon). the component will fade from `children` to this element\n * and then automatically back again after `fadeDuration`.\n */\n fadeIcon: React.ReactNode;\n /** how long (in ms) the fade icon remains visible before reverting */\n fadeDuration?: number;\n};\n\nconst IconButtonFade = forwardRef<HTMLButtonElement, IconButtonFadeProps>(({\n fadeIcon,\n fadeDuration = 1000,\n children,\n onClick,\n ...rest\n}, ref) => {\n const [active, setActive] = useState(false);\n\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n onClick?.(e);\n setActive(true);\n };\n\n useEffect(() => {\n if (!active) return;\n const timer = setTimeout(() => setActive(false), fadeDuration);\n return () => clearTimeout(timer);\n }, [active, fadeDuration]);\n\n return (\n <IconButton\n ref={ref}\n {...rest}\n onClick={handleClick}\n >\n <Box sx={{ position: 'relative', display: 'inline-flex' }}>\n <Box\n sx={{\n opacity: active ? 0 : 1,\n transition: 'opacity 0.2s ease-in-out',\n }}\n >\n {children}\n </Box>\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: active ? 1 : 0,\n transition: 'opacity 0.2s ease-in-out',\n }}\n >\n {fadeIcon}\n </Box>\n </Box>\n </IconButton>\n )\n})\n\nexport default IconButtonFade\n","import type { MuiComponentTheme } from '@/_utils/_types'\n\nexport const iconButtonTheme = {\n defaultProps: {\n focusRipple: false,\n disableRipple: true,\n color: 'secondary',\n size: 'small',\n },\n styleOverrides: {\n root: ({theme}) =>({\n // MUI IconButton defaults to 150ms background-color. Drop color\n // interpolation; :active scale stays a snap transform.\n transition: 'background-color 0s, border-color 0s, color 0s',\n '--button-color':'var(--mui-palette-text-primary)',\n '--button-hover-border-color':'var(--mui-palette-border-hover-1)',\n \"&.MuiIconButton-colorError\":{\n '--button-color':'var(--mui-palette-error-main)',\n '--button-hover-border-color':'var(--mui-palette-error-dark)',\n },\n \"&.MuiIconButton-colorInfo\":{\n '--button-color':'var(--mui-palette-info-main)',\n '--button-hover-border-color':'var(--mui-palette-info-dark)',\n },\n \"&.MuiIconButton-colorSuccess\":{\n '--button-color':'var(--mui-palette-success-dark)',\n '--button-hover-border-color':'var(--mui-palette-success-dark)',\n },\n \"&.MuiIconButton-colorWarning\":{\n '--button-color':'var(--mui-palette-warning-main)',\n '--button-hover-border-color':'var(--mui-palette-warning-dark)',\n },\n \"&.MuiIconButton-colorSecondary\":{\n '--button-color':'var(--mui-palette-secondary-dark)',\n '--button-hover-border-color':'var(--mui-palette-secondary-main)',\n },\n \"&.MuiIconButton-colorPrimary\":{\n '--button-color':'var(--mui-palette-primary-emphasis)',\n '--button-hover-border-color':'var(--mui-palette-primary-emphasis)',\n },\n \"&.MuiIconButton-colorSystem\":{\n '--button-color':'var(--mui-palette-system-main)',\n '--button-hover-border-color':'var(--mui-palette-system-dark)',\n },\n \"&.MuiIconButton-colorInsight\":{\n '--button-color':'var(--mui-palette-insight-main)',\n '--button-hover-border-color':'var(--mui-palette-insight-dark)',\n },\n\n '--color-p':'var(--button-color)',\n '--bg': 'color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)',\n padding: theme.spacing(0.5),\n borderRadius: '8px',\n \n color: 'var(--color-p)',\n\n backgroundColor:'var(--bg)',\n \"&:active svg\": {\n scale:\"0.9\",\n },\n\n \"&.Mui-disabled\":{\n '--color-p':'var(--mui-palette-action-disabled)',\n '--bg': 'color-mix(in lab,rgba(255, 255, 255, 0.04) 95%,var(--color-p) 5%)',\n color: 'var(--color-p)',\n backgroundColor:'var(--bg)',\n\n '& svg.MuiSvgIcon-root':{\n color: 'var(--color-p)',\n },\n },\n\n border: '1px solid transparent',\n \"&:hover\": {\n borderColor: 'color-mix(in lab, var(--mui-palette-border-1) 80%, var(--button-hover-border-color))',\n },\n\n \"&:active\": {\n scale:\"0.9\",\n },\n }),\n },\n\n} as const satisfies MuiComponentTheme<\"MuiIconButton\">","'use client'\nimport { Chip } from '@/ele/Chip'\nimport { styled } from '@mui/material/styles'\nimport { tagButtonVars } from './theme'\n\n/**\n * A styled Mui Chip component\n * \n * [Doc](https://mui.com/material-ui/react-chip/)\n */\nconst TagButton = styled(Chip,{\n \n})(() => ({\n ...tagButtonVars,\n\n '&.MuiChip-root':{\n maxWidth: 'fit-content',\n textTransform: 'lowercase',\n color:'var(--tag-color)',\n fontStyle: 'italic',\n padding: '2px 4px',\n \n border:'none',\n borderRadius: 'var(--mui-shape-borderRadius)', // use theme shape token\n fontSize: '12px',\n lineHeight: '16px',\n height:'auto',\n width:'auto',\n boxShadow:'none',\n gap:'2px',\n \n background:'var(--tag-bg)',\n transition: 'none',\n \n borderWidth: '0px',\n '&.MuiChip-clickable:hover': {\n background: 'var(--tag-bg-hover)',\n boxShadow: 'none',\n },\n '& .MuiChip-icon': {\n color: 'var(--tag-color)',\n fontSize: '1rem',\n margin:'0',\n padding:'0',\n },\n '& .MuiChip-label': {\n padding: '0 1px',\n\n margin:'0',\n marginRight:'4px',\n },\n '& .MuiChip-deleteIcon': {\n fontSize: '1rem',\n borderRadius: '50%',\n color: 'var(--tag-color)',\n margin:'0',\n },\n\n '& .MuiSvgIcon-root':{\n fontSize: '1em',\n }\n },\n}))\nexport default TagButton","export const tagButtonVars = {\n\t'--tag-color': 'var(--mui-palette-text-grey-1)',\n\t'--tag-bg': 'var(--mui-palette-background-grey-1)',\n\t'--tag-bg-hover': 'var(--mui-palette-focus-soft-1)',\n} as const\n"],"mappings":"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","names":["default","jsx","default","forwardRef","jsx","forwardRef","default","styled","styled"]}