@expressivecss/expressive 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/CHANGELOG.md +1502 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19247 -11923
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
  64. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
  66. package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
  67. package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
  68. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
  69. package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
  70. package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
  72. package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
  73. package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
  74. package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-4QUCNFSD.mjs} +64 -113
  76. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-4TRZ2AER.mjs} +35 -41
  78. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-5KIHWJI2.mjs} +40 -26
  80. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-67ZPPKXS.mjs} +20 -33
  82. package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-6FSEUFVW.mjs} +39 -26
  84. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
  85. package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
  86. package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
  87. package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-75E5EDJF.mjs} +3 -11
  88. package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
  89. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-7NLUI3RR.mjs} +139 -66
  90. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
  92. package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
  94. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
  96. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
  98. package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-ANKFWNWT.mjs} +21 -45
  100. package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
  101. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-B7DQFHA5.mjs} +30 -47
  102. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
  103. package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
  104. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
  105. package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-BPF3I2MN.mjs} +109 -24
  106. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
  108. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-CSYWKEK3.mjs} +310 -196
  110. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
  111. package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
  112. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
  114. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-EC26RU2D.mjs} +11 -29
  116. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-EVCVFEV3.mjs} +235 -146
  118. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
  119. package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
  120. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
  121. package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
  122. package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
  123. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  124. package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
  125. package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
  127. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
  128. package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-ILDRRG7T.mjs} +21 -23
  129. package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
  131. package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
  133. package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
  134. package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
  135. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-KZPSAXIU.mjs} +142 -32
  137. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
  139. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
  140. package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
  141. package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
  143. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
  145. package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
  146. package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
  147. package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
  148. package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-OP43LLIC.mjs} +28 -45
  149. package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
  151. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
  152. package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-OYNUDOHR.mjs} +19 -47
  153. package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
  154. package/dist/js/chunks/{chunk-UAZSDUVP.mjs → chunk-P6DRQ6KS.mjs} +36 -30
  155. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
  157. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
  158. package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
  159. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
  160. package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-QXKWVHBD.mjs} +265 -161
  161. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
  162. package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-ROH2HDB4.mjs} +7 -6
  163. package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
  164. package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
  165. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
  166. package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-SPPHF7YZ.mjs} +36 -29
  167. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
  169. package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
  170. package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
  171. package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
  172. package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
  173. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
  175. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
  177. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-VGY4M57S.mjs} +266 -120
  179. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
  181. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
  183. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-VMY55K2X.mjs} +76 -109
  185. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
  186. package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-VR3L2WN5.mjs} +11 -17
  187. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  189. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
  191. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
  193. package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
  194. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
  195. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
  197. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
  199. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
  201. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
  202. package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-ZJNLAGY5.mjs} +19 -30
  203. package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
  205. package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
  206. package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
  207. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
  208. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
  209. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
  211. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
  212. package/dist/js/expressive.cjs +10613 -4327
  213. package/dist/js/expressive.cjs.map +4 -4
  214. package/dist/js/expressive.js +10613 -4327
  215. package/dist/js/expressive.js.map +4 -4
  216. package/dist/js/expressive.min.js +23 -22
  217. package/dist/js/expressive.min.js.map +4 -4
  218. package/dist/js/expressive.mjs +182 -71
  219. package/dist/js/expressive.mjs.map +2 -2
  220. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  221. package/dist/js/internal/behaviors/copy.mjs +9 -0
  222. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  223. package/dist/js/internal/behaviors/dataTables.mjs +10 -0
  224. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  226. package/dist/js/internal/behaviors/forms.mjs +2 -2
  227. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  228. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  229. package/dist/js/internal/behaviors/lists.mjs +8 -0
  230. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  232. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  234. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  235. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  236. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  237. package/dist/js/internal/behaviors/theme.mjs +8 -0
  238. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/tour.mjs +8 -0
  240. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  242. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  243. package/dist/js/internal/components/appBar.mjs +3 -2
  244. package/dist/js/internal/components/autocomplete.mjs +4 -4
  245. package/dist/js/internal/components/backToTop.mjs +9 -0
  246. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  247. package/dist/js/internal/components/barChart.mjs +5 -4
  248. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  249. package/dist/js/internal/components/buttons.mjs +3 -3
  250. package/dist/js/internal/components/cards.mjs +3 -3
  251. package/dist/js/internal/components/carousel.mjs +3 -3
  252. package/dist/js/internal/components/cascader.mjs +10 -0
  253. package/dist/js/internal/components/cascader.mjs.map +7 -0
  254. package/dist/js/internal/components/characterCounter.mjs +3 -2
  255. package/dist/js/internal/components/chips.mjs +6 -5
  256. package/dist/js/internal/components/colorPicker.mjs +9 -0
  257. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  258. package/dist/js/internal/components/columnChart.mjs +4 -3
  259. package/dist/js/internal/components/commandPalette.mjs +3 -3
  260. package/dist/js/internal/components/confetti.mjs +3 -2
  261. package/dist/js/internal/components/currencyInput.mjs +9 -0
  262. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  263. package/dist/js/internal/components/datepicker.mjs +11 -8
  264. package/dist/js/internal/components/expandingCard.mjs +3 -3
  265. package/dist/js/internal/components/funnelChart.mjs +10 -0
  266. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  267. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  268. package/dist/js/internal/components/hoverCard.mjs +9 -0
  269. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  270. package/dist/js/internal/components/index.mjs +131 -66
  271. package/dist/js/internal/components/inputMask.mjs +9 -0
  272. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  273. package/dist/js/internal/components/keypad.mjs +3 -3
  274. package/dist/js/internal/components/lightbox.mjs +3 -3
  275. package/dist/js/internal/components/lineChart.mjs +25 -4
  276. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  277. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  278. package/dist/js/internal/components/mapView.mjs +3 -3
  279. package/dist/js/internal/components/menu.mjs +3 -3
  280. package/dist/js/internal/components/menubar.mjs +10 -0
  281. package/dist/js/internal/components/menubar.mjs.map +7 -0
  282. package/dist/js/internal/components/messageScroller.mjs +3 -3
  283. package/dist/js/internal/components/mixedChart.mjs +5 -4
  284. package/dist/js/internal/components/navigationRail.mjs +3 -2
  285. package/dist/js/internal/components/particles.mjs +3 -2
  286. package/dist/js/internal/components/pieChart.mjs +4 -3
  287. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  288. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  289. package/dist/js/internal/components/questionnaire.mjs +3 -3
  290. package/dist/js/internal/components/radarChart.mjs +4 -3
  291. package/dist/js/internal/components/radialChart.mjs +4 -3
  292. package/dist/js/internal/components/registry.mjs +59 -41
  293. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  294. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  295. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  296. package/dist/js/internal/components/scatterChart.mjs +10 -0
  297. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scrollspy.mjs +3 -2
  299. package/dist/js/internal/components/select.mjs +4 -4
  300. package/dist/js/internal/components/showMore.mjs +9 -0
  301. package/dist/js/internal/components/showMore.mjs.map +7 -0
  302. package/dist/js/internal/components/slider.mjs +3 -3
  303. package/dist/js/internal/components/snackbar.mjs +2 -2
  304. package/dist/js/internal/components/swipeActions.mjs +9 -0
  305. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  306. package/dist/js/internal/components/tabs.mjs +3 -4
  307. package/dist/js/internal/components/timepicker.mjs +5 -4
  308. package/dist/js/internal/components/tooltip.mjs +3 -3
  309. package/dist/js/internal/components/treeSelect.mjs +13 -0
  310. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  311. package/dist/js/internal/components/treemapChart.mjs +10 -0
  312. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  313. package/dist/js/internal/core/component.mjs +2 -1
  314. package/dist/js/internal/core/formControl.mjs +12 -0
  315. package/dist/js/internal/core/formControl.mjs.map +7 -0
  316. package/dist/js/internal/core/spring.mjs +11 -0
  317. package/dist/js/internal/core/spring.mjs.map +7 -0
  318. package/dist/js/internal/core/utils.mjs +11 -3
  319. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  320. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  321. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  322. package/dist/js/modular.mjs +173 -71
  323. package/dist/types/behaviors/bottomSheets.d.ts +19 -3
  324. package/dist/types/behaviors/copy.d.ts +18 -0
  325. package/dist/types/behaviors/dataTables.d.ts +129 -0
  326. package/dist/types/behaviors/dialogs.d.ts +27 -1
  327. package/dist/types/behaviors/forms.d.ts +68 -2
  328. package/dist/types/behaviors/imageCompare.d.ts +12 -0
  329. package/dist/types/behaviors/lists.d.ts +12 -0
  330. package/dist/types/behaviors/paneResize.d.ts +29 -0
  331. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  332. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  333. package/dist/types/behaviors/sortable.d.ts +28 -0
  334. package/dist/types/behaviors/theme.d.ts +22 -0
  335. package/dist/types/behaviors/tour.d.ts +36 -0
  336. package/dist/types/behaviors/transferList.d.ts +51 -0
  337. package/dist/types/components/appBar.d.ts +5 -6
  338. package/dist/types/components/autocomplete.d.ts +91 -17
  339. package/dist/types/components/backToTop.d.ts +36 -0
  340. package/dist/types/components/barChart.d.ts +3 -6
  341. package/dist/types/components/buttonGroup.d.ts +2 -4
  342. package/dist/types/components/buttons.d.ts +5 -5
  343. package/dist/types/components/cards.d.ts +3 -16
  344. package/dist/types/components/carousel.d.ts +9 -15
  345. package/dist/types/components/cascader.d.ts +130 -0
  346. package/dist/types/components/characterCounter.d.ts +2 -15
  347. package/dist/types/components/chips.d.ts +65 -19
  348. package/dist/types/components/colorPicker.d.ts +42 -0
  349. package/dist/types/components/columnChart.d.ts +23 -10
  350. package/dist/types/components/commandPalette.d.ts +11 -16
  351. package/dist/types/components/confetti.d.ts +2 -4
  352. package/dist/types/components/currencyInput.d.ts +59 -0
  353. package/dist/types/components/datepicker.d.ts +56 -32
  354. package/dist/types/components/expandingCard.d.ts +4 -6
  355. package/dist/types/components/funnelChart.d.ts +38 -0
  356. package/dist/types/components/heatmapChart.d.ts +39 -8
  357. package/dist/types/components/hoverCard.d.ts +58 -0
  358. package/dist/types/components/index.d.ts +16 -1
  359. package/dist/types/components/inputMask.d.ts +30 -0
  360. package/dist/types/components/keypad.d.ts +38 -6
  361. package/dist/types/components/lightbox.d.ts +14 -20
  362. package/dist/types/components/lineChart.d.ts +172 -10
  363. package/dist/types/components/loadingOverlay.d.ts +42 -0
  364. package/dist/types/components/mapView.d.ts +26 -17
  365. package/dist/types/components/menu.d.ts +60 -22
  366. package/dist/types/components/menubar.d.ts +37 -0
  367. package/dist/types/components/messageScroller.d.ts +2 -14
  368. package/dist/types/components/mixedChart.d.ts +15 -6
  369. package/dist/types/components/navigationRail.d.ts +16 -5
  370. package/dist/types/components/particles.d.ts +8 -4
  371. package/dist/types/components/pieChart.d.ts +32 -7
  372. package/dist/types/components/pullToRefresh.d.ts +80 -0
  373. package/dist/types/components/questionnaire.d.ts +58 -16
  374. package/dist/types/components/radarChart.d.ts +10 -6
  375. package/dist/types/components/radialChart.d.ts +58 -7
  376. package/dist/types/components/registry.d.ts +73 -3
  377. package/dist/types/components/richTextEditor.d.ts +6 -14
  378. package/dist/types/components/sankeyChart.d.ts +72 -0
  379. package/dist/types/components/scatterChart.d.ts +102 -0
  380. package/dist/types/components/scrollspy.d.ts +3 -5
  381. package/dist/types/components/select.d.ts +43 -30
  382. package/dist/types/components/showMore.d.ts +51 -0
  383. package/dist/types/components/slider.d.ts +3 -15
  384. package/dist/types/components/snackbar.d.ts +61 -0
  385. package/dist/types/components/swipeActions.d.ts +81 -0
  386. package/dist/types/components/tabs.d.ts +89 -27
  387. package/dist/types/components/timepicker.d.ts +113 -21
  388. package/dist/types/components/tooltip.d.ts +56 -20
  389. package/dist/types/components/treeSelect.d.ts +106 -0
  390. package/dist/types/components/treemapChart.d.ts +56 -0
  391. package/dist/types/core/component.d.ts +43 -25
  392. package/dist/types/core/formControl.d.ts +21 -0
  393. package/dist/types/core/spring.d.ts +20 -0
  394. package/dist/types/core/utils.d.ts +85 -72
  395. package/dist/types/modular.d.ts +33 -1
  396. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  397. package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
  398. package/package.json +10 -8
  399. package/src/sass/README.md +27 -18
  400. package/src/sass/abstracts/_elevation.scss +13 -7
  401. package/src/sass/abstracts/_index.scss +1 -0
  402. package/src/sass/abstracts/_mixins.scss +422 -36
  403. package/src/sass/abstracts/_spring.scss +63 -0
  404. package/src/sass/abstracts/_variables.scss +39 -21
  405. package/src/sass/base/_fonts.scss +61 -48
  406. package/src/sass/base/_global.scss +104 -24
  407. package/src/sass/base/_index.scss +2 -0
  408. package/src/sass/base/_normalize.scss +59 -114
  409. package/src/sass/base/_print.scss +21 -0
  410. package/src/sass/base/_prose.scss +68 -0
  411. package/src/sass/base/_typography.scss +9 -5
  412. package/src/sass/components/_accordion.scss +9 -16
  413. package/src/sass/components/_alert.scss +102 -0
  414. package/src/sass/components/_aura.scss +8 -3
  415. package/src/sass/components/_avatar.scss +3 -3
  416. package/src/sass/components/_back-to-top.scss +38 -0
  417. package/src/sass/components/_badges.scss +6 -5
  418. package/src/sass/components/_bar-chart.scss +41 -19
  419. package/src/sass/components/_bottom-sheet.scss +44 -16
  420. package/src/sass/components/_breadcrumb.scss +8 -1
  421. package/src/sass/components/_button-groups.scss +15 -25
  422. package/src/sass/components/_buttons.scss +156 -63
  423. package/src/sass/components/_calendar.scss +246 -0
  424. package/src/sass/components/_cards.scss +36 -44
  425. package/src/sass/components/_carousel.scss +27 -103
  426. package/src/sass/components/_cascader.scss +142 -0
  427. package/src/sass/components/_chips.scss +36 -46
  428. package/src/sass/components/_column-chart.scss +19 -12
  429. package/src/sass/components/_command-palette.scss +4 -7
  430. package/src/sass/components/_confetti.scss +0 -2
  431. package/src/sass/components/_countdown.scss +1 -1
  432. package/src/sass/components/_data-table.scss +162 -25
  433. package/src/sass/components/_datepicker.scss +54 -40
  434. package/src/sass/components/_description-list.scss +85 -0
  435. package/src/sass/components/_dialog.scss +42 -41
  436. package/src/sass/components/_docked-display.scss +1 -3
  437. package/src/sass/components/_drag-handle.scss +16 -20
  438. package/src/sass/components/_expanding-card.scss +20 -9
  439. package/src/sass/components/_fab-menu.scss +44 -32
  440. package/src/sass/components/_funnel-chart.scss +124 -0
  441. package/src/sass/components/_heatmap-chart.scss +111 -22
  442. package/src/sass/components/_icon-buttons.scss +7 -7
  443. package/src/sass/components/_icons-material-design.scss +2 -2
  444. package/src/sass/components/_image-compare.scss +108 -0
  445. package/src/sass/components/_index.scss +20 -0
  446. package/src/sass/components/_keypad.scss +39 -19
  447. package/src/sass/components/_kpi.scss +6 -11
  448. package/src/sass/components/_lightbox.scss +24 -13
  449. package/src/sass/components/_line-chart.scss +16 -2
  450. package/src/sass/components/_list.scss +59 -14
  451. package/src/sass/components/_loading-indicator.scss +1 -0
  452. package/src/sass/components/_loading-overlay.scss +105 -0
  453. package/src/sass/components/_map.scss +33 -11
  454. package/src/sass/components/_marquee.scss +3 -2
  455. package/src/sass/components/_mega-menu.scss +137 -0
  456. package/src/sass/components/_menu.scss +143 -123
  457. package/src/sass/components/_menubar.scss +59 -0
  458. package/src/sass/components/_message-scroller.scss +2 -2
  459. package/src/sass/components/_message.scss +3 -3
  460. package/src/sass/components/_mixed-chart.scss +37 -9
  461. package/src/sass/components/_modal-display.scss +21 -0
  462. package/src/sass/components/_navbar.scss +34 -20
  463. package/src/sass/components/_navigation-bar.scss +15 -77
  464. package/src/sass/components/_navigation-rail.scss +151 -92
  465. package/src/sass/components/_org-chart.scss +192 -0
  466. package/src/sass/components/_page-footer.scss +1 -1
  467. package/src/sass/components/_pagination.scss +6 -13
  468. package/src/sass/components/_panes.scss +32 -26
  469. package/src/sass/components/_particles.scss +0 -2
  470. package/src/sass/components/_pie-chart.scss +91 -11
  471. package/src/sass/components/_popover.scss +18 -5
  472. package/src/sass/components/_progress.scss +152 -31
  473. package/src/sass/components/_pull-to-refresh.scss +90 -0
  474. package/src/sass/components/_questionnaire.scss +74 -3
  475. package/src/sass/components/_radar-chart.scss +38 -10
  476. package/src/sass/components/_radial-chart.scss +113 -5
  477. package/src/sass/components/_rich-text-editor.scss +2 -2
  478. package/src/sass/components/_sankey-chart.scss +114 -0
  479. package/src/sass/components/_scatter-chart.scss +153 -0
  480. package/src/sass/components/_scrim.scss +0 -2
  481. package/src/sass/components/_scrollspy.scss +0 -2
  482. package/src/sass/components/_search.scss +26 -22
  483. package/src/sass/components/_show-more.scss +8 -0
  484. package/src/sass/components/_side-sheet.scss +23 -37
  485. package/src/sass/components/_skeleton.scss +2 -4
  486. package/src/sass/components/_snackbar.scss +27 -21
  487. package/src/sass/components/_split-button.scss +5 -5
  488. package/src/sass/components/_stat.scss +3 -8
  489. package/src/sass/components/_stepper.scss +1 -1
  490. package/src/sass/components/_swipe-actions.scss +71 -0
  491. package/src/sass/components/_tabs.scss +51 -32
  492. package/src/sass/components/_timeline.scss +12 -12
  493. package/src/sass/components/_timepicker.scss +109 -78
  494. package/src/sass/components/_toolbar.scss +35 -43
  495. package/src/sass/components/_tooltip.scss +21 -12
  496. package/src/sass/components/_tour.scss +89 -0
  497. package/src/sass/components/_transfer-list.scss +73 -0
  498. package/src/sass/components/_transitions.scss +4 -4
  499. package/src/sass/components/_tree.scss +3 -16
  500. package/src/sass/components/_treemap-chart.scss +122 -0
  501. package/src/sass/components/forms/_checkboxes.scss +106 -24
  502. package/src/sass/components/forms/_color-picker.scss +135 -0
  503. package/src/sass/components/forms/_color-swatches.scss +85 -0
  504. package/src/sass/components/forms/_drop-zone.scss +15 -9
  505. package/src/sass/components/forms/_fieldset.scss +7 -7
  506. package/src/sass/components/forms/_file-input.scss +6 -8
  507. package/src/sass/components/forms/_index.scss +3 -1
  508. package/src/sass/components/forms/_input-fields.scss +254 -90
  509. package/src/sass/components/forms/_radio-buttons.scss +33 -94
  510. package/src/sass/components/forms/_rating.scss +2 -32
  511. package/src/sass/components/forms/_select.scss +199 -20
  512. package/src/sass/components/forms/_slider.scss +91 -94
  513. package/src/sass/components/forms/_switches.scss +53 -164
  514. package/src/sass/custom.scss +10 -1
  515. package/src/sass/expressive.scss +3 -63
  516. package/src/sass/tokens/_contrast.scss +94 -0
  517. package/src/sass/tokens/_elevation.scss +16 -0
  518. package/src/sass/tokens/_index.scss +5 -0
  519. package/src/sass/tokens/_motion.scss +109 -0
  520. package/src/sass/tokens/_reference.scss +72 -141
  521. package/src/sass/tokens/_shape.scss +38 -0
  522. package/src/sass/tokens/_stacking.scss +27 -0
  523. package/src/sass/tokens/_state.scss +0 -2
  524. package/src/sass/tokens/_theme.scss +10 -1
  525. package/src/sass/tokens/_vibrant.scss +2 -5
  526. package/src/sass/utilities/_defer-render.scss +17 -0
  527. package/src/sass/utilities/_helpers.scss +183 -26
  528. package/src/sass/utilities/_index.scss +1 -0
  529. package/src/sass/utilities/_scroll-area.scss +0 -2
  530. package/src/sass/utilities/_spacing.scss +52 -34
  531. package/src/sass/utilities/_typescale.scss +8 -1
  532. package/src/sass/utilities/_visibility.scss +47 -76
  533. package/src/sass/utilities/_z-depth.scss +7 -4
  534. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  535. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  536. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  537. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  538. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  539. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  540. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  541. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  543. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  546. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  548. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  549. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  553. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  554. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  556. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  559. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  562. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  564. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  567. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  568. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  569. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  570. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  572. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  573. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  574. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  575. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  578. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  580. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  582. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  584. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  587. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  589. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  590. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  591. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  592. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  593. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  594. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  596. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  597. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  598. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  599. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  600. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  602. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -5,24 +5,34 @@ export interface BaseOptions {
5
5
  }
