@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,45 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface FloatingWindowPosition {
5
+ x: number;
6
+ y: number;
7
+ }
8
+ interface FloatingWindowProps {
9
+ /** The window's accessible name, shown in its bar and on its pill. */
10
+ title: string;
11
+ children: ReactNode;
12
+ /** Where it sits, from the viewport's top-left; null = the default spot. */
13
+ position: FloatingWindowPosition | null;
14
+ /** Called once a drag ends, with the new spot (kept inside the viewport). */
15
+ onMove: (position: FloatingWindowPosition) => void;
16
+ /** Folded to a pill in the bottom-left corner; the pill opens the window again where it was. */
17
+ minimized?: boolean;
18
+ onMinimize?: () => void;
19
+ /** Opens the window again from its pill. */
20
+ onRestore?: () => void;
21
+ /** Puts the content back where it came from (also Escape). */
22
+ onDock: () => void;
23
+ onClose: () => void;
24
+ dockLabel: string;
25
+ closeLabel: string;
26
+ minimizeLabel?: string;
27
+ /** The pill's accessible name. */
28
+ restoreLabel?: string;
29
+ /** Something inside wants the person (an expert waiting for an answer): the pill carries a dot, and this is said with its name. */
30
+ attention?: string;
31
+ /** The drag handle's accessible name. */
32
+ moveLabel: string;
33
+ className?: string;
34
+ }
35
+
36
+ /**
37
+ * A small window floating over the page, moved by its bar: a non-modal
38
+ * dialog, so the page behind it stays live. Its bar carries Minimize (to a
39
+ * pill in the bottom-left corner), the way back (Dock) and the way out
40
+ * (Close); Escape docks. Wrap `onMinimize` / `onRestore` in
41
+ * `startViewTransition` and the window morphs into its pill and back.
42
+ */
43
+ declare function FloatingWindow({ title, children, position, onMove, minimized, onMinimize, onRestore, onDock, onClose, dockLabel, closeLabel, minimizeLabel, restoreLabel, attention, moveLabel, className }: FloatingWindowProps): React.JSX.Element;
44
+
45
+ export { FloatingWindow, type FloatingWindowPosition, type FloatingWindowProps };
@@ -0,0 +1,2 @@
1
+ import { FloatingWindow } from "./floating-window.js";
2
+ export { FloatingWindow };
@@ -0,0 +1,28 @@
1
+ import * as react_hook_form from 'react-hook-form';
2
+ import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
3
+ import * as React from 'react';
4
+ import * as LabelPrimitive from '@radix-ui/react-label';
5
+
6
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, }: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
7
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => React.JSX.Element;
8
+ declare const useFormField: () => {
9
+ invalid: boolean;
10
+ isDirty: boolean;
11
+ isTouched: boolean;
12
+ isValidating: boolean;
13
+ error?: react_hook_form.FieldError;
14
+ id: string;
15
+ name: string;
16
+ formItemId: string;
17
+ formDescriptionId: string;
18
+ formMessageId: string;
19
+ };
20
+ declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
21
+ declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
22
+ declare const FormControl: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLElement> & {
23
+ children?: React.ReactNode;
24
+ } & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
25
+ declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
26
+ declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
27
+
28
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
@@ -0,0 +1,2 @@
1
+ import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField } from "../../core/form.js";
2
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
@@ -19,7 +19,7 @@ var iconSizeMap = {
19
19
  icon: "size-10 [&_svg]:size-10"
20
20
  }
21
21
  };
