@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,4 @@
1
+ import { ResizableGroup } from "./resizable-group.js";
2
+ import { ResizablePanel } from "./resizable-panel.js";
3
+ import { ResizableSeparator } from "./resizable-separator.js";
4
+ export { ResizableGroup, ResizablePanel, ResizableSeparator };
@@ -0,0 +1,23 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Group } from "react-resizable-panels";
4
+ //#region src/components/resizable/resizable-group.tsx
5
+ /**
6
+ * A row or column of panels the person can resize by dragging the separators
7
+ * between them (react-resizable-panels, which also makes every separator a
8
+ * keyboard control). The group fills its parent; give the parent a height.
9
+ * Compose with `ResizablePanel` and `ResizableSeparator`.
10
+ */
11
+ function ResizableGroup({ orientation, children, defaultLayout, onLayoutChanged, id, className }) {
12
+ return /* @__PURE__ */ jsx(Group, {
13
+ id,
14
+ orientation,
15
+ defaultLayout,
16
+ onLayoutChanged,
17
+ "data-slot": "resizable-group",
18
+ className: cn("flex h-full min-h-0 w-full min-w-0", className),
19
+ children
20
+ });
21
+ }
22
+ //#endregion
23
+ export { ResizableGroup };
@@ -0,0 +1,28 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Panel } from "react-resizable-panels";
4
+ //#region src/components/resizable/resizable-panel.tsx
5
+ /**
6
+ * One panel of a `ResizableGroup`. It clips its content, so what is inside
7
+ * scrolls itself (give it `h-full min-h-0`). react-resizable-panels writes
8
+ * `overflow: auto` inline on every panel, which puts a native scrollbar on
9
+ * the panel the moment its content runs a pixel over; `overflow` is the one
10
+ * inline style it allows overriding, and it takes `!important` to win.
11
+ */
12
+ function ResizablePanel({ id, children, collapsible, collapsedSize, collapsedThreshold, defaultSize, minSize, maxSize, panelRef, className }) {
13
+ return /* @__PURE__ */ jsx(Panel, {
14
+ id,
15
+ collapsible,
16
+ collapsedSize,
17
+ collapsedThreshold,
18
+ defaultSize,
19
+ minSize,
20
+ maxSize,
21
+ panelRef,
22
+ "data-slot": "resizable-panel",
23
+ className: cn("min-h-0 min-w-0 overflow-clip!", className),
24
+ children
25
+ });
26
+ }
27
+ //#endregion
28
+ export { ResizablePanel };
@@ -0,0 +1,24 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Separator } from "react-resizable-panels";
4
+ //#region src/components/resizable/resizable-separator.tsx
5
+ /**
6
+ * The handle between two panels: a hairline on the page, a wider strip to the
7
+ * pointer, lit in the primary colour while it is pointed at, held or focused.
8
+ * Keyboard: arrows step, Home/End go to the ends, Enter collapses a
9
+ * collapsible neighbour (react-resizable-panels' own behaviour).
10
+ */
11
+ function ResizableSeparator({ label, orientation, className }) {
12
+ const upright = orientation === "horizontal";
13
+ return /* @__PURE__ */ jsx(Separator, {
14
+ "aria-label": label,
15
+ "data-slot": "resizable-separator",
16
+ className: cn("group/separator relative shrink-0 outline-none", upright ? "w-1.5 cursor-col-resize" : "h-1.5 cursor-row-resize", className),
17
+ children: /* @__PURE__ */ jsx("span", {
18
+ "aria-hidden": true,
19
+ className: cn("absolute bg-border transition-colors duration-150 group-hover/separator:bg-primary group-focus-visible/separator:bg-primary group-active/separator:bg-primary motion-reduce:transition-none", upright ? "inset-y-0 left-1/2 w-px -translate-x-1/2" : "inset-x-0 top-1/2 h-px -translate-y-1/2")
20
+ })
21
+ });
22
+ }
23
+ //#endregion
24
+ export { ResizableSeparator };
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface RevealProps {
5
+ /** The section has scrolled into view. */
6
+ revealed: boolean;
7
+ /** Its place in the entrance, 0 first; each one starts a beat later. */
8
+ order: 0 | 1 | 2 | 3;
9
+ /** Arrive slightly small too, and settle to full size (a card). */
10
+ grow?: boolean;
11
+ className?: string;
12
+ children: ReactNode;
13
+ }
14
+
15
+ /**
16
+ * One part of a section's entrance: it rises into place and fades in when
17
+ * `revealed` turns true (the section first scrolled into view — pair it with
18
+ * `useIsInView` or an observer of your own). Uniform motion, so Tailwind
19
+ * utilities on library tokens; under reduced motion it is simply there.
20
+ */
21
+ declare function Reveal({ revealed, order, grow, className, children }: RevealProps): React.JSX.Element;
22
+
23
+ export { Reveal, type RevealProps };
@@ -0,0 +1,2 @@
1
+ import { Reveal } from "./reveal.js";
2
+ export { Reveal };
@@ -0,0 +1,24 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/reveal/reveal.tsx
4
+ var DELAY = [
5
+ "delay-0",
6
+ "delay-150",
7
+ "delay-300",
8
+ "delay-450"
9
+ ];
10
+ /**
11
+ * One part of a section's entrance: it rises into place and fades in when
12
+ * `revealed` turns true (the section first scrolled into view — pair it with
13
+ * `useIsInView` or an observer of your own). Uniform motion, so Tailwind
14
+ * utilities on library tokens; under reduced motion it is simply there.
15
+ */
16
+ function Reveal({ revealed, order, grow = false, className, children }) {
17
+ return /* @__PURE__ */ jsx("div", {
18
+ "data-slot": "reveal",
19
+ className: cn("transition duration-700 ease-emphasized motion-reduce:transition-none", DELAY[order], revealed ? "translate-y-0 scale-100 opacity-100" : cn("translate-y-8 opacity-0", grow && "scale-97"), className),
20
+ children
21
+ });
22
+ }
23
+ //#endregion
24
+ export { Reveal };
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
3
+
4
+ type ScrollAreaOrientation = "vertical" | "horizontal" | "both";
5
+ type ScrollAreaProps = React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> & {
6
+ /**
7
+ * Which directions scroll. Default `"vertical"`: content is kept to the
8
+ * area's width, so wide children (tables, code, scrolling tab strips) use
9
+ * their own horizontal scrolling instead of stretching past the edge and
10
+ * being clipped. `"horizontal"` and `"both"` let content grow wider than the
11
+ * area and add the matching scrollbar.
12
+ */
13
+ orientation?: ScrollAreaOrientation;
14
+ };
15
+ declare const ScrollArea: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
16
+ /**
17
+ * Which directions scroll. Default `"vertical"`: content is kept to the
18
+ * area's width, so wide children (tables, code, scrolling tab strips) use
19
+ * their own horizontal scrolling instead of stretching past the edge and
20
+ * being clipped. `"horizontal"` and `"both"` let content grow wider than the
21
+ * area and add the matching scrollbar.
22
+ */
23
+ orientation?: ScrollAreaOrientation;
24
+ } & React.RefAttributes<HTMLDivElement>>;
25
+ declare const ScrollBar: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
26
+
27
+ export { ScrollArea, type ScrollAreaOrientation, type ScrollAreaProps, ScrollBar };
@@ -0,0 +1,2 @@
1
+ import { ScrollArea, ScrollBar } from "../../core/scroll-area.js";
2
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,58 @@
1
+ import * as React from 'react';
2
+ import { k as StyleAxisProps } from '../../style-axes-DSQ2DGc5.js';
3
+
4
+ interface ScrollableSectionsProps extends React.ComponentPropsWithoutRef<"div"> {
5
+ /** Initial section id; scrolls into view without animation on mount. */
6
+ defaultValue?: string;
7
+ /**
8
+ * Optional override for which element receives scroll events for scroll-spy.
9
+ * By default the component listens on every vertically scrollable ancestor of
10
+ * the root (plus `window`), so shells with `overflow-y: auto` on `<main>` work
11
+ * without wiring a ref. Pass this when you need a single specific scrollport or
12
+ * auto-detection picks the wrong container.
13
+ */
14
+ scrollRootRef?: React.RefObject<HTMLElement | null>;
15
+ /**
16
+ * CSS length applied as `top` on the sticky tab strip (desktop) and on the sticky
17
+ * section select (mobile).
18
+ * Increase this when the tabs render inside a shell that already has a sticky
19
+ * header at `top: 0` — pass a value tall enough to clear that header,
20
+ * e.g. `"calc(var(--espd-shell-header-height, var(--espd-header-height)) + 8rem)"`. Defaults to `"1rem"`.
21
+ *
22
+ * Note: an ancestor with `overflow: hidden` disables `position: sticky`, so the
23
+ * strip and select only stick when the scrolling ancestor is the page or a
24
+ * container with `overflow-y: auto`.
25
+ */
26
+ stickyTop?: string;
27
+ }
28
+ interface ScrollableSectionsTabsProps extends React.ComponentPropsWithoutRef<"div">, Pick<StyleAxisProps, "radius" | "border"> {
29
+ }
30
+ interface ScrollableSectionsTabProps extends React.ComponentPropsWithoutRef<"div"> {
31
+ id: string;
32
+ /** Shown in the mobile select when `children` is not a plain string. */
33
+ label?: string;
34
+ }
35
+ interface ScrollableSectionsContentProps extends React.ComponentPropsWithoutRef<"div"> {
36
+ id: string;
37
+ }
38
+
39
+ declare function ScrollableSectionsRoot({ className, children, defaultValue, scrollRootRef, stickyTop, style, ...rest }: ScrollableSectionsProps): React.JSX.Element;
40
+ declare function ScrollableSectionsTabs({ className, children, radius, border, style, ...rest }: ScrollableSectionsTabsProps): React.JSX.Element;
41
+ declare namespace ScrollableSectionsTabs {
42
+ var displayName: string;
43
+ }
44
+ declare function ScrollableSectionsTab(_props: ScrollableSectionsTabProps): null;
45
+ declare namespace ScrollableSectionsTab {
46
+ var displayName: string;
47
+ }
48
+ declare function ScrollableSectionsContent({ id, className, children, ...rest }: ScrollableSectionsContentProps): React.JSX.Element;
49
+ declare namespace ScrollableSectionsContent {
50
+ var displayName: string;
51
+ }
52
+ declare const ScrollableSections: typeof ScrollableSectionsRoot & {
53
+ Tabs: typeof ScrollableSectionsTabs;
54
+ Tab: typeof ScrollableSectionsTab;
55
+ Content: typeof ScrollableSectionsContent;
56
+ };
57
+
58
+ export { ScrollableSections, type ScrollableSectionsContentProps, type ScrollableSectionsProps, type ScrollableSectionsTabProps, type ScrollableSectionsTabsProps };
@@ -0,0 +1,2 @@
1
+ import { ScrollableSections } from "./scrollable-sections.js";
2
+ export { ScrollableSections };
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../../utils/cn.js";
3
+ import { useStyleAxes } from "../../utils/style-axes.js";
3
4
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../../core/select.js";
4
5
  import { Tabs, TabsList, TabsTrigger } from "../../core/animate-ui/components/animate/tabs.js";
