@furystack/shades-common-components 11.0.0 → 12.0.1

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 (768) hide show
  1. package/CHANGELOG.md +443 -0
  2. package/esm/components/accordion/accordion-item.d.ts +31 -0
  3. package/esm/components/accordion/accordion-item.d.ts.map +1 -0
  4. package/esm/components/accordion/accordion-item.js +147 -0
  5. package/esm/components/accordion/accordion-item.js.map +1 -0
  6. package/esm/components/accordion/accordion.d.ts +27 -0
  7. package/esm/components/accordion/accordion.d.ts.map +1 -0
  8. package/esm/components/accordion/accordion.js +39 -0
  9. package/esm/components/accordion/accordion.js.map +1 -0
  10. package/esm/components/accordion/accordion.spec.d.ts +2 -0
  11. package/esm/components/accordion/accordion.spec.d.ts.map +1 -0
  12. package/esm/components/accordion/accordion.spec.js +284 -0
  13. package/esm/components/accordion/accordion.spec.js.map +1 -0
  14. package/esm/components/accordion/index.d.ts +3 -0
  15. package/esm/components/accordion/index.d.ts.map +1 -0
  16. package/esm/components/accordion/index.js +3 -0
  17. package/esm/components/accordion/index.js.map +1 -0
  18. package/esm/components/alert.d.ts +21 -0
  19. package/esm/components/alert.d.ts.map +1 -0
  20. package/esm/components/alert.js +131 -0
  21. package/esm/components/alert.js.map +1 -0
  22. package/esm/components/alert.spec.d.ts +2 -0
  23. package/esm/components/alert.spec.d.ts.map +1 -0
  24. package/esm/components/alert.spec.js +177 -0
  25. package/esm/components/alert.spec.js.map +1 -0
  26. package/esm/components/app-bar-link.d.ts +22 -2
  27. package/esm/components/app-bar-link.d.ts.map +1 -1
  28. package/esm/components/app-bar-link.js +20 -7
  29. package/esm/components/app-bar-link.js.map +1 -1
  30. package/esm/components/app-bar-link.spec.js +22 -19
  31. package/esm/components/app-bar-link.spec.js.map +1 -1
  32. package/esm/components/app-bar.d.ts +2 -0
  33. package/esm/components/app-bar.d.ts.map +1 -1
  34. package/esm/components/app-bar.js +16 -11
  35. package/esm/components/app-bar.js.map +1 -1
  36. package/esm/components/app-bar.spec.js +67 -52
  37. package/esm/components/app-bar.spec.js.map +1 -1
  38. package/esm/components/avatar.d.ts +2 -0
  39. package/esm/components/avatar.d.ts.map +1 -1
  40. package/esm/components/avatar.js +40 -37
  41. package/esm/components/avatar.js.map +1 -1
  42. package/esm/components/badge.d.ts +35 -0
  43. package/esm/components/badge.d.ts.map +1 -0
  44. package/esm/components/badge.js +68 -0
  45. package/esm/components/badge.js.map +1 -0
  46. package/esm/components/badge.spec.d.ts +2 -0
  47. package/esm/components/badge.spec.d.ts.map +1 -0
  48. package/esm/components/badge.spec.js +157 -0
  49. package/esm/components/badge.spec.js.map +1 -0
  50. package/esm/components/breadcrumb.d.ts +103 -0
  51. package/esm/components/breadcrumb.d.ts.map +1 -0
  52. package/esm/components/breadcrumb.js +121 -0
  53. package/esm/components/breadcrumb.js.map +1 -0
  54. package/esm/components/breadcrumb.spec.d.ts +2 -0
  55. package/esm/components/breadcrumb.spec.d.ts.map +1 -0
  56. package/esm/components/breadcrumb.spec.js +251 -0
  57. package/esm/components/breadcrumb.spec.js.map +1 -0
  58. package/esm/components/button-group.d.ts +85 -0
  59. package/esm/components/button-group.d.ts.map +1 -0
  60. package/esm/components/button-group.js +290 -0
  61. package/esm/components/button-group.js.map +1 -0
  62. package/esm/components/button-group.spec.d.ts +2 -0
  63. package/esm/components/button-group.spec.d.ts.map +1 -0
  64. package/esm/components/button-group.spec.js +502 -0
  65. package/esm/components/button-group.spec.js.map +1 -0
  66. package/esm/components/button.d.ts +44 -2
  67. package/esm/components/button.d.ts.map +1 -1
  68. package/esm/components/button.js +82 -73
  69. package/esm/components/button.js.map +1 -1
  70. package/esm/components/button.spec.js +205 -50
  71. package/esm/components/button.spec.js.map +1 -1
  72. package/esm/components/card.d.ts +117 -0
  73. package/esm/components/card.d.ts.map +1 -0
  74. package/esm/components/card.js +181 -0
  75. package/esm/components/card.js.map +1 -0
  76. package/esm/components/card.spec.d.ts +2 -0
  77. package/esm/components/card.spec.d.ts.map +1 -0
  78. package/esm/components/card.spec.js +278 -0
  79. package/esm/components/card.spec.js.map +1 -0
  80. package/esm/components/carousel.d.ts +50 -0
  81. package/esm/components/carousel.d.ts.map +1 -0
  82. package/esm/components/carousel.js +263 -0
  83. package/esm/components/carousel.js.map +1 -0
  84. package/esm/components/carousel.spec.d.ts +2 -0
  85. package/esm/components/carousel.spec.d.ts.map +1 -0
  86. package/esm/components/carousel.spec.js +677 -0
  87. package/esm/components/carousel.spec.js.map +1 -0
  88. package/esm/components/chip.d.ts +23 -0
  89. package/esm/components/chip.d.ts.map +1 -0
  90. package/esm/components/chip.js +139 -0
  91. package/esm/components/chip.js.map +1 -0
  92. package/esm/components/chip.spec.d.ts +2 -0
  93. package/esm/components/chip.spec.d.ts.map +1 -0
  94. package/esm/components/chip.spec.js +142 -0
  95. package/esm/components/chip.spec.js.map +1 -0
  96. package/esm/components/circular-progress.d.ts +37 -0
  97. package/esm/components/circular-progress.d.ts.map +1 -0
  98. package/esm/components/circular-progress.js +84 -0
  99. package/esm/components/circular-progress.js.map +1 -0
  100. package/esm/components/circular-progress.spec.d.ts +2 -0
  101. package/esm/components/circular-progress.spec.d.ts.map +1 -0
  102. package/esm/components/circular-progress.spec.js +228 -0
  103. package/esm/components/circular-progress.spec.js.map +1 -0
  104. package/esm/components/command-palette/command-palette-input.d.ts +3 -0
  105. package/esm/components/command-palette/command-palette-input.d.ts.map +1 -1
  106. package/esm/components/command-palette/command-palette-input.js +17 -9
  107. package/esm/components/command-palette/command-palette-input.js.map +1 -1
  108. package/esm/components/command-palette/command-palette-input.spec.js +172 -161
  109. package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
  110. package/esm/components/command-palette/command-palette-manager.spec.js +130 -114
  111. package/esm/components/command-palette/command-palette-manager.spec.js.map +1 -1
  112. package/esm/components/command-palette/command-palette-suggestion-list.d.ts +2 -0
  113. package/esm/components/command-palette/command-palette-suggestion-list.d.ts.map +1 -1
  114. package/esm/components/command-palette/command-palette-suggestion-list.js +20 -20
  115. package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -1
  116. package/esm/components/command-palette/command-palette-suggestion-list.spec.js +296 -278
  117. package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
  118. package/esm/components/command-palette/index.d.ts +2 -0
  119. package/esm/components/command-palette/index.d.ts.map +1 -1
  120. package/esm/components/command-palette/index.js +25 -94
  121. package/esm/components/command-palette/index.js.map +1 -1
  122. package/esm/components/command-palette/index.spec.js +12 -12
  123. package/esm/components/command-palette/index.spec.js.map +1 -1
  124. package/esm/components/context-menu/context-menu-item.d.ts +9 -0
  125. package/esm/components/context-menu/context-menu-item.d.ts.map +1 -0
  126. package/esm/components/context-menu/context-menu-item.js +56 -0
  127. package/esm/components/context-menu/context-menu-item.js.map +1 -0
  128. package/esm/components/context-menu/context-menu-manager.d.ts +52 -0
  129. package/esm/components/context-menu/context-menu-manager.d.ts.map +1 -0
  130. package/esm/components/context-menu/context-menu-manager.js +128 -0
  131. package/esm/components/context-menu/context-menu-manager.js.map +1 -0
  132. package/esm/components/context-menu/context-menu-manager.spec.d.ts +2 -0
  133. package/esm/components/context-menu/context-menu-manager.spec.d.ts.map +1 -0
  134. package/esm/components/context-menu/context-menu-manager.spec.js +326 -0
  135. package/esm/components/context-menu/context-menu-manager.spec.js.map +1 -0
  136. package/esm/components/context-menu/context-menu.d.ts +8 -0
  137. package/esm/components/context-menu/context-menu.d.ts.map +1 -0
  138. package/esm/components/context-menu/context-menu.js +79 -0
  139. package/esm/components/context-menu/context-menu.js.map +1 -0
  140. package/esm/components/context-menu/context-menu.spec.d.ts +2 -0
  141. package/esm/components/context-menu/context-menu.spec.d.ts.map +1 -0
  142. package/esm/components/context-menu/context-menu.spec.js +282 -0
  143. package/esm/components/context-menu/context-menu.spec.js.map +1 -0
  144. package/esm/components/context-menu/index.d.ts +4 -0
  145. package/esm/components/context-menu/index.d.ts.map +1 -0
  146. package/esm/components/context-menu/index.js +4 -0
  147. package/esm/components/context-menu/index.js.map +1 -0
  148. package/esm/components/data-grid/body.spec.js +194 -184
  149. package/esm/components/data-grid/body.spec.js.map +1 -1
  150. package/esm/components/data-grid/data-grid-row.d.ts.map +1 -1
  151. package/esm/components/data-grid/data-grid-row.js +66 -54
  152. package/esm/components/data-grid/data-grid-row.js.map +1 -1
  153. package/esm/components/data-grid/data-grid-row.spec.js +127 -95
  154. package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
  155. package/esm/components/data-grid/data-grid.d.ts.map +1 -1
  156. package/esm/components/data-grid/data-grid.js +17 -16
  157. package/esm/components/data-grid/data-grid.js.map +1 -1
  158. package/esm/components/data-grid/data-grid.spec.js +364 -430
  159. package/esm/components/data-grid/data-grid.spec.js.map +1 -1
  160. package/esm/components/data-grid/footer.spec.js +215 -203
  161. package/esm/components/data-grid/footer.spec.js.map +1 -1
  162. package/esm/components/data-grid/header.d.ts +3 -1
  163. package/esm/components/data-grid/header.d.ts.map +1 -1
  164. package/esm/components/data-grid/header.js +42 -30
  165. package/esm/components/data-grid/header.js.map +1 -1
  166. package/esm/components/data-grid/header.spec.js +330 -307
  167. package/esm/components/data-grid/header.spec.js.map +1 -1
  168. package/esm/components/data-grid/selection-cell.d.ts +2 -0
  169. package/esm/components/data-grid/selection-cell.d.ts.map +1 -1
  170. package/esm/components/data-grid/selection-cell.js +2 -7
  171. package/esm/components/data-grid/selection-cell.js.map +1 -1
  172. package/esm/components/data-grid/selection-cell.spec.js +45 -36
  173. package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
  174. package/esm/components/dialog.d.ts +46 -0
  175. package/esm/components/dialog.d.ts.map +1 -0
  176. package/esm/components/dialog.js +178 -0
  177. package/esm/components/dialog.js.map +1 -0
  178. package/esm/components/dialog.spec.d.ts +2 -0
  179. package/esm/components/dialog.spec.d.ts.map +1 -0
  180. package/esm/components/dialog.spec.js +113 -0
  181. package/esm/components/dialog.spec.js.map +1 -0
  182. package/esm/components/divider.d.ts +22 -0
  183. package/esm/components/divider.d.ts.map +1 -0
  184. package/esm/components/divider.js +113 -0
  185. package/esm/components/divider.js.map +1 -0
  186. package/esm/components/divider.spec.d.ts +2 -0
  187. package/esm/components/divider.spec.d.ts.map +1 -0
  188. package/esm/components/divider.spec.js +136 -0
  189. package/esm/components/divider.spec.js.map +1 -0
  190. package/esm/components/drawer/drawer-toggle-button.d.ts +36 -0
  191. package/esm/components/drawer/drawer-toggle-button.d.ts.map +1 -0
  192. package/esm/components/drawer/drawer-toggle-button.js +94 -0
  193. package/esm/components/drawer/drawer-toggle-button.js.map +1 -0
  194. package/esm/components/drawer/drawer-toggle-button.spec.d.ts +2 -0
  195. package/esm/components/drawer/drawer-toggle-button.spec.d.ts.map +1 -0
  196. package/esm/components/drawer/drawer-toggle-button.spec.js +306 -0
  197. package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -0
  198. package/esm/components/drawer/index.d.ts +56 -0
  199. package/esm/components/drawer/index.d.ts.map +1 -0
  200. package/esm/components/drawer/index.js +172 -0
  201. package/esm/components/drawer/index.js.map +1 -0
  202. package/esm/components/drawer/index.spec.d.ts +2 -0
  203. package/esm/components/drawer/index.spec.d.ts.map +1 -0
  204. package/esm/components/drawer/index.spec.js +538 -0
  205. package/esm/components/drawer/index.spec.js.map +1 -0
  206. package/esm/components/dropdown.d.ts +15 -0
  207. package/esm/components/dropdown.d.ts.map +1 -0
  208. package/esm/components/dropdown.js +262 -0
  209. package/esm/components/dropdown.js.map +1 -0
  210. package/esm/components/dropdown.spec.d.ts +2 -0
  211. package/esm/components/dropdown.spec.d.ts.map +1 -0
  212. package/esm/components/dropdown.spec.js +372 -0
  213. package/esm/components/dropdown.spec.js.map +1 -0
  214. package/esm/components/fab.d.ts +10 -1
  215. package/esm/components/fab.d.ts.map +1 -1
  216. package/esm/components/fab.js +24 -8
  217. package/esm/components/fab.js.map +1 -1
  218. package/esm/components/fab.spec.js +50 -39
  219. package/esm/components/fab.spec.js.map +1 -1
  220. package/esm/components/form.d.ts.map +1 -1
  221. package/esm/components/form.js +9 -7
  222. package/esm/components/form.js.map +1 -1
  223. package/esm/components/form.spec.js +209 -199
  224. package/esm/components/form.spec.js.map +1 -1
  225. package/esm/components/grid.js +10 -10
  226. package/esm/components/grid.js.map +1 -1
  227. package/esm/components/grid.spec.js +109 -85
  228. package/esm/components/grid.spec.js.map +1 -1
  229. package/esm/components/icons/icon-definitions.d.ts +140 -0
  230. package/esm/components/icons/icon-definitions.d.ts.map +1 -0
  231. package/esm/components/icons/icon-definitions.js +432 -0
  232. package/esm/components/icons/icon-definitions.js.map +1 -0
  233. package/esm/components/icons/icon-definitions.spec.d.ts +2 -0
  234. package/esm/components/icons/icon-definitions.spec.d.ts.map +1 -0
  235. package/esm/components/icons/icon-definitions.spec.js +59 -0
  236. package/esm/components/icons/icon-definitions.spec.js.map +1 -0
  237. package/esm/components/icons/icon-types.d.ts +48 -0
  238. package/esm/components/icons/icon-types.d.ts.map +1 -0
  239. package/esm/components/icons/icon-types.js +2 -0
  240. package/esm/components/icons/icon-types.js.map +1 -0
  241. package/esm/components/icons/icon.d.ts +56 -0
  242. package/esm/components/icons/icon.d.ts.map +1 -0
  243. package/esm/components/icons/icon.js +61 -0
  244. package/esm/components/icons/icon.js.map +1 -0
  245. package/esm/components/icons/icon.spec.d.ts +2 -0
  246. package/esm/components/icons/icon.spec.d.ts.map +1 -0
  247. package/esm/components/icons/icon.spec.js +224 -0
  248. package/esm/components/icons/icon.spec.js.map +1 -0
  249. package/esm/components/icons/index.d.ts +5 -0
  250. package/esm/components/icons/index.d.ts.map +1 -0
  251. package/esm/components/icons/index.js +3 -0
  252. package/esm/components/icons/index.js.map +1 -0
  253. package/esm/components/image.d.ts +62 -0
  254. package/esm/components/image.d.ts.map +1 -0
  255. package/esm/components/image.js +348 -0
  256. package/esm/components/image.js.map +1 -0
  257. package/esm/components/image.spec.d.ts +2 -0
  258. package/esm/components/image.spec.d.ts.map +1 -0
  259. package/esm/components/image.spec.js +542 -0
  260. package/esm/components/image.spec.js.map +1 -0
  261. package/esm/components/index.d.ts +32 -4
  262. package/esm/components/index.d.ts.map +1 -1
  263. package/esm/components/index.js +32 -4
  264. package/esm/components/index.js.map +1 -1
  265. package/esm/components/inputs/autocomplete.d.ts +2 -0
  266. package/esm/components/inputs/autocomplete.d.ts.map +1 -1
  267. package/esm/components/inputs/autocomplete.js +10 -6
  268. package/esm/components/inputs/autocomplete.js.map +1 -1
  269. package/esm/components/inputs/autocomplete.spec.js +10 -1
  270. package/esm/components/inputs/autocomplete.spec.js.map +1 -1
  271. package/esm/components/inputs/checkbox.d.ts +50 -0
  272. package/esm/components/inputs/checkbox.d.ts.map +1 -0
  273. package/esm/components/inputs/checkbox.js +126 -0
  274. package/esm/components/inputs/checkbox.js.map +1 -0
  275. package/esm/components/inputs/checkbox.spec.d.ts +2 -0
  276. package/esm/components/inputs/checkbox.spec.d.ts.map +1 -0
  277. package/esm/components/inputs/checkbox.spec.js +287 -0
  278. package/esm/components/inputs/checkbox.spec.js.map +1 -0
  279. package/esm/components/inputs/index.d.ts +7 -0
  280. package/esm/components/inputs/index.d.ts.map +1 -1
  281. package/esm/components/inputs/index.js +7 -0
  282. package/esm/components/inputs/index.js.map +1 -1
  283. package/esm/components/inputs/input-number.d.ts +79 -0
  284. package/esm/components/inputs/input-number.d.ts.map +1 -0
  285. package/esm/components/inputs/input-number.js +232 -0
  286. package/esm/components/inputs/input-number.js.map +1 -0
  287. package/esm/components/inputs/input-number.spec.d.ts +2 -0
  288. package/esm/components/inputs/input-number.spec.d.ts.map +1 -0
  289. package/esm/components/inputs/input-number.spec.js +516 -0
  290. package/esm/components/inputs/input-number.spec.js.map +1 -0
  291. package/esm/components/inputs/input.d.ts +2 -1
  292. package/esm/components/inputs/input.d.ts.map +1 -1
  293. package/esm/components/inputs/input.js +86 -116
  294. package/esm/components/inputs/input.js.map +1 -1
  295. package/esm/components/inputs/input.spec.js +461 -427
  296. package/esm/components/inputs/input.spec.js.map +1 -1
  297. package/esm/components/inputs/radio-group.d.ts +38 -0
  298. package/esm/components/inputs/radio-group.d.ts.map +1 -0
  299. package/esm/components/inputs/radio-group.js +58 -0
  300. package/esm/components/inputs/radio-group.js.map +1 -0
  301. package/esm/components/inputs/radio-group.spec.d.ts +2 -0
  302. package/esm/components/inputs/radio-group.spec.d.ts.map +1 -0
  303. package/esm/components/inputs/radio-group.spec.js +201 -0
  304. package/esm/components/inputs/radio-group.spec.js.map +1 -0
  305. package/esm/components/inputs/radio.d.ts +42 -0
  306. package/esm/components/inputs/radio.d.ts.map +1 -0
  307. package/esm/components/inputs/radio.js +134 -0
  308. package/esm/components/inputs/radio.js.map +1 -0
  309. package/esm/components/inputs/radio.spec.d.ts +2 -0
  310. package/esm/components/inputs/radio.spec.d.ts.map +1 -0
  311. package/esm/components/inputs/radio.spec.js +211 -0
  312. package/esm/components/inputs/radio.spec.js.map +1 -0
  313. package/esm/components/inputs/select.d.ts +67 -0
  314. package/esm/components/inputs/select.d.ts.map +1 -0
  315. package/esm/components/inputs/select.js +581 -0
  316. package/esm/components/inputs/select.js.map +1 -0
  317. package/esm/components/inputs/select.spec.d.ts +2 -0
  318. package/esm/components/inputs/select.spec.d.ts.map +1 -0
  319. package/esm/components/inputs/select.spec.js +1009 -0
  320. package/esm/components/inputs/select.spec.js.map +1 -0
  321. package/esm/components/inputs/slider.d.ts +66 -0
  322. package/esm/components/inputs/slider.d.ts.map +1 -0
  323. package/esm/components/inputs/slider.js +526 -0
  324. package/esm/components/inputs/slider.js.map +1 -0
  325. package/esm/components/inputs/slider.spec.d.ts +2 -0
  326. package/esm/components/inputs/slider.spec.d.ts.map +1 -0
  327. package/esm/components/inputs/slider.spec.js +812 -0
  328. package/esm/components/inputs/slider.spec.js.map +1 -0
  329. package/esm/components/inputs/switch.d.ts +50 -0
  330. package/esm/components/inputs/switch.d.ts.map +1 -0
  331. package/esm/components/inputs/switch.js +138 -0
  332. package/esm/components/inputs/switch.js.map +1 -0
  333. package/esm/components/inputs/switch.spec.d.ts +2 -0
  334. package/esm/components/inputs/switch.spec.d.ts.map +1 -0
  335. package/esm/components/inputs/switch.spec.js +313 -0
  336. package/esm/components/inputs/switch.spec.js.map +1 -0
  337. package/esm/components/inputs/text-area.d.ts +2 -0
  338. package/esm/components/inputs/text-area.d.ts.map +1 -1
  339. package/esm/components/inputs/text-area.js +13 -21
  340. package/esm/components/inputs/text-area.js.map +1 -1
  341. package/esm/components/inputs/text-area.spec.js +171 -156
  342. package/esm/components/inputs/text-area.spec.js.map +1 -1
  343. package/esm/components/linear-progress.d.ts +32 -0
  344. package/esm/components/linear-progress.d.ts.map +1 -0
  345. package/esm/components/linear-progress.js +79 -0
  346. package/esm/components/linear-progress.js.map +1 -0
  347. package/esm/components/linear-progress.spec.d.ts +2 -0
  348. package/esm/components/linear-progress.spec.d.ts.map +1 -0
  349. package/esm/components/linear-progress.spec.js +251 -0
  350. package/esm/components/linear-progress.spec.js.map +1 -0
  351. package/esm/components/list/index.d.ts +3 -0
  352. package/esm/components/list/index.d.ts.map +1 -0
  353. package/esm/components/list/index.js +3 -0
  354. package/esm/components/list/index.js.map +1 -0
  355. package/esm/components/list/list-item.d.ts +13 -0
  356. package/esm/components/list/list-item.d.ts.map +1 -0
  357. package/esm/components/list/list-item.js +81 -0
  358. package/esm/components/list/list-item.js.map +1 -0
  359. package/esm/components/list/list.d.ts +18 -0
  360. package/esm/components/list/list.d.ts.map +1 -0
  361. package/esm/components/list/list.js +42 -0
  362. package/esm/components/list/list.js.map +1 -0
  363. package/esm/components/list/list.spec.d.ts +2 -0
  364. package/esm/components/list/list.spec.d.ts.map +1 -0
  365. package/esm/components/list/list.spec.js +540 -0
  366. package/esm/components/list/list.spec.js.map +1 -0
  367. package/esm/components/loader.d.ts +2 -0
  368. package/esm/components/loader.d.ts.map +1 -1
  369. package/esm/components/loader.js +18 -10
  370. package/esm/components/loader.js.map +1 -1
  371. package/esm/components/loader.spec.js +191 -175
  372. package/esm/components/loader.spec.js.map +1 -1
  373. package/esm/components/menu/index.d.ts +3 -0
  374. package/esm/components/menu/index.d.ts.map +1 -0
  375. package/esm/components/menu/index.js +3 -0
  376. package/esm/components/menu/index.js.map +1 -0
  377. package/esm/components/menu/menu-types.d.ts +27 -0
  378. package/esm/components/menu/menu-types.d.ts.map +1 -0
  379. package/esm/components/menu/menu-types.js +22 -0
  380. package/esm/components/menu/menu-types.js.map +1 -0
  381. package/esm/components/menu/menu-types.spec.d.ts +2 -0
  382. package/esm/components/menu/menu-types.spec.d.ts.map +1 -0
  383. package/esm/components/menu/menu-types.spec.js +103 -0
  384. package/esm/components/menu/menu-types.spec.js.map +1 -0
  385. package/esm/components/menu/menu.d.ts +17 -0
  386. package/esm/components/menu/menu.d.ts.map +1 -0
  387. package/esm/components/menu/menu.js +240 -0
  388. package/esm/components/menu/menu.js.map +1 -0
  389. package/esm/components/menu/menu.spec.d.ts +2 -0
  390. package/esm/components/menu/menu.spec.d.ts.map +1 -0
  391. package/esm/components/menu/menu.spec.js +427 -0
  392. package/esm/components/menu/menu.spec.js.map +1 -0
  393. package/esm/components/modal.d.ts +3 -2
  394. package/esm/components/modal.d.ts.map +1 -1
  395. package/esm/components/modal.js +8 -5
  396. package/esm/components/modal.js.map +1 -1
  397. package/esm/components/modal.spec.js +50 -43
  398. package/esm/components/modal.spec.js.map +1 -1
  399. package/esm/components/noty-list.d.ts +4 -0
  400. package/esm/components/noty-list.d.ts.map +1 -1
  401. package/esm/components/noty-list.js +65 -53
  402. package/esm/components/noty-list.js.map +1 -1
  403. package/esm/components/noty-list.spec.js +71 -68
  404. package/esm/components/noty-list.spec.js.map +1 -1
  405. package/esm/components/page-container/index.d.ts +54 -0
  406. package/esm/components/page-container/index.d.ts.map +1 -0
  407. package/esm/components/page-container/index.js +63 -0
  408. package/esm/components/page-container/index.js.map +1 -0
  409. package/esm/components/page-container/index.spec.d.ts +2 -0
  410. package/esm/components/page-container/index.spec.d.ts.map +1 -0
  411. package/esm/components/page-container/index.spec.js +217 -0
  412. package/esm/components/page-container/index.spec.js.map +1 -0
  413. package/esm/components/page-container/page-header.d.ts +57 -0
  414. package/esm/components/page-container/page-header.d.ts.map +1 -0
  415. package/esm/components/page-container/page-header.js +93 -0
  416. package/esm/components/page-container/page-header.js.map +1 -0
  417. package/esm/components/page-container/page-header.spec.d.ts +2 -0
  418. package/esm/components/page-container/page-header.spec.d.ts.map +1 -0
  419. package/esm/components/page-container/page-header.spec.js +230 -0
  420. package/esm/components/page-container/page-header.spec.js.map +1 -0
  421. package/esm/components/page-layout/index.d.ts +83 -0
  422. package/esm/components/page-layout/index.d.ts.map +1 -0
  423. package/esm/components/page-layout/index.js +288 -0
  424. package/esm/components/page-layout/index.js.map +1 -0
  425. package/esm/components/page-layout/index.spec.d.ts +2 -0
  426. package/esm/components/page-layout/index.spec.d.ts.map +1 -0
  427. package/esm/components/page-layout/index.spec.js +637 -0
  428. package/esm/components/page-layout/index.spec.js.map +1 -0
  429. package/esm/components/pagination.d.ts +43 -0
  430. package/esm/components/pagination.d.ts.map +1 -0
  431. package/esm/components/pagination.js +165 -0
  432. package/esm/components/pagination.js.map +1 -0
  433. package/esm/components/pagination.spec.d.ts +2 -0
  434. package/esm/components/pagination.spec.d.ts.map +1 -0
  435. package/esm/components/pagination.spec.js +195 -0
  436. package/esm/components/pagination.spec.js.map +1 -0
  437. package/esm/components/paper.d.ts +3 -1
  438. package/esm/components/paper.d.ts.map +1 -1
  439. package/esm/components/paper.js +11 -9
  440. package/esm/components/paper.js.map +1 -1
  441. package/esm/components/paper.spec.js +26 -18
  442. package/esm/components/paper.spec.js.map +1 -1
  443. package/esm/components/rating.d.ts +62 -0
  444. package/esm/components/rating.d.ts.map +1 -0
  445. package/esm/components/rating.js +201 -0
  446. package/esm/components/rating.js.map +1 -0
  447. package/esm/components/rating.spec.d.ts +2 -0
  448. package/esm/components/rating.spec.d.ts.map +1 -0
  449. package/esm/components/rating.spec.js +663 -0
  450. package/esm/components/rating.spec.js.map +1 -0
  451. package/esm/components/result.d.ts +37 -0
  452. package/esm/components/result.d.ts.map +1 -0
  453. package/esm/components/result.js +109 -0
  454. package/esm/components/result.js.map +1 -0
  455. package/esm/components/result.spec.d.ts +2 -0
  456. package/esm/components/result.spec.d.ts.map +1 -0
  457. package/esm/components/result.spec.js +159 -0
  458. package/esm/components/result.spec.js.map +1 -0
  459. package/esm/components/searchable-input-styles.d.ts +8 -0
  460. package/esm/components/searchable-input-styles.d.ts.map +1 -0
  461. package/esm/components/searchable-input-styles.js +71 -0
  462. package/esm/components/searchable-input-styles.js.map +1 -0
  463. package/esm/components/skeleton.d.ts +2 -0
  464. package/esm/components/skeleton.d.ts.map +1 -1
  465. package/esm/components/skeleton.js +19 -6
  466. package/esm/components/skeleton.js.map +1 -1
  467. package/esm/components/skeleton.spec.js +103 -95
  468. package/esm/components/skeleton.spec.js.map +1 -1
  469. package/esm/components/styles.d.ts.map +1 -1
  470. package/esm/components/styles.js +14 -13
  471. package/esm/components/styles.js.map +1 -1
  472. package/esm/components/styles.spec.js +27 -26
  473. package/esm/components/styles.spec.js.map +1 -1
  474. package/esm/components/suggest/index.d.ts.map +1 -1
  475. package/esm/components/suggest/index.js +24 -85
  476. package/esm/components/suggest/index.js.map +1 -1
  477. package/esm/components/suggest/index.spec.js +402 -378
  478. package/esm/components/suggest/index.spec.js.map +1 -1
  479. package/esm/components/suggest/suggest-input.d.ts +2 -0
  480. package/esm/components/suggest/suggest-input.d.ts.map +1 -1
  481. package/esm/components/suggest/suggest-input.js +10 -8
  482. package/esm/components/suggest/suggest-input.js.map +1 -1
  483. package/esm/components/suggest/suggest-input.spec.js +83 -71
  484. package/esm/components/suggest/suggest-input.spec.js.map +1 -1
  485. package/esm/components/suggest/suggest-manager.spec.js +102 -92
  486. package/esm/components/suggest/suggest-manager.spec.js.map +1 -1
  487. package/esm/components/suggest/suggestion-list.d.ts.map +1 -1
  488. package/esm/components/suggest/suggestion-list.js +21 -22
  489. package/esm/components/suggest/suggestion-list.js.map +1 -1
  490. package/esm/components/suggest/suggestion-list.spec.js +165 -146
  491. package/esm/components/suggest/suggestion-list.spec.js.map +1 -1
  492. package/esm/components/tabs.d.ts +18 -2
  493. package/esm/components/tabs.d.ts.map +1 -1
  494. package/esm/components/tabs.js +154 -14
  495. package/esm/components/tabs.js.map +1 -1
  496. package/esm/components/tabs.spec.js +295 -7
  497. package/esm/components/tabs.spec.js.map +1 -1
  498. package/esm/components/timeline.d.ts +53 -0
  499. package/esm/components/timeline.d.ts.map +1 -0
  500. package/esm/components/timeline.js +162 -0
  501. package/esm/components/timeline.js.map +1 -0
  502. package/esm/components/timeline.spec.d.ts +2 -0
  503. package/esm/components/timeline.spec.d.ts.map +1 -0
  504. package/esm/components/timeline.spec.js +209 -0
  505. package/esm/components/timeline.spec.js.map +1 -0
  506. package/esm/components/tooltip.d.ts +25 -0
  507. package/esm/components/tooltip.d.ts.map +1 -0
  508. package/esm/components/tooltip.js +113 -0
  509. package/esm/components/tooltip.js.map +1 -0
  510. package/esm/components/tooltip.spec.d.ts +2 -0
  511. package/esm/components/tooltip.spec.d.ts.map +1 -0
  512. package/esm/components/tooltip.spec.js +152 -0
  513. package/esm/components/tooltip.spec.js.map +1 -0
  514. package/esm/components/tree/index.d.ts +3 -0
  515. package/esm/components/tree/index.d.ts.map +1 -0
  516. package/esm/components/tree/index.js +3 -0
  517. package/esm/components/tree/index.js.map +1 -0
  518. package/esm/components/tree/tree-item.d.ts +14 -0
  519. package/esm/components/tree/tree-item.d.ts.map +1 -0
  520. package/esm/components/tree/tree-item.js +118 -0
  521. package/esm/components/tree/tree-item.js.map +1 -0
  522. package/esm/components/tree/tree.d.ts +20 -0
  523. package/esm/components/tree/tree.d.ts.map +1 -0
  524. package/esm/components/tree/tree.js +66 -0
  525. package/esm/components/tree/tree.js.map +1 -0
  526. package/esm/components/tree/tree.spec.d.ts +2 -0
  527. package/esm/components/tree/tree.spec.d.ts.map +1 -0
  528. package/esm/components/tree/tree.spec.js +427 -0
  529. package/esm/components/tree/tree.spec.js.map +1 -0
  530. package/esm/components/typography.d.ts +48 -0
  531. package/esm/components/typography.d.ts.map +1 -0
  532. package/esm/components/typography.js +223 -0
  533. package/esm/components/typography.js.map +1 -0
  534. package/esm/components/typography.spec.d.ts +2 -0
  535. package/esm/components/typography.spec.d.ts.map +1 -0
  536. package/esm/components/typography.spec.js +199 -0
  537. package/esm/components/typography.spec.js.map +1 -0
  538. package/esm/components/wizard/index.d.ts +2 -0
  539. package/esm/components/wizard/index.d.ts.map +1 -1
  540. package/esm/components/wizard/index.spec.js +70 -56
  541. package/esm/components/wizard/index.spec.js.map +1 -1
  542. package/esm/services/click-away-service.d.ts +5 -2
  543. package/esm/services/click-away-service.d.ts.map +1 -1
  544. package/esm/services/click-away-service.js +7 -1
  545. package/esm/services/click-away-service.js.map +1 -1
  546. package/esm/services/click-away-service.spec.js +14 -12
  547. package/esm/services/click-away-service.spec.js.map +1 -1
  548. package/esm/services/css-variable-theme.d.ts +167 -1
  549. package/esm/services/css-variable-theme.d.ts.map +1 -1
  550. package/esm/services/css-variable-theme.js +102 -0
  551. package/esm/services/css-variable-theme.js.map +1 -1
  552. package/esm/services/css-variable-theme.spec.js +131 -1
  553. package/esm/services/css-variable-theme.spec.js.map +1 -1
  554. package/esm/services/default-dark-theme.d.ts +107 -2
  555. package/esm/services/default-dark-theme.d.ts.map +1 -1
  556. package/esm/services/default-dark-theme.js +87 -1
  557. package/esm/services/default-dark-theme.js.map +1 -1
  558. package/esm/services/default-light-theme.d.ts +107 -2
  559. package/esm/services/default-light-theme.d.ts.map +1 -1
  560. package/esm/services/default-light-theme.js +86 -0
  561. package/esm/services/default-light-theme.js.map +1 -1
  562. package/esm/services/index.d.ts +6 -2
  563. package/esm/services/index.d.ts.map +1 -1
  564. package/esm/services/index.js +6 -2
  565. package/esm/services/index.js.map +1 -1
  566. package/esm/services/layout-service.d.ts +217 -0
  567. package/esm/services/layout-service.d.ts.map +1 -0
  568. package/esm/services/layout-service.js +331 -0
  569. package/esm/services/layout-service.js.map +1 -0
  570. package/esm/services/layout-service.spec.d.ts +2 -0
  571. package/esm/services/layout-service.spec.d.ts.map +1 -0
  572. package/esm/services/layout-service.spec.js +425 -0
  573. package/esm/services/layout-service.spec.js.map +1 -0
  574. package/esm/services/list-service.d.ts +31 -0
  575. package/esm/services/list-service.d.ts.map +1 -0
  576. package/esm/services/list-service.js +149 -0
  577. package/esm/services/list-service.js.map +1 -0
  578. package/esm/services/list-service.spec.d.ts +2 -0
  579. package/esm/services/list-service.spec.d.ts.map +1 -0
  580. package/esm/services/list-service.spec.js +283 -0
  581. package/esm/services/list-service.spec.js.map +1 -0
  582. package/esm/services/palette-css-vars.d.ts +12 -0
  583. package/esm/services/palette-css-vars.d.ts.map +1 -0
  584. package/esm/services/palette-css-vars.js +44 -0
  585. package/esm/services/palette-css-vars.js.map +1 -0
  586. package/esm/services/theme-provider-service.d.ts +387 -2
  587. package/esm/services/theme-provider-service.d.ts.map +1 -1
  588. package/esm/services/theme-provider-service.js.map +1 -1
  589. package/esm/services/tree-service.d.ts +61 -0
  590. package/esm/services/tree-service.d.ts.map +1 -0
  591. package/esm/services/tree-service.js +149 -0
  592. package/esm/services/tree-service.js.map +1 -0
  593. package/esm/services/tree-service.spec.d.ts +2 -0
  594. package/esm/services/tree-service.spec.d.ts.map +1 -0
  595. package/esm/services/tree-service.spec.js +338 -0
  596. package/esm/services/tree-service.spec.js.map +1 -0
  597. package/esm/utils/promisify-animation.d.ts.map +1 -1
  598. package/esm/utils/promisify-animation.js +6 -1
  599. package/esm/utils/promisify-animation.js.map +1 -1
  600. package/package.json +7 -8
  601. package/src/components/accordion/accordion-item.tsx +197 -0
  602. package/src/components/accordion/accordion.spec.tsx +418 -0
  603. package/src/components/accordion/accordion.tsx +50 -0
  604. package/src/components/accordion/index.ts +2 -0
  605. package/src/components/alert.spec.tsx +256 -0
  606. package/src/components/alert.tsx +186 -0
  607. package/src/components/app-bar-link.spec.tsx +22 -19
  608. package/src/components/app-bar-link.tsx +29 -10
  609. package/src/components/app-bar.spec.tsx +73 -58
  610. package/src/components/app-bar.tsx +19 -12
  611. package/src/components/avatar.tsx +46 -47
  612. package/src/components/badge.spec.tsx +228 -0
  613. package/src/components/badge.tsx +104 -0
  614. package/src/components/breadcrumb.spec.tsx +396 -0
  615. package/src/components/breadcrumb.tsx +188 -0
  616. package/src/components/button-group.spec.tsx +611 -0
  617. package/src/components/button-group.tsx +423 -0
  618. package/src/components/button.spec.tsx +257 -67
  619. package/src/components/button.tsx +130 -80
  620. package/src/components/card.spec.tsx +389 -0
  621. package/src/components/card.tsx +261 -0
  622. package/src/components/carousel.spec.tsx +894 -0
  623. package/src/components/carousel.tsx +376 -0
  624. package/src/components/chip.spec.tsx +200 -0
  625. package/src/components/chip.tsx +188 -0
  626. package/src/components/circular-progress.spec.tsx +289 -0
  627. package/src/components/circular-progress.tsx +145 -0
  628. package/src/components/command-palette/command-palette-input.spec.tsx +219 -219
  629. package/src/components/command-palette/command-palette-input.tsx +25 -9
  630. package/src/components/command-palette/command-palette-manager.spec.ts +132 -117
  631. package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +358 -358
  632. package/src/components/command-palette/command-palette-suggestion-list.tsx +22 -20
  633. package/src/components/command-palette/index.spec.tsx +12 -12
  634. package/src/components/command-palette/index.tsx +25 -102
  635. package/src/components/context-menu/context-menu-item.tsx +85 -0
  636. package/src/components/context-menu/context-menu-manager.spec.ts +433 -0
  637. package/src/components/context-menu/context-menu-manager.ts +148 -0
  638. package/src/components/context-menu/context-menu.spec.tsx +352 -0
  639. package/src/components/context-menu/context-menu.tsx +116 -0
  640. package/src/components/context-menu/index.ts +3 -0
  641. package/src/components/data-grid/body.spec.tsx +287 -283
  642. package/src/components/data-grid/data-grid-row.spec.tsx +165 -140
  643. package/src/components/data-grid/data-grid-row.tsx +72 -55
  644. package/src/components/data-grid/data-grid.spec.tsx +659 -729
  645. package/src/components/data-grid/data-grid.tsx +19 -15
  646. package/src/components/data-grid/footer.spec.tsx +249 -237
  647. package/src/components/data-grid/header.spec.tsx +374 -351
  648. package/src/components/data-grid/header.tsx +58 -39
  649. package/src/components/data-grid/selection-cell.spec.tsx +46 -45
  650. package/src/components/data-grid/selection-cell.tsx +2 -6
  651. package/src/components/dialog.spec.tsx +135 -0
  652. package/src/components/dialog.tsx +277 -0
  653. package/src/components/divider.spec.tsx +197 -0
  654. package/src/components/divider.tsx +147 -0
  655. package/src/components/drawer/drawer-toggle-button.spec.tsx +374 -0
  656. package/src/components/drawer/drawer-toggle-button.tsx +124 -0
  657. package/src/components/drawer/index.spec.tsx +748 -0
  658. package/src/components/drawer/index.tsx +227 -0
  659. package/src/components/dropdown.spec.tsx +445 -0
  660. package/src/components/dropdown.tsx +343 -0
  661. package/src/components/fab.spec.tsx +51 -40
  662. package/src/components/fab.tsx +32 -9
  663. package/src/components/form.spec.tsx +303 -293
  664. package/src/components/form.tsx +10 -7
  665. package/src/components/grid.spec.tsx +276 -183
  666. package/src/components/grid.tsx +10 -10
  667. package/src/components/icons/icon-definitions.spec.ts +68 -0
  668. package/src/components/icons/icon-definitions.ts +509 -0
  669. package/src/components/icons/icon-types.ts +48 -0
  670. package/src/components/icons/icon.spec.tsx +314 -0
  671. package/src/components/icons/icon.tsx +111 -0
  672. package/src/components/icons/index.ts +4 -0
  673. package/src/components/image.spec.tsx +748 -0
  674. package/src/components/image.tsx +520 -0
  675. package/src/components/index.ts +32 -4
  676. package/src/components/inputs/autocomplete.spec.tsx +10 -1
  677. package/src/components/inputs/autocomplete.tsx +13 -7
  678. package/src/components/inputs/checkbox.spec.tsx +377 -0
  679. package/src/components/inputs/checkbox.tsx +198 -0
  680. package/src/components/inputs/index.ts +7 -0
  681. package/src/components/inputs/input-number.spec.tsx +686 -0
  682. package/src/components/inputs/input-number.tsx +387 -0
  683. package/src/components/inputs/input.spec.tsx +544 -508
  684. package/src/components/inputs/input.tsx +91 -132
  685. package/src/components/inputs/radio-group.spec.tsx +281 -0
  686. package/src/components/inputs/radio-group.tsx +108 -0
  687. package/src/components/inputs/radio.spec.tsx +273 -0
  688. package/src/components/inputs/radio.tsx +199 -0
  689. package/src/components/inputs/select.spec.tsx +1237 -0
  690. package/src/components/inputs/select.tsx +775 -0
  691. package/src/components/inputs/slider.spec.tsx +1020 -0
  692. package/src/components/inputs/slider.tsx +696 -0
  693. package/src/components/inputs/switch.spec.tsx +410 -0
  694. package/src/components/inputs/switch.tsx +218 -0
  695. package/src/components/inputs/text-area.spec.tsx +186 -171
  696. package/src/components/inputs/text-area.tsx +13 -19
  697. package/src/components/linear-progress.spec.tsx +320 -0
  698. package/src/components/linear-progress.tsx +127 -0
  699. package/src/components/list/index.ts +2 -0
  700. package/src/components/list/list-item.tsx +106 -0
  701. package/src/components/list/list.spec.tsx +817 -0
  702. package/src/components/list/list.tsx +92 -0
  703. package/src/components/loader.spec.tsx +220 -204
  704. package/src/components/loader.tsx +17 -9
  705. package/src/components/menu/index.ts +2 -0
  706. package/src/components/menu/menu-types.spec.ts +122 -0
  707. package/src/components/menu/menu-types.ts +43 -0
  708. package/src/components/menu/menu.spec.tsx +483 -0
  709. package/src/components/menu/menu.tsx +326 -0
  710. package/src/components/modal.spec.tsx +65 -55
  711. package/src/components/modal.tsx +9 -6
  712. package/src/components/noty-list.spec.tsx +78 -75
  713. package/src/components/noty-list.tsx +76 -68
  714. package/src/components/page-container/index.spec.tsx +274 -0
  715. package/src/components/page-container/index.tsx +82 -0
  716. package/src/components/page-container/page-header.spec.tsx +308 -0
  717. package/src/components/page-container/page-header.tsx +127 -0
  718. package/src/components/page-layout/index.spec.tsx +882 -0
  719. package/src/components/page-layout/index.tsx +392 -0
  720. package/src/components/pagination.spec.tsx +275 -0
  721. package/src/components/pagination.tsx +249 -0
  722. package/src/components/paper.spec.tsx +26 -18
  723. package/src/components/paper.tsx +12 -10
  724. package/src/components/rating.spec.tsx +866 -0
  725. package/src/components/rating.tsx +286 -0
  726. package/src/components/result.spec.tsx +221 -0
  727. package/src/components/result.tsx +155 -0
  728. package/src/components/searchable-input-styles.ts +81 -0
  729. package/src/components/skeleton.spec.tsx +126 -118
  730. package/src/components/skeleton.tsx +23 -6
  731. package/src/components/styles.spec.ts +27 -28
  732. package/src/components/styles.tsx +15 -13
  733. package/src/components/suggest/index.spec.tsx +611 -587
  734. package/src/components/suggest/index.tsx +28 -95
  735. package/src/components/suggest/suggest-input.spec.tsx +95 -81
  736. package/src/components/suggest/suggest-input.tsx +9 -7
  737. package/src/components/suggest/suggest-manager.spec.ts +103 -93
  738. package/src/components/suggest/suggestion-list.spec.tsx +194 -173
  739. package/src/components/suggest/suggestion-list.tsx +23 -22
  740. package/src/components/tabs.spec.tsx +369 -7
  741. package/src/components/tabs.tsx +221 -18
  742. package/src/components/timeline.spec.tsx +294 -0
  743. package/src/components/timeline.tsx +221 -0
  744. package/src/components/tooltip.spec.tsx +223 -0
  745. package/src/components/tooltip.tsx +155 -0
  746. package/src/components/tree/index.ts +2 -0
  747. package/src/components/tree/tree-item.tsx +161 -0
  748. package/src/components/tree/tree.spec.tsx +677 -0
  749. package/src/components/tree/tree.tsx +111 -0
  750. package/src/components/typography.spec.tsx +235 -0
  751. package/src/components/typography.tsx +292 -0
  752. package/src/components/wizard/index.spec.tsx +77 -68
  753. package/src/services/click-away-service.spec.ts +14 -16
  754. package/src/services/click-away-service.ts +9 -3
  755. package/src/services/css-variable-theme.spec.ts +169 -1
  756. package/src/services/css-variable-theme.ts +107 -2
  757. package/src/services/default-dark-theme.ts +89 -3
  758. package/src/services/default-light-theme.ts +88 -2
  759. package/src/services/index.ts +6 -2
  760. package/src/services/layout-service.spec.ts +535 -0
  761. package/src/services/layout-service.ts +391 -0
  762. package/src/services/list-service.spec.ts +362 -0
  763. package/src/services/list-service.ts +169 -0
  764. package/src/services/palette-css-vars.ts +46 -0
  765. package/src/services/theme-provider-service.ts +246 -1
  766. package/src/services/tree-service.spec.ts +412 -0
  767. package/src/services/tree-service.ts +179 -0
  768. package/src/utils/promisify-animation.ts +7 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,448 @@
