@expressivecss/expressive 0.16.0 → 0.17.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 (384) hide show
  1. package/CHANGELOG.md +306 -1
  2. package/README.md +1 -1
  3. package/dist/css/expressive.css +540 -646
  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/js/chunks/{chunk-PA7NU5AK.mjs → chunk-26VUH75M.mjs} +6 -3
  8. package/dist/js/chunks/chunk-26VUH75M.mjs.map +7 -0
  9. package/dist/js/chunks/{chunk-NBJAUGPP.mjs → chunk-2LFCOGC3.mjs} +12 -23
  10. package/dist/js/chunks/chunk-2LFCOGC3.mjs.map +7 -0
  11. package/dist/js/chunks/{chunk-OP43LLIC.mjs → chunk-36GELQGX.mjs} +4 -4
  12. package/dist/js/chunks/{chunk-OP43LLIC.mjs.map → chunk-36GELQGX.mjs.map} +2 -2
  13. package/dist/js/chunks/{chunk-EC26RU2D.mjs → chunk-3FKWIRHW.mjs} +6 -2
  14. package/dist/js/chunks/chunk-3FKWIRHW.mjs.map +7 -0
  15. package/dist/js/chunks/{chunk-Y6H2X7ZC.mjs → chunk-3KF65KGL.mjs} +3 -3
  16. package/dist/js/chunks/{chunk-4QUCNFSD.mjs → chunk-3KLZRQZI.mjs} +31 -10
  17. package/dist/js/chunks/chunk-3KLZRQZI.mjs.map +7 -0
  18. package/dist/js/chunks/{chunk-75E5EDJF.mjs → chunk-3XORNED5.mjs} +2 -2
  19. package/dist/js/chunks/{chunk-NNHVANQA.mjs → chunk-4WBGAQN3.mjs} +3 -3
  20. package/dist/js/chunks/{chunk-ZJNLAGY5.mjs → chunk-5F4URJHL.mjs} +2 -2
  21. package/dist/js/chunks/{chunk-ZVLOUDIJ.mjs → chunk-67UNY7RH.mjs} +50 -2
  22. package/dist/js/chunks/chunk-67UNY7RH.mjs.map +7 -0
  23. package/dist/js/chunks/{chunk-P6DRQ6KS.mjs → chunk-7CXNATJS.mjs} +6 -5
  24. package/dist/js/chunks/chunk-7CXNATJS.mjs.map +7 -0
  25. package/dist/js/chunks/{chunk-4TRZ2AER.mjs → chunk-7X44MKEQ.mjs} +15 -14
  26. package/dist/js/chunks/chunk-7X44MKEQ.mjs.map +7 -0
  27. package/dist/js/chunks/{chunk-GWZ76SR4.mjs → chunk-7ZAMOMGY.mjs} +12 -7
  28. package/dist/js/chunks/chunk-7ZAMOMGY.mjs.map +7 -0
  29. package/dist/js/chunks/{chunk-GVZQH2H5.mjs → chunk-AEG6LOAJ.mjs} +2 -2
  30. package/dist/js/chunks/{chunk-Y6TLRA3U.mjs → chunk-AQNFCJJ5.mjs} +27 -21
  31. package/dist/js/chunks/chunk-AQNFCJJ5.mjs.map +7 -0
  32. package/dist/js/chunks/{chunk-OUCHKSAW.mjs → chunk-B55LWKBM.mjs} +16 -4
  33. package/dist/js/chunks/chunk-B55LWKBM.mjs.map +7 -0
  34. package/dist/js/chunks/{chunk-AI73GJKG.mjs → chunk-BB5VXYXT.mjs} +2 -2
  35. package/dist/js/chunks/{chunk-2RLBDFH4.mjs → chunk-BDATLH3H.mjs} +4 -4
  36. package/dist/js/chunks/{chunk-2CS6TITK.mjs → chunk-CWMQOT4O.mjs} +23 -10
  37. package/dist/js/chunks/chunk-CWMQOT4O.mjs.map +7 -0
  38. package/dist/js/chunks/{chunk-ZKWUWBUB.mjs → chunk-CY2CTOVM.mjs} +2 -2
  39. package/dist/js/chunks/{chunk-CSYWKEK3.mjs → chunk-DWA5UYLJ.mjs} +58 -27
  40. package/dist/js/chunks/chunk-DWA5UYLJ.mjs.map +7 -0
  41. package/dist/js/chunks/{chunk-CMGXGYUC.mjs → chunk-EB2V4OKL.mjs} +14 -9
  42. package/dist/js/chunks/chunk-EB2V4OKL.mjs.map +7 -0
  43. package/dist/js/chunks/{chunk-Z4GICXR2.mjs → chunk-EWO662ZC.mjs} +5 -7
  44. package/dist/js/chunks/chunk-EWO662ZC.mjs.map +7 -0
  45. package/dist/js/chunks/{chunk-VGY4M57S.mjs → chunk-F7LAKFMX.mjs} +67 -34
  46. package/dist/js/chunks/chunk-F7LAKFMX.mjs.map +7 -0
  47. package/dist/js/chunks/{chunk-67ZPPKXS.mjs → chunk-FNIIH2LU.mjs} +3 -3
  48. package/dist/js/chunks/chunk-GE3YMFS6.mjs +15 -0
  49. package/dist/js/chunks/chunk-GE3YMFS6.mjs.map +7 -0
  50. package/dist/js/chunks/{chunk-DZYVU75J.mjs → chunk-GFWYMWYN.mjs} +18 -14
  51. package/dist/js/chunks/chunk-GFWYMWYN.mjs.map +7 -0
  52. package/dist/js/chunks/{chunk-3L3QIYLC.mjs → chunk-H5ISU45X.mjs} +8 -6
  53. package/dist/js/chunks/chunk-H5ISU45X.mjs.map +7 -0
  54. package/dist/js/chunks/{chunk-QXKWVHBD.mjs → chunk-H6YIKFAQ.mjs} +67 -46
  55. package/dist/js/chunks/chunk-H6YIKFAQ.mjs.map +7 -0
  56. package/dist/js/chunks/{chunk-KZPSAXIU.mjs → chunk-HEH7E3KO.mjs} +22 -12
  57. package/dist/js/chunks/chunk-HEH7E3KO.mjs.map +7 -0
  58. package/dist/js/chunks/{chunk-T3BNSRP3.mjs → chunk-HQRLBTNM.mjs} +3 -3
  59. package/dist/js/chunks/{chunk-NAC72P7R.mjs → chunk-I2F7MLUU.mjs} +2 -2
  60. package/dist/js/chunks/{chunk-ZM3XBHWV.mjs → chunk-IQOTGGHX.mjs} +86 -35
  61. package/dist/js/chunks/chunk-IQOTGGHX.mjs.map +7 -0
  62. package/dist/js/chunks/{chunk-QACZ6TUP.mjs → chunk-JH3YWKA6.mjs} +5 -4
  63. package/dist/js/chunks/chunk-JH3YWKA6.mjs.map +7 -0
  64. package/dist/js/chunks/chunk-JOLJAYIJ.mjs +7 -0
  65. package/dist/js/chunks/{chunk-4IKVPCSU.mjs.map → chunk-JOLJAYIJ.mjs.map} +1 -1
  66. package/dist/js/chunks/{chunk-BPF3I2MN.mjs → chunk-KOTGMCMI.mjs} +9 -2
  67. package/dist/js/chunks/chunk-KOTGMCMI.mjs.map +7 -0
  68. package/dist/js/chunks/{chunk-ANKFWNWT.mjs → chunk-LC4O5LFS.mjs} +3 -3
  69. package/dist/js/chunks/{chunk-4PIXLDNJ.mjs → chunk-LEF33SCP.mjs} +2 -2
  70. package/dist/js/chunks/{chunk-ILDRRG7T.mjs → chunk-LFORZRPH.mjs} +3 -3
  71. package/dist/js/chunks/{chunk-Z4OARDZ7.mjs → chunk-LWLNV5EC.mjs} +26 -17
  72. package/dist/js/chunks/chunk-LWLNV5EC.mjs.map +7 -0
  73. package/dist/js/chunks/{chunk-WU7XJ4RR.mjs → chunk-LXRHUQAX.mjs} +66 -25
  74. package/dist/js/chunks/chunk-LXRHUQAX.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-VMY55K2X.mjs → chunk-MA2SZZFB.mjs} +11 -7
  76. package/dist/js/chunks/chunk-MA2SZZFB.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-VJVQIXHC.mjs → chunk-MDBZAMIV.mjs} +8 -10
  78. package/dist/js/chunks/chunk-MDBZAMIV.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-4EWGD4V2.mjs → chunk-NODZ5VAD.mjs} +2 -2
  80. package/dist/js/chunks/{chunk-UGJHCHXG.mjs → chunk-O2WJB6TH.mjs} +79 -55
  81. package/dist/js/chunks/chunk-O2WJB6TH.mjs.map +7 -0
  82. package/dist/js/chunks/{chunk-7YZ5CN3V.mjs → chunk-PCABY5BN.mjs} +5 -3
  83. package/dist/js/chunks/chunk-PCABY5BN.mjs.map +7 -0
  84. package/dist/js/chunks/{chunk-X7SDA2J5.mjs → chunk-PWKYVMND.mjs} +9 -5
  85. package/dist/js/chunks/{chunk-X7SDA2J5.mjs.map → chunk-PWKYVMND.mjs.map} +2 -2
  86. package/dist/js/chunks/{chunk-SPPHF7YZ.mjs → chunk-QHZZT7YO.mjs} +35 -14
  87. package/dist/js/chunks/chunk-QHZZT7YO.mjs.map +7 -0
  88. package/dist/js/chunks/{chunk-LDXCC2L3.mjs → chunk-QND56EW2.mjs} +5 -4
  89. package/dist/js/chunks/chunk-QND56EW2.mjs.map +7 -0
  90. package/dist/js/chunks/{chunk-NVQ5EHCU.mjs → chunk-QNODAANY.mjs} +4 -4
  91. package/dist/js/chunks/{chunk-7NLUI3RR.mjs → chunk-QRO5FV3I.mjs} +23 -13
  92. package/dist/js/chunks/chunk-QRO5FV3I.mjs.map +7 -0
  93. package/dist/js/chunks/{chunk-FCNF4GRJ.mjs → chunk-R7A7JRC5.mjs} +6 -11
  94. package/dist/js/chunks/chunk-R7A7JRC5.mjs.map +7 -0
  95. package/dist/js/chunks/{chunk-S23RJ3XY.mjs → chunk-RKG2CBFE.mjs} +4 -16
  96. package/dist/js/chunks/chunk-RKG2CBFE.mjs.map +7 -0
  97. package/dist/js/chunks/{chunk-6FSEUFVW.mjs → chunk-RSNS5OYS.mjs} +6 -6
  98. package/dist/js/chunks/chunk-RSNS5OYS.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-ROH2HDB4.mjs → chunk-RUDYMEJ3.mjs} +2 -2
  100. package/dist/js/chunks/{chunk-BIGU5RCJ.mjs → chunk-STJR62SU.mjs} +13 -5
  101. package/dist/js/chunks/chunk-STJR62SU.mjs.map +7 -0
  102. package/dist/js/chunks/{chunk-752ADW4M.mjs → chunk-SUSD4UTN.mjs} +27 -32
  103. package/dist/js/chunks/chunk-SUSD4UTN.mjs.map +7 -0
  104. package/dist/js/chunks/{chunk-B7DQFHA5.mjs → chunk-SYBOA5HC.mjs} +7 -12
  105. package/dist/js/chunks/chunk-SYBOA5HC.mjs.map +7 -0
  106. package/dist/js/chunks/{chunk-TFABTUAZ.mjs → chunk-T4MOBP3J.mjs} +2 -2
  107. package/dist/js/chunks/{chunk-GCWWEZKO.mjs → chunk-TM7HPGTV.mjs} +3 -3
  108. package/dist/js/chunks/{chunk-5KIHWJI2.mjs → chunk-TMQDZSDC.mjs} +34 -12
  109. package/dist/js/chunks/chunk-TMQDZSDC.mjs.map +7 -0
  110. package/dist/js/chunks/{chunk-ZO6ZLHFF.mjs → chunk-TVSX5YA2.mjs} +3 -3
  111. package/dist/js/chunks/{chunk-INLZWHLY.mjs → chunk-UHO5CV6K.mjs} +2 -2
  112. package/dist/js/chunks/{chunk-INLZWHLY.mjs.map → chunk-UHO5CV6K.mjs.map} +2 -2
  113. package/dist/js/chunks/{chunk-7YQBHTK3.mjs → chunk-UKCNELUN.mjs} +6 -8
  114. package/dist/js/chunks/chunk-UKCNELUN.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-VH4BMAZS.mjs → chunk-UKQK5GWR.mjs} +13 -13
  116. package/dist/js/chunks/chunk-UKQK5GWR.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-OYNUDOHR.mjs → chunk-UTSLYQ65.mjs} +7 -6
  118. package/dist/js/chunks/{chunk-OYNUDOHR.mjs.map → chunk-UTSLYQ65.mjs.map} +2 -2
  119. package/dist/js/chunks/{chunk-7W7TV6NY.mjs → chunk-VS5OJBOD.mjs} +2 -2
  120. package/dist/js/chunks/{chunk-7W7TV6NY.mjs.map → chunk-VS5OJBOD.mjs.map} +2 -2
  121. package/dist/js/chunks/{chunk-KYIEG4U3.mjs → chunk-VZMROW5A.mjs} +43 -14
  122. package/dist/js/chunks/chunk-VZMROW5A.mjs.map +7 -0
  123. package/dist/js/chunks/{chunk-VFV75DHF.mjs → chunk-XB6Y7P5W.mjs} +11 -12
  124. package/dist/js/chunks/chunk-XB6Y7P5W.mjs.map +7 -0
  125. package/dist/js/chunks/{chunk-CZSQHXEV.mjs → chunk-XDAMOMVD.mjs} +20 -21
  126. package/dist/js/chunks/chunk-XDAMOMVD.mjs.map +7 -0
  127. package/dist/js/chunks/{chunk-EVCVFEV3.mjs → chunk-XJPMW5SP.mjs} +21 -35
  128. package/dist/js/chunks/chunk-XJPMW5SP.mjs.map +7 -0
  129. package/dist/js/chunks/{chunk-VR3L2WN5.mjs → chunk-YKANQILZ.mjs} +7 -6
  130. package/dist/js/chunks/chunk-YKANQILZ.mjs.map +7 -0
  131. package/dist/js/chunks/{chunk-JUKBBN6P.mjs → chunk-YLZOJLDI.mjs} +2 -2
  132. package/dist/js/chunks/{chunk-U4B3VHFS.mjs → chunk-ZK7YY322.mjs} +28 -21
  133. package/dist/js/chunks/chunk-ZK7YY322.mjs.map +7 -0
  134. package/dist/js/expressive.cjs +2739 -2387
  135. package/dist/js/expressive.cjs.map +4 -4
  136. package/dist/js/expressive.js +2739 -2387
  137. package/dist/js/expressive.js.map +4 -4
  138. package/dist/js/expressive.min.js +7 -7
  139. package/dist/js/expressive.min.js.map +4 -4
  140. package/dist/js/expressive.mjs +76 -75
  141. package/dist/js/expressive.mjs.map +1 -1
  142. package/dist/js/internal/behaviors/bottomSheets.mjs +3 -3
  143. package/dist/js/internal/behaviors/copy.mjs +3 -3
  144. package/dist/js/internal/behaviors/dataTables.mjs +2 -4
  145. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  146. package/dist/js/internal/behaviors/forms.mjs +2 -2
  147. package/dist/js/internal/behaviors/imageCompare.mjs +2 -2
  148. package/dist/js/internal/behaviors/lists.mjs +2 -2
  149. package/dist/js/internal/behaviors/paneResize.mjs +2 -2
  150. package/dist/js/internal/behaviors/sheetDrag.mjs +2 -2
  151. package/dist/js/internal/behaviors/sideSheets.mjs +3 -3
  152. package/dist/js/internal/behaviors/sortable.mjs +2 -2
  153. package/dist/js/internal/behaviors/theme.mjs +2 -2
  154. package/dist/js/internal/behaviors/tour.mjs +2 -2
  155. package/dist/js/internal/behaviors/transferList.mjs +2 -2
  156. package/dist/js/internal/components/appBar.mjs +3 -3
  157. package/dist/js/internal/components/autocomplete.mjs +5 -4
  158. package/dist/js/internal/components/backToTop.mjs +3 -3
  159. package/dist/js/internal/components/barChart.mjs +5 -5
  160. package/dist/js/internal/components/buttonGroup.mjs +3 -3
  161. package/dist/js/internal/components/buttons.mjs +3 -3
  162. package/dist/js/internal/components/cards.mjs +3 -3
  163. package/dist/js/internal/components/carousel.mjs +3 -3
  164. package/dist/js/internal/components/cascader.mjs +4 -4
  165. package/dist/js/internal/components/characterCounter.mjs +3 -3
  166. package/dist/js/internal/components/chips.mjs +7 -6
  167. package/dist/js/internal/components/colorPicker.mjs +3 -3
  168. package/dist/js/internal/components/columnChart.mjs +4 -4
  169. package/dist/js/internal/components/commandPalette.mjs +3 -3
  170. package/dist/js/internal/components/confetti.mjs +3 -3
  171. package/dist/js/internal/components/currencyInput.mjs +3 -3
  172. package/dist/js/internal/components/datepicker.mjs +8 -7
  173. package/dist/js/internal/components/expandingCard.mjs +3 -3
  174. package/dist/js/internal/components/funnelChart.mjs +4 -4
  175. package/dist/js/internal/components/heatmapChart.mjs +4 -4
  176. package/dist/js/internal/components/hoverCard.mjs +3 -3
  177. package/dist/js/internal/components/index.mjs +60 -59
  178. package/dist/js/internal/components/inputMask.mjs +3 -3
  179. package/dist/js/internal/components/keypad.mjs +3 -3
  180. package/dist/js/internal/components/lightbox.mjs +3 -3
  181. package/dist/js/internal/components/lineChart.mjs +23 -7
  182. package/dist/js/internal/components/loadingOverlay.mjs +3 -3
  183. package/dist/js/internal/components/mapView.mjs +3 -3
  184. package/dist/js/internal/components/menu.mjs +3 -3
  185. package/dist/js/internal/components/menubar.mjs +4 -4
  186. package/dist/js/internal/components/messageScroller.mjs +3 -3
  187. package/dist/js/internal/components/mixedChart.mjs +5 -5
  188. package/dist/js/internal/components/navigationRail.mjs +3 -3
  189. package/dist/js/internal/components/particles.mjs +3 -3
  190. package/dist/js/internal/components/pieChart.mjs +4 -4
  191. package/dist/js/internal/components/pullToRefresh.mjs +3 -3
  192. package/dist/js/internal/components/questionnaire.mjs +3 -3
  193. package/dist/js/internal/components/radarChart.mjs +4 -4
  194. package/dist/js/internal/components/radialChart.mjs +4 -4
  195. package/dist/js/internal/components/registry.mjs +59 -58
  196. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  197. package/dist/js/internal/components/sankeyChart.mjs +4 -4
  198. package/dist/js/internal/components/scatterChart.mjs +4 -4
  199. package/dist/js/internal/components/scrollspy.mjs +3 -3
  200. package/dist/js/internal/components/select.mjs +5 -4
  201. package/dist/js/internal/components/showMore.mjs +3 -3
  202. package/dist/js/internal/components/slider.mjs +3 -3
  203. package/dist/js/internal/components/snackbar.mjs +2 -2
  204. package/dist/js/internal/components/swipeActions.mjs +3 -3
  205. package/dist/js/internal/components/tabs.mjs +3 -3
  206. package/dist/js/internal/components/timepicker.mjs +5 -5
  207. package/dist/js/internal/components/tooltip.mjs +3 -3
  208. package/dist/js/internal/components/treeSelect.mjs +6 -5
  209. package/dist/js/internal/components/treemapChart.mjs +4 -4
  210. package/dist/js/internal/core/component.mjs +6 -4
  211. package/dist/js/internal/core/formControl.mjs +2 -2
  212. package/dist/js/internal/core/imageURL.mjs +7 -0
  213. package/dist/js/internal/core/imageURL.mjs.map +7 -0
  214. package/dist/js/internal/core/utils.mjs +11 -1
  215. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  216. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +3 -3
  217. package/dist/js/modular.mjs +76 -75
  218. package/dist/types/behaviors/bottomSheets.d.ts +5 -3
  219. package/dist/types/behaviors/dataTables.d.ts +2 -6
  220. package/dist/types/behaviors/forms.d.ts +7 -7
  221. package/dist/types/behaviors/imageCompare.d.ts +2 -1
  222. package/dist/types/behaviors/transferList.d.ts +2 -0
  223. package/dist/types/components/autocomplete.d.ts +14 -3
  224. package/dist/types/components/carousel.d.ts +7 -0
  225. package/dist/types/components/chips.d.ts +15 -0
  226. package/dist/types/components/colorPicker.d.ts +14 -0
  227. package/dist/types/components/currencyInput.d.ts +5 -4
  228. package/dist/types/components/datepicker.d.ts +54 -27
  229. package/dist/types/components/funnelChart.d.ts +1 -4
  230. package/dist/types/components/heatmapChart.d.ts +3 -0
  231. package/dist/types/components/hoverCard.d.ts +1 -0
  232. package/dist/types/components/inputMask.d.ts +0 -2
  233. package/dist/types/components/lineChart.d.ts +43 -5
  234. package/dist/types/components/mapView.d.ts +113 -11
  235. package/dist/types/components/menu.d.ts +14 -0
  236. package/dist/types/components/particles.d.ts +14 -1
  237. package/dist/types/components/pieChart.d.ts +1 -2
  238. package/dist/types/components/richTextEditor.d.ts +40 -9
  239. package/dist/types/components/select.d.ts +1 -3
  240. package/dist/types/components/showMore.d.ts +2 -0
  241. package/dist/types/components/slider.d.ts +0 -1
  242. package/dist/types/components/snackbar.d.ts +7 -1
  243. package/dist/types/components/tabs.d.ts +3 -3
  244. package/dist/types/components/timepicker.d.ts +15 -6
  245. package/dist/types/components/tooltip.d.ts +1 -1
  246. package/dist/types/components/treemapChart.d.ts +2 -2
  247. package/dist/types/core/component.d.ts +9 -3
  248. package/dist/types/core/imageURL.d.ts +2 -0
  249. package/dist/types/core/utils.d.ts +39 -1
  250. package/dist/types/modular.d.ts +1 -1
  251. package/dist/types/plugins/modalDisplayPlugin.d.ts +8 -1
  252. package/package.json +8 -6
  253. package/src/sass/abstracts/_mixins.scss +459 -59
  254. package/src/sass/abstracts/_variables.scss +25 -0
  255. package/src/sass/components/_accordion.scss +1 -3
  256. package/src/sass/components/_aura.scss +1 -0
  257. package/src/sass/components/_back-to-top.scss +3 -3
  258. package/src/sass/components/_bar-chart.scss +2 -83
  259. package/src/sass/components/_bottom-sheet.scss +7 -0
  260. package/src/sass/components/_breadcrumb.scss +1 -7
  261. package/src/sass/components/_button-groups.scss +15 -38
  262. package/src/sass/components/_buttons.scss +24 -74
  263. package/src/sass/components/_calendar.scss +1 -3
  264. package/src/sass/components/_carousel.scss +10 -10
  265. package/src/sass/components/_cascader.scss +3 -14
  266. package/src/sass/components/_column-chart.scss +1 -19
  267. package/src/sass/components/_confetti.scss +3 -4
  268. package/src/sass/components/_data-table.scss +10 -0
  269. package/src/sass/components/_dialog.scss +10 -18
  270. package/src/sass/components/_expanding-card.scss +1 -5
  271. package/src/sass/components/_fab-menu.scss +4 -12
  272. package/src/sass/components/_funnel-chart.scss +1 -62
  273. package/src/sass/components/_heatmap-chart.scss +2 -6
  274. package/src/sass/components/_icon-buttons.scss +1 -4
  275. package/src/sass/components/_line-chart.scss +2 -70
  276. package/src/sass/components/_map.scss +4 -0
  277. package/src/sass/components/_marquee.scss +3 -3
  278. package/src/sass/components/_mega-menu.scss +8 -17
  279. package/src/sass/components/_menu.scss +10 -11
  280. package/src/sass/components/_menubar.scss +1 -13
  281. package/src/sass/components/_mixed-chart.scss +1 -37
  282. package/src/sass/components/_navbar.scss +11 -16
  283. package/src/sass/components/_navigation-bar.scss +2 -5
  284. package/src/sass/components/_navigation-rail.scss +25 -15
  285. package/src/sass/components/_page-footer.scss +1 -3
  286. package/src/sass/components/_pagination.scss +3 -14
  287. package/src/sass/components/_panes.scss +3 -16
  288. package/src/sass/components/_particles.scss +3 -4
  289. package/src/sass/components/_pie-chart.scss +8 -70
  290. package/src/sass/components/_progress.scss +31 -13
  291. package/src/sass/components/_radar-chart.scss +2 -32
  292. package/src/sass/components/_radial-chart.scss +2 -48
  293. package/src/sass/components/_sankey-chart.scss +5 -28
  294. package/src/sass/components/_scatter-chart.scss +2 -11
  295. package/src/sass/components/_search.scss +1 -4
  296. package/src/sass/components/_side-sheet.scss +9 -14
  297. package/src/sass/components/_skeleton.scss +24 -15
  298. package/src/sass/components/_snackbar.scss +11 -13
  299. package/src/sass/components/_table_of_contents.scss +1 -3
  300. package/src/sass/components/_tabs.scss +4 -20
  301. package/src/sass/components/_timepicker.scss +2 -1
  302. package/src/sass/components/_toolbar.scss +1 -4
  303. package/src/sass/components/_tooltip.scss +9 -5
  304. package/src/sass/components/_tree.scss +5 -17
  305. package/src/sass/components/_treemap-chart.scss +2 -26
  306. package/src/sass/components/forms/_checkboxes.scss +2 -21
  307. package/src/sass/components/forms/_drop-zone.scss +1 -4
  308. package/src/sass/components/forms/_fieldset.scss +1 -4
  309. package/src/sass/components/forms/_file-input.scss +6 -0
  310. package/src/sass/components/forms/_input-fields.scss +21 -4
  311. package/src/sass/components/forms/_radio-buttons.scss +2 -24
  312. package/src/sass/components/forms/_select.scss +6 -7
  313. package/src/sass/components/forms/_slider.scss +1 -4
  314. package/src/sass/components/forms/_switches.scss +14 -21
  315. package/src/sass/utilities/_helpers.scss +1 -1
  316. package/src/sass/utilities/_visibility.scss +1 -3
  317. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +0 -7
  318. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +0 -7
  319. package/dist/js/chunks/chunk-4IKVPCSU.mjs +0 -7
  320. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +0 -7
  321. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +0 -7
  322. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +0 -7
  323. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +0 -7
  324. package/dist/js/chunks/chunk-752ADW4M.mjs.map +0 -7
  325. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +0 -7
  326. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +0 -7
  327. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +0 -7
  328. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +0 -7
  329. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +0 -7
  330. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +0 -7
  331. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +0 -7
  332. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +0 -7
  333. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +0 -7
  334. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +0 -7
  335. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +0 -7
  336. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +0 -7
  337. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +0 -7
  338. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +0 -7
  339. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +0 -7
  340. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +0 -7
  341. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +0 -7
  342. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +0 -7
  343. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +0 -7
  344. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +0 -7
  345. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +0 -7
  346. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +0 -7
  347. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +0 -7
  348. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +0 -7
  349. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +0 -7
  350. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +0 -7
  351. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +0 -7
  352. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +0 -7
  353. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +0 -7
  354. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +0 -7
  355. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +0 -7
  356. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +0 -7
  357. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +0 -7
  358. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +0 -7
  359. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +0 -7
  360. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +0 -7
  361. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +0 -7
  362. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +0 -7
  363. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +0 -7
  364. /package/dist/js/chunks/{chunk-Y6H2X7ZC.mjs.map → chunk-3KF65KGL.mjs.map} +0 -0
  365. /package/dist/js/chunks/{chunk-75E5EDJF.mjs.map → chunk-3XORNED5.mjs.map} +0 -0
  366. /package/dist/js/chunks/{chunk-NNHVANQA.mjs.map → chunk-4WBGAQN3.mjs.map} +0 -0
  367. /package/dist/js/chunks/{chunk-ZJNLAGY5.mjs.map → chunk-5F4URJHL.mjs.map} +0 -0
  368. /package/dist/js/chunks/{chunk-GVZQH2H5.mjs.map → chunk-AEG6LOAJ.mjs.map} +0 -0
  369. /package/dist/js/chunks/{chunk-AI73GJKG.mjs.map → chunk-BB5VXYXT.mjs.map} +0 -0
  370. /package/dist/js/chunks/{chunk-2RLBDFH4.mjs.map → chunk-BDATLH3H.mjs.map} +0 -0
  371. /package/dist/js/chunks/{chunk-ZKWUWBUB.mjs.map → chunk-CY2CTOVM.mjs.map} +0 -0
  372. /package/dist/js/chunks/{chunk-67ZPPKXS.mjs.map → chunk-FNIIH2LU.mjs.map} +0 -0
  373. /package/dist/js/chunks/{chunk-T3BNSRP3.mjs.map → chunk-HQRLBTNM.mjs.map} +0 -0
  374. /package/dist/js/chunks/{chunk-NAC72P7R.mjs.map → chunk-I2F7MLUU.mjs.map} +0 -0
  375. /package/dist/js/chunks/{chunk-ANKFWNWT.mjs.map → chunk-LC4O5LFS.mjs.map} +0 -0
  376. /package/dist/js/chunks/{chunk-4PIXLDNJ.mjs.map → chunk-LEF33SCP.mjs.map} +0 -0
  377. /package/dist/js/chunks/{chunk-ILDRRG7T.mjs.map → chunk-LFORZRPH.mjs.map} +0 -0
  378. /package/dist/js/chunks/{chunk-4EWGD4V2.mjs.map → chunk-NODZ5VAD.mjs.map} +0 -0
  379. /package/dist/js/chunks/{chunk-NVQ5EHCU.mjs.map → chunk-QNODAANY.mjs.map} +0 -0
  380. /package/dist/js/chunks/{chunk-ROH2HDB4.mjs.map → chunk-RUDYMEJ3.mjs.map} +0 -0
  381. /package/dist/js/chunks/{chunk-TFABTUAZ.mjs.map → chunk-T4MOBP3J.mjs.map} +0 -0
  382. /package/dist/js/chunks/{chunk-GCWWEZKO.mjs.map → chunk-TM7HPGTV.mjs.map} +0 -0
  383. /package/dist/js/chunks/{chunk-ZO6ZLHFF.mjs.map → chunk-TVSX5YA2.mjs.map} +0 -0
  384. /package/dist/js/chunks/{chunk-JUKBBN6P.mjs.map → chunk-YLZOJLDI.mjs.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,310 @@ the format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.17.0] - 2026-11-05
