@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
@@ -0,0 +1,44 @@
1
+ import { ReactNode, Ref } from 'react';
2
+ import { PanelImperativeHandle } from 'react-resizable-panels';
3
+
4
+ /** Panel sizes by panel id, as percentages of the group. */
5
+ type ResizableLayout = Record<string, number>;
6
+ interface ResizableGroupProps {
7
+ /** `horizontal`: the panels sit side by side; `vertical`: one above the other. */
8
+ orientation: "horizontal" | "vertical";
9
+ /** ResizablePanel and ResizableSeparator, in order. */
10
+ children: ReactNode;
11
+ /** The sizes to open on (a remembered layout). Keys must be the panels' ids. */
12
+ defaultLayout?: ResizableLayout;
13
+ /** The sizes once a change has settled (a drag released, a collapse, a keyboard step). */
14
+ onLayoutChanged?: (layout: ResizableLayout) => void;
15
+ id?: string;
16
+ className?: string;
17
+ }
18
+ /** Collapse, expand, resize and ask a panel from outside. */
19
+ type ResizablePanelHandle = PanelImperativeHandle;
20
+ /** A size: a number is pixels, a string without a unit is a percentage (`"50"`), a unit is honoured (`"20rem"`). */
21
+ type PanelSize = number | string;
22
+ interface ResizablePanelProps {
23
+ /** Names the panel in the group's layout. */
24
+ id: string;
25
+ children: ReactNode;
26
+ /** Can be dragged shut (to `collapsedSize`) past `collapsedThreshold`. */
27
+ collapsible?: boolean;
28
+ collapsedSize?: PanelSize;
29
+ collapsedThreshold?: PanelSize;
30
+ defaultSize?: PanelSize;
31
+ minSize?: PanelSize;
32
+ maxSize?: PanelSize;
33
+ panelRef?: Ref<ResizablePanelHandle | null>;
34
+ className?: string;
35
+ }
36
+ interface ResizableSeparatorProps {
37
+ /** The control's accessible name ("Resize columns"). */
38
+ label: string;
39
+ /** The group's orientation: a horizontal group's separators stand upright. */
40
+ orientation: "horizontal" | "vertical";
41
+ className?: string;
42
+ }
43
+
44
+ export type { PanelSize as P, ResizableGroupProps as R, ResizableLayout as a, ResizablePanelHandle as b, ResizablePanelProps as c, ResizableSeparatorProps as d };
@@ -0,0 +1,84 @@
1
+ import * as React from 'react';
2
+ import { ReactNode, CSSProperties } from 'react';
3
+ import { C as Color } from './index-BQANnKs9.js';
4
+ import { k as StyleAxisProps } from './style-axes-DSQ2DGc5.js';
5
+ import { f as Variant } from './variant-D81RhpbR.js';
6
+
7
+ type SectionCardSize = "sm" | "default" | "lg";
8
+ /** `solid` / `soft` / `outline` / `gradient` — see `resolveVariantStyles` in `@/utils/variant`. */
9
+ type SectionCardVariant = Variant;
10
+ /** Style axes: `radius` and `elevation` (its border comes from `variant`). */
11
+ interface SectionCardProps extends Pick<StyleAxisProps, "radius" | "elevation"> {
12
+ icon?: ReactNode;
13
+ primaryText?: ReactNode;
14
+ secondaryText?: ReactNode;
15
+ /**
16
+ * When `true`, keeps `secondaryText` on one line with ellipsis and shows a
17
+ * tooltip on overflow. When `false`, the full text wraps onto as many lines
18
+ * as needed and no tooltip is rendered. Defaults to `true`.
19
+ */
20
+ truncateSecondaryText?: boolean;
21
+ actions?: ReactNode;
22
+ allowCollapse?: boolean;
23
+ /**
24
+ * Hides the chevron toggle in the header's right column. The header row
25
+ * stays a labelled collapsible trigger, so use this only when something
26
+ * else in the header (an action button, for instance) signals that the
27
+ * card can be expanded. Ignored when `allowCollapse` is `false`.
28
+ */
29
+ hideCollapseIcon?: boolean;
30
+ defaultOpen?: boolean;
31
+ /**
32
+ * Controlled open state of the collapsible section. When set, the card
33
+ * follows this value and reports user toggles through `onOpenChange`
34
+ * without changing on its own; leave it undefined to keep the
35
+ * `defaultOpen`-seeded internal state.
36
+ */
37
+ open?: boolean;
38
+ size?: SectionCardSize;
39
+ /**
40
+ * When set, surface and header text use {@link resolveVariantStyles}.
41
+ * Defaults to `outline`.
42
+ */
43
+ variant?: SectionCardVariant;
44
+ /** Preset token or CSS color string; used with `variant` (defaults to `gray`). */
45
+ color?: Color;
46
+ children?: ReactNode;
47
+ /**
48
+ * Classes for the outer Card surface. Whenever the card can open and close
49
+ * (`allowCollapse` or `expandOnHover`), that surface carries
50
+ * `data-state="open"` or `data-state="closed"`, so each state can be styled
51
+ * without tracking it, through the `data-[state=open]:` and
52
+ * `data-[state=closed]:` variants. A card that cannot collapse has no
53
+ * `data-state`.
54
+ */
55
+ className?: string;
56
+ /** Inline style forwarded to the outer Card surface (e.g. a fixed `height`). */
57
+ style?: CSSProperties;
58
+ /**
59
+ * Makes the Card a flex column and lets its body fill the remaining height.
60
+ * Use with a fixed `height` (via `style`) so body content can scroll internally.
61
+ */
62
+ fillHeight?: boolean;
63
+ /**
64
+ * Called with `true` when the body expands and `false` when it collapses,
65
+ * whether by a click on the header or chevron, or by hover and focus with
66
+ * `expandOnHover`. Hover changes are reported once they settle, so a
67
+ * pointer that leaves and returns within the close delay reports nothing.
68
+ * Use it to switch `variant` or `color` by state; for purely visual
69
+ * changes the `data-state` attribute (see `className`) needs no state.
70
+ */
71
+ onOpenChange?: (open: boolean) => void;
72
+ /**
73
+ * Starts collapsed and expands while the pointer is over the card (or focus
74
+ * is inside it), collapsing again once it leaves. There is no chevron, and
75
+ * `allowCollapse`, `hideCollapseIcon`, `defaultOpen`, `open` and
76
+ * `fillHeight` are ignored; `onOpenChange` still reports each change. On
77
+ * touch screens a tap on the header toggles the body. While open, `icon`
78
+ * pops and tilts slightly. Defaults to `false`.
79
+ */
80
+ expandOnHover?: boolean;
81
+ }
82
+ declare function SectionCard({ icon, primaryText, secondaryText, truncateSecondaryText, actions, allowCollapse: allowCollapseProp, hideCollapseIcon, defaultOpen, open: controlledOpen, size, variant, color, children, className, style, fillHeight: fillHeightProp, onOpenChange, expandOnHover, radius, elevation, }: SectionCardProps): React.JSX.Element;
83
+
84
+ export { SectionCard as S, type SectionCardProps as a, type SectionCardSize as b, type SectionCardVariant as c };
@@ -0,0 +1,51 @@
1
+ import { ButtonHTMLAttributes, ReactNode } 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
+
7
+ type SimpleClickableCardVariant = Variant;
8
+ interface SimpleClickableCardProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onClick" | "title">, Pick<StyleAxisProps, "radius"> {
9
+ icon?: ReactNode;
10
+ /**
11
+ * Custom leading icon slot. When set, rendered as-is instead of wrapping `icon`
12
+ * in `IconAvatar` (use for animated or fully custom avatars).
13
+ */
14
+ leadingIcon?: ReactNode;
15
+ title?: ReactNode;
16
+ /** Secondary line below the title. */
17
+ description?: ReactNode;
18
+ /**
19
+ * When `true` and `title` is a string, keep the title on one line with ellipsis;
20
+ * show a tooltip if overflow. Ignored for React node titles.
21
+ */
22
+ truncateTitle?: boolean;
23
+ /**
24
+ * When `true` and `description` is a string, same behavior as `truncateTitle`.
25
+ * Ignored for React node descriptions.
26
+ */
27
+ truncateDescription?: boolean;
28
+ onClick: NonNullable<ButtonHTMLAttributes<HTMLButtonElement>["onClick"]>;
29
+ color?: Color;
30
+ iconAvatarVariant?: IconAvatarVariant;
31
+ /** Overrides the leading `IconAvatar` color. Defaults from card `variant` and `color`. */
32
+ iconAvatarColor?: Color;
33
+ size?: Size;
34
+ /**
35
+ * `solid` / `soft` / `outline` / `gradient` — see `resolveVariantStyles`
36
+ * in `@/utils/variant` for the canonical token mapping (shared with Alert,
37
+ * Badge, Tag).
38
+ */
39
+ variant?: SimpleClickableCardVariant;
40
+ /** When `true`, hides the trailing end icon (`endIcon` or the default chevron). Defaults to `false`. */
41
+ hideEndIcon?: boolean;
42
+ /**
43
+ * Trailing icon after the title/description. Defaults to `ChevronRight` with theme
44
+ * foreground styling. Ignored when `hideEndIcon` is `true`.
45
+ */
46
+ endIcon?: ReactNode;
47
+ }
48
+ /** Text, surface, and leading icon — shared by `SimpleClickableCard` and `SimpleInfoCard`. */
49
+ type SimpleClickableCardSharedProps = Pick<SimpleClickableCardProps, "icon" | "title" | "description" | "truncateTitle" | "truncateDescription" | "color" | "iconAvatarVariant" | "iconAvatarColor" | "size" | "variant">;
50
+
51
+ export type { SimpleClickableCardProps as S, SimpleClickableCardSharedProps as a, SimpleClickableCardVariant as b };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+
3
+ type WithAsChild<Base extends object> = (Base & {
4
+ asChild: true;
5
+ children: React.ReactElement;
6
+ }) | (Base & {
7
+ asChild?: false | undefined;
8
+ });
9
+
10
+ export type { WithAsChild as W };
@@ -0,0 +1,32 @@
1
+ import { ReactElement, HTMLAttributes } from 'react';
2
+ import { LucideIcon } from 'lucide-react';
3
+ import { C as Color, S as Size } from './index-BQANnKs9.js';
4
+ import { f as Variant } from './variant-D81RhpbR.js';
5
+ import { k as StyleAxisProps } from './style-axes-DSQ2DGc5.js';
6
+
7
+ /**
8
+ * A Lucide icon component (sized by the badge), or a pre-built element such
9
+ * as a brand/custom SVG icon (rendered as-is, so the caller sets its size).
10
+ */
11
+ type StatusBadgeIcon = LucideIcon | ReactElement;
12
+ interface StatusBadgeProps extends HTMLAttributes<HTMLDivElement>, Pick<StyleAxisProps, "radius"> {
13
+ /** Already-translated label. The primitive stays i18n-free. */
14
+ label: string;
15
+ /** Optional leading icon. Omit for label-only status chips. */
16
+ icon?: StatusBadgeIcon;
17
+ color?: Color;
18
+ /** Defaults to `"soft"` (matches Badge default). */
19
+ variant?: Variant;
20
+ /** Defaults to `"default"`. */
21
+ size?: Size;
22
+ /** When true, swaps `icon` for a `Spinner` of matching pixel size. */
23
+ isLoading?: boolean;
24
+ /**
25
+ * Extra classes for the label. Pass `max-sm:sr-only` (with
26
+ * `className="max-sm:pr-0.5"` to even the padding) for an icon-only badge
27
+ * on phones whose label stays available to screen readers.
28
+ */
29
+ labelClassName?: string;
30
+ }
31
+
32
+ export type { StatusBadgeIcon as S, StatusBadgeProps as a };
@@ -0,0 +1,133 @@
1
+ import * as React from 'react';
2
+
3
+ /**
4
+ * Style axes: radius, elevation, border and density. Each axis has built-in
5
+ * values and accepts app values by declaration merging plus registration, the
6
+ * same way as `VariantRegistry`:
7
+ *
8
+ * ```ts
9
+ * declare module "@espressif/dashboard-ui-components/components" {
10
+ * interface RadiusRegistry { squircle: true }
11
+ * }
12
+ * registerStyleValue("radius", "squircle", "1.25rem")
13
+ * ```
14
+ *
15
+ * A value is CSS, not a class: components apply it as an inline custom
16
+ * property, so a registered value needs no generated Tailwind class.
17
+ */
18
+ interface RadiusRegistry {
19
+ none: true;
20
+ xs: true;
21
+ sm: true;
22
+ md: true;
23
+ lg: true;
24
+ xl: true;
25
+ "2xl": true;
26
+ full: true;
27
+ }
28
+ interface ElevationRegistry {
29
+ none: true;
30
+ xs: true;
31
+ sm: true;
32
+ md: true;
33
+ lg: true;
34
+ xl: true;
35
+ }
36
+ interface BorderRegistry {
37
+ none: true;
38
+ default: true;
39
+ strong: true;
40
+ }
41
+ interface DensityRegistry {
42
+ compact: true;
43
+ default: true;
44
+ comfortable: true;
45
+ }
46
+ type Radius = keyof RadiusRegistry;
47
+ type Elevation = keyof ElevationRegistry;
48
+ type Border = keyof BorderRegistry;
49
+ type Density = keyof DensityRegistry;
50
+ type StyleAxis = "radius" | "elevation" | "border" | "density";
51
+ /** The axes whose value is one CSS value (density is a set of tokens). */
52
+ type StyleValueAxis = Exclude<StyleAxis, "density">;
53
+ declare const RADII: readonly ["none", "xs", "sm", "md", "lg", "xl", "2xl", "full"];
54
+ declare const ELEVATIONS: readonly ["none", "xs", "sm", "md", "lg", "xl"];
55
+ declare const BORDERS: readonly ["none", "default", "strong"];
56
+ declare const DENSITIES: readonly ["compact", "default", "comfortable"];
57
+ type AxisValue = {
58
+ radius: Radius;
59
+ elevation: Elevation;
60
+ border: Border;
61
+ density: Density;
62
+ };
63
+ type BuiltIn = {
64
+ radius: (typeof RADII)[number];
65
+ elevation: (typeof ELEVATIONS)[number];
66
+ border: (typeof BORDERS)[number];
67
+ density: (typeof DENSITIES)[number];
68
+ };
69
+ /** A density value: library tokens (`--espd-*`) and their values. */
70
+ type DensityTokens = Record<`--espd-${string}`, string>;
71
+ /**
72
+ * Adds a radius, elevation or border value every component with that axis
73
+ * accepts. `css` is one CSS value: a length for radius and border, a
74
+ * `box-shadow` for elevation. Registering a built-in name is ignored with a
75
+ * warning: built-ins never change. Registering an existing custom name
76
+ * replaces its value.
77
+ */
78
+ declare function registerStyleValue<A extends StyleValueAxis>(axis: A, name: Exclude<AxisValue[A], BuiltIn[A]>, css: string): void;
79
+ /**
80
+ * Adds a density: the tokens it sets on the container that takes it. Same
81
+ * rules as {@link registerStyleValue}.
82
+ */
83
+ declare function registerDensity(name: Exclude<Density, BuiltIn["density"]>, tokens: DensityTokens): void;
84
+ /** The built-in values of an axis followed by every registered one. */
85
+ declare function listStyleValues<A extends StyleAxis>(axis: A): AxisValue[A][];
86
+ /** The CSS for a value of an axis, or `undefined` when it is unknown. */
87
+ declare function resolveStyleValue<A extends StyleValueAxis>(axis: A, value: AxisValue[A]): string | undefined;
88
+ /** The tokens a density sets, or `undefined` when it is unknown. */
89
+ declare function resolveDensity(value: Density): DensityTokens | undefined;
90
+ /**
91
+ * Inline style for a container's `density` prop: the density's tokens, which
92
+ * inherit, so everything inside the container takes them. `undefined` (no
93
+ * prop, or an unknown name) leaves the DOM unchanged.
94
+ */
95
+ declare function densityStyle(density: Density | undefined): React.CSSProperties | undefined;
96
+ /** The `density` prop of a container. */
97
+ type DensityProps = {
98
+ /** Density of everything inside: `compact`, `default` (today's), `comfortable` or a registered one. */
99
+ density?: Density;
100
+ };
101
+ /**
102
+ * The instance props a component with style axes takes. Each sets that one
103
+ * component only (it does not reach the components nested inside it) and
104
+ * wins over the role token; the component's `className` still wins over it.
105
+ */
106
+ type StyleAxisProps = {
107
+ /** Corner radius: a built-in (`none` … `full`) or a registered value. */
108
+ radius?: Radius;
109
+ /** Shadow: a built-in (`none` … `xl`) or a registered value. */
110
+ elevation?: Elevation;
111
+ /** Border width: `none`, `default` (1px), `strong` (2px) or a registered value. */
112
+ border?: Border;
113
+ };
114
+ /**
115
+ * The styles of a component with style axes. For each axis it takes whose
116
+ * prop is set (and resolves), it sets the private variable.
117
+ *
118
+ * - `style`: for the root, with the caller's `style` merged last. With no
119
+ * axis prop set it is the caller's `style` itself, so the DOM is unchanged.
120
+ * - `partStyle`: the private variables alone, for every other element of the
121
+ * component that reads them. The stylesheet registers them as
122
+ * non-inheriting (`@property … { inherits: false }`), so each element that
123
+ * reads one must carry it; that is also what keeps a value from leaking
124
+ * into nested components.
125
+ */
126
+ declare function useStyleAxes(props: StyleAxisProps & {
127
+ style?: React.CSSProperties;
128
+ }, axes: readonly (keyof StyleAxisProps)[]): {
129
+ style: React.CSSProperties | undefined;
130
+ partStyle: React.CSSProperties | undefined;
131
+ };
132
+
133
+ export { BORDERS as B, DENSITIES as D, ELEVATIONS as E, RADII as R, type StyleAxis as S, type Border as a, type BorderRegistry as b, type Density as c, type DensityProps as d, type DensityRegistry as e, type DensityTokens as f, type Elevation as g, type ElevationRegistry as h, type Radius as i, type RadiusRegistry as j, type StyleAxisProps as k, type StyleValueAxis as l, densityStyle as m, listStyleValues as n, registerStyleValue as o, resolveDensity as p, resolveStyleValue as q, registerDensity as r, useStyleAxes as u };
@@ -0,0 +1,6 @@
1
+ export { Toast, ToastColor, ToastId, ToastInput, ToastOptions, ToastProps, ToastToasterProps, ToastType, ToastVariant, Toaster, toast } from '../components/toast/index.js';
2
+ import 'sonner';
3
+ import 'react';
4
+ import '../index-BQANnKs9.js';
5
+ import '../style-axes-DSQ2DGc5.js';
6
+ import '../variant-D81RhpbR.js';
@@ -0,0 +1,2 @@
1
+ import { Toast, Toaster, toast } from "../components/toast/toast.js";
2
+ export { Toast, Toaster, toast };
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { HTMLMotionProps, Transition } from 'motion/react';
3
+ import { W as WithAsChild } from './slot-DGErA9zi.js';
4
+ import { k as StyleAxisProps } from './style-axes-DSQ2DGc5.js';
5
+
6
+ type Side = "top" | "bottom" | "left" | "right";
7
+ type Align = "start" | "center" | "end";
8
+ type TooltipProviderProps$1 = {
9
+ children: React.ReactNode;
10
+ id?: string;
11
+ openDelay?: number;
12
+ closeDelay?: number;
13
+ transition?: Transition;
14
+ };
15
+ type TooltipProps$1 = {
16
+ children: React.ReactNode;
17
+ side?: Side;
18
+ sideOffset?: number;
19
+ align?: Align;
20
+ alignOffset?: number;
21
+ };
22
+ type TooltipContentProps$1 = WithAsChild<HTMLMotionProps<"div">>;
23
+ type TooltipTriggerProps$1 = WithAsChild<HTMLMotionProps<"div">>;
24
+
25
+ type TooltipProviderProps = TooltipProviderProps$1;
26
+ declare function TooltipProvider({ openDelay, ...props }: TooltipProviderProps): React.JSX.Element;
27
+ type TooltipProps = TooltipProps$1;
28
+ declare function Tooltip({ sideOffset, ...props }: TooltipProps): React.JSX.Element;
29
+ type TooltipTriggerProps = TooltipTriggerProps$1;
30
+ declare function TooltipTrigger({ ...props }: TooltipTriggerProps): React.JSX.Element;
31
+ type TooltipContentProps = Omit<TooltipContentProps$1, 'asChild'> & Pick<StyleAxisProps, 'radius' | 'elevation'> & {
32
+ children: React.ReactNode;
33
+ layout?: boolean | 'position' | 'size' | 'preserve-aspect';
34
+ };
35
+ declare function TooltipContent({ className, children, layout, radius, elevation, style, ...props }: TooltipContentProps): React.JSX.Element;
36
+
37
+ export { TooltipContent as T, type TooltipContentProps as a, TooltipProvider as b, type TooltipProviderProps as c, Tooltip as d, TooltipTrigger as e, type TooltipTriggerProps as f };
@@ -1,4 +1,5 @@
1
1
  import { ComponentType } from 'react';
