@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
@@ -1,18 +1,20 @@
1
- import { Carousel } from './carousel';
2
- import { Component, BaseOptions, InitElements, InitElement } from '../core/component';
1
+ import { Component, BaseOptions } from '../core/component';
3
2
  export interface TabsOptions extends BaseOptions {
4
3
  /**
5
- * Transition duration in milliseconds.
6
- * @default 300
4
+ * Indicator transition duration in milliseconds, on an ease-out curve. The
5
+ * default, null, follows the --md-comp-tabs-indicator-duration and
6
+ * --md-comp-tabs-indicator-easing spring tokens instead.
7
+ * @default null
7
8
  */
8
- duration: number;
9
+ duration: number | null;
9
10
  /**
10
11
  * Callback for when a new tab content is shown.
11
12
  * @default null
12
13
  */
13
14
  onShow: (newContent: Element) => void;
14
15
  /**
15
- * Set to true to enable swipeable tabs.
16
+ * Set to true to swipe between panels. The panels move into a full-width
17
+ * scroll-snap track, so touch and trackpad swipes are native scrolling.
16
18
  * This also uses the responsiveThreshold option.
17
19
  * @default false
18
20
  */
@@ -30,56 +32,116 @@ export declare class Tabs extends Component<TabsOptions> {
30
32
  _indicator: HTMLElement;
31
33
  _tabWidth: number;
32
34
  _tabsWidth: number;
33
- _tabsCarousel: Carousel;
35
+ _track: HTMLElement;
36
+ private _panels;
37
+ private _scrollTarget;
38
+ private _scrollTimer;
39
+ private _trackObserver;
40
+ private _trackWidth;
34
41
  _activeTabLink: HTMLAnchorElement;
35
42
  _content: HTMLElement;
36
43
  private _originalPanels;
37
44
  private _originalLinks;
38
- constructor(el: HTMLElement, options: Partial<TabsOptions>);
39
- static get defaults(): TabsOptions;
40
- /**
41
- * Initializes instance of Tabs.
42
- * @param el HTML element.
43
- * @param options Component options.
44
- */
45
- static init(el: HTMLElement, options?: Partial<TabsOptions>): Tabs;
46
45
  /**
47
- * Initializes instances of Tabs.
48
- * @param els HTML elements.
49
- * @param options Component options.
46
+ * Whether the page made the strip a tablist. The roles are the author's;
47
+ * in that mode the component keeps aria-selected and a roving tabindex, and
48
+ * the arrow keys select as they move, as the ARIA tabs pattern asks.
50
49
  */
51
- static init(els: InitElements<InitElement>, options?: Partial<TabsOptions>): Tabs[];
52
- static getInstance(el: HTMLElement): Tabs;
50
+ private _tablist;
51
+ /** The bar's own tabindex as the page wrote it, put back on destroy. */
52
+ private _barTabindex;
53
+ /** Re-chooses a tablist's Tab stop when the strip is shown, hidden or resized. */
54
+ private _stripObserver;
55
+ constructor(el: HTMLElement, options: Partial<TabsOptions>);
56
+ private _setupTablist;
57
+ static get defaults(): TabsOptions;
58
+ static key: string;
53
59
  destroy(): void;
54
60
  /**
55
61
  * The index of tab that is currently shown.
56
62
  */
57
63
  get index(): number;
58
64
  _setupEventHandlers(): void;
59
- _removeEventHandlers(): void;
60
- _handleWindowResize: (...args: unknown[]) => void;
65
+ /**
66
+ * Left and Right move focus to the next tab, wrapping at the ends, and
67
+ * Home and End to the first and last; disabled tabs are skipped. In link
68
+ * tabs focus moves without choosing, and Enter follows the link. In a
69
+ * tablist the tab that takes focus is selected too, the ARIA pattern's
70
+ * automatic activation, since a panel here shows at once.
71
+ */
72
+ _handleKeydown: (e: KeyboardEvent) => void;
73
+ /**
74
+ * In a tablist the tab that takes focus is selected; link tabs wait for
75
+ * Enter. The page's focus handlers run inside focus(), and one may have
76
+ * destroyed or replaced the tabs, which then are no longer this instance's.
77
+ */
78
+ private _followFocus;
79
+ private _remeasure;
61
80
  _queryTabLinks(): NodeListOf<HTMLAnchorElement>;
62
81
  _handleTabClick: (e: MouseEvent) => void;
82
+ private _select;
83
+ private _clickSwipeable;
84
+ private _clickTab;
85
+ /** Shows the active panel, hides the old one, then reports the change. */
86
+ private _swapPanels;
63
87
  _createIndicator(): void;
64
88
  /** Reads both positions before writing either. */
65
89
  private _positionIndicator;
66
90
  /** The panel a link shows, or null for a `target` link or one without a hash. */
67
91
  private _panelFor;
92
+ /**
93
+ * The id a hash names. `a.hash` and `location.hash` come back
94
+ * percent-encoded, so a non-ASCII id would never match without this. A
95
+ * malformed escape throws, and is then taken as written.
96
+ */
97
+ private static _decodeHash;
68
98
  /**
69
99
  * Which tab is current, for the eye and for assistive technology.
70
100
  *
71
- * The class alone is a colour. `aria-current` is the part a screen reader
72
- * reads, and because tabs are navigation rather than a tablist (rule 2 -
73
- * there is no keyboard model here to back a tablist), "current" is exactly
74
- * the right word for it. Its *value* changes as the user clicks, which makes
75
- * maintaining it the component's job, not the author's - see CONTEXT.md on
101
+ * The class alone is a colour. Link tabs are navigation, so `aria-current`
102
+ * is the part a screen reader reads. A strip the page made a tablist reads
103
+ * `aria-selected` instead, with the keyboard model rule 2 asks of a
104
+ * composite role. Either value changes as the user picks, which makes
105
+ * keeping it the component's job, not the author's - see CONTEXT.md on
76
106
  * static semantics versus dynamic state. Writing it once in the markup and
77
107
  * never moving it left the old tab announcing itself as current.
78
108
  */
79
109
  private _setActiveTabLink;
110
+ /** A tablist says selected and keeps one Tab stop; link tabs say current. */
111
+ private _mark;
112
+ /**
113
+ * The tablist's one Tab stop: the selected tab, or the first usable one
114
+ * when the selected tab is disabled or hidden. The arrow keys skip both,
115
+ * so a Tab stop on one would leave every other panel out of reach.
116
+ */
117
+ private _tabStop;
118
+ /** Showing or hiding the strip or a tab moves the Tab stop to a usable tab. */
119
+ private _refreshTabStop;
120
+ /**
121
+ * Scrolls an overflowing bar, and only the bar, so the tab is in view.
122
+ * Measured as a visual offset, so it holds in a right-to-left bar too.
123
+ */
124
+ private _reveal;
80
125
  _setupActiveTabLink(): void;
81
126
  _setupSwipeableTabs(): void;
82
127
  _teardownSwipeableTabs(): void;
128
+ /** Only the shown panel is reachable; the others are off to the side. */
129
+ private _syncPanels;
130
+ /** The panel the track is mostly showing. Panels are exactly one track wide. */
131
+ private _trackIndex;
132
+ /**
133
+ * Whether panel `index` fills the track. Compare positions, not rounded
134
+ * indexes: a scroll still on its way to another panel can already round to
135
+ * this one. Measured rather than computed from clientWidth, which rounds a
136
+ * fractional track width, while the mandatory snap lands on the real edge.
137
+ */
138
+ private _trackAt;
139
+ private _scrollToActivePanel;
140
+ private _waitForScroll;
141
+ _releaseScrollTarget: () => void;
142
+ _handleTrackScroll: () => void;
143
+ private _showPanel;
144
+ private _notifyShow;
83
145
  _setupNormalTabs(): void;
84
146
  _setTabsAndTabWidth(): void;
85
147
  _calcRightPos(el: any): number;
@@ -1,4 +1,4 @@
1
- import { Component, BaseOptions, InitElements, InitElement, I18nOptions } from '../core/component';
1
+ import { Component, BaseOptions, I18nOptions } from '../core/component';
2
2
  export type Views = 'hours' | 'minutes';
3
3
  export interface TimepickerOptions extends BaseOptions {
4
4
  /**
@@ -58,12 +58,31 @@ export interface TimepickerOptions extends BaseOptions {
58
58
  i18n: Partial<I18nOptions & {
59
59
  hours: string;
60
60
  minutes: string;
61
+ seconds: string;
61
62
  }>;
62
63
  /**
63
64
  * Use 12 hour AM/PM clock instead of 24 hour clock.
64
- * @default true
65
+ * @default true, or the clock the input's `lang` uses
65
66
  */
66
67
  twelveHour: boolean;
68
+ /**
69
+ * Add a seconds field after the minutes, and write `HH:MM:SS`. The dial
70
+ * still sets hours and minutes only.
71
+ * @default false
72
+ */
73
+ showSeconds: boolean;
74
+ /**
75
+ * The earliest time a person can choose, as 24-hour `'HH:MM'` or
76
+ * `'HH:MM:SS'`. Without `showSeconds` it rounds up to a whole minute.
77
+ * @default null
78
+ */
79
+ minTime: string | null;
80
+ /**
81
+ * The latest time a person can choose, as 24-hour `'HH:MM'` or
82
+ * `'HH:MM:SS'`. Without `showSeconds` it rounds down to a whole minute.
83
+ * @default null
84
+ */
85
+ maxTime: string | null;
67
86
  /**
68
87
  * Vibrate device when dragging clock hand.
69
88
  * @default true
@@ -90,7 +109,9 @@ export interface TimepickerOptions extends BaseOptions {
90
109
  */
91
110
  onCancel: (() => void) | null;
92
111
  /**
93
- * Display plugin
112
+ * Display plugin: 'docked' for a popover under the input, or 'modal' for a
113
+ * dialog with Cancel and Ok. A modal picker writes the input only on Ok,
114
+ * so it clears `autoSubmit`.
94
115
  */
95
116
  displayPlugin: string;
96
117
  /**
@@ -106,11 +127,15 @@ export declare class Timepicker extends Component<TimepickerOptions> {
106
127
  digitalClock: HTMLElement;
107
128
  inputHours: HTMLInputElement;
108
129
  inputMinutes: HTMLInputElement;
130
+ /** The seconds field, or null without `showSeconds`. */
131
+ inputSeconds: HTMLInputElement | null;
109
132
  x0: number;
110
133
  y0: number;
111
134
  moved: boolean;
112
135
  /** Which pointer is dragging the clock hand; a second finger is ignored. */
113
136
  private _dragPointerId;
137
+ /** Removes the document listeners of the drag in progress. */
138
+ private _drag;
114
139
  dx: number;
115
140
  dy: number;
116
141
  /**
@@ -122,6 +147,7 @@ export declare class Timepicker extends Component<TimepickerOptions> {
122
147
  minutesView: HTMLElement;
123
148
  hours: number;
124
149
  minutes: number;
150
+ seconds: number;
125
151
  /** The selected time. */
126
152
  time: string;
127
153
  /**
@@ -139,7 +165,6 @@ export declare class Timepicker extends Component<TimepickerOptions> {
139
165
  private _amBtn;
140
166
  private _pmBtn;
141
167
  bg: Element;
142
- bearing: Element;
143
168
  g: Element;
144
169
  toggleViewTimer: ReturnType<typeof setTimeout>;
145
170
  vibrateTimer: ReturnType<typeof setTimeout>;
@@ -148,32 +173,22 @@ export declare class Timepicker extends Component<TimepickerOptions> {
148
173
  private displayPlugin;
149
174
  /** Whether the dial (ticks + SVG + AM/PM buttons) has been built yet. */
150
175
  private _clockBuilt;
176
+ /** Whether the pointer last pointed at a value outside the range. */
177
+ private _handRefused;
178
+ /** The first and last allowed second of the day. */
179
+ private _limits;
151
180
  constructor(el: HTMLInputElement, options: Partial<TimepickerOptions>);
152
181
  static get defaults(): TimepickerOptions;
153
- /**
154
- * Initializes instance of Timepicker.
155
- * @param el HTML element.
156
- * @param options Component options.
157
- */
158
- static init(el: HTMLInputElement, options?: Partial<TimepickerOptions>): Timepicker;
159
- /**
160
- * Initializes instances of Timepicker.
161
- * @param els HTML elements.
162
- * @param options Component options.
163
- */
164
- static init(els: InitElements<HTMLInputElement | InitElement>, options?: Partial<TimepickerOptions>): Timepicker[];
165
- static _addLeadingZero(num: number): string;
166
- static _createSVGEl(name: string): SVGElement;
167
- static getInstance(el: HTMLElement): Timepicker;
182
+ static key: string;
168
183
  destroy(): void;
169
184
  _setupEventHandlers(): void;
170
- _removeEventHandlers(): void;
171
- private _removeDragListeners;
172
185
  _handleInputClick: () => void;
173
186
  _handleInputKeydown: (e: KeyboardEvent) => void;
174
187
  _handleClockClickStart: (e: PointerEvent) => void;
175
188
  _handleDocumentClickMove: (e: PointerEvent) => void;
176
189
  _handleDocumentClickEnd: (e: PointerEvent) => void;
190
+ /** Take the value under the hand: move on to the minutes, or submit. */
191
+ private _chooseHand;
177
192
  /**
178
193
  * A cancelled pointer is not a completed selection. The browser or the OS
179
194
  * took the gesture over, so this only lets go of the drag - it must not run
@@ -181,8 +196,21 @@ export declare class Timepicker extends Component<TimepickerOptions> {
181
196
  * and under `autoSubmit` closes the picker on a time the user never chose.
182
197
  */
183
198
  _handleDocumentClickCancel: (e: PointerEvent) => void;
199
+ /**
200
+ * Read `minTime` and `maxTime` as seconds of the day. Without a seconds
201
+ * field the picker writes whole minutes, so the bounds round inward to a
202
+ * whole minute: `maxTime` takes in every second of its minute, and the
203
+ * hidden seconds never clamp.
204
+ */
205
+ private _readLimits;
184
206
  _insertHTMLIntoDOM(): void;
185
207
  _setupVariables(): void;
208
+ private _removeSecondsField;
209
+ private _input;
210
+ /** The units that have a field. */
211
+ private _units;
212
+ /** Which unit's field `target` is, if any. */
213
+ private _unitOf;
186
214
  _pickerSetup(): void;
187
215
  /**
188
216
  * Build the dial, once. Cheap to call repeatedly - every entry point that
@@ -200,6 +228,23 @@ export declare class Timepicker extends Component<TimepickerOptions> {
200
228
  _handleAmPmInteraction: (e: HTMLElement) => void;
201
229
  _updateAmPmView(): void;
202
230
  _updateTimeFromInput(): void;
231
+ /** Show the time in every field but `except`, which the person is typing in. */
232
+ private _writeFields;
233
+ /** After a change to the time: keep it in range and update what depends on it. */
234
+ private _afterChange;
235
+ /**
236
+ * Give each field the allowed range of values, and disable a period with
237
+ * no allowed time.
238
+ */
239
+ private _updateRanges;
240
+ /** Mark the ticks of a dial view that are outside the range. */
241
+ private _disableTicks;
242
+ /** The hour on the 24-hour clock, setting AM or PM on a 12-hour one. */
243
+ private _setHours24;
244
+ /** The time as seconds of the day. */
245
+ private _time;
246
+ /** Move the time to the nearest allowed time, and say whether it moved. */
247
+ private _clamp;
203
248
  /**
204
249
  * Show hours or minutes view on timepicker.
205
250
  * @param view The name of the view you want to switch to, 'hours' or 'minutes'.
@@ -208,14 +253,61 @@ export declare class Timepicker extends Component<TimepickerOptions> {
208
253
  showView: (view: Views, delay?: number) => void;
209
254
  private _cancelClockReset;
210
255
  resetClock(delay: any): void;
256
+ /**
257
+ * Enter in the hour or minute field commits the typed time. The dial ticks
258
+ * are pointer targets only, and under `autoSubmit` there is no Ok button,
259
+ * so without this a keyboard user could type a time but never set it.
260
+ * Cancelling also keeps Enter from submitting a surrounding form. The
261
+ * listener's column holds only the fields; AM/PM is a separate column.
262
+ */
263
+ _handleDigitalKeydown: (e: KeyboardEvent) => void;
264
+ /** The lowest and highest value a field can show. */
265
+ private _bounds;
266
+ /** The lowest and highest allowed value of a field, given the others. */
267
+ private _range;
268
+ /**
269
+ * The first and last allowed value of a field, given the fields before it,
270
+ * with hours on the 24-hour clock. An hour is allowed when any second of
271
+ * it is, and so is a minute.
272
+ */
273
+ private _dayRange;
274
+ /** A field's value with hours on the 24-hour clock. */
275
+ private _dayValue;
276
+ /** Whether a field can take `value` within the range. */
277
+ private _allows;
278
+ /** The whole number typed in a field, or NaN when the field can't take it. */
279
+ private _fieldValue;
280
+ /** Whether a field can show `value` and the range allows it. */
281
+ private _takes;
282
+ /** Point the hand at an hour or minute. Seconds have no dial view. */
283
+ private _moveHand;
284
+ /**
285
+ * Up and Down step a field by one, Page Up and Page Down by five, round
286
+ * the dial: past 59 minutes comes 00. The hand follows hours and minutes.
287
+ * Hours step round the day, so in 12-hour time passing 12 switches AM and
288
+ * PM. Minutes and seconds wrap without carrying. With `minTime` or
289
+ * `maxTime`, a field that is not wholly allowed stops at its last allowed
290
+ * value instead of wrapping.
291
+ */
292
+ private _step;
293
+ /** A field's value `step` on, with hours on the 24-hour clock. */
294
+ private _stepValue;
211
295
  _inputFromTextField: (event: Event) => void;
212
296
  drawClockFromTimeInput(value: any, isHours: any): void;
213
297
  setHand(x: any, y: any, roundBy5?: boolean): void;
298
+ /** The hour at a dial position, 0 to 12 from the top. */
299
+ private _hourAt;
214
300
  setClockAttributes(radian: number, radius: number): void;
215
301
  formatHours(): void;
216
302
  formatMinutes(): void;
303
+ formatSeconds(): void;
304
+ /** Normalize every field, as leaving it would. */
305
+ private _formatFields;
217
306
  setHoursDefault(): void;
218
307
  done: (clearValue?: any) => void;
308
+ /** `HH:MM` for the given hour, or `HH:MM:SS` with a seconds field. */
309
+ private _clockTime;
310
+ private _inputValue;
219
311
  confirm: () => void;
220
312
  cancel: () => void;
221
313
  clear: () => void;
@@ -1,4 +1,4 @@
1
- import { Component, BaseOptions, InitElements, InitElement } from '../core/component';
1
+ import { Component, BaseOptions } from '../core/component';
2
2
  export type TooltipPosition = 'top' | 'right' | 'bottom' | 'left';
3
3
  export interface TooltipOptions extends BaseOptions {
4
4
  /**
@@ -7,7 +7,8 @@ export interface TooltipOptions extends BaseOptions {
7
7
  */
8
8
  exitDelay: number;
9
9
  /**
10
- * Delay time before tooltip appears.
10
+ * Delay time before tooltip appears. Skipped while a tooltip is closing
11
+ * and for 300ms after its exitDelay ends.
11
12
  * @default 0
12
13
  */
13
14
  enterDelay: number;
@@ -52,6 +53,13 @@ export interface TooltipOptions extends BaseOptions {
52
53
  * @default 10
53
54
  */
54
55
  transitionMovement: number;
56
+ /**
57
+ * Open on a click instead of hover and focus. A second click, Escape, a
58
+ * click elsewhere or focus on another element closes it. On touch a tap
59
+ * is the click, so the long press is off.
60
+ * @default false
61
+ */
62
+ openOnClick: boolean;
55
63
  }
56
64
  export declare class Tooltip extends Component<TooltipOptions> {
57
65
  /**
@@ -70,30 +78,29 @@ export declare class Tooltip extends Component<TooltipOptions> {
70
78
  private _exitDelayTimeout;
71
79
  private _enterDelayTimeout;
72
80
  private _animationTimeout;
81
+ private _pressTimeout;
82
+ private _lingerTimeout;
83
+ private _outsideTimeout;
84
+ /** The last click on the trigger or inside the tooltip, which the document listener leaves alone. */
85
+ private _insideClick;
86
+ /** When the last touch began or ended, to tell its mouse events from a mouse. */
87
+ private _lastTouch;
88
+ /** Whether a long press showed the tooltip, until it closes or a mouse hovers. */
89
+ private _touchShown;
90
+ /** Until when a click is the release of a long press, not a tap. */
91
+ private _swallowClickUntil;
92
+ private _shown;
73
93
  private _originalContent;
74
94
  xMovement: number;
75
95
  yMovement: number;
76
96
  constructor(el: HTMLElement, options: Partial<TooltipOptions>);
77
97
  static get defaults(): TooltipOptions;
78
- /**
79
- * Initializes instance of Tooltip.
80
- * @param el HTML element.
81
- * @param options Component options.
82
- */
83
- static init(el: HTMLElement, options?: Partial<TooltipOptions>): Tooltip;
84
- /**
85
- * Initializes instances of Tooltip.
86
- * @param els HTML elements.
87
- * @param options Component options.
88
- */
89
- static init(els: InitElements<InitElement>, options?: Partial<TooltipOptions>): Tooltip[];
90
- static getInstance(el: HTMLElement): Tooltip;
98
+ static key: string;
91
99
  destroy(): void;
92
100
  _appendTooltipEl(): void;
93
101
  _setTooltipContent(tooltipContentEl: HTMLElement): void;
94
102
  _updateTooltipContent(): void;
95
103
  _setupEventHandlers(): void;
96
- _removeEventHandlers(): void;
97
104
  /**
98
105
  * Show tooltip.
99
106
  */
@@ -102,20 +109,49 @@ export declare class Tooltip extends Component<TooltipOptions> {
102
109
  * Hide tooltip.
103
110
  */
104
111
  close: () => void;
112
+ /** Show at once, without enterDelay, for a request that is its own delay: a long press or a click. */
113
+ private _showNow;
114
+ /** Hide at once, without exitDelay, for an explicit dismissal. */
115
+ private _hideNow;
105
116
  _setExitDelayTimeout(): void;
106
117
  _setEnterDelayTimeout(isManual: any): void;
107
118
  _positionTooltip(): void;
108
- _repositionWithinScreen(x: number, y: number, width: number, height: number): {
109
- x: number;
110
- y: number;
111
- };
119
+ _place(): void;
120
+ _anchorTooltip(): void;
112
121
  _animateIn(): void;
113
122
  _animateOut(): void;
114
123
  _animate(show: boolean): void;
124
+ private _reportShown;
115
125
  _handleMouseEnter: () => void;
126
+ /** Whether an event is a touch, noting when, so the mouse events that echo it are ignored. */
127
+ private _touched;
128
+ /** Whether an event is a touch for the long press, which a click tooltip does without. */
129
+ private _longPress;
130
+ _handlePointerEnter: (e: PointerEvent) => void;
131
+ /** A touch held for LONG_PRESS shows the tooltip, unless it turns into a scroll first. */
132
+ _handlePointerDown: (e: PointerEvent) => void;
133
+ /** The finger lifted: a press too short stays a tap, and a tooltip it showed lingers for TOUCH_LINGER. */
134
+ _handlePointerEnd: (e: PointerEvent) => void;
135
+ /**
136
+ * A click tooltip toggles. Otherwise the click a long press's release sends
137
+ * would press the button or follow the link, so it is consumed.
138
+ */
139
+ _handleClick: (e: MouseEvent) => void;
140
+ /** A click tooltip toggles on what shows: one open() still holds back for enterDelay shows at once. */
141
+ private _toggle;
142
+ _handleTooltipClick: (e: MouseEvent) => void;
143
+ _handleDocumentClick: (e: MouseEvent) => void;
144
+ /**
145
+ * The browser took the touch to scroll: no tooltip opens, not even one
146
+ * waiting out enterDelay, and one the touch showed closes at once.
147
+ */
148
+ _handlePointerCancel: (e: PointerEvent) => void;
149
+ /** Whether a node is the trigger or the tooltip, or inside either. */
150
+ private _holds;
116
151
  _handleMouseLeave: (event: MouseEvent) => void;
117
152
  _handleKeydown: (event: KeyboardEvent) => void;
118
153
  _handleFocus: (event: FocusEvent) => void;
119
154
  _handleBlur: (event: FocusEvent) => void;
155
+ private _blurClickTooltip;
120
156
  _getAttributeOptions(): Partial<TooltipOptions>;
121
157
  }
@@ -0,0 +1,106 @@
1
+ import { FormSelect, FormSelectOptions } from './select';
2
+ /** An option and the options that name it as their parent. */
3
+ export interface OptionNode {
4
+ option: HTMLOptionElement;
5
+ children: OptionNode[];
6
+ }
7
+ /**
8
+ * Turns flat options into a tree. An option sits under the first option whose
9
+ * value its `data-parent` names. It is a root when that is empty, names no
10
+ * option, or starts a chain of parents that comes back to the option itself;
11
+ * its own children stay under it. Siblings keep document order.
12
+ */
13
+ export declare function optionTree(options: HTMLOptionElement[]): OptionNode[];
14
+ export declare class TreeSelect extends FormSelect {
15
+ /**
16
+ * The role="tree" list inside the Menu surface. Menu styles the rows of its
17
+ * <menu> directly, so the tree keeps its rows one list further down.
18
+ */
19
+ tree: HTMLUListElement;
20
+ /** Each branch row and the option it stands for. */
21
+ private _branches;
22
+ /** Branch options this disabled, so the form never submits one. */
23
+ private _disabledBranches;
24
+ /** While refresh() rebuilds the rows, the values of the branches left open. */
25
+ private _keepOpen;
26
+ /** Expansion before the first nonempty query, retained across query edits. */
27
+ private _searchOpen;
28
+ /** What typeahead has read so far, and the timer that clears it. */
29
+ private _typed;
30
+ private _typedTimer;
31
+ constructor(el: HTMLSelectElement, options: Partial<FormSelectOptions>);
32
+ static key: string;
33
+ _setValueToInput(): void;
34
+ protected _canSearch(): boolean;
35
+ protected _searchList(): HTMLUListElement;
36
+ protected _searchRows(): HTMLElement[];
37
+ protected _filterSearch(query: string): void;
38
+ private _matchingRows;
39
+ private _searchExpansion;
40
+ protected _searchNavigate(e: KeyboardEvent): void;
41
+ destroy(): void;
42
+ /**
43
+ * Rebuilds the tree from the native options, keeping open each branch whose
44
+ * value is still there and, while the popup is open, focus on the same row.
45
+ */
46
+ refresh(): void;
47
+ private _restoreOpenFocus;
48
+ /** The option whose row has focus, if one does. */
49
+ private _focusedOption;
50
+ /** The values of the open branches. */
51
+ private _openValues;
52
+ /** Focuses the row for `option` again, or the first enabled row once it is gone or disabled, or the field. */
53
+ private _restoreFocus;
54
+ /** Names the tree as the field is named: aria-labelledby, then aria-label, then its labels. */
55
+ private _nameTree;
56
+ private _labelTree;
57
+ protected _setupOptionHandlers(): void;
58
+ protected _buildOptions(): void;
59
+ /**
60
+ * A select with no selected option picks its first one, which is often a
61
+ * branch, and disabling the branch does not move the selection. Unless the
62
+ * markup selected it, move to the option a form reset would pick now that
63
+ * branches are disabled: the first enabled leaf, or none. Only on start:
64
+ * after that a selected branch is one a script chose.
65
+ */
66
+ private _leaveImplicitBranch;
67
+ /** Whether the selection is a branch this disabled, which the markup did not select. */
68
+ private _browserPickedBranch;
69
+ private _row;
70
+ private _branch;
71
+ private _leaf;
72
+ private _restoreBranches;
73
+ private _setExpanded;
74
+ /** The rows not inside a closed branch, in document order. */
75
+ _visibleRows(): HTMLElement[];
76
+ private _enabledRows;
77
+ _focusRow(row: HTMLElement | null | undefined): void;
78
+ /** Opens the chosen leaf's branches and focuses it, or the first row a person can choose or open. */
79
+ protected _focusSelected(): void;
80
+ /** Opens every branch around `row`. */
81
+ private _expandTo;
82
+ /** The branch row holding `row`, never an element outside the tree. */
83
+ private _parentRow;
84
+ private _optionOf;
85
+ private _rowOf;
86
+ /** Chooses a leaf, or opens or closes a branch. */
87
+ _activate(row: HTMLElement): void;
88
+ /** Opens a closed branch, or moves into an open one. */
89
+ _openOrEnter(row: HTMLElement): void;
90
+ /** Closes an open branch, or moves to the parent row. */
91
+ _closeOrLeave(row: HTMLElement): void;
92
+ /** Opens every branch beside `row`. */
93
+ _openSiblings(row: HTMLElement): void;
94
+ /**
95
+ * Moves to the next row whose text starts with the characters typed in the
96
+ * last second, as Menu's typeahead does. A repeated search starts on the
97
+ * focused row, so typing more of its text keeps it.
98
+ */
99
+ _typeahead(row: HTMLElement, key: string): void;
100
+ private _toggle;
101
+ private _keyFor;
102
+ /** The key as in a left-to-right tree. */
103
+ private _logicalKey;
104
+ private _handleTreeKeydown;
105
+ private _handleTreeClick;
106
+ }
@@ -0,0 +1,56 @@
1
+ import { LineChart, LineChartOptions } from './lineChart';
2
+ export type TreemapChartOptions = LineChartOptions;
3
+ /**
4
+ * Treemap chart. It reads its <table> like LineChart, but draws each row of
5
+ * the first value column as a rectangle whose area is its share of the
6
+ * whole, filling the plot, the largest at the top inline-start corner. Rows
7
+ * with no positive value draw nothing. Further columns show in the tooltip.
8
+ *
9
+ * Call `update()` after changing the table, or start it with `watch` or
10
+ * `data-watch`.
11
+ */
12
+ export declare class TreemapChart extends LineChart {
13
+ /** Each row's positive value, or 0 for a row with no rectangle. */
14
+ private _values;
15
+ /** Each row's rectangle, or null. */
16
+ private _boxes;
17
+ /** Each drawn row's place as fractions of the plot. */
18
+ private _places;
19
+ /** Lays the rectangles out again when the plot changes shape. */
20
+ private _sizes;
21
+ protected get _type(): string;
22
+ /** Area carries the value, so there is no value axis. */
23
+ protected get _axis(): boolean;
24
+ protected get _points(): boolean;
25
+ static key: string;
26
+ /**
27
+ * Highlights one row: outlines its rectangle and fills the tooltip, with
28
+ * the row's share. A row with no rectangle passes to the next one with
29
+ * one, as when focus asks for the first row. Pass -1 to hide them.
30
+ */
31
+ show(index: number): void;
32
+ /** The first row from `index` on with a rectangle, or -1. */
33
+ private _drawnFrom;
34
+ /** Adds the row's share of the whole to its cell in the tooltip, as the pie chart writes it. */
35
+ private _share;
36
+ /**
37
+ * Opens the tooltip from the middle of the row's rectangle toward the
38
+ * middle of the plot.
39
+ */
40
+ protected _place(index: number): void;
41
+ /** The row whose rectangle is under the pointer, or -1. */
42
+ protected _indexAt(e: PointerEvent): number;
43
+ /**
44
+ * The arrows step through the rows with a rectangle in table order, which
45
+ * runs in no one direction on screen, so they do not swap in a
46
+ * right-to-left page. Home and End go to the first and last of them.
47
+ */
48
+ protected _keyTarget(key: string): number | undefined;
49
+ destroy(): void;
50
+ /** Neither row labels nor a legend: each rectangle carries its name. */
51
+ protected _guides(): Element[];
52
+ /** One rectangle per positive row, in table order, placed by _layout(). */
53
+ protected _draw(): Element;
54
+ /** Squarifies the positive rows, largest first, equal values in table order, and places their rectangles. */
55
+ private _layout;
56
+ }