@espressif/dashboard-ui-components 1.11.2 → 1.12.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 (532) hide show
  1. package/.claude/rules/dashboard-ui-consumption.md +176 -5
  2. package/.cursor/rules/dashboard-ui-consumption.mdc +163 -4
  3. package/CHANGELOG.md +1005 -0
  4. package/README.md +240 -7
  5. package/THIRD-PARTY-NOTICES.md +2 -1
  6. package/dist/alert.props-CcKo49Rb.d.ts +44 -0
  7. package/dist/animation/index.d.ts +3 -0
  8. package/dist/animation/index.js +3 -0
  9. package/dist/avatar.props-2q5BsX-R.d.ts +29 -0
  10. package/dist/button-BK-DIR_L.d.ts +21 -0
  11. package/dist/button-BxJ7s6sR.d.ts +76 -0
  12. package/dist/calendar.props-BtCzuWH1.d.ts +12 -0
  13. package/dist/carousel/index.d.ts +2 -0
  14. package/dist/carousel/index.js +2 -0
  15. package/dist/charts/index.d.ts +5 -0
  16. package/dist/charts/index.js +9 -0
  17. package/dist/common/app-logo/app-logo.js +1 -1
  18. package/dist/common/index.d.ts +9 -20
  19. package/dist/common/my-account-menu/my-account-menu.js +45 -13
  20. package/dist/common/profile-card/profile-card.js +3 -2
  21. package/dist/components/accordion/accordion.js +14 -5
  22. package/dist/components/accordion/index.d.ts +36 -0
  23. package/dist/components/accordion/index.js +2 -0
  24. package/dist/components/advanced-search-box/advanced-search-box.js +8 -2
  25. package/dist/components/advanced-search-box/index.d.ts +29 -0
  26. package/dist/components/advanced-search-box/index.js +2 -0
  27. package/dist/components/alert/alert.js +2 -1
  28. package/dist/components/alert/index.d.ts +12 -0
  29. package/dist/components/alert/index.js +2 -0
  30. package/dist/components/anchored-panel/anchored-panel.js +83 -0
  31. package/dist/components/anchored-panel/index.d.ts +31 -0
  32. package/dist/components/anchored-panel/index.js +2 -0
  33. package/dist/components/animated-containers/index.d.ts +13 -0
  34. package/dist/components/animated-containers/index.js +2 -0
  35. package/dist/components/async-multi-select/async-multi-select.js +48 -7
  36. package/dist/components/async-multi-select/index.d.ts +63 -0
  37. package/dist/components/async-multi-select/index.js +2 -0
  38. package/dist/components/avatar/avatar.js +11 -4
  39. package/dist/components/avatar/index.d.ts +8 -0
  40. package/dist/components/avatar/index.js +2 -0
  41. package/dist/components/avatar-group/avatar-group.js +35 -0
  42. package/dist/components/avatar-group/index.d.ts +31 -0
  43. package/dist/components/avatar-group/index.js +2 -0
  44. package/dist/components/badge/index.d.ts +14 -0
  45. package/dist/components/badge/index.js +2 -0
  46. package/dist/components/breadcrumb/index.d.ts +21 -0
  47. package/dist/components/breadcrumb/index.js +2 -0
  48. package/dist/components/bubble/bubble.js +18 -0
  49. package/dist/components/bubble/index.d.ts +19 -0
  50. package/dist/components/bubble/index.js +2 -0
  51. package/dist/components/button/button.js +87 -25
  52. package/dist/components/button/flash-button.js +9 -3
  53. package/dist/components/button/index.d.ts +56 -0
  54. package/dist/components/button/index.js +6 -0
  55. package/dist/components/button-group/index.d.ts +16 -0
  56. package/dist/components/button-group/index.js +2 -0
  57. package/dist/components/calendar/calendar.js +5 -5
  58. package/dist/components/calendar/index.d.ts +11 -0
  59. package/dist/components/calendar/index.js +2 -0
  60. package/dist/components/card/index.d.ts +11 -0
  61. package/dist/components/card/index.js +2 -0
  62. package/dist/components/card-rail/card-rail.js +50 -0
  63. package/dist/components/card-rail/index.d.ts +30 -0
  64. package/dist/components/card-rail/index.js +2 -0
  65. package/dist/components/cards/collapsible-card.js +5 -2
  66. package/dist/components/cards/index.d.ts +16200 -0
  67. package/dist/components/cards/index.js +8 -0
  68. package/dist/components/cards/section-card.js +133 -8
  69. package/dist/components/cards/simple-card.js +5 -2
  70. package/dist/components/carousel/carousel.js +137 -49
  71. package/dist/components/carousel/index.d.ts +130 -0
  72. package/dist/components/carousel/index.js +2 -0
  73. package/dist/components/category-card/category-card.js +111 -0
  74. package/dist/components/category-card/index.d.ts +55 -0
  75. package/dist/components/category-card/index.js +2 -0
  76. package/dist/components/chart/area-chart.js +95 -85
  77. package/dist/components/chart/bar-chart.js +123 -60
  78. package/dist/components/chart/chart.js +127 -3
  79. package/dist/components/chart/composed-chart.js +109 -98
  80. package/dist/components/chart/donut-chart.js +23 -5
  81. package/dist/components/chart/index.d.ts +732 -0
  82. package/dist/components/chart/index.js +9 -0
  83. package/dist/components/chart/line-chart.js +93 -83
  84. package/dist/components/chart/treemap-chart.js +71 -58
  85. package/dist/components/check-badge/check-badge.js +25 -0
  86. package/dist/components/check-badge/index.d.ts +13 -0
  87. package/dist/components/check-badge/index.js +2 -0
  88. package/dist/components/checkbox/index.d.ts +8 -0
  89. package/dist/components/checkbox/index.js +2 -0
  90. package/dist/components/choice-card/choice-card.js +99 -0
  91. package/dist/components/choice-card/index.d.ts +41 -0
  92. package/dist/components/choice-card/index.js +2 -0
  93. package/dist/components/circular-progress/circular-progress.js +5 -2
  94. package/dist/components/circular-progress/index.d.ts +23 -0
  95. package/dist/components/circular-progress/index.js +2 -0
  96. package/dist/components/code/index.d.ts +40 -0
  97. package/dist/components/code/index.js +2 -0
  98. package/dist/components/code-editor/code-editor.js +9 -3
  99. package/dist/components/code-editor/index.d.ts +82 -0
  100. package/dist/components/code-editor/index.js +2 -0
  101. package/dist/components/collapsible/index.d.ts +42 -0
  102. package/dist/components/collapsible/index.js +2 -0
  103. package/dist/components/column-panel/column-panel.js +38 -0
  104. package/dist/components/column-panel/index.d.ts +37 -0
  105. package/dist/components/column-panel/index.js +3 -0
  106. package/dist/components/column-panel/use-panel-flag.js +27 -0
  107. package/dist/components/combobox/index.d.ts +28 -0
  108. package/dist/components/combobox/index.js +2 -0
  109. package/dist/components/confirmation-dialog/confirmation-dialog.js +1 -1
  110. package/dist/components/confirmation-dialog/index.d.ts +40 -0
  111. package/dist/components/confirmation-dialog/index.js +3 -0
  112. package/dist/components/content-container/index.d.ts +16 -0
  113. package/dist/components/content-container/index.js +2 -0
  114. package/dist/components/copiable-text/index.d.ts +33 -0
  115. package/dist/components/copiable-text/index.js +2 -0
  116. package/dist/components/coverflow/_constants/coverflow-poses.js +23 -0
  117. package/dist/components/coverflow/_constants/coverflow-shapes.js +23 -0
  118. package/dist/components/coverflow/_hooks/use-coverflow.js +90 -0
  119. package/dist/components/coverflow/_utils/ring.js +24 -0
  120. package/dist/components/coverflow/coverflow.js +198 -0
  121. package/dist/components/coverflow/index.d.ts +105 -0
  122. package/dist/components/coverflow/index.js +2 -0
  123. package/dist/components/data-table/data-table.js +9 -2
  124. package/dist/components/data-table/index.d.ts +120 -0
  125. package/dist/components/data-table/index.js +3 -0
  126. package/dist/components/date-picker/date-picker.js +5 -2
  127. package/dist/components/date-picker/index.d.ts +50 -0
  128. package/dist/components/date-picker/index.js +2 -0
  129. package/dist/components/date-range-picker/date-range-picker.js +11 -2
  130. package/dist/components/date-range-picker/index.d.ts +100 -0
  131. package/dist/components/date-range-picker/index.js +3 -0
  132. package/dist/components/date-time-picker/date-time-picker.js +5 -2
  133. package/dist/components/date-time-picker/index.d.ts +79 -0
  134. package/dist/components/date-time-picker/index.js +2 -0
  135. package/dist/components/device-icon/index.d.ts +17 -0
  136. package/dist/components/device-icon/index.js +2 -0
  137. package/dist/components/dialog/index.d.ts +38 -0
  138. package/dist/components/dialog/index.js +2 -0
  139. package/dist/components/dropdown-menu/index.d.ts +57 -0
  140. package/dist/components/dropdown-menu/index.js +2 -0
  141. package/dist/components/dynamic-list/dynamic-list.js +4 -4
  142. package/dist/components/dynamic-list/index.d.ts +74 -0
  143. package/dist/components/dynamic-list/index.js +2 -0
  144. package/dist/components/error-display/index.d.ts +17 -0
  145. package/dist/components/error-display/index.js +3 -0
  146. package/dist/components/expandable-text/expandable-text-overlay.js +78 -0
  147. package/dist/components/expandable-text/expandable-text.js +73 -0
  148. package/dist/components/expandable-text/index.d.ts +39 -0
  149. package/dist/components/expandable-text/index.js +2 -0
  150. package/dist/components/expandable-text/use-clamped.js +23 -0
  151. package/dist/components/facet-filters/_hooks/use-filter-group.js +51 -0
  152. package/dist/components/facet-filters/active-filters.js +31 -0
  153. package/dist/components/facet-filters/filter-group.js +110 -0
  154. package/dist/components/facet-filters/filters-panel.js +59 -0
  155. package/dist/components/facet-filters/filters-pill.js +40 -0
  156. package/dist/components/facet-filters/index.d.ts +104 -0
  157. package/dist/components/facet-filters/index.js +6 -0
  158. package/dist/components/facet-filters/use-filters-collapsed.js +21 -0
  159. package/dist/components/feature-grid/feature-grid.js +115 -0
  160. package/dist/components/feature-grid/index.d.ts +53 -0
  161. package/dist/components/feature-grid/index.js +2 -0
  162. package/dist/components/file-input/file-input.js +9 -3
  163. package/dist/components/file-input/index.d.ts +78 -0
  164. package/dist/components/file-input/index.js +2 -0
  165. package/dist/components/file-upload/file-upload.js +10 -5
  166. package/dist/components/file-upload/index.d.ts +38 -0
  167. package/dist/components/file-upload/index.js +2 -0
  168. package/dist/components/filters-bar/filters-bar.js +5 -1
  169. package/dist/components/filters-bar/index.d.ts +26 -0
  170. package/dist/components/filters-bar/index.js +2 -0
  171. package/dist/components/flip-card/flip-card.js +147 -0
  172. package/dist/components/flip-card/index.d.ts +43 -0
  173. package/dist/components/flip-card/index.js +2 -0
  174. package/dist/components/floating-window/_hooks/use-drag-move.js +76 -0
  175. package/dist/components/floating-window/floating-window.js +97 -0
  176. package/dist/components/floating-window/index.d.ts +45 -0
  177. package/dist/components/floating-window/index.js +2 -0
  178. package/dist/components/form/index.d.ts +28 -0
  179. package/dist/components/form/index.js +2 -0
  180. package/dist/components/fullscreen-dialog/fullscreen-dialog.js +6 -2
  181. package/dist/components/fullscreen-dialog/index.d.ts +38 -0
  182. package/dist/components/fullscreen-dialog/index.js +2 -0
  183. package/dist/components/horizontal-stepper/horizontal-stepper.js +122 -0
  184. package/dist/components/horizontal-stepper/index.d.ts +70 -0
  185. package/dist/components/horizontal-stepper/index.js +2 -0
  186. package/dist/components/icon-avatar/index.d.ts +9 -0
  187. package/dist/components/icon-avatar/index.js +2 -0
  188. package/dist/components/icon-text-action-card/icon-text-action-card.js +9 -5
  189. package/dist/components/icon-text-action-card/index.d.ts +11 -0
  190. package/dist/components/icon-text-action-card/index.js +2 -0
  191. package/dist/components/identicon/identicon.js +33 -0
  192. package/dist/components/identicon/index.d.ts +26 -0
  193. package/dist/components/identicon/index.js +2 -0
  194. package/dist/components/illustration/index.d.ts +37 -0
  195. package/dist/components/illustration/index.js +3 -0
  196. package/dist/components/index.d.ts +177 -19529
  197. package/dist/components/index.js +61 -10
  198. package/dist/components/input/index.d.ts +15 -0
  199. package/dist/components/input/index.js +3 -0
  200. package/dist/components/input-group/index.d.ts +35 -0
  201. package/dist/components/input-group/index.js +2 -0
  202. package/dist/components/input-group/input-group.js +41 -0
  203. package/dist/components/input-otp/index.d.ts +63 -0
  204. package/dist/components/input-otp/index.js +2 -0
  205. package/dist/components/key-value-manager/index.d.ts +63 -0
  206. package/dist/components/key-value-manager/index.js +2 -0
  207. package/dist/components/key-value-manager/key-value-manager-table.js +7 -5
  208. package/dist/components/label/index.d.ts +8 -0
  209. package/dist/components/label/index.js +2 -0
  210. package/dist/components/link/index.d.ts +33 -0
  211. package/dist/components/link/index.js +2 -0
  212. package/dist/components/list/index.d.ts +9 -0
  213. package/dist/components/list/index.js +3 -0
  214. package/dist/components/list/list-item.utils.js +1 -1
  215. package/dist/components/list/list.js +3 -1
  216. package/dist/components/list-details/index.d.ts +51 -0
  217. package/dist/components/list-details/index.js +2 -0
  218. package/dist/components/list-details/list-details.js +5 -2
  219. package/dist/components/lottie-animation-container/index.d.ts +10 -0
  220. package/dist/components/lottie-animation-container/index.js +2 -0
  221. package/dist/components/lottie-animation-container/lottie-animation-container.js +22 -3
  222. package/dist/components/lottie-animations/index.d.ts +8 -0
  223. package/dist/components/lottie-animations/index.js +2 -0
  224. package/dist/components/markdown-content/index.d.ts +32 -0
  225. package/dist/components/markdown-content/index.js +2 -0
  226. package/dist/components/media-card/index.d.ts +125 -0
  227. package/dist/components/media-card/index.js +4 -0
  228. package/dist/components/media-card/media-card-image.js +59 -0
  229. package/dist/components/media-card/media-card-reveal.js +76 -0
  230. package/dist/components/media-card/media-card.classes.js +37 -0
  231. package/dist/components/media-card/media-card.js +91 -0
  232. package/dist/components/media-stage/index.d.ts +41 -0
  233. package/dist/components/media-stage/index.js +2 -0
  234. package/dist/components/media-stage/media-stage.js +48 -0
  235. package/dist/components/menu/index.d.ts +14 -0
  236. package/dist/components/menu/index.js +2 -0
  237. package/dist/components/message-scroller/_hooks/use-follow-bottom.js +85 -0
  238. package/dist/components/message-scroller/index.d.ts +29 -0
  239. package/dist/components/message-scroller/index.js +2 -0
  240. package/dist/components/message-scroller/message-scroller.js +65 -0
  241. package/dist/components/mini-bar-chart/index.d.ts +40 -0
  242. package/dist/components/mini-bar-chart/index.js +2 -0
  243. package/dist/components/mini-bar-chart/mini-bar-chart.js +93 -0
  244. package/dist/components/monospace-content/index.d.ts +43 -0
  245. package/dist/components/monospace-content/index.js +2 -0
  246. package/dist/components/monospace-content/monospace-content.js +1 -1
  247. package/dist/components/nav-bar/index.d.ts +148 -0
  248. package/dist/components/nav-bar/index.js +2 -0
  249. package/dist/components/nav-bar/nav-bar-details-panel.js +158 -44
  250. package/dist/components/nav-bar/nav-bar-mobile-menu.js +93 -27
  251. package/dist/components/nav-bar/nav-bar.js +256 -138
  252. package/dist/components/nav-bar/use-nav-bar-hover-details.js +80 -0
  253. package/dist/components/nav-bar/use-nav-bar-overflow.js +5 -5
  254. package/dist/components/notice-strip/index.d.ts +32 -0
  255. package/dist/components/notice-strip/index.js +2 -0
  256. package/dist/components/notice-strip/notice-strip.js +57 -0
  257. package/dist/components/option-card-group/index.d.ts +50 -0
  258. package/dist/components/option-card-group/index.js +2 -0
  259. package/dist/components/option-card-group/option-card-group.js +76 -0
  260. package/dist/components/overflow-badge-list/index.d.ts +63 -0
  261. package/dist/components/overflow-badge-list/index.js +2 -0
  262. package/dist/components/overflow-badge-list/overflow-badge-list.js +78 -19
  263. package/dist/components/page-banner/index.d.ts +33 -0
  264. package/dist/components/page-banner/index.js +2 -0
  265. package/dist/components/page-banner/page-banner.js +56 -0
  266. package/dist/components/page-container/index.d.ts +20 -0
  267. package/dist/components/page-container/index.js +3 -0
  268. package/dist/components/page-container/page-container.js +5 -5
  269. package/dist/components/pagination/index.d.ts +31 -0
  270. package/dist/components/pagination/index.js +3 -0
  271. package/dist/components/popover/index.d.ts +60 -0
  272. package/dist/components/popover/index.js +3 -0
  273. package/dist/components/preview-card/index.d.ts +24 -0
  274. package/dist/components/preview-card/index.js +2 -0
  275. package/dist/components/progress-bar/index.d.ts +32 -0
  276. package/dist/components/progress-bar/index.js +2 -0
  277. package/dist/components/progress-bar/progress-bar.js +22 -6
  278. package/dist/components/radio-group/index.d.ts +24 -0
  279. package/dist/components/radio-group/index.js +2 -0
  280. package/dist/components/rank-numeral/index.d.ts +30 -0
  281. package/dist/components/rank-numeral/index.js +2 -0
  282. package/dist/components/rank-numeral/rank-numeral.js +26 -0
  283. package/dist/components/reaction-button/index.d.ts +32 -0
  284. package/dist/components/reaction-button/index.js +2 -0
  285. package/dist/components/reaction-button/reaction-button.js +50 -0
  286. package/dist/components/readout/index.d.ts +31 -0
  287. package/dist/components/readout/index.js +2 -0
  288. package/dist/components/readout/readout.js +63 -0
  289. package/dist/components/requirement-list/index.d.ts +52 -0
  290. package/dist/components/requirement-list/index.js +2 -0
  291. package/dist/components/requirement-list/requirement-list.js +29 -8
  292. package/dist/components/resizable/index.d.ts +31 -0
  293. package/dist/components/resizable/index.js +4 -0
  294. package/dist/components/resizable/resizable-group.js +23 -0
  295. package/dist/components/resizable/resizable-panel.js +28 -0
  296. package/dist/components/resizable/resizable-separator.js +24 -0
  297. package/dist/components/reveal/index.d.ts +23 -0
  298. package/dist/components/reveal/index.js +2 -0
  299. package/dist/components/reveal/reveal.js +24 -0
  300. package/dist/components/scroll-area/index.d.ts +27 -0
  301. package/dist/components/scroll-area/index.js +2 -0
  302. package/dist/components/scrollable-sections/index.d.ts +58 -0
  303. package/dist/components/scrollable-sections/index.js +2 -0
  304. package/dist/components/scrollable-sections/scrollable-sections.js +11 -3
  305. package/dist/components/search-box/index.d.ts +32 -0
  306. package/dist/components/search-box/index.js +2 -0
  307. package/dist/components/search-box/search-box.js +18 -3
  308. package/dist/components/search-field-shell.js +1 -1
  309. package/dist/components/select/index.d.ts +44 -0
  310. package/dist/components/select/index.js +2 -0
  311. package/dist/components/selectable-card-list/checkbox-card-list.js +5 -3
  312. package/dist/components/selectable-card-list/index.d.ts +76 -0
  313. package/dist/components/selectable-card-list/index.js +2 -0
  314. package/dist/components/selectable-card-list/radio-card-list.js +12 -6
  315. package/dist/components/selectable-card-list/selectable-card-list-shared.js +24 -12
  316. package/dist/components/selectable-card-list/selectable-card-list.js +12 -3
  317. package/dist/components/separator/index.d.ts +24 -0
  318. package/dist/components/separator/index.js +2 -0
  319. package/dist/components/share-menu/index.d.ts +55 -0
  320. package/dist/components/share-menu/index.js +2 -0
  321. package/dist/components/share-menu/share-marks.js +31 -0
  322. package/dist/components/share-menu/share-menu.js +140 -0
  323. package/dist/components/share-menu/share-urls.js +15 -0
  324. package/dist/components/sheet/index.d.ts +41 -0
  325. package/dist/components/sheet/index.js +2 -0
  326. package/dist/components/showcase-card/index.d.ts +53 -0
  327. package/dist/components/showcase-card/index.js +2 -0
  328. package/dist/components/showcase-card/showcase-card.js +75 -0
  329. package/dist/components/sidebar/index.d.ts +109 -0
  330. package/dist/components/sidebar/index.js +4 -0
  331. package/dist/components/sidebar/sidebar.js +56 -40
  332. package/dist/components/simple-clickable-card/index.d.ts +11 -0
  333. package/dist/components/simple-clickable-card/index.js +2 -0
  334. package/dist/components/simple-clickable-card/simple-clickable-card-shared.js +2 -2
  335. package/dist/components/simple-clickable-card/simple-clickable-card.js +5 -2
  336. package/dist/components/simple-info-card/index.d.ts +25 -0
  337. package/dist/components/simple-info-card/index.js +2 -0
  338. package/dist/components/simple-info-card/simple-info-card.js +6 -3
  339. package/dist/components/simple-list/index.d.ts +63 -0
  340. package/dist/components/simple-list/index.js +2 -0
  341. package/dist/components/simple-list/simple-list.js +3 -1
  342. package/dist/components/simple-paginated-list/index.d.ts +20 -0
  343. package/dist/components/simple-paginated-list/index.js +2 -0
  344. package/dist/components/simplified-date/index.d.ts +18 -0
  345. package/dist/components/simplified-date/index.js +2 -0
  346. package/dist/components/skeleton/index.d.ts +5 -0
  347. package/dist/components/skeleton/index.js +2 -0
  348. package/dist/components/skeletons/index.d.ts +11 -0
  349. package/dist/components/skeletons/index.js +2 -0
  350. package/dist/components/sort-menu/index.d.ts +34 -0
  351. package/dist/components/sort-menu/index.js +2 -0
  352. package/dist/components/sort-menu/sort-menu.js +39 -0
  353. package/dist/components/spinner/index.d.ts +15 -0
  354. package/dist/components/spinner/index.js +2 -0
  355. package/dist/components/stat-card/index.d.ts +43 -0
  356. package/dist/components/stat-card/index.js +2 -0
  357. package/dist/components/stat-card/stat-card.js +31 -12
  358. package/dist/components/status-badge/index.d.ts +24 -0
  359. package/dist/components/status-badge/index.js +2 -0
  360. package/dist/components/status-badge/status-badge.js +3 -2
  361. package/dist/components/status-card-list/index.d.ts +24 -0
  362. package/dist/components/status-card-list/index.js +2 -0
  363. package/dist/components/status-card-list/status-card-list.js +8 -4
  364. package/dist/components/step-tabs/index.d.ts +94 -0
  365. package/dist/components/step-tabs/index.js +2 -0
  366. package/dist/components/step-tabs/step-tabs.js +202 -0
  367. package/dist/components/style-scope/index.d.ts +32 -0
  368. package/dist/components/style-scope/index.js +2 -0
  369. package/dist/components/style-scope/style-scope.js +49 -0
  370. package/dist/components/switch/index.d.ts +15 -0
  371. package/dist/components/switch/index.js +2 -0
  372. package/dist/components/table/index.d.ts +18 -0
  373. package/dist/components/table/index.js +2 -0
  374. package/dist/components/tabs/index.d.ts +103 -0
  375. package/dist/components/tabs/index.js +2 -0
  376. package/dist/components/tag/index.d.ts +31 -0
  377. package/dist/components/tag/index.js +2 -0
  378. package/dist/components/tag/tag.js +79 -28
  379. package/dist/components/tag-input/index.d.ts +36 -0
  380. package/dist/components/tag-input/index.js +2 -0
  381. package/dist/components/tag-input/tag-input.js +10 -4
  382. package/dist/components/text-effects/index.d.ts +53 -0
  383. package/dist/components/text-effects/index.js +6 -0
  384. package/dist/components/textarea/index.d.ts +16 -0
  385. package/dist/components/textarea/index.js +2 -0
  386. package/dist/components/thumbnail-strip/index.d.ts +42 -0
  387. package/dist/components/thumbnail-strip/index.js +2 -0
  388. package/dist/components/thumbnail-strip/thumbnail-strip.js +124 -0
  389. package/dist/components/thumbnail-strip/use-scroll-edges.js +41 -0
  390. package/dist/components/time-picker/index.d.ts +13 -0
  391. package/dist/components/time-picker/index.js +2 -0
  392. package/dist/components/timeline/index.d.ts +39 -0
  393. package/dist/components/timeline/index.js +2 -0
  394. package/dist/components/timeline/timeline.js +85 -0
  395. package/dist/components/toast/index.d.ts +56 -0
  396. package/dist/components/toast/index.js +2 -0
  397. package/dist/components/toast/toast.js +42 -32
  398. package/dist/components/togglable-items-list/index.d.ts +28 -0
  399. package/dist/components/togglable-items-list/index.js +2 -0
  400. package/dist/components/toggle-group/index.d.ts +35 -0
  401. package/dist/components/toggle-group/index.js +2 -0
  402. package/dist/components/toolbar/index.d.ts +58 -0
  403. package/dist/components/toolbar/index.js +3 -0
  404. package/dist/components/toolbar/toolbar-button.js +40 -0
  405. package/dist/components/toolbar/toolbar.js +56 -0
  406. package/dist/components/tooltip/index.d.ts +29 -0
  407. package/dist/components/tooltip/index.js +3 -0
  408. package/dist/components/tooltip/tooltip.js +12 -2
  409. package/dist/components/transfer-list/index.d.ts +36 -0
  410. package/dist/components/transfer-list/index.js +2 -0
  411. package/dist/components/transfer-list/transfer-list.js +1 -1
  412. package/dist/components/truncated-line-with-tooltip/index.d.ts +22 -0
  413. package/dist/components/truncated-line-with-tooltip/index.js +2 -0
  414. package/dist/components/truncated-line-with-tooltip/truncated-line-with-tooltip.js +26 -8
  415. package/dist/components/typography/index.d.ts +19 -0
  416. package/dist/components/typography/index.js +3 -0
  417. package/dist/components/use-mobile/index.d.ts +3 -0
  418. package/dist/components/use-mobile/index.js +2 -0
  419. package/dist/components/user-type-badge/index.d.ts +39 -0
  420. package/dist/components/user-type-badge/index.js +3 -0
  421. package/dist/components/user-type-badge/user-type-badge.js +2 -1
  422. package/dist/components/vertical-stepper/index.d.ts +7 -0
  423. package/dist/components/vertical-stepper/index.js +2 -0
  424. package/dist/components/vertical-stepper/vertical-stepper.js +33 -6
  425. package/dist/components/view-toggle/index.d.ts +38 -0
  426. package/dist/components/view-toggle/index.js +2 -0
  427. package/dist/components/view-toggle/view-toggle.js +56 -0
  428. package/dist/core/animate-ui/components/animate/code.js +83 -9
  429. package/dist/core/animate-ui/components/animate/tabs.js +234 -19
  430. package/dist/core/animate-ui/components/animate/tooltip.js +10 -2
  431. package/dist/core/animate-ui/components/base/preview-card.js +20 -3
  432. package/dist/core/animate-ui/components/buttons/copy.js +12 -6
  433. package/dist/core/animate-ui/components/radix/dialog.js +17 -3
  434. package/dist/core/animate-ui/components/radix/dropdown-menu.js +26 -9
  435. package/dist/core/animate-ui/components/radix/sheet.js +20 -4
  436. package/dist/core/animate-ui/components/radix/sidebar.js +9 -9
  437. package/dist/core/animate-ui/components/radix/toggle-group.js +103 -13
  438. package/dist/core/animate-ui/components/radix/toggle.js +5 -5
  439. package/dist/core/animate-ui/primitives/animate/code-block.js +31 -4
  440. package/dist/core/animate-ui/primitives/animate/shiki-highlighter.js +5 -2
  441. package/dist/core/animate-ui/primitives/animate/tabs.js +7 -4
  442. package/dist/core/animate-ui/primitives/animate/tooltip.js +10 -3
  443. package/dist/core/animate-ui/primitives/base/preview-card.js +2 -2
  444. package/dist/core/animate-ui/primitives/base/progress.js +1 -1
  445. package/dist/core/animate-ui/primitives/base/radio.js +3 -3
  446. package/dist/core/animate-ui/primitives/effects/highlight.js +1 -0
  447. package/dist/core/animate-ui/primitives/radix/accordion.js +1 -1
  448. package/dist/core/animate-ui/primitives/radix/dialog.js +6 -3
  449. package/dist/core/animate-ui/primitives/radix/dropdown-menu.js +2 -2
  450. package/dist/core/animate-ui/primitives/radix/sheet.js +7 -3
  451. package/dist/core/animate-ui/primitives/radix/switch.js +2 -2
  452. package/dist/core/animate-ui/primitives/radix/toggle-group.js +2 -2
  453. package/dist/core/badge.js +5 -2
  454. package/dist/core/breadcrumb.js +1 -1
  455. package/dist/core/button/button.js +8 -8
  456. package/dist/core/button/craft-button.js +8 -2
  457. package/dist/core/button.js +17 -7
  458. package/dist/core/card.js +23 -5
  459. package/dist/core/combobox/combobox.js +8 -2
  460. package/dist/core/command.js +3 -3
  461. package/dist/core/form.js +1 -1
  462. package/dist/core/hooks/use-nested-layer-press-guard.js +46 -0
  463. package/dist/core/hooks/use-on-screen.js +33 -0
  464. package/dist/core/hooks/use-prefers-reduced-motion.js +19 -0
  465. package/dist/core/hooks/use-scroll-overflow.js +20 -0
  466. package/dist/core/index.d.ts +30 -5
  467. package/dist/core/index.js +5 -2
  468. package/dist/core/input/input-password.js +13 -9
  469. package/dist/core/input/input.js +38 -12
  470. package/dist/core/input-otp/input-otp.js +9 -5
  471. package/dist/core/popover-group.js +48 -0
  472. package/dist/core/popover-hover.js +127 -0
  473. package/dist/core/popover.js +75 -6
  474. package/dist/core/select.js +35 -20
  475. package/dist/core/table.js +5 -3
  476. package/dist/core/textarea/textarea.js +11 -3
  477. package/dist/data-table/index.d.ts +4 -0
  478. package/dist/data-table/index.js +3 -0
  479. package/dist/date/index.d.ts +11 -0
  480. package/dist/date/index.js +7 -0
  481. package/dist/forms/index.d.ts +4 -0
  482. package/dist/forms/index.js +2 -0
  483. package/dist/icon-avatar.props-RYtw2eSW.d.ts +31 -0
  484. package/dist/icon-text-action-card.props-B2ggncUK.d.ts +53 -0
  485. package/dist/index.d.ts +169 -15
  486. package/dist/index.js +63 -10
  487. package/dist/input-CYI1hhGc.d.ts +38 -0
  488. package/dist/layouts/index.d.ts +132 -8
  489. package/dist/layouts/index.js +3 -1
  490. package/dist/layouts/minimal-workspace-layout/minimal-workspace-layout-context.js +5 -0
  491. package/dist/layouts/minimal-workspace-layout/minimal-workspace-layout.js +404 -0
  492. package/dist/layouts/minimal-workspace-layout/rail-logo.js +90 -0
  493. package/dist/layouts/minimal-workspace-layout/sidebar-trigger.js +42 -0
  494. package/dist/layouts/shared/account-menu-props.js +21 -0
  495. package/dist/layouts/shared/footer-branding.js +34 -0
  496. package/dist/layouts/shared/sidebar-logo.js +59 -0
  497. package/dist/layouts/workspace-layout/account-menu/account-menu.js +9 -3
  498. package/dist/layouts/workspace-layout/footer/footer.js +1 -1
  499. package/dist/layouts/workspace-layout/header/header.js +1 -1
  500. package/dist/layouts/workspace-layout/workspace-layout.js +28 -80
  501. package/dist/{list.props-x1j3CbcF.d.ts → list.props-DP_xPTqU.d.ts} +2 -1
  502. package/dist/markdown/index.d.ts +11 -0
  503. package/dist/markdown/index.js +5 -0
  504. package/dist/my-account-menu.props-C7DK71WC.d.ts +67 -0
  505. package/dist/page-container.props-JutTvKFq.d.ts +48 -0
  506. package/dist/resizable.props-RxFY5tm_.d.ts +44 -0
  507. package/dist/section-card-B7c5uc08.d.ts +84 -0
  508. package/dist/simple-clickable-card.props-BrPCw7CR.d.ts +51 -0
  509. package/dist/slot-DGErA9zi.d.ts +10 -0
  510. package/dist/status-badge.props-lKlEOfRt.d.ts +32 -0
  511. package/dist/style-axes-DSQ2DGc5.d.ts +133 -0
  512. package/dist/toast/index.d.ts +6 -0
  513. package/dist/toast/index.js +2 -0
  514. package/dist/tooltip-C0bYa8a3.d.ts +37 -0
  515. package/dist/{types-DtUxK-Am.d.ts → types-CkXflqg7.d.ts} +31 -1
  516. package/dist/utils/cn.js +6 -1
  517. package/dist/utils/color.js +35 -10
  518. package/dist/utils/index.d.ts +18 -2
  519. package/dist/utils/index.js +4 -1
  520. package/dist/utils/silver-shine.js +16 -1
  521. package/dist/utils/style-axes.js +227 -0
  522. package/dist/utils/variant.js +104 -8
  523. package/dist/utils/view-transition.js +21 -0
  524. package/dist/variant-D81RhpbR.d.ts +104 -0
  525. package/dist/vertical-stepper.props-BXYcbW70.d.ts +29 -0
  526. package/package.json +52 -6
  527. package/src/styles/colors.css +100 -4
  528. package/src/styles/globals.css +8 -131
  529. package/src/styles/style-axes.css +21 -0
  530. package/src/styles/theme.css +696 -0
  531. package/dist/app-logo.props-Ct7QBdTd.d.ts +0 -40
  532. package/dist/popover-ByLD3-Qv.d.ts +0 -204