6
6
  export type InitElement = HTMLElement | Element;
7
7
  export type InitElements<T extends InitElement> = NodeListOf<T> | HTMLCollectionOf<T>;
8
- type ComponentConstructor<T extends Component<O>, O extends BaseOptions> = {
9
- new (el: HTMLElement, options: Partial<O>): T;
8
+ /** Any component class; `init` reads its element, options and instance types. */
9
+ type ComponentClass = (new (el: never, options: never) => Component<BaseOptions>) & {
10
+ key: string;
10
11
  };
11
- type ComponentType<C extends Component<O>, O extends BaseOptions> = ComponentConstructor<C, O> & typeof Component<O>;
12
+ /** The element a component class is constructed on. */
13
+ type ElementOf<C extends ComponentClass> = C extends new (el: infer E, options: never) => unknown ? E : never;
14
+ /** The options `init` accepts for a component class. */
15
+ type InitOptions<C extends ComponentClass> = Partial<InstanceType<C>['options']>;
12
16
  export interface I18nOptions {
13
17
  cancel: string;
14
18
  clear: string;
15
19
  done: string;
16
20
  }
17
- export interface Openable {
18
- isOpen: boolean;
19
- open(): void;
20
- close(): void;
21
+ /** What {@link Component._notify} passes on, and when it stops. */
22
+ export interface NotifyOptions {
23
+ args?: unknown[];
24
+ detail?: unknown;
25
+ current?: () => boolean;
21
26
  }
22
27
  /**
23
28
  * Base class implementation for Expressive components.
24
29
  */
25
30
  export declare class Component<O extends BaseOptions> {
31
+ /**
32
+ * The element property that holds an instance, `Expressive_<Name>`, so page
33
+ * code can read `el.Expressive_Tabs` as well as call `Tabs.getInstance(el)`.
34
+ */
35
+ static key: string;
26
36
  /**
27
37
  * The DOM element the plugin was initialized with.
28
38
  */
@@ -31,42 +41,50 @@ export declare class Component<O extends BaseOptions> {
31
41
  * The options the instance was initialized with.
32
42
  */
33
43
  options: O;
44
+ /** Aborted by destroy(), which removes every listener added with its signal. */
45
+ protected _events: AbortController;
34
46
  /**
35
- * Constructs component instance and set everything up.
47
+ * Destroys any instance already on `el`, then spreads `options` over the
48
+ * class defaults, and `options.i18n` over the default strings, so passing
49
+ * one string keeps the rest. A subclass passes options it reads from
50
+ * markup in `options`.
36
51
  */
37
- constructor(el: HTMLElement, options: Partial<O>, classDef: ComponentType<Component<O>, O>);
52
+ constructor(el: HTMLElement, options: Partial<O>);
38
53
  /**
39
- * Initializes component instance.
54
+ * Initializes an instance of the class it is called on.
40
55
  * @param el HTML element.
41
56
  * @param options Component options.
42
- * @param classDef Class definition.
43
- */
44
- protected static init<I extends HTMLElement, O extends BaseOptions, C extends Component<O>>(el: I, options: O, classDef: ComponentType<C, O>): C;
45
- /**
46
- * Initializes component instances.
47
- * @param els HTML elements.
48
- * @param options Component options.
49
- * @param classDef Class definition.
50
57
  */
51
- protected static init<I extends InitElement, O extends BaseOptions, C extends Component<O>>(els: InitElements<I>, options: Partial<O>, classDef: ComponentType<C, O>): C[];
58
+ static init<C extends ComponentClass>(this: C, el: ElementOf<C>, options?: InitOptions<C>): InstanceType<C>;
52
59
  /**
53
- * Initializes component instances.
60
+ * Initializes an instance of the class it is called on for each element.
54
61
  * @param els HTML elements.
55
62
  * @param options Component options.
56
- * @param classDef Class definition.
57
63
  */
58
- protected static init<I extends InitElement, O extends BaseOptions, C extends Component<O>>(els: I | InitElements<I>, options: Partial<O>, classDef: ComponentType<C, O>): C | C[];
64
+ static init<C extends ComponentClass>(this: C, els: InitElements<InitElement>, options?: InitOptions<C>): InstanceType<C>[];
59
65
  /**
60
66
  * @returns default options for component instance.
61
67
  */
62
68
  static get defaults(): BaseOptions;
63
69
  /**
64
- * Retrieves component instance for the given element.
70
+ * Retrieves the instance of the class it is called on for the given element.
65
71
  * @param el Associated HTML Element.
66
72
  */
67
- static getInstance(el: HTMLElement): Component<BaseOptions>;
73
+ static getInstance<C extends ComponentClass>(this: C, el: HTMLElement): InstanceType<C>;
74
+ /**
75
+ * Runs an `on…` option callback, then fires `expressive:<type>` from the
76
+ * element, so pages can listen instead of passing options. The callback gets
77
+ * `args` (the element by default) and the event carries `detail`.
78
+ *
79
+ * A callback or listener may close, reopen or destroy the component. Pass
80
+ * `current` to tell whether the state `type` names still holds; the event
81
+ * is skipped once it does not, or once the instance is destroyed, and the
82
+ * result says whether to carry on.
83
+ */
84
+ protected _notify(type: string, callback?: Function | null, { args, detail, current }?: NotifyOptions): boolean;
68
85
  /**
69
- * Destroy plugin instance and teardown.
86
+ * Destroy plugin instance and teardown. A subclass tears down its own state
87
+ * and calls this to remove its listeners and release the element.
70
88
  */
71
89
  destroy(): void;
72
90
  }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A form-associated element that wraps a text input and submits for it, so
3
+ * the browser handles the field's values, reset, validity and disabled state.
4
+ * Chips and Cascader each define one under their own tag.
5
+ */
6
+ export interface FormControl extends HTMLElement {
7
+ readonly internals: ElementInternals;
8
+ /** Called for a form reset no listener canceled, in the same task. */
9
+ onFormReset: (() => void) | null;
10
+ }
11
+ /** Whether the browser has form-associated custom elements. jsdom does not. */
12
+ export declare const formAssociated: () => boolean;
13
+ /**
14
+ * Wraps `input` in a `tag` control that takes its name. `display: contents`
15
+ * lays the input out as a child of the field still. The control follows the
16
+ * input's disabled and form attributes, and `onChange` runs after the input's
17
+ * disabled, readonly or form attribute changes.
18
+ */
19
+ export declare function wrapInControl(tag: string, input: HTMLInputElement, onChange: () => void): FormControl;
20
+ /** Unwraps the control, with whatever else went in it, and gives `input` its name back. */
21
+ export declare function unwrapControl(control: FormControl, input: HTMLInputElement): void;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Springs solved at run time. The CSS springs are sampled at build time
3
+ * into linear() easings that always start from rest, so motion that is
4
+ * interrupted restarts. A spring solved here starts from where something
5
+ * is, at the speed it has, as M3's springs do: mass 1, a damping ratio and
6
+ * a stiffness.
7
+ */
8
+ export interface Spring {
9
+ damping: number;
10
+ stiffness: number;
11
+ }
12
+ /**
13
+ * The spring's path from `from` to `to`, released at `velocity` in units
14
+ * per millisecond, as one value a frame until it settles on `to`.
15
+ */
16
+ export declare function springPath(from: number, to: number, velocity: number, spring: Spring): number[];
17
+ /** The spring a CSS token names, from its -damping and -stiffness tokens, or null without them. */
18
+ export declare function springToken(el: Element, name: string): Spring | null;
19
+ /** Plays a path on one property, `write` turning each value into CSS. */
20
+ export declare function animatePath(el: Element, property: string, path: number[], write: (value: number) => string): Animation;
@@ -1,32 +1,36 @@
1
- /** The part of a `DOMRect` the positioning helpers below actually read. */
2
- type Bounding = Pick<DOMRect, 'left' | 'top' | 'width' | 'height'>;
3
- /** Which edges of a container a box has crossed. */
4
- type Edges = {
5
- top: boolean;
6
- right: boolean;
7
- bottom: boolean;
8
- left: boolean;
9
- };
1
+ /** Sets an attribute, or removes it for null, as when restoring a value read with getAttribute. */
2
+ export declare function restoreAttribute(el: Element, name: string, value: string | null): void;
3
+ /**
4
+ * Fills a picker's footer: a Clear button, hidden unless `showClearBtn`,
5
+ * then Cancel and Done unless the picker writes its value without them.
6
+ */
7
+ export declare function pickerFooter(footer: HTMLElement, { i18n, showClearBtn, autoSubmit }: {
8
+ i18n: Partial<Record<'clear' | 'cancel' | 'done', string>>;
9
+ showClearBtn: boolean;
10
+ autoSubmit: boolean;
11
+ }, clearClass: string, onClear: () => void, onConfirm: () => void, onCancel: () => void): void;
12
+ /**
13
+ * An AbortController from the window `node` is in. Its signal removes
14
+ * listeners added there, and jsdom rejects a signal from another window.
15
+ */
16
+ export declare function controllerFor(node: Node): AbortController;
17
+ /** An SVG element with its attributes. */
18
+ export declare function svgNode(name: string, attributes?: Record<string, string>): SVGElement;
10
19
  /**
11
20
  * Class with utilitary functions for global usage.
12
21
  */
13
22
  export declare class Utils {
14
23
  /**
15
- * Key maps. One `KeyboardEvent.key` value each: the second entries these used
16
- * to carry (`Esc`, `Up`, `Del`, ...) were IE and Edge Legacy spellings, and
17
- * the support baseline excludes both.
18
- */
19
- static keys: {
20
- TAB: string;
21
- ENTER: string;
22
- ESC: string;
23
- BACKSPACE: string;
24
- ARROW_UP: string;
25
- ARROW_DOWN: string;
26
- ARROW_LEFT: string;
27
- ARROW_RIGHT: string;
28
- DELETE: string;
29
- };
24
+ * Whether a keydown belongs to an IME composition, such as the Enter that
25
+ * confirms a candidate. Safari reports `isComposing` false for that Enter,
26
+ * so keyCode 229 covers it.
27
+ */
28
+ static isComposing(e: KeyboardEvent): boolean;
29
+ /**
30
+ * `handler`, skipped for every key of an IME composition: while the user
31
+ * picks a candidate, Enter, the arrows and Escape belong to the IME.
32
+ */
33
+ static ignoringComposition(handler: (e: KeyboardEvent) => void): (e: KeyboardEvent) => void;
30
34
  /**
31
35
  * Run `callback` once the document is parsed.
32
36
  *
@@ -36,6 +40,11 @@ export declare class Utils {
36
40
  * both orders.
37
41
  */
38
42
  static onDocumentReady(callback: () => void): void;
43
+ /**
44
+ * The language an element is written in, from the nearest `lang`, or
45
+ * undefined without one or for a tag the browser does not know.
46
+ */
47
+ static locale(el: Element): string | undefined;
39
48
  /**
40
49
  * Generates a unique string identifier. Every caller prefixes the result and
41
50
  * uses it as an element id, and a UUID is valid in that position.
@@ -71,70 +80,74 @@ export declare class Utils {
71
80
  */
72
81
  static getElementById(el: Node, id: string): HTMLElement;
73
82
  /**
74
- * Checks for exceeded edges
75
- * @param container Container element.
76
- * @param bounding Bounding rect.
77
- * @param offset Element offset.
78
- */
79
- static checkWithinContainer(container: HTMLElement, bounding: Bounding, offset: number): Edges;
80
- /**
81
- * Checks if element can be aligned in multiple directions.
82
- * @param el Element to be inspected.
83
- * @param container Container element.
84
- * @param bounding Bounding rect.
85
- * @param offset Element offset.
86
- */
87
- static checkPossibleAlignments(el: HTMLElement, container: HTMLElement, bounding: Bounding, offset: number): {
88
- top: boolean;
89
- right: boolean;
90
- bottom: boolean;
91
- left: boolean;
92
- spaceOnTop: number;
93
- spaceOnRight: number;
94
- spaceOnBottom: number;
95
- spaceOnLeft: number;
96
- };
83
+ * Adds or removes one name in an element's inline `anchor-name` list. A
84
+ * trigger can anchor a Tooltip and a Menu at once, and writing the whole
85
+ * property let the last writer, or the first to be destroyed, wipe the other.
86
+ */
87
+ static setAnchorName(el: HTMLElement, name: string, on: boolean): void;
97
88
  /**
98
- * Retrieves target element id from trigger.
99
- * @param trigger Trigger element.
89
+ * Fires `expressive:<type>` from `el`. It bubbles and crosses shadow roots,
90
+ * so a page can listen on the element, an ancestor or the document. A
91
+ * `cancelable` event returns false once a listener calls preventDefault().
100
92
  */
101
- static getIdFromTrigger(trigger: HTMLElement): string;
93
+ static emit(el: Element, type: string, detail?: unknown, cancelable?: boolean): boolean;
102
94
  /**
103
- * Retrieves document scroll postion from top.
95
+ * The element an event really started on, for a listener on the document.
96
+ * There `event.target` is retargeted to the shadow host, so delegation that
97
+ * reads it never sees anything inside an open shadow root. A closed root
98
+ * keeps its inside private and still yields the host.
104
99
  */
105
- static getDocumentScrollTop(): number;
100
+ static eventTarget(event: Event): Element | null;
101
+ /** Whether a key was pressed without Alt, Ctrl or Meta, which belong to the browser and the system. */
102
+ static plainKey(e: KeyboardEvent): boolean;
103
+ /** Where a key moves from `index` among `count` items: by `steps`, or to an end for Home and End. NaN for any other key. */
104
+ static _keyIndex(key: string, index: number, count: number, steps: Record<string, number>): number;
106
105
  /**
107
- * Retrieves document scroll postion from left.
106
+ * The item a key moves focus to, from the focused one among `items`: by
107
+ * the offset `steps` gives the key, or to the first or last for Home and
108
+ * End. Disabled items are skipped. Undefined for other keys, for a key
109
+ * with a modifier, when focus is on none of the items, and past either end
110
+ * unless `wrap`.
108
111
  */
109
- static getDocumentScrollLeft(): number;
112
+ static focusTarget(items: HTMLElement[], e: KeyboardEvent, steps: Record<string, number>, wrap?: boolean): HTMLElement | undefined;
110
113
  /**
111
- * Trailing-edge throttle: run `func` now, then at most once per `wait` ms
112
- * with the most recent arguments.
113
- *
114
- * This used to carry its underscore ancestor's whole configuration - leading
115
- * and trailing switches, a result passthrough - and both call sites are
116
- * resize handlers passing nothing but a function and a delay.
117
- *
118
- * Assign the return value once. `x = Utils.throttle(fn, 200)` is right;
119
- * wrapping it in an arrow builds a fresh closure per event and never calls
120
- * it, which is how resize handling was dead in three components.
114
+ * Whether focus is on or inside any of `els`, read from each element's own
115
+ * root. A document listener cannot tell from `composedPath()` when the
116
+ * element sits in a closed shadow root, but the element's root still knows
117
+ * what has focus.
118
+ */
119
+ static focusIsIn(...els: (Element | null | undefined)[]): boolean;
120
+ /**
121
+ * `closest()` for a document listener: the nearest element on the event's
122
+ * composed path that matches `selector`. Unlike `eventTarget(e).closest()`
123
+ * it climbs out of shadow roots too, so a press on a shadow-root icon inside
124
+ * a light-DOM button still finds the button.
121
125
  */
122
- static throttle(func: (...args: unknown[]) => void, wait: number): (...args: unknown[]) => void;
126
+ static closestInPath(event: Event, selector: string): Element | null;
123
127
  /**
124
- * Renders confirm/close buttons with callback function
128
+ * Retrieves target element id from trigger.
129
+ * @param trigger Trigger element.
125
130
  */
126
- static createConfirmationContainer(container: HTMLElement, confirmText: string, cancelText: string, onConfirm: (Function: object) => void, onCancel: (Function: object) => void): void;
131
+ static getIdFromTrigger(trigger: HTMLElement): string;
127
132
  /**
128
- * Renders a button with optional callback function
133
+ * Writes document coordinates as `top`/`left` on an absolutely positioned
134
+ * element. A static body uses document coordinates; positioned parents,
135
+ * such as a shadow host, use their padding edge, including borders and
136
+ * local scrolling.
129
137
  */
130
- static createButton(container: HTMLElement, text: string, className?: string[], visibility?: boolean, callback?: (Function: object) => void): void;
131
- static _setAbsolutePosition(origin: HTMLElement, container: HTMLElement, position: string, margin: number, transitionMovement: number, align?: string): {
138
+ static _placeInOffsetParent(el: HTMLElement, coordinates: {
132
139
  x: number;
133
140
  y: number;
134
- };
141
+ }): void;
142
+ /**
143
+ * Moves document coordinates so a `width` by `height` box stays in the
144
+ * viewport. A box past the left or top edge, or within `offset` of it,
145
+ * starts `offset` in; a box past the right or bottom edge, or within
146
+ * `offset` of it, ends at that edge. `offset` is the margin plus the slide
147
+ * distance, or minus it for right alignment.
148
+ */
135
149
  static _repositionWithinScreen(x: number, y: number, width: number, height: number, margin: number, transitionMovement: number, align: string): {
136
150
  x: number;
137
151
  y: number;
138
152
  };
139
153
  }
140
- export {};
@@ -1,11 +1,21 @@
1
1
  export * from './components';
2
2
  export { Dialogs } from './behaviors/dialogs';
3
+ export type { ConfirmOptions } from './behaviors/dialogs';
3
4
  export { BottomSheets } from './behaviors/bottomSheets';
4
5
  export { SideSheets } from './behaviors/sideSheets';
5
6
  export { Forms } from './behaviors/forms';
7
+ export { Copy } from './behaviors/copy';
8
+ export { Theme } from './behaviors/theme';
9
+ export { PaneResize } from './behaviors/paneResize';
10
+ export { ImageCompare } from './behaviors/imageCompare';
11
+ export { Tour } from './behaviors/tour';
12
+ export { Sortable } from './behaviors/sortable';
13
+ export { Lists } from './behaviors/lists';
14
+ export { DataTables } from './behaviors/dataTables';
15
+ export { TransferList } from './behaviors/transferList';
6
16
  export { AutoInit } from './components/registry';
7
17
  export type { AutoInitOptions } from './components/registry';
8
- export declare const version = "0.15.0";
18
+ export declare const version = "0.16.0";
9
19
  export type * from './components/autocomplete';
10
20
  export type * from './components/appBar';
11
21
  export type * from './components/buttons';
@@ -13,8 +23,12 @@ export type * from './components/buttonGroup';
13
23
  export type * from './components/cards';
14
24
  export type * from './components/expandingCard';
15
25
  export type * from './components/carousel';
26
+ export type * from './components/confetti';
27
+ export type * from './components/particles';
28
+ export type * from './components/keypad';
16
29
  export type * from './components/characterCounter';
17
30
  export type * from './components/chips';
31
+ export type * from './components/cascader';
18
32
  export type * from './components/lineChart';
19
33
  export type * from './components/columnChart';
20
34
  export type * from './components/barChart';
@@ -23,13 +37,31 @@ export type * from './components/heatmapChart';
23
37
  export type * from './components/radarChart';
24
38
  export type * from './components/radialChart';
25
39
  export type * from './components/mixedChart';
40
+ export type * from './components/scatterChart';
41
+ export type * from './components/funnelChart';
42
+ export type * from './components/sankeyChart';
43
+ export type * from './components/treemapChart';
44
+ export type * from './components/pullToRefresh';
45
+ export type * from './components/loadingOverlay';
46
+ export type * from './components/backToTop';
47
+ export type * from './components/swipeActions';
48
+ export type * from './components/inputMask';
49
+ export type * from './components/showMore';
50
+ export type * from './components/hoverCard';
51
+ export type * from './components/currencyInput';
52
+ export type * from './components/commandPalette';
26
53
  export type * from './components/questionnaire';
27
54
  export type * from './components/datepicker';
28
55
  export type * from './components/menu';
56
+ export type * from './components/menubar';
57
+ export type * from './components/messageScroller';
58
+ export type * from './components/richTextEditor';
59
+ export type * from './components/mapView';
29
60
  export type * from './components/lightbox';
30
61
  export type * from './components/slider';
31
62
  export type * from './components/scrollspy';
32
63
  export type * from './components/select';
64
+ export type * from './components/treeSelect';
33
65
  export type * from './components/navigationRail';
34
66
  export type * from './components/tabs';
35
67
  export type * from './components/timepicker';
@@ -21,22 +21,24 @@ export declare class DockedDisplayPlugin {
21
21
  private readonly container;
22
22
  private options;
23
23
  private visible;
24
+ /**
25
+ * Elements whose clicks count as inside, beside the container: the element
26
+ * the container docks to, and any other control that opens it, such as a
27
+ * date range's end input. A click on one of those must not close it.
28
+ */
29
+ readonly triggers: HTMLElement[];
24
30
  constructor(el: HTMLElement, container: HTMLElement, options: Partial<DockedDisplayPluginOptions>);
25
31
  private _handleDocumentClick;
26
- private get _transition();
32
+ /** Eases the container to `y` pixels down and to `opacity`. */
33
+ private _animate;
34
+ /** Places the container below the element, kept on screen. */
35
+ private _place;
27
36
  /**
28
37
  * Tears the plugin down. While shown, the document listener holds a
29
38
  * reference to this instance - and through it the whole picker subtree - so
30
39
  * the owning component must call this from its own destroy().
31
40
  */
32
41
  destroy: () => void;
33
- /**
34
- * Initializes instance of DockedDisplayPlugin
35
- * @param el HTMLElement to position to
36
- * @param container HTMLElement to be positioned
37
- * @param options Plugin options
38
- */
39
- static init(el: HTMLElement, container: HTMLElement, options?: Partial<DockedDisplayPluginOptions>): DockedDisplayPlugin;
40
42
  show: () => void;
41
43
  hide: () => void;
42
44
  }
@@ -0,0 +1,32 @@
1
+ import { DockedDisplayPlugin, DockedDisplayPluginOptions } from './dockedDisplayPlugin';
2
+ /**
3
+ * Shows a picker in a modal <dialog>, which the dialog styles draw as a
4
+ * basic dialog over a scrim. The browser keeps focus inside it. Escape or a
5
+ * press on the scrim closes it, and the picker hears that as Cancel; the
6
+ * picker closes it itself through hide() on Ok or Cancel. Focus goes back
7
+ * to the field that opened it.
8
+ */
9
+ export declare class ModalDisplayPlugin {
10
+ /** The fields that open the dialog, as DockedDisplayPlugin keeps them. */
11
+ readonly triggers: HTMLElement[];
12
+ private readonly dialog;
13
+ private readonly onDismiss;
14
+ /** Whether the picker, not the user, is closing the dialog. */
15
+ private _settled;
16
+ private _opener;
17
+ constructor(el: HTMLElement, container: HTMLElement, onDismiss: () => void);
18
+ /** The picker fills the dialog, so a press on the dialog itself is on the scrim. */
19
+ private _handleClick;
20
+ private _handleClose;
21
+ destroy: () => void;
22
+ show: () => void;
23
+ hide: () => void;
24
+ }
25
+ export type DisplayPlugin = DockedDisplayPlugin | ModalDisplayPlugin;
26
+ /**
27
+ * The display plugin a picker's `displayPlugin` option names: 'docked',
28
+ * 'modal', or none for an inline picker. `onDismiss` is the picker's Cancel.
29
+ */
30
+ export declare function createDisplayPlugin(type: string | null, el: HTMLElement, container: HTMLElement, options: Partial<DockedDisplayPluginOptions>, onDismiss: () => void): DisplayPlugin | undefined;
31
+ /** Ok and Cancel close a modal picker; a docked one stays until a click outside. */
32
+ export declare function hideModal(plugin: DisplayPlugin | undefined): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expressivecss/expressive",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "ExpressiveCSS - a Material Design 3 front-end framework.",
5
5
  "license": "MIT",
6
6
  "author": "BaezFJ <baezdevs@gmail.com>",
@@ -79,10 +79,9 @@
79
79
  "build:js:iife": "esbuild src/ts/index.ts --bundle --format=iife --global-name=Expressive --target=es2020 --outfile=dist/js/expressive.js --sourcemap",
80
80
  "build:js:iife-min": "esbuild src/ts/index.ts --bundle --format=iife --global-name=Expressive --target=es2020 --outfile=dist/js/expressive.min.js --minify --sourcemap",
81
81
  "build:types": "tsc -p tsconfig.build.json",
82
- "build:skill": "node scripts/gen-expressivecss-skill.mjs && node mcp/expressivecss/scripts/sync-guides.mjs",
82
+ "build:skill": "node scripts/gen-expressivecss-skill.mjs",
83
83
  "build:semantics": "node scripts/gen-semantics.mjs",
84
- "resolve:expressivecss": "node skills/expressivecss/scripts/resolve-version.mjs",
85
- "test:skill": "node --test tests/expressivecss-skill.test.js tests/expressivecss-version-resolution.test.js tests/expressivecss-component-decisions.test.js tests/expressivecss-skill-evals.test.js tests/expressivecss-codex-adapter.test.js tests/expressivecss-skill-benchmark.test.js tests/expressivecss-eval-browser.test.js tests/expressivecss-interface-quality.test.js tests/expressivecss-material-quality.test.js tests/expressivecss-eval-provenance.test.js tests/expressivecss-natural-discovery.test.js && npm run test:skill-evals",
84
+ "test:skill": "node --test tests/expressivecss-skill.test.js tests/expressivecss-version-resolution.test.js tests/expressivecss-component-decisions.test.js tests/expressivecss-skill-evals.test.js tests/expressivecss-codex-adapter.test.js tests/expressivecss-skill-benchmark.test.js tests/expressivecss-eval-browser.test.js tests/expressivecss-interface-quality.test.js tests/expressivecss-material-quality.test.js tests/expressivecss-eval-provenance.test.js tests/expressivecss-natural-discovery.test.js tests/expressivecss-migration-skill.test.js && npm run test:skill-evals",
86
85
  "test:skill-evals": "node scripts/eval-expressivecss-skill.mjs --responses=tests/fixtures/expressivecss-skill-evals/passing-responses.json",
87
86
  "docs:dev": "run-s build docs:watch",
88
87
  "docs:watch": "run-p watch:css watch:js docs:server",
@@ -100,14 +99,13 @@
100
99
  "test:visual:docker": "node scripts/run-docker.mjs --visual",
101
100
  "test:packages:docker": "node scripts/run-docker.mjs sh -c 'npm ci --prefix mcp/expressivecss && npm test --prefix mcp/expressivecss && npm run verify:packages'",
102
101
  "test:browser:critical": "node scripts/check-browser.mjs && node --test tests/expressivecss-cross-browser.test.js",
103
- "test:browser:run": "node scripts/check-browser.mjs && node --test tests/*-browser.test.js",
104
- "test:watch": "node --test --watch",
102
+ "test:browser:run": "node scripts/check-browser.mjs && node scripts/run-node-tests.mjs --browser",
105
103
  "test:visual": "node visual/run.mjs",
106
104
  "test:visual:report": "playwright show-report visual/report",
107
105
  "watch": "run-p watch:css watch:js",
108
106
  "watch:css": "sass --watch src/sass/expressive.scss:dist/css/expressive.css --style=expanded --source-map --load-path=src/sass",
109
107
  "watch:js": "esbuild src/ts/index.ts --bundle --format=iife --global-name=Expressive --target=es2020 --outfile=dist/js/expressive.js --sourcemap --watch=forever",
110
- "check:generated": "node scripts/gen-semantics.mjs --check && node scripts/gen-expressivecss-skill.mjs --check && node mcp/expressivecss/scripts/sync-guides.mjs --check",
108
+ "check:generated": "node scripts/gen-semantics.mjs --check && node scripts/gen-expressivecss-skill.mjs --check",
111
109
  "verify": "run-s build typecheck test:run check:generated docs:build:astro docs:verify",
112
110
  "verify:packages": "node scripts/verify-packages.mjs",
113
111
  "test:node": "node scripts/run-node-tests.mjs",
@@ -128,14 +126,18 @@
128
126
  "@fontsource-variable/material-symbols-rounded": "^5.3.4",
129
127
  "@fontsource-variable/material-symbols-sharp": "^5.3.4",
130
128
  "@fontsource/noto-sans": "^5.3.0",
129
+ "@fontsource/noto-sans-arabic": "^5.3.0",
130
+ "@fontsource/noto-sans-hebrew": "^5.3.0",
131
+ "@fontsource/noto-sans-thai": "^5.3.0",
131
132
  "@fontsource/roboto": "^5.3.0",
132
133
  "@playwright/test": "^1.56.0",
133
134
  "@tiptap/core": "^3.31.4",
134
135
  "@tiptap/pm": "^3.31.4",
135
136
  "@tiptap/starter-kit": "^3.31.4",
137
+ "alpinejs": "^3.17.5",
136
138
  "astro": "^7.2.8",
137
139
  "esbuild": "^0.28.2",
138
- "fallow": "^3.23.0",
140
+ "fallow": "^3.33.1",
139
141
  "jsdom": "^30.0.1",
140
142
  "maplibre-gl": "^6.13.0",
141
143
  "npm-run-all2": "^9.0.3",