2
+ import { d as DensityProps, k as StyleAxisProps } from './style-axes-DSQ2DGc5.js';
2
3
 
3
4
  /**
4
5
  * Configuration for a sidebar menu item's end action (e.g., a "+" button)
@@ -64,7 +65,7 @@ type SidebarLinkComponentProps = {
64
65
  /**
65
66
  * Props for the reusable Sidebar component
66
67
  */
67
- type SidebarProps = {
68
+ type SidebarProps = DensityProps & {
68
69
  /** Sidebar sections: collapsible groups and/or top-level links */
69
70
  items: readonly SidebarNavEntry[] | SidebarNavEntry[];
70
71
  /** Current path for determining active state */
@@ -92,6 +93,35 @@ type SidebarProps = {
92
93
  * (the active group takes precedence). Default false.
93
94
  */
94
95
  focusActiveGroup?: boolean;
96
+ /**
97
+ * Corner radius of the flyout menu a group opens while the sidebar is
98
+ * collapsed to icons (`radius` on its DropdownMenuContent). Overlay role
99
+ * token otherwise.
100
+ */
101
+ flyoutRadius?: StyleAxisProps["radius"];
102
+ /** Shadow of that flyout menu (`elevation` on its DropdownMenuContent). */
103
+ flyoutElevation?: StyleAxisProps["elevation"];
104
+ /** Rendered between the header and the menu, e.g. a "New" button. Desktop and mobile. */
105
+ beforeContent?: React.ReactNode;
106
+ /** Extra classes for the header region (the `header` slot's wrapper). */
107
+ headerClassName?: string;
108
+ /**
109
+ * Extra classes for the sidebar. On desktop they land on the fixed container
110
+ * (`data-slot="sidebar-container"`); on mobile they are ignored.
111
+ */
112
+ className?: string;
113
+ /**
114
+ * Extra classes for the mobile sheet's panel, which renders in a portal
115
+ * outside the sidebar's own tree. Ignored on desktop.
116
+ */
117
+ mobileClassName?: string;
118
+ /** `id` of the desktop sidebar container, e.g. for `aria-controls`. Ignored on mobile. */
119
+ id?: string;
120
+ /**
121
+ * Click handler on the desktop sidebar container. Fires for clicks anywhere
122
+ * inside it, interactive rows included; check `event.target`. Ignored on mobile.
123
+ */
124
+ onClick?: React.MouseEventHandler<HTMLDivElement>;
95
125
  };
96
126
 
97
127
  export { type SidebarEndActionConfig as S, type SidebarGroupConfig as a, type SidebarItemConfig as b, type SidebarLinkComponentProps as c, type SidebarNavEntry as d, type SidebarProps as e, type SidebarTopLevelLinkConfig as f, isSidebarGroup as i };
package/dist/utils/cn.js CHANGED
@@ -1,6 +1,11 @@
1
1
  import { clsx } from "clsx";
2
- import { twMerge } from "tailwind-merge";
2
+ import { extendTailwindMerge } from "tailwind-merge";
3
3
  //#region src/utils/cn.ts
4
+ var twMerge = extendTailwindMerge({ extend: { classGroups: { shadow: [{ shadow: [
5
+ (value) => /^\[shadow:.+\]$/.test(value),
6
+ "glow",
7
+ "float"
8
+ ] }] } } });
4
9
  function cn(...inputs) {
5
10
  return twMerge(clsx(inputs));
6
11
  }
@@ -17,56 +17,81 @@ var presetClassMap = {
17
17
  primary: {
18
18
  bg: "bg-primary",
19
19
  text: "text-primary",
20
- border: "border-primary"
20
+ border: "border-primary",
21
+ fg: "text-primary-foreground"
21
22
  },
22
23
  secondary: {
23
24
  bg: "bg-secondary",
24
25
  text: "text-secondary",
25
- border: "border-secondary"
26
+ border: "border-secondary",
27
+ fg: "text-secondary-foreground"
26
28
  },
27
29
  error: {
28
30
  bg: "bg-error",
29
31
  text: "text-error",
30
- border: "border-error"
32
+ border: "border-error",
33
+ fg: "text-error-foreground"
31
34
  },
32
35
  info: {
33
36
  bg: "bg-info",
34
37
  text: "text-info",
35
- border: "border-info"
38
+ border: "border-info",
39
+ fg: "text-info-foreground"
36
40
  },
37
41
  success: {
38
42
  bg: "bg-success",
39
43
  text: "text-success",
40
- border: "border-success"
44
+ border: "border-success",
45
+ fg: "text-success-foreground"
41
46
  },
42
47
  warning: {
43
48
  bg: "bg-warning",
44
49
  text: "text-warning",
45
- border: "border-warning"
50
+ border: "border-warning",
51
+ fg: "text-warning-foreground"
46
52
  },
47
53
  disabled: {
48
54
  bg: "bg-disabled",
49
55
  text: "text-disabled",
50
- border: "border-disabled"
56
+ border: "border-disabled",
57
+ fg: "text-disabled-foreground"
51
58
  },
52
59
  gray: {
53
60
  bg: "bg-gray",
54
61
  text: "text-gray",
55
- border: "border-input"
62
+ border: "border-input",
63
+ fg: "text-gray-foreground"
56
64
  },
57
65
  mist: {
58
66
  bg: "bg-mist",
59
67
  text: "text-mist",
60
- border: "border-mist-border"
68
+ border: "border-mist-border",
69
+ fg: "text-mist-foreground"
61
70
  }
62
71
  };
63
72
  /**
73
+ * Text on a fill of an arbitrary CSS colour: the library cannot know its
74
+ * contrast, so it is the same overridable token the `solid` variant uses.
75
+ */
76
+ var ON_ARBITRARY_FILL = "var(--espd-on-solid-foreground, #fff)";
77
+ /**
64
78
  * Resolve a `Color` value to either a Tailwind class (for presets) or an
65
79
  * inline style object (for arbitrary CSS color strings).
66
80
  */
67
81
  function resolveColor(color, target) {
68
82
  if (isPresetColor(color)) return { className: presetClassMap[color][target] };
83
+ if (target === "fg") return { style: { color: ON_ARBITRARY_FILL } };
69
84
  return { style: { [target === "bg" ? "backgroundColor" : target === "text" ? "color" : "borderColor"]: color } };
70
85
  }
86
+ var SUPPORTS_RELATIVE_COLOR = typeof CSS !== "undefined" && typeof CSS.supports === "function" && CSS.supports("color", "lch(from red l c h)");
87
+ /**
88
+ * Text on a solid fill of an arbitrary colour: black or white by the fill's
89
+ * lightness, in CSS (relative colour syntax), so a `var(--token)` or a hex
90
+ * works alike. Where the browser cannot do that, the overridable token the
91
+ * `solid` surfaces use.
92
+ */
93
+ function contrastingForeground(fill) {
94
+ return SUPPORTS_RELATIVE_COLOR ? `lch(from ${fill} calc((49.44 - l) * infinity) 0 0)` : "var(--espd-on-solid-foreground, #fff)";
95
+ }
71
96
  //#endregion
72
- export { isPresetColor, resolveColor };
97
+ export { contrastingForeground, isPresetColor, resolveColor };
@@ -1,9 +1,17 @@
1
1
  export { c as cn } from '../cn-Cbsgs0XP.js';
2
2
  import { C as Color } from '../index-BQANnKs9.js';
3
+ export { V as VARIANTS, f as Variant, g as VariantRecipe, h as VariantRegistry, i as VariantStyles, l as listVariants, r as registerVariant, k as resolveVariantStyles } from '../variant-D81RhpbR.js';
4
+ export { B as BORDERS, a as Border, b as BorderRegistry, D as DENSITIES, c as Density, d as DensityProps, e as DensityRegistry, f as DensityTokens, E as ELEVATIONS, g as Elevation, h as ElevationRegistry, R as RADII, i as Radius, j as RadiusRegistry, S as StyleAxis, k as StyleAxisProps, l as StyleValueAxis, m as densityStyle, n as listStyleValues, r as registerDensity, o as registerStyleValue, p as resolveDensity, q as resolveStyleValue, u as useStyleAxes } from '../style-axes-DSQ2DGc5.js';
3
5
  import 'clsx';
6
+ import 'react';
4
7
 
5
8
  declare function isPresetColor(color: Color): color is Exclude<Color, string & {}>;
6
- type ColorTarget = "bg" | "text" | "border";
9
+ /**
10
+ * What the colour paints: a fill (`bg`), text or icons in that colour
11
+ * (`text`), a border (`border`), or the text that reads ON a fill of that
12
+ * colour (`fg` — the preset's `-foreground` token).
13
+ */
14
+ type ColorTarget = "bg" | "text" | "border" | "fg";
7
15
  type ColorResult = {
8
16
  className: string;
9
17
  style?: undefined;
@@ -17,4 +25,12 @@ type ColorResult = {
17
25
  */
18
26
  declare function resolveColor(color: Color, target: ColorTarget): ColorResult;
19
27
 
20
- export { isPresetColor, resolveColor };
28
+ /**
29
+ * Apply a React state change inside a view transition, so elements carrying
30
+ * `view-transition-morph` / `view-transition-glide` animate from their old
31
+ * place to their new one. Where the browser has no View Transitions, or the
32
+ * user asked for reduced motion, the change is applied directly.
33
+ */
34
+ declare function startViewTransition(update: () => void): void;
35
+
36
+ export { isPresetColor, resolveColor, startViewTransition };
@@ -1,3 +1,6 @@
1
1
  import { cn } from "./cn.js";
2
2
  import { isPresetColor, resolveColor } from "./color.js";
3
- export { cn, isPresetColor, resolveColor };
3
+ import { VARIANTS, listVariants, registerVariant, resolveVariantStyles } from "./variant.js";
4
+ import { BORDERS, DENSITIES, ELEVATIONS, RADII, densityStyle, listStyleValues, registerDensity, registerStyleValue, resolveDensity, resolveStyleValue, useStyleAxes } from "./style-axes.js";
5
+ import { startViewTransition } from "./view-transition.js";
6
+ export { BORDERS, DENSITIES, ELEVATIONS, RADII, VARIANTS, cn, densityStyle, isPresetColor, listStyleValues, listVariants, registerDensity, registerStyleValue, registerVariant, resolveColor, resolveDensity, resolveStyleValue, resolveVariantStyles, startViewTransition, useStyleAxes };
@@ -33,6 +33,21 @@ var SILVER_SOLID_SURFACE_STYLE = {
33
33
  boxShadow: "inset 0 1px 0 rgba(255,255,255,0.22), inset 0 -1px 0 rgba(0,0,0,0.18)"
34
34
  };
35
35
  /**
36
+ * {@link SILVER_SOLID_SURFACE_STYLE}'s sheen alone, for a surface whose own `box-shadow` must
37
+ * survive: an inline `boxShadow` beats every `shadow-*` and `ring-*` class, which on a button
38
+ * erased its hover ring, its keyboard focus ring and its elevation. Pair it with
39
+ * {@link SilverBezelOverlay}, which draws the bevel on a layer of its own.
40
+ */
41
+ var SILVER_SOLID_SHEEN_STYLE = { backgroundImage: SILVER_SOLID_SURFACE_STYLE.backgroundImage };
42
+ /** The solid surface's bevel as a layer (the container must be positioned), so the surface keeps its own shadow. */
43
+ function SilverBezelOverlay() {
44
+ return /* @__PURE__ */ jsx("span", {
45
+ "aria-hidden": true,
46
+ className: "pointer-events-none absolute inset-0 rounded-[inherit]",
47
+ style: { boxShadow: SILVER_SOLID_SURFACE_STYLE.boxShadow }
48
+ });
49
+ }
50
+ /**
36
51
  * Metallic ring drawn as a 1px gradient border with a *truly transparent* interior, used for
37
52
  * `color="silver"` + `variant="outline"`. Uses the `mask-composite` ring trick:
38
53
  *
@@ -60,4 +75,4 @@ function SilverMetallicBorderOverlay() {
60
75
  });
61
76
  }
62
77
  //#endregion
63
- export { SILVER_SHINE_OVERLAY_CLASS, SILVER_SHINE_OVERLAY_STYLE, SILVER_SOLID_SURFACE_STYLE, SilverMetallicBorderOverlay, SilverShineOverlay };
78
+ export { SILVER_SHINE_OVERLAY_CLASS, SILVER_SHINE_OVERLAY_STYLE, SILVER_SOLID_SHEEN_STYLE, SILVER_SOLID_SURFACE_STYLE, SilverBezelOverlay, SilverMetallicBorderOverlay, SilverShineOverlay };