@espressif/dashboard-ui-components 1.11.1 → 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 +1020 -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 +50 -19
  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,85 @@
1
+ import { usePrefersReducedMotion } from "../../../core/hooks/use-prefers-reduced-motion.js";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
3
+ //#region src/components/message-scroller/_hooks/use-follow-bottom.ts
4
+ /**
5
+ * Keeps a conversation at its end while the reader is there: new content
6
+ * scrolls into view; once they scroll up to read (wheel, touch, keys), it
7
+ * stops following until they are back at the end (or ask to). Paused, nothing
8
+ * moves at all (an answer opened for editing stays where the person is
9
+ * looking). Instant under reduced motion. "The end" is a sentinel after the
10
+ * last message.
11
+ */
12
+ function useFollowBottom(root, content, end, paused) {
13
+ const [atEnd, setAtEnd] = useState(true);
14
+ const following = useRef(true);
15
+ const reduced = usePrefersReducedMotion();
16
+ const toEnd = useCallback((smooth) => {
17
+ following.current = true;
18
+ end.current?.scrollIntoView({
19
+ block: "end",
20
+ behavior: smooth && !reduced ? "smooth" : "auto"
21
+ });
22
+ }, [end, reduced]);
23
+ useEffect(() => {
24
+ const sentinel = end.current;
25
+ if (!sentinel) return;
26
+ const observer = new IntersectionObserver(([entry]) => {
27
+ const reached = Boolean(entry?.isIntersecting);
28
+ if (reached) following.current = true;
29
+ setAtEnd(reached);
30
+ }, { root: root.current });
31
+ observer.observe(sentinel);
32
+ return () => observer.disconnect();
33
+ }, [root, end]);
34
+ useEffect(() => {
35
+ const target = root.current;
36
+ if (!target) return;
37
+ function stop() {
38
+ following.current = false;
39
+ }
40
+ function onWheel(event) {
41
+ if (event.deltaY < 0) stop();
42
+ }
43
+ function onKey(event) {
44
+ if ([
45
+ "ArrowUp",
46
+ "PageUp",
47
+ "Home"
48
+ ].includes(event.key)) stop();
49
+ }
50
+ target.addEventListener("wheel", onWheel, { passive: true });
51
+ target.addEventListener("touchmove", stop, { passive: true });
52
+ target.addEventListener("keydown", onKey);
53
+ return () => {
54
+ target.removeEventListener("wheel", onWheel);
55
+ target.removeEventListener("touchmove", stop);
56
+ target.removeEventListener("keydown", onKey);
57
+ };
58
+ }, [root]);
59
+ useEffect(() => {
60
+ const element = content.current;
61
+ if (!element) return;
62
+ let height = element.offsetHeight;
63
+ const box = root.current;
64
+ const observer = new ResizeObserver((changes) => {
65
+ const grew = element.offsetHeight - height;
66
+ height = element.offsetHeight;
67
+ const boxChanged = changes.some((change) => change.target === box);
68
+ if (following.current && !paused) toEnd(!boxChanged && grew <= (box?.clientHeight ?? Infinity));
69
+ });
70
+ observer.observe(element);
71
+ if (box) observer.observe(box);
72
+ return () => observer.disconnect();
73
+ }, [
74
+ root,
75
+ content,
76
+ paused,
77
+ toEnd
78
+ ]);
79
+ return {
80
+ atEnd,
81
+ toEnd: () => toEnd(true)
82
+ };
83
+ }
84
+ //#endregion
85
+ export { useFollowBottom };
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface MessageScrollerProps {
5
+ children: ReactNode;
6
+ /** The log's accessible name. */
7
+ label: string;
8
+ /** The jump-to-latest button's name, shown once the reader has scrolled up. */
9
+ jumpLabel: string;
10
+ /** Hold still: no following while true (an answer is open for editing). */
11
+ paused?: boolean;
12
+ /** Classes for the box (it scrolls itself: give it a height, or a flex parent). */
13
+ className?: string;
14
+ /** Classes for the column inside (width, padding). */
15
+ contentClassName?: string;
16
+ }
17
+
18
+ /**
19
+ * A conversation's scrolling area (shadcn's Message Scroller, on the
20
+ * library's tokens). It follows new messages while the reader is at the end,
21
+ * stops when they scroll up to read, and offers a round "jump to latest"
22
+ * button until they are back. A `log` for assistive technology, so new
23
+ * messages are announced politely. It scrolls in `ScrollArea`: a thin overlay
24
+ * thumb that appears while the pointer is over the thread, with no gutter
25
+ * beside the text.
26
+ */
27
+ declare function MessageScroller({ children, label, jumpLabel, paused, className, contentClassName }: MessageScrollerProps): React.JSX.Element;
28
+
29
+ export { MessageScroller, type MessageScrollerProps };
@@ -0,0 +1,2 @@
1
+ import { MessageScroller } from "./message-scroller.js";
2
+ export { MessageScroller };
@@ -0,0 +1,65 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { Button } from "../button/button.js";
3
+ import { ScrollArea } from "../../core/scroll-area.js";
4
+ import { useFollowBottom } from "./_hooks/use-follow-bottom.js";
5
+ import { useLayoutEffect, useRef } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { ArrowDown } from "lucide-react";
8
+ //#region src/components/message-scroller/message-scroller.tsx
9
+ var VIEWPORT = "[data-radix-scroll-area-viewport]";
10
+ var THUMB_ON_HOVER = "[&_[data-orientation=vertical]]:opacity-0 [&_[data-orientation=vertical]]:transition-opacity [&_[data-orientation=vertical]]:duration-200 hover:[&_[data-orientation=vertical]]:opacity-100 focus-within:[&_[data-orientation=vertical]]:opacity-100 motion-reduce:[&_[data-orientation=vertical]]:transition-none [&_[data-orientation=vertical]>div]:bg-foreground/25";
11
+ /**
12
+ * A conversation's scrolling area (shadcn's Message Scroller, on the
13
+ * library's tokens). It follows new messages while the reader is at the end,
14
+ * stops when they scroll up to read, and offers a round "jump to latest"
15
+ * button until they are back. A `log` for assistive technology, so new
16
+ * messages are announced politely. It scrolls in `ScrollArea`: a thin overlay
17
+ * thumb that appears while the pointer is over the thread, with no gutter
18
+ * beside the text.
19
+ */
20
+ function MessageScroller({ children, label, jumpLabel, paused = false, className, contentClassName }) {
21
+ const area = useRef(null);
22
+ const viewport = useRef(null);
23
+ const content = useRef(null);
24
+ const end = useRef(null);
25
+ useLayoutEffect(() => {
26
+ viewport.current = area.current?.querySelector(VIEWPORT) ?? null;
27
+ }, []);
28
+ const { atEnd, toEnd } = useFollowBottom(viewport, content, end, paused);
29
+ return /* @__PURE__ */ jsxs("div", {
30
+ "data-slot": "message-scroller",
31
+ className: cn("relative min-h-0 flex-1", className),
32
+ children: [/* @__PURE__ */ jsx(ScrollArea, {
33
+ ref: area,
34
+ type: "auto",
35
+ role: "log",
36
+ "aria-label": label,
37
+ "aria-relevant": "additions",
38
+ className: cn("h-full [&_[data-radix-scroll-area-viewport]]:overscroll-contain", THUMB_ON_HOVER),
39
+ children: /* @__PURE__ */ jsxs("div", {
40
+ ref: content,
41
+ className: contentClassName,
42
+ children: [children, /* @__PURE__ */ jsx("div", {
43
+ ref: end,
44
+ "aria-hidden": true,
45
+ className: "h-px"
46
+ })]
47
+ })
48
+ }), !atEnd && /* @__PURE__ */ jsx("div", {
49
+ className: "pointer-events-none absolute inset-x-0 bottom-3 z-20 flex justify-center",
50
+ children: /* @__PURE__ */ jsx(Button, {
51
+ type: "button",
52
+ size: "icon",
53
+ radius: "full",
54
+ variant: "outline",
55
+ color: "gray",
56
+ onClick: toEnd,
57
+ "aria-label": jumpLabel,
58
+ startIcon: /* @__PURE__ */ jsx(ArrowDown, { className: "h-4 w-4" }),
59
+ className: "pointer-events-auto bg-card shadow-md"
60
+ })
61
+ })]
62
+ });
63
+ }
64
+ //#endregion
65
+ export { MessageScroller };
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+ import { C as Color } from '../../index-BQANnKs9.js';
4
+
5
+ /** `default` bars sit apart; `thin` packs many (a position among dozens) with hairline gaps. */
6
+ type MiniBarChartDensity = "default" | "thin";
7
+ interface MiniBarChartProps extends Omit<HTMLAttributes<HTMLDivElement>, "color" | "children"> {
8
+ /** One bar per value, left to right. Negative values draw as zero. */
9
+ values: readonly number[];
10
+ /**
11
+ * What the chart shows, read out in place of the bars ("Likes per build,
12
+ * oldest to newest: 1, 3, 0"). Required: the bars themselves are hidden from
13
+ * assistive technology.
14
+ */
15
+ label: string;
16
+ /** The bar to emphasise; the others fade back. */
17
+ highlightIndex?: number;
18
+ /** Bar colour. Default `primary`. `currentColor` follows the text colour (a chart on a filled tile). */
19
+ color?: Color;
20
+ density?: MiniBarChartDensity;
21
+ /** Height in CSS pixels. Default 32. */
22
+ height?: number;
23
+ /**
24
+ * What a bar says on hover ("Minecraft · 31 flashes"). Each bar then takes
25
+ * the chart's full height as its hover target and brightens while hovered.
26
+ * Return `null` for a bar with nothing to say. A visual extra only: `label`
27
+ * remains what assistive technology reads.
28
+ */
29
+ barTooltip?: (value: number, index: number) => ReactNode;
30
+ }
31
+
32
+ /**
33
+ * A row of bars with no axes, sized to sit inside a card (`StatCard`'s
34
+ * `visual`): the shape of a few numbers at a glance. The tallest value fills
35
+ * the height; a zero draws as a faint stub rather than nothing. With
36
+ * `barTooltip`, each bar names itself on hover.
37
+ */
38
+ declare const MiniBarChart: React.ForwardRefExoticComponent<MiniBarChartProps & React.RefAttributes<HTMLDivElement>>;
39
+
40
+ export { MiniBarChart, type MiniBarChartDensity, type MiniBarChartProps };
@@ -0,0 +1,2 @@
1
+ import { MiniBarChart } from "./mini-bar-chart.js";
2
+ export { MiniBarChart };
@@ -0,0 +1,93 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { resolveColor } from "../../utils/color.js";
3
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../../core/animate-ui/components/animate/tooltip.js";
4
+ import * as React$1 from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/components/mini-bar-chart/mini-bar-chart.tsx
7
+ var DEFAULT_HEIGHT_PX = 32;
8
+ /** A zero is a short stub, so "nothing yet" still reads as a bar. */
9
+ var STUB_SHARE = .12;
10
+ var DENSITY_CLASS = {
11
+ default: {
12
+ row: "gap-1",
13
+ bar: "rounded-sm"
14
+ },
15
+ thin: {
16
+ row: "gap-px",
17
+ bar: "rounded-[1px]"
18
+ }
19
+ };
20
+ function Bar({ share, faded, highlighted, className, style }) {
21
+ return /* @__PURE__ */ jsx("span", {
22
+ "aria-hidden": true,
23
+ "data-highlighted": highlighted || void 0,
24
+ className: cn("w-full min-w-px transition-[height,opacity] duration-300 motion-reduce:transition-none", className, faded && "opacity-25 group-hover/bar:opacity-60"),
25
+ style: {
26
+ ...style,
27
+ height: `${Math.max(share, STUB_SHARE) * 100}%`
28
+ }
29
+ });
30
+ }
31
+ /**
32
+ * A row of bars with no axes, sized to sit inside a card (`StatCard`'s
33
+ * `visual`): the shape of a few numbers at a glance. The tallest value fills
34
+ * the height; a zero draws as a faint stub rather than nothing. With
35
+ * `barTooltip`, each bar names itself on hover.
36
+ */
37
+ var MiniBarChart = React$1.forwardRef(function MiniBarChart({ values, label, highlightIndex, color = "primary", density = "default", height = DEFAULT_HEIGHT_PX, barTooltip, className, style, ...props }, ref) {
38
+ const max = Math.max(0, ...values);
39
+ const fill = color === "currentColor" ? {
40
+ className: "bg-current",
41
+ style: void 0
42
+ } : resolveColor(color, "bg");
43
+ const d = DENSITY_CLASS[density];
44
+ const bars = values.map((raw, index) => {
45
+ const value = Math.max(0, raw);
46
+ const empty = value === 0;
47
+ const bar = /* @__PURE__ */ jsx(Bar, {
48
+ share: empty || max === 0 ? STUB_SHARE : value / max,
49
+ faded: empty || highlightIndex !== void 0 && index !== highlightIndex,
50
+ highlighted: index === highlightIndex,
51
+ className: cn(d.bar, fill.className),
52
+ style: fill.style
53
+ });
54
+ const tip = barTooltip?.(value, index);
55
+ if (tip == null) return /* @__PURE__ */ jsx("span", {
56
+ "aria-hidden": true,
57
+ className: "flex h-full min-w-px flex-1 items-end",
58
+ children: bar
59
+ }, index);
60
+ return /* @__PURE__ */ jsxs(Tooltip, {
61
+ side: "top",
62
+ sideOffset: 6,
63
+ children: [/* @__PURE__ */ jsx(TooltipTrigger, {
64
+ asChild: true,
65
+ children: /* @__PURE__ */ jsx("span", {
66
+ "aria-hidden": true,
67
+ className: "group/bar flex h-full min-w-px flex-1 cursor-default items-end",
68
+ children: bar
69
+ })
70
+ }), /* @__PURE__ */ jsx(TooltipContent, { children: tip })]
71
+ }, index);
72
+ });
73
+ const chart = /* @__PURE__ */ jsx("div", {
74
+ ref,
75
+ role: "img",
76
+ "aria-label": label,
77
+ className: cn("flex w-full items-end", d.row, className),
78
+ style: {
79
+ ...style,
80
+ height
81
+ },
82
+ ...props,
83
+ children: bars
84
+ });
85
+ return barTooltip ? /* @__PURE__ */ jsx(TooltipProvider, {
86
+ openDelay: 0,
87
+ closeDelay: 0,
88
+ children: chart
89
+ }) : chart;
90
+ });
91
+ MiniBarChart.displayName = "MiniBarChart";
92
+ //#endregion
93
+ export { MiniBarChart };
@@ -0,0 +1,43 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { A as AlertColor } from '../../alert.props-CcKo49Rb.js';
4
+ import { S as Size } from '../../index-BQANnKs9.js';
5
+ import '../../variant-D81RhpbR.js';
6
+ import '../../style-axes-DSQ2DGc5.js';
7
+ import '../../icon-avatar.props-RYtw2eSW.js';
8
+ import '../../icon-text-action-card.props-B2ggncUK.js';
9
+
10
+ interface MonospaceContentProps {
11
+ title?: ReactNode;
12
+ value: string;
13
+ /** Surface color of the value block. Also accepts the brand `"silver"` value. */
14
+ color?: AlertColor;
15
+ /**
16
+ * Hide the value behind mask characters — for secrets such as API keys or passwords.
17
+ * Copying still puts the real value on the clipboard.
18
+ *
19
+ * Masking is presentational: the value stays in the DOM, so this is a UI guard, not a
20
+ * security boundary.
21
+ *
22
+ * @default false
23
+ */
24
+ mask?: boolean;
25
+ /**
26
+ * Show an eye toggle that reveals the masked value. Only meaningful when `mask` is `true`;
27
+ * set to `false` to keep the value permanently masked while still allowing copy.
28
+ *
29
+ * @default true
30
+ */
31
+ allowUnmask?: boolean;
32
+ /**
33
+ * Scale of the title, value text, surface padding and action buttons.
34
+ *
35
+ * @default "default"
36
+ */
37
+ size?: Size;
38
+ className?: string;
39
+ }
40
+
41
+ declare const MonospaceContent: React.ForwardRefExoticComponent<MonospaceContentProps & React.RefAttributes<HTMLDivElement>>;
42
+
43
+ export { MonospaceContent, type MonospaceContentProps };
@@ -0,0 +1,2 @@
1
+ import { MonospaceContent } from "./monospace-content.js";
2
+ export { MonospaceContent };
@@ -2,8 +2,8 @@ import { cn } from "../../utils/cn.js";
2
2
  import { buttonVariants } from "../../core/animate-ui/components/buttons/copy.js";