1
1
  # Changelog
2
2
 
3
+ ## [12.0.1] - 2026-02-11
4
+
5
+ ### 🧪 Tests
6
+
7
+ - Wrapped all disposable resources in `using()` / `usingAsync()` across command palette, context menu, data grid, click-away service, list service, and tree service tests to ensure cleanup runs even when assertions fail
8
+
9
+ ### ⬆️ Dependencies
10
+
11
+ - Bump `vitest` from `^4.0.17` to `^4.0.18`
12
+ - Updated `@furystack/shades` dependency
13
+ - Removed `semaphore-async-await` dependency
14
+ - Updated `@furystack/shades` with fix for `useState` setter disposal error
15
+
16
+ ## [12.0.0] - 2026-02-09
17
+
18
+ ### 💥 Breaking Changes
19
+
20
+ ### `Theme` interface extended with 6 new required properties
21
+
22
+ The `Theme` interface now requires the following additional properties: `action`, `shape`, `shadows`, `typography`, `transitions`, and `spacing`. Any custom theme objects must be updated to include these new token groups. See `defaultDarkTheme` and `defaultLightTheme` for reference implementations.
23
+
24
+ ### Requires `@furystack/shades` v3
25
+
26
+ This package now depends on the new major version of `@furystack/shades` which removed the `constructed` callback. All components have been migrated to use `useDisposable()` inside `render` for one-time setup and cleanup.
27
+
28
+ ### Migrated All Components from `element` to `useHostProps` and `useRef`
29
+
30
+ All components in this package have been updated to use the new declarative `useHostProps` and `useRef` APIs from `@furystack/shades`, replacing direct imperative DOM manipulation via the removed `element` parameter.
31
+
32
+ **Impact:** Components no longer accept or use the `element` render option. Any custom components that extended or wrapped these components and relied on `element` access patterns need to be updated.
33
+
34
+ **Migration:** The component API and behavior remain the same from a consumer perspective — this is a breaking change only due to the peer dependency bump on `@furystack/shades`.
35
+
36
+ - `AppBarLink` props changed from `RouteLinkProps` to `NestedRouteLinkProps` — `href` is now required and the rendered shadow DOM element changed from `route-link` to `nested-route-link`
37
+
38
+ ### ✨ Features
39
+
40
+ ### Component Pack 1 — 15 new UI components
41
+
42
+ Added a full set of general-purpose UI components, all themed via CSS variable tokens, with ARIA attributes, keyboard navigation, and `FormService` integration where applicable:
43
+
44
+ **Data Display:**
45
+
46
+ - `Accordion` / `AccordionItem` — Collapsible content sections with animated expand/collapse, keyboard support, and `outlined` / `elevation` variants
47
+ - `Badge` — Count or status-dot overlay with configurable `max`, palette colors, and show/hide animation
48
+ - `Chip` — Compact tag/label element with `filled` / `outlined` variants, optional delete button, and size options
49
+ - `Tooltip` — Contextual hover/focus popup with four placement options, configurable delay, and arrow indicator
50
+
51
+ **Feedback:**
52
+
53
+ - `Alert` — Severity-coded message banner (`error` / `warning` / `info` / `success`) with `filled`, `outlined`, and `standard` variants and an optional close button
54
+ - `CircularProgress` — SVG-based circular indicator with `determinate` and `indeterminate` variants, customisable size and thickness
55
+ - `LinearProgress` — Horizontal progress bar with `determinate` and `indeterminate` variants and size options
56
+
57
+ **Surfaces:**
58
+
59
+ - `Card` — Content surface with `CardHeader`, `CardContent`, `CardMedia`, and `CardActions` sub-components, elevation levels 0–3, and an outlined variant
60
+ - `Dialog` — Modal dialog with title, body, and action slots, backdrop overlay, show/hide animation, and a `ConfirmDialog` helper function
61
+
62
+ **Layout:**
63
+
64
+ - `Divider` — Visual separator with horizontal/vertical orientation, `full` / `inset` / `middle` variants, and optional inline text content
65
+ - `Pagination` — Page navigator with ellipsis, configurable sibling/boundary counts, prev/next buttons, and size/color variants
66
+
67
+ **Inputs:**
68
+
69
+ - `Checkbox` — Checkbox with label, indeterminate state, palette colors, and `FormService` integration
70
+ - `Radio` / `RadioGroup` — Radio buttons with a group container supporting controlled and uncontrolled modes, orientation options, and shared palette color
71
+ - `Select` — Custom dropdown with full keyboard navigation (Arrow, Enter, Escape, Home, End), validation and helper-text support, and `contained` / `outlined` variants
72
+ - `Switch` — Animated toggle switch with `small` / `medium` sizes and palette color support
73
+
74
+ ### New design token groups on the `Theme` interface
75
+
76
+ Extended the theme system with six new token groups, enabling centralised control over interactive states, shape, elevation, typography, motion, and spacing:
77
+
78
+ - `action` — Interactive state colors (`hoverBackground`, `selectedBackground`, `activeBackground`, `focusRing`, `disabledOpacity`, `backdrop`, `subtleBorder`)
79
+ - `shape` — Border radius scale (`xs` through `full`) for consistent rounded corners
80
+ - `shadows` — Elevation presets (`none`, `sm`, `md`, `lg`, `xl`) for layered depth
81
+ - `typography` — Font family, size scale, weight scale, and line height scale
82
+ - `transitions` — Duration presets (`fast`, `normal`, `slow`) and easing functions (`default`, `easeOut`, `easeInOut`)
83
+ - `spacing` — Spacing scale (`xs` through `xl`) for consistent padding, margins, and gaps
84
+
85
+ All new tokens are available in `defaultDarkTheme`, `defaultLightTheme`, and `cssVariableTheme`.
86
+
87
+ ### New exported types
88
+
89
+ All token group types are exported for type-safe custom themes: `ActionColors`, `BorderRadiusScale`, `Shape`, `Shadows`, `FontSizeScale`, `FontWeightScale`, `LineHeightScale`, `Typography`, `TransitionDurations`, `TransitionEasings`, `Transitions`, `Spacing`.
90
+
91
+ ### `buildTransition` helper
92
+
93
+ New utility function `buildTransition(...specs)` that builds CSS transition strings from `[property, duration, easing]` tuples, reducing boilerplate when composing multi-property transitions.
94
+
95
+ ### New Layout System Components
96
+
97
+ A complete layout system for building application shells with AppBar, drawers, and content areas.
98
+
99
+ #### PageLayout Component
100
+
101
+ Full viewport layout component that orchestrates AppBar and drawer positioning with automatic CSS variable management.
102
+
103
+ **Features:**
104
+
105
+ - Optional AppBar with `permanent` or `auto-hide` variants
106
+ - Left and/or right drawers with `permanent`, `collapsible`, or `temporary` variants
107
+ - Responsive drawer collapse via `collapseOnBreakpoint` prop
108
+ - Configurable gaps between AppBar/drawers and content
109
+ - Scoped `LayoutService` instance for child components
110
+
111
+ **Usage:**
112
+
113
+ ```tsx
114
+ <PageLayout
115
+ appBar={{
116
+ variant: 'permanent',
117
+ height: '64px',
118
+ component: <MyAppBar />,
119
+ }}
120
+ drawer={{
121
+ left: {
122
+ variant: 'collapsible',
123
+ width: '280px',
124
+ component: <Sidebar />,
125
+ collapseOnBreakpoint: 'md', // Auto-collapse below 960px
126
+ },
127
+ }}
128
+ topGap="16px"
129
+ sideGap="24px"
130
+ >
131
+ <MainContent />
132
+ </PageLayout>
133
+ ```
134
+
135
+ #### Drawer Component
136
+
137
+ Standalone drawer component for sidebars and navigation panels with three behavior variants.
138
+
139
+ **Variants:**
140
+
141
+ - `permanent`: Always visible, cannot be closed
142
+ - `collapsible`: Toggleable, pushes content when open
143
+ - `temporary`: Overlays content with backdrop, closes on backdrop click
144
+
145
+ **Usage:**
146
+
147
+ ```tsx
148
+ <Drawer position="left" variant="collapsible" collapseOnBreakpoint="md">
149
+ <nav>Navigation items...</nav>
150
+ </Drawer>
151
+ ```
152
+
153
+ #### DrawerToggleButton Component
154
+
155
+ A button component to toggle drawer open/close state, integrates with `LayoutService`.
156
+
157
+ **Usage:**
158
+
159
+ ```tsx
160
+ <DrawerToggleButton position="left" />
161
+ ```
162
+
163
+ #### PageContainer Component
164
+
165
+ Container component for consistent page content styling with max-width, centering, and spacing.
166
+
167
+ **Usage:**
168
+
169
+ ```tsx
170
+ <PageContainer maxWidth="1200px" centered padding="48px" gap="24px">
171
+ <PageHeader icon="👥" title="Users" description="Manage user accounts" />
172
+ <Paper>Content here...</Paper>
173
+ </PageContainer>
174
+ ```
175
+
176
+ #### PageHeader Component
177
+
178
+ Styled header component with optional icon, title, and description.
179
+
180
+ **Usage:**
181
+
182
+ ```tsx
183
+ <PageHeader icon="📊" title="Dashboard" description="Overview of your application metrics" />
184
+ ```
185
+
186
+ #### LayoutService
187
+
188
+ Service for managing layout state with observable values and CSS custom properties.
189
+
190
+ **Features:**
191
+
192
+ - Drawer state management (`drawerState`, `toggleDrawer`, `setDrawerOpen`)
193
+ - AppBar visibility control (`appBarVisible`, `appBarVariant`)
194
+ - Gap configuration (`topGap`, `sideGap`)
195
+ - Scoped CSS variables via `LAYOUT_CSS_VARIABLES` constant
196
+
197
+ **CSS Variables:**
198
+
199
+ ```typescript
200
+ import { LAYOUT_CSS_VARIABLES } from '@furystack/shades-common-components'
201
+
202
+ // Available CSS variables:
203
+ // --layout-appbar-height
204
+ // --layout-drawer-left-width
205
+ // --layout-drawer-right-width
206
+ // --layout-content-margin-left
207
+ // --layout-content-margin-right
208
+ // --layout-content-padding-top
209
+ // --layout-top-gap
210
+ // --layout-side-gap
211
+ ```
212
+
213
+ ### List Component
214
+
215
+ Added `List` and `ListItem` components for rendering selectable, keyboard-navigable lists with support for single and multi-selection.
216
+
217
+ - Click to focus, `ArrowUp`/`ArrowDown` to navigate, `Enter` to activate an item
218
+ - Multi-selection via `Ctrl+Click` (toggle), `Shift+Click` (range), `Space` (toggle focused), `+` (select all), `-` (deselect all)
219
+ - Type-ahead search when `searchField` is configured on `ListService`
220
+ - Supports custom `renderItem`, `renderIcon`, and `renderSecondaryActions` render props
221
+ - Click-away detection to release focus
222
+ - Smooth scroll-into-view when navigating with keyboard
223
+
224
+ Added `ListService` - a standalone state manager for list focus, selection, and keyboard navigation that can be used independently of the component.
225
+
226
+ ### Tree Component
227
+
228
+ Added `Tree` and `TreeItem` components for rendering hierarchical data with expand/collapse, indented levels, and keyboard navigation.
229
+
230
+ - `ArrowRight` expands a collapsed node or moves focus to its first child; `ArrowLeft` collapses an expanded node or moves focus to the parent
231
+ - Double-click toggles expand/collapse on parent nodes, activates leaf nodes
232
+ - Inherits all selection and navigation behavior from `ListService`
233
+ - Renders expand/collapse indicators (`▸`/`▾`) with level-based indentation
234
+ - Supports custom `renderItem` and `renderIcon` render props
235
+
236
+ Added `TreeService` - extends `ListService` with tree-specific state including expand/collapse tracking, flattened visible node list, and parent lookup.
237
+
238
+ ### Context Menu Component
239
+
240
+ Added `ContextMenu` and `ContextMenuItemComponent` for rendering positioned popup menus with keyboard navigation and item selection.
241
+
242
+ - Supports both right-click and programmatic trigger via `ContextMenuManager.open()`
243
+ - Items can have labels, descriptions, icons, disabled state, and separators
244
+ - `ArrowUp`/`ArrowDown` to navigate, `Enter` to select, `Escape` to close, `Home`/`End` to jump
245
+ - Clicking the backdrop or right-clicking elsewhere closes the menu
246
+ - Disabled items are skipped during keyboard navigation
247
+
248
+ Added `ContextMenuManager` - manages context menu state including open/close, item list, focus index, positioning, and keyboard navigation. Emits `onSelectItem` events via `EventHub`.
249
+
250
+ ### Breadcrumb Component
251
+
252
+ Added a new `Breadcrumb` component for navigating hierarchical route structures with automatic active state detection.
253
+
254
+ **Features:**
255
+
256
+ - Dynamic route parameter support (e.g., `/users/:id`)
257
+ - Custom label rendering with `render` prop
258
+ - Configurable separators (string or JSX element)
259
+ - Active item detection based on current URL
260
+ - Optional home/root link
261
+ - Last item clickable/non-clickable configuration
262
+
263
+ **Basic Usage:**
264
+
265
+ ```typescript
266
+ import { Breadcrumb } from '@furystack/shades-common-components'
267
+
268
+ <Breadcrumb
269
+ homeItem={{ path: '/', label: 'Home' }}
270
+ items={[
271
+ { path: '/users', label: 'Users' },
272
+ { path: '/users/:id', label: 'User Details', params: { id: '123' } },
273
+ ]}
274
+ separator=" › "
275
+ />
276
+ ```
277
+
278
+ **Type-Safe Usage:**
279
+
280
+ The `createBreadcrumb<TRoutes>()` helper provides compile-time route validation:
281
+
282
+ ```typescript
283
+ import { createBreadcrumb } from '@furystack/shades-common-components'
284
+ import type { appRoutes } from './routes'
285
+
286
+ const AppBreadcrumb = createBreadcrumb<typeof appRoutes>()
287
+
288
+ // ✅ Type-safe: only valid paths accepted
289
+ <AppBreadcrumb
290
+ items={[{ path: '/buttons', label: 'Buttons' }]}
291
+ />
292
+
293
+ // ❌ TypeScript error: invalid path
294
+ <AppBreadcrumb items={[{ path: '/nonexistent', label: 'Error' }]} />
295
+ ```
296
+
297
+ **Route Parameters:**
298
+
299
+ Route parameters are automatically inferred from the path pattern:
300
+
301
+ - `path="/buttons"` — `params` is optional
302
+ - `path="/users/:id"` — `params: { id: string }` is required
303
+
304
+ ### AppBarLink Enhancements
305
+
306
+ - Added `routingOptions` prop to `AppBarLink` for customizing route matching behavior using `path-to-regexp` options
307
+ - Added `createAppBarLink<TRoutes>()` helper for type-safe app bar links constrained to specific route trees
308
+
309
+ ### New Components
310
+
311
+ - Added `ButtonGroup` - groups multiple buttons with shared variant, color, orientation, and disabled state
312
+ - Added `Carousel` - content carousel with slide/fade transitions, autoplay, dot indicators, vertical mode, and keyboard navigation
313
+ - Added `Dropdown` - dropdown menu with items, groups, and dividers, configurable placement, keyboard navigation, and click-away closing
314
+ - Added `Icon` - SVG icon component with size variants (small/medium/large/custom), palette colors, and accessibility support (`ariaLabel` / `aria-hidden`)
315
+ - Added 50+ SVG icon definitions (`icons` namespace) for common UI actions, navigation, status indicators, and more
316
+ - Added `Image` - image component with loading skeleton, error fallback, preview/lightbox overlay, and load/error animations
317
+ - Added `Menu` - navigation menu with vertical, horizontal, and inline modes, expandable groups, and keyboard navigation
318
+ - Added `MenuEntry` types (`MenuItemEntry`, `MenuGroupEntry`, `MenuDividerEntry`) and `getNavigableKeys` utility for building menu structures
319
+ - Added `Rating` - star rating with configurable max, half-star precision, multiple sizes, palette colors, read-only mode, and keyboard accessibility
320
+ - Added `Result` - status feedback component for success/error/warning/info and HTTP error codes (403, 404, 500) with icon, title, and subtitle
321
+ - Added `Timeline` and `TimelineItem` - vertical timeline with color-coded dots, connector lines, and alternate/left/right positioning modes
322
+ - Added `Typography` - text component with semantic variants (h1–h6, subtitle, body, caption, overline), palette colors, ellipsis truncation, and copyable text
323
+ - Added `Slider` - range/value slider with min/max/step, marks with labels, tooltips, range mode (two thumbs), and keyboard accessibility
324
+ - Added `InputNumber` - numeric input with +/- stepper buttons, min/max/step constraints, decimal precision, form integration, and validation
325
+
326
+ ### Enhanced Components
327
+
328
+ - Added `text` variant, `size` prop (small/medium/large), `danger` flag, `loading` spinner, and `startIcon`/`endIcon` support to `Button`
329
+ - Added controlled mode (`activeKey`/`onTabChange`), `line`/`card` visual styles, `vertical` orientation, closable tabs with `onClose`, and an add button with `onAdd` to `Tabs`
330
+ - Added option groups (`optionGroups`), multi-select mode with chip display, and search/filter input to `Select`
331
+
332
+ ### Theme Design Tokens
333
+
334
+ - Added `ZIndex` type with stacking layers: `drawer`, `appBar`, `modal`, `tooltip`, `dropdown`
335
+ - Added `Effects` type with blur tokens: `blurSm`, `blurMd`, `blurLg`, `blurXl`
336
+ - Added `LetterSpacingScale` type with spacing values: `tight`, `dense`, `normal`, `wide`, `wider`, `widest`
337
+ - All three theme presets (`defaultDarkTheme`, `defaultLightTheme`, `cssVariableTheme`) updated with the new tokens
338
+
339
+ ### Migrated `styles.tsx` to CSS Variable Theme
340
+
341
+ - `colors` and `glassBox` exports now reference `cssVariableTheme` tokens instead of hardcoded values, ensuring consistency with the active theme
342
+
343
+ ### 🐛 Bug Fixes
344
+
345
+ - Fixed `defaultDarkTheme.divider` using a light-theme value (`rgba(0, 0, 0, 0.12)`) — now correctly uses `rgba(255, 255, 255, 0.12)`
346
+ - Fixed DataGrid row keyboard navigation not scrolling the focused row into view
347
+ - Fixed `Autocomplete` datalist binding to use `setTimeout` instead of `queueMicrotask`, avoiding conflicts with the new microtask-based component update batching in `@furystack/shades`. Also added proper cleanup via `clearTimeout` on dispose.
348
+
349
+ ### ♻️ Refactoring
350
+
351
+ ### Components migrated to declarative host manipulation
352
+
353
+ All components now use `useHostProps` to set data attributes, ARIA attributes, CSS custom properties, and styles on the host element instead of imperatively calling `element.setAttribute()`, `element.style.setProperty()`, etc. This includes:
354
+
355
+ - **Button** — color custom properties, variant/size/loading data attributes
356
+ - **Checkbox** — disabled/indeterminate data attributes, color custom property, replaced `querySelector` with `useRef` for form input registration
357
+ - **Input** — focus/validation state, label/helper text attributes
358
+ - **InputNumber** — stepper button refs, value formatting
359
+ - **Select** — open/disabled state, option list management
360
+ - **Slider** — track/thumb positioning via refs and host props
361
+ - **Switch** — checked/disabled state attributes
362
+ - **TextArea** — focus/validation state
363
+ - **Radio / RadioGroup** — checked/disabled state, group management
364
+ - **Autocomplete** — dropdown state management
365
+ - **Accordion** — expanded state toggling
366
+ - **Alert** — severity data attribute and color
367
+ - **AppBar / AppBarLink** — layout positioning
368
+ - **Avatar** — size and color attributes
369
+ - **Badge** — position and color
370
+ - **Carousel** — slide positioning and navigation via refs
371
+ - **Chip** — variant and deletable state
372
+ - **CircularProgress** — progress value and size via host props
373
+ - **CommandPalette** — open state and input focus via refs
374
+ - **ContextMenu** — position and visibility
375
+ - **DataGrid / DataGridRow** — selection state, column sizing
376
+ - **Dialog** — open state and focus management via refs
377
+ - **Divider** — orientation attribute
378
+ - **Dropdown** — open/closed state
379
+ - **Fab** — position and color
380
+ - **Form** — validation state
381
+ - **Icon** — size attribute and SVG rendering
382
+ - **Image** — loading/error state
383
+ - **LinearProgress** — progress value host props
384
+ - **List / ListItem** — selection state
385
+ - **Loader** — active state
386
+ - **Menu** — open state and positioning
387
+ - **Modal** — visibility and backdrop
388
+ - **NotyList** — notification state
389
+ - **PageContainer / PageLayout** — layout dimensions
390
+ - **Pagination** — page state
391
+ - **Rating** — value and hover state via refs
392
+ - **Skeleton** — animation variant
393
+ - **Suggest** — dropdown state and input refs
394
+ - **Tabs** — active tab indicator
395
+ - **Timeline** — item positioning
396
+ - **Tooltip** — visibility and positioning
397
+ - **Tree / TreeItem** — expanded/selected state
398
+ - **Typography** — variant data attribute
399
+
400
+ ### Services updated
401
+
402
+ - **ClickAwayService** — updated for compatibility with new rendering model
403
+ - **LayoutService** — updated for compatibility with new rendering model
404
+
405
+ - Replaced hardcoded `rgba(128,128,128,...)` backgrounds across all interactive components with `action.*` theme tokens
406
+ - Replaced hardcoded `border-radius` pixel values with `shape.borderRadius.*` tokens
407
+ - Replaced hardcoded `box-shadow` definitions with `shadows.*` elevation tokens
408
+ - Replaced hardcoded `font-size` and `font-weight` values with `typography.*` tokens
409
+ - Replaced hardcoded transition timing strings with `transitions.*` tokens
410
+ - Replaced hardcoded spacing pixel values with `spacing.*` tokens
411
+ - Replaced hardcoded disabled opacity, focus ring, and backdrop overlay values with `action.*` tokens
412
+ - Refactored `Button` to use `buildTransition()` helper and `spacing.lg` token instead of hardcoded values
413
+ - Migrated `Dropdown` keyboard event handler from `constructed` to `useDisposable()` in `render`
414
+ - Migrated `Checkbox`, `Input`, `InputNumber`, `Select`, `Switch`, `Slider`, `Autocomplete`, `Radio`, and `RadioGroup` form service registration from `constructed` to `useDisposable()` in `render`
415
+ - Migrated `NotyComponent` enter animation from `constructed` to `useDisposable()` in `render`
416
+ - Migrated `ButtonGroup`, `AppBar`, `CircularProgress`, `ContextMenu`, `ContextMenuItem`, `DataGrid`, `LinearProgress`, `List`, and `Tree` initialization logic from `constructed` to `useDisposable()` in `render`
417
+ - Migrated `AppBarLink` from the deprecated `RouteLink` to `NestedRouteLink` for SPA navigation
418
+ - Renamed `Typography` type to `ThemeTypography` in `ThemeProviderService` to avoid naming conflict with the new `Typography` component
419
+ - Made `zIndex`, `effects`, and `typography.letterSpacing` optional on the `Theme` interface for backward compatibility with existing custom themes
420
+
421
+ ### 🧪 Tests
422
+
423
+ - Added unit tests for all 15 new components (`accordion`, `alert`, `badge`, `card`, `chip`, `circular-progress`, `dialog`, `divider`, `linear-progress`, `pagination`, `tooltip`, `checkbox`, `radio`, `radio-group`, `select`, `switch`)
424
+ - Updated `fab.spec.tsx` and `loader.spec.tsx` to assert against theme tokens instead of hardcoded values
425
+ - Fixed `styles.spec.ts` to match updated `rgba` formatting in `glassBox` border
426
+ - Added unit tests for `Drawer`, `DrawerToggleButton`, `PageLayout`, `PageContainer`, `PageHeader`, and `LayoutService`
427
+ - Updated component tests to align with the removal of `constructed` callback
428
+ - Added tests for `ListService` covering selection, focus, keyboard navigation, type-ahead search, click handling, and disposal
429
+ - Added tests for `List` and `ListItem` components verifying rendering, keyboard interactions, click behaviors, and selection callbacks
430
+ - Added tests for `TreeService` covering expand/collapse, flattened node generation, keyboard navigation (`ArrowRight`/`ArrowLeft`), parent lookup, and disposal
431
+ - Added tests for `Tree` and `TreeItem` components verifying hierarchical rendering, expand/collapse interactions, and activation callbacks
432
+ - Added tests for `ContextMenuManager` covering open/close, item selection, keyboard navigation, disabled item skipping, and disposal
433
+ - Added tests for `ContextMenu` and `ContextMenuItemComponent` verifying rendering, focus highlighting, click handling, and backdrop dismiss
434
+ - Updated tests across multiple components (accordion, alert, badge, breadcrumb, card, chip, divider, icon, autocomplete, pagination, result, suggest-input, suggestion-list, timeline, tooltip) to work with microtask-based rendering
435
+ - Refactored tests across all components (AppBar, Button, CommandPalette, DataGrid, Drawer, Fab, Form, Grid, Input, TextArea, Loader, NotyList, PageLayout, Paper, Skeleton, Suggest, Wizard) to use `usingAsync` for proper `Injector` disposal
436
+ - Updated tests across components to accommodate the new rendering flow and `flushUpdates()` for async assertions
437
+ - Updated visual snapshot baselines for form fieldset tests
438
+ - Added full test coverage for `Breadcrumb` component including runtime behavior tests and type safety validation
439
+ - Added unit tests for all new components: `ButtonGroup`, `Carousel`, `Dropdown`, `Icon`, `Image`, `Menu`, `MenuTypes`, `Rating`, `Result`, `Timeline`, `Typography`, `Slider`, and `InputNumber`
440
+ - Extended unit tests for enhanced `Button`, `Tabs`, and `Select` components
441
+
442
+ ### ⬆️ Dependencies
443
+
444
+ - Peer dependency on `@furystack/shades` bumped to new major version
445
+
3
446
  ## [11.0.0] - 2026-02-01