22
- function FullscreenDialog({ icon, iconSize = "lg", heading, secondaryText, children, open, onOpenChange, closeOnEscape = true, noGutters = false }) {
22
+ function FullscreenDialog({ icon, iconSize = "lg", heading, secondaryText, children, open, onOpenChange, closeOnEscape = true, noGutters = false, scrollable = true }) {
23
23
  const sizeClasses = iconSizeMap[iconSize];
24
24
  return /* @__PURE__ */ jsx(Dialog, {
25
25
  open,
@@ -55,9 +55,13 @@ function FullscreenDialog({ icon, iconSize = "lg", heading, secondaryText, child
55
55
  children: secondaryText
56
56
  })
57
57
  }),
58
- /* @__PURE__ */ jsx(ScrollArea, {
58
+ scrollable ? /* @__PURE__ */ jsx(ScrollArea, {
59
59
  className: cn("flex-1 min-h-0", noGutters ? "p-0" : "px-6 py-4"),
60
60
  children
61
+ }) : /* @__PURE__ */ jsx("div", {
62
+ "data-slot": "fullscreen-dialog-body",
63
+ className: cn("flex-1 min-h-0 overflow-hidden", noGutters ? "p-0" : "px-6 py-4"),
64
+ children
61
65
  })
62
66
  ]
63
67
  })
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+
3
+ declare const iconSizeMap: {
4
+ readonly sm: {
5
+ readonly avatar: "h-12 w-12";
6
+ readonly icon: "size-6 [&_svg]:size-6";
7
+ };
8
+ readonly md: {
9
+ readonly avatar: "h-16 w-16";
10
+ readonly icon: "size-8 [&_svg]:size-8";
11
+ };
12
+ readonly lg: {
13
+ readonly avatar: "h-20 w-20";
14
+ readonly icon: "size-10 [&_svg]:size-10";
15
+ };
16
+ };
17
+ type FullscreenDialogIconSize = keyof typeof iconSizeMap;
18
+ interface FullscreenDialogProps {
19
+ icon?: React.ReactNode;
20
+ iconSize?: FullscreenDialogIconSize;
21
+ heading?: string | React.ReactNode;
22
+ secondaryText?: string | React.ReactNode;
23
+ children: React.ReactNode;
24
+ open: boolean;
25
+ onOpenChange: (open: boolean) => void;
26
+ closeOnEscape?: boolean;
27
+ noGutters?: boolean;
28
+ /**
29
+ * `true` (default): the body scrolls when its content is taller than the
30
+ * screen. `false`: the body is exactly the height left under the heading
31
+ * and does not scroll, so content can fill it (`h-full`) — a picture shown
32
+ * whole, a canvas, a player.
33
+ */
34
+ scrollable?: boolean;
35
+ }
36
+ declare function FullscreenDialog({ icon, iconSize, heading, secondaryText, children, open, onOpenChange, closeOnEscape, noGutters, scrollable, }: FullscreenDialogProps): React.JSX.Element;
37
+
38
+ export { FullscreenDialog, type FullscreenDialogProps };
@@ -0,0 +1,2 @@
1
+ import { FullscreenDialog } from "./fullscreen-dialog.js";
2
+ export { FullscreenDialog };
@@ -0,0 +1,122 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { resolveColor } from "../../utils/color.js";
3
+ import { cloneElement, isValidElement } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/components/horizontal-stepper/horizontal-stepper.tsx
6
+ var sizes = {
7
+ sm: {
8
+ node: "size-7",
9
+ icon: "size-3.5",
10
+ label: "text-[11px]",
11
+ description: "text-[11px]",
12
+ line: "top-3.5",
13
+ lineFromNode: "left-9"
14
+ },
15
+ default: {
16
+ node: "size-9",
17
+ icon: "size-4.5",
18
+ label: "text-xs",
19
+ description: "text-xs",
20
+ line: "top-4.5",
21
+ lineFromNode: "left-11"
22
+ }
23
+ };
24
+ var tones = {
25
+ default: {
26
+ label: "text-foreground",
27
+ upcomingLabel: "text-muted-foreground",
28
+ upcoming: "border-border bg-background text-muted-foreground",
29
+ track: "bg-border"
30
+ },
31
+ inverse: {
32
+ label: "text-scrim-foreground",
33
+ upcomingLabel: "text-scrim-foreground/60",
34
+ upcoming: "border-scrim-foreground/40 bg-transparent text-scrim-foreground/70",
35
+ track: "bg-scrim-foreground/25"
36
+ }
37
+ };
38
+ var NODE_POP = "scale-50 opacity-0 transition duration-100 group-hover/media-card:scale-100 group-hover/media-card:opacity-100 group-hover/media-card:duration-450 group-hover/media-card:ease-overshoot group-focus-within/media-card:scale-100 group-focus-within/media-card:opacity-100 group-focus-within/media-card:duration-450 group-focus-within/media-card:ease-overshoot motion-reduce:scale-100 motion-reduce:opacity-100 motion-reduce:transition-none";
39
+ var NODE_DELAYS = [
40
+ "group-hover/media-card:delay-0 group-focus-within/media-card:delay-0",
41
+ "group-hover/media-card:delay-120 group-focus-within/media-card:delay-120",
42
+ "group-hover/media-card:delay-200 group-focus-within/media-card:delay-200",
43
+ "group-hover/media-card:delay-260 group-focus-within/media-card:delay-260"
44
+ ];
45
+ var LINE_FILL = "scale-x-0 transition-transform duration-100 group-hover/media-card:scale-x-100 group-hover/media-card:delay-300 group-hover/media-card:duration-600 group-hover/media-card:ease-emphasized group-focus-within/media-card:scale-x-100 group-focus-within/media-card:delay-300 group-focus-within/media-card:duration-600 group-focus-within/media-card:ease-emphasized motion-reduce:scale-x-100 motion-reduce:transition-none";
46
+ function sized(icon, className) {
47
+ if (isValidElement(icon)) {
48
+ const el = icon;
49
+ return cloneElement(el, { className: cn(className, el.props.className) });
50
+ }
51
+ return icon;
52
+ }
53
+ /**
54
+ * A few stops in a row joined by a line — how far something got (requested,
55
+ * building, shipped). Steps reached are filled in `color`; the line is filled
56
+ * up to the current step. A `stale` step (done, but out of date) is filled in
57
+ * `warning`, a `failed` one in `error`. Read as one image with `ariaLabel`, since the status is also said
58
+ * in words beside it.
59
+ */
60
+ function HorizontalStepper({ steps, color = "primary", size = "default", tone = "default", animateIn, ariaLabel = "Progress", align = "center", semantics = "image", className }) {
61
+ const s = sizes[size];
62
+ const t = tones[tone];
63
+ const fill = resolveColor(color, "bg");
64
+ const onFill = resolveColor(color, "fg");
65
+ const animate = animateIn === "media-card-reveal";
66
+ const start = align === "start";
67
+ const asList = semantics === "list";
68
+ return /* @__PURE__ */ jsx("ol", {
69
+ role: asList ? void 0 : "img",
70
+ "aria-label": ariaLabel,
71
+ "data-align": align,
72
+ className: cn("m-0 flex w-full list-none items-start p-0", start && "gap-0", className),
73
+ children: steps.map((step, index) => {
74
+ const reached = step.status !== "not_started";
75
+ const stale = step.status === "stale";
76
+ const failed = step.status === "failed";
77
+ const next = steps[index + 1];
78
+ return /* @__PURE__ */ jsxs("li", {
79
+ "aria-hidden": asList ? void 0 : true,
80
+ "aria-current": asList && step.status === "in_progress" ? "step" : void 0,
81
+ className: cn("relative flex min-w-0 flex-1 flex-col gap-1.5", start ? "items-start pr-4 last:pr-0" : "items-center"),
82
+ children: [
83
+ start && next && /* @__PURE__ */ jsx("span", {
84
+ "aria-hidden": true,
85
+ className: cn("absolute right-2 h-0.5 -translate-y-1/2 rounded-full", s.line, s.lineFromNode, t.track),
86
+ children: next.status !== "not_started" && /* @__PURE__ */ jsx("span", {
87
+ className: cn("absolute inset-0 origin-left rounded-full", fill.className, animate && LINE_FILL),
88
+ style: fill.style
89
+ })
90
+ }),
91
+ !start && index > 0 && /* @__PURE__ */ jsx("span", {
92
+ className: cn("absolute right-1/2 left-[-50%] h-0.5 -translate-y-1/2 rounded-full", s.line, t.track),
93
+ children: reached && /* @__PURE__ */ jsx("span", {
94
+ className: cn("absolute inset-0 origin-left rounded-full", fill.className, animate && LINE_FILL),
95
+ style: fill.style
96
+ })
97
+ }),
98
+ /* @__PURE__ */ jsx("span", {
99
+ "data-status": step.status,
100
+ "aria-hidden": asList ? true : void 0,
101
+ className: cn("relative z-10 flex shrink-0 items-center justify-center rounded-full border-2", s.node, stale && "border-transparent bg-warning text-warning-foreground", failed && "border-transparent bg-error text-error-foreground", !stale && !failed && (reached ? cn("border-transparent", fill.className, onFill.className) : t.upcoming), animate && cn(NODE_POP, NODE_DELAYS[Math.min(index, NODE_DELAYS.length - 1)])),
102
+ style: reached && !stale && !failed && (fill.style || onFill.style) ? {
103
+ ...fill.style,
104
+ ...onFill.style
105
+ } : void 0,
106
+ children: sized(step.icon, s.icon)
107
+ }),
108
+ /* @__PURE__ */ jsx("span", {
109
+ className: cn("max-w-full font-semibold", step.description ? "mt-1" : "truncate", s.label, reached ? t.label : t.upcomingLabel, start && "text-left"),
110
+ children: step.label
111
+ }),
112
+ step.description && /* @__PURE__ */ jsx("span", {
113
+ className: cn("max-w-full leading-snug text-muted-foreground", s.description, start ? "text-left" : "text-center"),
114
+ children: step.description
115
+ })
116
+ ]
117
+ }, step.id);
118
+ })
119
+ });
120
+ }
121
+ //#endregion
122
+ export { HorizontalStepper };
@@ -0,0 +1,70 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { C as Color } from '../../index-BQANnKs9.js';
4
+ import { c as VerticalStepperStepStatus } from '../../vertical-stepper.props-BXYcbW70.js';
5
+
6
+ /** One stop on the line. `status` is the same as a `VerticalStepper` step's, so data moves between the two. */
7
+ interface HorizontalStepperStep {
8
+ id: string;
9
+ /** Already-translated label under the node. */
10
+ label: string;
11
+ /** The node's icon: a Lucide element or any pre-sized element. */
12
+ icon: ReactNode;
13
+ status: VerticalStepperStepStatus;
14
+ /** Already-translated line under the label ("Plug it in over USB"). Wraps; never truncated. */
15
+ description?: string;
16
+ }
17
+ type HorizontalStepperSize = "sm" | "default";
18
+ /**
19
+ * `center` (default): each node centred over its label, the line running
20
+ * node to node. `start`: nodes and text on the left of each column, the line
21
+ * running from each node to the right — for steps that carry a description.
22
+ */
23
+ type HorizontalStepperAlign = "center" | "start";
24
+ /**
25
+ * `image` (default): read as one picture by `ariaLabel`, because the status
26
+ * is said in words beside it. `list`: read as an ordered list of its steps,
27
+ * the `in_progress` one marked `aria-current="step"` — when the stepper IS
28
+ * the instructions (a "how to flash" sequence).
29
+ */
30
+ type HorizontalStepperSemantics = "image" | "list";
31
+ interface HorizontalStepperProps {
32
+ steps: HorizontalStepperStep[];
33
+ /** Fill of the steps reached (complete and current) and of the line between them. Default `primary`. */
34
+ color?: Color;
35
+ /** `sm`: 28px nodes and small labels, for a card. Default `default`. */
36
+ size?: HorizontalStepperSize;
37
+ /**
38
+ * `inverse` draws it for a dark overlay such as a `MediaCardReveal` panel, in
39
+ * either theme (scrim tokens). Default `default`.
40
+ */
41
+ tone?: "default" | "inverse";
42
+ /**
43
+ * `media-card-reveal`: the nodes pop in one by one and the line fills each
44
+ * time the surrounding `MediaCard` opens its reveal (hover or keyboard
45
+ * focus). Only meaningful inside a `MediaCardReveal`, where it starts hidden.
46
+ * Unset: drawn at rest. Nothing moves under reduced motion.
47
+ */
48
+ animateIn?: "media-card-reveal";
49
+ /**
50
+ * Accessible name for the whole line, read instead of its parts
51
+ * ("Progress: in progress"). Default `"Progress"`.
52
+ */
53
+ ariaLabel?: string;
54
+ /** Default `center`. */
55
+ align?: HorizontalStepperAlign;
56
+ /** Default `image`. */
57
+ semantics?: HorizontalStepperSemantics;
58
+ className?: string;
59
+ }
60
+
61
+ /**
62
+ * A few stops in a row joined by a line — how far something got (requested,
63
+ * building, shipped). Steps reached are filled in `color`; the line is filled
64
+ * up to the current step. A `stale` step (done, but out of date) is filled in
65
+ * `warning`, a `failed` one in `error`. Read as one image with `ariaLabel`, since the status is also said
66
+ * in words beside it.
67
+ */
68
+ declare function HorizontalStepper({ steps, color, size, tone, animateIn, ariaLabel, align, semantics, className, }: HorizontalStepperProps): React.JSX.Element;
69
+
70
+ export { HorizontalStepper, type HorizontalStepperAlign, type HorizontalStepperProps, type HorizontalStepperSemantics, type HorizontalStepperSize, type HorizontalStepperStep };
@@ -0,0 +1,2 @@
1
+ import { HorizontalStepper } from "./horizontal-stepper.js";
2
+ export { HorizontalStepper };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { I as IconAvatarProps } from '../../icon-avatar.props-RYtw2eSW.js';
3
+ export { a as IconAvatarRingProps, b as IconAvatarVariant } from '../../icon-avatar.props-RYtw2eSW.js';
4
+ import '../../index-BQANnKs9.js';
5
+ import '../../variant-D81RhpbR.js';
6
+
7
+ declare function IconAvatar({ size, color, variant, ring, children, className, discClassName, discStyle, }: IconAvatarProps): React.JSX.Element;
8
+
9
+ export { IconAvatar, IconAvatarProps };
@@ -0,0 +1,2 @@
1
+ import { IconAvatar } from "./icon-avatar.js";
2
+ export { IconAvatar };
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../../utils/cn.js";
3
3
  import { isPresetColor } from "../../utils/color.js";
4
+ import { useStyleAxes } from "../../utils/style-axes.js";
4
5
  import { TooltipProvider } from "../../core/animate-ui/components/animate/tooltip.js";
5
6
  import { PRESET_RING_CLASSES, renderGradientBackdropLayers, renderLeadingIconRow, renderTitleAndDescriptionBlocks, ringTransitionClass, useSimpleClickableCardSurface } from "../simple-clickable-card/simple-clickable-card-shared.js";
6
7
  import * as React$1 from "react";
@@ -35,7 +36,8 @@ function shellPresetRing(color) {
35
36
  const c = color ?? "gray";
36
37
  return isPresetColor(c) ? PRESET_RING_CLASSES[c] : "";
37
38
  }
38
- var IconTextActionCard = React$1.forwardRef(({ icon, title, description, truncateTitle = false, truncateDescription = false, onClick, actions, showActionsOnlyOnHover = false, actionsPlacement = "auto", color = "gray", iconAvatarVariant: iconAvatarVariantProp, iconAvatarColor: iconAvatarColorProp, size = "default", variant = "soft", className, type = "button", disabled, ...rest }, ref) => {
39
+ var IconTextActionCard = React$1.forwardRef(({ icon, title, description, truncateTitle = false, truncateDescription = false, onClick, actions, showActionsOnlyOnHover = false, actionsPlacement = "auto", color = "gray", iconAvatarVariant: iconAvatarVariantProp, iconAvatarColor: iconAvatarColorProp, size = "default", variant = "soft", className, type = "button", disabled, radius, ...rest }, ref) => {
40
+ const { partStyle } = useStyleAxes({ radius }, ["radius"]);
39
41
  const { onMouseEnter: onMouseEnterProp, onMouseLeave: onMouseLeaveProp, ...domRest } = rest;
40
42
  const interactive = onClick != null;
41
43
  const showActionsSlot = actions != null;
@@ -80,6 +82,7 @@ var IconTextActionCard = React$1.forwardRef(({ icon, title, description, truncat
80
82
  gradientZStyle: false
81
83
  });
82
84
  const surfaceStyleMerged = {
85
+ ...partStyle,
83
86
  ...isArbitraryGradient ? surfaceStyleWithoutGradientBg : styles.containerStyle,
84
87
  ...ringAccentStyle
85
88
  };
@@ -114,7 +117,7 @@ var IconTextActionCard = React$1.forwardRef(({ icon, title, description, truncat
114
117
  children: /* @__PURE__ */ jsxs("div", {
115
118
  ref,
116
119
  "aria-disabled": disabled === true ? true : void 0,
117
- className: cn("relative isolate inline-flex w-full cursor-default items-center overflow-hidden rounded-xl text-left ring-offset-background", variant === "gradient" && "group", disabled && "pointer-events-none opacity-50", s.rowPad, surfaceContainerClass, className),
120
+ className: cn("relative isolate inline-flex w-full cursor-default items-center overflow-hidden rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-xl)))] text-left ring-offset-background", variant === "gradient" && "group", disabled && "pointer-events-none opacity-50", s.rowPad, surfaceContainerClass, className),
118
121
  style: surfaceStyleMerged,
119
122
  ...domRest,
120
123
  children: [gradientLayers, staticBlock]
@@ -126,7 +129,7 @@ var IconTextActionCard = React$1.forwardRef(({ icon, title, description, truncat
126
129
  children: /* @__PURE__ */ jsxs("div", {
127
130
  ref,
128
131
  "aria-disabled": disabled === true ? true : void 0,
129
- className: cn("relative isolate inline-flex w-full max-w-full cursor-default items-center overflow-hidden rounded-xl text-left ring-offset-background", ACTIONS_ROW_CLASS, showActionsSlot && "group", variant === "gradient" && "group", disabled && "pointer-events-none opacity-50", s.rowPad, s.gap, surfaceContainerClass, className),
132
+ className: cn("relative isolate inline-flex w-full max-w-full cursor-default items-center overflow-hidden rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-xl)))] text-left ring-offset-background", ACTIONS_ROW_CLASS, showActionsSlot && "group", variant === "gradient" && "group", disabled && "pointer-events-none opacity-50", s.rowPad, s.gap, surfaceContainerClass, className),
130
133
  style: surfaceStyleMerged,
131
134
  ...domRest,
132
135
  children: [
@@ -144,7 +147,7 @@ var IconTextActionCard = React$1.forwardRef(({ icon, title, description, truncat
144
147
  closeDelay: 100,
145
148
  children: /* @__PURE__ */ jsxs("div", {
146
149
  ref,
147
- className: cn("relative isolate inline-flex w-full max-w-full items-center overflow-hidden rounded-xl ring-offset-background", ACTIONS_ROW_CLASS, ringTransitionClass, showActionsSlot && "group", variant === "gradient" && "group", "focus-within:outline-none hover:ring-2 hover:ring-offset-2 focus-within:ring-2 focus-within:ring-offset-2", shellRingClass, disabled && "pointer-events-none opacity-50", s.rowPad, s.gap, surfaceContainerClass, className),
150
+ className: cn("relative isolate inline-flex w-full max-w-full items-center overflow-hidden rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-xl)))] ring-offset-background", ACTIONS_ROW_CLASS, ringTransitionClass, showActionsSlot && "group", variant === "gradient" && "group", "focus-within:outline-none hover:ring-2 hover:ring-offset-2 focus-within:ring-2 focus-within:ring-offset-2", shellRingClass, disabled && "pointer-events-none opacity-50", s.rowPad, s.gap, surfaceContainerClass, className),
148
151
  style: surfaceStyleMerged,
149
152
  ...domRest,
150
153
  children: [
@@ -175,8 +178,9 @@ var IconTextActionCard = React$1.forwardRef(({ icon, title, description, truncat
175
178
  onClick,
176
179
  onMouseEnter: onMouseEnterProp,
177
180
  onMouseLeave: onMouseLeaveProp,
178
- className: cn("relative isolate inline-flex w-full cursor-pointer items-center overflow-hidden rounded-xl text-left ring-offset-background", ringTransitionClass, variant === "gradient" && "group", "focus-visible:outline-none hover:ring-2 hover:ring-offset-2 focus-visible:ring-2 focus-visible:ring-offset-2", presetRingClasses, "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", s.rowPad, s.gap, surfaceContainerClass, className),
181
+ className: cn("relative isolate inline-flex w-full cursor-pointer items-center overflow-hidden rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-xl)))] text-left ring-offset-background", ringTransitionClass, variant === "gradient" && "group", "focus-visible:outline-none hover:ring-2 hover:ring-offset-2 focus-visible:ring-2 focus-visible:ring-offset-2", presetRingClasses, "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", s.rowPad, s.gap, surfaceContainerClass, className),
179
182
  style: {
183
+ ...partStyle,
180
184
  ...isArbitraryGradient ? surfaceStyleWithoutGradientBg : styles.containerStyle,
181
185
  ...ringAccentStyle
182
186
  },
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { a as IconTextActionCardProps } from '../../icon-text-action-card.props-B2ggncUK.js';
3
+ export { I as IconTextActionCardActionsPlacement, b as IconTextActionCardVariant } from '../../icon-text-action-card.props-B2ggncUK.js';
4
+ import '../../index-BQANnKs9.js';
5
+ import '../../variant-D81RhpbR.js';
6
+ import '../../style-axes-DSQ2DGc5.js';
7
+ import '../../icon-avatar.props-RYtw2eSW.js';
8
+
9
+ declare const IconTextActionCard: React.ForwardRefExoticComponent<IconTextActionCardProps & React.RefAttributes<HTMLDivElement | HTMLButtonElement>>;
10
+
11
+ export { IconTextActionCard, IconTextActionCardProps };
@@ -0,0 +1,2 @@
1
+ import { IconTextActionCard } from "./icon-text-action-card.js";
2
+ export { IconTextActionCard };
@@ -0,0 +1,33 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/identicon/identicon.tsx
4
+ /** Each cell is drawn a touch smaller than its slot, with soft corners, so the pattern reads as tiles. */
5
+ var INSET = .06;
6
+ var CELL = 1 - INSET * 2;
7
+ var CORNER = .16;
8
+ /**
9
+ * A generated avatar: a grid of square cells, the "on" ones drawn in the
10
+ * current text colour on a transparent ground. It takes the cells rather than
11
+ * a name, so the app that owns an identity also owns how it turns into a
12
+ * picture. Scales to whatever box `className` gives it.
13
+ */
14
+ function Identicon({ cells, columns = 5, title, className }) {
15
+ const cols = Math.max(1, Math.floor(columns));
16
+ return /* @__PURE__ */ jsx("svg", {
17
+ viewBox: `0 0 ${cols} ${Math.max(1, Math.ceil(cells.length / cols))}`,
18
+ role: title ? "img" : void 0,
19
+ "aria-label": title,
20
+ "aria-hidden": title ? void 0 : true,
21
+ className: cn("block size-full shrink-0", className),
22
+ fill: "currentColor",
23
+ children: cells.map((on, index) => on ? /* @__PURE__ */ jsx("rect", {
24
+ x: index % cols + INSET,
25
+ y: Math.floor(index / cols) + INSET,
26
+ width: CELL,
27
+ height: CELL,
28
+ rx: CORNER
29
+ }, index) : null)
30
+ });
31
+ }
32
+ //#endregion
33
+ export { Identicon as default };
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+
3
+ interface IdenticonProps {
4
+ /**
5
+ * The pattern, row by row: `true` cells are drawn. Usually 25 (5×5) derived
6
+ * from a stable hash of who it stands for — the derivation is the app's, so
7
+ * one person gets one picture everywhere that app draws them.
8
+ */
9
+ cells: readonly boolean[];
10
+ /** Cells per row. Default 5. */
11
+ columns?: number;
12
+ /** Accessible name. Without one the pattern is decorative (aria-hidden). */
13
+ title?: string;
14
+ /** Size and colour: the cells are drawn in `currentColor` (`size-10 text-primary`). */
15
+ className?: string;
16
+ }
17
+
18
+ /**
19
+ * A generated avatar: a grid of square cells, the "on" ones drawn in the
20
+ * current text colour on a transparent ground. It takes the cells rather than
21
+ * a name, so the app that owns an identity also owns how it turns into a
22
+ * picture. Scales to whatever box `className` gives it.
23
+ */
24
+ declare function Identicon({ cells, columns, title, className }: IdenticonProps): React.JSX.Element;
25
+
26
+ export { Identicon, type IdenticonProps };
@@ -0,0 +1,2 @@
1
+ import Identicon from "./identicon.js";
2
+ export { Identicon };
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+
4
+ declare function parseSvgViewBoxAspectRatio(svg: string): number | undefined;
5
+ declare const illustrationRegistry: readonly [{
6
+ readonly id: "no-search-results";
7
+ readonly svg: string;
8
+ readonly aspectRatio: number;
9
+ }, {
10
+ readonly id: "rm-data-download";
11
+ readonly svg: string;
12
+ readonly aspectRatio: number;
13
+ }, {
14
+ readonly id: "rm-dashboard-update";
15
+ readonly svg: string;
16
+ readonly aspectRatio: number;
17
+ }];
18
+ type IllustrationType = (typeof illustrationRegistry)[number]["id"];
19
+ declare const illustrationsById: Record<IllustrationType, (typeof illustrationRegistry)[number]>;
20
+
21
+ interface IllustrationProps extends Omit<ComponentPropsWithoutRef<"div">, "children" | "dangerouslySetInnerHTML"> {
22
+ type: IllustrationType;
23
+ size?: number;
24
+ /** When set, the SVG is exposed to assistive tech with this label; omit for decorative art. */
25
+ alt?: string;
26
+ /**
27
+ * Plays the illustration's SMIL animations. Off by default: the static
28
+ * resting frame is rendered and every animation element is stripped, so
29
+ * nothing moves on pages that only need a picture. Illustrations without
30
+ * animations are unaffected.
31
+ */
32
+ animated?: boolean;
33
+ }
34
+
35
+ declare const Illustration: React.ForwardRefExoticComponent<IllustrationProps & React.RefAttributes<HTMLDivElement>>;
36
+
37
+ export { Illustration, type IllustrationProps, type IllustrationType, illustrationRegistry, illustrationsById, parseSvgViewBoxAspectRatio };
@@ -0,0 +1,3 @@
1
+ import { illustrationRegistry, illustrationsById, parseSvgViewBoxAspectRatio } from "./illustration-registry.js";
2
+ import { Illustration } from "./illustration.js";
3
+ export { Illustration, illustrationRegistry, illustrationsById, parseSvgViewBoxAspectRatio };