@mieweb/ui 0.7.3-dev.3 → 0.7.3-dev.30

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 (311) hide show
  1. package/README.md +45 -24
  2. package/agent/README.md +20 -0
  3. package/agent/init-agent.mjs +61 -0
  4. package/agent/mieweb-ui.instructions.md +169 -0
  5. package/dist/ag-grid.cjs +11 -0
  6. package/dist/ag-grid.cjs.map +1 -1
  7. package/dist/ag-grid.d.cts +4 -0
  8. package/dist/ag-grid.d.ts +4 -0
  9. package/dist/ag-grid.js +11 -0
  10. package/dist/ag-grid.js.map +1 -1
  11. package/dist/brands/index.cjs +12 -12
  12. package/dist/brands/index.js +3 -3
  13. package/dist/chunk-3IMM2PM4.js +259 -0
  14. package/dist/chunk-3IMM2PM4.js.map +1 -0
  15. package/dist/chunk-3SHLOF4V.cjs +128 -0
  16. package/dist/chunk-3SHLOF4V.cjs.map +1 -0
  17. package/dist/chunk-3TXOFAXP.cjs +139 -0
  18. package/dist/chunk-3TXOFAXP.cjs.map +1 -0
  19. package/dist/{chunk-ZBI52NP2.cjs → chunk-56QJHQ5C.cjs} +156 -39
  20. package/dist/chunk-56QJHQ5C.cjs.map +1 -0
  21. package/dist/chunk-5JZIDILK.cjs +164 -0
  22. package/dist/chunk-5JZIDILK.cjs.map +1 -0
  23. package/dist/chunk-5MXO6PEV.cjs +78 -0
  24. package/dist/chunk-5MXO6PEV.cjs.map +1 -0
  25. package/dist/chunk-5QZ73PZC.js +62 -0
  26. package/dist/chunk-5QZ73PZC.js.map +1 -0
  27. package/dist/{chunk-MJFF4AXH.cjs → chunk-5YNONC7I.cjs} +319 -3
  28. package/dist/chunk-5YNONC7I.cjs.map +1 -0
  29. package/dist/chunk-6NZXWKUE.js +3 -0
  30. package/dist/chunk-6NZXWKUE.js.map +1 -0
  31. package/dist/{chunk-Z4PECE5S.js → chunk-6XTHO63C.js} +2 -2
  32. package/dist/{chunk-Z4PECE5S.js.map → chunk-6XTHO63C.js.map} +1 -1
  33. package/dist/{chunk-KFLDXJEE.js → chunk-753Z3NXL.js} +46 -15
  34. package/dist/chunk-753Z3NXL.js.map +1 -0
  35. package/dist/{chunk-S3MKIDYG.cjs → chunk-7AECNMYV.cjs} +46 -15
  36. package/dist/chunk-7AECNMYV.cjs.map +1 -0
  37. package/dist/chunk-7IKLGH3Z.cjs +92 -0
  38. package/dist/chunk-7IKLGH3Z.cjs.map +1 -0
  39. package/dist/chunk-7L7OPISJ.cjs +291 -0
  40. package/dist/chunk-7L7OPISJ.cjs.map +1 -0
  41. package/dist/chunk-7RV6CAP6.cjs +106 -0
  42. package/dist/chunk-7RV6CAP6.cjs.map +1 -0
  43. package/dist/{chunk-LC7YHZXM.js → chunk-A5YOIJKL.js} +5 -5
  44. package/dist/{chunk-LC7YHZXM.js.map → chunk-A5YOIJKL.js.map} +1 -1
  45. package/dist/{chunk-RBS3GHDZ.cjs → chunk-BOW7ZGI2.cjs} +4 -4
  46. package/dist/{chunk-RBS3GHDZ.cjs.map → chunk-BOW7ZGI2.cjs.map} +1 -1
  47. package/dist/{chunk-WUNWHOLA.cjs → chunk-BSDBI6H7.cjs} +116 -26
  48. package/dist/chunk-BSDBI6H7.cjs.map +1 -0
  49. package/dist/{chunk-CVZYOMEW.js → chunk-BZEOMAPP.js} +319 -3
  50. package/dist/chunk-BZEOMAPP.js.map +1 -0
  51. package/dist/chunk-CG4ZKJLE.js +84 -0
  52. package/dist/chunk-CG4ZKJLE.js.map +1 -0
  53. package/dist/chunk-ELYGV32O.cjs +230 -0
  54. package/dist/chunk-ELYGV32O.cjs.map +1 -0
  55. package/dist/{chunk-QUUBTNMH.js → chunk-EPSB4WTL.js} +45 -15
  56. package/dist/chunk-EPSB4WTL.js.map +1 -0
  57. package/dist/chunk-F57VRLKP.js +708 -0
  58. package/dist/chunk-F57VRLKP.js.map +1 -0
  59. package/dist/{chunk-5IDYOJHO.cjs → chunk-G7EQ3JPX.cjs} +45 -15
  60. package/dist/chunk-G7EQ3JPX.cjs.map +1 -0
  61. package/dist/{chunk-FKLUSYFP.cjs → chunk-GQVL2JKQ.cjs} +4 -4
  62. package/dist/{chunk-FKLUSYFP.cjs.map → chunk-GQVL2JKQ.cjs.map} +1 -1
  63. package/dist/{chunk-3D4ITDLO.js → chunk-GXODR6V4.js} +3 -3
  64. package/dist/{chunk-3D4ITDLO.js.map → chunk-GXODR6V4.js.map} +1 -1
  65. package/dist/{chunk-AFGADE3B.js → chunk-H3YO5GBM.js} +117 -27
  66. package/dist/chunk-H3YO5GBM.js.map +1 -0
  67. package/dist/chunk-HK3AMH3Q.cjs +151 -0
  68. package/dist/chunk-HK3AMH3Q.cjs.map +1 -0
  69. package/dist/chunk-HQ3XPCHG.js +114 -0
  70. package/dist/chunk-HQ3XPCHG.js.map +1 -0
  71. package/dist/chunk-I44YNYI6.cjs +4 -0
  72. package/dist/chunk-I44YNYI6.cjs.map +1 -0
  73. package/dist/{chunk-EGWWTIWS.js → chunk-IILJGFI5.js} +125 -95
  74. package/dist/chunk-IILJGFI5.js.map +1 -0
  75. package/dist/{chunk-KRGKPUJH.js → chunk-IYXCFIMP.js} +8 -8
  76. package/dist/{chunk-KRGKPUJH.js.map → chunk-IYXCFIMP.js.map} +1 -1
  77. package/dist/{chunk-6J7UGYT5.cjs → chunk-JHGMZX4I.cjs} +47 -7
  78. package/dist/chunk-JHGMZX4I.cjs.map +1 -0
  79. package/dist/chunk-JHZW3Y62.js +142 -0
  80. package/dist/chunk-JHZW3Y62.js.map +1 -0
  81. package/dist/{chunk-JDHIBJ5K.cjs → chunk-JWTCEWQ4.cjs} +2 -2
  82. package/dist/{chunk-JDHIBJ5K.cjs.map → chunk-JWTCEWQ4.cjs.map} +1 -1
  83. package/dist/{chunk-URHXR5SC.cjs → chunk-KVE7PQ5P.cjs} +7 -7
  84. package/dist/{chunk-URHXR5SC.cjs.map → chunk-KVE7PQ5P.cjs.map} +1 -1
  85. package/dist/chunk-L6MDULYB.js +87 -0
  86. package/dist/chunk-L6MDULYB.js.map +1 -0
  87. package/dist/{chunk-SYIFEJSF.cjs → chunk-LQHI44OZ.cjs} +13 -13
  88. package/dist/{chunk-SYIFEJSF.cjs.map → chunk-LQHI44OZ.cjs.map} +1 -1
  89. package/dist/{chunk-HIDV32ZX.js → chunk-LZU7YBXG.js} +3 -3
  90. package/dist/{chunk-HIDV32ZX.js.map → chunk-LZU7YBXG.js.map} +1 -1
  91. package/dist/chunk-N5O47VGS.cjs +109 -0
  92. package/dist/chunk-N5O47VGS.cjs.map +1 -0
  93. package/dist/chunk-NGSDBWKA.cjs +84 -0
  94. package/dist/chunk-NGSDBWKA.cjs.map +1 -0
  95. package/dist/chunk-NMBYU7D7.cjs +31 -0
  96. package/dist/chunk-NMBYU7D7.cjs.map +1 -0
  97. package/dist/{chunk-P6L74SKG.js → chunk-QGZC43L7.js} +47 -7
  98. package/dist/chunk-QGZC43L7.js.map +1 -0
  99. package/dist/{chunk-FTRGZOVJ.js → chunk-QHTDWIED.js} +3 -3
  100. package/dist/{chunk-FTRGZOVJ.js.map → chunk-QHTDWIED.js.map} +1 -1
  101. package/dist/chunk-RUGHNFQG.js +28 -0
  102. package/dist/chunk-RUGHNFQG.js.map +1 -0
  103. package/dist/{chunk-NQ2D2V6O.cjs → chunk-SK7H3Z67.cjs} +37 -37
  104. package/dist/{chunk-NQ2D2V6O.cjs.map → chunk-SK7H3Z67.cjs.map} +1 -1
  105. package/dist/{chunk-MO65V64I.js → chunk-TXRQQMG5.js} +2 -2
  106. package/dist/{chunk-MO65V64I.js.map → chunk-TXRQQMG5.js.map} +1 -1
  107. package/dist/{chunk-OAHORW4N.cjs → chunk-U5TTXN45.cjs} +127 -97
  108. package/dist/chunk-U5TTXN45.cjs.map +1 -0
  109. package/dist/chunk-WBGUYSWY.js +90 -0
  110. package/dist/chunk-WBGUYSWY.js.map +1 -0
  111. package/dist/{chunk-LJBWCUKP.cjs → chunk-WKCNNYHN.cjs} +2 -2
  112. package/dist/{chunk-LJBWCUKP.cjs.map → chunk-WKCNNYHN.cjs.map} +1 -1
  113. package/dist/chunk-WKSUL2ZN.js +56 -0
  114. package/dist/chunk-WKSUL2ZN.js.map +1 -0
  115. package/dist/chunk-X5ZPYYMS.js +105 -0
  116. package/dist/chunk-X5ZPYYMS.js.map +1 -0
  117. package/dist/{chunk-DLBV42JD.js → chunk-XBKOZRDO.js} +156 -39
  118. package/dist/chunk-XBKOZRDO.js.map +1 -0
  119. package/dist/{chunk-XB54G7WS.cjs → chunk-XJTFZLWH.cjs} +2 -86
  120. package/dist/chunk-XJTFZLWH.cjs.map +1 -0
  121. package/dist/chunk-XMECP2MD.js +208 -0
  122. package/dist/chunk-XMECP2MD.js.map +1 -0
  123. package/dist/{chunk-GTHNWP4P.js → chunk-XUVEF2RQ.js} +4 -87
  124. package/dist/chunk-XUVEF2RQ.js.map +1 -0
  125. package/dist/chunk-XWYKLEKG.js +269 -0
  126. package/dist/chunk-XWYKLEKG.js.map +1 -0
  127. package/dist/chunk-Y6YSJPVC.js +129 -0
  128. package/dist/chunk-Y6YSJPVC.js.map +1 -0
  129. package/dist/chunk-YVIH26FG.cjs +736 -0
  130. package/dist/chunk-YVIH26FG.cjs.map +1 -0
  131. package/dist/chunk-Z5S5JEJD.cjs +286 -0
  132. package/dist/chunk-Z5S5JEJD.cjs.map +1 -0
  133. package/dist/{collabKit-QZL4P5T5.js → collabKit-A643VH2I.js} +7 -3
  134. package/dist/collabKit-A643VH2I.js.map +1 -0
  135. package/dist/{collabKit-UF7E6V3N.cjs → collabKit-Q4A36LDA.cjs} +7 -3
  136. package/dist/collabKit-Q4A36LDA.cjs.map +1 -0
  137. package/dist/components/Accordion/index.cjs +13 -0
  138. package/dist/components/Accordion/index.cjs.map +1 -0
  139. package/dist/components/Accordion/index.d.cts +50 -0
  140. package/dist/components/Accordion/index.d.ts +50 -0
  141. package/dist/components/Accordion/index.js +4 -0
  142. package/dist/components/Accordion/index.js.map +1 -0
  143. package/dist/components/Alert/index.d.cts +1 -1
  144. package/dist/components/Alert/index.d.ts +1 -1
  145. package/dist/components/Autocomplete/index.cjs +4 -3
  146. package/dist/components/Autocomplete/index.d.cts +20 -3
  147. package/dist/components/Autocomplete/index.d.ts +20 -3
  148. package/dist/components/Autocomplete/index.js +3 -2
  149. package/dist/components/Badge/index.d.cts +1 -1
  150. package/dist/components/Badge/index.d.ts +1 -1
  151. package/dist/components/Card/index.d.cts +1 -1
  152. package/dist/components/Card/index.d.ts +1 -1
  153. package/dist/components/Checkbox/index.cjs +5 -4
  154. package/dist/components/Checkbox/index.d.cts +9 -1
  155. package/dist/components/Checkbox/index.d.ts +9 -1
  156. package/dist/components/Checkbox/index.js +2 -1
  157. package/dist/components/ClampedText/index.cjs +13 -0
  158. package/dist/components/ClampedText/index.cjs.map +1 -0
  159. package/dist/components/ClampedText/index.d.cts +33 -0
  160. package/dist/components/ClampedText/index.d.ts +33 -0
  161. package/dist/components/ClampedText/index.js +4 -0
  162. package/dist/components/ClampedText/index.js.map +1 -0
  163. package/dist/components/CopyButton/index.cjs +13 -0
  164. package/dist/components/CopyButton/index.cjs.map +1 -0
  165. package/dist/components/CopyButton/index.d.cts +29 -0
  166. package/dist/components/CopyButton/index.d.ts +29 -0
  167. package/dist/components/CopyButton/index.js +4 -0
  168. package/dist/components/CopyButton/index.js.map +1 -0
  169. package/dist/components/CustomizableDashboard/index.cjs +43 -0
  170. package/dist/components/CustomizableDashboard/index.cjs.map +1 -0
  171. package/dist/components/CustomizableDashboard/index.d.cts +195 -0
  172. package/dist/components/CustomizableDashboard/index.d.ts +195 -0
  173. package/dist/components/CustomizableDashboard/index.js +10 -0
  174. package/dist/components/CustomizableDashboard/index.js.map +1 -0
  175. package/dist/components/DateInput/index.cjs +4 -3
  176. package/dist/components/DateInput/index.d.cts +1 -0
  177. package/dist/components/DateInput/index.d.ts +1 -0
  178. package/dist/components/DateInput/index.js +3 -2
  179. package/dist/components/Dropdown/index.cjs +9 -8
  180. package/dist/components/Dropdown/index.js +3 -2
  181. package/dist/components/FreshnessBadge/index.cjs +25 -0
  182. package/dist/components/FreshnessBadge/index.cjs.map +1 -0
  183. package/dist/components/FreshnessBadge/index.d.cts +49 -0
  184. package/dist/components/FreshnessBadge/index.d.ts +49 -0
  185. package/dist/components/FreshnessBadge/index.js +4 -0
  186. package/dist/components/FreshnessBadge/index.js.map +1 -0
  187. package/dist/components/GlossaryTooltip/index.cjs +15 -0
  188. package/dist/components/GlossaryTooltip/index.cjs.map +1 -0
  189. package/dist/components/GlossaryTooltip/index.d.cts +64 -0
  190. package/dist/components/GlossaryTooltip/index.d.ts +64 -0
  191. package/dist/components/GlossaryTooltip/index.js +6 -0
  192. package/dist/components/GlossaryTooltip/index.js.map +1 -0
  193. package/dist/components/Input/index.cjs +20 -3
  194. package/dist/components/Input/index.d.cts +37 -2
  195. package/dist/components/Input/index.d.ts +37 -2
  196. package/dist/components/Input/index.js +2 -1
  197. package/dist/components/KeyboardShortcutsOverlay/index.cjs +21 -0
  198. package/dist/components/KeyboardShortcutsOverlay/index.cjs.map +1 -0
  199. package/dist/components/KeyboardShortcutsOverlay/index.d.cts +54 -0
  200. package/dist/components/KeyboardShortcutsOverlay/index.d.ts +54 -0
  201. package/dist/components/KeyboardShortcutsOverlay/index.js +8 -0
  202. package/dist/components/KeyboardShortcutsOverlay/index.js.map +1 -0
  203. package/dist/components/Markdown/index.cjs +15 -15
  204. package/dist/components/Markdown/index.js +3 -3
  205. package/dist/components/MediaEditor/index.cjs +10 -9
  206. package/dist/components/MediaEditor/index.js +5 -4
  207. package/dist/components/PhoneInput/index.cjs +5 -4
  208. package/dist/components/PhoneInput/index.js +3 -2
  209. package/dist/components/Progress/index.d.cts +1 -1
  210. package/dist/components/Progress/index.d.ts +1 -1
  211. package/dist/components/Radio/index.cjs +5 -4
  212. package/dist/components/Radio/index.d.cts +9 -1
  213. package/dist/components/Radio/index.d.ts +9 -1
  214. package/dist/components/Radio/index.js +2 -1
  215. package/dist/components/ReadingProgressBar/index.cjs +13 -0
  216. package/dist/components/ReadingProgressBar/index.cjs.map +1 -0
  217. package/dist/components/ReadingProgressBar/index.d.cts +20 -0
  218. package/dist/components/ReadingProgressBar/index.d.ts +20 -0
  219. package/dist/components/ReadingProgressBar/index.js +4 -0
  220. package/dist/components/ReadingProgressBar/index.js.map +1 -0
  221. package/dist/components/RichTextEditor/index.cjs +7 -6
  222. package/dist/components/RichTextEditor/index.js +4 -3
  223. package/dist/components/SectionSpyNav/index.cjs +15 -0
  224. package/dist/components/SectionSpyNav/index.cjs.map +1 -0
  225. package/dist/components/SectionSpyNav/index.d.cts +63 -0
  226. package/dist/components/SectionSpyNav/index.d.ts +63 -0
  227. package/dist/components/SectionSpyNav/index.js +6 -0
  228. package/dist/components/SectionSpyNav/index.js.map +1 -0
  229. package/dist/components/Select/index.cjs +5 -3
  230. package/dist/components/Select/index.d.cts +56 -9
  231. package/dist/components/Select/index.d.ts +56 -9
  232. package/dist/components/Select/index.js +3 -1
  233. package/dist/components/Slider/index.d.cts +2 -2
  234. package/dist/components/Slider/index.d.ts +2 -2
  235. package/dist/components/SourceTip/index.cjs +15 -0
  236. package/dist/components/SourceTip/index.cjs.map +1 -0
  237. package/dist/components/SourceTip/index.d.cts +58 -0
  238. package/dist/components/SourceTip/index.d.ts +58 -0
  239. package/dist/components/SourceTip/index.js +6 -0
  240. package/dist/components/SourceTip/index.js.map +1 -0
  241. package/dist/components/Sparkline/index.cjs +13 -0
  242. package/dist/components/Sparkline/index.cjs.map +1 -0
  243. package/dist/components/Sparkline/index.d.cts +53 -0
  244. package/dist/components/Sparkline/index.d.ts +53 -0
  245. package/dist/components/Sparkline/index.js +4 -0
  246. package/dist/components/Sparkline/index.js.map +1 -0
  247. package/dist/components/Spinner/index.d.cts +1 -1
  248. package/dist/components/Spinner/index.d.ts +1 -1
  249. package/dist/components/SuperChat/index.cjs +8 -7
  250. package/dist/components/SuperChat/index.cjs.map +1 -1
  251. package/dist/components/SuperChat/index.js +4 -3
  252. package/dist/components/SuperChat/index.js.map +1 -1
  253. package/dist/components/SuperChat/plugins/index.cjs +2 -22
  254. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  255. package/dist/components/SuperChat/plugins/index.js +1 -21
  256. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  257. package/dist/components/Text/index.d.cts +1 -1
  258. package/dist/components/Text/index.d.ts +1 -1
  259. package/dist/components/Textarea/index.cjs +5 -3
  260. package/dist/components/Textarea/index.d.cts +19 -1
  261. package/dist/components/Textarea/index.d.ts +19 -1
  262. package/dist/components/Textarea/index.js +3 -1
  263. package/dist/datavis.cjs +1 -1
  264. package/dist/datavis.js +1 -1
  265. package/dist/esheet.cjs +11 -10
  266. package/dist/esheet.cjs.map +1 -1
  267. package/dist/esheet.js +8 -7
  268. package/dist/esheet.js.map +1 -1
  269. package/dist/hooks/index.cjs +27 -17
  270. package/dist/hooks/index.d.cts +16 -1
  271. package/dist/hooks/index.d.ts +16 -1
  272. package/dist/hooks/index.js +3 -1
  273. package/dist/index.cjs +875 -505
  274. package/dist/index.cjs.map +1 -1
  275. package/dist/index.d.cts +82 -10
  276. package/dist/index.d.ts +82 -10
  277. package/dist/index.js +309 -47
  278. package/dist/index.js.map +1 -1
  279. package/dist/kerebron.cjs +200 -68
  280. package/dist/kerebron.cjs.map +1 -1
  281. package/dist/kerebron.css +129 -0
  282. package/dist/kerebron.d.cts +52 -3
  283. package/dist/kerebron.d.ts +52 -3
  284. package/dist/kerebron.js +201 -69
  285. package/dist/kerebron.js.map +1 -1
  286. package/dist/styles.css +1 -1
  287. package/dist/tailwind-preset.cjs +4 -4
  288. package/dist/tailwind-preset.js +1 -1
  289. package/package.json +11 -4
  290. package/dist/chunk-5IDYOJHO.cjs.map +0 -1
  291. package/dist/chunk-6ECKH4DJ.cjs +0 -147
  292. package/dist/chunk-6ECKH4DJ.cjs.map +0 -1
  293. package/dist/chunk-6J7UGYT5.cjs.map +0 -1
  294. package/dist/chunk-AFGADE3B.js.map +0 -1
  295. package/dist/chunk-CVZYOMEW.js.map +0 -1
  296. package/dist/chunk-DLBV42JD.js.map +0 -1
  297. package/dist/chunk-EGWWTIWS.js.map +0 -1
  298. package/dist/chunk-GTHNWP4P.js.map +0 -1
  299. package/dist/chunk-KFLDXJEE.js.map +0 -1
  300. package/dist/chunk-MJFF4AXH.cjs.map +0 -1
  301. package/dist/chunk-OAHORW4N.cjs.map +0 -1
  302. package/dist/chunk-P6L74SKG.js.map +0 -1
  303. package/dist/chunk-QUUBTNMH.js.map +0 -1
  304. package/dist/chunk-S3MKIDYG.cjs.map +0 -1
  305. package/dist/chunk-WUNWHOLA.cjs.map +0 -1
  306. package/dist/chunk-XB54G7WS.cjs.map +0 -1
  307. package/dist/chunk-YXCE2HSK.js +0 -124
  308. package/dist/chunk-YXCE2HSK.js.map +0 -1
  309. package/dist/chunk-ZBI52NP2.cjs.map +0 -1
  310. package/dist/collabKit-QZL4P5T5.js.map +0 -1
  311. package/dist/collabKit-UF7E6V3N.cjs.map +0 -1