4
447
 
5
448
  ### 💥 Breaking Changes
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Props for the AccordionItem component.
3
+ */
4
+ export type AccordionItemProps = {
5
+ /** The header content displayed in the clickable toggle area */
6
+ title: JSX.Element | string;
7
+ /** Whether the item starts in the expanded state. Defaults to false */
8
+ defaultExpanded?: boolean;
9
+ /** Whether the item is disabled (non-interactive) */
10
+ disabled?: boolean;
11
+ /** Optional icon displayed before the title */
12
+ icon?: JSX.Element | string;
13
+ };
14
+ /**
15
+ * An individual collapsible section for use within an Accordion container.
16
+ *
17
+ * Supports animated expand/collapse, keyboard accessibility, and optional icon.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <AccordionItem title="Section 1" defaultExpanded>
22
+ * <p>Content goes here</p>
23
+ * </AccordionItem>
24
+ * ```
25
+ */
26
+ export declare const AccordionItem: (props: AccordionItemProps & Omit<Partial<HTMLElement>, "style"> & {
27
+ style?: Partial<CSSStyleDeclaration>;
28
+ } & {
29
+ ref?: import("@furystack/shades").RefObject<Element>;
30
+ }, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
31
+ //# sourceMappingURL=accordion-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion-item.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.tsx"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gEAAgE;IAChE,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;IAC3B,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa;;;;sEAoKxB,CAAA"}
@@ -0,0 +1,147 @@
1
+ import { Shade, createComponent } from '@furystack/shades';
2
+ import { buildTransition, cssVariableTheme } from '../../services/css-variable-theme.js';
3
+ import { collapse, expand } from '../animations.js';
4
+ import { Icon } from '../icons/icon.js';
5
+ import { chevronDown } from '../icons/icon-definitions.js';
6
+ /**
7
+ * An individual collapsible section for use within an Accordion container.
8
+ *
9
+ * Supports animated expand/collapse, keyboard accessibility, and optional icon.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <AccordionItem title="Section 1" defaultExpanded>
14
+ * <p>Content goes here</p>
15
+ * </AccordionItem>
16
+ * ```
17
+ */
18
+ export const AccordionItem = Shade({
19
+ shadowDomName: 'shade-accordion-item',
20
+ css: {
21
+ display: 'block',
22
+ fontFamily: cssVariableTheme.typography.fontFamily,
23
+ '&:not(:last-child)': {
24
+ borderBottom: `1px solid color-mix(in srgb, ${cssVariableTheme.text.secondary} 20%, transparent)`,
25
+ },
26
+ // Header
27
+ '& .accordion-header': {
28
+ display: 'flex',
29
+ alignItems: 'center',
30
+ gap: cssVariableTheme.spacing.sm,
31
+ padding: `${cssVariableTheme.spacing.md} ${cssVariableTheme.spacing.lg}`,
32
+ cursor: 'pointer',
33
+ userSelect: 'none',
34
+ backgroundColor: 'transparent',
35
+ border: 'none',
36
+ width: '100%',
37
+ textAlign: 'left',
38
+ outline: 'none',
39
+ color: 'inherit',
40
+ transition: buildTransition([
41
+ 'background-color',
42
+ cssVariableTheme.transitions.duration.fast,
43
+ cssVariableTheme.transitions.easing.default,
44
+ ]),
45
+ },
46
+ '& .accordion-header:hover:not([data-disabled])': {
47
+ backgroundColor: `color-mix(in srgb, ${cssVariableTheme.text.secondary} 8%, transparent)`,
48
+ },
49
+ '& .accordion-header:focus-visible': {
50
+ boxShadow: cssVariableTheme.action.focusRing,
51
+ },
52
+ // Icon
53
+ '& .accordion-icon': {
54
+ display: 'inline-flex',
55
+ alignItems: 'center',
56
+ flexShrink: '0',
57
+ fontSize: '1.2em',
58
+ },
59
+ // Title
60
+ '& .accordion-title': {
61
+ flex: '1',
62
+ fontSize: cssVariableTheme.typography.fontSize.md,
63
+ fontWeight: cssVariableTheme.typography.fontWeight.medium,
64
+ color: cssVariableTheme.text.primary,
65
+ },
66
+ // Chevron
67
+ '& .accordion-chevron': {
68
+ display: 'inline-flex',
69
+ alignItems: 'center',
70
+ justifyContent: 'center',
71
+ flexShrink: '0',
72
+ fontSize: '1.2em',
73
+ color: cssVariableTheme.text.secondary,
74
+ transform: 'rotate(-90deg)',
75
+ transition: buildTransition([
76
+ 'transform',
77
+ cssVariableTheme.transitions.duration.fast,
78
+ cssVariableTheme.transitions.easing.default,
79
+ ]),
80
+ },
81
+ '&[data-expanded] .accordion-chevron': {
82
+ transform: 'rotate(0deg)',
83
+ },
84
+ // Content wrapper (animated)
85
+ '& .accordion-content': {
86
+ overflow: 'hidden',
87
+ },
88
+ // Content inner (provides padding)
89
+ '& .accordion-content-inner': {
90
+ padding: `0 ${cssVariableTheme.spacing.lg} ${cssVariableTheme.spacing.lg}`,
91
+ },
92
+ // Disabled state
93
+ '&[data-disabled]': {
94
+ opacity: cssVariableTheme.action.disabledOpacity,
95
+ pointerEvents: 'none',
96
+ },
97
+ '&[data-disabled] .accordion-header': {
98
+ cursor: 'not-allowed',
99
+ },
100
+ },
101
+ render: ({ props, children, useHostProps, useRef, useState }) => {
102
+ const [isExpanded, setIsExpanded] = useState('expanded', !!props.defaultExpanded);
103
+ useHostProps({
104
+ 'data-disabled': props.disabled ? '' : undefined,
105
+ 'data-expanded': isExpanded ? '' : undefined,
106
+ });
107
+ const contentRef = useRef('content');
108
+ const handleToggle = async () => {
109
+ if (props.disabled)
110
+ return;
111
+ const content = contentRef.current;
112
+ if (!content)
113
+ return;
114
+ if (isExpanded) {
115
+ setIsExpanded(false);
116
+ await collapse(content, { duration: 250 });
117
+ }
118
+ else {
119
+ setIsExpanded(true);
120
+ await expand(content, { duration: 250 });
121
+ }
122
+ };
123
+ const handleKeyDown = (ev) => {
124
+ if (ev.key === 'Enter' || ev.key === ' ') {
125
+ ev.preventDefault();
126
+ void handleToggle();
127
+ }
128
+ };
129
+ const headerEl = (createComponent("div", { className: "accordion-header", role: "button", tabIndex: props.disabled ? -1 : 0, onclick: handleToggle, onkeydown: handleKeyDown },
130
+ props.icon ? createComponent("span", { className: "accordion-icon" }, props.icon) : null,
131
+ createComponent("span", { className: "accordion-title" }, props.title),
132
+ createComponent("span", { className: "accordion-chevron" },
133
+ createComponent(Icon, { icon: chevronDown, size: 16 }))));
134
+ headerEl.setAttribute('aria-expanded', String(isExpanded));
135
+ if (props.disabled) {
136
+ headerEl.setAttribute('data-disabled', '');
137
+ }
138
+ return (createComponent(createComponent, null,
139
+ headerEl,
140
+ createComponent("div", { ref: contentRef, className: "accordion-content", style: {
141
+ height: isExpanded ? undefined : '0px',
142
+ opacity: isExpanded ? '1' : '0',
143
+ } },
144
+ createComponent("div", { className: "accordion-content-inner" }, children))));
145
+ },
146
+ });
147
+ //# sourceMappingURL=accordion-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion-item.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Props for the Accordion container component.
3
+ */
4
+ export type AccordionProps = {
5
+ /** Visual variant of the accordion container */
6
+ variant?: 'outlined' | 'elevation';
7
+ };
8
+ /**
9
+ * A container component that groups AccordionItem children with consistent styling.
10
+ *
11
+ * Provides a bordered or elevated surface with rounded corners. Use it to wrap
12
+ * multiple AccordionItem components into a visually cohesive group.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <Accordion>
17
+ * <AccordionItem title="Section 1">Content 1</AccordionItem>
18
+ * <AccordionItem title="Section 2">Content 2</AccordionItem>
19
+ * </Accordion>
20
+ * ```
21
+ */
22
+ export declare const Accordion: (props: AccordionProps & Omit<Partial<HTMLElement>, "style"> & {
23
+ style?: Partial<CSSStyleDeclaration>;
24
+ } & {
25
+ ref?: import("@furystack/shades").RefObject<Element>;
26
+ }, children?: import("@furystack/shades").ChildrenList) => JSX.Element;
27
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/accordion.tsx"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,gDAAgD;IAChD,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,CAAA;CACnC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS;;;;sEAwBpB,CAAA"}