9
+
10
+ This release adds Sass mixins and a few component options, and fixes form reset,
11
+ teardown, keyboard, forced-colors and RTL behavior across components. It removes
12
+ nothing, so there is no migration. One security fix: a questionnaire's review
13
+ step no longer shows hidden inputs or passwords.
14
+
15
+ ### Added
16
+
17
+ - ColorPicker takes an `i18n` option for its accessible names. The defaults are
18
+ the English names it always used.
19
+
20
+ - The ExpressiveCSS skill offers four visual styles: Bold and Dramatic, Minimalist
21
+ and Clean, Brutalist and Neo-Brutalist, and Organic and Natural. Each one uses
22
+ documented attributes, classes and variants only. The skill asks, with a reason,
23
+ before adding token overrides and writes custom CSS only on request.
24
+
25
+ - Autocomplete `maxResults` caps rendered suggestions when configured. The default
26
+ is `Infinity`, preserving the complete list. Search still checks the whole dataset.
27
+
28
+ - Sass exposes `icon-size($size, $line-height)`, `btn-states($on, $base,
29
+ $hover-depth, $press-depth)`, `$button-toggle-colors` and `$expand-more`.
30
+ Components now share them in place of repeated sizing blocks, state rules,
31
+ toggle color tables and a duplicate chevron image.
32
+
33
+ - Sass adds `selection-control()`, `selection-control-states()`, `header-bar()`,
34
+ `header-bar-headline()`, `text-action()`, `list-reset()`, `ellipsis()`,
35
+ `fill-parent()` and `print-hidden()`. `focus-ring()` and `focus-visible()`
36
+ take an `$offset`, and `chart()` takes optional parameters for the parts some
37
+ charts share: extra series colors, round and row-band plots, centred tooltips,
38
+ cursors, SVG lines and table legends. Charts without a grid no longer emit
39
+ grid rules that they then undid.
40
+
41
+ ### Fixed
42
+
43
+ - A click on a Menu label, divider or gap no longer closes the menu or reports a
44
+ selection.
45
+
46
+ - Number stepper buttons at `min` or `max` no longer fire `input` and `change`,
47
+ since the value did not change.
48
+
49
+ - A password revealed in a form inside a shadow root is hidden again on submit
50
+ and reset, and an expanded bottom sheet in a shadow root goes back to partial
51
+ when it closes. The error summary and `.validate` styling still need the form
52
+ in the light DOM.
53
+
54
+ - Lightbox closes on the Escape keydown and takes the key, so one press no longer
55
+ also closes a dialog around it.
56
+
57
+ - In a date range, clicking a day before the start moves the start. The click
58
+ used to do nothing.
59
+
60
+ - Carousel's `dragged` ends with the drag, so a later scroll no longer reports
61
+ `dragged: true`. A mouse click inside the carousel no longer pauses
62
+ auto-advance. Keyboard focus still does, as the option has always said.
63
+
64
+ - HeatmapChart's tooltip stays on its cell when the chart changes size.
65
+
66
+ - Autocomplete `selectOption()` and Chips duplicate checks compare ids as text,
67
+ so `'01'` is no longer the entry `1`. `1` and `'1'` still match.
68
+
69
+ - Holding CommandPalette's shortcut toggles it once instead of flickering.
70
+
71
+ - InputMask leaves a delete to the browser during an IME composition, or when
72
+ the event cannot be cancelled.
73
+
74
+ - MapView ignores a tap on a draggable marker it skipped for a bad `data-lng-lat`,
75
+ which made the next tap on the map throw, and a cluster zoom that MapLibre
76
+ refuses no longer rejects unhandled.
77
+
78
+ - AppBar reads the newest entry when an IntersectionObserver batch holds several,
79
+ and Confetti keeps its current overlay when a burst finishes on one the page
80
+ removed.
81
+
82
+ - CurrencyInput no longer reads typed grouping as a decimal in a currency with
83
+ three decimals. Under `lang="en"` with `KWD`, `5,000` submitted 5 and now
84
+ submits 5000; `12,345,678` submitted 12345.678 and now submits 12345678.
85
+ `5.000` still reads 5 there.
86
+
87
+ - A `.drag-handle` deeper in a bottom sheet, such as a data table's column resize
88
+ button or a sortable row's handle, no longer closes the sheet, resizes it or
89
+ starts a sheet drag. Only a handle that is a direct child of the sheet does.
90
+
91
+ - HoverCard: when links share a card, moving the pointer or focus onto it no
92
+ longer hands it to another link, which made the card jump away.
93
+
94
+ - Datepicker opens inside `minDate` and `maxDate`. With no starting date and
95
+ bounds that exclude today, it opened on today's month with no enabled day and
96
+ an empty year list. A default date outside the bounds moves to the nearest one.
97
+
98
+ - Autocomplete follows a form reset. `selectedValues` kept the old choice after
99
+ the input cleared. It now returns to the starting selection, as the other
100
+ pickers do, closes the list and drops a waiting search, with no change event.
101
+
102
+ - Charts, the ColorPicker area, Timepicker's digital fields, Chips, Autocomplete,
103
+ CommandPalette and the AppBar search field leave keys held with Alt, Ctrl or
104
+ Meta to the browser, so Alt+Left goes back instead of moving the chart cursor.
105
+ On an empty Chips input that includes Backspace, and on the AppBar search field
106
+ Enter. Shift still takes the ColorPicker's larger step.
107
+
108
+ - CommandPalette leaves the arrow keys to an IME during composition. They moved
109
+ the active command while the user picked a candidate.
110
+
111
+ - DataTables no longer pulls LineChart into a modular build. It shared one number
112
+ parser, which now lives in `core/utils`.
113
+
114
+ - Forced colors: tooltips, snackbars, menus, dialogs and side and bottom
115
+ sheets get a CanvasText edge, so they no longer blend into the page. The
116
+ one-time code input keeps its cells and focus line, which were gradients
117
+ that forced colors dropped.
118
+
119
+ - The file field's trigger shows a focus ring while its hidden file input
120
+ has keyboard focus, and a focused tree select row takes the shared ring
121
+ instead of only a faint state layer.
122
+
123
+ - Carousel paging dots are 24px targets around the 8px dot, which meets WCAG
124
+ 2.5.8. The dots now sit 24px apart instead of 16px.
125
+
126
+ - In RTL, the switch handle starts on the right and slides left, and the
127
+ expanded time picker's AM and PM buttons share one border.
128
+
129
+ - A modal navigation rail's scrim no longer dims the rail's own surface.
130
+
131
+ - The map's fullscreen button stays hidden where fullscreen is unavailable.
132
+
133
+ - The data table detail chevron and sort arrow and the mega menu chevron stop
134
+ animating under reduced motion, even when a page overrides the motion
135
+ duration tokens.
136
+
137
+ - A form reset no longer leaves stale state behind. ColorPicker redraws its
138
+ controls, CharacterCounter recounts, `.validate` fields drop `invalid` and
139
+ `aria-invalid`, the error summary hides, auto-resizing textareas fit their
140
+ restored text, ImageCompare moves its divider back, and a data table's
141
+ select-all follows the restored rows. Datepicker, Slider, FormSelect and
142
+ RichTextEditor read the field's form when the reset fires, so a field moved
143
+ into a form after init follows its reset too.
144
+
145
+ - A click on the icon of a disabled Datepicker month arrow no longer changes
146
+ the month.
147
+
148
+ - A pie slice of nearly the whole total, such as 3,000,000 beside 1, is drawn
149
+ as a full circle. Its arc used to round to a zero-length path and vanish.
150
+
151
+ - Line and scatter chart axes add significant digits when compact labels
152
+ would repeat, so ticks at 10,050 and 10,100 no longer both read "10.1K".
153
+
154
+ - A moving Particles canvas repaints when it is resized, instead of showing a
155
+ blank frame on each resize step.
156
+
157
+ - The search form in a plain top app bar shows a focus ring when its input
158
+ has keyboard focus.
159
+
160
+ - `$expand-more` is `!default`, so `@use "expressive" with ($expand-more: …)`
161
+ configures it.
162
+
163
+ - Particles paint at the pixel ratio their buffer was sized for, so dots no
164
+ longer draw scaled and offset after the page moves to a screen with another
165
+ ratio. A resize keeps the same dots, moved with the box, instead of
166
+ scattering a new set every time the canvas changes size.
167
+
168
+ - Tooltip's `data-tooltip`, `data-tooltip-id` and `data-position` win over
169
+ init options from init on, as documented. Init used to let the options win
170
+ until the first open, so a tooltip could change side or text when it first
171
+ showed.
172
+
173
+ - `Confetti.fire()` and an instance's `fire()` keep the default of an option
174
+ passed as `undefined`, as init does. `fire({ origin: undefined })` used to
175
+ throw.
176
+
177
+ - InputMask formats the value a form reset restores inside a shadow root
178
+ too. It listened for `reset` on the document, which the event never
179
+ reaches from a shadow root. InputMask and CurrencyInput now share one
180
+ reset helper.
181
+
182
+ - A snackbar that a `replace: true` snackbar cuts short fires `close` and
183
+ `closed` and runs its `completeCallback`, as a dismissed one does, and so
184
+ does one a re-render took out of the page. They used to end silently, so
185
+ code waiting on the callback never heard.
186
+
187
+ - Carousel `destroy()` puts the authored `active` class back, removes the
188
+ `carousel-item` class from items it found without one, and drops the
189
+ `dragging` and `scrolling` classes of a drag or scroll it cut short.
190
+ Starting it again used to begin at the last item shown.
191
+
192
+ - Chips `destroy()` leaves the markup as it was. It used to keep the
193
+ `chips`, `field` and `focus` classes, the input's `input` class,
194
+ placeholder and generated id, the label's `for`, and an input it had
195
+ created.
196
+
197
+ - Menu `destroy()` puts back the attributes setup wrote, on the trigger,
198
+ the menu and its rows, and moves the menu back to where it was. A
199
+ destroyed trigger used to keep `aria-haspopup`, `aria-expanded` and
200
+ `aria-controls`, so it was still announced as a menu button.
201
+
202
+ - A date or time picker with Ok and Cancel buttons, which a modal picker
203
+ always has, empties its input on Ok after Clear. Clear used to write the
204
+ empty value and fire `change` at once, so Cancel could not keep the old
205
+ value. Timepicker shows empty fields until Ok, and choosing a time after
206
+ Clear keeps that time.
207
+
208
+ - Datepicker `onSelect` and `expressive:select` no longer fire when a click,
209
+ Enter or a form reset re-reads the date the input already shows. Only a
210
+ new date is a selection.
211
+
212
+ - Datepicker `minDate` and `maxDate` bound the month arrows, the month and
213
+ year lists and PageUp/PageDown. The internal month and year bounds were
214
+ never set from them, so the calendar paged into months where every day
215
+ was disabled.
216
+
217
+ - Autocomplete calls `onSearch` only once the text reaches `minLength`.
218
+ Shorter text used to reach it too, so a remote search fetched on the
219
+ first keystroke whatever `minLength` said. Text shorter than `minLength`
220
+ now aborts the running search and empties `menuItems`.
221
+
222
+ - Clicking the tab that is already shown no longer fires `onShow` and
223
+ `expressive:change` again or re-runs the indicator animation. Swipeable
224
+ tabs and keyboard focus already skipped it.
225
+
226
+ - RichTextEditor follows a form reset. The editor used to keep the typed
227
+ text while the reset textarea held its default, so the page showed one
228
+ thing and the form submitted another.
229
+
230
+ - A date or time picker inside a shadow root finds its `dateRangeEndEl` and
231
+ `container` selectors there. It used to search only the document, so a
232
+ range end input in the same root was not found. Datepicker also stops
233
+ throwing when a `container` selector matches nothing and falls back to the
234
+ default placement, as Timepicker does.
235
+
236
+ - Chips no longer throws from the constructor when `data` holds a chip with a
237
+ blank or null id. Starting data now gets the same checks as `addChip`, so
238
+ blank ids, duplicates and chips past `limit` are dropped.
239
+
240
+ - Security: a questionnaire's review step no longer shows hidden inputs or
241
+ passwords. It listed a hidden token as an answer and printed a password in
242
+ plain text. A password now shows as a fixed-length mask, and a file input
243
+ shows its file names instead of the browser's fake path.
244
+
245
+ - The mega menu and navigation rail panel chevrons stay visible in forced-colors
246
+ mode. They were drawn as masks and painted in Canvas, so they disappeared.
247
+
248
+ - The menubar's expanded trigger insets its forced-colors outline by 2px, like
249
+ the other menus, instead of drawing it on the edge.
250
+
251
+ - A modal date or time picker stays open when a drag that starts on the picker,
252
+ such as moving the clock hand, ends on the scrim. Only a press that starts and
253
+ ends on the scrim cancels it.
254
+
255
+ - TransferList's move-all buttons no longer stall on long lists. Removing 2,000
256
+ rows took about 240 ms in Chromium and now takes about 26 ms.
257
+
258
+ - Chips trims typed text, so Space then Enter adds no blank chip and `"a "` no
259
+ longer duplicates `"a"`. `addChip()` refuses a whitespace-only id.
260
+
261
+ - `getInstance()`, `Snackbar.getInstance()` included, is typed to return
262
+ `undefined` before `init()` and after `destroy()`, and takes any `Element`. The AutoInit table is now type-checked,
263
+ and `src/ts/core` builds under strict TypeScript.
264
+
265
+ - An option passed as `undefined`, at the top level or inside `i18n`, keeps its
266
+ default. A translation table missing Keypad's `tooShort` made every input in a
267
+ field with `minlength` throw.
268
+
269
+ - Autocomplete hears a press on the list released outside it. Before, the
270
+ field kept treating the press as unfinished, missed being left, and late
271
+ search results reopened the list.
272
+
273
+ - Autocomplete with no results announces "No results." even while it lists the
274
+ selected entries, and the list no longer shares the selection's array.
275
+
276
+ - Charts whose table is removed draw nothing, where they kept drawing the old
277
+ data.
278
+
279
+ - ShowMore without clamped text no longer throws from `destroy()` or `open()`,
280
+ so it can be initialized again.
281
+
282
+ - AutoInit logs a component whose constructor throws and releases its element,
283
+ then carries on. Before, one bad element stopped every component after it in
284
+ the table and kept `watch` from starting.
285
+
286
+ - Destroying an instance that a later `init` on the same element replaced no
287
+ longer unregisters the replacement.
288
+
289
+ - Timepicker keeps the current time it puts in an emptied field inside
290
+ `minTime` and `maxTime`, and on the 12-hour clock sets AM or PM to match.
291
+
292
+ - Data tables in a hidden tab panel, dialog or `<details>` keep their records.
293
+ Filtering and paging no longer hide every row until the next sync.
294
+
295
+ - Treemap chart `update()` on a table with no rows no longer throws from its
296
+ resize observer, and `show()` does nothing on a chart with no rectangles.
297
+
298
+ - Autocomplete images now use the same URL scheme allowlist as FormSelect.
299
+ Invalid URLs, `javascript:` URLs and non-image `data:` URLs are dropped.
300
+
301
+ - Skills use valid YAML discovery metadata, concise triggers and host-neutral
302
+ delegation. The scored review honors explicit requests for fixes and loads its
303
+ report template separately. The docs skill catalogue parses YAML rather than
304
+ extracting scalar values with regular expressions.
305
+
306
+ - Skill guidance now covers all twelve chart types, axis labels and in-place
307
+ updates, optional picker displays, shared behavior APIs, scroll areas, shapes,
308
+ glass, stacking and Sass references. Generated guides retain localization
309
+ definitions and events, and a catalogue-derived index maps public exports and
310
+ Sass partials to their guides.
311
+
8
312
  ## [0.16.0] - 2026-10-27
