@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
@@ -0,0 +1,341 @@
1
+ import {
2
+ SwipeActions
3
+ } from "./chunk-Y6H2X7ZC.mjs";
4
+ import {
5
+ Tabs
6
+ } from "./chunk-LDXCC2L3.mjs";
7
+ import {
8
+ Timepicker
9
+ } from "./chunk-KYIEG4U3.mjs";
10
+ import {
11
+ Tooltip
12
+ } from "./chunk-FCNF4GRJ.mjs";
13
+ import {
14
+ TreeSelect
15
+ } from "./chunk-GCWWEZKO.mjs";
16
+ import {
17
+ TreemapChart
18
+ } from "./chunk-VH4BMAZS.mjs";
19
+ import {
20
+ SankeyChart
21
+ } from "./chunk-CZSQHXEV.mjs";
22
+ import {
23
+ ScatterChart
24
+ } from "./chunk-752ADW4M.mjs";
25
+ import {
26
+ ScrollSpy
27
+ } from "./chunk-ZJNLAGY5.mjs";
28
+ import {
29
+ ShowMore
30
+ } from "./chunk-X7SDA2J5.mjs";
31
+ import {
32
+ NavigationRail
33
+ } from "./chunk-Z4GICXR2.mjs";
34
+ import {
35
+ Particles
36
+ } from "./chunk-5KIHWJI2.mjs";
37
+ import {
38
+ PieChart
39
+ } from "./chunk-NBJAUGPP.mjs";
40
+ import {
41
+ PullToRefresh
42
+ } from "./chunk-T3BNSRP3.mjs";
43
+ import {
44
+ Questionnaire
45
+ } from "./chunk-GWZ76SR4.mjs";
46
+ import {
47
+ RadarChart
48
+ } from "./chunk-6FSEUFVW.mjs";
49
+ import {
50
+ RadialChart
51
+ } from "./chunk-7YQBHTK3.mjs";
52
+ import {
53
+ Lightbox
54
+ } from "./chunk-VMY55K2X.mjs";
55
+ import {
56
+ LoadingOverlay
57
+ } from "./chunk-4EWGD4V2.mjs";
58
+ import {
59
+ Menubar
60
+ } from "./chunk-2RLBDFH4.mjs";
61
+ import {
62
+ MessageScroller
63
+ } from "./chunk-ANKFWNWT.mjs";
64
+ import {
65
+ MixedChart
66
+ } from "./chunk-VFV75DHF.mjs";
67
+ import {
68
+ Datepicker
69
+ } from "./chunk-QXKWVHBD.mjs";
70
+ import {
71
+ FormSelect
72
+ } from "./chunk-EVCVFEV3.mjs";
73
+ import {
74
+ EXPANDING_CARD_SELECTOR,
75
+ ExpandingCard
76
+ } from "./chunk-OP43LLIC.mjs";
77
+ import {
78
+ FunnelChart
79
+ } from "./chunk-S23RJ3XY.mjs";
80
+ import {
81
+ HeatmapChart
82
+ } from "./chunk-BPF3I2MN.mjs";
83
+ import {
84
+ HoverCard
85
+ } from "./chunk-BIGU5RCJ.mjs";
86
+ import {
87
+ InputMask
88
+ } from "./chunk-VJVQIXHC.mjs";
89
+ import {
90
+ Keypad
91
+ } from "./chunk-QACZ6TUP.mjs";
92
+ import {
93
+ Cascader
94
+ } from "./chunk-NVQ5EHCU.mjs";
95
+ import {
96
+ Chips
97
+ } from "./chunk-WU7XJ4RR.mjs";
98
+ import {
99
+ ColorPicker
100
+ } from "./chunk-2CS6TITK.mjs";
101
+ import {
102
+ CommandPalette
103
+ } from "./chunk-4TRZ2AER.mjs";
104
+ import {
105
+ Confetti
106
+ } from "./chunk-VR3L2WN5.mjs";
107
+ import {
108
+ CurrencyInput
109
+ } from "./chunk-Y6TLRA3U.mjs";
110
+ import {
111
+ AppBar
112
+ } from "./chunk-P6DRQ6KS.mjs";
113
+ import {
114
+ Autocomplete
115
+ } from "./chunk-VGY4M57S.mjs";
116
+ import {
117
+ Menu
118
+ } from "./chunk-CSYWKEK3.mjs";
119
+ import {
120
+ BackToTop
121
+ } from "./chunk-NNHVANQA.mjs";
122
+ import {
123
+ BarChart
124
+ } from "./chunk-75E5EDJF.mjs";
125
+ import {
126
+ ColumnChart
127
+ } from "./chunk-PA7NU5AK.mjs";
128
+ import {
129
+ ButtonGroup
130
+ } from "./chunk-67ZPPKXS.mjs";
131
+ import {
132
+ FloatingActionButton
133
+ } from "./chunk-ILDRRG7T.mjs";
134
+ import {
135
+ CARDS_SELECTOR,
136
+ Cards,
137
+ isCardReveal
138
+ } from "./chunk-OYNUDOHR.mjs";
139
+ import {
140
+ Carousel
141
+ } from "./chunk-4QUCNFSD.mjs";
142
+ import {
143
+ LineChart
144
+ } from "./chunk-ZM3XBHWV.mjs";
145
+
146
+ // src/ts/components/registry.ts
147
+ var AUTO_INIT_COMPONENTS = {
148
+ AppBar: {
149
+ component: AppBar,
150
+ selector: "header.medium, header.large, header:has(> :is(nav:not(.tabs, .navigation-bar, .navigation-rail), .bar) > .search-bar)"
151
+ },
152
+ Autocomplete: {
153
+ component: Autocomplete,
154
+ selector: ".autocomplete"
155
+ },
156
+ ButtonGroup: {
157
+ component: ButtonGroup,
158
+ selector: ".button-group"
159
+ },
160
+ // Shared with Cards.Init() - see CARDS_SELECTOR. This entry used to read
161
+ // '.cards', which no card markup uses.
162
+ Cards: { component: Cards, selector: CARDS_SELECTOR, filter: isCardReveal },
163
+ ExpandingCard: {
164
+ component: ExpandingCard,
165
+ selector: EXPANDING_CARD_SELECTOR
166
+ },
167
+ Carousel: { component: Carousel, selector: ".carousel" },
168
+ Chips: { component: Chips, selector: ".chips" },
169
+ Confetti: { component: Confetti, selector: ".confetti" },
170
+ Particles: { component: Particles, selector: "canvas.particles" },
171
+ Keypad: { component: Keypad, selector: ".keypad, .keyboard" },
172
+ ColorPicker: { component: ColorPicker, selector: ".color-picker" },
173
+ ColumnChart: { component: ColumnChart, selector: ".column-chart" },
174
+ BarChart: { component: BarChart, selector: ".bar-chart" },
175
+ PieChart: { component: PieChart, selector: ".pie-chart" },
176
+ HeatmapChart: { component: HeatmapChart, selector: ".heatmap-chart" },
177
+ RadarChart: { component: RadarChart, selector: ".radar-chart" },
178
+ RadialChart: { component: RadialChart, selector: ".radial-chart" },
179
+ MixedChart: { component: MixedChart, selector: ".mixed-chart" },
180
+ ScatterChart: { component: ScatterChart, selector: ".scatter-chart" },
181
+ FunnelChart: { component: FunnelChart, selector: ".funnel-chart" },
182
+ SankeyChart: { component: SankeyChart, selector: ".sankey-chart" },
183
+ TreemapChart: { component: TreemapChart, selector: ".treemap-chart" },
184
+ CommandPalette: {
185
+ component: CommandPalette,
186
+ selector: "dialog.command-palette"
187
+ },
188
+ Questionnaire: {
189
+ component: Questionnaire,
190
+ selector: "form.questionnaire"
191
+ },
192
+ Datepicker: {
193
+ component: Datepicker,
194
+ selector: ".date-picker"
195
+ },
196
+ LineChart: { component: LineChart, selector: ".line-chart" },
197
+ Menu: { component: Menu, selector: ".menu-trigger" },
198
+ MessageScroller: {
199
+ component: MessageScroller,
200
+ selector: ".message-scroller"
201
+ },
202
+ PullToRefresh: { component: PullToRefresh, selector: ".pull-to-refresh" },
203
+ LoadingOverlay: { component: LoadingOverlay, selector: ".loading-overlay" },
204
+ SwipeActions: { component: SwipeActions, selector: ".list.swipeable" },
205
+ // Only the input types with a caret: setSelectionRange() throws on the rest.
206
+ InputMask: {
207
+ component: InputMask,
208
+ selector: 'input[data-mask]:is(:not([type]), [type="text" i], [type="tel" i], [type="search" i], [type="url" i], [type="password" i])'
209
+ },
210
+ ShowMore: { component: ShowMore, selector: ".show-more" },
211
+ // Only a text input can hold the formatted amount.
212
+ CurrencyInput: { component: CurrencyInput, selector: 'input[data-currency]:is(:not([type]), [type="text" i])' },
213
+ Lightbox: { component: Lightbox, selector: ".lightboxed" },
214
+ ScrollSpy: { component: ScrollSpy, selector: ".scrollspy" },
215
+ BackToTop: { component: BackToTop, selector: ".back-to-top" },
216
+ // A data-tree select is a tree select, not a flat one.
217
+ FormSelect: { component: FormSelect, selector: "select:not([data-tree])" },
218
+ TreeSelect: { component: TreeSelect, selector: "select[data-tree]" },
219
+ Cascader: { component: Cascader, selector: ".cascader" },
220
+ NavigationRail: {
221
+ component: NavigationRail,
222
+ selector: ".navigation-rail"
223
+ },
224
+ Tabs: { component: Tabs, selector: ".tabs" },
225
+ Timepicker: {
226
+ component: Timepicker,
227
+ selector: ".time-picker"
228
+ },
229
+ Tooltip: { component: Tooltip, selector: ".tooltipped" },
230
+ HoverCard: { component: HoverCard, selector: ".hover-card-trigger" },
231
+ FloatingActionButton: {
232
+ component: FloatingActionButton,
233
+ selector: ".fab-menu"
234
+ },
235
+ // After Menu, so the bar's own menu options replace AutoInit's defaults.
236
+ Menubar: { component: Menubar, selector: ".menubar" }
237
+ };
238
+ var MARKUP_BLOCKED = /* @__PURE__ */ new Set(["allowUnsafeHTML", "minYear", "maxYear", "data"]);
239
+ var OBJECT = "[object Object]";
240
+ var ARRAY = "[object Array]";
241
+ var SETTABLE = /* @__PURE__ */ new Set(["[object String]", "[object Number]", "[object Boolean]", ARRAY, OBJECT]);
242
+ var optionsAttribute = (name) => `data-${name.replace(/\B[A-Z]/g, "-$&").toLowerCase()}-options`;
243
+ function kind(value) {
244
+ const tag = Object.prototype.toString.call(value);
245
+ return tag === OBJECT && Object.getPrototypeOf(value) !== Object.prototype ? "other" : tag;
246
+ }
247
+ var itemsMatch = (fallback, value) => !fallback.length || value.every((item) => kind(item) === kind(fallback[0]));
248
+ function sameKind(fallback, value) {
249
+ const type = kind(fallback);
250
+ if (!SETTABLE.has(type) || kind(value) !== type) return false;
251
+ return type !== ARRAY || itemsMatch(fallback, value);
252
+ }
253
+ var accepts = (defaults, key, value) => Object.hasOwn(defaults, key) && !MARKUP_BLOCKED.has(key) && sameKind(defaults[key], value);
254
+ var reject = (rejected, key) => void rejected.push(key);
255
+ function nested(value, fallback, rejected, path) {
256
+ if (kind(value) !== OBJECT) return value;
257
+ const count = rejected.length;
258
+ const picked = pick(value, fallback, rejected, path);
259
+ return rejected.length === count ? picked : void 0;
260
+ }
261
+ function pick(parsed, defaults, rejected, path = "") {
262
+ const picked = {};
263
+ for (const [key, value] of Object.entries(parsed)) {
264
+ const kept = accepts(defaults, key, value) ? nested(value, defaults[key], rejected, `${path}${key}.`) : reject(rejected, path + key);
265
+ if (kept !== void 0) picked[key] = kept;
266
+ }
267
+ return picked;
268
+ }
269
+ function parseObject(text) {
270
+ try {
271
+ const value = JSON.parse(text);
272
+ return kind(value) === OBJECT ? value : null;
273
+ } catch {
274
+ return null;
275
+ }
276
+ }
277
+ function markupOptions(el, name, defaults) {
278
+ const attribute = optionsAttribute(name);
279
+ const text = el.getAttribute(attribute);
280
+ if (text === null) return {};
281
+ const parsed = parseObject(text);
282
+ if (!parsed) {
283
+ console.warn(`${name} ignored ${attribute}: expected a JSON object.`, el);
284
+ return {};
285
+ }
286
+ const rejected = [];
287
+ const options = pick(parsed, defaults, rejected);
288
+ rejected.forEach((key) => console.warn(`${name} ignored "${key}" in ${attribute}: markup cannot set that option to that value.`, el));
289
+ return options;
290
+ }
291
+ var entry = (name) => AUTO_INIT_COMPONENTS[name];
292
+ var NAMES = Object.keys(AUTO_INIT_COMPONENTS);
293
+ function initElement(name, el, options = {}) {
294
+ const { component } = entry(name);
295
+ component.init(el, { ...markupOptions(el, name, component.defaults), ...options });
296
+ }
297
+ function claimed(name, root, self = false) {
298
+ const { selector, filter = () => true } = entry(name);
299
+ const query = `:is(${selector}):not(.no-autoinit)`;
300
+ const own = self && root.matches(query) ? [root] : [];
301
+ return [...own, ...root.querySelectorAll(query)].filter(filter);
302
+ }
303
+ function startAdded(node, options) {
304
+ if (node.nodeType !== Node.ELEMENT_NODE) return;
305
+ for (const name of NAMES) {
306
+ claimed(name, node, true).forEach((el) => entry(name).component.getInstance(el) || initElement(name, el, options?.[name]));
307
+ }
308
+ }
309
+ function stopRemoved(node) {
310
+ if (node.nodeType !== Node.ELEMENT_NODE || node.isConnected) return;
311
+ for (const name of NAMES) {
312
+ claimed(name, node, true).forEach((el) => entry(name).component.getInstance(el)?.destroy());
313
+ }
314
+ }
315
+ function watch(context, options) {
316
+ const handle = (records) => {
317
+ for (const { addedNodes, removedNodes } of records) {
318
+ removedNodes.forEach(stopRemoved);
319
+ addedNodes.forEach((node) => context.contains(node) && startAdded(node, options));
320
+ }
321
+ };
322
+ const observer = new MutationObserver(handle);
323
+ observer.observe(context, { childList: true, subtree: true });
324
+ return () => {
325
+ handle(observer.takeRecords());
326
+ observer.disconnect();
327
+ };
328
+ }
329
+ function AutoInit(context = document.body, options, settings = {}) {
330
+ for (const name of NAMES) {
331
+ claimed(name, context).forEach((el) => initElement(name, el, options?.[name]));
332
+ }
333
+ return settings.watch ? watch(context, options) : () => {
334
+ };
335
+ }
336
+
337
+ export {
338
+ AUTO_INIT_COMPONENTS,
339
+ AutoInit
340
+ };
341
+ //# sourceMappingURL=chunk-UGJHCHXG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ts/components/registry.ts"],
4
+ "sourcesContent": ["import { InitElements, InitElement } from \"../core/component\";\nimport * as Components from \"./index\";\nimport { CARDS_SELECTOR, isCardReveal } from \"./cards\";\nimport { EXPANDING_CARD_SELECTOR } from \"./expandingCard\";\n\n/**\n * The components `AutoInit()` starts, in initialization order, with the\n * selector each one claims.\n *\n * This table is the single source of truth: the options type below and the\n * init calls in `AutoInit()` are both derived from it, so wiring up a new\n * auto-initialized component means adding one line here (plus its export in\n * ./index.ts) - not four hand-synchronized edits that fail silently when one\n * is forgotten.\n *\n * A component that should only ever be constructed explicitly (Snackbar,\n * CharacterCounter, ...) simply stays out of this table.\n */\nexport const AUTO_INIT_COMPONENTS = {\n AppBar: {\n component: Components.AppBar,\n selector:\n \"header.medium, header.large, header:has(> :is(nav:not(.tabs, .navigation-bar, .navigation-rail), .bar) > .search-bar)\",\n },\n Autocomplete: {\n component: Components.Autocomplete,\n selector: \".autocomplete\",\n },\n ButtonGroup: {\n component: Components.ButtonGroup,\n selector: \".button-group\",\n },\n // Shared with Cards.Init() - see CARDS_SELECTOR. This entry used to read\n // '.cards', which no card markup uses.\n Cards: { component: Components.Cards, selector: CARDS_SELECTOR, filter: isCardReveal },\n ExpandingCard: {\n component: Components.ExpandingCard,\n selector: EXPANDING_CARD_SELECTOR,\n },\n Carousel: { component: Components.Carousel, selector: \".carousel\" },\n Chips: { component: Components.Chips, selector: \".chips\" },\n Confetti: { component: Components.Confetti, selector: \".confetti\" },\n Particles: { component: Components.Particles, selector: \"canvas.particles\" },\n Keypad: { component: Components.Keypad, selector: \".keypad, .keyboard\" },\n ColorPicker: { component: Components.ColorPicker, selector: \".color-picker\" },\n ColumnChart: { component: Components.ColumnChart, selector: \".column-chart\" },\n BarChart: { component: Components.BarChart, selector: \".bar-chart\" },\n PieChart: { component: Components.PieChart, selector: \".pie-chart\" },\n HeatmapChart: { component: Components.HeatmapChart, selector: \".heatmap-chart\" },\n RadarChart: { component: Components.RadarChart, selector: \".radar-chart\" },\n RadialChart: { component: Components.RadialChart, selector: \".radial-chart\" },\n MixedChart: { component: Components.MixedChart, selector: \".mixed-chart\" },\n ScatterChart: { component: Components.ScatterChart, selector: \".scatter-chart\" },\n FunnelChart: { component: Components.FunnelChart, selector: \".funnel-chart\" },\n SankeyChart: { component: Components.SankeyChart, selector: \".sankey-chart\" },\n TreemapChart: { component: Components.TreemapChart, selector: \".treemap-chart\" },\n CommandPalette: {\n component: Components.CommandPalette,\n selector: \"dialog.command-palette\",\n },\n Questionnaire: {\n component: Components.Questionnaire,\n selector: \"form.questionnaire\",\n },\n Datepicker: {\n component: Components.Datepicker,\n selector: \".date-picker\",\n },\n LineChart: { component: Components.LineChart, selector: \".line-chart\" },\n Menu: { component: Components.Menu, selector: \".menu-trigger\" },\n MessageScroller: {\n component: Components.MessageScroller,\n selector: \".message-scroller\",\n },\n PullToRefresh: { component: Components.PullToRefresh, selector: \".pull-to-refresh\" },\n LoadingOverlay: { component: Components.LoadingOverlay, selector: \".loading-overlay\" },\n SwipeActions: { component: Components.SwipeActions, selector: \".list.swipeable\" },\n // Only the input types with a caret: setSelectionRange() throws on the rest.\n InputMask: {\n component: Components.InputMask,\n selector: 'input[data-mask]:is(:not([type]), [type=\"text\" i], [type=\"tel\" i], [type=\"search\" i], [type=\"url\" i], [type=\"password\" i])',\n },\n ShowMore: { component: Components.ShowMore, selector: \".show-more\" },\n // Only a text input can hold the formatted amount.\n CurrencyInput: { component: Components.CurrencyInput, selector: 'input[data-currency]:is(:not([type]), [type=\"text\" i])' },\n Lightbox: { component: Components.Lightbox, selector: \".lightboxed\" },\n ScrollSpy: { component: Components.ScrollSpy, selector: \".scrollspy\" },\n BackToTop: { component: Components.BackToTop, selector: \".back-to-top\" },\n // A data-tree select is a tree select, not a flat one.\n FormSelect: { component: Components.FormSelect, selector: \"select:not([data-tree])\" },\n TreeSelect: { component: Components.TreeSelect, selector: \"select[data-tree]\" },\n Cascader: { component: Components.Cascader, selector: \".cascader\" },\n NavigationRail: {\n component: Components.NavigationRail,\n selector: \".navigation-rail\",\n },\n Tabs: { component: Components.Tabs, selector: \".tabs\" },\n Timepicker: {\n component: Components.Timepicker,\n selector: \".time-picker\",\n },\n Tooltip: { component: Components.Tooltip, selector: \".tooltipped\" },\n HoverCard: { component: Components.HoverCard, selector: \".hover-card-trigger\" },\n FloatingActionButton: {\n component: Components.FloatingActionButton,\n selector: \".fab-menu\",\n },\n // After Menu, so the bar's own menu options replace AutoInit's defaults.\n Menubar: { component: Components.Menubar, selector: \".menubar\" },\n};\n\ntype Registry = typeof AUTO_INIT_COMPONENTS;\n\n/**\n * Per-component options accepted by {@link AutoInit}, derived from the table\n * above - each key takes that component's own options type.\n */\nexport type AutoInitOptions = {\n [K in keyof Registry]?: Partial<\n InstanceType<Registry[K][\"component\"]>[\"options\"]\n >;\n};\n\n/** The shape every entry in the table satisfies; see the cast in AutoInit. */\ntype AutoInitable = {\n defaults: object;\n getInstance(el: Element): { destroy(): void } | undefined;\n init(els: InitElement | InitElements<InitElement>, options: Partial<object>): unknown;\n};\n\ntype AutoInitEntry = {\n component: AutoInitable;\n selector: string;\n filter?: (el: Element) => boolean;\n};\n\n/**\n * Options markup cannot set: `allowUnsafeHTML` turns off HTML escaping,\n * `minYear` and `maxYear` are internal, and Chips and Autocomplete throw\n * part way through their constructors on `data` entries of the wrong shape.\n */\nconst MARKUP_BLOCKED = new Set([\"allowUnsafeHTML\", \"minYear\", \"maxYear\", \"data\"]);\nconst OBJECT = \"[object Object]\";\nconst ARRAY = \"[object Array]\";\n/** The default kinds markup can replace with a value of the same kind. */\nconst SETTABLE = new Set([\"[object String]\", \"[object Number]\", \"[object Boolean]\", ARRAY, OBJECT]);\n\n/** The attribute a component reads its markup options from: `FormSelect` reads `data-form-select-options`. */\nconst optionsAttribute = (name: string) => `data-${name.replace(/\\B[A-Z]/g, \"-$&\").toLowerCase()}-options`;\n\n/** A value's kind as its `toString` tag, with objects that are not plain counted apart. */\nfunction kind(value: unknown) {\n const tag = Object.prototype.toString.call(value);\n return tag === OBJECT && Object.getPrototypeOf(value) !== Object.prototype ? \"other\" : tag;\n}\n\n/** Whether every item has the kind of the default array's first item, when it has one. */\nconst itemsMatch = (fallback: unknown[], value: unknown[]) =>\n !fallback.length || value.every((item) => kind(item) === kind(fallback[0]));\n\n/** Whether a markup value may replace `fallback`: both are the same settable kind. */\nfunction sameKind(fallback: unknown, value: unknown) {\n const type = kind(fallback);\n if (!SETTABLE.has(type) || kind(value) !== type) return false;\n return type !== ARRAY || itemsMatch(fallback as unknown[], value as unknown[]);\n}\n\nconst accepts = (defaults: object, key: string, value: unknown) =>\n Object.hasOwn(defaults, key) && !MARKUP_BLOCKED.has(key) && sameKind(defaults[key], value);\n\n/** Records a rejected key; returns undefined so the key is left out. */\nconst reject = (rejected: string[], key: string) => void rejected.push(key);\n\n/**\n * A plain object filtered against its default object, or undefined once any\n * key inside it is rejected, so the whole option keeps its default. Other\n * values pass through.\n */\nfunction nested(value: unknown, fallback: object, rejected: string[], path: string) {\n if (kind(value) !== OBJECT) return value;\n const count = rejected.length;\n const picked = pick(value as object, fallback, rejected, path);\n return rejected.length === count ? picked : undefined;\n}\n\n/**\n * Copies the entries of `parsed` that `defaults` owns and that keep their\n * default's kind. Only own keys of `defaults` are copied, so `__proto__` never\n * is. Rejected keys go into `rejected`, dotted below the top level.\n */\nfunction pick(parsed: object, defaults: object, rejected: string[], path = \"\"): Record<string, unknown> {\n const picked: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(parsed)) {\n const kept = accepts(defaults, key, value) ? nested(value, defaults[key], rejected, `${path}${key}.`) : reject(rejected, path + key);\n if (kept !== undefined) picked[key] = kept;\n }\n return picked;\n}\n\n/** `text` parsed as a JSON object, or null. */\nfunction parseObject(text: string): object | null {\n try {\n const value: unknown = JSON.parse(text);\n return kind(value) === OBJECT ? (value as object) : null;\n } catch {\n return null;\n }\n}\n\n/**\n * The options an element sets for component `name` in its\n * `data-<name>-options` attribute. The attribute is untrusted: a value that is\n * not valid JSON, not an object, or not the kind of its default is dropped\n * with a warning, so that option keeps its default.\n */\nfunction markupOptions(el: Element, name: string, defaults: object) {\n const attribute = optionsAttribute(name);\n const text = el.getAttribute(attribute);\n if (text === null) return {};\n const parsed = parseObject(text);\n if (!parsed) {\n console.warn(`${name} ignored ${attribute}: expected a JSON object.`, el);\n return {};\n }\n const rejected: string[] = [];\n const options = pick(parsed, defaults, rejected);\n rejected.forEach((key) => console.warn(`${name} ignored \"${key}\" in ${attribute}: markup cannot set that option to that value.`, el));\n return options;\n}\n\n// Each component's static `init` is overloaded; indexing the table widens it\n// to a union TypeScript cannot call, so narrow it once, here.\nconst entry = (name: keyof Registry) => AUTO_INIT_COMPONENTS[name] as unknown as AutoInitEntry;\nconst NAMES = Object.keys(AUTO_INIT_COMPONENTS) as (keyof Registry)[];\n\n/** Starts component `name` on one element, with its markup options under `options`. */\nfunction initElement(name: keyof Registry, el: Element, options: object = {}) {\n const { component } = entry(name);\n component.init(el, { ...markupOptions(el, name, component.defaults), ...options });\n}\n\n/**\n * The elements under `root` that component `name` claims, plus `root` itself\n * when `self` is set. `:is()` so that `:not(.no-autoinit)` applies to the\n * whole selector: a bare `${selector}:not(...)` binds the negation to the last\n * alternative only, which would break the opt-out for any comma-separated\n * entry (Cards is the first).\n */\nfunction claimed(name: keyof Registry, root: ParentNode, self = false): Element[] {\n const { selector, filter = () => true } = entry(name);\n const query = `:is(${selector}):not(.no-autoinit)`;\n const own = self && (root as Element).matches(query) ? [root as Element] : [];\n return [...own, ...root.querySelectorAll(query)].filter(filter);\n}\n\n/** Starts the components an added element and its descendants claim, leaving existing instances alone. */\nfunction startAdded(node: Node, options?: Partial<AutoInitOptions>) {\n if (node.nodeType !== Node.ELEMENT_NODE) return;\n for (const name of NAMES) {\n claimed(name, node as Element, true).forEach((el) => entry(name).component.getInstance(el) || initElement(name, el, options?.[name]));\n }\n}\n\n/**\n * Destroys the instances of a removed element and its descendants that\n * AutoInit would claim. An element that is back in the page by now was moved,\n * and keeps its instances.\n */\nfunction stopRemoved(node: Node) {\n if (node.nodeType !== Node.ELEMENT_NODE || node.isConnected) return;\n for (const name of NAMES) {\n claimed(name, node as Element, true).forEach((el) => entry(name).component.getInstance(el)?.destroy());\n }\n}\n\n/** Watches `context`, starting components in added markup and destroying them in removed markup. */\nfunction watch(context: Node, options?: Partial<AutoInitOptions>) {\n const handle = (records: MutationRecord[]) => {\n for (const { addedNodes, removedNodes } of records) {\n removedNodes.forEach(stopRemoved);\n addedNodes.forEach((node) => context.contains(node) && startAdded(node, options));\n }\n };\n const observer = new MutationObserver(handle);\n observer.observe(context, { childList: true, subtree: true });\n // Handle the changes not delivered yet first, so markup added just before stop() still starts.\n return () => {\n handle(observer.takeRecords());\n observer.disconnect();\n };\n}\n\n/**\n * Automatically initialize components.\n * @param context Root element or shadow root to initialize. Defaults to\n * `document.body`. Shadow roots inside it are not entered.\n * @param options Options for each component.\n * @param settings With `watch: true`, keep starting components in markup\n * added to `context` later, and destroy them when their markup is removed.\n * @returns A function that stops watching. It does nothing without `watch`.\n */\nexport function AutoInit(\n context: HTMLElement | ShadowRoot = document.body,\n options?: Partial<AutoInitOptions>,\n settings: { watch?: boolean } = {},\n): () => void {\n for (const name of NAMES) {\n claimed(name, context).forEach((el) => initElement(name, el, options?.[name]));\n }\n return settings.watch ? watch(context, options) : () => {};\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,70 @@
1
+ import {
2
+ ColumnChart
3
+ } from "./chunk-PA7NU5AK.mjs";
4
+ import {
5
+ LineChart,
6
+ niceStep,
7
+ steps
8
+ } from "./chunk-ZM3XBHWV.mjs";
9
+
10
+ // src/ts/components/mixedChart.ts
11
+ function fitSteps(min, max, parts) {
12
+ let step = niceStep(max - min, parts);
13
+ while (Math.floor(min / step) * step + parts * step < max) step = niceStep(step * parts * 1.001, parts);
14
+ return [Math.floor(min / step) * step, step];
15
+ }
16
+ var has = (series, name) => series.className.split(/\s+/).includes(name);
17
+ var MixedChart = class extends ColumnChart {
18
+ get _type() {
19
+ return "mixed-chart";
20
+ }
21
+ get _points() {
22
+ return true;
23
+ }
24
+ /**
25
+ * With .stacked, the columns on each scale stack on the ones before them;
26
+ * the lines and areas keep their own values.
27
+ */
28
+ _stack(series) {
29
+ const columns = series.filter((each) => has(each, "column"));
30
+ super._stack(columns.filter((each) => !has(each, "end")));
31
+ super._stack(columns.filter((each) => has(each, "end")));
32
+ }
33
+ /** The start scale, then the end scale; each includes zero if it has columns. */
34
+ _scale(series, min, max) {
35
+ const end = series.filter((each) => has(each, "end"));
36
+ const start = series.filter((each) => !end.includes(each));
37
+ const columns = (list) => list.some((each) => has(each, "column"));
38
+ const endRange = [this._number("endMin"), this._number("endMax")];
39
+ const y = super._scale(start, min, max, columns(start));
40
+ super._scale(end, ...endRange, columns(end));
41
+ if ([min, max, ...endRange].every((value) => value === null)) this._align(start, end);
42
+ return y;
43
+ }
44
+ /**
45
+ * With .axis, widens the end scale to as many round steps as the start
46
+ * scale has, so its labels fall on the start scale's grid lines.
47
+ */
48
+ _align(start, end) {
49
+ const parts = start.length ? start[0].scale.ticks.length - 1 : 0;
50
+ if (parts < 1 || !end.length) return;
51
+ const [low, step] = fitSteps(end[0].scale.min, end[0].scale.max, parts);
52
+ const high = low + parts * step;
53
+ this._apply(end, { min: low, max: high, ticks: steps(low, high, step) });
54
+ }
55
+ /** Columns behind, then the lines and areas over them. */
56
+ _draw() {
57
+ const marks = document.createElement("div");
58
+ marks.className = "mixed-chart-marks";
59
+ const columns = super._draw(this.series.filter((series) => has(series, "column")));
60
+ columns.className = "mixed-chart-columns";
61
+ marks.append(columns, LineChart.prototype["_draw"].call(this, this.series.filter((series) => !has(series, "column"))));
62
+ return marks;
63
+ }
64
+ };
65
+ MixedChart.key = "Expressive_MixedChart";
66
+
67
+ export {
68
+ MixedChart
69
+ };
70
+ //# sourceMappingURL=chunk-VFV75DHF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ts/components/mixedChart.ts"],
4
+ "sourcesContent": ["import { ColumnChart } from './columnChart';\nimport { LineChart, LineChartOptions, Series, niceStep, steps } from './lineChart';\n\nexport type MixedChartOptions = LineChartOptions;\n\n/** The low end and round step that cover min to max in exactly `parts` steps. */\nfunction fitSteps(min: number, max: number, parts: number): [low: number, step: number] {\n let step = niceStep(max - min, parts);\n // A floored start can leave the top short; the next round step covers it.\n while (Math.floor(min / step) * step + parts * step < max) step = niceStep(step * parts * 1.001, parts);\n return [Math.floor(min / step) * step, step];\n}\n\n/** Whether a series header cell has a class. */\nconst has = (series: Series, name: string) => series.className.split(/\\s+/).includes(name);\n\n/**\n * Mixed chart. It reads its <table> like LineChart, and draws each series\n * by its header cell's class: `column` as columns from zero, `area` as a\n * line with a fill under it, and anything else as a line. Series with\n * `end` are drawn against a second scale, set by `data-end-min` and\n * `data-end-max`, so values of different sizes or units share the plot.\n * With `stacked` the columns stack; `points` and `straight` apply to the\n * lines as in LineChart.\n *\n * Call `update()` after changing the table, or start it with `watch` or\n * `data-watch`.\n */\nexport class MixedChart extends ColumnChart {\n protected get _type() {\n return 'mixed-chart';\n }\n\n protected get _points() {\n return true;\n }\n\n static key = 'Expressive_MixedChart';\n\n /**\n * With .stacked, the columns on each scale stack on the ones before them;\n * the lines and areas keep their own values.\n */\n protected _stack(series: Series[]) {\n const columns = series.filter((each) => has(each, 'column'));\n super._stack(columns.filter((each) => !has(each, 'end')));\n super._stack(columns.filter((each) => has(each, 'end')));\n }\n\n /** The start scale, then the end scale; each includes zero if it has columns. */\n protected _scale(series: Series[], min: number | null, max: number | null) {\n const end = series.filter((each) => has(each, 'end'));\n const start = series.filter((each) => !end.includes(each));\n const columns = (list: Series[]) => list.some((each) => has(each, 'column'));\n const endRange = [this._number('endMin'), this._number('endMax')] as const;\n const y = super._scale(start, min, max, columns(start));\n super._scale(end, ...endRange, columns(end));\n // Only scales the chart chose itself can stretch to line up.\n if ([min, max, ...endRange].every((value) => value === null)) this._align(start, end);\n return y;\n }\n\n /**\n * With .axis, widens the end scale to as many round steps as the start\n * scale has, so its labels fall on the start scale's grid lines.\n */\n private _align(start: Series[], end: Series[]) {\n const parts = start.length ? start[0].scale.ticks.length - 1 : 0;\n if (parts < 1 || !end.length) return;\n const [low, step] = fitSteps(end[0].scale.min, end[0].scale.max, parts);\n const high = low + parts * step;\n this._apply(end, { min: low, max: high, ticks: steps(low, high, step) });\n }\n\n /** Columns behind, then the lines and areas over them. */\n protected _draw(): Element {\n const marks = document.createElement('div');\n marks.className = 'mixed-chart-marks';\n const columns = super._draw(this.series.filter((series) => has(series, 'column')));\n columns.className = 'mixed-chart-columns';\n marks.append(columns, LineChart.prototype['_draw'].call(this, this.series.filter((series) => !has(series, 'column'))));\n return marks;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;AAMA,SAAS,SAAS,KAAa,KAAa,OAA4C;AACtF,MAAI,OAAO,SAAS,MAAM,KAAK,KAAK;AAEpC,SAAO,KAAK,MAAM,MAAM,IAAI,IAAI,OAAO,QAAQ,OAAO,IAAK,QAAO,SAAS,OAAO,QAAQ,OAAO,KAAK;AACtG,SAAO,CAAC,KAAK,MAAM,MAAM,IAAI,IAAI,MAAM,IAAI;AAC7C;AAGA,IAAM,MAAM,CAAC,QAAgB,SAAiB,OAAO,UAAU,MAAM,KAAK,EAAE,SAAS,IAAI;AAclF,IAAM,aAAN,cAAyB,YAAY;AAAA,EAC1C,IAAc,QAAQ;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,IAAc,UAAU;AACtB,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAQU,OAAO,QAAkB;AACjC,UAAM,UAAU,OAAO,OAAO,CAAC,SAAS,IAAI,MAAM,QAAQ,CAAC;AAC3D,UAAM,OAAO,QAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC;AACxD,UAAM,OAAO,QAAQ,OAAO,CAAC,SAAS,IAAI,MAAM,KAAK,CAAC,CAAC;AAAA,EACzD;AAAA;AAAA,EAGU,OAAO,QAAkB,KAAoB,KAAoB;AACzE,UAAM,MAAM,OAAO,OAAO,CAAC,SAAS,IAAI,MAAM,KAAK,CAAC;AACpD,UAAM,QAAQ,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;AACzD,UAAM,UAAU,CAAC,SAAmB,KAAK,KAAK,CAAC,SAAS,IAAI,MAAM,QAAQ,CAAC;AAC3E,UAAM,WAAW,CAAC,KAAK,QAAQ,QAAQ,GAAG,KAAK,QAAQ,QAAQ,CAAC;AAChE,UAAM,IAAI,MAAM,OAAO,OAAO,KAAK,KAAK,QAAQ,KAAK,CAAC;AACtD,UAAM,OAAO,KAAK,GAAG,UAAU,QAAQ,GAAG,CAAC;AAE3C,QAAI,CAAC,KAAK,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,UAAU,UAAU,IAAI,EAAG,MAAK,OAAO,OAAO,GAAG;AACpF,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,OAAO,OAAiB,KAAe;AAC7C,UAAM,QAAQ,MAAM,SAAS,MAAM,CAAC,EAAE,MAAM,MAAM,SAAS,IAAI;AAC/D,QAAI,QAAQ,KAAK,CAAC,IAAI,OAAQ;AAC9B,UAAM,CAAC,KAAK,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK;AACtE,UAAM,OAAO,MAAM,QAAQ;AAC3B,SAAK,OAAO,KAAK,EAAE,KAAK,KAAK,KAAK,MAAM,OAAO,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC;AAAA,EACzE;AAAA;AAAA,EAGU,QAAiB;AACzB,UAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,UAAM,YAAY;AAClB,UAAM,UAAU,MAAM,MAAM,KAAK,OAAO,OAAO,CAAC,WAAW,IAAI,QAAQ,QAAQ,CAAC,CAAC;AACjF,YAAQ,YAAY;AACpB,UAAM,OAAO,SAAS,UAAU,UAAU,OAAO,EAAE,KAAK,MAAM,KAAK,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,QAAQ,QAAQ,CAAC,CAAC,CAAC;AACrH,WAAO;AAAA,EACT;AACF;AAvDa,WASJ,MAAM;",
6
+ "names": []
7
+ }