3
3
  import { inputLabelClassName } from "../../core/field-label-row.js";
4
4
  import { Typography } from "../typography/typography.js";
5
- import { CopiableText } from "../copiable-text/copiable-text.js";
6
5
  import { Alert } from "../alert/alert.js";
6
+ import { CopiableText } from "../copiable-text/copiable-text.js";
7
7
  import * as React$1 from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Eye, EyeOff } from "lucide-react";
@@ -0,0 +1,148 @@
1
+ import * as React from 'react';
2
+ import { ReactNode, RefObject, ElementType } from 'react';
3
+ import { C as Color } from '../../index-BQANnKs9.js';
4
+
5
+ interface NavBarMenuItem {
6
+ /** Unique identifier, used as React key and for active-state matching. */
7
+ id: string;
8
+ /** Display label for the menu item. */
9
+ label: string;
10
+ /**
11
+ * Destination path for link-type items. When provided, the item renders as
12
+ * a link (via `linkComponent` or a plain `<a>`). When omitted, the item
13
+ * renders as a `<button>`.
14
+ */
15
+ href?: string;
16
+ /** Click handler. For items that also have `href`, fires alongside navigation. */
17
+ onClick?: () => void;
18
+ /**
19
+ * Rich content panel displayed in a full-width dropdown below the navbar
20
+ * when this item is activated. Items with `details` show a ChevronDown icon.
21
+ *
22
+ * The panel continues the bar's frame: it takes the bar's side border (or
23
+ * its bottom border when it has none) and rounds off with the bar's corner
24
+ * radius, while the bar's bottom corners square off. Put a border or radius
25
+ * on the NavBar itself (`className`) for the panel to continue it; a frame
26
+ * drawn by a wrapper element is not continued. Items collapsed into "More"
27
+ * open the same panel. In the mobile drawer, the details open as a sub-view.
28
+ */
29
+ details?: ReactNode;
30
+ /** Icon rendered before the label. */
31
+ icon?: ReactNode;
32
+ /** When true, the item is rendered as disabled (non-interactive, dimmed). */
33
+ disabled?: boolean;
34
+ }
35
+ type NavBarPosition = 'sticky' | 'fixed' | 'static';
36
+ interface NavBarProps {
37
+ /** Logo element rendered on the left side of the navbar. */
38
+ logo?: ReactNode;
39
+ /** Array of menu item configurations rendered in the center. */
40
+ items: NavBarMenuItem[];
41
+ /** Content rendered on the right side (e.g. account menu, search, CTA buttons). */
42
+ rightContent?: ReactNode;
43
+ /**
44
+ * Controlled: the `id` of the currently active menu item. When set, the
45
+ * component is fully controlled — `defaultActiveId` is ignored.
46
+ */
47
+ activeId?: string;
48
+ /** Uncontrolled: the `id` of the initially active menu item. */
49
+ defaultActiveId?: string;
50
+ /** Fires when a menu item is activated (clicked or navigated). */
51
+ onActiveChange?: (id: string) => void;
52
+ /**
53
+ * Controlled: the `id` of the menu item whose details panel is open,
54
+ * or `null` when no panel is open. When set, `onDetailsPanelChange`
55
+ * must also be provided.
56
+ */
57
+ openDetailsId?: string | null;
58
+ /** Fires when the details panel should open or close. */
59
+ onDetailsPanelChange?: (id: string | null) => void;
60
+ /**
61
+ * How a desktop item opens its details panel.
62
+ * - `"click"` (default): the item is a button; a click toggles the panel.
63
+ * - `"hover"`: pointing at the item opens its panel after a short pause,
64
+ * and it stays open while the pointer is over the item or the panel. An
65
+ * item that also has `href` stays a link, so a click goes there. From the
66
+ * keyboard, ArrowDown on the item opens the panel and moves focus into it;
67
+ * Escape closes it and returns focus to the item. Touch never opens on
68
+ * hover. Items in "More" and the mobile drawer keep opening on click.
69
+ */
70
+ openDetailsOn?: 'click' | 'hover';
71
+ /**
72
+ * Positioning mode.
73
+ * - `"sticky"` (default): sticks to the top on scroll via `position: sticky`.
74
+ * - `"fixed"`: fixed to the viewport top (consumer must add padding-top to body).
75
+ * - `"static"`: flows normally in the document.
76
+ */
77
+ position?: NavBarPosition;
78
+ /** Height of the navbar. Defaults to `"var(--espd-navbar-height)"` (3.5rem). */
79
+ height?: string;
80
+ /**
81
+ * When true, navbar smoothly transforms from full-width to a floating
82
+ * rounded pill as the user scrolls down, and back on scroll up.
83
+ * Disabled on mobile. Default `false`.
84
+ */
85
+ morphOnScroll?: boolean;
86
+ /** Scroll distance in pixels to trigger the morph transition. Default `50`. */
87
+ morphScrollThreshold?: number;
88
+ /**
89
+ * Ref to a scrollable container element for the morph trigger. When provided,
90
+ * the scroll hook listens to this element's `scrollTop` instead of `window.scrollY`.
91
+ * Useful when the navbar is inside a scrollable panel rather than the page itself.
92
+ */
93
+ morphScrollContainer?: RefObject<HTMLElement | null>;
94
+ /** Label for the "More" overflow trigger button. Default `"More"`. */
95
+ moreLabel?: string;
96
+ /**
97
+ * Router-aware Link component for internal navigation. Receives `to`,
98
+ * `className`, `children`, plus any additional HTML anchor attributes.
99
+ * If omitted, items with `href` render as plain `<a>` elements.
100
+ */
101
+ linkComponent?: ElementType;
102
+ /** Title shown in the mobile Sheet header. Falls back to no title. */
103
+ mobileMenuTitle?: string;
104
+ /**
105
+ * Custom trigger element for the mobile hamburger menu. When provided,
106
+ * replaces the default hamburger icon button.
107
+ */
108
+ mobileMenuTrigger?: ReactNode;
109
+ /**
110
+ * Accent color applied to the active item and details-panel highlights.
111
+ * Accepts any preset token (`"primary"`, `"error"`, …) or an arbitrary
112
+ * CSS color string (hex, rgb, var(…)). Default `"primary"`.
113
+ */
114
+ color?: Color;
115
+ /** Additional class names merged onto the root `<nav>` element. */
116
+ className?: string;
117
+ /**
118
+ * Class names merged onto the root `<nav>` only while the page is scrolled
119
+ * to the top (within `morphScrollThreshold`) — for a page that opens with a
120
+ * full-bleed hero the bar should melt into, e.g. `"dark border-transparent"`
121
+ * over a dark band. Past the threshold (and once morphed) the bar returns to
122
+ * its normal look. Works with or without `morphOnScroll`, on mobile too.
123
+ *
124
+ * With `morphOnScroll`, the class returns the moment the page is back at
125
+ * the top, while the pill is still widening and sliding up into place —
126
+ * so paint the hero's colour behind the bar as well (the hero extending
127
+ * under it, or a backdrop at the top of the page). Otherwise the page
128
+ * shows around the re-themed bar for that moment.
129
+ *
130
+ * An open details panel takes the same classes while they apply, so a
131
+ * `dark` bar hangs a dark panel even though the panel is portaled out of
132
+ * the bar's scope. Hanging from the full-width bar, the panel is opaque.
133
+ */
134
+ topClassName?: string;
135
+ /**
136
+ * The bar's background while `topClassName` applies: `"translucent"`
137
+ * (default — the usual frosted 80%) or `"solid"`, fully opaque, so a bar
138
+ * re-themed by `topClassName` matches the hero under it exactly instead of
139
+ * letting the page behind it tint it.
140
+ */
141
+ topBackground?: "translucent" | "solid";
142
+ /** Additional class names merged onto the menu items container. */
143
+ itemsClassName?: string;
144
+ }
145
+
146
+ declare function NavBar({ logo, items, rightContent, activeId: activeIdProp, defaultActiveId, onActiveChange, openDetailsId: openDetailsIdProp, onDetailsPanelChange, openDetailsOn, position, height, morphOnScroll, morphScrollThreshold, morphScrollContainer, moreLabel, linkComponent, color, mobileMenuTitle, mobileMenuTrigger, className, topClassName, topBackground, itemsClassName, }: NavBarProps): React.JSX.Element;
147
+
148
+ export { NavBar, type NavBarMenuItem, type NavBarPosition, type NavBarProps };
@@ -0,0 +1,2 @@
1
+ import { NavBar } from "./nav-bar.js";
2
+ export { NavBar };