9
313
 
10
314
  This release removes the aliases kept for markup written before 0.8.0. See
@@ -3839,7 +4143,8 @@ are no compatibility aliases.
3839
4143
  - `.tabs` nested in a header or app bar as a secondary row. `.tabs` is a
3840
4144
  standalone component; the `.tabs.transparent` app bar variant is gone with it.
3841
4145
 
3842
- [Unreleased]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.16.0...HEAD
4146
+ [Unreleased]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.17.0...HEAD
4147
+ [0.17.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.16.0...v0.17.0
3843
4148
  [0.16.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.15.0...v0.16.0
3844
4149
  [0.15.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.14.1...v0.15.0
3845
4150
  [0.14.1]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.14.0...v0.14.1
package/README.md CHANGED
@@ -4,7 +4,7 @@ ExpressiveCSS is a Material Design 3 front-end framework built with Sass and
4
4
  TypeScript. It provides theme tokens, layout and utility classes, styled form
5
5
  controls, and JavaScript components in browser, ES module, and CommonJS builds.
6
6
 
7
- > ExpressiveCSS version `0.16.0` is under active development.
7
+ > ExpressiveCSS version `0.17.0` is under active development.
8
8
 
9
9
  Documentation: [www.expressivecss.com](https://www.expressivecss.com)
10
10