@@ -559,7 +559,318 @@ var miewebUISafelist = [
559
559
  "dark:bg-primary-900/20",
560
560
  "dark:border-primary-800",
561
561
  "dark:text-primary-300",
562
- "opacity-60"
562
+ "opacity-60",
563
+ // Kbd / KeyboardShortcutsOverlay — key chips and shortcut rows
564
+ "px-1.5",
565
+ "font-mono",
566
+ "mx-0.5",
567
+ "list-none",
568
+ // Sparkline — bar sizing, gaps, and hover tints (bg-primary-500/40 and
569
+ // focus-visible:ring-offset-1 are already safelisted above)
570
+ "min-w-[3px]",
571
+ "gap-[2px]",
572
+ "hover:bg-primary-500/70",
573
+ "hover:bg-primary-500/90",
574
+ "hover:bg-muted-foreground/20",
575
+ "items-end",
576
+ "w-16",
577
+ "pb-0.5",
578
+ "leading-tight",
579
+ "tracking-wider",
580
+ "rounded-sm",
581
+ "cursor-pointer",
582
+ // ClampedText — collapsed clamp levels and fade gradient
583
+ "line-clamp-2",
584
+ "line-clamp-3",
585
+ "line-clamp-4",
586
+ "line-clamp-5",
587
+ "line-clamp-6",
588
+ "line-clamp-7",
589
+ "line-clamp-8",
590
+ "bg-gradient-to-t",
591
+ "from-card",
592
+ "from-background",
593
+ "to-transparent",
594
+ "break-words",
595
+ "whitespace-pre-wrap",
596
+ "hover:underline",
597
+ // FreshnessBadge / FreshnessDot — tinted level chips and dots
598
+ "dark:bg-success/20",
599
+ "bg-warning/15",
600
+ "dark:bg-warning/20",
601
+ "dark:text-warning",
602
+ "dark:bg-destructive/20",
603
+ "bg-muted-foreground/50",
604
+ "h-2",
605
+ "w-2",
606
+ "inline-block",
607
+ "dark:text-success",
608
+ "dark:text-destructive",
609
+ // Accordion — grid-rows height animation (arbitrary values TW3 won't scan)
610
+ "transition-[grid-template-rows]",
611
+ "grid-rows-[0fr]",
612
+ "grid-rows-[1fr]",
613
+ "disabled:opacity-50",
614
+ "disabled:pointer-events-none",
615
+ "divide-y",
616
+ "first:rounded-t-lg",
617
+ "focus-visible:outline-none",
618
+ "focus-visible:ring-inset",
619
+ "gap-3",
620
+ "grid",
621
+ "hover:bg-muted/60",
622
+ "last:rounded-b-lg",
623
+ "pb-4",
624
+ "px-5",
625
+ "py-4",
626
+ "rotate-180",
627
+ "transition-transform",
628
+ // GlossaryTooltip hover card — trigger reset, gradient header, chips, footer links
629
+ "[font:inherit]",
630
+ "appearance-none",
631
+ "bg-transparent",
632
+ "bg-white/15",
633
+ "block",
634
+ "border-0",
635
+ "border-t",
636
+ "dark:hover:text-primary-400",
637
+ "font-bold",
638
+ "font-medium",
639
+ "font-normal",
640
+ "gap-1.5",
641
+ "h-3",
642
+ "hover:border-primary-400",
643
+ "hover:text-primary-700",
644
+ "hover:text-primary-800",
645
+ "inline",
646
+ "inline-flex",
647
+ "items-start",
648
+ "leading-relaxed",
649
+ "leading-snug",
650
+ "mb-1",
651
+ "mt-2",
652
+ "normal-case",
653
+ "outline-none",
654
+ "p-0",
655
+ "px-2",
656
+ "text-inherit",
657
+ "text-white/70",
658
+ "tracking-normal",
659
+ "w-3",
660
+ "z-50",
661
+ // SourceTip hover card — trigger affordance, gradient header, ring, scroll cap
662
+ "cursor-help",
663
+ "hover:text-primary-500",
664
+ "dark:hover:text-primary-300",
665
+ "w-80",
666
+ "decoration-dashed",
667
+ "decoration-primary-400/70",
668
+ "bg-primary-400",
669
+ "underline-offset-4",
670
+ "bg-gradient-to-br",
671
+ "from-primary-700",
672
+ "to-primary-600",
673
+ "ring-black/5",
674
+ "dark:ring-white/10",
675
+ "ring-1",
676
+ "overflow-y-auto",
677
+ "focus-visible:ring-2",
678
+ "max-h-52",
679
+ "text-primary-100/90",
680
+ "text-[10px]",
681
+ "text-[11px]",
682
+ "text-[13px]",
683
+ "px-3.5",
684
+ "py-2.5",
685
+ "mt-2.5",
686
+ "pt-2.5",
687
+ "mt-0.5",
688
+ "mt-1.5",
689
+ "h-1.5",
690
+ "w-1.5",
691
+ "border-dashed",
692
+ "shadow-xl",
693
+ // CopyButton — inline copy-to-clipboard button
694
+ "p-1",
695
+ // ReadingProgressBar — fixed top rail and width-transition fill
696
+ "inset-x-0",
697
+ "h-1",
698
+ "transition-[width]",
699
+ "duration-150",
700
+ // SectionSpyNav — sticky rail, brand tone whites, sliding underline
701
+ "sticky",
702
+ "top-0",
703
+ "z-30",
704
+ "bg-primary-900",
705
+ "bg-card/95",
706
+ "backdrop-blur",
707
+ "gap-4",
708
+ "px-4",
709
+ "shrink-0",
710
+ "tracking-wide",
711
+ "uppercase",
712
+ "text-white/85",
713
+ "[scrollbar-width:none]",
714
+ "[&::-webkit-scrollbar]:hidden",
715
+ "rounded",
716
+ "py-2",
717
+ "whitespace-nowrap",
718
+ "hover:text-white",
719
+ "h-0.5",
720
+ "transition-[left,width]",
721
+ "duration-300",
722
+ "hover:bg-white/10",
723
+ "h-3.5",
724
+ "w-3.5",
725
+ // CustomizableDashboard — responsive column grid, flattened columns,
726
+ // drag handle, drop placeholder
727
+ "grid-cols-1",
728
+ "md:grid-cols-2",
729
+ "lg:grid-cols-3",
730
+ "max-lg:contents",
731
+ "max-md:hidden",
732
+ "min-h-16",
733
+ "min-h-32",
734
+ "cursor-grab",
735
+ "active:cursor-grabbing",
736
+ "touch-none",
737
+ "opacity-40",
738
+ "group-hover/portlet:opacity-100",
739
+ "focus-visible:opacity-100",
740
+ "[@media(hover:none)]:opacity-100",
741
+ "group/portlet",
742
+ "[&>:nth-child(2)]:ms-auto",
743
+ "flex-nowrap",
744
+ "bg-card/80",
745
+ "border-dashed",
746
+ "border-2",
747
+ "bg-primary-500/10",
748
+ "gap-0.5",
749
+ "p-0.5",
750
+ // Floating labels (labelVariant="floating" on Input / Textarea / DateInput /
751
+ // Select, ui#406). The peer-* float states, arbitrary font size, and the
752
+ // taller field heights/paddings never appear in consumer markup, so TW3
753
+ // would purge them. (The bare `peer` marker class generates no CSS and
754
+ // needs no safelisting.)
755
+ "placeholder:text-transparent",
756
+ "relative",
757
+ "h-11",
758
+ "h-14",
759
+ "h-16",
760
+ "pt-4",
761
+ "pt-5",
762
+ "pt-6",
763
+ "pt-7",
764
+ "pb-1",
765
+ "pb-1.5",
766
+ "pb-2",
767
+ "min-h-[76px]",
768
+ "min-h-[96px]",
769
+ "min-h-[120px]",
770
+ // Floating-group field boxes (labelVariant="floating" on RadioGroup /
771
+ // CheckboxGroup) share the floating input heights as min-heights. sr-only
772
+ // visually hides the group legend (and the hideLabel input label) while
773
+ // keeping it accessible. mb-1.5 spaces stacked legends (legends ignore
774
+ // fieldset flex gap) and mt-1 spaces floating-group descriptions.
775
+ "min-h-11",
776
+ "min-h-14",
777
+ "min-h-16",
778
+ "sr-only",
779
+ "mb-1.5",
780
+ "mt-1",
781
+ "absolute",
782
+ "pointer-events-none",
783
+ "select-none",
784
+ "transition-all",
785
+ "duration-200",
786
+ "ease-out",
787
+ "top-0.5",
788
+ "top-1",
789
+ "top-1.5",
790
+ "top-2",
791
+ "top-3",
792
+ "top-4",
793
+ "top-5",
794
+ "top-1/2",
795
+ "-translate-y-1/2",
796
+ "translate-y-0",
797
+ "text-sm",
798
+ "text-base",
799
+ "text-lg",
800
+ "text-[0.65rem]",
801
+ "peer-focus:top-0.5",
802
+ "peer-focus:top-1",
803
+ "peer-focus:top-1.5",
804
+ "peer-focus:top-2",
805
+ "peer-focus:text-[0.65rem]",
806
+ "peer-focus:text-xs",
807
+ "peer-focus:text-sm",
808
+ "peer-focus:translate-y-0",
809
+ "peer-[:not(:placeholder-shown)]:top-0.5",
810
+ "peer-[:not(:placeholder-shown)]:top-1",
811
+ "peer-[:not(:placeholder-shown)]:top-1.5",
812
+ "peer-[:not(:placeholder-shown)]:top-2",
813
+ "peer-[:not(:placeholder-shown)]:text-[0.65rem]",
814
+ "peer-[:not(:placeholder-shown)]:text-xs",
815
+ "peer-[:not(:placeholder-shown)]:text-sm",
816
+ "peer-[:not(:placeholder-shown)]:translate-y-0",
817
+ "peer-autofill:top-0.5",
818
+ "peer-autofill:top-1",
819
+ "peer-autofill:top-1.5",
820
+ "peer-autofill:top-2",
821
+ "peer-autofill:text-[0.65rem]",
822
+ "peer-autofill:text-xs",
823
+ "peer-autofill:text-sm",
824
+ "peer-autofill:translate-y-0",
825
+ // DockablePanel — full-screen dialog that collapses to a bottom-right dock:
826
+ // scrim, dock geometry, panel chrome, clipped full-width content
827
+ "fixed",
828
+ "inset-0",
829
+ "inset-6",
830
+ "inset-auto",
831
+ "bg-slate-900/45",
832
+ "end-0",
833
+ "end-6",
834
+ "bottom-0",
835
+ "top-full",
836
+ "w-full",
837
+ "h-full",
838
+ "w-[26rem]",
839
+ "max-w-[calc(100vw-3rem)]",
840
+ "max-w-[90rem]",
841
+ "w-[min(90rem,100vw-3rem)]",
842
+ "h-[calc(100vh-4rem)]",
843
+ "max-sm:inset-0",
844
+ "max-sm:inset-x-0",
845
+ "max-sm:w-full",
846
+ "max-sm:w-screen",
847
+ "max-sm:max-w-full",
848
+ "shadow-[0_1.25rem_2.5rem_rgb(15_23_42/0.22)]",
849
+ "rounded-lg",
850
+ "rounded-t-lg",
851
+ "border",
852
+ "border-b",
853
+ "border-b-0",
854
+ "flex",
855
+ "flex-1",
856
+ "flex-col",
857
+ "relative",
858
+ "absolute",
859
+ "items-center",
860
+ "justify-center",
861
+ "justify-between",
862
+ "gap-1",
863
+ "gap-2",
864
+ "px-3",
865
+ "py-2.5",
866
+ "m-0",
867
+ "min-h-0",
868
+ "min-w-0",
869
+ "text-sm",
870
+ "text-[0.9375rem]",
871
+ "font-semibold",
872
+ "capitalize",
873
+ "sr-only"
563
874
  ];