package/README.md CHANGED
@@ -40,7 +40,8 @@ Built with React, TypeScript, Tailwind CSS v4, and Radix UI primitives.
40
40
  - Layout shells for dashboards and entry pages
41
41
  - TypeScript support with exported types
42
42
  - Tailwind CSS v4 design tokens and shared preset
43
- - ESM sub-path exports (`/components`, `/layouts`, `/common`, `/utils`) so apps can narrow the entry graph; fine-grained per-component bundle shrinking is limited by the pre-built chunks (see [Bundle size, Babel warnings, and imports](#bundle-size-babel-warnings-and-imports))
43
+ - ESM entry points down to a single component (`/components/button`) or one heavy family (`/charts`, `/date`, …), so an app, its tests and its dev server only load what they import (see [Entry points](#entry-points))
44
+ - Theming beyond colour: density, motion, focus-ring and on-colour tokens, a tokens-only stylesheet, dark mode by class or `data-theme`, and variants an app can register
44
45
  - Pure components — no internal state management, routing, or API calls
45
46
  - Published to public npm (semver ranges, pre-built ESM, no consumer-side build)
46
47
 
@@ -82,6 +83,25 @@ Import the library's design tokens and base styles in your global Tailwind CSS e
82
83
  @import "@espressif/dashboard-ui-components/styles";
83
84
  ```
84
85
 
86
+ #### Which stylesheet to pick
87
+
88
+ | Import | Contains | Use when |
89
+ |---|---|---|
90
+ | `@espressif/dashboard-ui-components/styles` | Tailwind (with its Preflight reset), every token, the base page styles (body colours, autofill) and Toast styles | almost always: one line and you are done |
91
+ | `@espressif/dashboard-ui-components/theme.css` | every token, the `dark` variant, the keyframes and the library's `@source`; **no** `@import "tailwindcss"`, no Preflight, no page styles | your app brings its own Tailwind setup, or legacy CSS that a global reset would break |
92
+
93
+ With `theme.css`, import Tailwind yourself first, and set your own page colours:
94
+
95
+ ```css
96
+ @import "tailwindcss";
97
+ @import "@espressif/dashboard-ui-components/theme.css";
98
+
99
+ body {
100
+ background-color: var(--color-background);
101
+ color: var(--color-foreground);
102
+ }
103
+ ```
104
+
85
105
  ### 2. Peer Dependencies
86
106
 
87
107
  Required:
@@ -185,19 +205,167 @@ All tokens live in the library's [`src/styles/colors.css`](./src/styles/colors.c
185
205
  **Charts** — `--color-chart-1` through `--color-chart-10`, plus `--color-chart-success`, `-error`, `-warning`, `-disabled`, `-gray`, `-primary`, `-secondary`
186
206
 
187
207
  **Layout dimensions** (light and dark share the same value; override in `:root`):
188
- `--espd-sidebar-width`, `--espd-sidebar-width-collapsed`, `--espd-sidebar-width-mobile`, `--espd-header-height`, `--espd-navbar-height`, `--espd-banner-height`, `--espd-footer-height`, `--espd-hidden-footer-height`, `--espd-sidebar-item-font-size`, `--espd-sidebar-flyout-group-label-font-size`
208
+ `--espd-sidebar-width`, `--espd-sidebar-width-collapsed`, `--espd-sidebar-width-mobile`, `--espd-shell-header-height`, `--espd-navbar-height`, `--espd-banner-height`, `--espd-workspace-layout-footer-height`, `--espd-workspace-layout-hidden-footer-height`, `--espd-sidebar-item-font-size`, `--espd-sidebar-flyout-group-label-font-size`
209
+
210
+ The 1.x names `--espd-header-height`, `--espd-footer-height` and `--espd-hidden-footer-height` still work as fallbacks and are removed in 2.0 (see the CHANGELOG).
211
+
212
+ **Typography and radius** — `--font-sans` and `--font-mono` (whole font stacks; override in `@theme` to replace; `--font-mono` is what code, logs and `MonospaceContent` use), `--radius-lg` (drives `-md` and `-sm`)
213
+
214
+ **Density, motion, focus and on-colour text** — set on `:root`; defaults reproduce the previous look exactly (details in [docs/token-audit.md](./docs/token-audit.md)):
215
+ `--espd-control-height-sm|md|lg` (buttons, inputs, selects, toggles), `--espd-button-padding-x-sm|md|lg`, `--espd-duration-fast|normal|slow`, `--espd-ring-width`, `--espd-ring-offset`, `--espd-on-solid-foreground`, `--espd-table-head-height`, `--espd-table-cell-padding`, `--espd-sidebar-row-height` (+ `-sm`), `--espd-item-height` (List rows; falls back to `--menu-item-height`), `--espd-gap-field` (FormItem), `--espd-gap-stack` (DialogContent)
216
+
217
+ ```css
218
+ :root {
219
+ --espd-control-height-md: 2.5rem; /* roomier buttons */
220
+ --espd-duration-slow: 180ms; /* snappier hover rings */
221
+ --espd-ring-width: 3px;
222
+ }
223
+ ```
224
+
225
+ Already overridable through Tailwind's own theme variables, no library token needed: `--radius-*`, `--spacing`, `--default-transition-duration`, `--default-transition-timing-function`, and `--shadow-*` (in `@theme` only: Tailwind writes shadow values into the utilities, so redeclaring them on `:root` changes no `shadow-*` class; the style-axis elevations below do read them on `:root`).
226
+
227
+ For corner radius, shadow, border width and density **per kind of component**, or on one component, see [Shape, elevation, border and density](#shape-elevation-border-and-density).
228
+
229
+ ### Dark mode
230
+
231
+ Dark applies under a `.dark` class **or** a `data-theme="dark"` attribute on any ancestor, usually `<html>`. Pick whichever your app already uses; override dark tokens under the same selector. The library never decides when dark applies (no `prefers-color-scheme` handling): the app does.
232
+
233
+ ```css
234
+ .dark,
235
+ [data-theme="dark"] {
236
+ --color-sidebar: #064e3b;
237
+ }
238
+ ```
239
+
240
+ ### Adding a variant
241
+
242
+ Variant-driven components (Badge, Alert, Tag, StatusBadge, SimpleClickableCard, SimpleInfoCard, IconTextActionCard, SectionCard, IconAvatar, Toast…) take `variant="outline" | "solid" | "soft" | "gradient" | "glow"`. An app can add its own, without forking, by declaring the name and registering its styles once at start-up:
243
+
244
+ ```ts
245
+ // src/theme/neon-variant.ts
246
+ import type { CSSProperties } from 'react'
247
+ import { registerVariant } from '@espressif/dashboard-ui-components/components'
248
+
249
+ declare module '@espressif/dashboard-ui-components/components' {
250
+ interface VariantRegistry {
251
+ neon: true
252
+ }
253
+ }
254
+
255
+ registerVariant('neon', (color) => {
256
+ const c = typeof color === 'string' && !color.startsWith('#') ? `var(--color-${color})` : color
257
+ return {
258
+ container: 'border border-transparent shadow-[0_0_24px_-4px_var(--neon)]',
259
+ containerStyle: { '--neon': c, backgroundColor: `color-mix(in oklab, ${c} 12%, transparent)` } as CSSProperties,
260
+ foreground: 'text-foreground',
261
+ description: 'text-muted-foreground',
262
+ }
263
+ })
264
+ ```
265
+
266
+ ```tsx
267
+ <Badge variant="neon" color="primary">AI</Badge>
268
+ ```
269
+
270
+ The recipe returns the same shape as `resolveVariantStyles` (`container`, `foreground`, `description`, optional inline styles). Built-in variants cannot be replaced (a warning is logged), `VARIANTS` stays the five built-ins, and `listVariants()` returns built-ins plus registered ones. Augment the entry point you import `registerVariant` from (`/components`, `/utils` or the root); the declaring file must import that entry.
271
+
272
+ ### Shape, elevation, border and density
273
+
274
+ Four **style axes** give an app its own personality without forking a component:
275
+ `radius`, `elevation` (shadow), `border` (width) and `density`. They work at three levels,
276
+ from broadest to narrowest; the narrower one wins, and a component's own `className` wins
277
+ over all of them.
278
+
279
+ **1. Role tokens: one value for a kind of component.** Components are grouped into
280
+ **roles**; set a role's token and every member changes, wherever it is set (`:root`, a page
281
+ wrapper, or `StyleScope`). Unset (the default), each component keeps its own look.
189
282
 
190
- **Typography and radius** — `--font-sans` (whole font stack; override in `@theme` to replace), `--radius-lg` (drives `-md` and `-sm`)
283
+ | Role | Tokens | Members (summary) |
284
+ |---|---|---|
285
+ | control | `--espd-radius-control`, `--espd-border-width-control`, `--espd-elevation-control` | Button and its variants, Input, Textarea, Select trigger, search boxes, FileInput, InputOTP, TagInput, date-picker triggers, Combobox, ToggleGroup |
286
+ | surface | `--espd-radius-surface`, `--espd-border-width-surface`, `--espd-elevation-surface` | Card, SimpleCard, SectionCard, CollapsibleCard, StatCard, Alert and the info/clickable cards, SelectableCardList, FileUpload, CodeEditor, Code, DataTable, ListDetails, ScrollableSections, StatusCardList |
287
+ | overlay | `--espd-radius-overlay`, `--espd-elevation-overlay` | Dialog, Sheet, Popover, DropdownMenu, Select list, Tooltip, Toast, PreviewCard |
288
+ | pill | `--espd-radius-pill` | Badge, Tag, StatusBadge, UserTypeBadge, OverflowBadgeList |
289
+ | item | `--espd-radius-item` | rows of menus, selects, Sidebar, NavBar, Tabs, List, TransferList; Calendar day cells |
290
+
291
+ The full matrix, with the shapes that never take a role (avatars, switches, checkboxes…), is in
292
+ [docs/token-audit.md](./docs/token-audit.md).
293
+
294
+ ```css
295
+ @import "@espressif/dashboard-ui-components/styles";
296
+
297
+ :root {
298
+ --espd-radius-control: 9999px; /* pill buttons and inputs */
299
+ --espd-radius-surface: 1rem;
300
+ --espd-elevation-surface: 0 0 #0000; /* flat cards; any box-shadow value except `none`, */
301
+ /* which would also drop focus rings */
302
+ --espd-border-width-surface: 2px;
303
+ --espd-elevation-overlay: var(--shadow-xl);
304
+ }
305
+ ```
306
+
307
+ Overlays render in portals on `<body>`, outside any wrapper: set overlay tokens on `:root`.
308
+
309
+ **2. `StyleScope`: the same from React, for a subtree.**
310
+
311
+ ```tsx
312
+ import { StyleScope } from '@espressif/dashboard-ui-components/components/style-scope'
313
+
314
+ <StyleScope radius={{ control: 'full', surface: 'lg' }} elevation={{ surface: 'none' }} density="compact">
315
+ <SettingsPage />
316
+ </StyleScope>
317
+ ```
318
+
319
+ It renders a `display: contents` wrapper (or merges onto its child with `asChild`) carrying the
320
+ role tokens and the density's tokens; nothing else.
321
+
322
+ **3. Instance props: one component.** Applicable components take `radius`, `elevation` and/or
323
+ `border`. A value affects that component only; components nested inside it keep their own look.
324
+
325
+ ```tsx
326
+ <Card radius="none" elevation="none" border="none">…</Card>
327
+ <Button radius="full">Save</Button>
328
+ <Dialog><DialogContent radius="xl" elevation="xl">…</DialogContent></Dialog>
329
+ ```
330
+
331
+ Values: `radius` `none` `xs` `sm` `md` `lg` `xl` `2xl` `full`; `elevation` `none` `xs` `sm` `md`
332
+ `lg` `xl`; `border` `none` `default` (1px) `strong` (2px). Where a component already had
333
+ `rounded` (Input, InputOTP, FileInput, Tag, the date pickers) or `noShadow` / `noBorder`
334
+ (SimpleCard), those still work and the new prop wins when both are set. The date pickers'
335
+ `radius` shapes their trigger; `popoverRadius` and `popoverElevation` shape the calendar popover. Instance props need the
336
+ library stylesheet (`./styles` or `./theme.css`), which keeps their values from inheriting.
337
+
338
+ **Density** scales controls, table rows and cells, list rows, sidebar rows, a form field's
339
+ spacing (`--espd-gap-field`, FormItem) and a dialog's (`--espd-gap-stack`, DialogContent) together:
340
+ `density="compact" | "default" | "comfortable"` on Table, DataTable, Card, List, SimpleList,
341
+ FiltersBar, Sidebar, DialogContent and SheetContent, or on `StyleScope`. `default` is today's look.
342
+
343
+ **Registering your own values** works like variants:
344
+
345
+ ```ts
346
+ import { registerStyleValue, registerDensity } from '@espressif/dashboard-ui-components/components'
347
+
348
+ declare module '@espressif/dashboard-ui-components/components' {
349
+ interface RadiusRegistry { squircle: true }
350
+ interface DensityRegistry { kiosk: true }
351
+ }
352
+
353
+ registerStyleValue('radius', 'squircle', '1.25rem') // a CSS value, no class needed
354
+ registerDensity('kiosk', { '--espd-control-height-lg': '3.5rem', '--espd-item-height': '3.5rem' })
355
+ ```
356
+
357
+ `listStyleValues(axis)` returns the built-ins plus registered values; built-ins cannot be replaced.
191
358
 
192
359
  ### Tips
193
360
 
194
361
  - Put your overrides **after** the `@import` line; CSS cascade order is what makes the override win.
195
362
  - Prefer redeclaring existing tokens (in `:root` / `.dark`) over adding new ones — the built-in tokens are what every component reads from.
196
363
  - If you only need light mode, a single `:root` block is enough. If you support both, always mirror the change in `.dark`.
197
- - Overriding `--font-sans` requires an `@theme` block so Tailwind picks it up:
364
+ - Overriding `--font-sans` or `--font-mono` requires an `@theme` block so Tailwind picks it up:
198
365
  ```css
199
366
  @theme {
200
367
  --font-sans: "Inter", system-ui, sans-serif;
368
+ --font-mono: "JetBrains Mono", ui-monospace, monospace;
201
369
  }
202
370
  ```
203
371
 
@@ -314,6 +482,49 @@ The older `sidebarConfig.hideCompanyBranding: true` still works as a shorthand f
314
482
 
315
483
  ## Usage
316
484
 
485
+ ### Entry points
486
+
487
+ Import from the **narrowest path you can**. Production bundlers drop unused components either way, but tests (Vitest, Jest), dev servers and CommonJS tooling evaluate every module an entry reaches, so a narrow path keeps them fast and free of other components' dependencies.
488
+
489
+ | Path | Contains |
490
+ |---|---|
491
+ | `@espressif/dashboard-ui-components/components/<folder>` | one component folder, e.g. `/components/button`, `/components/dialog`, `/components/data-table`. Same names as `/components` exports for it, the same objects (not copies) |
492
+ | `/charts` | charts (recharts) |
493
+ | `/data-table` | `DataTable` (@tanstack/react-table) |
494
+ | `/markdown` | `MarkdownContent`, `Code`, `CodeEditor`, `MonospaceContent` (react-markdown, shiki) |
495
+ | `/date` | `Calendar`, `DatePicker`, `DateRangePicker`, `DateTimePicker`, `TimePicker` (react-day-picker, date-fns) |
496
+ | `/carousel` | `Carousel` (embla) |
497
+ | `/forms` | react-hook-form bindings (`Form`, `FormField`, …) |
498
+ | `/animation` | `LottieAnimationContainer` and the bundled animations |
499
+ | `/toast` | `Toast`, `Toaster`, `toast` (sonner) |
500
+ | `/components`, `/layouts`, `/common`, `/utils` | everything of that surface |
501
+ | `.` (root) | components + common + layouts together |
502
+
503
+ ```tsx
504
+ import { Button } from '@espressif/dashboard-ui-components/components/button'
505
+ import { Typography } from '@espressif/dashboard-ui-components/components/typography'
506
+ import { BarChart } from '@espressif/dashboard-ui-components/charts'
507
+ ```
508
+
509
+ The folder names are those under `src/components/`; the shipped `dist/components/<folder>/index.d.ts` lists what each exports. Every entry that includes Toast (`/toast`, `/components/toast`, `/components` and the root) imports sonner's stylesheet from JavaScript, which Node-based test runners cannot load without a CSS transform; the other entries do no work at import time.
510
+
511
+ ### Buttons
512
+
513
+ The styled `Button` from `/components` (or `/components/button`) takes `color`, `startIcon`, `endIcon`, `loading`, `tooltip` and `iconOnlyBelow`. `/core` exports a different, uncoloured base `Button` with the same name; apps should not use `/core`.
514
+
515
+ - **`fullWidth` defaults to `true`.** Pass `fullWidth={false}` for an inline button.
516
+ - **Links:** `asChild` renders your element (an `<a>`, a router `Link`) with the button's look, icons and label inside it:
517
+
518
+ ```tsx
519
+ <Button asChild startIcon={<Plus />}>
520
+ <Link to="/devices/new">Add device</Link>
521
+ </Button>
522
+ ```
523
+
524
+ A link cannot be natively disabled, so with `disabled` or `loading` it gets `aria-disabled="true"`, `data-disabled`, `tabIndex={-1}` and the disabled look, and its clicks are cancelled before the link's own `onClick`.
525
+
526
+ ### Surfaces
527
+
317
528
  Prefer **sub-path entry points** over the package root unless you need components, common modules, and layouts from a single entry:
318
529
 
319
530
  ```tsx
@@ -347,7 +558,7 @@ import {
347
558
 
348
559
  ### Why you may see `[BABEL] … deoptimised the styling … exceeds the max of 500KB`
349
560
 
350
- This library is shipped as **pre-bundled ESM** (built with tsup). Published files include large shared chunks (for example `dist/chunk-*.js`). When your toolchain runs **Babel** on those files (common with Metro or other setups that transform `node_modules`), Babel switches to compact code generation for very large single files and logs an **informational** message. It does **not** mean the build is invalid; it means Babel is skipping expensive “pretty” output for that file.
561
+ This library is shipped as **pre-built ESM**, one module per source file (Vite). A few files are still large (bundled Lottie, animation data, the type declarations). When your toolchain runs **Babel** on those files (common with Metro or other setups that transform `node_modules`), Babel switches to compact code generation for very large single files and logs an **informational** message. It does **not** mean the build is invalid; it means Babel is skipping expensive “pretty” output for that file.
351
562
 
352
563
  ### What makes the shipped JS large
353
564
 
@@ -357,7 +568,7 @@ This library is shipped as **pre-bundled ESM** (built with tsup). Published file
357
568
 
358
569
  ### How to keep consumer builds sensible
359
570
 
360
- 1. Use `@espressif/dashboard-ui-components/components`, `/layouts`, `/common`, or `/utils` instead of the root package when you do not need everything together.
571
+ 1. Import from the narrowest [entry point](#entry-points): a single component (`/components/button`), a heavy family (`/charts`, `/date`, …), or a surface (`/components`, `/layouts`, …) rather than the root package.
361
572
  2. Install **optional peer dependencies** only for features you use (`@tanstack/react-table`, `react-hook-form`, `shiki`, `recharts`).
362
573
  3. Prefer **production builds** when measuring size; dev servers and Babel-on-vendor paths often look worse than optimized output.
363
574
  4. For web apps, use a **bundle analyzer** on your app if you need to chase kilobytes; expect a sizable vendor chunk for a full-featured UI kit.
@@ -459,13 +670,34 @@ version you have installed is the shipped type declarations:
459
670
  | MarkdownContent | Renders a markdown string with library primitives (GFM, heading anchors; raw HTML is escaped, not parsed) |
460
671
  | CopiableText / CopyButton | Copy-to-clipboard utilities |
461
672
  | ProgressBar | Progress indicator |
673
+ | MiniBarChart | A row of bars with no axes, sized for a card (a sparkline of counts); highlight one, zeros as stubs |
674
+ | Timeline | A short feed of events with dots on a line, paged with "Show N more" |
675
+ | ShareMenu | Share a link: copy, the device's share sheet, X, Reddit, LinkedIn, Telegram or email |
462
676
  | Collapsible / CollapsibleCard | Expandable content sections |
463
677
  | SimpleCard / BasicDetailsCard / NoDataCard | Specialized card variants |
678
+ | CategoryCard | One category of a collection as a card that opens or filters it: icon on a coloured tile, a count, name, one line and a few example tags; a button, or a link with `href`; lays itself out by its own width (narrow cards drop the tags) |
679
+ | FlipCard | A card with two faces that changes to the other one, turned over or slid through; every change moves the same way, so it can show a stream of items in one slot |
464
680
  | PreviewCard | Content preview card |
465
681
  | Carousel | Slide carousel — horizontal/vertical, dots, arrows or custom navigation, optional autoplay |
682
+ | Coverflow | 3D ring of image cards on a glass reflection, with a caption under the front item; endless, optional autoplay |
683
+ | ShowcaseCard | Catalogue card on `MediaCard`: picture with a slide-up actions strip, a title that opens a page, an app route or an action, meta and footer rows |
684
+ | ChoiceCard | A card you click to choose something: one toggle button, picture on a mist, ring and tick when selected, greyed with its reason when disabled; `stack` or `row` layout |
685
+ | Toolbar / ToolbarButton | Thin bar of small controls with start, centre and end slots and arrow-key focus movement; 28px icon-only buttons with tooltip, toggle state, count or attention dot |
686
+ | ResizableGroup / ResizablePanel / ResizableSeparator | Panels resized by dragging or the keyboard (react-resizable-panels), with a remembered layout and collapsible panels |
687
+ | ColumnPanel | A resizable panel shown and hidden by a flag, staying mounted (and inert) while hidden; `usePanelFlag` drives any collapsible panel the same way |
688
+ | FloatingWindow | Small draggable non-modal window with minimize-to-pill, dock and close |
689
+ | AnchoredPanel | Small non-modal panel attached to a point by a leader line, beside the thing it edits |
690
+ | NoticeStrip | Full-width line of news (info, warning, error) across the top of a canvas, with actions and an optional dismiss |
691
+ | Readout | Instrument display: monospace values and units on a dark plate, optionally a toggle button |
692
+ | SortMenu | One-of picker: the current choice as the button's label, the choices in a radio menu |
693
+ | FiltersPanel / FilterGroup / FiltersPill / ActiveFilters | Catalogue filters: a side panel of counted groups with show-more and per-group search, folding into a floating pill, plus removable active-filter tags |
694
+ | InputGroup / InputGroupTextarea / InputGroupAddon | A field and its controls in one bordered box with a shared focus ring; an auto-growing text area |
695
+ | Bubble / MessageScroller | A conversation: one turn's text (tinted for the person's own words), and a scrolling log that follows new messages and offers a jump to the latest |
696
+ | Reveal | One part of a section's entrance, rising into place when revealed, staggered by order |
697
+ | CheckBadge | Small success circle with a tick, for inside an SVG scene |
466
698
  | PageContainer | Page wrapper with header |
467
699
  | DynamicList | Dynamic item list |
468
- | RequirementList | Met/unmet checklist (password rules, prerequisites); check for satisfied rows, muted circle for outstanding ones, with screen-reader state labels |
700
+ | RequirementList | Met/unmet checklist (password rules, prerequisites); check for satisfied rows, muted circle for outstanding ones, with screen-reader state labels; an optional `description` per row adds a muted second line |
469
701
  | TogglableItemsList | Toggleable item list |
470
702
  | GlitchText / GradientText / HighlightText / ShimmeringText | Text effects |
471
703
  | LottieAnimationContainer | Lottie animation wrapper |
@@ -476,6 +708,7 @@ version you have installed is the shipped type declarations:
476
708
  | Component | Description |
477
709
  |-----------|-------------|
478
710
  | WorkspaceLayout | Full dashboard shell with sidebar, header, and footer |
711
+ | MinimalWorkspaceLayout | Header-less shell: a full-height icon rail on the page background that expands into an elevated sidebar, a floating top-right slot. With `sidebarConfig.hideWhenCollapsed` the sidebar is hidden instead: a click on the content's left edge peeks it over the content, `MinimalWorkspaceSidebarTrigger` opens it inline. Same props as WorkspaceLayout; themed with `--espd-minimal-workspace-layout-*` |
479
712
  | EntryLayout | Authentication and entry page layout — supports a custom right panel, and hiding the logo, footer, background image or right panel entirely |
480
713
 
481
714
  ### Common (`/common`)
@@ -18,7 +18,7 @@ this file when dependencies change._
18
18
 
19
19
  | Package | Version | License |
20
20
  | --- | --- | --- |
21
- | @base-ui-components/react | 1.0.0-rc.0 | MIT |
21
+ | @base-ui/react | 1.9.0 | MIT |
22
22
  | @floating-ui/react | 0.27.19 | MIT |
23
23
  | @radix-ui/react-avatar | 1.2.0 | MIT |
24
24
  | @radix-ui/react-collapsible | 1.1.14 | MIT |
@@ -42,6 +42,7 @@ this file when dependencies change._
42
42
  | radix-ui | 1.6.0 | MIT |
43
43
  | react-day-picker | 9.14.0 | MIT |
44
44
  | react-markdown | 10.1.0 | MIT |
45
+ | react-resizable-panels | 4.22.0 | MIT |
45
46
  | rehype-slug | 6.0.0 | MIT |
46
47
  | remark-gfm | 4.0.1 | MIT |
47
48
  | shiki | 4.3.0 | MIT |
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+ import { C as Color, S as Size } from './index-BQANnKs9.js';
3
+ import { f as Variant } from './variant-D81RhpbR.js';
4
+ import { k as StyleAxisProps } from './style-axes-DSQ2DGc5.js';
5
+ import { b as IconAvatarVariant } from './icon-avatar.props-RYtw2eSW.js';
6
+ import { I as IconTextActionCardActionsPlacement } from './icon-text-action-card.props-B2ggncUK.js';
7
+
8
+ type AlertColor = Color;
9
+ type AlertVariant = Variant;
10
+ type AlertSize = Size;
11
+ type AlertIconAvatarVariant = IconAvatarVariant;
12
+ type AlertType = "error" | "info" | "warning" | "success";
13
+ interface AlertProps extends Pick<StyleAxisProps, "radius"> {
14
+ icon?: React.ReactNode;
15
+ title?: string | React.ReactNode;
16
+ description?: React.ReactNode;
17
+ children?: React.ReactNode;
18
+ /** Semantic category: sets the default icon when `icon` is not provided. */
19
+ type?: AlertType;
20
+ color?: AlertColor;
21
+ iconAvatarVariant?: AlertIconAvatarVariant;
22
+ hideIcon?: boolean;
23
+ action?: React.ReactNode;
24
+ actions?: React.ReactNode;
25
+ /**
26
+ * Where `actions` sit, at every width: `"auto"` beside the text when they fit,
27
+ * otherwise below it; `"below"` always on their own line below the text.
28
+ * With `dismissible`, the close button shares that line.
29
+ *
30
+ * @default "auto"
31
+ */
32
+ actionsPlacement?: IconTextActionCardActionsPlacement;
33
+ /** Render a close button in the trailing actions slot; clicking it hides the alert. */
34
+ dismissible?: boolean;
35
+ /** Called after the alert is dismissed. Notification only — the Alert hides itself. */
36
+ onDismiss?: () => void;
37
+ /** Accessible label for the close button. */
38
+ dismissLabel?: string;
39
+ className?: string;
40
+ size?: AlertSize;
41
+ variant?: AlertVariant;
42
+ }
43
+
44
+ export type { AlertColor as A, AlertIconAvatarVariant as a, AlertProps as b, AlertSize as c, AlertType as d, AlertVariant as e };
@@ -0,0 +1,3 @@
1
+ export { LottieAnimationContainer, LottieAnimationContainerProps } from '../components/lottie-animation-container/index.js';
2
+ export { VerificationInProgress, VerificationInProgressProps } from '../components/lottie-animations/index.js';
3
+ import 'react';
@@ -0,0 +1,3 @@
1
+ import { LottieAnimationContainer } from "../components/lottie-animation-container/lottie-animation-container.js";
2
+ import { VerificationInProgress } from "../components/lottie-animations/verification-in-progress/verification-in-progress.js";
3
+ export { LottieAnimationContainer, VerificationInProgress };
@@ -0,0 +1,29 @@
1
+ import { ReactNode } from 'react';
2
+ import { S as Size, C as Color } from './index-BQANnKs9.js';
3
+
4
+ /** The avatar's sizes: the shared `Size` scale plus `xl`, a large tile (76px) for a profile card. */
5
+ type AvatarSize = Size | "xl";
6
+ interface AvatarProps {
7
+ name?: string;
8
+ imageUrl?: string;
9
+ size?: AvatarSize;
10
+ /**
11
+ * Shown when there is no image (or it fails to load) instead of the name's
12
+ * initial — a generated pattern such as an `Identicon`. Colour it with
13
+ * `className`, which styles the fallback surface too.
14
+ */
15
+ fallback?: ReactNode;
16
+ className?: string;
17
+ /**
18
+ * The colour of the initial's circle (no image, no `fallback`): a preset
19
+ * fills with that colour and writes the initial in its foreground; any CSS
20
+ * colour works too. Defaults to `primary`.
21
+ */
22
+ color?: Color;
23
+ /** Status dot color; ignored when `badgeIcon` is set */
24
+ badgeColor?: Color;
25
+ /** When set, shown instead of a color dot (`badgeColor` is not applied to the badge) */
26
+ badgeIcon?: ReactNode;
27
+ }
28
+
29
+ export type { AvatarProps as A, AvatarSize as a };
@@ -0,0 +1,21 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ declare const buttonVariants: (props?: ({
6
+ variant?: "default" | "link" | "glow" | "outline" | "ghost" | null | undefined;
7
+ size?: "sm" | "default" | "lg" | "icon" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
10
+ asChild?: boolean;
11
+ }
12
+ /**
13
+ * Uncoloured base button: its `default` variant is only a shadow, with no
14
+ * colour, ring or icon props. Apps almost always want the styled `Button`
15
+ * from `@espressif/dashboard-ui-components/components` instead, which takes
16
+ * `color`, `startIcon`, `endIcon`, `loading`, `tooltip` and `iconOnlyBelow`.
17
+ * The two share a name on purpose (renaming either would break imports).
18
+ */
19
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
20
+
21
+ export { type ButtonProps as B, Button as a, buttonVariants as b };
@@ -0,0 +1,76 @@
1
+ import * as React from 'react';
2
+ import { B as ButtonProps$1 } from './button-BK-DIR_L.js';
3
+ import { k as StyleAxisProps } from './style-axes-DSQ2DGc5.js';
4
+ import { P as PresetColor } from './index-BQANnKs9.js';
5
+
6
+ /** A preset, or the brand's metallic `silver` (as `Badge` and `Tag` take it). */
7
+ type ButtonColor = PresetColor | "silver";
8
+ /**
9
+ * The styled, colourable button. Prefer it over the uncoloured base `Button`
10
+ * that `/core` exports (its `default` variant is only a shadow).
11
+ */
12
+ /**
13
+ * Style axes: `radius` and `elevation` apply to every variant that has that
14
+ * look (`elevation` to `default` and `outline`), `border` to `outline` and
15
+ * `glow`. `glow` is `outline` with the halo the other components' `glow`
16
+ * variant uses in place of the elevation shadow.
17
+ */
18
+ interface ButtonProps extends ButtonProps$1, Pick<StyleAxisProps, "radius" | "elevation" | "border"> {
19
+ /**
20
+ * A preset colour, or `"silver"`: the brand's metallic finish, as on `Badge`
21
+ * and `Tag` — a brushed-metal sheen on `default`, a metallic ring on
22
+ * `outline` and `glow`, plain `gray` on `ghost` and `link`.
23
+ */
24
+ color?: ButtonColor;
25
+ startIcon?: React.ReactNode;
26
+ endIcon?: React.ReactNode;
27
+ /**
28
+ * Stretch to the container's width. **Defaults to `true`** (kept for
29
+ * compatibility); pass `fullWidth={false}` for an inline button. Ignored
30
+ * for `size="icon"`.
31
+ */
32
+ fullWidth?: boolean;
33
+ /**
34
+ * Shows the loading indicator and disables the button. With `asChild`, the
35
+ * rendered element is disabled the way a link can be (see `asChild`).
36
+ */
37
+ loading?: boolean;
38
+ loadingIndicator?: "spinner" | "progress-bar";
39
+ animateStartIconOnHover?: boolean;
40
+ animateEndIconOnHover?: boolean;
41
+ hideRingOnHover?: boolean;
42
+ /** When true, outline/glow/ghost use primary hover background and ring; link uses `hover:text-primary`. Ignores `color` for those hover styles. */
43
+ usePrimaryColorOnHover?: boolean;
44
+ tooltip?: string;
45
+ /**
46
+ * Below this viewport breakpoint only the icons show; the label stays in the
47
+ * DOM as screen-reader text, so it remains the button's accessible name.
48
+ */
49
+ iconOnlyBelow?: ButtonIconOnlyBreakpoint;
50
+ /**
51
+ * Render the single child element (an `<a>`, a router `Link`, …) instead
52
+ * of a `<button>`, with the button's classes and props merged onto it. The
53
+ * icons, label and loading indicator render inside that element:
54
+ *
55
+ * ```tsx
56
+ * <Button asChild startIcon={<Plus />}>
57
+ * <Link to="/devices/new">Add device</Link>
58
+ * </Button>
59
+ * ```
60
+ *
61
+ * `disabled` and `loading` cannot use the native `disabled` attribute on a
62
+ * link, so the element gets `aria-disabled="true"`, `data-disabled`,
63
+ * `tabIndex={-1}`, the disabled look, and its clicks are cancelled before
64
+ * the child's own `onClick` (a router `Link` does not navigate).
65
+ */
66
+ asChild?: boolean;
67
+ }
68
+ type ButtonIconOnlyBreakpoint = "sm" | "md";
69
+ /**
70
+ * The styled button: preset `color`s, start/end icons, loading indicators,
71
+ * tooltip and `asChild` for links. Not the same as the uncoloured base
72
+ * `Button` that `/core` exports. Note `fullWidth` defaults to `true`.
73
+ */
74
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
75
+
76
+ export { Button as B, type ButtonIconOnlyBreakpoint as a, type ButtonProps as b };
@@ -0,0 +1,12 @@
1
+ import { ComponentProps } from 'react';
2
+ import { DayPicker } from 'react-day-picker';
3
+
4
+ type CalendarProps = ComponentProps<typeof DayPicker> & {
5
+ /**
6
+ * Button variant used for the navigation and day buttons.
7
+ * @default "ghost"
8
+ */
9
+ buttonVariant?: "outline" | "ghost";
10
+ };
11
+
12
+ export type { CalendarProps as C };
@@ -0,0 +1,2 @@
1
+ export { Carousel, CarouselAlign, CarouselItem, CarouselLabels, CarouselNavigationPlacement, CarouselNavigationState, CarouselNavigationStyle, CarouselOrientation, CarouselProps } from '../components/carousel/index.js';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ import { Carousel } from "../components/carousel/carousel.js";
2
+ export { Carousel };
@@ -0,0 +1,5 @@
1
+ export { AreaChart, AreaChartProps, BarChart, BarChartProps, BarSize, CHART_CATEGORY_COLORS, CHART_SERIES_COLORS, ChartCategoryColorKey, ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartLegendLayout, ChartLegendList, ChartLegendListItem, ChartLegendListProps, ChartLegendOptions, ChartLegendValue, ChartSeriesColorKey, ChartStyle, ChartTooltip, ChartTooltipContent, ComposedChart, ComposedChartProps, ComposedChartSeries, DEFAULT_CHART_SERIES_COLORS, DonutChart, DonutChartProps, DonutDatum, LineChart, LineChartProps, LineStrokeWidth, TreemapAnimationEasing, TreemapChart, TreemapChartProps, TreemapDatum, TreemapTileLabelStyle, buildSeriesChartConfig, getChartSeriesColor } from '../components/chart/index.js';
2
+ import 'react';
3
+ import 'recharts';
4
+ import '../style-axes-DSQ2DGc5.js';
5
+ import '../index-BQANnKs9.js';
@@ -0,0 +1,9 @@
1
+ import { ChartContainer, ChartLegend, ChartLegendContent, ChartLegendList, ChartStyle, ChartTooltip, ChartTooltipContent } from "../components/chart/chart.js";
2
+ import { CHART_CATEGORY_COLORS, CHART_SERIES_COLORS, DEFAULT_CHART_SERIES_COLORS, buildSeriesChartConfig, getChartSeriesColor } from "../components/chart/chart-colors.js";
3
+ import { BarChart } from "../components/chart/bar-chart.js";
4
+ import { AreaChart } from "../components/chart/area-chart.js";
5
+ import { LineChart } from "../components/chart/line-chart.js";
6
+ import { ComposedChart } from "../components/chart/composed-chart.js";
7
+ import { DonutChart } from "../components/chart/donut-chart.js";
8
+ import { TreemapChart } from "../components/chart/treemap-chart.js";
9
+ export { AreaChart, BarChart, CHART_CATEGORY_COLORS, CHART_SERIES_COLORS, ChartContainer, ChartLegend, ChartLegendContent, ChartLegendList, ChartStyle, ChartTooltip, ChartTooltipContent, ComposedChart, DEFAULT_CHART_SERIES_COLORS, DonutChart, LineChart, TreemapChart, buildSeriesChartConfig, getChartSeriesColor };
@@ -36,7 +36,7 @@ function AppLogo({ name = "espressif", logo, alt = "Logo", darkMode = false, min
36
36
  const imgHeight = asset.height / asset.width * imgWidth;
37
37
  return /* @__PURE__ */ jsx(motion.div, {
38
38
  layout: true,
39
- className: cn("flex items-center min-h-0 transition-[max-width,padding] duration-200 ease-in-out", minimal ? "w-full justify-center p-0.5 max-h-[calc(var(--espd-header-height)-16px)] max-w-[calc(var(--espd-sidebar-width-collapsed)-16px)]" : "w-auto justify-start p-0 max-h-[calc(var(--espd-header-height)-16px)] max-w-[calc(var(--espd-sidebar-width)-32px)]"),
39
+ className: cn("flex items-center min-h-0 transition-[max-width,padding] duration-200 ease-in-out", minimal ? "w-full justify-center p-0.5 max-h-[calc(var(--espd-shell-header-height,var(--espd-header-height))-16px)] max-w-[calc(var(--espd-sidebar-width-collapsed)-16px)]" : "w-auto justify-start p-0 max-h-[calc(var(--espd-shell-header-height,var(--espd-header-height))-16px)] max-w-[calc(var(--espd-sidebar-width)-32px)]"),
40
40
  transition: logoTransition,
41
41
  children: /* @__PURE__ */ jsx(AnimatePresence, {
42
42
  initial: false,
@@ -1,9 +1,9 @@
1
1
  import * as React$1 from 'react';
2
- import { ReactNode } from 'react';
3
- import { A as AppLogoProps } from '../app-logo.props-Ct7QBdTd.js';
4
- export { L as LogoAsset, a as LogoAssetConfig, b as LogoVariantSet } from '../app-logo.props-Ct7QBdTd.js';
5
- import { a as ListGroup } from '../list.props-x1j3CbcF.js';
2
+ import { A as AppLogoProps, M as MyAccountMenuProps } from '../my-account-menu.props-C7DK71WC.js';
3
+ export { L as LogoAsset, a as LogoAssetConfig, b as LogoVariantSet } from '../my-account-menu.props-C7DK71WC.js';
6
4
  import { C as Color } from '../index-BQANnKs9.js';
5
+ import '../list.props-DP_xPTqU.js';
6
+ import '../style-axes-DSQ2DGc5.js';
7
7
 
8
8
  declare function AppLogo({ name, logo, alt, darkMode, minimal, width, }: AppLogoProps): React$1.JSX.Element;
9
9
 
@@ -11,9 +11,11 @@ interface ProfileCardProps {
11
11
  name?: string;
12
12
  email?: string;
13
13
  imageUrl?: string;
14
+ /** The avatar's fill behind the initial, when there is no picture; default `primary`. */
15
+ avatarColor?: Color;
14
16
  }
15
17
 
16
- declare function ProfileCard({ name, email, imageUrl }: ProfileCardProps): React$1.JSX.Element;
18
+ declare function ProfileCard({ name, email, imageUrl, avatarColor }: ProfileCardProps): React$1.JSX.Element;
17
19
 
18
20
  interface CopyrightCardProps {
19
21
  text: string;
@@ -31,20 +33,7 @@ declare function CopyrightCard({ text, logoSrc, logoAlt, href, logoOnly, }: Copy
31
33
  */
32
34
  declare function PageLoader(): React$1.JSX.Element;
33
35
 
34
- interface MyAccountMenuProps {
35
- name?: string;
36
- email?: string;
37
- imageUrl?: string;
38
- /** Passed to `Menu` content; default `200px` */
39
- minWidth?: string | number;
40
- menuItems: ListGroup[];
41
- /** Status dot color; ignored when `badgeIcon` is set */
42
- badgeColor?: Color;
43
- /** When set, shown instead of a color dot (`badgeColor` is not applied) */
44
- badgeIcon?: ReactNode;
45
- }
46
-
47
- declare function MyAccountMenu({ name, email, imageUrl, minWidth, menuItems, badgeColor, badgeIcon, }: MyAccountMenuProps): React$1.JSX.Element;
36
+ declare function MyAccountMenu({ name, email, imageUrl, minWidth, menuItems, avatarColor, badgeColor, badgeIcon, triggerVariant, side, align, }: MyAccountMenuProps): React$1.JSX.Element;
48
37
 
49
38
  declare function FooterCard(): React$1.JSX.Element;
50
39
 
@@ -56,4 +45,4 @@ interface AnimatedRainmakerLogoProps {
56
45
 
57
46
  declare function AnimatedRainmakerLogo({ className, style, "aria-label": ariaLabel, }: AnimatedRainmakerLogoProps): React$1.JSX.Element;
58
47
 
59
- export { AnimatedRainmakerLogo, type AnimatedRainmakerLogoProps, AppLogo, AppLogoProps, CopyrightCard, type CopyrightCardProps, FooterCard, MyAccountMenu, type MyAccountMenuProps, PageLoader, ProfileCard, type ProfileCardProps };
48
+ export { AnimatedRainmakerLogo, type AnimatedRainmakerLogoProps, AppLogo, AppLogoProps, CopyrightCard, type CopyrightCardProps, FooterCard, MyAccountMenu, MyAccountMenuProps, PageLoader, ProfileCard, type ProfileCardProps };