5
6
  import * as React$1 from "react";
@@ -201,7 +202,12 @@ function ScrollableSectionsRoot({ className, children, defaultValue, scrollRootR
201
202
  })
202
203
  });
203
204
  }
204
- function ScrollableSectionsTabs({ className, children, ...rest }) {
205
+ function ScrollableSectionsTabs({ className, children, radius, border, style, ...rest }) {
206
+ const axes = useStyleAxes({
207
+ radius,
208
+ border,
209
+ style
210
+ }, ["radius", "border"]);
205
211
  const { activeId, selectSection, setTabsItems } = useScrollableSections();
206
212
  const tabNodes = React$1.useMemo(() => React$1.Children.toArray(children).filter(isTabElement), [children]);
207
213
  const items = React$1.useMemo(() => tabNodes.map((node) => {
@@ -215,12 +221,14 @@ function ScrollableSectionsTabs({ className, children, ...rest }) {
215
221
  setTabsItems(items);
216
222
  }, [items, setTabsItems]);
217
223
  if (tabNodes.length === 0) return /* @__PURE__ */ jsx("div", {
218
- className: cn("rounded-lg border border-border p-2", className),
224
+ className: cn("rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-lg)))] border-[length:var(--espd-own-border-width,var(--espd-border-width-surface,1px))] border-border p-2", className),
225
+ style: axes.style,
219
226
  ...rest
220
227
  });
221
228
  const tabValue = activeId && items.some((i) => i.id === activeId) ? activeId : items[0]?.id ?? "";
222
229
  return /* @__PURE__ */ jsx("div", {
223
- className: cn("rounded-lg border border-border p-2", className),
230
+ className: cn("rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-lg)))] border-[length:var(--espd-own-border-width,var(--espd-border-width-surface,1px))] border-border p-2", className),
231
+ style: axes.style,
224
232
  ...rest,
225
233
  children: /* @__PURE__ */ jsx(Tabs, {
226
234
  value: tabValue,
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ import { InputHTMLAttributes } from 'react';
3
+ import { S as Size } from '../../index-BQANnKs9.js';
4
+ import { k as StyleAxisProps } from '../../style-axes-DSQ2DGc5.js';
5
+
6
+ /**
7
+ * What names the text field. A search box usually has no visible label, so
8
+ * pass `aria-label` (or point `aria-labelledby` at a heading, or `id` at a
9
+ * `<label htmlFor>`); the placeholder is not an accessible name everywhere.
10
+ * These go to the `<input>`, not the wrapper.
11
+ */
12
+ type SearchBoxInputProps = Pick<InputHTMLAttributes<HTMLInputElement>, "id" | "name" | "aria-label" | "aria-labelledby" | "aria-describedby">;
13
+ interface SearchBoxProps extends Pick<StyleAxisProps, "radius" | "border">, SearchBoxInputProps {
14
+ placeholder?: string;
15
+ /**
16
+ * The text in the box, controlled. Pass it with `onValueChange` when
17
+ * something outside the box changes the search (a "Clear all" button, the
18
+ * URL). Omit it and the box keeps its own text, starting at `defaultValue`.
19
+ */
20
+ value?: string;
21
+ /** The starting text of an uncontrolled box. Ignored when `value` is set. */
22
+ defaultValue?: string;
23
+ onSearch: (value: string) => void;
24
+ onClear: () => void;
25
+ onValueChange?: (value: string) => void;
26
+ size?: Size;
27
+ className?: string;
28
+ }
29
+
30
+ declare function SearchBox({ placeholder, value: controlledValue, defaultValue, onSearch, onClear, onValueChange, size, className, radius, border, id, name, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, }: SearchBoxProps): React.JSX.Element;
31
+
32
+ export { SearchBox, type SearchBoxProps };
@@ -0,0 +1,2 @@
1
+ import SearchBox from "./search-box.js";
2
+ export { SearchBox };
@@ -1,12 +1,21 @@
1
1
  import { cn } from "../../utils/cn.js";
2
+ import { useStyleAxes } from "../../utils/style-axes.js";
2
3
  import { Button } from "../button/button.js";
3
4
  import { outlineSearchShellClasses, searchFieldContainerSizeClasses, searchFieldIconSizeClasses, searchFieldInputTextClasses } from "../search-field-shell.js";
4
5
  import { useState } from "react";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
7
  import { Search, X } from "lucide-react";
7
8
  //#region src/components/search-box/search-box.tsx
8
- function SearchBox({ placeholder, onSearch, onClear, onValueChange, size = "default", className }) {
9
- const [value, setValue] = useState("");
9
+ function SearchBox({ placeholder, value: controlledValue, defaultValue = "", onSearch, onClear, onValueChange, size = "default", className, radius, border, id, name, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy }) {
10
+ const axes = useStyleAxes({
11
+ radius,
12
+ border
13
+ }, ["radius", "border"]);
14
+ const [ownValue, setOwnValue] = useState(defaultValue);
15
+ const value = controlledValue ?? ownValue;
16
+ const setValue = (next) => {
17
+ if (controlledValue === void 0) setOwnValue(next);
18
+ };
10
19
  const handleKeyDown = (e) => {
11
20
  if (e.key === "Enter") onSearch(value.trim());
12
21
  };
@@ -22,9 +31,15 @@ function SearchBox({ placeholder, onSearch, onClear, onValueChange, size = "defa
22
31
  const iconSize = searchFieldIconSizeClasses[size];
23
32
  const trailingBtnClass = "h-auto w-auto p-0 m-0 shrink-0";
24
33
  return /* @__PURE__ */ jsxs("div", {
25
- className: cn(outlineSearchShellClasses, "flex w-full items-center gap-2 rounded-md", "focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 ring-offset-background", searchFieldContainerSizeClasses[size], className),
34
+ className: cn(outlineSearchShellClasses, "flex w-full items-center gap-2 rounded-[var(--espd-own-radius,var(--espd-radius-control,var(--radius-md)))]", "focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 ring-offset-background", searchFieldContainerSizeClasses[size], className),
35
+ style: axes.style,
26
36
  children: [/* @__PURE__ */ jsx("input", {
27
37
  type: "text",
38
+ id,
39
+ name,
40
+ "aria-label": ariaLabel,
41
+ "aria-labelledby": ariaLabelledBy,
42
+ "aria-describedby": ariaDescribedBy,
28
43
  value,
29
44
  onChange: (e) => handleValueChange(e.target.value),
30
45
  onKeyDown: handleKeyDown,
@@ -1,6 +1,6 @@
1
1
  //#region src/components/search-field-shell.ts
2
2
  /** Matches `buttonVariants` outline surface (border, bg, shadow, hover). */
3
- var outlineSearchShellClasses = "border border-input bg-background transition-colors hover:bg-accent hover:text-accent-foreground";
3
+ var outlineSearchShellClasses = "border-[length:var(--espd-own-border-width,var(--espd-border-width-control,1px))] border-input bg-background transition-colors hover:bg-accent hover:text-accent-foreground";
4
4
  var searchFieldContainerSizeClasses = {
5
5
  default: "h-9 px-4 py-2 text-sm",
6
6
  sm: "h-8 px-3 text-xs",
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+ import * as SelectPrimitive from '@radix-ui/react-select';
3
+ import { S as Size } from '../../index-BQANnKs9.js';
4
+ import { k as StyleAxisProps } from '../../style-axes-DSQ2DGc5.js';
5
+
6
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
7
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
8
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
9
+ type SelectTriggerProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> & Pick<StyleAxisProps, "radius" | "border"> & {
10
+ size?: Size;
11
+ /**
12
+ * Field chrome matching `Input`: a label row above the trigger and an
13
+ * error line below it. When none of `label`, `required`, `hintContent`,
14
+ * `error` or `errorContent` is set the trigger renders as a bare
15
+ * button, exactly as before these props existed.
16
+ */
17
+ label?: React.ReactNode;
18
+ required?: boolean;
19
+ hintContent?: React.ReactNode;
20
+ error?: boolean;
21
+ errorContent?: React.ReactNode;
22
+ };
23
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & Pick<StyleAxisProps, "border" | "radius"> & {
24
+ size?: Size;
25
+ /**
26
+ * Field chrome matching `Input`: a label row above the trigger and an
27
+ * error line below it. When none of `label`, `required`, `hintContent`,
28
+ * `error` or `errorContent` is set the trigger renders as a bare
29
+ * button, exactly as before these props existed.
30
+ */
31
+ label?: React.ReactNode;
32
+ required?: boolean;
33
+ hintContent?: React.ReactNode;
34
+ error?: boolean;
35
+ errorContent?: React.ReactNode;
36
+ } & React.RefAttributes<HTMLButtonElement>>;
37
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
38
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
39
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<StyleAxisProps, "radius" | "elevation"> & React.RefAttributes<HTMLDivElement>>;
40
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
41
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
42
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
43
+
44
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue };
@@ -0,0 +1,2 @@
1
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "../../core/select.js";
2
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
@@ -2,11 +2,11 @@
2
2
  import { cn } from "../../utils/cn.js";
3
3
  import { TooltipProvider } from "../../core/animate-ui/components/animate/tooltip.js";
4
4
  import { Checkbox } from "../../core/checkbox/motion-checkbox.js";
5
- import { FormFieldMirrors, SelectableCardListElementIndicator, SelectableCardListRowContent, controlAriaLabel, sizeStyles } from "./selectable-card-list-shared.js";
5
+ import { FormFieldMirrors, SelectableCardListElementIndicator, SelectableCardListRowContent, controlAriaLabel, selectionClassName, sizeStyles } from "./selectable-card-list-shared.js";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/selectable-card-list/checkbox-card-list.tsx
8
8
  function CheckboxCardList(props) {
9
- const { data, value, onChange, size, className, ariaLabel, ariaLabelledBy, name, form, element = "auto" } = props;
9
+ const { data, value, onChange, size, className, ariaLabel, ariaLabelledBy, name, form, element = "auto", rowStyle, selectionStyle = "border" } = props;
10
10
  const s = sizeStyles[size];
11
11
  const useNativeControl = element === "auto";
12
12
  const isRowSelected = (id) => value.includes(id);
@@ -33,7 +33,7 @@ function CheckboxCardList(props) {
33
33
  }), data.map((item) => {
34
34
  const selected = isRowSelected(item.id);
35
35
  const aria = controlAriaLabel(item);
36
- const rowClassName = cn("flex cursor-pointer items-center rounded-lg border-2 bg-card text-left transition-colors", selected ? "border-primary" : "border-border", s.rowPad, s.gap, item.disabled && "cursor-not-allowed opacity-50", !item.disabled && !selected && "hover:bg-accent/10 hover:border-primary/20");
36
+ const rowClassName = cn("flex cursor-pointer items-center rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-lg)))] border-[length:var(--espd-own-border-width,var(--espd-border-width-surface,2px))] bg-card text-left transition-colors", selectionClassName(selected, selectionStyle), s.rowPad, s.gap, item.disabled && "cursor-not-allowed opacity-50", !item.disabled && !selected && "hover:bg-accent/10 hover:border-primary/20");
37
37
  const rowContent = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
38
38
  className: cn("flex min-w-0 flex-1 items-center", s.gap),
39
39
  children: /* @__PURE__ */ jsx(SelectableCardListRowContent, {
@@ -55,6 +55,7 @@ function CheckboxCardList(props) {
55
55
  })] });
56
56
  if (useNativeControl) return /* @__PURE__ */ jsx("label", {
57
57
  className: rowClassName,
58
+ style: rowStyle,
58
59
  children: rowContent
59
60
  }, item.id);
60
61
  return /* @__PURE__ */ jsx("div", {
@@ -64,6 +65,7 @@ function CheckboxCardList(props) {
64
65
  "aria-label": aria,
65
66
  tabIndex: item.disabled ? -1 : 0,
66
67
  className: rowClassName,
68
+ style: rowStyle,
67
69
  onClick: () => {
68
70
  if (item.disabled) return;
69
71
  handleChecked(item.id, !selected);
@@ -0,0 +1,76 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { k as StyleAxisProps } from '../../style-axes-DSQ2DGc5.js';
4
+
5
+ type SelectableCardListSize = "sm" | "default" | "lg";
6
+ /** Display-only indicator on each row; selection semantics follow `allowMultiple`. */
7
+ type SelectableCardListElement = "auto" | "switch" | "icon";
8
+ /** When `primaryText` is not a plain string, `ariaLabel` must be supplied. */
9
+ type SelectableCardListItem = (SelectableCardListItemCommon & {
10
+ primaryText: string;
11
+ }) | (SelectableCardListItemCommon & {
12
+ primaryText: ReactNode;
13
+ ariaLabel: string;
14
+ });
15
+ /** The fields every item has, whatever its `primaryText`. Not exported: the union above is the public shape. */
16
+ type SelectableCardListItemCommon = {
17
+ id: string;
18
+ /** Drawn in a round avatar before the text. Optional: without one the row starts with its text. */
19
+ icon?: ReactNode;
20
+ /** One line under the primary text, truncated with a tooltip. */
21
+ secondaryText?: ReactNode;
22
+ /**
23
+ * A line under the secondary text that is never truncated: why the row is
24
+ * suggested ("You said 'buzzer'"), or why it is disabled. In the primary
25
+ * colour, muted on a disabled row.
26
+ */
27
+ note?: ReactNode;
28
+ disabled?: boolean;
29
+ };
30
+ type CommonSelectableCardListProps = Pick<StyleAxisProps, "radius" | "border"> & {
31
+ data: SelectableCardListItem[];
32
+ size?: SelectableCardListSize;
33
+ className?: string;
34
+ "aria-label"?: string;
35
+ "aria-labelledby"?: string;
36
+ /**
37
+ * When set, mirrors native radio / checkbox group behavior for form submission:
38
+ * single value → one `<input type="hidden" name={name} value={selectedId} />`;
39
+ * multiple → one hidden per selected id (same `name`, like a checkbox group).
40
+ * Use `name="field[]"` if your server expects an array from repeated keys.
41
+ */
42
+ name?: string;
43
+ /** Associates hidden inputs with a `<form id="...">` when the list is not nested inside that form. */
44
+ form?: string;
45
+ /**
46
+ * Row indicator visuals only. `auto` uses checkbox (multi) or radio (single).
47
+ * `switch` and `icon` replace the native control; `allowMultiple` still governs selection.
48
+ */
49
+ element?: SelectableCardListElement;
50
+ /**
51
+ * How a selected row shows it. `border` (default): a primary border.
52
+ * `tint`: a very subtle primary background, with the border in that same
53
+ * tint. `none`: no change; the row keeps its normal border and background
54
+ * (the indicator still shows the selection).
55
+ */
56
+ cardSelectionStyle?: CardSelectionStyle;
57
+ };
58
+ /** See `cardSelectionStyle`. Exported to the list's own modules, not from the package. */
59
+ type CardSelectionStyle = "border" | "tint" | "none";
60
+ /** Single selection; rendered as a radio group. */
61
+ type SelectableCardListSingleProps = CommonSelectableCardListProps & {
62
+ allowMultiple?: false;
63
+ value: string;
64
+ onChange: (value: string) => void;
65
+ };
66
+ /** Multiple selection; rendered as checkboxes. */
67
+ type SelectableCardListMultiProps = CommonSelectableCardListProps & {
68
+ allowMultiple: true;
69
+ value: string[];
70
+ onChange: (value: string[]) => void;
71
+ };
72
+ type SelectableCardListProps = SelectableCardListSingleProps | SelectableCardListMultiProps;
73
+
74
+ declare function SelectableCardList(props: SelectableCardListProps): React.JSX.Element;
75
+
76
+ export { SelectableCardList, type SelectableCardListElement, type SelectableCardListItem, type SelectableCardListMultiProps, type SelectableCardListProps, type SelectableCardListSingleProps, type SelectableCardListSize };
@@ -0,0 +1,2 @@
1
+ import { SelectableCardList } from "./selectable-card-list.js";
2
+ export { SelectableCardList };
@@ -2,15 +2,15 @@
2
2
  import { cn } from "../../utils/cn.js";
3
3
  import { TooltipProvider } from "../../core/animate-ui/components/animate/tooltip.js";
4
4
  import { Radio, RadioGroup } from "../../core/animate-ui/components/base/radio.js";
5
- import { FormFieldMirrors, SelectableCardListElementIndicator, SelectableCardListRowContent, controlAriaLabel, sizeStyles } from "./selectable-card-list-shared.js";
5
+ import { FormFieldMirrors, SelectableCardListElementIndicator, SelectableCardListRowContent, controlAriaLabel, selectionClassName, sizeStyles } from "./selectable-card-list-shared.js";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/selectable-card-list/radio-card-list.tsx
8
- function RadioCardListRows({ data, value, onChange, size, element, s }) {
8
+ function RadioCardListRows({ data, value, onChange, size, element, s, rowStyle, selectionStyle = "border" }) {
9
9
  const useNativeControl = element === "auto";
10
10
  return data.map((item) => {
11
11
  const selected = value === item.id;
12
12
  const aria = controlAriaLabel(item);
13
- const rowClassName = cn("flex cursor-pointer items-center rounded-lg border-2 bg-card text-left transition-colors", selected ? "border-primary" : "border-border", s.rowPad, s.gap, item.disabled && "cursor-not-allowed opacity-50", !item.disabled && !selected && "hover:bg-accent/10 hover:border-primary/20");
13
+ const rowClassName = cn("flex cursor-pointer items-center rounded-[var(--espd-own-radius,var(--espd-radius-surface,var(--radius-lg)))] border-[length:var(--espd-own-border-width,var(--espd-border-width-surface,2px))] bg-card text-left transition-colors", selectionClassName(selected, selectionStyle), s.rowPad, s.gap, item.disabled && "cursor-not-allowed opacity-50", !item.disabled && !selected && "hover:bg-accent/10 hover:border-primary/20");
14
14
  const rowContent = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
15
15
  className: cn("flex min-w-0 flex-1 items-center", s.gap),
16
16
  children: /* @__PURE__ */ jsx(SelectableCardListRowContent, {
@@ -31,6 +31,7 @@ function RadioCardListRows({ data, value, onChange, size, element, s }) {
31
31
  })] });
32
32
  if (useNativeControl) return /* @__PURE__ */ jsx("label", {
33
33
  className: rowClassName,
34
+ style: rowStyle,
34
35
  children: rowContent
35
36
  }, item.id);
36
37
  return /* @__PURE__ */ jsx("div", {
@@ -40,6 +41,7 @@ function RadioCardListRows({ data, value, onChange, size, element, s }) {
40
41
  "aria-label": aria,
41
42
  tabIndex: item.disabled ? -1 : 0,
42
43
  className: rowClassName,
44
+ style: rowStyle,
43
45
  onClick: () => {
44
46
  if (item.disabled) return;
45
47
  onChange(item.id);
@@ -55,7 +57,7 @@ function RadioCardListRows({ data, value, onChange, size, element, s }) {
55
57
  }, item.id);
56
58
  });
57
59
  }
58
- function RadioCardList({ data, value, onChange, size, className, ariaLabel, ariaLabelledBy, name, form, element = "auto" }) {
60
+ function RadioCardList({ data, value, onChange, size, className, ariaLabel, ariaLabelledBy, name, form, element = "auto", rowStyle, selectionStyle }) {
59
61
  const s = sizeStyles[size];
60
62
  return /* @__PURE__ */ jsx(TooltipProvider, {
61
63
  openDelay: 300,
@@ -77,7 +79,9 @@ function RadioCardList({ data, value, onChange, size, className, ariaLabel, aria
77
79
  onChange,
78
80
  size,
79
81
  element,
80
- s
82
+ s,
83
+ rowStyle,
84
+ selectionStyle
81
85
  })
82
86
  }) : /* @__PURE__ */ jsx("div", {
83
87
  role: "radiogroup",
@@ -90,7 +94,9 @@ function RadioCardList({ data, value, onChange, size, className, ariaLabel, aria
90
94
  onChange,
91
95
  size,
92
96
  element,
93
- s
97
+ s,
98
+ rowStyle,
99
+ selectionStyle
94
100
  })
95
101
  })] })
96
102
  });