564
875
  var miewebUIPreset = {
565
876
  darkMode: ["class", '[data-theme="dark"]'],
@@ -774,6 +1085,11 @@ var miewebUIPreset = {
774
1085
  "slide-in-left": "slide-in-left 300ms ease-out",
775
1086
  "scale-in": "scale-in 150ms ease-out",
776
1087
  "ozwell-message-flare": "ozwell-message-flare 1.8s ease-out"
1088
+ },
1089
+ // ClampedText supports 7/8-line clamps beyond Tailwind 3's core 1–6 scale
1090
+ lineClamp: {
1091
+ 7: "7",
1092
+ 8: "8"
777
1093
  }
778
1094
  }
779
1095
  }
@@ -781,5 +1097,5 @@ var miewebUIPreset = {
781
1097
  var tailwind_preset_default = miewebUIPreset;
782
1098
 
783
1099
  export { miewebUIPreset, miewebUISafelist, tailwind_preset_default };
784
- //# sourceMappingURL=chunk-CVZYOMEW.js.map
785
- //# sourceMappingURL=chunk-CVZYOMEW.js.map
1100
+ //# sourceMappingURL=chunk-BZEOMAPP.js.map
1101
+ //# sourceMappingURL=chunk-BZEOMAPP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tailwind-preset.ts"],"names":[],"mappings":"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","file":"chunk-BZEOMAPP.js","sourcesContent":["/**\n * @mieweb/ui Tailwind CSS Preset\n *\n * This preset provides the default theme configuration for @mieweb/ui components.\n * Consumers can extend or override these values in their own tailwind.config.js\n *\n * Usage:\n * ```js\n * // tailwind.config.js\n * module.exports = {\n * presets: [require('@mieweb/ui/tailwind-preset')],\n * theme: {\n * extend: {\n * colors: {\n * primary: {\n * 500: '#your-brand-color',\n * },\n * },\n * },\n * },\n * };\n * ```\n */\n\n/**\n * Safelist of classes used by @mieweb/ui components.\n *\n * **Tailwind CSS 3**: These must be safelisted because Tailwind may not detect\n * them when components are imported from node_modules.\n *\n * **Tailwind CSS 4**: The safelist is NOT needed if you add the `@source`\n * directive to your CSS. Add this line to your main CSS file:\n *\n * @source \"../node_modules/@mieweb/ui/dist\";\n *\n * This tells Tailwind 4 to scan @mieweb/ui's dist folder for class names,\n * replacing the need for a manual safelist.\n *\n * @deprecated For Tailwind CSS 4 users — use the `@source` directive instead.\n */\nexport const miewebUISafelist = [\n // CaseManagementHeader — logical spacing, details grid, responsive\n // built-in actions (icon-only below md):\n '-ms-2',\n 'gap-x-10',\n 'hidden',\n 'max-w-[60%]',\n 'md:hidden',\n 'md:inline-flex',\n // PatientHeader showCountBadges={false} — hides CountBadge roots in the\n // actions slot (ui#367):\n '[&_[data-slot=count-badge-root]]:hidden',\n // OzwellChat's compact widget shell and portaled menus. These arbitrary\n // utilities must remain available to Tailwind 3 consumers that do not scan\n // package source files.\n 'max-w-[min(142px,38vw)]',\n 'max-w-[190px]',\n 'max-w-[min(248px,calc(100vw-24px))]',\n 'max-w-[min(260px,calc(100vw-24px))]',\n 'rounded-[10px]',\n 'min-h-[30px]',\n 'animate-ozwell-message-flare',\n 'grid-cols-[22px_minmax(0,1fr)]',\n 'h-[22px]',\n 'w-[22px]',\n 'text-[11px]',\n 'leading-[1.35]',\n 'py-[7px]',\n '[&_[data-slot=\"composer-input\"]]:pe-[min(160px,44vw)]',\n '[&_[data-slot=\"ai-chat\"]]:min-h-0',\n '[&_[data-slot=\"ai-chat-messages\"]]:min-h-0',\n '[&_[data-slot=\"ai-tool-call\"]]:p-2',\n '[&_[data-slot=\"ai-tool-icon\"]]:h-7',\n '[&_[data-slot=\"ai-tool-icon\"]]:w-7',\n '[&_[data-slot=\"ai-tool-content\"]]:text-sm',\n '[&_[data-slot=\"ai-tool-parameters\"]]:text-xs',\n '[&_[data-slot=\"ai-tool-result\"]]:text-xs',\n '[&_[data-slot=\"ai-message-thinking\"]_button]:px-2.5',\n '[&_[data-slot=\"ai-message-thinking\"]_button]:py-[7px]',\n '[&_[data-slot=\"ai-message\"].flex-row-reverse_[data-slot=\"ai-message-avatar\"]]:hidden',\n '[&_[data-slot=toast-message]]:text-xs',\n '[&_[data-slot=toast-message]]:leading-[1.35]',\n '[&_[data-slot=toast]]:max-w-none',\n '[&_[data-slot=toast]]:min-w-0',\n '[&_[data-slot=toast]]:rounded-lg',\n '[&_[data-slot=toast]]:p-2',\n '[&_[data-slot=toast]]:shadow-none',\n // Media stack (MediaEditor / TranscriptView / MediaPlayer) — opacity-modifier\n // and state variants introduced with the media components (ui#323 finding):\n 'bg-muted/20',\n 'bg-primary-50',\n 'bg-primary-500/20',\n 'bg-primary-500/40',\n 'bg-success/15',\n 'bg-warning/20',\n 'bg-warning/40',\n 'border-l-warning',\n 'border-primary-600',\n 'border-warning/50',\n 'dark:bg-primary-950',\n 'hover:bg-destructive/20',\n 'hover:bg-muted',\n 'hover:bg-muted/70',\n 'hover:bg-primary-500/15',\n 'hover:bg-primary-500/30',\n 'hover:bg-success/25',\n 'hover:text-destructive',\n // MediaEditor media-surface height cap: the small-screen `dvh` cap, and the\n // md variants that hand desktop back its original percentage cap. Purging\n // these uncaps the player on a phone, which is the bug the cap exists for.\n 'max-h-[55dvh]',\n 'md:max-h-[50%]',\n 'md:max-h-none',\n 'outline-destructive',\n 'outline-primary-500',\n 'outline-warning',\n 'text-primary-500',\n // Semantic colors\n 'border-border',\n 'border-input',\n 'ring-ring',\n 'bg-background',\n 'bg-card',\n 'bg-muted',\n 'bg-primary',\n 'bg-primary-800',\n 'dark:bg-primary-500',\n 'checked:border-primary-500',\n 'dark:checked:border-primary-800',\n 'bg-success',\n 'bg-warning',\n 'bg-destructive',\n 'bg-info',\n // Ozwell brand accent (Hey Ozwell voice components)\n 'bg-ozwell',\n 'hover:bg-ozwell',\n 'active:bg-ozwell',\n 'text-ozwell',\n 'text-ozwell-foreground',\n 'border-ozwell',\n 'focus-visible:ring-ozwell',\n 'text-foreground',\n 'text-card-foreground',\n 'text-muted-foreground',\n 'text-primary',\n 'text-primary-foreground',\n 'text-success',\n 'text-success-foreground',\n 'text-warning',\n 'text-warning-foreground',\n 'text-destructive',\n 'text-destructive-foreground',\n 'text-info',\n 'text-info-foreground',\n 'focus:ring-ring',\n 'focus:ring-primary',\n 'focus:border-transparent',\n 'focus:ring-destructive',\n 'border-primary',\n 'border-destructive',\n 'border-success',\n 'focus:ring-success/20',\n 'focus:ring-destructive/20',\n 'opacity-0',\n // Drag & drop (useDragReorder / dragIndicatorClasses)\n 'opacity-40',\n 'cursor-grab',\n 'active:cursor-grabbing',\n 'shadow-[inset_0_2px_0_0_var(--color-primary-500,#3b82f6)]',\n 'shadow-[inset_0_-2px_0_0_var(--color-primary-500,#3b82f6)]',\n 'group-hover:opacity-100',\n 'focus:opacity-100',\n 'has-[[data-slot=superchat-nitro-table]]:w-full',\n 'has-[[data-slot=superchat-nitro-table]]:max-w-full',\n // RowActionToolbar (per-row action toolbars) reveal/overlay. These use the\n // built-in `pointer-fine` variant, named `group/order` scope, and the\n // `.wcdv-tr` (datavis grid row) arbitrary variant — none of which TW3\n // consumers scan from node_modules, so the toolbar would stay hidden\n // without safelisting them.\n 'pointer-fine:absolute',\n 'pointer-fine:top-1/2',\n 'pointer-fine:right-0',\n 'pointer-fine:-translate-y-1/2',\n 'pointer-fine:top-1.5',\n 'pointer-fine:right-1.5',\n 'pointer-fine:bg-card',\n 'pointer-fine:border-border',\n 'pointer-fine:rounded-md',\n 'pointer-fine:border',\n 'pointer-fine:p-0.5',\n 'pointer-fine:shadow-sm',\n 'pointer-fine:pointer-events-none',\n 'pointer-fine:opacity-0',\n 'rounded-md',\n 'border',\n 'p-0.5',\n 'shadow-sm',\n 'focus-within:pointer-events-auto',\n 'focus-within:opacity-100',\n 'group-hover:pointer-events-auto',\n 'group-focus-within:pointer-events-auto',\n 'group-focus-within:opacity-100',\n 'group-focus:pointer-events-auto',\n 'group-focus:opacity-100',\n 'group-hover/order:pointer-events-auto',\n 'group-hover/order:opacity-100',\n 'group-focus-within/order:pointer-events-auto',\n 'group-focus-within/order:opacity-100',\n 'group-focus/order:pointer-events-auto',\n 'group-focus/order:opacity-100',\n '[.wcdv-tr:hover_&]:pointer-events-auto',\n '[.wcdv-tr:hover_&]:opacity-100',\n '[.wcdv-tr:focus-within_&]:pointer-events-auto',\n '[.wcdv-tr:focus-within_&]:opacity-100',\n // Markdown SurveyBlock\n 'accent-primary-500',\n // Opacity-modifier variants for semantic colors used by components\n 'bg-background/60',\n 'bg-background/80',\n 'bg-background/90',\n 'bg-background/95',\n 'bg-card/80',\n 'bg-destructive/5',\n 'bg-destructive/10',\n 'bg-foreground/50',\n 'bg-info/10',\n 'bg-muted/10',\n 'bg-muted/30',\n 'bg-muted/50',\n 'bg-primary/5',\n 'bg-primary/10',\n 'bg-success/10',\n 'bg-warning/10',\n 'border-border/80',\n 'border-destructive/20',\n 'border-destructive/30',\n 'border-destructive/50',\n 'border-info/30',\n 'border-muted-foreground/25',\n 'border-muted-foreground/40',\n 'border-primary/30',\n 'border-primary/50',\n 'border-success/30',\n 'border-success/50',\n 'border-warning/30',\n 'hover:bg-destructive/10',\n 'hover:bg-muted/10',\n 'hover:bg-muted/20',\n 'hover:bg-muted/50',\n 'hover:bg-muted/80',\n 'hover:bg-primary/5',\n 'hover:bg-primary/10',\n 'hover:bg-primary/20',\n 'hover:bg-primary/90',\n 'hover:border-border/80',\n 'hover:border-muted-foreground/50',\n 'hover:text-destructive/80',\n 'hover:text-primary/80',\n 'text-muted-foreground/30',\n 'text-muted-foreground/40',\n 'text-muted-foreground/50',\n 'text-muted-foreground/60',\n 'text-muted-foreground/70',\n 'text-primary/80',\n 'text-primary-foreground/90',\n 'ring-primary',\n 'ring-2',\n 'ring-offset-2',\n // Grid classes for QuickAction and responsive layouts\n 'grid-cols-1',\n 'grid-cols-2',\n 'grid-cols-3',\n 'grid-cols-4',\n 'grid-cols-6',\n 'sm:grid-cols-1',\n 'sm:grid-cols-2',\n 'sm:grid-cols-3',\n 'sm:grid-cols-4',\n 'sm:grid-cols-6',\n 'md:grid-cols-2',\n 'md:grid-cols-3',\n 'md:grid-cols-4',\n 'lg:grid-cols-2',\n 'lg:grid-cols-3',\n 'lg:grid-cols-4',\n // ── Expanded Color Scales ────────────────────────────────────────\n // Secondary scale\n 'bg-secondary',\n 'bg-secondary-50',\n 'bg-secondary-100',\n 'bg-secondary-500',\n 'bg-secondary-600',\n 'text-secondary',\n 'text-secondary-500',\n 'text-secondary-600',\n 'text-secondary-700',\n 'text-secondary-foreground',\n 'border-secondary',\n 'border-secondary-200',\n // Neutral scale\n 'bg-neutral-50',\n 'bg-neutral-100',\n 'bg-neutral-200',\n 'bg-neutral-300',\n 'bg-neutral-800',\n 'bg-neutral-900',\n 'text-neutral-500',\n 'text-neutral-600',\n 'text-neutral-700',\n 'text-neutral-400',\n 'border-neutral-200',\n 'border-neutral-300',\n 'dark:bg-neutral-700',\n 'dark:bg-neutral-800',\n 'dark:text-neutral-300',\n 'dark:text-neutral-400',\n 'dark:border-neutral-600',\n 'dark:border-neutral-700',\n // Indigo (StripeBadge)\n 'bg-indigo-500/10',\n 'dark:bg-indigo-400/20',\n 'text-indigo-700',\n 'dark:text-indigo-300',\n 'border-indigo-500/30',\n 'hover:text-indigo-700',\n 'dark:hover:text-indigo-300',\n // Destructive scale\n 'bg-destructive-50',\n 'bg-destructive-100',\n 'bg-destructive-500',\n 'bg-destructive-600',\n 'bg-destructive-700',\n 'hover:bg-destructive-800',\n 'text-destructive-500',\n 'text-destructive-600',\n 'text-destructive-700',\n 'text-destructive-800',\n 'text-destructive-900',\n 'border-destructive-200',\n 'border-destructive-300',\n 'dark:bg-destructive-900',\n 'dark:bg-destructive-950',\n 'dark:text-destructive-300',\n 'dark:text-destructive-400',\n // Success scale\n 'bg-success-50',\n 'bg-success-100',\n 'bg-success-500',\n 'bg-success-600',\n 'bg-success-700',\n 'hover:bg-success-800',\n 'text-success-500',\n 'text-success-600',\n 'text-success-700',\n 'text-success-800',\n 'text-success-900',\n 'border-success-200',\n 'border-success-300',\n 'dark:bg-success-900',\n 'dark:bg-success-950',\n 'dark:text-success-300',\n 'dark:text-success-400',\n // Warning scale\n 'bg-warning-50',\n 'bg-warning-100',\n 'bg-warning-500',\n 'bg-warning-600',\n 'bg-warning-700',\n 'text-warning-900',\n 'text-warning-500',\n 'text-warning-600',\n 'text-warning-700',\n 'text-warning-800',\n 'text-warning-900',\n 'border-warning-200',\n 'border-warning-300',\n 'dark:bg-warning-900',\n 'dark:bg-warning-950',\n 'dark:text-warning-300',\n 'dark:text-warning-400',\n // Info scale\n 'bg-info-50',\n 'bg-info-100',\n 'bg-info-500',\n 'bg-info-600',\n 'text-info-500',\n 'text-info-600',\n 'text-info-700',\n 'text-info-800',\n 'text-info-900',\n 'border-info-200',\n 'border-info-300',\n 'dark:bg-info-900',\n 'dark:bg-info-950',\n 'dark:text-info-300',\n 'dark:text-info-400',\n // Chart colors\n 'bg-chart-1',\n 'bg-chart-2',\n 'bg-chart-3',\n 'bg-chart-4',\n 'bg-chart-5',\n 'text-chart-1',\n 'text-chart-2',\n 'text-chart-3',\n 'text-chart-4',\n 'text-chart-5',\n 'border-chart-1',\n 'border-chart-2',\n 'border-chart-3',\n 'border-chart-4',\n 'border-chart-5',\n // Switch component\n 'bg-primary-500',\n // Primary scale (a11y contrast)\n 'text-primary-800',\n 'dark:text-primary-300',\n // Text decoration\n 'underline',\n 'h-5',\n 'w-9',\n 'h-6',\n 'w-11',\n 'h-7',\n 'w-14',\n 'h-4',\n 'w-4',\n 'w-5',\n 'w-6',\n 'translate-x-0.5',\n 'translate-x-4',\n 'translate-x-5',\n 'translate-x-7',\n // RTL primitives batch: Badge/Input/Label icon+required markers, Text\n // logical alignment, Switch thumb travel (LTR data-state pairs + rtl mirror)\n 'me-1',\n 'ms-0.5',\n 'ms-1',\n 'text-start',\n 'text-end',\n 'data-[state=checked]:translate-x-4',\n 'data-[state=checked]:translate-x-5',\n 'data-[state=checked]:translate-x-7',\n 'rtl:-translate-x-0.5',\n 'rtl:data-[state=checked]:-translate-x-4',\n 'rtl:data-[state=checked]:-translate-x-5',\n 'rtl:data-[state=checked]:-translate-x-7',\n // RTL layout+nav batch: AppHeader alignment, Card accent/badge positions,\n // Sheet sides, Sidebar off-canvas + paddings, Table cell alignment\n 'me-auto',\n 'ms-auto',\n '-end-1',\n 'start-0',\n 'end-0',\n 'ps-4',\n 'start-2',\n 'end-2',\n 'border-e',\n 'border-s',\n 'me-3',\n 'ms-2',\n 'ps-2',\n '-me-2',\n '-end-3',\n 'start-3',\n 'pe-4',\n 'ps-10',\n 'rtl:translate-x-full',\n 'translate-x-0',\n '-translate-x-full',\n '[&:has([role=checkbox])]:pe-0',\n // SchedulePicker / overflow handling\n 'overflow-x-auto',\n 'overflow-hidden',\n // Scrollable floating panels (DateInput calendar, Autocomplete, Select, Table, ScrollArea, …)\n 'overflow-auto',\n // Select component\n 'truncate',\n // AIReconciliationPanel\n 'ring-primary-200',\n 'dark:ring-primary-900',\n 'border-primary-300',\n 'dark:border-primary-700',\n 'bg-primary-50/60',\n 'dark:bg-primary-950/30',\n 'text-primary-700',\n 'dark:text-primary-400',\n 'border-border/60',\n 'bg-muted/40',\n 'bg-muted/60',\n 'divide-border',\n 'max-h-[60vh]',\n 'bg-success-100',\n 'dark:bg-success-900/30',\n 'bg-amber-100',\n 'bg-amber-200',\n 'text-amber-700',\n 'text-amber-800',\n 'text-amber-200',\n 'text-amber-300',\n 'dark:bg-amber-900/30',\n 'dark:bg-amber-900/40',\n 'dark:text-amber-200',\n 'dark:text-amber-300',\n 'ring-1',\n 'last:border-b-0',\n 'border-dashed',\n 'text-[11px]',\n // CodeLookup memory picklist (frequently-used pick count)\n 'text-primary-600',\n // CodeLookup coding-system toggle (segmented radiogroup pills)\n 'flex',\n 'flex-wrap',\n 'items-center',\n 'gap-1',\n 'rounded-full',\n 'px-2.5',\n 'py-0.5',\n 'text-xs',\n 'transition-colors',\n 'focus:ring-2',\n 'focus:outline-none',\n 'border-primary-800',\n 'dark:border-primary-400',\n 'dark:bg-primary-400',\n 'dark:text-primary-950',\n 'text-white',\n 'hover:text-foreground',\n // CollabStatus debug panel (fixed-width portal, definition grid, log grid)\n 'w-[26rem]',\n 'max-w-[calc(100vw-1rem)]',\n 'grid-cols-[auto_1fr]',\n 'grid-cols-[auto_auto_1fr]',\n // SuperChat (participant chips, unread badge, active/hover states)\n 'bg-primary-100',\n 'bg-primary-600',\n 'hover:bg-primary-700',\n 'dark:bg-primary-900/40',\n 'text-primary-900',\n 'dark:text-primary-100',\n 'dark:text-primary-200',\n 'hover:border-primary-300',\n 'focus:border-primary-500',\n 'focus:ring-primary-500',\n 'text-[10px]',\n // SuperChat mermaid diagram wrapper — arbitrary variants applied to the\n // injected <svg> so the diagram sizes naturally instead of collapsing.\n '[&_svg]:h-auto',\n '[&_svg]:max-w-none',\n // AI pills — CollapsiblePill / MCPToolCall arbitrary utilities\n 'rounded-[8px]',\n 'rounded-[10px]',\n 'px-[11px]',\n 'max-h-0',\n 'max-h-[500px]',\n 'transition-[max-height,opacity]',\n 'overflow-y-auto',\n 'focus-visible:ring-ring',\n 'focus-visible:ring-offset-1',\n // ThinkingBlock (violet reasoning pill)\n 'bg-violet-50',\n 'bg-violet-500',\n 'border-violet-200',\n 'text-violet-600',\n 'hover:bg-violet-100',\n 'focus-visible:ring-violet-500',\n 'animate-pulse',\n 'text-[13px]',\n 'dark:bg-violet-400',\n 'dark:bg-violet-950/30',\n 'dark:border-violet-700',\n 'dark:border-violet-800',\n 'dark:hover:bg-violet-950/50',\n 'dark:text-violet-400',\n // MCPToolCall status pills (green success / red error kept the same)\n 'bg-green-50',\n 'border-green-200',\n 'text-green-700',\n 'dark:bg-green-900/20',\n 'dark:border-green-800',\n 'dark:text-green-300',\n 'bg-red-50',\n 'border-red-200',\n 'text-red-700',\n 'dark:bg-red-900/20',\n 'dark:border-red-800',\n 'dark:text-red-300',\n 'bg-neutral-100',\n 'border-neutral-200',\n 'text-neutral-600',\n 'text-neutral-400',\n 'dark:bg-neutral-800',\n 'dark:border-neutral-700',\n 'dark:text-neutral-400',\n 'bg-primary-50',\n 'border-primary-200',\n 'text-primary-800',\n 'dark:bg-primary-900/20',\n 'dark:border-primary-800',\n 'dark:text-primary-300',\n 'opacity-60',\n // Kbd / KeyboardShortcutsOverlay — key chips and shortcut rows\n 'px-1.5',\n 'font-mono',\n 'mx-0.5',\n 'list-none',\n // Sparkline — bar sizing, gaps, and hover tints (bg-primary-500/40 and\n // focus-visible:ring-offset-1 are already safelisted above)\n 'min-w-[3px]',\n 'gap-[2px]',\n 'hover:bg-primary-500/70',\n 'hover:bg-primary-500/90',\n 'hover:bg-muted-foreground/20',\n 'items-end',\n 'w-16',\n 'pb-0.5',\n 'leading-tight',\n 'tracking-wider',\n 'rounded-sm',\n 'cursor-pointer',\n // ClampedText — collapsed clamp levels and fade gradient\n 'line-clamp-2',\n 'line-clamp-3',\n 'line-clamp-4',\n 'line-clamp-5',\n 'line-clamp-6',\n 'line-clamp-7',\n 'line-clamp-8',\n 'bg-gradient-to-t',\n 'from-card',\n 'from-background',\n 'to-transparent',\n 'break-words',\n 'whitespace-pre-wrap',\n 'hover:underline',\n // FreshnessBadge / FreshnessDot — tinted level chips and dots\n 'dark:bg-success/20',\n 'bg-warning/15',\n 'dark:bg-warning/20',\n 'dark:text-warning',\n 'dark:bg-destructive/20',\n 'bg-muted-foreground/50',\n 'h-2',\n 'w-2',\n 'inline-block',\n 'dark:text-success',\n 'dark:text-destructive',\n // Accordion — grid-rows height animation (arbitrary values TW3 won't scan)\n 'transition-[grid-template-rows]',\n 'grid-rows-[0fr]',\n 'grid-rows-[1fr]',\n 'disabled:opacity-50',\n 'disabled:pointer-events-none',\n 'divide-y',\n 'first:rounded-t-lg',\n 'focus-visible:outline-none',\n 'focus-visible:ring-inset',\n 'gap-3',\n 'grid',\n 'hover:bg-muted/60',\n 'last:rounded-b-lg',\n 'pb-4',\n 'px-5',\n 'py-4',\n 'rotate-180',\n 'transition-transform',\n // GlossaryTooltip hover card — trigger reset, gradient header, chips, footer links\n '[font:inherit]',\n 'appearance-none',\n 'bg-transparent',\n 'bg-white/15',\n 'block',\n 'border-0',\n 'border-t',\n 'dark:hover:text-primary-400',\n 'font-bold',\n 'font-medium',\n 'font-normal',\n 'gap-1.5',\n 'h-3',\n 'hover:border-primary-400',\n 'hover:text-primary-700',\n 'hover:text-primary-800',\n 'inline',\n 'inline-flex',\n 'items-start',\n 'leading-relaxed',\n 'leading-snug',\n 'mb-1',\n 'mt-2',\n 'normal-case',\n 'outline-none',\n 'p-0',\n 'px-2',\n 'text-inherit',\n 'text-white/70',\n 'tracking-normal',\n 'w-3',\n 'z-50',\n\n // SourceTip hover card — trigger affordance, gradient header, ring, scroll cap\n 'cursor-help',\n 'hover:text-primary-500',\n 'dark:hover:text-primary-300',\n 'w-80',\n 'decoration-dashed',\n 'decoration-primary-400/70',\n 'bg-primary-400',\n 'underline-offset-4',\n 'bg-gradient-to-br',\n 'from-primary-700',\n 'to-primary-600',\n 'ring-black/5',\n 'dark:ring-white/10',\n 'ring-1',\n 'overflow-y-auto',\n 'focus-visible:ring-2',\n 'max-h-52',\n 'text-primary-100/90',\n 'text-[10px]',\n 'text-[11px]',\n 'text-[13px]',\n 'px-3.5',\n 'py-2.5',\n 'mt-2.5',\n 'pt-2.5',\n 'mt-0.5',\n 'mt-1.5',\n 'h-1.5',\n 'w-1.5',\n 'border-dashed',\n 'shadow-xl',\n // CopyButton — inline copy-to-clipboard button\n 'p-1',\n\n // ReadingProgressBar — fixed top rail and width-transition fill\n 'inset-x-0',\n 'h-1',\n 'transition-[width]',\n 'duration-150',\n\n // SectionSpyNav — sticky rail, brand tone whites, sliding underline\n 'sticky',\n 'top-0',\n 'z-30',\n 'bg-primary-900',\n 'bg-card/95',\n 'backdrop-blur',\n 'gap-4',\n 'px-4',\n 'shrink-0',\n 'tracking-wide',\n 'uppercase',\n 'text-white/85',\n '[scrollbar-width:none]',\n '[&::-webkit-scrollbar]:hidden',\n 'rounded',\n 'py-2',\n 'whitespace-nowrap',\n 'hover:text-white',\n 'h-0.5',\n 'transition-[left,width]',\n 'duration-300',\n 'hover:bg-white/10',\n 'h-3.5',\n 'w-3.5',\n // CustomizableDashboard — responsive column grid, flattened columns,\n // drag handle, drop placeholder\n 'grid-cols-1',\n 'md:grid-cols-2',\n 'lg:grid-cols-3',\n 'max-lg:contents',\n 'max-md:hidden',\n 'min-h-16',\n 'min-h-32',\n 'cursor-grab',\n 'active:cursor-grabbing',\n 'touch-none',\n 'opacity-40',\n 'group-hover/portlet:opacity-100',\n 'focus-visible:opacity-100',\n '[@media(hover:none)]:opacity-100',\n 'group/portlet',\n '[&>:nth-child(2)]:ms-auto',\n 'flex-nowrap',\n 'bg-card/80',\n 'border-dashed',\n 'border-2',\n 'bg-primary-500/10',\n 'gap-0.5',\n 'p-0.5',\n // Floating labels (labelVariant=\"floating\" on Input / Textarea / DateInput /\n // Select, ui#406). The peer-* float states, arbitrary font size, and the\n // taller field heights/paddings never appear in consumer markup, so TW3\n // would purge them. (The bare `peer` marker class generates no CSS and\n // needs no safelisting.)\n 'placeholder:text-transparent',\n 'relative',\n 'h-11',\n 'h-14',\n 'h-16',\n 'pt-4',\n 'pt-5',\n 'pt-6',\n 'pt-7',\n 'pb-1',\n 'pb-1.5',\n 'pb-2',\n 'min-h-[76px]',\n 'min-h-[96px]',\n 'min-h-[120px]',\n // Floating-group field boxes (labelVariant=\"floating\" on RadioGroup /\n // CheckboxGroup) share the floating input heights as min-heights. sr-only\n // visually hides the group legend (and the hideLabel input label) while\n // keeping it accessible. mb-1.5 spaces stacked legends (legends ignore\n // fieldset flex gap) and mt-1 spaces floating-group descriptions.\n 'min-h-11',\n 'min-h-14',\n 'min-h-16',\n 'sr-only',\n 'mb-1.5',\n 'mt-1',\n 'absolute',\n 'pointer-events-none',\n 'select-none',\n 'transition-all',\n 'duration-200',\n 'ease-out',\n 'top-0.5',\n 'top-1',\n 'top-1.5',\n 'top-2',\n 'top-3',\n 'top-4',\n 'top-5',\n 'top-1/2',\n '-translate-y-1/2',\n 'translate-y-0',\n 'text-sm',\n 'text-base',\n 'text-lg',\n 'text-[0.65rem]',\n 'peer-focus:top-0.5',\n 'peer-focus:top-1',\n 'peer-focus:top-1.5',\n 'peer-focus:top-2',\n 'peer-focus:text-[0.65rem]',\n 'peer-focus:text-xs',\n 'peer-focus:text-sm',\n 'peer-focus:translate-y-0',\n 'peer-[:not(:placeholder-shown)]:top-0.5',\n 'peer-[:not(:placeholder-shown)]:top-1',\n 'peer-[:not(:placeholder-shown)]:top-1.5',\n 'peer-[:not(:placeholder-shown)]:top-2',\n 'peer-[:not(:placeholder-shown)]:text-[0.65rem]',\n 'peer-[:not(:placeholder-shown)]:text-xs',\n 'peer-[:not(:placeholder-shown)]:text-sm',\n 'peer-[:not(:placeholder-shown)]:translate-y-0',\n 'peer-autofill:top-0.5',\n 'peer-autofill:top-1',\n 'peer-autofill:top-1.5',\n 'peer-autofill:top-2',\n 'peer-autofill:text-[0.65rem]',\n 'peer-autofill:text-xs',\n 'peer-autofill:text-sm',\n 'peer-autofill:translate-y-0',\n // DockablePanel — full-screen dialog that collapses to a bottom-right dock:\n // scrim, dock geometry, panel chrome, clipped full-width content\n 'fixed',\n 'inset-0',\n 'inset-6',\n 'inset-auto',\n 'bg-slate-900/45',\n 'end-0',\n 'end-6',\n 'bottom-0',\n 'top-full',\n 'w-full',\n 'h-full',\n 'w-[26rem]',\n 'max-w-[calc(100vw-3rem)]',\n 'max-w-[90rem]',\n 'w-[min(90rem,100vw-3rem)]',\n 'h-[calc(100vh-4rem)]',\n 'max-sm:inset-0',\n 'max-sm:inset-x-0',\n 'max-sm:w-full',\n 'max-sm:w-screen',\n 'max-sm:max-w-full',\n 'shadow-[0_1.25rem_2.5rem_rgb(15_23_42/0.22)]',\n 'rounded-lg',\n 'rounded-t-lg',\n 'border',\n 'border-b',\n 'border-b-0',\n 'flex',\n 'flex-1',\n 'flex-col',\n 'relative',\n 'absolute',\n 'items-center',\n 'justify-center',\n 'justify-between',\n 'gap-1',\n 'gap-2',\n 'px-3',\n 'py-2.5',\n 'm-0',\n 'min-h-0',\n 'min-w-0',\n 'text-sm',\n 'text-[0.9375rem]',\n 'font-semibold',\n 'capitalize',\n 'sr-only',\n];\n\nexport interface MiewebUIPreset {\n darkMode: ['class', '[data-theme=\"dark\"]'];\n safelist: string[];\n theme: {\n extend: Record<string, unknown>;\n };\n}\n\nexport const miewebUIPreset: MiewebUIPreset = {\n darkMode: ['class', '[data-theme=\"dark\"]'],\n safelist: miewebUISafelist,\n theme: {\n extend: {\n colors: {\n // Primary color scale - easily overridable by consumers\n primary: {\n DEFAULT: 'var(--mieweb-primary, var(--mieweb-primary-500, #27aae1))',\n 50: 'var(--mieweb-primary-50, #e6f7fc)',\n 100: 'var(--mieweb-primary-100, #b3e6f6)',\n 200: 'var(--mieweb-primary-200, #80d5f0)',\n 300: 'var(--mieweb-primary-300, #4dc4ea)',\n 400: 'var(--mieweb-primary-400, #27aae1)',\n 500: 'var(--mieweb-primary-500, #27aae1)',\n 600: 'var(--mieweb-primary-600, #1f98ca)',\n 700: 'var(--mieweb-primary-700, #1786b3)',\n 800: 'var(--mieweb-primary-800, #0f749c)',\n 900: 'var(--mieweb-primary-900, #086285)',\n 950: 'var(--mieweb-primary-950, #00506e)',\n foreground: 'var(--mieweb-primary-foreground, hsl(210 40% 98%))',\n },\n // Ozwell brand accent (the \"Hey Ozwell\" octopus blue) — distinct from the host app primary.\n ozwell: {\n DEFAULT: 'var(--mieweb-ozwell, #0BA0E0)',\n foreground: 'var(--mieweb-ozwell-foreground, hsl(0 0% 100%))',\n },\n // Secondary color scale\n secondary: {\n DEFAULT: 'var(--mieweb-secondary-500, #6366f1)',\n 50: 'var(--mieweb-secondary-50, #eef2ff)',\n 100: 'var(--mieweb-secondary-100, #e0e7ff)',\n 200: 'var(--mieweb-secondary-200, #c7d2fe)',\n 300: 'var(--mieweb-secondary-300, #a5b4fc)',\n 400: 'var(--mieweb-secondary-400, #818cf8)',\n 500: 'var(--mieweb-secondary-500, #6366f1)',\n 600: 'var(--mieweb-secondary-600, #4f46e5)',\n 700: 'var(--mieweb-secondary-700, #4338ca)',\n 800: 'var(--mieweb-secondary-800, #3730a3)',\n 900: 'var(--mieweb-secondary-900, #312e81)',\n 950: 'var(--mieweb-secondary-950, #1e1b4b)',\n foreground: 'var(--mieweb-secondary-foreground, #ffffff)',\n },\n // Neutral / gray scale\n neutral: {\n DEFAULT: 'var(--mieweb-neutral-500, #737373)',\n 50: 'var(--mieweb-neutral-50, #fafafa)',\n 100: 'var(--mieweb-neutral-100, #f5f5f5)',\n 200: 'var(--mieweb-neutral-200, #e5e5e5)',\n 300: 'var(--mieweb-neutral-300, #d4d4d4)',\n 400: 'var(--mieweb-neutral-400, #a3a3a3)',\n 500: 'var(--mieweb-neutral-500, #737373)',\n 600: 'var(--mieweb-neutral-600, #525252)',\n 700: 'var(--mieweb-neutral-700, #404040)',\n 800: 'var(--mieweb-neutral-800, #262626)',\n 900: 'var(--mieweb-neutral-900, #171717)',\n 950: 'var(--mieweb-neutral-950, #0a0a0a)',\n },\n // Semantic colors using CSS variables for theming\n border: 'var(--mieweb-border, hsl(214.3 31.8% 91.4%))',\n input: 'var(--mieweb-input, hsl(214.3 31.8% 91.4%))',\n ring: 'var(--mieweb-ring, hsl(221.2 83.2% 53.3%))',\n background: 'var(--mieweb-background, hsl(0 0% 100%))',\n foreground: 'var(--mieweb-foreground, hsl(222.2 84% 4.9%))',\n // Component-specific semantic colors\n card: {\n DEFAULT: 'var(--mieweb-card, hsl(0 0% 100%))',\n foreground: 'var(--mieweb-card-foreground, hsl(222.2 84% 4.9%))',\n },\n muted: {\n DEFAULT: 'var(--mieweb-muted, hsl(210 40% 96.1%))',\n foreground: 'var(--mieweb-muted-foreground, hsl(215.4 16.3% 46.9%))',\n },\n // Destructive / error scale\n destructive: {\n DEFAULT:\n 'var(--mieweb-destructive, var(--mieweb-destructive-500, #dc2626))',\n 50: 'var(--mieweb-destructive-50, #fef2f2)',\n 100: 'var(--mieweb-destructive-100, #fee2e2)',\n 200: 'var(--mieweb-destructive-200, #fecaca)',\n 300: 'var(--mieweb-destructive-300, #fca5a5)',\n 400: 'var(--mieweb-destructive-400, #f87171)',\n 500: 'var(--mieweb-destructive-500, #dc2626)',\n 600: 'var(--mieweb-destructive-600, #dc2626)',\n 700: 'var(--mieweb-destructive-700, #b91c1c)',\n 800: 'var(--mieweb-destructive-800, #991b1b)',\n 900: 'var(--mieweb-destructive-900, #7f1d1d)',\n 950: 'var(--mieweb-destructive-950, #450a0a)',\n foreground: 'var(--mieweb-destructive-foreground, hsl(210 40% 98%))',\n },\n // Success scale\n success: {\n DEFAULT: 'var(--mieweb-success-500, #22c55e)',\n 50: 'var(--mieweb-success-50, #f0fdf4)',\n 100: 'var(--mieweb-success-100, #dcfce7)',\n 200: 'var(--mieweb-success-200, #bbf7d0)',\n 300: 'var(--mieweb-success-300, #86efac)',\n 400: 'var(--mieweb-success-400, #4ade80)',\n 500: 'var(--mieweb-success-500, #22c55e)',\n 600: 'var(--mieweb-success-600, #16a34a)',\n 700: 'var(--mieweb-success-700, #15803d)',\n 800: 'var(--mieweb-success-800, #166534)',\n 900: 'var(--mieweb-success-900, #14532d)',\n 950: 'var(--mieweb-success-950, #052e16)',\n foreground: 'var(--mieweb-success-foreground, hsl(355.7 100% 97.3%))',\n },\n // Warning scale\n warning: {\n DEFAULT: 'var(--mieweb-warning-500, #f59e0b)',\n 50: 'var(--mieweb-warning-50, #fffbeb)',\n 100: 'var(--mieweb-warning-100, #fef3c7)',\n 200: 'var(--mieweb-warning-200, #fde68a)',\n 300: 'var(--mieweb-warning-300, #fcd34d)',\n 400: 'var(--mieweb-warning-400, #fbbf24)',\n 500: 'var(--mieweb-warning-500, #f59e0b)',\n 600: 'var(--mieweb-warning-600, #d97706)',\n 700: 'var(--mieweb-warning-700, #b45309)',\n 800: 'var(--mieweb-warning-800, #92400e)',\n 900: 'var(--mieweb-warning-900, #78350f)',\n 950: 'var(--mieweb-warning-950, #451a03)',\n foreground: 'var(--mieweb-warning-foreground, hsl(26 83.3% 14.1%))',\n },\n // Info scale\n info: {\n DEFAULT: 'var(--mieweb-info-500, #0ea5e9)',\n 50: 'var(--mieweb-info-50, #f0f9ff)',\n 100: 'var(--mieweb-info-100, #e0f2fe)',\n 200: 'var(--mieweb-info-200, #bae6fd)',\n 300: 'var(--mieweb-info-300, #7dd3fc)',\n 400: 'var(--mieweb-info-400, #38bdf8)',\n 500: 'var(--mieweb-info-500, #0ea5e9)',\n 600: 'var(--mieweb-info-600, #0284c7)',\n 700: 'var(--mieweb-info-700, #0369a1)',\n 800: 'var(--mieweb-info-800, #075985)',\n 900: 'var(--mieweb-info-900, #0c4a6e)',\n 950: 'var(--mieweb-info-950, #082f49)',\n foreground: 'var(--mieweb-info-foreground, #ffffff)',\n },\n // Chart / data visualization\n chart: {\n 1: 'var(--mieweb-chart-1, #27aae1)',\n 2: 'var(--mieweb-chart-2, #22c55e)',\n 3: 'var(--mieweb-chart-3, #f59e0b)',\n 4: 'var(--mieweb-chart-4, #ef4444)',\n 5: 'var(--mieweb-chart-5, #6366f1)',\n },\n },\n fontFamily: {\n sans: [\n 'var(--mieweb-font-sans, ui-sans-serif)',\n 'system-ui',\n 'sans-serif',\n ],\n },\n borderRadius: {\n '2xl': 'var(--mieweb-radius-2xl, 1rem)',\n lg: 'var(--mieweb-radius-lg, 0.75rem)',\n md: 'var(--mieweb-radius-md, 0.5rem)',\n sm: 'var(--mieweb-radius-sm, 0.25rem)',\n xl: 'var(--mieweb-radius-xl, 1rem)',\n },\n boxShadow: {\n card: 'var(--mieweb-shadow-card, 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1))',\n },\n keyframes: {\n 'fade-in': {\n '0%': { opacity: '0' },\n '100%': { opacity: '1' },\n },\n 'fade-out': {\n '0%': { opacity: '1' },\n '100%': { opacity: '0' },\n },\n 'slide-in-from-top': {\n '0%': { transform: 'translateY(-0.5rem)', opacity: '0' },\n '100%': { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-in-from-bottom': {\n '0%': { transform: 'translateY(0.5rem)', opacity: '0' },\n '100%': { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-in-right': {\n '0%': { transform: 'translateX(100%)', opacity: '0' },\n '100%': { transform: 'translateX(0)', opacity: '1' },\n },\n 'slide-in-left': {\n '0%': { transform: 'translateX(-100%)', opacity: '0' },\n '100%': { transform: 'translateX(0)', opacity: '1' },\n },\n 'scale-in': {\n '0%': { transform: 'scale(0.95)', opacity: '0' },\n '100%': { transform: 'scale(1)', opacity: '1' },\n },\n 'ozwell-message-flare': {\n '0%': {\n boxShadow:\n '0 0 0 0 color-mix(in srgb, var(--mieweb-primary-700, #1786b3) 34%, transparent)',\n },\n '70%': {\n boxShadow:\n '0 0 0 8px color-mix(in srgb, var(--mieweb-primary-700, #1786b3) 0%, transparent)',\n },\n '100%': {\n boxShadow:\n '0 0 0 0 color-mix(in srgb, var(--mieweb-primary-700, #1786b3) 0%, transparent)',\n },\n },\n },\n animation: {\n 'fade-in': 'fade-in 150ms ease-out',\n 'fade-out': 'fade-out 150ms ease-in',\n 'slide-in-from-top': 'slide-in-from-top 150ms ease-out',\n 'slide-in-from-bottom': 'slide-in-from-bottom 150ms ease-out',\n 'slide-in-right': 'slide-in-right 300ms ease-out',\n 'slide-in-left': 'slide-in-left 300ms ease-out',\n 'scale-in': 'scale-in 150ms ease-out',\n 'ozwell-message-flare': 'ozwell-message-flare 1.8s ease-out',\n },\n // ClampedText supports 7/8-line clamps beyond Tailwind 3's core 1–6 scale\n lineClamp: {\n 7: '7',\n 8: '8',\n },\n },\n },\n};\n\nexport default miewebUIPreset;\n"]}
@@ -0,0 +1,84 @@
1
+ import { cn } from './chunk-TQONQSJO.js';
2
+ import * as React from 'react';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ var Sparkline = React.forwardRef(
6
+ function Sparkline2({
7
+ data,
8
+ selectedKey,
9
+ onSelect,
10
+ label,
11
+ ariaLabel,
12
+ height = 32,
13
+ formatValue,
14
+ className,
15
+ ...props
16
+ }, ref) {
17
+ const max = React.useMemo(
18
+ () => Math.max(1, ...data.map((d) => d.value)),
19
+ [data]
20
+ );
21
+ const interactive = Boolean(onSelect);
22
+ return /* @__PURE__ */ jsxs(
23
+ "div",
24
+ {
25
+ ref,
26
+ className: cn("flex items-end gap-3", className),
27
+ ...props,
28
+ children: [
29
+ label && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground w-16 shrink-0 pb-0.5 text-[10px] leading-tight font-medium tracking-wider uppercase", children: label }),
30
+ /* @__PURE__ */ jsx(
31
+ "div",
32
+ {
33
+ className: "flex flex-1 items-end gap-[2px]",
34
+ style: { height },
35
+ role: "group",
36
+ "aria-label": ariaLabel ?? label ?? "Activity over time",
37
+ children: data.map((point) => {
38
+ const heightPct = point.value === 0 ? 6 : Math.max(12, Math.round(point.value / max * 100));
39
+ const isSelected = selectedKey === point.key;
40
+ const display = point.label ?? point.key;
41
+ const valueText = formatValue ? formatValue(point) : String(point.value);
42
+ const title = `${display} \u2014 ${valueText}`;
43
+ const barClasses = cn(
44
+ "min-w-[3px] flex-1 rounded-sm transition-colors",
45
+ isSelected ? "bg-primary-500 hover:bg-primary-500/90" : point.value > 0 ? "bg-primary-500/40 hover:bg-primary-500/70" : "bg-muted hover:bg-muted-foreground/20"
46
+ );
47
+ return interactive ? /* @__PURE__ */ jsx(
48
+ "button",
49
+ {
50
+ type: "button",
51
+ onClick: () => onSelect?.(isSelected ? null : point.key),
52
+ "aria-pressed": isSelected,
53
+ title,
54
+ "aria-label": title,
55
+ className: cn(
56
+ barClasses,
57
+ "focus-visible:ring-ring cursor-pointer focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:outline-none"
58
+ ),
59
+ style: { height: `${heightPct}%` }
60
+ },
61
+ point.key
62
+ ) : /* @__PURE__ */ jsx(
63
+ "span",
64
+ {
65
+ role: "img",
66
+ title,
67
+ "aria-label": title,
68
+ className: barClasses,
69
+ style: { height: `${heightPct}%` }
70
+ },
71
+ point.key
72
+ );
73
+ })
74
+ }
75
+ )
76
+ ]
77
+ }
78
+ );
79
+ }
80
+ );
81
+
82
+ export { Sparkline };
83
+ //# sourceMappingURL=chunk-CG4ZKJLE.js.map
84
+ //# sourceMappingURL=chunk-CG4ZKJLE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Sparkline/Sparkline.tsx"],"names":["Sparkline"],"mappings":"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","file":"chunk-CG4ZKJLE.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface SparklinePoint {\n /** Stable key for selection (e.g. a day key like \"2026-08-22\"). */\n key: string;\n /** Human label for tooltips and accessible names (defaults to key). */\n label?: string;\n value: number;\n}\n\nexport interface SparklineProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'onSelect'\n> {\n /** Pre-bucketed points in display order (e.g. one per day). */\n data: SparklinePoint[];\n /** Selected point key — that bar is highlighted. */\n selectedKey?: string | null;\n /**\n * Makes bars clickable; clicking the selected bar reports `null`\n * (deselect). Omit for a read-only sparkline.\n */\n onSelect?: (key: string | null) => void;\n /** Track label rendered before the bars (e.g. \"All activity\"). */\n label?: string;\n /**\n * Accessible name for the bar group. Defaults to the visible `label`\n * (so multiple tracks stay distinguishable), else \"Activity over time\".\n */\n ariaLabel?: string;\n /** Bar track height in px (default 32). */\n height?: number;\n /** Formats the value for tooltips/accessible names (default `String`). */\n formatValue?: (point: SparklinePoint) => string;\n}\n\n// =============================================================================\n// Sparkline\n// =============================================================================\n\n/**\n * A compact bar sparkline for activity-over-time strips — timelines,\n * table rows, dashboard headers. Bars scale to the series maximum;\n * zero-value bars render as a low baseline stub. With `onSelect`, bars\n * become toggle buttons for filtering the view to one bucket.\n *\n * Data arrives pre-bucketed (the host owns date math), keeping the\n * component pure. For full charting, reach for DataVis instead.\n *\n * @example\n * ```tsx\n * <Sparkline\n * label=\"All activity\"\n * data={days.map((d) => ({ key: d.iso, label: d.pretty, value: d.count }))}\n * selectedKey={day}\n * onSelect={setDay}\n * />\n * ```\n */\nexport const Sparkline = React.forwardRef<HTMLDivElement, SparklineProps>(\n function Sparkline(\n {\n data,\n selectedKey,\n onSelect,\n label,\n ariaLabel,\n height = 32,\n formatValue,\n className,\n ...props\n },\n ref\n ) {\n const max = React.useMemo(\n () => Math.max(1, ...data.map((d) => d.value)),\n [data]\n );\n\n const interactive = Boolean(onSelect);\n\n return (\n <div\n ref={ref}\n className={cn('flex items-end gap-3', className)}\n {...props}\n >\n {label && (\n <span className=\"text-muted-foreground w-16 shrink-0 pb-0.5 text-[10px] leading-tight font-medium tracking-wider uppercase\">\n {label}\n </span>\n )}\n <div\n className=\"flex flex-1 items-end gap-[2px]\"\n style={{ height }}\n role=\"group\"\n aria-label={ariaLabel ?? label ?? 'Activity over time'}\n >\n {data.map((point) => {\n const heightPct =\n point.value === 0\n ? 6\n : Math.max(12, Math.round((point.value / max) * 100));\n const isSelected = selectedKey === point.key;\n const display = point.label ?? point.key;\n const valueText = formatValue\n ? formatValue(point)\n : String(point.value);\n const title = `${display} — ${valueText}`;\n\n const barClasses = cn(\n 'min-w-[3px] flex-1 rounded-sm transition-colors',\n isSelected\n ? 'bg-primary-500 hover:bg-primary-500/90'\n : point.value > 0\n ? 'bg-primary-500/40 hover:bg-primary-500/70'\n : 'bg-muted hover:bg-muted-foreground/20'\n );\n\n return interactive ? (\n <button\n key={point.key}\n type=\"button\"\n onClick={() => onSelect?.(isSelected ? null : point.key)}\n aria-pressed={isSelected}\n title={title}\n aria-label={title}\n className={cn(\n barClasses,\n 'focus-visible:ring-ring cursor-pointer focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:outline-none'\n )}\n style={{ height: `${heightPct}%` }}\n />\n ) : (\n <span\n key={point.key}\n role=\"img\"\n title={title}\n aria-label={title}\n className={barClasses}\n style={{ height: `${heightPct}%` }}\n />\n );\n })}\n </div>\n </div>\n );\n }\n);\n"]}