@womp/kookie-ui 0.5.0 → 0.7.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 (991) hide show
  1. package/components.css +486 -1070
  2. package/dist/cjs/components/_internal/base-button.js +1 -1
  3. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  4. package/dist/cjs/components/_internal/base-button.props.d.ts +2 -7
  5. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  6. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  7. package/dist/cjs/components/_internal/base-button.props.js.map +4 -4
  8. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +0 -5
  9. package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
  10. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  11. package/dist/cjs/components/_internal/base-checkbox.props.js.map +4 -4
  12. package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -10
  13. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  14. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  15. package/dist/cjs/components/_internal/base-menu.props.js.map +4 -4
  16. package/dist/cjs/components/_internal/base-menu.utils.d.ts +48 -0
  17. package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -0
  18. package/dist/cjs/components/_internal/base-menu.utils.js +2 -0
  19. package/dist/cjs/components/_internal/base-menu.utils.js.map +7 -0
  20. package/dist/cjs/components/_internal/base-radio.props.d.ts +0 -5
  21. package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
  22. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  23. package/dist/cjs/components/_internal/base-radio.props.js.map +4 -4
  24. package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -5
  25. package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
  26. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
  27. package/dist/cjs/components/_internal/base-tab-list.props.js.map +4 -4
  28. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
  29. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  30. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
  31. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +4 -4
  32. package/dist/cjs/components/_internal/menu-context.d.ts +7 -3
  33. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  34. package/dist/cjs/components/_internal/menu-context.js +1 -1
  35. package/dist/cjs/components/_internal/menu-context.js.map +4 -4
  36. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  37. package/dist/cjs/components/_internal/shell-bottom.js.map +4 -4
  38. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  39. package/dist/cjs/components/_internal/shell-inspector.js.map +4 -4
  40. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  41. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  42. package/dist/cjs/components/accordion.js +1 -1
  43. package/dist/cjs/components/accordion.js.map +4 -4
  44. package/dist/cjs/components/accordion.props.d.ts +0 -6
  45. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  46. package/dist/cjs/components/accordion.props.js +1 -1
  47. package/dist/cjs/components/accordion.props.js.map +4 -4
  48. package/dist/cjs/components/alert-dialog.js +1 -1
  49. package/dist/cjs/components/alert-dialog.js.map +4 -4
  50. package/dist/cjs/components/avatar.js +1 -1
  51. package/dist/cjs/components/avatar.js.map +4 -4
  52. package/dist/cjs/components/avatar.props.d.ts +0 -5
  53. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  54. package/dist/cjs/components/avatar.props.js +1 -1
  55. package/dist/cjs/components/avatar.props.js.map +4 -4
  56. package/dist/cjs/components/badge.js +1 -1
  57. package/dist/cjs/components/badge.js.map +4 -4
  58. package/dist/cjs/components/badge.props.d.ts +0 -5
  59. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  60. package/dist/cjs/components/badge.props.js +1 -1
  61. package/dist/cjs/components/badge.props.js.map +4 -4
  62. package/dist/cjs/components/blockquote.js +1 -1
  63. package/dist/cjs/components/blockquote.js.map +4 -4
  64. package/dist/cjs/components/blockquote.props.d.ts +3 -2
  65. package/dist/cjs/components/blockquote.props.d.ts.map +1 -1
  66. package/dist/cjs/components/blockquote.props.js +1 -1
  67. package/dist/cjs/components/blockquote.props.js.map +4 -4
  68. package/dist/cjs/components/button.js +1 -1
  69. package/dist/cjs/components/button.js.map +4 -4
  70. package/dist/cjs/components/button.props.js +1 -1
  71. package/dist/cjs/components/button.props.js.map +4 -4
  72. package/dist/cjs/components/callout.js +1 -1
  73. package/dist/cjs/components/callout.js.map +4 -4
  74. package/dist/cjs/components/callout.props.d.ts +0 -5
  75. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  76. package/dist/cjs/components/callout.props.js +1 -1
  77. package/dist/cjs/components/callout.props.js.map +4 -4
  78. package/dist/cjs/components/card.js +1 -1
  79. package/dist/cjs/components/card.js.map +2 -2
  80. package/dist/cjs/components/chatbar.d.ts +46 -44
  81. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  82. package/dist/cjs/components/chatbar.js +2 -2
  83. package/dist/cjs/components/chatbar.js.map +4 -4
  84. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  85. package/dist/cjs/components/checkbox-cards.js +1 -1
  86. package/dist/cjs/components/checkbox-cards.js.map +4 -4
  87. package/dist/cjs/components/checkbox-cards.props.d.ts +0 -5
  88. package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
  89. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  90. package/dist/cjs/components/checkbox-cards.props.js.map +4 -4
  91. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  92. package/dist/cjs/components/checkbox-group.js +1 -1
  93. package/dist/cjs/components/checkbox-group.js.map +4 -4
  94. package/dist/cjs/components/checkbox-group.props.d.ts +0 -5
  95. package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
  96. package/dist/cjs/components/checkbox-group.props.js +1 -1
  97. package/dist/cjs/components/checkbox-group.props.js.map +4 -4
  98. package/dist/cjs/components/checkbox.js +1 -1
  99. package/dist/cjs/components/checkbox.js.map +4 -4
  100. package/dist/cjs/components/checkbox.props.js +1 -1
  101. package/dist/cjs/components/checkbox.props.js.map +4 -4
  102. package/dist/cjs/components/code.js +1 -1
  103. package/dist/cjs/components/code.js.map +4 -4
  104. package/dist/cjs/components/code.props.d.ts +3 -2
  105. package/dist/cjs/components/code.props.d.ts.map +1 -1
  106. package/dist/cjs/components/code.props.js +1 -1
  107. package/dist/cjs/components/code.props.js.map +4 -4
  108. package/dist/cjs/components/combobox.d.ts +28 -15
  109. package/dist/cjs/components/combobox.d.ts.map +1 -1
  110. package/dist/cjs/components/combobox.js +1 -1
  111. package/dist/cjs/components/combobox.js.map +4 -4
  112. package/dist/cjs/components/combobox.props.d.ts +46 -8
  113. package/dist/cjs/components/combobox.props.d.ts.map +1 -1
  114. package/dist/cjs/components/combobox.props.js +1 -1
  115. package/dist/cjs/components/combobox.props.js.map +4 -4
  116. package/dist/cjs/components/context-menu.d.ts +18 -5
  117. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  118. package/dist/cjs/components/context-menu.js +1 -1
  119. package/dist/cjs/components/context-menu.js.map +4 -4
  120. package/dist/cjs/components/context-menu.props.d.ts +1 -1
  121. package/dist/cjs/components/context-menu.props.d.ts.map +1 -1
  122. package/dist/cjs/components/context-menu.props.js +1 -1
  123. package/dist/cjs/components/context-menu.props.js.map +4 -4
  124. package/dist/cjs/components/data-list.js +1 -1
  125. package/dist/cjs/components/data-list.js.map +4 -4
  126. package/dist/cjs/components/data-list.props.d.ts +4 -3
  127. package/dist/cjs/components/data-list.props.d.ts.map +1 -1
  128. package/dist/cjs/components/data-list.props.js +1 -1
  129. package/dist/cjs/components/data-list.props.js.map +4 -4
  130. package/dist/cjs/components/dialog.js +1 -1
  131. package/dist/cjs/components/dialog.js.map +4 -4
  132. package/dist/cjs/components/dropdown-menu.d.ts +11 -18
  133. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  134. package/dist/cjs/components/dropdown-menu.js +1 -1
  135. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  136. package/dist/cjs/components/dropdown-menu.props.js +1 -1
  137. package/dist/cjs/components/dropdown-menu.props.js.map +4 -4
  138. package/dist/cjs/components/heading.js +1 -1
  139. package/dist/cjs/components/heading.js.map +4 -4
  140. package/dist/cjs/components/heading.props.d.ts +3 -2
  141. package/dist/cjs/components/heading.props.d.ts.map +1 -1
  142. package/dist/cjs/components/heading.props.js +1 -1
  143. package/dist/cjs/components/heading.props.js.map +4 -4
  144. package/dist/cjs/components/hover-card.js +1 -1
  145. package/dist/cjs/components/hover-card.js.map +2 -2
  146. package/dist/cjs/components/icon-button.js +2 -2
  147. package/dist/cjs/components/icon-button.js.map +4 -4
  148. package/dist/cjs/components/icon-button.props.js +1 -1
  149. package/dist/cjs/components/icon-button.props.js.map +4 -4
  150. package/dist/cjs/components/index.js +5 -5
  151. package/dist/cjs/components/index.js.map +4 -4
  152. package/dist/cjs/components/link.js +1 -1
  153. package/dist/cjs/components/link.js.map +4 -4
  154. package/dist/cjs/components/link.props.d.ts +0 -5
  155. package/dist/cjs/components/link.props.d.ts.map +1 -1
  156. package/dist/cjs/components/link.props.js +1 -1
  157. package/dist/cjs/components/link.props.js.map +4 -4
  158. package/dist/cjs/components/popover.js +1 -1
  159. package/dist/cjs/components/popover.js.map +2 -2
  160. package/dist/cjs/components/progress.js +1 -1
  161. package/dist/cjs/components/progress.js.map +4 -4
  162. package/dist/cjs/components/progress.props.d.ts +0 -5
  163. package/dist/cjs/components/progress.props.d.ts.map +1 -1
  164. package/dist/cjs/components/progress.props.js +1 -1
  165. package/dist/cjs/components/progress.props.js.map +4 -4
  166. package/dist/cjs/components/radio-cards.js +1 -1
  167. package/dist/cjs/components/radio-cards.js.map +4 -4
  168. package/dist/cjs/components/radio-cards.props.d.ts +0 -5
  169. package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
  170. package/dist/cjs/components/radio-cards.props.js +1 -1
  171. package/dist/cjs/components/radio-cards.props.js.map +4 -4
  172. package/dist/cjs/components/radio-group.d.ts.map +1 -1
  173. package/dist/cjs/components/radio-group.js +1 -1
  174. package/dist/cjs/components/radio-group.js.map +4 -4
  175. package/dist/cjs/components/radio-group.props.d.ts +0 -5
  176. package/dist/cjs/components/radio-group.props.d.ts.map +1 -1
  177. package/dist/cjs/components/radio-group.props.js +1 -1
  178. package/dist/cjs/components/radio-group.props.js.map +4 -4
  179. package/dist/cjs/components/radio.js +1 -1
  180. package/dist/cjs/components/radio.js.map +4 -4
  181. package/dist/cjs/components/radio.props.js +1 -1
  182. package/dist/cjs/components/radio.props.js.map +4 -4
  183. package/dist/cjs/components/schemas/base-button.schema.d.ts +111 -257
  184. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
  185. package/dist/cjs/components/schemas/base-button.schema.js +1 -1
  186. package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
  187. package/dist/cjs/components/schemas/button.schema.d.ts +136 -558
  188. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
  189. package/dist/cjs/components/schemas/button.schema.js +1 -1
  190. package/dist/cjs/components/schemas/button.schema.js.map +2 -2
  191. package/dist/cjs/components/schemas/icon-button.schema.d.ts +123 -241
  192. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
  193. package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
  194. package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
  195. package/dist/cjs/components/schemas/index.js +1 -1
  196. package/dist/cjs/components/schemas/index.js.map +2 -2
  197. package/dist/cjs/components/schemas/shell.schema.d.ts +592 -851
  198. package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
  199. package/dist/cjs/components/schemas/shell.schema.js +1 -1
  200. package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
  201. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +138 -1027
  202. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
  203. package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
  204. package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
  205. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +124 -466
  206. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  207. package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
  208. package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
  209. package/dist/cjs/components/scroll-area.js +1 -1
  210. package/dist/cjs/components/segmented-control.js +1 -1
  211. package/dist/cjs/components/select.js +1 -1
  212. package/dist/cjs/components/select.js.map +4 -4
  213. package/dist/cjs/components/select.props.d.ts +0 -5
  214. package/dist/cjs/components/select.props.d.ts.map +1 -1
  215. package/dist/cjs/components/select.props.js +1 -1
  216. package/dist/cjs/components/select.props.js.map +4 -4
  217. package/dist/cjs/components/separator.js.map +1 -1
  218. package/dist/cjs/components/separator.props.js.map +1 -1
  219. package/dist/cjs/components/sheet.js +1 -1
  220. package/dist/cjs/components/sheet.js.map +4 -4
  221. package/dist/cjs/components/shell.js +1 -1
  222. package/dist/cjs/components/shell.js.map +4 -4
  223. package/dist/cjs/components/sidebar.d.ts +0 -1
  224. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  225. package/dist/cjs/components/sidebar.js +1 -1
  226. package/dist/cjs/components/sidebar.js.map +4 -4
  227. package/dist/cjs/components/sidebar.props.d.ts +0 -5
  228. package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
  229. package/dist/cjs/components/sidebar.props.js +1 -1
  230. package/dist/cjs/components/sidebar.props.js.map +4 -4
  231. package/dist/cjs/components/slider.js +1 -1
  232. package/dist/cjs/components/slider.js.map +4 -4
  233. package/dist/cjs/components/slider.props.d.ts +0 -5
  234. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  235. package/dist/cjs/components/slider.props.js +1 -1
  236. package/dist/cjs/components/slider.props.js.map +4 -4
  237. package/dist/cjs/components/slot.d.ts +6 -2
  238. package/dist/cjs/components/slot.d.ts.map +1 -1
  239. package/dist/cjs/components/switch.d.ts.map +1 -1
  240. package/dist/cjs/components/switch.js +1 -1
  241. package/dist/cjs/components/switch.js.map +4 -4
  242. package/dist/cjs/components/switch.props.d.ts +0 -5
  243. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  244. package/dist/cjs/components/switch.props.js +1 -1
  245. package/dist/cjs/components/switch.props.js.map +4 -4
  246. package/dist/cjs/components/tab-nav.js +1 -1
  247. package/dist/cjs/components/tab-nav.js.map +4 -4
  248. package/dist/cjs/components/tab-nav.props.js +1 -1
  249. package/dist/cjs/components/tab-nav.props.js.map +4 -4
  250. package/dist/cjs/components/tabs.js +1 -1
  251. package/dist/cjs/components/tabs.js.map +4 -4
  252. package/dist/cjs/components/tabs.props.js +1 -1
  253. package/dist/cjs/components/tabs.props.js.map +4 -4
  254. package/dist/cjs/components/text-area.js.map +1 -1
  255. package/dist/cjs/components/text-area.props.js.map +1 -1
  256. package/dist/cjs/components/text-field.js +2 -2
  257. package/dist/cjs/components/text-field.js.map +1 -1
  258. package/dist/cjs/components/text-field.props.js.map +1 -1
  259. package/dist/cjs/components/text.js +1 -1
  260. package/dist/cjs/components/text.js.map +4 -4
  261. package/dist/cjs/components/text.props.d.ts +3 -2
  262. package/dist/cjs/components/text.props.d.ts.map +1 -1
  263. package/dist/cjs/components/text.props.js +1 -1
  264. package/dist/cjs/components/text.props.js.map +4 -4
  265. package/dist/cjs/components/theme-panel.js +3 -3
  266. package/dist/cjs/components/theme-panel.js.map +4 -4
  267. package/dist/cjs/components/theme.js +1 -1
  268. package/dist/cjs/components/theme.js.map +2 -2
  269. package/dist/cjs/components/theme.props.d.ts +1 -1
  270. package/dist/cjs/components/theme.props.js +1 -1
  271. package/dist/cjs/components/theme.props.js.map +2 -2
  272. package/dist/cjs/components/toggle-button.js +2 -2
  273. package/dist/cjs/components/toggle-button.js.map +4 -4
  274. package/dist/cjs/components/toggle-icon-button.js +3 -3
  275. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  276. package/dist/cjs/components/toolbar.js +1 -1
  277. package/dist/cjs/components/toolbar.js.map +4 -4
  278. package/dist/cjs/components/tooltip.js +1 -1
  279. package/dist/cjs/components/tooltip.js.map +4 -4
  280. package/dist/cjs/components/user-card.d.ts.map +1 -1
  281. package/dist/cjs/components/user-card.js +1 -1
  282. package/dist/cjs/components/user-card.js.map +4 -4
  283. package/dist/cjs/components/user-card.props.d.ts +0 -5
  284. package/dist/cjs/components/user-card.props.d.ts.map +1 -1
  285. package/dist/cjs/components/user-card.props.js +1 -1
  286. package/dist/cjs/components/user-card.props.js.map +4 -4
  287. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  288. package/dist/cjs/components/virtual-menu.js +1 -1
  289. package/dist/cjs/components/virtual-menu.js.map +4 -4
  290. package/dist/cjs/helpers/extract-props.js +1 -1
  291. package/dist/cjs/helpers/extract-props.js.map +2 -2
  292. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  293. package/dist/cjs/helpers/get-margin-styles.js.map +2 -2
  294. package/dist/cjs/hooks/use-breakpoint.d.ts +4 -1
  295. package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
  296. package/dist/cjs/hooks/use-breakpoint.js +1 -1
  297. package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
  298. package/dist/cjs/index.js +5 -5
  299. package/dist/cjs/index.js.map +4 -4
  300. package/dist/cjs/props/color.prop.js.map +1 -1
  301. package/dist/cjs/props/emphasis.prop.d.ts +11 -0
  302. package/dist/cjs/props/emphasis.prop.d.ts.map +1 -0
  303. package/dist/cjs/props/emphasis.prop.js +2 -0
  304. package/dist/cjs/props/emphasis.prop.js.map +7 -0
  305. package/dist/cjs/props/index.d.ts +1 -1
  306. package/dist/cjs/props/index.d.ts.map +1 -1
  307. package/dist/cjs/props/index.js +1 -1
  308. package/dist/cjs/props/index.js.map +4 -4
  309. package/dist/esm/chunk-2264DHUW.js +2 -0
  310. package/dist/esm/{chunk-AU3D6F42.js.map → chunk-2264DHUW.js.map} +2 -2
  311. package/dist/esm/chunk-2CMM7MEL.js +2 -0
  312. package/dist/esm/chunk-2CMM7MEL.js.map +7 -0
  313. package/dist/esm/chunk-2I7QRVJ5.js +2 -0
  314. package/dist/esm/chunk-2I7QRVJ5.js.map +7 -0
  315. package/dist/esm/{chunk-2FYJTSOP.js → chunk-2SZZ75RJ.js} +2 -2
  316. package/dist/esm/chunk-3KSGRY6I.js +2 -0
  317. package/dist/esm/chunk-3KSGRY6I.js.map +7 -0
  318. package/dist/esm/chunk-4NTGF22C.js +2 -0
  319. package/dist/esm/chunk-4NTGF22C.js.map +7 -0
  320. package/dist/esm/chunk-4WVNMGI5.js +2 -0
  321. package/dist/esm/chunk-4WVNMGI5.js.map +7 -0
  322. package/dist/esm/chunk-4XKK32M4.js +2 -0
  323. package/dist/esm/chunk-4XKK32M4.js.map +7 -0
  324. package/dist/esm/chunk-5SNHUVDA.js +2 -0
  325. package/dist/esm/{chunk-H7ST535H.js → chunk-5WRCK4R7.js} +2 -2
  326. package/dist/esm/chunk-5XV4QEP5.js +2 -0
  327. package/dist/esm/chunk-5XV4QEP5.js.map +7 -0
  328. package/dist/esm/chunk-667BKCUG.js +2 -0
  329. package/dist/esm/chunk-667BKCUG.js.map +7 -0
  330. package/dist/esm/{chunk-MHPPVJDB.js → chunk-67MKPTZJ.js} +2 -2
  331. package/dist/esm/chunk-7EWFBWBS.js +2 -0
  332. package/dist/esm/chunk-7EWFBWBS.js.map +7 -0
  333. package/dist/esm/{chunk-CRWYCLTE.js → chunk-ABSKRHVM.js} +2 -2
  334. package/dist/esm/chunk-AF6XKU3W.js +2 -0
  335. package/dist/esm/chunk-AF6XKU3W.js.map +7 -0
  336. package/dist/esm/chunk-AGSSWWFI.js +2 -0
  337. package/dist/esm/chunk-AGSSWWFI.js.map +7 -0
  338. package/dist/esm/{chunk-PTLFMWCN.js → chunk-ALWNS44Q.js} +2 -2
  339. package/dist/esm/{chunk-3MWWP4MW.js → chunk-BBJUB52V.js} +2 -2
  340. package/dist/esm/{chunk-GYBLXQ4R.js → chunk-CDG5WH4U.js} +2 -2
  341. package/dist/esm/{chunk-CVWCKOHO.js → chunk-CEIK5U6C.js} +2 -2
  342. package/dist/esm/{chunk-374ZYJUP.js → chunk-CESYMTJQ.js} +2 -2
  343. package/dist/esm/chunk-CFNESRYI.js +2 -0
  344. package/dist/esm/chunk-CFNESRYI.js.map +7 -0
  345. package/dist/esm/{chunk-P7IAHW4V.js → chunk-CIYF56YS.js} +2 -2
  346. package/dist/esm/chunk-CJ27XP5Z.js +2 -0
  347. package/dist/esm/chunk-CJ27XP5Z.js.map +7 -0
  348. package/dist/esm/{chunk-LKAK5GXF.js → chunk-CKMMUHKE.js} +2 -2
  349. package/dist/esm/{chunk-SESAEJ6W.js → chunk-CLMOWP5T.js} +2 -2
  350. package/dist/esm/{chunk-DUHJVT64.js → chunk-CRSHBENJ.js} +2 -2
  351. package/dist/esm/{chunk-GJSGKE7B.js → chunk-CTA5ODAO.js} +2 -2
  352. package/dist/esm/{chunk-CWRNW44F.js → chunk-DSJY5RI3.js} +2 -2
  353. package/dist/esm/chunk-EBQZ3Z22.js +2 -0
  354. package/dist/esm/chunk-EBQZ3Z22.js.map +7 -0
  355. package/dist/esm/chunk-ECXGQQJB.js +2 -0
  356. package/dist/esm/chunk-ECXGQQJB.js.map +7 -0
  357. package/dist/esm/chunk-EDKQURDU.js +2 -0
  358. package/dist/esm/chunk-EDKQURDU.js.map +7 -0
  359. package/dist/esm/{chunk-M24UXMOQ.js → chunk-EE2IH2GL.js} +2 -2
  360. package/dist/esm/{chunk-NMKPFUNP.js → chunk-EPTYNVCU.js} +2 -2
  361. package/dist/esm/chunk-F6V7GBNQ.js +2 -0
  362. package/dist/esm/chunk-F6V7GBNQ.js.map +7 -0
  363. package/dist/esm/{chunk-XMRIRFM7.js → chunk-FG7XM7KJ.js} +2 -2
  364. package/dist/esm/chunk-FMBECDL4.js +2 -0
  365. package/dist/esm/{chunk-4XJY6FIK.js.map → chunk-FMBECDL4.js.map} +3 -3
  366. package/dist/esm/{chunk-6IGTK4JE.js → chunk-GAV3NHYL.js} +2 -2
  367. package/dist/esm/{chunk-TOOSHJOA.js → chunk-GO7OHBHW.js} +2 -2
  368. package/dist/esm/{chunk-MBCBP73P.js → chunk-HJU4I34X.js} +2 -2
  369. package/dist/esm/{chunk-VX6ARMWP.js → chunk-HSAG7C53.js} +2 -2
  370. package/dist/esm/{chunk-K6QZMNCD.js → chunk-IFM4EMZB.js} +2 -2
  371. package/dist/esm/chunk-JFWMAYEH.js +2 -0
  372. package/dist/esm/chunk-JFWMAYEH.js.map +7 -0
  373. package/dist/esm/{chunk-HF5WY5YE.js → chunk-JGLAE5G7.js} +2 -2
  374. package/dist/esm/{chunk-4YFJWXL2.js → chunk-JJKQ7CGI.js} +2 -2
  375. package/dist/esm/chunk-JSW6J6RS.js +2 -0
  376. package/dist/esm/chunk-JSW6J6RS.js.map +7 -0
  377. package/dist/esm/{chunk-P7HYVJSU.js → chunk-K3UAS7RW.js} +2 -2
  378. package/dist/esm/chunk-KCWESYMR.js +2 -0
  379. package/dist/esm/chunk-KCWESYMR.js.map +7 -0
  380. package/dist/esm/{chunk-25WZA7ZU.js → chunk-KFR3CK24.js} +2 -2
  381. package/dist/esm/chunk-KJUDZCYK.js +2 -0
  382. package/dist/esm/{chunk-SO67YEVQ.js.map → chunk-KJUDZCYK.js.map} +2 -2
  383. package/dist/esm/{chunk-WFMYNZXZ.js → chunk-KMPE7TJ6.js} +2 -2
  384. package/dist/esm/{chunk-WXP6MMUB.js → chunk-KOFEFBB3.js} +2 -2
  385. package/dist/esm/chunk-KRDP5SQ7.js +2 -0
  386. package/dist/esm/chunk-KRDP5SQ7.js.map +7 -0
  387. package/dist/esm/chunk-KZWNGWIM.js +2 -0
  388. package/dist/esm/chunk-KZWNGWIM.js.map +7 -0
  389. package/dist/esm/chunk-KZYFTDGO.js +2 -0
  390. package/dist/esm/chunk-KZYFTDGO.js.map +7 -0
  391. package/dist/esm/chunk-L3BWTV7I.js +2 -0
  392. package/dist/esm/chunk-L3BWTV7I.js.map +7 -0
  393. package/dist/esm/{chunk-W7N7V5YD.js → chunk-M6DJRFJZ.js} +2 -2
  394. package/dist/esm/{chunk-7QDTSBJF.js → chunk-MCPRXVKZ.js} +2 -2
  395. package/dist/esm/{chunk-DNHUQLXO.js → chunk-MEO7MJMQ.js} +2 -2
  396. package/dist/esm/{chunk-YVBCDTTD.js → chunk-MN3XALXD.js} +2 -2
  397. package/dist/esm/{chunk-F7IYL2VW.js → chunk-MS5J4MF6.js} +2 -2
  398. package/dist/esm/{chunk-OSRJRBKP.js → chunk-MTOLKA6S.js} +2 -2
  399. package/dist/esm/{chunk-MBE2YSBU.js → chunk-N4GTDLRD.js} +2 -2
  400. package/dist/esm/chunk-NIIEIZKQ.js +2 -0
  401. package/dist/esm/chunk-NIIEIZKQ.js.map +7 -0
  402. package/dist/esm/{chunk-FHOCUZDR.js → chunk-NIQT45PJ.js} +2 -2
  403. package/dist/esm/chunk-NVDXXGVW.js +2 -0
  404. package/dist/esm/chunk-NVDXXGVW.js.map +7 -0
  405. package/dist/esm/{chunk-IKSN4RNB.js → chunk-O2U6RJTB.js} +3 -3
  406. package/dist/esm/{chunk-IKSN4RNB.js.map → chunk-O2U6RJTB.js.map} +2 -2
  407. package/dist/esm/{chunk-TOLLPRMM.js → chunk-OFUNVHZ5.js} +2 -2
  408. package/dist/esm/chunk-OGVKSYLL.js +2 -0
  409. package/dist/esm/chunk-OGVKSYLL.js.map +7 -0
  410. package/dist/esm/chunk-OJU5GCDZ.js +2 -0
  411. package/dist/esm/chunk-OJU5GCDZ.js.map +7 -0
  412. package/dist/esm/{chunk-RMKXWYOV.js → chunk-OLAWVEAI.js} +2 -2
  413. package/dist/esm/chunk-OS3FCYZY.js +2 -0
  414. package/dist/esm/{chunk-UWT6TE5D.js → chunk-OTXCKEWT.js} +2 -2
  415. package/dist/esm/chunk-OWMA6GTG.js +2 -0
  416. package/dist/esm/chunk-OWMA6GTG.js.map +7 -0
  417. package/dist/esm/chunk-PZ7OYATT.js +2 -0
  418. package/dist/esm/chunk-PZ7OYATT.js.map +7 -0
  419. package/dist/esm/chunk-QFPHEY77.js +2 -0
  420. package/dist/esm/chunk-QFPHEY77.js.map +7 -0
  421. package/dist/esm/chunk-QQ62LO3X.js +2 -0
  422. package/dist/esm/chunk-QQ62LO3X.js.map +7 -0
  423. package/dist/esm/{chunk-MK2R6DAU.js → chunk-QWVU2TW4.js} +2 -2
  424. package/dist/esm/{chunk-MK2R6DAU.js.map → chunk-QWVU2TW4.js.map} +3 -3
  425. package/dist/esm/chunk-RDAMYQFF.js +2 -0
  426. package/dist/esm/chunk-RDAMYQFF.js.map +7 -0
  427. package/dist/esm/{chunk-D6B7IMZU.js → chunk-RNTCHVFI.js} +2 -2
  428. package/dist/esm/{chunk-YUP6EICB.js → chunk-SEY4NA45.js} +2 -2
  429. package/dist/esm/{chunk-YV2KYHGR.js → chunk-UBOOUDS4.js} +2 -2
  430. package/dist/esm/chunk-V27ZAN3E.js +2 -0
  431. package/dist/esm/chunk-V27ZAN3E.js.map +7 -0
  432. package/dist/esm/chunk-VBI3AWPT.js +2 -0
  433. package/dist/esm/chunk-VBI3AWPT.js.map +7 -0
  434. package/dist/esm/{chunk-S56YSRHP.js → chunk-VHECAEUP.js} +2 -2
  435. package/dist/esm/chunk-VLTXI4A7.js +2 -0
  436. package/dist/esm/chunk-VLTXI4A7.js.map +7 -0
  437. package/dist/esm/{chunk-4AQTUBVP.js → chunk-VNH7BJOA.js} +2 -2
  438. package/dist/esm/{chunk-IEWCQU2S.js → chunk-VR7ZAFYN.js} +2 -2
  439. package/dist/esm/chunk-VZSQATP6.js +2 -0
  440. package/dist/esm/{chunk-666GX7O5.js.map → chunk-VZSQATP6.js.map} +2 -2
  441. package/dist/esm/{chunk-PLWXTEVE.js → chunk-W2FOBR5Q.js} +2 -2
  442. package/dist/esm/chunk-WGYUWEQV.js +2 -0
  443. package/dist/esm/chunk-WGYUWEQV.js.map +7 -0
  444. package/dist/esm/{chunk-FXUUI6Z2.js → chunk-WHFJ4JUN.js} +2 -2
  445. package/dist/esm/chunk-WMGIFPI2.js +2 -0
  446. package/dist/esm/chunk-WMGIFPI2.js.map +7 -0
  447. package/dist/esm/chunk-WXQIIKWV.js +2 -0
  448. package/dist/esm/chunk-WXQIIKWV.js.map +7 -0
  449. package/dist/esm/{chunk-2UPAYDKR.js → chunk-X7V3V3W4.js} +2 -2
  450. package/dist/esm/{chunk-6XGZPIUT.js → chunk-XYVLQDGR.js} +2 -2
  451. package/dist/esm/{chunk-6XGZPIUT.js.map → chunk-XYVLQDGR.js.map} +2 -2
  452. package/dist/esm/{chunk-S2HA3W3V.js → chunk-Y5RCH23Z.js} +2 -2
  453. package/dist/esm/{chunk-OWAUCLRT.js → chunk-YBSRX63K.js} +2 -2
  454. package/dist/esm/{chunk-66ZLZAAJ.js → chunk-ZNK6AH2G.js} +1 -1
  455. package/dist/esm/{chunk-66ZLZAAJ.js.map → chunk-ZNK6AH2G.js.map} +1 -1
  456. package/dist/esm/{chunk-KPBG7CIL.js → chunk-ZO7TTWJI.js} +2 -2
  457. package/dist/esm/chunk-ZWZGUBL4.js +2 -0
  458. package/dist/esm/chunk-ZWZGUBL4.js.map +7 -0
  459. package/dist/esm/components/_internal/base-button.js +1 -1
  460. package/dist/esm/components/_internal/base-button.props.d.ts +2 -7
  461. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  462. package/dist/esm/components/_internal/base-button.props.js +1 -1
  463. package/dist/esm/components/_internal/base-checkbox.props.d.ts +0 -5
  464. package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
  465. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  466. package/dist/esm/components/_internal/base-menu.props.d.ts +0 -10
  467. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  468. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  469. package/dist/esm/components/_internal/base-menu.utils.d.ts +48 -0
  470. package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -0
  471. package/dist/esm/components/_internal/base-menu.utils.js +2 -0
  472. package/dist/esm/components/_internal/base-radio.props.d.ts +0 -5
  473. package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
  474. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  475. package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -5
  476. package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
  477. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  478. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
  479. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  480. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
  481. package/dist/esm/components/_internal/menu-context.d.ts +7 -3
  482. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  483. package/dist/esm/components/_internal/menu-context.js +1 -1
  484. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  485. package/dist/esm/components/_internal/shell-handles.js +1 -1
  486. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  487. package/dist/esm/components/_internal/shell-prop-helpers.js +1 -1
  488. package/dist/esm/components/_internal/shell-resize.js +1 -1
  489. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  490. package/dist/esm/components/accessible-icon.js +1 -1
  491. package/dist/esm/components/accordion.js +1 -1
  492. package/dist/esm/components/accordion.props.d.ts +0 -6
  493. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  494. package/dist/esm/components/accordion.props.js +1 -1
  495. package/dist/esm/components/alert-dialog.js +1 -1
  496. package/dist/esm/components/alert-dialog.props.js +1 -1
  497. package/dist/esm/components/aspect-ratio.js +1 -1
  498. package/dist/esm/components/avatar.js +1 -1
  499. package/dist/esm/components/avatar.props.d.ts +0 -5
  500. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  501. package/dist/esm/components/avatar.props.js +1 -1
  502. package/dist/esm/components/badge.js +1 -1
  503. package/dist/esm/components/badge.props.d.ts +0 -5
  504. package/dist/esm/components/badge.props.d.ts.map +1 -1
  505. package/dist/esm/components/badge.props.js +1 -1
  506. package/dist/esm/components/blockquote.js +1 -1
  507. package/dist/esm/components/blockquote.props.d.ts +3 -2
  508. package/dist/esm/components/blockquote.props.d.ts.map +1 -1
  509. package/dist/esm/components/blockquote.props.js +1 -1
  510. package/dist/esm/components/box.js +1 -1
  511. package/dist/esm/components/box.props.js +1 -1
  512. package/dist/esm/components/button.js +1 -1
  513. package/dist/esm/components/button.props.js +1 -1
  514. package/dist/esm/components/callout.js +1 -1
  515. package/dist/esm/components/callout.props.d.ts +0 -5
  516. package/dist/esm/components/callout.props.d.ts.map +1 -1
  517. package/dist/esm/components/callout.props.js +1 -1
  518. package/dist/esm/components/card.js +1 -1
  519. package/dist/esm/components/card.props.js +1 -1
  520. package/dist/esm/components/chatbar.d.ts +46 -44
  521. package/dist/esm/components/chatbar.d.ts.map +1 -1
  522. package/dist/esm/components/chatbar.js +1 -1
  523. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  524. package/dist/esm/components/checkbox-cards.js +1 -1
  525. package/dist/esm/components/checkbox-cards.props.d.ts +0 -5
  526. package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
  527. package/dist/esm/components/checkbox-cards.props.js +1 -1
  528. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  529. package/dist/esm/components/checkbox-group.js +1 -1
  530. package/dist/esm/components/checkbox-group.primitive.js +1 -1
  531. package/dist/esm/components/checkbox-group.props.d.ts +0 -5
  532. package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
  533. package/dist/esm/components/checkbox-group.props.js +1 -1
  534. package/dist/esm/components/checkbox.js +1 -1
  535. package/dist/esm/components/checkbox.props.js +1 -1
  536. package/dist/esm/components/code.js +1 -1
  537. package/dist/esm/components/code.props.d.ts +3 -2
  538. package/dist/esm/components/code.props.d.ts.map +1 -1
  539. package/dist/esm/components/code.props.js +1 -1
  540. package/dist/esm/components/combobox.d.ts +28 -15
  541. package/dist/esm/components/combobox.d.ts.map +1 -1
  542. package/dist/esm/components/combobox.js +1 -1
  543. package/dist/esm/components/combobox.props.d.ts +46 -8
  544. package/dist/esm/components/combobox.props.d.ts.map +1 -1
  545. package/dist/esm/components/combobox.props.js +1 -1
  546. package/dist/esm/components/container.js +1 -1
  547. package/dist/esm/components/container.props.js +1 -1
  548. package/dist/esm/components/context-menu.d.ts +18 -5
  549. package/dist/esm/components/context-menu.d.ts.map +1 -1
  550. package/dist/esm/components/context-menu.js +1 -1
  551. package/dist/esm/components/context-menu.props.d.ts +1 -1
  552. package/dist/esm/components/context-menu.props.d.ts.map +1 -1
  553. package/dist/esm/components/context-menu.props.js +1 -1
  554. package/dist/esm/components/data-list.js +1 -1
  555. package/dist/esm/components/data-list.props.d.ts +4 -3
  556. package/dist/esm/components/data-list.props.d.ts.map +1 -1
  557. package/dist/esm/components/data-list.props.js +1 -1
  558. package/dist/esm/components/dialog.js +1 -1
  559. package/dist/esm/components/dialog.props.js +1 -1
  560. package/dist/esm/components/dropdown-menu.d.ts +11 -18
  561. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  562. package/dist/esm/components/dropdown-menu.js +1 -1
  563. package/dist/esm/components/dropdown-menu.props.js +1 -1
  564. package/dist/esm/components/em.js +1 -1
  565. package/dist/esm/components/em.props.js +1 -1
  566. package/dist/esm/components/flex.js +1 -1
  567. package/dist/esm/components/flex.props.js +1 -1
  568. package/dist/esm/components/grid.js +1 -1
  569. package/dist/esm/components/grid.props.js +1 -1
  570. package/dist/esm/components/heading.js +1 -1
  571. package/dist/esm/components/heading.props.d.ts +3 -2
  572. package/dist/esm/components/heading.props.d.ts.map +1 -1
  573. package/dist/esm/components/heading.props.js +1 -1
  574. package/dist/esm/components/hover-card.js +1 -1
  575. package/dist/esm/components/hover-card.props.js +1 -1
  576. package/dist/esm/components/icon-button.js +1 -1
  577. package/dist/esm/components/icon-button.props.js +1 -1
  578. package/dist/esm/components/icons.js +1 -1
  579. package/dist/esm/components/image.js +1 -1
  580. package/dist/esm/components/image.props.js +1 -1
  581. package/dist/esm/components/index.js +1 -1
  582. package/dist/esm/components/inset.js +1 -1
  583. package/dist/esm/components/inset.props.js +1 -1
  584. package/dist/esm/components/kbd.js +1 -1
  585. package/dist/esm/components/kbd.props.js +1 -1
  586. package/dist/esm/components/link.js +1 -1
  587. package/dist/esm/components/link.props.d.ts +0 -5
  588. package/dist/esm/components/link.props.d.ts.map +1 -1
  589. package/dist/esm/components/link.props.js +1 -1
  590. package/dist/esm/components/navbar.js +1 -1
  591. package/dist/esm/components/navbar.props.js +1 -1
  592. package/dist/esm/components/popover.js +1 -1
  593. package/dist/esm/components/popover.props.js +1 -1
  594. package/dist/esm/components/portal.js +1 -1
  595. package/dist/esm/components/progress.js +1 -1
  596. package/dist/esm/components/progress.props.d.ts +0 -5
  597. package/dist/esm/components/progress.props.d.ts.map +1 -1
  598. package/dist/esm/components/progress.props.js +1 -1
  599. package/dist/esm/components/quote.js +1 -1
  600. package/dist/esm/components/quote.props.js +1 -1
  601. package/dist/esm/components/radio-cards.js +1 -1
  602. package/dist/esm/components/radio-cards.props.d.ts +0 -5
  603. package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
  604. package/dist/esm/components/radio-cards.props.js +1 -1
  605. package/dist/esm/components/radio-group.d.ts.map +1 -1
  606. package/dist/esm/components/radio-group.js +1 -1
  607. package/dist/esm/components/radio-group.props.d.ts +0 -5
  608. package/dist/esm/components/radio-group.props.d.ts.map +1 -1
  609. package/dist/esm/components/radio-group.props.js +1 -1
  610. package/dist/esm/components/radio.js +1 -1
  611. package/dist/esm/components/radio.props.js +1 -1
  612. package/dist/esm/components/reset.js +1 -1
  613. package/dist/esm/components/schemas/base-button.schema.d.ts +111 -257
  614. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
  615. package/dist/esm/components/schemas/base-button.schema.js +1 -1
  616. package/dist/esm/components/schemas/button.schema.d.ts +136 -558
  617. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
  618. package/dist/esm/components/schemas/button.schema.js +1 -1
  619. package/dist/esm/components/schemas/icon-button.schema.d.ts +123 -241
  620. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
  621. package/dist/esm/components/schemas/icon-button.schema.js +1 -1
  622. package/dist/esm/components/schemas/index.js +1 -1
  623. package/dist/esm/components/schemas/shell.schema.d.ts +592 -851
  624. package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
  625. package/dist/esm/components/schemas/shell.schema.js +1 -1
  626. package/dist/esm/components/schemas/toggle-button.schema.d.ts +138 -1027
  627. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
  628. package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
  629. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +124 -466
  630. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  631. package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
  632. package/dist/esm/components/scroll-area.js +1 -1
  633. package/dist/esm/components/scroll-area.props.js +1 -1
  634. package/dist/esm/components/section.js +1 -1
  635. package/dist/esm/components/section.props.js +1 -1
  636. package/dist/esm/components/segmented-control.js +1 -1
  637. package/dist/esm/components/segmented-control.props.js +1 -1
  638. package/dist/esm/components/select.js +1 -1
  639. package/dist/esm/components/select.props.d.ts +0 -5
  640. package/dist/esm/components/select.props.d.ts.map +1 -1
  641. package/dist/esm/components/select.props.js +1 -1
  642. package/dist/esm/components/separator.js +1 -1
  643. package/dist/esm/components/separator.props.js +1 -1
  644. package/dist/esm/components/sheet.js +1 -1
  645. package/dist/esm/components/shell.context.js +1 -1
  646. package/dist/esm/components/shell.hooks.js +1 -1
  647. package/dist/esm/components/shell.js +1 -1
  648. package/dist/esm/components/shell.types.js +1 -1
  649. package/dist/esm/components/sidebar.d.ts +0 -1
  650. package/dist/esm/components/sidebar.d.ts.map +1 -1
  651. package/dist/esm/components/sidebar.js +1 -1
  652. package/dist/esm/components/sidebar.props.d.ts +0 -5
  653. package/dist/esm/components/sidebar.props.d.ts.map +1 -1
  654. package/dist/esm/components/sidebar.props.js +1 -1
  655. package/dist/esm/components/skeleton.js +1 -1
  656. package/dist/esm/components/skeleton.props.js +1 -1
  657. package/dist/esm/components/slider.js +1 -1
  658. package/dist/esm/components/slider.props.d.ts +0 -5
  659. package/dist/esm/components/slider.props.d.ts.map +1 -1
  660. package/dist/esm/components/slider.props.js +1 -1
  661. package/dist/esm/components/slot.d.ts +6 -2
  662. package/dist/esm/components/slot.d.ts.map +1 -1
  663. package/dist/esm/components/slot.js +1 -1
  664. package/dist/esm/components/spinner.js +1 -1
  665. package/dist/esm/components/spinner.props.js +1 -1
  666. package/dist/esm/components/strong.js +1 -1
  667. package/dist/esm/components/strong.props.js +1 -1
  668. package/dist/esm/components/switch.d.ts.map +1 -1
  669. package/dist/esm/components/switch.js +1 -1
  670. package/dist/esm/components/switch.props.d.ts +0 -5
  671. package/dist/esm/components/switch.props.d.ts.map +1 -1
  672. package/dist/esm/components/switch.props.js +1 -1
  673. package/dist/esm/components/tab-nav.js +1 -1
  674. package/dist/esm/components/tab-nav.props.js +1 -1
  675. package/dist/esm/components/table.js +1 -1
  676. package/dist/esm/components/table.props.js +1 -1
  677. package/dist/esm/components/tabs.js +1 -1
  678. package/dist/esm/components/tabs.props.js +1 -1
  679. package/dist/esm/components/text-area.js +1 -1
  680. package/dist/esm/components/text-area.props.js +1 -1
  681. package/dist/esm/components/text-field.js +1 -1
  682. package/dist/esm/components/text-field.props.js +1 -1
  683. package/dist/esm/components/text.js +1 -1
  684. package/dist/esm/components/text.props.d.ts +3 -2
  685. package/dist/esm/components/text.props.d.ts.map +1 -1
  686. package/dist/esm/components/text.props.js +1 -1
  687. package/dist/esm/components/theme-panel.js +1 -1
  688. package/dist/esm/components/theme.js +1 -1
  689. package/dist/esm/components/theme.props.d.ts +1 -1
  690. package/dist/esm/components/theme.props.js +1 -1
  691. package/dist/esm/components/toggle-button.js +1 -1
  692. package/dist/esm/components/toggle-icon-button.js +1 -1
  693. package/dist/esm/components/toolbar.js +1 -1
  694. package/dist/esm/components/tooltip.js +1 -1
  695. package/dist/esm/components/tooltip.props.js +1 -1
  696. package/dist/esm/components/user-card.d.ts.map +1 -1
  697. package/dist/esm/components/user-card.js +1 -1
  698. package/dist/esm/components/user-card.props.d.ts +0 -5
  699. package/dist/esm/components/user-card.props.d.ts.map +1 -1
  700. package/dist/esm/components/user-card.props.js +1 -1
  701. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  702. package/dist/esm/components/virtual-menu.js +1 -1
  703. package/dist/esm/components/visually-hidden.js +1 -1
  704. package/dist/esm/helpers/compile-prop-defs.js +1 -1
  705. package/dist/esm/helpers/extract-margin-props.js +1 -1
  706. package/dist/esm/helpers/extract-props.js +1 -1
  707. package/dist/esm/helpers/font-config.js +1 -1
  708. package/dist/esm/helpers/get-margin-styles.js +1 -1
  709. package/dist/esm/helpers/get-matching-gray-color.js +1 -1
  710. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  711. package/dist/esm/helpers/get-subtree.js +1 -1
  712. package/dist/esm/helpers/has-own-property.js +1 -1
  713. package/dist/esm/helpers/index.js +1 -1
  714. package/dist/esm/helpers/inert.js +1 -1
  715. package/dist/esm/helpers/is-responsive-object.js +1 -1
  716. package/dist/esm/helpers/map-prop-values.js +1 -1
  717. package/dist/esm/helpers/merge-styles.js +1 -1
  718. package/dist/esm/helpers/normalize-to-px.js +1 -1
  719. package/dist/esm/helpers/require-react-element.js +1 -1
  720. package/dist/esm/helpers/use-deprecation-warning.js +1 -1
  721. package/dist/esm/hooks/index.js +1 -1
  722. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
  723. package/dist/esm/hooks/use-breakpoint.d.ts +4 -1
  724. package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
  725. package/dist/esm/hooks/use-breakpoint.js +1 -1
  726. package/dist/esm/hooks/use-live-announcer.js +1 -1
  727. package/dist/esm/hooks/use-prop-synced-state.js +1 -1
  728. package/dist/esm/hooks/use-toggle-state.js +1 -1
  729. package/dist/esm/hooks/use-tooltip-wrapper.js +1 -1
  730. package/dist/esm/index.js +1 -1
  731. package/dist/esm/props/as-child.prop.js +1 -1
  732. package/dist/esm/props/color.prop.js +1 -1
  733. package/dist/esm/props/emphasis.prop.d.ts +11 -0
  734. package/dist/esm/props/emphasis.prop.d.ts.map +1 -0
  735. package/dist/esm/props/emphasis.prop.js +2 -0
  736. package/dist/esm/props/emphasis.prop.js.map +7 -0
  737. package/dist/esm/props/font-family.prop.js +1 -1
  738. package/dist/esm/props/gap.props.js +1 -1
  739. package/dist/esm/props/height.props.js +1 -1
  740. package/dist/esm/props/index.d.ts +1 -1
  741. package/dist/esm/props/index.d.ts.map +1 -1
  742. package/dist/esm/props/index.js +1 -1
  743. package/dist/esm/props/layout.props.js +1 -1
  744. package/dist/esm/props/leading-trim.prop.js +1 -1
  745. package/dist/esm/props/margin.props.js +1 -1
  746. package/dist/esm/props/padding.props.js +1 -1
  747. package/dist/esm/props/prop-def.js +1 -1
  748. package/dist/esm/props/radius.prop.js +1 -1
  749. package/dist/esm/props/shadow.props.js +1 -1
  750. package/dist/esm/props/text-align.prop.js +1 -1
  751. package/dist/esm/props/text-wrap.prop.js +1 -1
  752. package/dist/esm/props/truncate.prop.js +1 -1
  753. package/dist/esm/props/weight.prop.js +1 -1
  754. package/dist/esm/props/width.props.js +1 -1
  755. package/fonts.css +2 -0
  756. package/package.json +36 -36
  757. package/schemas/base-button.json +64 -63
  758. package/schemas/button.json +78 -77
  759. package/schemas/icon-button.json +76 -75
  760. package/schemas/index.json +380 -375
  761. package/schemas/toggle-button.json +82 -81
  762. package/schemas/toggle-icon-button.json +80 -79
  763. package/src/components/_internal/base-button.css +14 -69
  764. package/src/components/_internal/base-button.props.ts +2 -4
  765. package/src/components/_internal/base-checkbox.css +9 -63
  766. package/src/components/_internal/base-checkbox.props.ts +0 -2
  767. package/src/components/_internal/base-menu.css +56 -183
  768. package/src/components/_internal/base-menu.props.ts +0 -2
  769. package/src/components/_internal/base-menu.utils.tsx +144 -0
  770. package/src/components/_internal/base-radio.css +9 -46
  771. package/src/components/_internal/base-radio.props.ts +0 -2
  772. package/src/components/_internal/base-sidebar-menu.css +3 -3
  773. package/src/components/_internal/base-tab-list.css +1 -7
  774. package/src/components/_internal/base-tab-list.props.ts +0 -2
  775. package/src/components/_internal/dropdown-menu-drill-down.tsx +281 -183
  776. package/src/components/_internal/menu-context.tsx +24 -15
  777. package/src/components/accordion.css +4 -62
  778. package/src/components/accordion.props.tsx +0 -3
  779. package/src/components/avatar.css +10 -61
  780. package/src/components/avatar.props.tsx +0 -2
  781. package/src/components/badge.css +7 -32
  782. package/src/components/badge.props.tsx +0 -2
  783. package/src/components/blockquote.props.tsx +2 -2
  784. package/src/components/callout.css +5 -25
  785. package/src/components/callout.props.tsx +0 -2
  786. package/src/components/chatbar.css +94 -26
  787. package/src/components/chatbar.tsx +742 -735
  788. package/src/components/checkbox-cards.props.tsx +0 -2
  789. package/src/components/checkbox-cards.tsx +1 -4
  790. package/src/components/checkbox-group.tsx +0 -2
  791. package/src/components/code.css +36 -36
  792. package/src/components/code.props.tsx +2 -2
  793. package/src/components/combobox.css +61 -120
  794. package/src/components/combobox.props.tsx +15 -5
  795. package/src/components/combobox.tsx +439 -215
  796. package/src/components/context-menu.props.tsx +4 -1
  797. package/src/components/context-menu.tsx +106 -63
  798. package/src/components/data-list.css +14 -9
  799. package/src/components/data-list.props.tsx +5 -2
  800. package/src/components/dropdown-menu.css +41 -121
  801. package/src/components/dropdown-menu.tsx +427 -276
  802. package/src/components/heading.css +16 -5
  803. package/src/components/heading.props.tsx +2 -2
  804. package/src/components/link.css +3 -4
  805. package/src/components/link.props.tsx +0 -2
  806. package/src/components/progress.css +3 -10
  807. package/src/components/progress.props.tsx +0 -2
  808. package/src/components/radio-cards.css +1 -4
  809. package/src/components/radio-cards.props.tsx +0 -2
  810. package/src/components/radio-group.props.tsx +0 -2
  811. package/src/components/radio-group.tsx +0 -2
  812. package/src/components/schemas/base-button.schema.ts +0 -10
  813. package/src/components/schemas/shell.schema.ts +11 -18
  814. package/src/components/scroll-area.css +2 -3
  815. package/src/components/select.css +13 -96
  816. package/src/components/select.props.tsx +0 -2
  817. package/src/components/sheet.tsx +2 -2
  818. package/src/components/sidebar.css +21 -115
  819. package/src/components/sidebar.props.tsx +0 -2
  820. package/src/components/sidebar.tsx +2 -5
  821. package/src/components/slider.css +4 -37
  822. package/src/components/slider.props.tsx +0 -2
  823. package/src/components/slider.tsx +1 -1
  824. package/src/components/switch.css +4 -23
  825. package/src/components/switch.props.tsx +0 -2
  826. package/src/components/switch.tsx +1 -3
  827. package/src/components/text.css +16 -5
  828. package/src/components/text.props.tsx +2 -2
  829. package/src/components/theme-panel.tsx +1 -1
  830. package/src/components/theme.props.tsx +1 -1
  831. package/src/components/user-card.props.tsx +0 -2
  832. package/src/components/user-card.tsx +1 -2
  833. package/src/components/virtual-menu.tsx +12 -8
  834. package/src/hooks/use-breakpoint.ts +19 -3
  835. package/src/props/color.prop.ts +1 -1
  836. package/src/props/emphasis.prop.ts +19 -0
  837. package/src/props/index.ts +1 -1
  838. package/src/styles/fonts.css +6 -1
  839. package/src/styles/tokens/color.css +109 -0
  840. package/src/styles/tokens/constants.css +0 -1
  841. package/src/styles/tokens/font-family.css +13 -5
  842. package/styles.css +694 -1225
  843. package/tokens/base.css +205 -151
  844. package/tokens.css +205 -152
  845. package/dist/cjs/props/high-contrast.prop.d.ts +0 -9
  846. package/dist/cjs/props/high-contrast.prop.d.ts.map +0 -1
  847. package/dist/cjs/props/high-contrast.prop.js +0 -2
  848. package/dist/cjs/props/high-contrast.prop.js.map +0 -7
  849. package/dist/esm/chunk-3DC63EZP.js +0 -2
  850. package/dist/esm/chunk-3DC63EZP.js.map +0 -7
  851. package/dist/esm/chunk-3XT5P2HO.js +0 -2
  852. package/dist/esm/chunk-4TCXI3L3.js +0 -2
  853. package/dist/esm/chunk-4TCXI3L3.js.map +0 -7
  854. package/dist/esm/chunk-4XJY6FIK.js +0 -2
  855. package/dist/esm/chunk-4Z33XHOK.js +0 -2
  856. package/dist/esm/chunk-4Z33XHOK.js.map +0 -7
  857. package/dist/esm/chunk-666GX7O5.js +0 -2
  858. package/dist/esm/chunk-6HEAF5IT.js +0 -2
  859. package/dist/esm/chunk-6HEAF5IT.js.map +0 -7
  860. package/dist/esm/chunk-A2RZGGMY.js +0 -2
  861. package/dist/esm/chunk-A2RZGGMY.js.map +0 -7
  862. package/dist/esm/chunk-A3NH376A.js +0 -2
  863. package/dist/esm/chunk-A3NH376A.js.map +0 -7
  864. package/dist/esm/chunk-AU3D6F42.js +0 -2
  865. package/dist/esm/chunk-B24BDVG2.js +0 -2
  866. package/dist/esm/chunk-B24BDVG2.js.map +0 -7
  867. package/dist/esm/chunk-BI7W34WW.js +0 -2
  868. package/dist/esm/chunk-BI7W34WW.js.map +0 -7
  869. package/dist/esm/chunk-CBR3VIRS.js +0 -2
  870. package/dist/esm/chunk-CBR3VIRS.js.map +0 -7
  871. package/dist/esm/chunk-D2AZAGGP.js +0 -2
  872. package/dist/esm/chunk-D2AZAGGP.js.map +0 -7
  873. package/dist/esm/chunk-E2Z5IA2P.js +0 -2
  874. package/dist/esm/chunk-E2Z5IA2P.js.map +0 -7
  875. package/dist/esm/chunk-F7IUK2I2.js +0 -2
  876. package/dist/esm/chunk-FLBLS7M4.js +0 -2
  877. package/dist/esm/chunk-FLBLS7M4.js.map +0 -7
  878. package/dist/esm/chunk-GSIE6SUD.js +0 -2
  879. package/dist/esm/chunk-GSIE6SUD.js.map +0 -7
  880. package/dist/esm/chunk-GWXVETMF.js +0 -2
  881. package/dist/esm/chunk-GWXVETMF.js.map +0 -7
  882. package/dist/esm/chunk-HOHUDTTL.js +0 -2
  883. package/dist/esm/chunk-HOHUDTTL.js.map +0 -7
  884. package/dist/esm/chunk-HUKPWYG2.js +0 -2
  885. package/dist/esm/chunk-HUKPWYG2.js.map +0 -7
  886. package/dist/esm/chunk-HVWEPVBH.js +0 -2
  887. package/dist/esm/chunk-HVWEPVBH.js.map +0 -7
  888. package/dist/esm/chunk-IDYHZIS6.js +0 -2
  889. package/dist/esm/chunk-IDYHZIS6.js.map +0 -7
  890. package/dist/esm/chunk-IGQRZCAI.js +0 -2
  891. package/dist/esm/chunk-IGQRZCAI.js.map +0 -7
  892. package/dist/esm/chunk-ILRJA7FU.js +0 -2
  893. package/dist/esm/chunk-ILRJA7FU.js.map +0 -7
  894. package/dist/esm/chunk-KKBP2CRH.js +0 -2
  895. package/dist/esm/chunk-KKBP2CRH.js.map +0 -7
  896. package/dist/esm/chunk-KTAFIHJY.js +0 -2
  897. package/dist/esm/chunk-KTAFIHJY.js.map +0 -7
  898. package/dist/esm/chunk-MCQAJV4K.js +0 -2
  899. package/dist/esm/chunk-MCQAJV4K.js.map +0 -7
  900. package/dist/esm/chunk-MJ47O7KH.js +0 -2
  901. package/dist/esm/chunk-MJ47O7KH.js.map +0 -7
  902. package/dist/esm/chunk-MOR3NSXQ.js +0 -2
  903. package/dist/esm/chunk-MOR3NSXQ.js.map +0 -7
  904. package/dist/esm/chunk-N2B7TWIP.js +0 -2
  905. package/dist/esm/chunk-N2B7TWIP.js.map +0 -7
  906. package/dist/esm/chunk-QCNUTT4R.js +0 -2
  907. package/dist/esm/chunk-QCNUTT4R.js.map +0 -7
  908. package/dist/esm/chunk-QEOAXJLN.js +0 -2
  909. package/dist/esm/chunk-QEOAXJLN.js.map +0 -7
  910. package/dist/esm/chunk-SO67YEVQ.js +0 -2
  911. package/dist/esm/chunk-TBJ6L4NL.js +0 -2
  912. package/dist/esm/chunk-TBJ6L4NL.js.map +0 -7
  913. package/dist/esm/chunk-TGN5ZJU5.js +0 -2
  914. package/dist/esm/chunk-TGN5ZJU5.js.map +0 -7
  915. package/dist/esm/chunk-UGD7Z3L4.js +0 -2
  916. package/dist/esm/chunk-UGD7Z3L4.js.map +0 -7
  917. package/dist/esm/chunk-UMX5MGLG.js +0 -2
  918. package/dist/esm/chunk-UMX5MGLG.js.map +0 -7
  919. package/dist/esm/chunk-WR7YLY46.js +0 -2
  920. package/dist/esm/chunk-WR7YLY46.js.map +0 -7
  921. package/dist/esm/chunk-WZETC7WV.js +0 -2
  922. package/dist/esm/chunk-WZETC7WV.js.map +0 -7
  923. package/dist/esm/chunk-XGGLYV5D.js +0 -2
  924. package/dist/esm/chunk-XGGLYV5D.js.map +0 -7
  925. package/dist/esm/chunk-XKASPWCJ.js +0 -2
  926. package/dist/esm/chunk-XKASPWCJ.js.map +0 -7
  927. package/dist/esm/chunk-YEB3H7QN.js +0 -2
  928. package/dist/esm/chunk-YEB3H7QN.js.map +0 -7
  929. package/dist/esm/chunk-ZRKE3NVU.js +0 -2
  930. package/dist/esm/chunk-ZRKE3NVU.js.map +0 -7
  931. package/dist/esm/chunk-ZY6SQWHT.js +0 -2
  932. package/dist/esm/chunk-ZY6SQWHT.js.map +0 -7
  933. package/dist/esm/props/high-contrast.prop.d.ts +0 -9
  934. package/dist/esm/props/high-contrast.prop.d.ts.map +0 -1
  935. package/dist/esm/props/high-contrast.prop.js +0 -2
  936. package/src/props/high-contrast.prop.ts +0 -13
  937. /package/dist/esm/{chunk-2FYJTSOP.js.map → chunk-2SZZ75RJ.js.map} +0 -0
  938. /package/dist/esm/{chunk-F7IUK2I2.js.map → chunk-5SNHUVDA.js.map} +0 -0
  939. /package/dist/esm/{chunk-H7ST535H.js.map → chunk-5WRCK4R7.js.map} +0 -0
  940. /package/dist/esm/{chunk-MHPPVJDB.js.map → chunk-67MKPTZJ.js.map} +0 -0
  941. /package/dist/esm/{chunk-CRWYCLTE.js.map → chunk-ABSKRHVM.js.map} +0 -0
  942. /package/dist/esm/{chunk-PTLFMWCN.js.map → chunk-ALWNS44Q.js.map} +0 -0
  943. /package/dist/esm/{chunk-3MWWP4MW.js.map → chunk-BBJUB52V.js.map} +0 -0
  944. /package/dist/esm/{chunk-GYBLXQ4R.js.map → chunk-CDG5WH4U.js.map} +0 -0
  945. /package/dist/esm/{chunk-CVWCKOHO.js.map → chunk-CEIK5U6C.js.map} +0 -0
  946. /package/dist/esm/{chunk-374ZYJUP.js.map → chunk-CESYMTJQ.js.map} +0 -0
  947. /package/dist/esm/{chunk-P7IAHW4V.js.map → chunk-CIYF56YS.js.map} +0 -0
  948. /package/dist/esm/{chunk-LKAK5GXF.js.map → chunk-CKMMUHKE.js.map} +0 -0
  949. /package/dist/esm/{chunk-SESAEJ6W.js.map → chunk-CLMOWP5T.js.map} +0 -0
  950. /package/dist/esm/{chunk-DUHJVT64.js.map → chunk-CRSHBENJ.js.map} +0 -0
  951. /package/dist/esm/{chunk-GJSGKE7B.js.map → chunk-CTA5ODAO.js.map} +0 -0
  952. /package/dist/esm/{chunk-CWRNW44F.js.map → chunk-DSJY5RI3.js.map} +0 -0
  953. /package/dist/esm/{chunk-M24UXMOQ.js.map → chunk-EE2IH2GL.js.map} +0 -0
  954. /package/dist/esm/{chunk-NMKPFUNP.js.map → chunk-EPTYNVCU.js.map} +0 -0
  955. /package/dist/esm/{chunk-XMRIRFM7.js.map → chunk-FG7XM7KJ.js.map} +0 -0
  956. /package/dist/esm/{chunk-6IGTK4JE.js.map → chunk-GAV3NHYL.js.map} +0 -0
  957. /package/dist/esm/{chunk-TOOSHJOA.js.map → chunk-GO7OHBHW.js.map} +0 -0
  958. /package/dist/esm/{chunk-MBCBP73P.js.map → chunk-HJU4I34X.js.map} +0 -0
  959. /package/dist/esm/{chunk-VX6ARMWP.js.map → chunk-HSAG7C53.js.map} +0 -0
  960. /package/dist/esm/{chunk-K6QZMNCD.js.map → chunk-IFM4EMZB.js.map} +0 -0
  961. /package/dist/esm/{chunk-HF5WY5YE.js.map → chunk-JGLAE5G7.js.map} +0 -0
  962. /package/dist/esm/{chunk-4YFJWXL2.js.map → chunk-JJKQ7CGI.js.map} +0 -0
  963. /package/dist/esm/{chunk-P7HYVJSU.js.map → chunk-K3UAS7RW.js.map} +0 -0
  964. /package/dist/esm/{chunk-25WZA7ZU.js.map → chunk-KFR3CK24.js.map} +0 -0
  965. /package/dist/esm/{chunk-WFMYNZXZ.js.map → chunk-KMPE7TJ6.js.map} +0 -0
  966. /package/dist/esm/{chunk-WXP6MMUB.js.map → chunk-KOFEFBB3.js.map} +0 -0
  967. /package/dist/esm/{chunk-W7N7V5YD.js.map → chunk-M6DJRFJZ.js.map} +0 -0
  968. /package/dist/esm/{chunk-7QDTSBJF.js.map → chunk-MCPRXVKZ.js.map} +0 -0
  969. /package/dist/esm/{chunk-DNHUQLXO.js.map → chunk-MEO7MJMQ.js.map} +0 -0
  970. /package/dist/esm/{chunk-YVBCDTTD.js.map → chunk-MN3XALXD.js.map} +0 -0
  971. /package/dist/esm/{chunk-F7IYL2VW.js.map → chunk-MS5J4MF6.js.map} +0 -0
  972. /package/dist/esm/{chunk-OSRJRBKP.js.map → chunk-MTOLKA6S.js.map} +0 -0
  973. /package/dist/esm/{chunk-MBE2YSBU.js.map → chunk-N4GTDLRD.js.map} +0 -0
  974. /package/dist/esm/{chunk-FHOCUZDR.js.map → chunk-NIQT45PJ.js.map} +0 -0
  975. /package/dist/esm/{chunk-TOLLPRMM.js.map → chunk-OFUNVHZ5.js.map} +0 -0
  976. /package/dist/esm/{chunk-RMKXWYOV.js.map → chunk-OLAWVEAI.js.map} +0 -0
  977. /package/dist/esm/{chunk-3XT5P2HO.js.map → chunk-OS3FCYZY.js.map} +0 -0
  978. /package/dist/esm/{chunk-UWT6TE5D.js.map → chunk-OTXCKEWT.js.map} +0 -0
  979. /package/dist/esm/{chunk-D6B7IMZU.js.map → chunk-RNTCHVFI.js.map} +0 -0
  980. /package/dist/esm/{chunk-YUP6EICB.js.map → chunk-SEY4NA45.js.map} +0 -0
  981. /package/dist/esm/{chunk-YV2KYHGR.js.map → chunk-UBOOUDS4.js.map} +0 -0
  982. /package/dist/esm/{chunk-S56YSRHP.js.map → chunk-VHECAEUP.js.map} +0 -0
  983. /package/dist/esm/{chunk-4AQTUBVP.js.map → chunk-VNH7BJOA.js.map} +0 -0
  984. /package/dist/esm/{chunk-IEWCQU2S.js.map → chunk-VR7ZAFYN.js.map} +0 -0
  985. /package/dist/esm/{chunk-PLWXTEVE.js.map → chunk-W2FOBR5Q.js.map} +0 -0
  986. /package/dist/esm/{chunk-FXUUI6Z2.js.map → chunk-WHFJ4JUN.js.map} +0 -0
  987. /package/dist/esm/{chunk-2UPAYDKR.js.map → chunk-X7V3V3W4.js.map} +0 -0
  988. /package/dist/esm/{chunk-S2HA3W3V.js.map → chunk-Y5RCH23Z.js.map} +0 -0
  989. /package/dist/esm/{chunk-OWAUCLRT.js.map → chunk-YBSRX63K.js.map} +0 -0
  990. /package/dist/esm/{chunk-KPBG7CIL.js.map → chunk-ZO7TTWJI.js.map} +0 -0
  991. /package/dist/esm/{props/high-contrast.prop.js.map → components/_internal/base-menu.utils.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/progress.props.tsx"],
4
- "sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['surface', 'soft', 'outline'] as const;\n\nconst progressPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },\n ...colorPropDef,\n ...highContrastPropDef,\n ...radiusPropDef,\n duration: { type: 'string' },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n duration: PropDef<string>;\n};\n\nexport { progressPropDefs };\n"],
5
- "mappings": "wHAMA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,UAAW,OAAQ,SAAS,EAExCC,EAAmB,CACvB,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQF,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,SAAU,EACvF,GAAGE,EACH,GAAGC,EACH,GAAGC,EACH,SAAU,CAAE,KAAM,QAAS,CAC7B",
6
- "names": ["sizes", "variants", "progressPropDefs", "colorPropDef", "highContrastPropDef", "radiusPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-HOHUDTTL.js";import{c as e}from"./chunk-66ZLZAAJ.js";var a=["1","2","3","4"],t=["surface","soft","outline"],n=["solid","translucent"],r=["solid","translucent"],u={size:{type:"enum",className:"rt-r-size",values:a,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:t,default:"surface"},...e,...s,material:{type:"enum",values:r,default:void 0},panelBackground:{type:"enum",values:n,default:void 0}};export{u as a};
2
- //# sourceMappingURL=chunk-ILRJA7FU.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/switch.props.tsx"],
4
- "sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['surface', 'soft', 'outline'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst switchPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },\n ...colorPropDef,\n ...highContrastPropDef,\n /**\n * Material type for visual rendering and depth effects\n * Controls how the switch renders its visual elements\n */\n material: { type: 'enum', values: materials, default: undefined },\n /**\n * Panel background type (deprecated)\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n material: PropDef<(typeof materials)[number] | undefined>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n};\n\nexport { switchPropDefs };\n"],
5
- "mappings": "gFAKA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,UAAW,OAAQ,SAAS,EACxCC,EAAmB,CAAC,QAAS,aAAa,EAC1CC,EAAY,CAAC,QAAS,aAAa,EAEnCC,EAAiB,CACrB,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQJ,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,SAAU,EACvF,GAAGI,EACH,GAAGC,EAKH,SAAU,CAAE,KAAM,OAAQ,OAAQH,EAAW,QAAS,MAAU,EAKhE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,EAAkB,QAAS,MAAU,CAChF",
6
- "names": ["sizes", "variants", "panelBackgrounds", "materials", "switchPropDefs", "colorPropDef", "highContrastPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as T}from"./chunk-E67CIG6A.js";import{a as y}from"./chunk-GJSGKE7B.js";import{b as K,c as A,d as S,e as j,f as F}from"./chunk-IX5HIHVI.js";import{a as H}from"./chunk-MJJ7XDIP.js";import{b as V,c as h}from"./chunk-YUP6EICB.js";import{a as B}from"./chunk-5TXQLK4G.js";import{a as C}from"./chunk-6FLLFCBU.js";import{b as M,c as G,d as L,e as W,f as O}from"./chunk-HUKPWYG2.js";import{d as _,g as b,h as f,i as I,j as g}from"./chunk-ZY6SQWHT.js";import{a as z}from"./chunk-QCNUTT4R.js";import{a as pe}from"./chunk-3XT5P2HO.js";var me={};pe(me,{CheckboxItem:()=>oe,Content:()=>U,Group:()=>Z,Item:()=>Y,Label:()=>X,RadioGroup:()=>$,RadioItem:()=>ee,Root:()=>q,Separator:()=>x,Sub:()=>ne,SubContent:()=>te,SubTrigger:()=>re,Trigger:()=>J,TriggerIcon:()=>ae});import*as e from"react";import d from"classnames";import{DropdownMenu as u,Slot as ue}from"radix-ui";var q=n=>e.createElement(u.Root,{...n});q.displayName="DropdownMenu.Root";var J=e.forwardRef(({children:n,...o},r)=>e.createElement(u.Trigger,{...o,ref:r,asChild:!0},H(n)));J.displayName="DropdownMenu.Trigger";function de({children:n}){let o=f();return!o||o.behavior==="cascade"?e.createElement(e.Fragment,null,n):e.createElement("div",{className:"rt-DropdownMenuDrillDownRoot","data-drill-down-active":o.isRoot?void 0:!0,"data-animation-direction":o.animationDirection??void 0},n)}var Q=e.createContext({}),U=e.forwardRef((n,o)=>{let r=V();B(n.panelBackground);let a=n.material??n.panelBackground??r.panelBackground,t=e.useMemo(()=>({material:a,accentColor:r.accentColor}),[a,r.accentColor]),{size:s=M.size.default,variant:p=M.variant.default,highContrast:m=M.highContrast.default,material:i=t.material,submenuBehavior:l,virtualized:D=!1}=n,{className:w,children:c,color:P,container:N,forceMount:R,material:E,panelBackground:le,submenuBehavior:De,virtualized:we,...ie}=C(n,M),v=e.useMemo(()=>P||t.accentColor,[P,t.accentColor]),k=e.createElement(z,{size:s},e.createElement(Q.Provider,{value:e.useMemo(()=>({size:s,variant:p,color:v,highContrast:m,material:i}),[s,p,v,m,i])},e.createElement(_,{submenuBehavior:l},e.createElement(de,null,c))));return e.createElement(u.Portal,{container:N,forceMount:R},e.createElement(h,{asChild:!0},e.createElement(u.Content,{"data-accent-color":v,"data-material":i,"data-panel-background":i,align:"start",sideOffset:4,collisionPadding:10,...ie,asChild:!1,ref:o,className:d("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",w)},D?e.createElement("div",{className:d("rt-BaseMenuViewport","rt-DropdownMenuViewport","rt-virtualized")},k):e.createElement(y,{type:"auto"},e.createElement("div",{className:d("rt-BaseMenuViewport","rt-DropdownMenuViewport")},k)))))});U.displayName="DropdownMenu.Content";var X=e.forwardRef(({className:n,...o},r)=>e.createElement(u.Label,{...o,asChild:!1,ref:r,className:d("rt-BaseMenuLabel","rt-DropdownMenuLabel",n)}));X.displayName="DropdownMenu.Label";var Y=e.forwardRef((n,o)=>{let{className:r,children:a,color:t=L.color.default,shortcut:s,...p}=n;return e.createElement(u.Item,{"data-accent-color":t,...p,ref:o,className:d("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",r)},e.createElement(ue.Slottable,null,a),s&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(T,{size:"1"},s)))});Y.displayName="DropdownMenu.Item";var Z=e.forwardRef(({className:n,...o},r)=>e.createElement(u.Group,{...o,asChild:!1,ref:r,className:d("rt-BaseMenuGroup","rt-DropdownMenuGroup",n)}));Z.displayName="DropdownMenu.Group";var $=e.forwardRef(({className:n,...o},r)=>e.createElement(u.RadioGroup,{...o,asChild:!1,ref:r,className:d("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",n)}));$.displayName="DropdownMenu.RadioGroup";var ee=e.forwardRef((n,o)=>{let{children:r,className:a,color:t=O.color.default,...s}=n;return e.createElement(u.RadioItem,{...s,asChild:!1,ref:o,"data-accent-color":t,className:d("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",a)},r,e.createElement(u.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(F,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});ee.displayName="DropdownMenu.RadioItem";var oe=e.forwardRef((n,o)=>{let{children:r,className:a,shortcut:t,color:s=W.color.default,...p}=n;return e.createElement(u.CheckboxItem,{...p,asChild:!1,ref:o,"data-accent-color":s,className:d("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",a)},r,e.createElement(u.ItemIndicator,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},e.createElement(K,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),t&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(T,{size:"1"},t)))});oe.displayName="DropdownMenu.CheckboxItem";function se(){return e.useId()}var ne=({label:n="Back",...o})=>{let r=f(),a=se(),t=e.useMemo(()=>({id:a,label:n}),[a,n]);return r?.behavior==="drill-down"?e.createElement(I.Provider,{value:t},o.children):e.createElement(I.Provider,{value:t},e.createElement(u.Sub,{...o}))};ne.displayName="DropdownMenu.Sub";var re=e.forwardRef((n,o)=>{let{className:r,children:a,onClick:t,...s}=n,p=b(),m=f(),i=g(),l=e.useRef(t);l.current=t;let D=e.useCallback(c=>{c.preventDefault(),i&&p&&p.push(i.id),l.current?.(c)},[i,p]),w=e.useCallback(c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),i&&p&&p.push(i.id))},[i,p]);return m?.behavior==="drill-down"&&i?e.createElement("div",{role:"menuitem",tabIndex:0,ref:o,onClick:D,onKeyDown:w,className:d("rt-reset","rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger","rt-DropdownMenuDrillDownSubTrigger",r)},a,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(S,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"}))):e.createElement(u.SubTrigger,{...s,onClick:t,asChild:!1,ref:o,className:d("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",r)},a,e.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},e.createElement(S,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});re.displayName="DropdownMenu.SubTrigger";var x=e.forwardRef(({className:n,...o},r)=>e.createElement(u.Separator,{...o,asChild:!1,ref:r,className:d("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",n)}));x.displayName="DropdownMenu.Separator";function ce({label:n}){let{pop:o}=b()??{},r=e.useCallback(t=>{t.preventDefault(),o?.()},[o]),a=e.useCallback(t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),o?.())},[o]);return e.createElement("div",{role:"menuitem",tabIndex:0,onClick:r,onKeyDown:a,className:d("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem","rt-DropdownMenuDrillDownBackItem")},e.createElement(j,{className:"rt-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"rt-DropdownMenuDrillDownBackLabel"},n))}var te=e.forwardRef((n,o)=>{let{size:r,variant:a,color:t,highContrast:s,material:p}=e.useContext(Q),m=f(),i=g(),{className:l,children:D,container:w,forceMount:c,material:P,panelBackground:N,...R}=C({size:r,variant:a,color:t,highContrast:s,material:p,...n},G);if(m?.behavior==="drill-down"&&i){let E=m.isActive(i.id);return e.createElement("div",{ref:o,role:"menu","aria-label":typeof i.label=="string"?i.label:void 0,"data-drill-down-active":E?!0:void 0,"data-animation-direction":m.animationDirection??void 0,className:d("rt-DropdownMenuDrillDownPanel",l)},e.createElement(ce,{label:i.label}),e.createElement(x,null),D)}return e.createElement(u.Portal,{container:w,forceMount:c},e.createElement(h,{asChild:!0},e.createElement(u.SubContent,{"data-accent-color":t,"data-material":p,"data-panel-background":p,alignOffset:-Number(r)*4,sideOffset:1,collisionPadding:10,...R,asChild:!1,ref:o,className:d("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",l)},e.createElement(y,{type:"auto"},e.createElement("div",{className:d("rt-BaseMenuViewport","rt-DropdownMenuViewport")},D)))))});te.displayName="DropdownMenu.SubContent";var ae=e.forwardRef((n,o)=>e.createElement(A,{...n,ref:o,className:"rt-DropdownMenuTriggerIcon"}));ae.displayName="DropdownMenu.TriggerIcon";export{q as a,J as b,U as c,X as d,Y as e,Z as f,$ as g,ee as h,oe as i,ne as j,re as k,x as l,te as m,ae as n,me as o};
2
- //# sourceMappingURL=chunk-KKBP2CRH.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/dropdown-menu.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { DropdownMenu as DropdownMenuPrimitive, Slot } from 'radix-ui';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n dropdownMenuContentPropDefs,\n dropdownMenuSubContentPropDefs,\n dropdownMenuItemPropDefs,\n dropdownMenuCheckboxItemPropDefs,\n dropdownMenuRadioItemPropDefs,\n} from './dropdown-menu.props.js';\nimport { Theme, useThemeContext } from './theme.js';\nimport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport {\n DrillDownProvider,\n SubContext,\n useDrillDownActionsOptional,\n useDrillDownStateOptional,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport { MenuProvider } from './_internal/menu-context.js';\nimport type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { Kbd } from './kbd.js';\n\nimport type { IconProps } from './icons.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\nimport { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';\n\ninterface DropdownMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}\nconst DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => (\n <DropdownMenuPrimitive.Root {...props} />\n);\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\ntype DropdownMenuTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\ninterface DropdownMenuTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Trigger, RemovedProps> {}\nconst DropdownMenuTrigger = React.forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\n/**\n * Internal component that wraps root menu items and handles visibility in drill-down mode.\n * In drill-down mode, this hides when a submenu is active.\n * Uses state-only hook to subscribe only to state changes, not action changes.\n */\nfunction DrillDownRoot({ children }: { children: React.ReactNode }) {\n const drillDownState = useDrillDownStateOptional();\n\n // In cascade mode or when no drill-down context, always show\n if (!drillDownState || drillDownState.behavior === 'cascade') {\n return <>{children}</>;\n }\n\n // In drill-down mode, hide root when a submenu is active\n return (\n <div\n className=\"rt-DropdownMenuDrillDownRoot\"\n data-drill-down-active={drillDownState.isRoot ? undefined : true}\n data-animation-direction={drillDownState.animationDirection ?? undefined}\n >\n {children}\n </div>\n );\n}\n\ntype DropdownMenuContentOwnProps = GetPropDefTypes<typeof dropdownMenuContentPropDefs> & {\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n};\ntype DropdownMenuContentContextValue = Omit<DropdownMenuContentOwnProps, 'submenuBehavior'>;\nconst DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});\ntype DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;\ninterface DropdownMenuContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,\n DropdownMenuContentContextValue {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(\n (props, forwardedRef) => {\n const themeContext = useThemeContext();\n\n useDeprecatedPanelBackgroundWarning(props.panelBackground);\n\n // Material takes precedence over panelBackground\n const effectiveMaterial =\n props.material ?? props.panelBackground ?? themeContext.panelBackground;\n\n // Memoize theme context values to prevent unnecessary re-renders\n const memoizedThemeContext = React.useMemo(\n () => ({\n material: effectiveMaterial,\n accentColor: themeContext.accentColor,\n }),\n [effectiveMaterial, themeContext.accentColor],\n );\n\n const {\n size = dropdownMenuContentPropDefs.size.default,\n variant = dropdownMenuContentPropDefs.variant.default,\n highContrast = dropdownMenuContentPropDefs.highContrast.default,\n material = memoizedThemeContext.material,\n submenuBehavior,\n virtualized = false,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n material: _,\n panelBackground: __,\n submenuBehavior: ___,\n virtualized: ____,\n ...contentProps\n } = extractProps(props, dropdownMenuContentPropDefs);\n\n // Memoize color resolution to prevent unnecessary re-renders\n const resolvedColor = React.useMemo(\n () => color || memoizedThemeContext.accentColor,\n [color, memoizedThemeContext.accentColor],\n );\n const contentBody = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider\n value={React.useMemo(\n () => ({ size, variant, color: resolvedColor, highContrast, material }),\n [size, variant, resolvedColor, highContrast, material],\n )}\n >\n <DrillDownProvider submenuBehavior={submenuBehavior}>\n <DrillDownRoot>{children}</DrillDownRoot>\n </DrillDownProvider>\n </DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.Content\n data-accent-color={resolvedColor}\n data-material={material}\n data-panel-background={material}\n align=\"start\"\n sideOffset={4}\n collisionPadding={10}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-DropdownMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport', 'rt-virtualized')}>\n {contentBody}\n </div>\n ) : (\n <ScrollArea type=\"auto\">\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>\n {contentBody}\n </div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.Content>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nDropdownMenuContent.displayName = 'DropdownMenu.Content';\n\ntype DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.Label>;\ninterface DropdownMenuLabelProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Label, RemovedProps> {}\nconst DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuLabel', 'rt-DropdownMenuLabel', className)}\n />\n ),\n);\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\ntype DropdownMenuItemElement = React.ElementRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemOwnProps = GetPropDefTypes<typeof dropdownMenuItemPropDefs>;\ninterface DropdownMenuItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Item, RemovedProps>,\n DropdownMenuItemOwnProps {}\nconst DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = dropdownMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n return (\n <DropdownMenuPrimitive.Item\n data-accent-color={color}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-DropdownMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <Kbd size=\"1\">{shortcut}</Kbd>\n </div>\n )}\n </DropdownMenuPrimitive.Item>\n );\n },\n);\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\ntype DropdownMenuGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.Group>;\ninterface DropdownMenuGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Group, RemovedProps> {}\nconst DropdownMenuGroup = React.forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuGroup', 'rt-DropdownMenuGroup', className)}\n />\n ),\n);\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>;\ninterface DropdownMenuRadioGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioGroup, RemovedProps> {}\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>(({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.RadioGroup\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuRadioGroup', 'rt-DropdownMenuRadioGroup', className)}\n />\n));\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\ntype DropdownMenuRadioItemElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>;\ntype DropdownMenuRadioItemOwnProps = GetPropDefTypes<typeof dropdownMenuRadioItemPropDefs>;\ninterface DropdownMenuRadioItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioItem, RemovedProps>,\n DropdownMenuRadioItemOwnProps {}\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = dropdownMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <DropdownMenuPrimitive.RadioItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuRadioItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuRadioItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator\">\n <ThickDotIcon className=\"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </DropdownMenuPrimitive.RadioItem>\n );\n});\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>;\ntype DropdownMenuCheckboxItemOwnProps = GetPropDefTypes<typeof dropdownMenuCheckboxItemPropDefs>;\ninterface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.CheckboxItem, RemovedProps>,\n DropdownMenuCheckboxItemOwnProps {}\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = dropdownMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <DropdownMenuPrimitive.CheckboxItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuCheckboxItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuCheckboxItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator\">\n <ThickCheckIcon className=\"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <Kbd size=\"1\">{shortcut}</Kbd>\n </div>\n )}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\n// Generate unique submenu IDs using React 18's useId for SSR safety\nfunction useSubId() {\n return React.useId();\n}\n\ninterface DropdownMenuSubProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub> {\n /**\n * Label displayed in the back button when using drill-down mode.\n * If not provided, defaults to \"Back\".\n */\n label?: React.ReactNode;\n}\nconst DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({ label = 'Back', ...props }) => {\n // Use state-only hook since we only need behavior check\n const drillDownState = useDrillDownStateOptional();\n const subId = useSubId();\n\n // Create context value for SubContent and SubTrigger\n const subContextValue = React.useMemo(\n () => ({ id: subId, label }),\n [subId, label]\n );\n\n // In drill-down mode, we don't use Radix's Sub component\n // We just provide the SubContext and render children\n if (drillDownState?.behavior === 'drill-down') {\n return (\n <SubContext.Provider value={subContextValue}>\n {props.children}\n </SubContext.Provider>\n );\n }\n\n // In cascade mode, use Radix's Sub component normally\n return (\n <SubContext.Provider value={subContextValue}>\n <DropdownMenuPrimitive.Sub {...props} />\n </SubContext.Provider>\n );\n};\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\ntype DropdownMenuSubTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>;\ninterface DropdownMenuSubTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubTrigger, RemovedProps> {}\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, onClick, ...subTriggerProps } = props;\n // Use split hooks: actions for stable push callback, state only for behavior check\n const drillDownActions = useDrillDownActionsOptional();\n const drillDownState = useDrillDownStateOptional();\n const subContext = useSubContext();\n\n // Store onClick in ref to avoid recreating handlers when onClick changes\n const onClickRef = React.useRef(onClick);\n onClickRef.current = onClick;\n\n // Stable click handler - only depends on stable refs\n const handleClick = React.useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (subContext && drillDownActions) {\n drillDownActions.push(subContext.id);\n }\n (onClickRef.current as React.MouseEventHandler<HTMLDivElement> | undefined)?.(e);\n }, [subContext, drillDownActions]);\n\n // Stable keydown handler\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (subContext && drillDownActions) {\n drillDownActions.push(subContext.id);\n }\n }\n }, [subContext, drillDownActions]);\n\n // In drill-down mode, render a button that navigates to the submenu\n if (drillDownState?.behavior === 'drill-down' && subContext) {\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-BaseMenuSubTrigger',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuSubTrigger',\n 'rt-DropdownMenuDrillDownSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon\" />\n </div>\n </div>\n );\n }\n\n // In cascade mode, use Radix's SubTrigger\n return (\n <DropdownMenuPrimitive.SubTrigger\n {...subTriggerProps}\n onClick={onClick as React.MouseEventHandler<HTMLDivElement> | undefined}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-BaseMenuItem',\n 'rt-BaseMenuSubTrigger',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"rt-BaseMenuShortcut rt-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.SubTrigger>\n );\n});\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\n// Separator is defined here (before SubContent) because it's used in drill-down mode\ntype DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;\ninterface DropdownMenuSeparatorProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Separator, RemovedProps> {}\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuSeparator', 'rt-DropdownMenuSeparator', className)}\n />\n));\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/**\n * Internal component for the drill-down back button.\n * Uses actions-only hook since it only needs to call pop(), never reads state.\n * This prevents re-renders when drill-down state changes.\n */\nfunction DrillDownBackItem({ label }: { label: React.ReactNode }) {\n // Use actions-only hook for stable pop callback - prevents re-renders on stack changes\n const { pop } = useDrillDownActionsOptional() ?? {};\n\n // Stable click handler\n const handleClick = React.useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n pop?.();\n }, [pop]);\n\n // Stable keydown handler\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n pop?.();\n }\n }, [pop]);\n\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-DropdownMenuItem',\n 'rt-DropdownMenuDrillDownBackItem',\n )}\n >\n <ThickChevronLeftIcon className=\"rt-DropdownMenuDrillDownBackIcon\" />\n <span className=\"rt-DropdownMenuDrillDownBackLabel\">{label}</span>\n </div>\n );\n}\n\ntype DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;\ninterface DropdownMenuSubContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,\n DropdownMenuContentContextValue {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n}\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props, forwardedRef) => {\n // Get context values directly - memoization at provider level handles stability\n const { size, variant, color, highContrast, material } = React.useContext(\n DropdownMenuContentContext,\n );\n // Use state-only hook since we only need behavior and isActive (no actions)\n const drillDownState = useDrillDownStateOptional();\n const subContext = useSubContext();\n\n const {\n className,\n children,\n container,\n forceMount,\n material: _,\n panelBackground: __,\n ...subContentProps\n } = extractProps(\n { size, variant, color, highContrast, material, ...props },\n dropdownMenuSubContentPropDefs,\n );\n\n // In drill-down mode, render inline instead of in a portal\n if (drillDownState?.behavior === 'drill-down' && subContext) {\n const isActive = drillDownState.isActive(subContext.id);\n\n return (\n <div\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n role=\"menu\"\n aria-label={typeof subContext.label === 'string' ? subContext.label : undefined}\n data-drill-down-active={isActive ? true : undefined}\n data-animation-direction={drillDownState.animationDirection ?? undefined}\n className={classNames(\n 'rt-DropdownMenuDrillDownPanel',\n className,\n )}\n >\n <DrillDownBackItem label={subContext.label} />\n <DropdownMenuSeparator />\n {children}\n </div>\n );\n }\n\n // In cascade mode, use Portal and Radix's SubContent\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.SubContent\n data-accent-color={color}\n data-material={material}\n data-panel-background={material}\n alignOffset={-Number(size) * 4}\n // Side offset accounts for the outer solid box-shadow\n sideOffset={1}\n collisionPadding={10}\n {...subContentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-BaseMenuSubContent',\n 'rt-DropdownMenuContent',\n 'rt-DropdownMenuSubContent',\n className,\n )}\n >\n <ScrollArea type=\"auto\">\n <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>\n {children}\n </div>\n </ScrollArea>\n </DropdownMenuPrimitive.SubContent>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n});\nDropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';\n\ntype DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;\ninterface DropdownMenuTriggerIconProps extends IconProps {}\nconst DropdownMenuTriggerIcon = React.forwardRef<\n DropdownMenuTriggerIconElement,\n DropdownMenuTriggerIconProps\n>((props, forwardedRef) => (\n <ChevronDownIcon {...props} ref={forwardedRef} className=\"rt-DropdownMenuTriggerIcon\" />\n));\nDropdownMenuTriggerIcon.displayName = 'DropdownMenu.TriggerIcon';\n\nexport {\n DropdownMenuRoot as Root,\n DropdownMenuTrigger as Trigger,\n DropdownMenuTriggerIcon as TriggerIcon,\n DropdownMenuContent as Content,\n DropdownMenuLabel as Label,\n DropdownMenuItem as Item,\n DropdownMenuGroup as Group,\n DropdownMenuRadioGroup as RadioGroup,\n DropdownMenuRadioItem as RadioItem,\n DropdownMenuCheckboxItem as CheckboxItem,\n DropdownMenuSub as Sub,\n DropdownMenuSubTrigger as SubTrigger,\n DropdownMenuSubContent as SubContent,\n DropdownMenuSeparator as Separator,\n};\n\nexport type {\n DropdownMenuRootProps as RootProps,\n DropdownMenuTriggerProps as TriggerProps,\n DropdownMenuTriggerIconProps as TriggerIconProps,\n DropdownMenuContentProps as ContentProps,\n DropdownMenuLabelProps as LabelProps,\n DropdownMenuItemProps as ItemProps,\n DropdownMenuGroupProps as GroupProps,\n DropdownMenuRadioGroupProps as RadioGroupProps,\n DropdownMenuRadioItemProps as RadioItemProps,\n DropdownMenuCheckboxItemProps as CheckboxItemProps,\n DropdownMenuSubProps as SubProps,\n DropdownMenuSubTriggerProps as SubTriggerProps,\n DropdownMenuSubContentProps as SubContentProps,\n DropdownMenuSeparatorProps as SeparatorProps,\n SubmenuBehavior,\n};\n"],
5
- "mappings": "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",
6
- "names": ["dropdown_menu_exports", "__export", "DropdownMenuCheckboxItem", "DropdownMenuContent", "DropdownMenuGroup", "DropdownMenuItem", "DropdownMenuLabel", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "DropdownMenuRoot", "DropdownMenuSeparator", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuTrigger", "DropdownMenuTriggerIcon", "React", "classNames", "DropdownMenuPrimitive", "Slot", "DropdownMenuRoot", "props", "DropdownMenuPrimitive", "DropdownMenuTrigger", "children", "forwardedRef", "requireReactElement", "DrillDownRoot", "drillDownState", "useDrillDownStateOptional", "DropdownMenuContentContext", "DropdownMenuContent", "themeContext", "useThemeContext", "useDeprecatedPanelBackgroundWarning", "effectiveMaterial", "memoizedThemeContext", "size", "baseMenuContentPropDefs", "variant", "highContrast", "material", "submenuBehavior", "virtualized", "className", "color", "container", "forceMount", "_", "__", "___", "____", "contentProps", "extractProps", "resolvedColor", "contentBody", "MenuProvider", "DrillDownProvider", "Theme", "classNames", "ScrollArea", "DropdownMenuLabel", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "Slot", "Kbd", "DropdownMenuGroup", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "useSubId", "DropdownMenuSub", "label", "subId", "subContextValue", "SubContext", "DropdownMenuSubTrigger", "onClick", "subTriggerProps", "drillDownActions", "useDrillDownActionsOptional", "subContext", "useSubContext", "onClickRef", "handleClick", "e", "handleKeyDown", "ThickChevronRightIcon", "DropdownMenuSeparator", "DrillDownBackItem", "pop", "ThickChevronLeftIcon", "DropdownMenuSubContent", "subContentProps", "baseMenuSubContentPropDefs", "isActive", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-HOHUDTTL.js";import{c as e}from"./chunk-66ZLZAAJ.js";var t=["1","2","3"],a=["classic","solid","soft","outline","surface"],r=["solid","translucent"],n={size:{type:"enum",className:"rt-r-size",values:t,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:a,default:"solid"},material:{type:"enum",values:r,default:void 0},...e,...s};export{n as a};
2
- //# sourceMappingURL=chunk-KTAFIHJY.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/base-radio.props.ts"],
4
- "sourcesContent": ["import { colorPropDef } from '../../props/color.prop.js';\nimport { highContrastPropDef } from '../../props/high-contrast.prop.js';\n\nimport type { PropDef } from '../../props/prop-def.js';\n\nconst sizes = ['1', '2', '3'] as const;\nconst variants = ['classic', 'solid', 'soft', 'outline', 'surface'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst baseRadioPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'solid' },\n material: { type: 'enum', values: materials, default: undefined },\n ...colorPropDef,\n ...highContrastPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n material: PropDef<(typeof materials)[number] | undefined>;\n};\n\nexport { baseRadioPropDefs };\n"],
5
- "mappings": "gFAKA,IAAMA,EAAQ,CAAC,IAAK,IAAK,GAAG,EACtBC,EAAW,CAAC,UAAW,QAAS,OAAQ,UAAW,SAAS,EAC5DC,EAAY,CAAC,QAAS,aAAa,EAEnCC,EAAoB,CACxB,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQH,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,OAAQ,EACrF,SAAU,CAAE,KAAM,OAAQ,OAAQC,EAAW,QAAS,MAAU,EAChE,GAAGE,EACH,GAAGC,CACL",
6
- "names": ["sizes", "variants", "materials", "baseRadioPropDefs", "colorPropDef", "highContrastPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as o}from"./chunk-KRJTW535.js";import{a as e}from"./chunk-HOHUDTTL.js";import{c as s}from"./chunk-66ZLZAAJ.js";var r=["1","2","3","4"],a=["surface","soft","outline"],n={size:{type:"enum",className:"rt-r-size",values:r,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:a,default:"surface"},showTickLabels:{type:"boolean",className:"rt-show-tick-labels"},snapToTicks:{type:"boolean",className:"rt-snap-to-ticks"},...s,...e,...o};export{n as a};
2
- //# sourceMappingURL=chunk-MCQAJV4K.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/slider.props.tsx"],
4
- "sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['surface', 'soft', 'outline'] as const;\n\nconst sliderPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },\n showTickLabels: { type: 'boolean', className: 'rt-show-tick-labels' },\n snapToTicks: { type: 'boolean', className: 'rt-snap-to-ticks' },\n ...colorPropDef,\n ...highContrastPropDef,\n ...radiusPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n showTickLabels: PropDef<boolean>;\n snapToTicks: PropDef<boolean>;\n};\n\nexport { sliderPropDefs };\n"],
5
- "mappings": "wHAMA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,UAAW,OAAQ,SAAS,EAExCC,EAAiB,CACrB,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQF,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,SAAU,EACvF,eAAgB,CAAE,KAAM,UAAW,UAAW,qBAAsB,EACpE,YAAa,CAAE,KAAM,UAAW,UAAW,kBAAmB,EAC9D,GAAGE,EACH,GAAGC,EACH,GAAGC,CACL",
6
- "names": ["sizes", "variants", "sliderPropDefs", "colorPropDef", "highContrastPropDef", "radiusPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as t}from"./chunk-KRJTW535.js";import{a as e}from"./chunk-NZJGC6ZW.js";import{a}from"./chunk-HOHUDTTL.js";import{d as s}from"./chunk-66ZLZAAJ.js";var o=["1","2","3","4"],r=["solid","soft","surface","outline","ghost","classic"],n=["solid","translucent"],i=["solid","translucent"],m={...e,size:{type:"enum",className:"rt-r-size",values:o,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:r,default:"soft"},...s,...a,...t,material:{type:"enum",values:i,default:void 0},panelBackground:{type:"enum",values:n,default:void 0}};export{m as a};
2
- //# sourceMappingURL=chunk-MJ47O7KH.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/badge.props.tsx"],
4
- "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['solid', 'soft', 'surface', 'outline', 'ghost', 'classic'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst badgePropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '1', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'soft' },\n ...accentColorPropDef,\n ...highContrastPropDef,\n ...radiusPropDef,\n material: { type: 'enum', values: materials, default: undefined },\n /**\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n material: PropDef<(typeof materials)[number] | undefined>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n};\n\nexport { badgePropDefs };\n"],
5
- "mappings": "2JAOA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,QAAS,OAAQ,UAAW,UAAW,QAAS,SAAS,EACrEC,EAAmB,CAAC,QAAS,aAAa,EAC1CC,EAAY,CAAC,QAAS,aAAa,EAEnCC,EAAgB,CACpB,GAAGC,EACH,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQL,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,MAAO,EACpF,GAAGK,EACH,GAAGC,EACH,GAAGC,EACH,SAAU,CAAE,KAAM,OAAQ,OAAQL,EAAW,QAAS,MAAU,EAIhE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,EAAkB,QAAS,MAAU,CAChF",
6
- "names": ["sizes", "variants", "panelBackgrounds", "materials", "badgePropDefs", "asChildPropDef", "accentColorPropDef", "highContrastPropDef", "radiusPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as Me}from"./chunk-PLWXTEVE.js";import{a as Ge}from"./chunk-GJSGKE7B.js";import{g as qe,j as Ye}from"./chunk-IX5HIHVI.js";import{a as Re}from"./chunk-H7ST535H.js";import{a as ce}from"./chunk-FHOCUZDR.js";import{b as U}from"./chunk-FWB47YCH.js";import{a as dt}from"./chunk-3XT5P2HO.js";var ft={};dt(ft,{AttachTrigger:()=>tt,Attachment:()=>Le,AttachmentsRow:()=>et,InlineEnd:()=>Ze,InlineStart:()=>Xe,Root:()=>Je,Row:()=>at,RowEnd:()=>ot,RowStart:()=>nt,Send:()=>rt,Textarea:()=>Qe});import*as e from"react";import M from"classnames";import{LazyMotion as mt,domAnimation as pt,m as ue}from"motion/react";import{useDropzone as ht}from"react-dropzone";var Oe=typeof window<"u"?e.useLayoutEffect:e.useEffect,_e=e.createContext(null),_=()=>{let l=e.useContext(_e);if(!l)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return l},Je=e.forwardRef((l,i)=>{let{className:r,style:h,children:d,value:g,defaultValue:y="",onValueChange:m,open:s,defaultOpen:v=!1,onOpenChange:f,expandOn:x="both",minLines:P=3,maxLines:n=6,sendMode:C="whenDirty",disabled:S,readOnly:z,onSubmit:w,size:T="2",variant:J,color:k,radius:Q,panelBackground:O,material:K,width:de,maxWidth:ne,asChild:me,attachments:oe,defaultAttachments:ge=[],onAttachmentsChange:I,accept:X,multiple:j=!0,maxAttachments:A,maxFileSize:p,paste:pe=!0,pasteAccept:Z,clearOnSubmit:he=!0,onAttachmentReject:$,dropzone:W=!0,apiRef:a,...c}=l,b=K||O,R=g!=null,[F,Ce]=e.useState(y),ee=R?g:F,L=s!=null,[re,te]=e.useState(v),ae=L?s:re,ye=e.useRef(null),fe=e.useRef(null),ve=e.useRef(!1),q="attachments"in l,[De,Fe]=e.useState(ge),Y=e.useMemo(()=>q?oe??[]:De,[q,oe,De]),be=e.useRef(new Set),xe=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(o=>o.trim()):[],se=xe(X),He=xe(Z).length>0?xe(Z):se,Ne=(t,o)=>{if(o.length===0)return!0;let D=t.type.toLowerCase(),B=t.name.toLowerCase();for(let H of o){let E=H.toLowerCase();if(E.includes("/")){let[N,V]=E.split("/"),[u,le]=D.split("/");if(N==="*"||N===u&&(V==="*"||V===le))return!0}else if(E.startsWith(".")&&B.endsWith(E))return!0}return!1},Ae=e.useRef(Y);Ae.current=Y;let we=e.useRef(se);we.current=se;let ze=e.useRef(He);ze.current=He;let Pe=e.useRef(A);Pe.current=A;let Ee=e.useRef(p);Ee.current=p;let Se=e.useRef($);Se.current=$;let ke=e.useRef(I);ke.current=I;let Ie=e.useRef(f);Ie.current=f;let ie=e.useCallback(t=>{let o=Ae.current,D=we.current,B=Pe.current,H=Ee.current,E=[],N=[],V=typeof B=="number"?Math.max(B-o.length,0):1/0;for(let u of t){if(E.length>=V){N.push({file:u,reason:"count"});continue}if(typeof H=="number"&&u.size>H){N.push({file:u,reason:"size"});continue}if(!Ne(u,D)){N.push({file:u,reason:"type"});continue}let le=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,G=/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(u.name),Te=(u.type||"").toLowerCase().startsWith("image/")||G?URL.createObjectURL(u):void 0;Te&&be.current.add(Te),E.push({id:le,name:u.name,size:u.size,type:u.type,file:u,url:Te,status:"idle"})}if(E.length>0){let u=o.concat(E);q||Fe(u),ke.current?.(u),L||te(!0),Ie.current?.(!0)}N.length>0&&Se.current?.(N)},[q,L]),je=e.useCallback(t=>{let o=we.current,D=ze.current,B=Pe.current,H=Ee.current,E=Ae.current,N=D.length>0?D:o,V=[],u=[],le=typeof B=="number"?Math.max(B-E.length,0):1/0;for(let G of t){if(V.length>=le){u.push({file:G,reason:"count"});continue}if(typeof H=="number"&&G.size>H){u.push({file:G,reason:"size"});continue}if(!Ne(G,N)){u.push({file:G,reason:"type"});continue}V.push(G)}V.length>0&&ie(V),u.length>0&&Se.current?.(u)},[ie]);e.useEffect(()=>{let t=new Set(Y.map(o=>o.url).filter(Boolean));for(let o of Array.from(be.current))t.has(o)||(URL.revokeObjectURL(o),be.current.delete(o))},[Y]),e.useEffect(()=>{let t=be.current;return()=>{for(let o of Array.from(t))URL.revokeObjectURL(o);t.clear()}},[]);let st=me?U:"div",We=e.useCallback(t=>{L||te(t),f?.(t)},[L,f]),Be=e.useCallback(t=>{R||Ce(t),m?.(t)},[R,m]),Ve=e.useCallback(t=>{q||Fe(t),I?.(t)},[q,I]),it=e.useCallback(t=>{let o=t.relatedTarget,D=ye.current;D&&(o&&D.contains(o)||ve.current||(ee?.trim?.()??"").length===0&&Y.length===0&&(L||te(!1),f?.(!1)))},[L,f,ee,Y]),{getRootProps:lt,getInputProps:ct,isDragActive:Ue,open:Ke}=ht({onDrop:(t,o)=>{if(t.length>0&&ie(t),o.length>0&&$){let D=o.map(({file:B,errors:H})=>{let E=H[0]?.code==="file-too-large"?"size":H[0]?.code==="file-invalid-type"?"type":"count";return{file:B,reason:E}});$(D)}},accept:se.length>0?se.reduce((t,o)=>(o.includes("/")?t[o]=[]:o.startsWith(".")&&(t[o]=[]),t),{}):void 0,multiple:j,maxSize:p,noClick:!0,noKeyboard:!0,disabled:!W||S});e.useImperativeHandle(a,()=>({focusTextarea:()=>fe.current?.focus({preventScroll:!0}),openFilePicker:()=>{ve.current=!0,Ke()}}),[Ke]);let $e=e.useCallback(t=>{if(!(t instanceof Element))return!1;let o=t;return o.closest(".rt-ChatbarDropOverlay")?!0:!!o.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')},[]),ut=e.useCallback(t=>{S||$e(t.target)||t.pointerType==="mouse"&&t.button!==0||(t.preventDefault(),fe.current?.focus({preventScroll:!0}))},[S,$e,fe]);return e.createElement(_e.Provider,{value:e.useMemo(()=>({open:ae,setOpen:We,isOpenControlled:L,value:ee,setValue:Be,isValueControlled:R,size:T,expandOn:x,minLines:P,maxLines:n,sendMode:C,disabled:S,readOnly:z,onSubmit:w,rootRef:ye,textareaRef:fe,attachments:Y,setAttachments:Ve,isAttachmentsControlled:q,accept:X,multiple:j,maxAttachments:A,maxFileSize:p,paste:pe,pasteAccept:Z,clearOnSubmit:he,onAttachmentReject:$,dropzone:W,appendFiles:ie,appendFilesFromPaste:je,fileDialogOpenRef:ve}),[ae,We,L,ee,Be,R,T,x,P,n,C,S,z,w,Y,Ve,q,X,j,A,p,pe,Z,he,$,W,ie,je])},e.createElement(mt,{features:pt},e.createElement(st,{...c,ref:t=>{typeof i=="function"?i(t):i&&(i.current=t),ye.current=t},className:M("rt-ChatbarRoot",`rt-r-size-${T}`,r),style:{position:"relative",width:de,maxWidth:ne,...h},"data-state":ae?"open":"closed","data-disabled":S?"":void 0,"data-readonly":z?"":void 0,"data-drop-active":W&&Ue?"":void 0,"data-accent-color":k,"data-radius":Q,"data-panel-background":b,"data-material":b,"aria-expanded":ae,onBlurCapture:it},W&&e.createElement("input",{...ct()}),e.createElement("div",{...W?lt():{},style:{width:"100%",height:"100%"},onPointerDown:ut},e.createElement(ue.div,{className:M("rt-ChatbarBox",`rt-variant-${J??"surface"}`),style:{position:"relative"},"data-accent-color":k,"data-radius":Q,"data-panel-background":b,"data-material":b,layout:!0,transition:{layout:{type:"spring",visualDuration:.15,bounce:.1}}},e.createElement(ue.div,{className:"rt-ChatbarGrid",layout:"position",transition:{layout:{type:"spring",visualDuration:.15,bounce:.1}}},d),W&&Ue&&e.createElement("div",{className:"rt-ChatbarDropOverlay"},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(Re,{color:"gray",size:T,weight:"medium"},"Drop files here to attach"))))))))});Je.displayName="Chatbar.Root";var Qe=e.forwardRef((l,i)=>{let{className:r,style:h,asChild:d,onFocus:g,onInput:y,onChange:m,onPaste:s,onKeyDown:v,submitOnEnter:f=!1,rows:x,...P}=l,n=_(),{open:C,minLines:S,maxLines:z,expandOn:w,disabled:T,readOnly:J,setOpen:k,setValue:Q,textareaRef:O,value:K,isValueControlled:de,sendMode:ne,paste:me,appendFilesFromPaste:oe,size:ge}=n,I=e.useRef(0),X=e.useRef(0),j=e.useRef(0),A=e.useCallback(()=>{let a=O.current;if(!a)return;let c=window.getComputedStyle(a),b=parseFloat(c.lineHeight)||20,R=parseFloat(c.paddingTop)||0,F=parseFloat(c.paddingBottom)||0;I.current=b,X.current=R+F,j.current=Math.ceil(1*b)+R+F},[O]),p=e.useCallback(a=>{let c=O.current;if(!c)return;c.style.height="auto",I.current===0&&A();let b=I.current,R=X.current,F=a??C,Ce=F?S:1,ee=F?z:1,L=Math.ceil(Ce*b)+R,re=Math.ceil(ee*b)+R,te=Math.max(c.scrollHeight,L),ae=Math.min(te,re);c.style.height=`${ae}px`,te>re?(c.style.overflowY="auto",c.style.maxHeight=`${re}px`):(c.style.overflowY="hidden",c.style.maxHeight="none")},[C,S,z,O,A]);Oe(()=>{p()},[p,K,C]),Oe(()=>{if(!(w==="overflow"||w==="both")||C)return;let a=O.current;if(!a)return;a.style.height="auto",j.current===0&&A(),a.scrollHeight>j.current+1&&(k(!0),p(!0),requestAnimationFrame(()=>p(!0)))},[K,w,C,k,O,A,p]),Oe(()=>{A(),p()},[A,p,ge]),e.useEffect(()=>{let a=O.current;if(!a||typeof ResizeObserver>"u")return;let c=I.current,b=new ResizeObserver(()=>{let R=window.getComputedStyle(a),F=parseFloat(R.lineHeight)||20;F!==c&&(c=F,A(),requestAnimationFrame(()=>p()))});return b.observe(a),()=>b.disconnect()},[O,A,p]),e.useEffect(()=>{},[]);let pe=e.useCallback(a=>{T||J||((w==="focus"||w==="both")&&!C&&k(!0),g?.(a))},[T,J,w,C,k,g]),Z=e.useCallback(a=>{let c=a.currentTarget,b=c.value;Q(b),(w==="overflow"||w==="both")&&!C&&(c.style.height="auto",j.current===0&&A(),c.scrollHeight>j.current+1&&(k(!0),p(!0),requestAnimationFrame(()=>p(!0)))),requestAnimationFrame(()=>p()),m?.(a)},[w,C,k,Q,m,p,A]),he=e.useCallback(a=>{if(me){let b=Array.from(a.clipboardData?.items??[]).filter(R=>R.kind==="file").map(R=>R.getAsFile()).filter(R=>!!R);b.length>0&&(a.preventDefault(),oe(b))}setTimeout(()=>{C?p():p(!0)},0),s?.(a)},[me,C,p,s,oe]),$=e.useCallback(a=>{if(!f){v?.(a);return}if(a.key==="Enter"&&!a.shiftKey&&!a.altKey&&!a.ctrlKey&&!a.metaKey&&!a.nativeEvent.isComposing){if(T||J){v?.(a);return}if(ne==="never"){v?.(a);return}let b=K.trim().length>0||n.attachments.length>0;if(ne==="whenDirty"&&!b){v?.(a);return}a.preventDefault(),n.onSubmit?.({value:K,attachments:n.attachments}),n.clearOnSubmit&&(de||Q(""),n.setAttachments([]))}v?.(a)},[f,T,J,ne,K,de,Q,n,v]),W=d?U:"textarea";return e.createElement(ue.div,{className:M("rt-ChatbarField","rt-ChatbarTextarea",r),layout:"position",transition:{layout:{type:"spring",visualDuration:.15,bounce:.1}}},e.createElement(W,{...P,ref:a=>{typeof i=="function"?i(a):i&&(i.current=a),O.current=a},className:"rt-ChatbarInput",value:K,onInput:y,onChange:Z,onFocus:pe,onPaste:he,onKeyDown:$,disabled:T,readOnly:J,rows:C?S:1,spellCheck:P.spellCheck??!0,autoCorrect:P.autoCorrect??"on",style:h}))});Qe.displayName="Chatbar.Textarea";var Xe=e.forwardRef((l,i)=>{let{children:r,asChild:h,style:d,className:g,...y}=l;return _().open?null:e.createElement(h?U:"div",{...y,ref:i,className:M("rt-ChatbarInlineStart",g),style:d},r)});Xe.displayName="Chatbar.InlineStart";var Ze=e.forwardRef((l,i)=>{let{children:r,asChild:h,style:d,className:g,...y}=l;return _().open?null:e.createElement(h?U:"div",{...y,ref:i,className:M("rt-ChatbarInlineEnd",g),style:d},r)});Ze.displayName="Chatbar.InlineEnd";var et=e.forwardRef((l,i)=>{let{asChild:r,forceMount:h,renderAttachment:d,className:g,style:y,...m}=l,s=_();if(!(s.attachments.length>0)&&!h)return null;let f=r?U:"div";return e.createElement(ue.div,{layout:"position",transition:{layout:{type:"spring",visualDuration:.15,bounce:.1}}},e.createElement(f,{...m,ref:i,className:M("rt-ChatbarAttachmentsRow",g),style:y,role:"list","aria-label":m["aria-label"]??"Attachments"},e.createElement(Ge,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal",size:"1"},e.createElement(ce,{align:"center",gap:"2",style:{minWidth:"fit-content"}},s.attachments.map(x=>e.createElement(Le,{key:x.id,attachment:x,asChild:!!d},d?.(x)))))))});et.displayName="Chatbar.AttachmentsRow";var Le=e.forwardRef((l,i)=>{let{attachment:r,asChild:h,className:d,style:g,children:y,...m}=l,s=_(),v=h?U:"div",f=!!r.url&&r.type.startsWith("image/");return e.createElement(v,{...m,ref:i,className:M("rt-ChatbarAttachment",d),style:g,role:"listitem","data-kind":f?"image":"file",title:r.name},y??e.createElement(ce,{align:"center",gap:"2",pr:f?void 0:"6"},e.createElement("div",{className:"rt-ChatbarAttachmentPreview","aria-hidden":!0},f?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:r.url,alt:""}):e.createElement(Ye,null)),!f&&e.createElement(ce,{direction:"column",gap:"0",style:{minWidth:0}},e.createElement(Re,{size:s.size,weight:"medium",style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},r.name),e.createElement(Re,{size:"1",color:"gray"},Math.ceil(r.size/1024)," KB")),e.createElement(Me,{className:"rt-ChatbarAttachmentRemove","aria-label":`Remove ${r.name}`,size:"1",variant:"classic",highContrast:!0,color:"gray",onClick:()=>s.setAttachments(s.attachments.filter(x=>x.id!==r.id))},e.createElement(qe,null))))});Le.displayName="Chatbar.Attachment";var tt=e.forwardRef((l,i)=>{let{asChild:r,accept:h,multiple:d,className:g,style:y,...m}=l,s=_(),v=e.useRef(null),f=r?U:"button",x=h??s.accept,P=(Array.isArray(x)?x:x?.split(",")??[]).join(",");return e.useEffect(()=>{let n=()=>{s.fileDialogOpenRef.current=!1};return window.addEventListener("focus",n),()=>window.removeEventListener("focus",n)},[s.fileDialogOpenRef]),e.createElement(e.Fragment,null,e.createElement(f,{...m,ref:i,className:M("rt-ChatbarAttachTrigger",g),style:y,type:m.type??"button","aria-label":m["aria-label"]??"Add attachments",onPointerDown:n=>{s.fileDialogOpenRef.current=!0,m.onPointerDown?.(n)},onMouseDown:n=>{s.fileDialogOpenRef.current=!0,m.onMouseDown?.(n)},onClick:n=>{s.fileDialogOpenRef.current=!0,v.current&&v.current.click(),m.onClick?.(n)}}),e.createElement("input",{ref:v,type:"file",accept:P,multiple:d??s.multiple,tabIndex:-1,style:{display:"none"},onChange:n=>{let C=Array.from(n.currentTarget.files??[]);C.length>0&&s.appendFiles(C),s.fileDialogOpenRef.current=!1,n.currentTarget.value=""}}))});tt.displayName="Chatbar.AttachTrigger";var at=e.forwardRef((l,i)=>{let{asChild:r,children:h,className:d,style:g,...y}=l;if(!_().open)return null;let s=r?U:"div";return e.createElement(ue.div,{layout:"position",transition:{layout:{type:"spring",visualDuration:.15,bounce:.1}}},e.createElement(s,{...y,ref:i,className:M("rt-ChatbarRow",d),style:g},e.createElement(ce,{align:"center",justify:"between",width:"100%"},h)))});at.displayName="Chatbar.Row";var nt=e.forwardRef((l,i)=>{let{className:r,style:h,...d}=l;return e.createElement("div",{...d,ref:i,className:M("rt-ChatbarRowStart",r),style:h})});nt.displayName="Chatbar.RowStart";var ot=e.forwardRef((l,i)=>{let{className:r,style:h,...d}=l;return e.createElement("div",{...d,ref:i,className:M("rt-ChatbarRowEnd",r),style:h})});ot.displayName="Chatbar.RowEnd";var rt=e.forwardRef((l,i)=>{let{asChild:r,clearOnSend:h=!0,disabled:d,children:g,className:y,style:m,size:s,variant:v,"aria-label":f,"aria-labelledby":x,...P}=l,n=_(),S=n.value.trim().length>0||n.attachments.length>0,z=n.sendMode==="always"||n.sendMode==="whenDirty"&&S;if(n.sendMode==="never")return null;let w=T=>{n.disabled||n.readOnly||(n.onSubmit?.({value:n.value,attachments:n.attachments}),h&&(n.isValueControlled||n.setValue(""),n.clearOnSubmit&&n.setAttachments([])),P.onClick?.(T))};return e.createElement(Me,{...P,ref:i,size:s??n.size,variant:v??(n.open?"solid":"ghost"),disabled:d||n.disabled||n.readOnly,className:M("rt-ChatbarSend",y),style:{opacity:z?1:0,pointerEvents:z?"auto":"none",...m},asChild:r,onClick:w,"aria-label":f??(x?void 0:"Send"),"aria-labelledby":x},g??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-arrow-right-icon lucide-arrow-right"},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"})))});rt.displayName="Chatbar.Send";export{Je as a,Qe as b,Xe as c,Ze as d,et as e,Le as f,tt as g,at as h,nt as i,ot as j,rt as k,ft as l};
2
- //# sourceMappingURL=chunk-MOR3NSXQ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/chatbar.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { LazyMotion, domAnimation, m } from 'motion/react';\n\nimport { IconButton, type IconButtonProps } from './icon-button.js';\nimport { CloseIcon, FileTextIcon } from './icons.js';\nimport { Flex } from './flex.js';\n\nimport { ScrollArea } from './scroll-area.js';\nimport { Slot } from './slot.js';\nimport { Text } from './text.js';\nimport { useDropzone } from 'react-dropzone';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\n// Avoid SSR warnings by using an isomorphic layout effect\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\ntype ExpandOn = 'none' | 'focus' | 'overflow' | 'both';\ntype SendMode = 'always' | 'whenDirty' | 'never';\n\n// Attachments\n/** Status flag for attachment lifecycle. */\ntype AttachmentStatus = 'idle' | 'uploading' | 'error' | 'done';\n/**\n * Attachment data model used by Chatbar.\n * - `file` exposes the original File object for uploads and processing.\n * - `url` is an object URL used for image previews and is revoked on removal.\n */\ninterface ChatbarAttachment {\n id: string;\n name: string;\n size: number;\n type: string;\n /** Original File object for uploads and processing */\n file: File;\n url?: string;\n status?: AttachmentStatus;\n progress?: number;\n meta?: Record<string, unknown>;\n}\n\ninterface ChatbarContextValue {\n open: boolean;\n setOpen(next: boolean): void;\n isOpenControlled: boolean;\n\n value: string;\n setValue(next: string): void;\n isValueControlled: boolean;\n\n size: '1' | '2' | '3';\n expandOn: ExpandOn;\n minLines: number;\n maxLines: number;\n sendMode: SendMode;\n disabled?: boolean;\n readOnly?: boolean;\n\n // Submit returns both message and attachments\n onSubmit?: (payload: { value: string; attachments: ChatbarAttachment[] }) => void;\n\n rootRef: React.RefObject<HTMLDivElement | null>;\n textareaRef: React.RefObject<HTMLTextAreaElement | null>;\n\n // Attachments state\n attachments: ChatbarAttachment[];\n setAttachments(next: ChatbarAttachment[]): void;\n isAttachmentsControlled: boolean;\n\n // Config\n accept?: string | string[];\n multiple: boolean;\n maxAttachments?: number;\n maxFileSize?: number;\n paste: boolean;\n pasteAccept?: string | string[];\n clearOnSubmit: boolean;\n\n // Dropzone\n dropzone: boolean;\n\n // Events\n onAttachmentReject?: (rejections: { file: File; reason: 'type' | 'size' | 'count' }[]) => void;\n\n // Helpers\n appendFiles(files: File[]): void;\n appendFilesFromPaste(files: File[]): void;\n\n // Guards\n fileDialogOpenRef: React.MutableRefObject<boolean>;\n}\n\nconst ChatbarContext = React.createContext<ChatbarContextValue | null>(null);\nconst useChatbarContext = () => {\n const ctx = React.useContext(ChatbarContext);\n if (!ctx) throw new Error('Chatbar context not found. Wrap parts in <Chatbar.Root>.');\n return ctx;\n};\n\n/**\n * Chatbar container and state provider.\n *\n * Value & Open\n * - Supports controlled/uncontrolled `value` and `open`.\n *\n * Attachments\n * - Controlled/uncontrolled attachments with client-side filtering.\n * - Filters by `accept`/`pasteAccept`, `maxAttachments`, and `maxFileSize`.\n * - Rejections are reported via `onAttachmentReject`.\n *\n * Submit\n * - `onSubmit({ value, attachments })` emits both message and attachments.\n * - `clearOnSubmit` clears message and attachments by default.\n */\ninterface ChatbarRootBaseProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n expandOn?: ExpandOn;\n\n /** Minimum number of lines in compact state (default: 1) */\n minLines?: number;\n /** Maximum number of lines before scrolling (default: 6) */\n maxLines?: number;\n\n sendMode?: SendMode;\n\n disabled?: boolean;\n readOnly?: boolean;\n\n /** Combined submit payload */\n onSubmit?: (payload: { value: string; attachments: ChatbarAttachment[] }) => void;\n\n size?: '1' | '2' | '3';\n variant?: 'surface' | 'outline' | 'classic' | 'ghost' | 'soft';\n /** Accent color for the control (matches TextArea) */\n color?: string;\n /** Optional radius override (matches TextArea) */\n radius?: string | number;\n /** Panel/material translucency flags (matches TextArea) */\n panelBackground?: 'solid' | 'translucent';\n material?: 'solid' | 'translucent';\n\n width?: React.CSSProperties['width'];\n maxWidth?: React.CSSProperties['maxWidth'];\n asChild?: boolean;\n\n // Attachments API\n attachments?: ChatbarAttachment[];\n defaultAttachments?: ChatbarAttachment[];\n onAttachmentsChange?: (attachments: ChatbarAttachment[]) => void;\n accept?: string | string[];\n multiple?: boolean;\n maxAttachments?: number;\n maxFileSize?: number;\n paste?: boolean;\n pasteAccept?: string | string[];\n clearOnSubmit?: boolean;\n onAttachmentReject?: (rejections: { file: File; reason: 'type' | 'size' | 'count' }[]) => void;\n\n /**\n * Enables drag-and-drop file uploads when true.\n *\n * When enabled:\n * - Files can be dropped anywhere on the chatbar\n * - Same validation rules apply (accept, maxFileSize, maxAttachments)\n * - Visual feedback shows during drag operations\n * - Rejected files trigger onAttachmentReject\n *\n * @default true\n */\n dropzone?: boolean;\n\n /**\n * Optional API ref to control Chatbar imperatively without relying on DOM refs.\n * Provides methods to focus the textarea and open the file picker.\n */\n apiRef?: React.Ref<ChatbarApi>;\n}\n\ntype RootElement = React.ElementRef<'div'>;\n/** Imperative API for Chatbar.Root */\nexport interface ChatbarApi {\n /** Focus the textarea input */\n focusTextarea: () => void;\n /** Open the file picker dialog (respects accept/multiple) */\n openFilePicker: () => void;\n}\n/**\n * Chatbar container and state provider.\n *\n * Behavior\n * - Supports controlled and uncontrolled `value` and `open` states via props.\n * - Provides context to subcomponents like `Textarea`, `Row`, and `Send`.\n * - Exposes `data-state`, `data-disabled`, and `data-readonly` attributes for styling.\n * - Sets `aria-expanded` to reflect open/closed state for assistive technologies.\n *\n * Attachments\n * - Controlled/uncontrolled attachments with client-side filtering.\n * - Filters by `accept`/`pasteAccept`, `maxAttachments`, and `maxFileSize`.\n * - Rejections are reported via `onAttachmentReject`.\n * - Paste-to-attach: when `paste` is enabled, pasting files adds attachments.\n *\n * Dropzone\n * - When `dropzone` is true, enables drag-and-drop file uploads.\n * - Files are validated using the same rules as paste and file picker.\n * - Visual feedback via `data-drop-active` attribute during drag operations.\n * - Rejected files trigger `onAttachmentReject` with appropriate reasons.\n *\n * Submit\n * - `onSubmit` receives both message text and attachments array.\n * - `clearOnSubmit` controls whether attachments are cleared after submission.\n *\n * Accessibility\n * - Consumers should label the `Textarea` via `aria-label`/`aria-labelledby`.\n * - `aria-expanded` on the root reflects the disclosure state of the input area.\n * - Dropzone provides proper ARIA attributes for drag and drop operations.\n */\ninterface RootProps extends ComponentPropsWithout<'div', RemovedProps | 'onSubmit'>, ChatbarRootBaseProps {}\n\nconst Root = React.forwardRef<RootElement, RootProps>((props, forwardedRef) => {\n const {\n className,\n style,\n children,\n value: valueProp,\n defaultValue = '',\n onValueChange: onValueChangeProp,\n open: openProp,\n defaultOpen = false,\n onOpenChange: onOpenChangeProp,\n expandOn = 'both',\n minLines = 3,\n maxLines = 6,\n sendMode = 'whenDirty',\n disabled,\n readOnly,\n onSubmit,\n size = '2',\n variant,\n color,\n radius,\n panelBackground,\n material,\n width,\n maxWidth,\n asChild,\n attachments: attachmentsProp,\n defaultAttachments = [],\n onAttachmentsChange,\n accept,\n multiple = true,\n maxAttachments,\n maxFileSize,\n paste = true,\n pasteAccept,\n clearOnSubmit = true,\n onAttachmentReject,\n dropzone = true,\n apiRef,\n ...divProps\n } = props;\n const effectiveMaterial = material || panelBackground;\n\n const isValueControlled = valueProp != null;\n const [valueUncontrolled, setValueUncontrolled] = React.useState<string>(defaultValue);\n const value = isValueControlled ? (valueProp as string) : valueUncontrolled;\n\n const isOpenControlled = openProp != null;\n const [openUncontrolled, setOpenUncontrolled] = React.useState<boolean>(defaultOpen);\n const open = isOpenControlled ? (openProp as boolean) : openUncontrolled;\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n const textareaRef = React.useRef<HTMLTextAreaElement>(null);\n const fileDialogOpenRef = React.useRef<boolean>(false);\n\n // Attachments state\n // Treat `attachments` as controlled if the prop is provided, even if its value is `undefined`.\n // This avoids switching between controlled and uncontrolled when a consumer sets\n // `attachments={undefined}` to clear attachments. In that case we normalize to an empty array.\n const isAttachmentsControlled = 'attachments' in props;\n const [attachmentsUncontrolled, setAttachmentsUncontrolled] = React.useState<ChatbarAttachment[]>(defaultAttachments);\n const attachments = React.useMemo(\n () => (isAttachmentsControlled ? ((attachmentsProp ?? []) as ChatbarAttachment[]) : attachmentsUncontrolled),\n [isAttachmentsControlled, attachmentsProp, attachmentsUncontrolled],\n );\n\n // Track generated object URLs for cleanup\n const generatedUrlSetRef = React.useRef<Set<string>>(new Set());\n\n const toArray = (val: string | string[] | undefined) => (Array.isArray(val) ? val : typeof val === 'string' ? val.split(',').map((s) => s.trim()) : []);\n\n const accepts = toArray(accept);\n const pasteAccepts = toArray(pasteAccept).length > 0 ? toArray(pasteAccept) : accepts;\n\n const matchesAccept = (file: File, patterns: string[]) => {\n if (patterns.length === 0) return true;\n const mime = file.type.toLowerCase();\n const name = file.name.toLowerCase();\n for (const patRaw of patterns) {\n const pat = patRaw.toLowerCase();\n if (pat.includes('/')) {\n const [type, subtype] = pat.split('/');\n const [fmType, fmSubtype] = mime.split('/');\n if (type === '*' || (type === fmType && (subtype === '*' || subtype === fmSubtype))) return true;\n } else if (pat.startsWith('.')) {\n if (name.endsWith(pat)) return true;\n }\n }\n return false;\n };\n\n // Refs for values that change frequently, read inside stable callbacks\n const attachmentsRef = React.useRef(attachments);\n attachmentsRef.current = attachments;\n const acceptsRef = React.useRef(accepts);\n acceptsRef.current = accepts;\n const pasteAcceptsRef = React.useRef(pasteAccepts);\n pasteAcceptsRef.current = pasteAccepts;\n const maxAttachmentsRef = React.useRef(maxAttachments);\n maxAttachmentsRef.current = maxAttachments;\n const maxFileSizeRef = React.useRef(maxFileSize);\n maxFileSizeRef.current = maxFileSize;\n const onAttachmentRejectRef = React.useRef(onAttachmentReject);\n onAttachmentRejectRef.current = onAttachmentReject;\n const onAttachmentsChangeRef = React.useRef(onAttachmentsChange);\n onAttachmentsChangeRef.current = onAttachmentsChange;\n const onOpenChangePropRef = React.useRef(onOpenChangeProp);\n onOpenChangePropRef.current = onOpenChangeProp;\n\n const appendFiles = React.useCallback((files: File[]) => {\n const currentAttachments = attachmentsRef.current;\n const currentAccepts = acceptsRef.current;\n const currentMaxAttachments = maxAttachmentsRef.current;\n const currentMaxFileSize = maxFileSizeRef.current;\n\n const next: ChatbarAttachment[] = [];\n const rejected: { file: File; reason: 'type' | 'size' | 'count' }[] = [];\n const remainingSlots = typeof currentMaxAttachments === 'number' ? Math.max(currentMaxAttachments - currentAttachments.length, 0) : Infinity;\n\n for (const file of files) {\n if (next.length >= remainingSlots) {\n rejected.push({ file, reason: 'count' });\n continue;\n }\n if (typeof currentMaxFileSize === 'number' && file.size > currentMaxFileSize) {\n rejected.push({ file, reason: 'size' });\n continue;\n }\n if (!matchesAccept(file, currentAccepts)) {\n rejected.push({ file, reason: 'type' });\n continue;\n }\n const id = `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n const looksLikeImageByExt = /\\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(file.name);\n const isImageType = (file.type || '').toLowerCase().startsWith('image/');\n const url = isImageType || looksLikeImageByExt ? URL.createObjectURL(file) : undefined;\n if (url) generatedUrlSetRef.current.add(url);\n next.push({ id, name: file.name, size: file.size, type: file.type, file, url, status: 'idle' });\n }\n\n if (next.length > 0) {\n const merged = currentAttachments.concat(next);\n if (!isAttachmentsControlled) setAttachmentsUncontrolled(merged);\n onAttachmentsChangeRef.current?.(merged);\n if (!isOpenControlled) setOpenUncontrolled(true);\n onOpenChangePropRef.current?.(true);\n }\n if (rejected.length > 0) onAttachmentRejectRef.current?.(rejected);\n }, [isAttachmentsControlled, isOpenControlled]);\n\n const appendFilesFromPaste = React.useCallback((files: File[]) => {\n const currentAccepts = acceptsRef.current;\n const currentPasteAccepts = pasteAcceptsRef.current;\n const currentMaxAttachments = maxAttachmentsRef.current;\n const currentMaxFileSize = maxFileSizeRef.current;\n const currentAttachments = attachmentsRef.current;\n\n const patterns = currentPasteAccepts.length > 0 ? currentPasteAccepts : currentAccepts;\n const acceptedFiles: File[] = [];\n const rejected: { file: File; reason: 'type' | 'size' | 'count' }[] = [];\n const remainingSlots = typeof currentMaxAttachments === 'number' ? Math.max(currentMaxAttachments - currentAttachments.length, 0) : Infinity;\n\n for (const file of files) {\n if (acceptedFiles.length >= remainingSlots) {\n rejected.push({ file, reason: 'count' });\n continue;\n }\n if (typeof currentMaxFileSize === 'number' && file.size > currentMaxFileSize) {\n rejected.push({ file, reason: 'size' });\n continue;\n }\n if (!matchesAccept(file, patterns)) {\n rejected.push({ file, reason: 'type' });\n continue;\n }\n acceptedFiles.push(file);\n }\n if (acceptedFiles.length > 0) appendFiles(acceptedFiles);\n if (rejected.length > 0) onAttachmentRejectRef.current?.(rejected);\n }, [appendFiles]);\n\n // Revoke object URLs that are no longer referenced by current attachments\n React.useEffect(() => {\n const currentUrls = new Set(attachments.map((a) => a.url).filter(Boolean) as string[]);\n for (const url of Array.from(generatedUrlSetRef.current)) {\n if (!currentUrls.has(url)) {\n URL.revokeObjectURL(url);\n generatedUrlSetRef.current.delete(url);\n }\n }\n }, [attachments]);\n\n // Revoke any remaining generated URLs on unmount\n React.useEffect(() => {\n const urlSet = generatedUrlSetRef.current;\n return () => {\n for (const url of Array.from(urlSet)) {\n URL.revokeObjectURL(url);\n }\n urlSet.clear();\n };\n }, []);\n\n const Comp = asChild ? Slot : ('div' as any);\n\n // Stable context setters \u2014 avoids new function references on every render\n const handleSetOpen = React.useCallback(\n (next: boolean) => {\n if (!isOpenControlled) setOpenUncontrolled(next);\n onOpenChangeProp?.(next);\n },\n [isOpenControlled, onOpenChangeProp],\n );\n const handleSetValue = React.useCallback(\n (next: string) => {\n if (!isValueControlled) setValueUncontrolled(next);\n onValueChangeProp?.(next);\n },\n [isValueControlled, onValueChangeProp],\n );\n const handleSetAttachments = React.useCallback(\n (next: ChatbarAttachment[]) => {\n if (!isAttachmentsControlled) setAttachmentsUncontrolled(next);\n onAttachmentsChange?.(next);\n },\n [isAttachmentsControlled, onAttachmentsChange],\n );\n\n const handleBlurCapture = React.useCallback(\n (event: React.FocusEvent) => {\n const nextTarget = event.relatedTarget as Node | null;\n const rootEl = rootRef.current;\n if (!rootEl) return;\n // If focus remains within root, ignore\n if (nextTarget && rootEl.contains(nextTarget)) return;\n // If native file dialog is open, avoid collapsing on blur\n if (fileDialogOpenRef.current) return;\n // Collapse when leaving the root if the value is empty\n // Only collapse when both message and attachments are empty\n if ((value?.trim?.() ?? '').length === 0 && attachments.length === 0) {\n if (!isOpenControlled) setOpenUncontrolled(false);\n onOpenChangeProp?.(false);\n }\n },\n [isOpenControlled, onOpenChangeProp, value, attachments],\n );\n\n // Dropzone functionality\n const {\n getRootProps,\n getInputProps,\n isDragActive,\n open: openFileDialog,\n } = useDropzone({\n onDrop: (acceptedFiles, rejectedFiles) => {\n if (acceptedFiles.length > 0) {\n appendFiles(acceptedFiles);\n }\n if (rejectedFiles.length > 0 && onAttachmentReject) {\n const rejections = rejectedFiles.map(({ file, errors }) => {\n const reason = errors[0]?.code === 'file-too-large' ? 'size' : errors[0]?.code === 'file-invalid-type' ? 'type' : 'count';\n return { file, reason: reason as 'type' | 'size' | 'count' };\n });\n onAttachmentReject(rejections);\n }\n },\n accept:\n accepts.length > 0\n ? accepts.reduce(\n (acc, pattern) => {\n if (pattern.includes('/')) {\n // MIME type pattern\n acc[pattern] = [];\n } else if (pattern.startsWith('.')) {\n // File extension pattern\n acc[pattern] = [];\n }\n return acc;\n },\n {} as Record<string, string[]>,\n )\n : undefined,\n multiple,\n maxSize: maxFileSize,\n noClick: true,\n noKeyboard: true,\n disabled: !dropzone || disabled,\n });\n\n // Expose imperative API via apiRef (non-breaking; forwardedRef still receives the DOM node)\n React.useImperativeHandle(\n apiRef,\n () => ({\n focusTextarea: () => textareaRef.current?.focus({ preventScroll: true }),\n openFilePicker: () => {\n // Guard against blur-collapse while native dialog is open\n fileDialogOpenRef.current = true;\n openFileDialog();\n },\n }),\n [openFileDialog],\n );\n\n // Click-to-focus: focus textarea when clicking non-interactive areas inside the container\n const isInteractiveTarget = React.useCallback((target: EventTarget | null) => {\n if (!(target instanceof Element)) return false;\n const el = target as Element;\n if (el.closest('.rt-ChatbarDropOverlay')) return true;\n return !!el.closest('button, [role=\"button\"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex=\"-1\"])');\n }, []);\n\n const handleContainerPointerDown = React.useCallback(\n (event: React.PointerEvent) => {\n if (disabled) return;\n if (isInteractiveTarget(event.target)) return;\n if (event.pointerType === 'mouse' && event.button !== 0) return;\n event.preventDefault();\n textareaRef.current?.focus({ preventScroll: true });\n },\n [disabled, isInteractiveTarget, textareaRef],\n );\n\n // Clicking the label-wrapped Card will naturally focus the nested textarea.\n\n return (\n <ChatbarContext.Provider\n value={React.useMemo<ChatbarContextValue>(\n () => ({\n open,\n setOpen: handleSetOpen,\n isOpenControlled,\n value,\n setValue: handleSetValue,\n isValueControlled,\n size,\n expandOn,\n minLines,\n maxLines,\n sendMode,\n disabled,\n readOnly,\n onSubmit,\n rootRef,\n textareaRef,\n attachments,\n setAttachments: handleSetAttachments,\n isAttachmentsControlled,\n accept,\n multiple,\n maxAttachments,\n maxFileSize,\n paste,\n pasteAccept,\n clearOnSubmit,\n onAttachmentReject,\n dropzone,\n appendFiles,\n appendFilesFromPaste,\n fileDialogOpenRef,\n }),\n [\n open, handleSetOpen, isOpenControlled,\n value, handleSetValue, isValueControlled,\n size, expandOn, minLines, maxLines, sendMode,\n disabled, readOnly, onSubmit,\n attachments, handleSetAttachments, isAttachmentsControlled,\n accept, multiple, maxAttachments, maxFileSize,\n paste, pasteAccept, clearOnSubmit, onAttachmentReject,\n dropzone, appendFiles, appendFilesFromPaste,\n ],\n )}\n >\n <LazyMotion features={domAnimation}>\n <Comp\n {...divProps}\n ref={(node: HTMLDivElement) => {\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n (rootRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={classNames('rt-ChatbarRoot', `rt-r-size-${size}`, className)}\n style={{ position: 'relative', width, maxWidth, ...style }}\n data-state={open ? 'open' : 'closed'}\n data-disabled={disabled ? '' : undefined}\n data-readonly={readOnly ? '' : undefined}\n data-drop-active={dropzone && isDragActive ? '' : undefined}\n data-accent-color={color}\n data-radius={radius as any}\n data-panel-background={effectiveMaterial}\n data-material={effectiveMaterial}\n aria-expanded={open}\n onBlurCapture={handleBlurCapture}\n >\n {dropzone && <input {...getInputProps()} />}\n <div {...(dropzone ? getRootProps() : {})} style={{ width: '100%', height: '100%' }} onPointerDown={handleContainerPointerDown}>\n <m.div\n className={classNames('rt-ChatbarBox', `rt-variant-${variant ?? 'surface'}`)}\n style={{ position: 'relative' }}\n data-accent-color={color}\n data-radius={radius as any}\n data-panel-background={effectiveMaterial}\n data-material={effectiveMaterial}\n layout\n transition={{\n layout: {\n type: 'spring',\n visualDuration: 0.15,\n bounce: 0.1,\n },\n }}\n >\n <m.div\n className=\"rt-ChatbarGrid\"\n layout=\"position\"\n transition={{\n layout: {\n type: 'spring',\n visualDuration: 0.15,\n bounce: 0.1,\n },\n }}\n >\n {children}\n </m.div>\n {dropzone && isDragActive && (\n <div className=\"rt-ChatbarDropOverlay\">\n <div className=\"rt-ChatbarDropContent\">\n <Text color=\"gray\" size={size} weight=\"medium\">\n Drop files here to attach\n </Text>\n </div>\n </div>\n )}\n </m.div>\n </div>\n </Comp>\n </LazyMotion>\n </ChatbarContext.Provider>\n );\n});\nRoot.displayName = 'Chatbar.Root';\n\n/**\n * Multi-line text input for Chatbar.\n * - Uses onChange to control value and avoid duplicate updates.\n * - Auto-resizes between minLines and maxLines.\n * - Expands on focus/overflow per `expandOn`.\n * - Paste-to-attach: when `paste` is enabled on Root, pasting files adds attachments.\n * - Provide `aria-label` or `aria-labelledby` for an accessible name.\n */\ninterface TextareaProps extends Omit<React.ComponentPropsWithoutRef<'textarea'>, 'size'> {\n asChild?: boolean;\n /**\n * Handler for paste events. This is forwarded to the underlying <textarea>.\n */\n onPaste?: React.ClipboardEventHandler<HTMLTextAreaElement>;\n /**\n * When true, pressing Enter submits via onSend (Shift+Enter inserts newline).\n * Defaults to false.\n */\n submitOnEnter?: boolean;\n}\n\n/**\n * Chatbar multi-line text input.\n *\n * Behavior\n * - Controls the Chatbar value via React onChange. We intentionally do not\n * update state in onInput to avoid duplicate updates per keystroke.\n * - Auto-resizes between minLines and maxLines using layout measurements.\n * - When expandOn is `overflow` or `both`, the Chatbar opens as soon as the\n * content exceeds the compact height.\n * - Height recalculations occur on change, paste, and whenever `value` or `open`\n * changes via an isomorphic layout effect to avoid SSR warnings.\n *\n * Accessibility\n * - Consumers should provide labeling via aria-label or aria-labelledby\n * on this component, as no implicit label is rendered.\n */\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>((props, forwardedRef) => {\n const { className, style, asChild, onFocus, onInput, onChange, onPaste, onKeyDown, submitOnEnter = false, rows, ...textareaProps } = props;\n const ctx = useChatbarContext();\n const { open, minLines, maxLines, expandOn, disabled, readOnly, setOpen, setValue, textareaRef, value, isValueControlled, sendMode, paste, appendFilesFromPaste, size } = ctx;\n\n // Cached metrics to avoid repeated getComputedStyle calls\n const lineHeightRef = React.useRef<number>(0);\n const paddingRef = React.useRef<number>(0);\n const compactHeightRef = React.useRef<number>(0);\n\n const recomputeMetrics = React.useCallback(() => {\n const el = textareaRef.current;\n if (!el) return;\n const computedStyle = window.getComputedStyle(el);\n const lineHeight = parseFloat(computedStyle.lineHeight) || 20;\n const paddingTop = parseFloat(computedStyle.paddingTop) || 0;\n const paddingBottom = parseFloat(computedStyle.paddingBottom) || 0;\n lineHeightRef.current = lineHeight;\n paddingRef.current = paddingTop + paddingBottom;\n compactHeightRef.current = Math.ceil(1 * lineHeight) + paddingTop + paddingBottom;\n }, [textareaRef]);\n\n // Auto-resize logic - optimized for fixed widths\n const updateHeight = React.useCallback(\n (forceOpen?: boolean) => {\n const textarea = textareaRef.current;\n if (!textarea) return;\n\n textarea.style.height = 'auto';\n\n if (lineHeightRef.current === 0) {\n recomputeMetrics();\n }\n const lineHeight = lineHeightRef.current;\n const padding = paddingRef.current;\n\n const isOpen = forceOpen ?? open;\n const effectiveMinLines = isOpen ? minLines : 1;\n const effectiveMaxLines = isOpen ? maxLines : 1;\n\n const minHeight = Math.ceil(effectiveMinLines * lineHeight) + padding;\n const maxHeight = Math.ceil(effectiveMaxLines * lineHeight) + padding;\n\n const contentHeight = Math.max(textarea.scrollHeight, minHeight);\n const finalHeight = Math.min(contentHeight, maxHeight);\n\n textarea.style.height = `${finalHeight}px`;\n\n if (contentHeight > maxHeight) {\n textarea.style.overflowY = 'auto';\n textarea.style.maxHeight = `${maxHeight}px`;\n } else {\n textarea.style.overflowY = 'hidden';\n textarea.style.maxHeight = 'none';\n }\n },\n [open, minLines, maxLines, textareaRef, recomputeMetrics],\n );\n\n // Update height when value or open state changes\n useIsomorphicLayoutEffect(() => {\n updateHeight();\n }, [updateHeight, value, open]);\n\n // Auto-open on external value changes when content overflows one line\n useIsomorphicLayoutEffect(() => {\n if (!(expandOn === 'overflow' || expandOn === 'both')) return;\n if (open) return;\n const el = textareaRef.current;\n if (!el) return;\n // Measure overflow against compact (1-line) height\n el.style.height = 'auto';\n if (compactHeightRef.current === 0) {\n recomputeMetrics();\n }\n const shouldExpand = el.scrollHeight > compactHeightRef.current + 1;\n if (shouldExpand) {\n setOpen(true);\n // Immediately size for open state\n updateHeight(true);\n requestAnimationFrame(() => updateHeight(true));\n }\n }, [value, expandOn, open, setOpen, textareaRef, recomputeMetrics, updateHeight]);\n\n // Recompute metrics on mount and when size changes may affect typography\n useIsomorphicLayoutEffect(() => {\n recomputeMetrics();\n updateHeight();\n }, [recomputeMetrics, updateHeight, size]);\n\n // Observe responsive changes that alter line-height\n React.useEffect(() => {\n const el = textareaRef.current;\n if (!el || typeof ResizeObserver === 'undefined') return;\n let prevLineHeight = lineHeightRef.current;\n const ro = new ResizeObserver(() => {\n const computedStyle = window.getComputedStyle(el);\n const lh = parseFloat(computedStyle.lineHeight) || 20;\n if (lh !== prevLineHeight) {\n prevLineHeight = lh;\n recomputeMetrics();\n requestAnimationFrame(() => updateHeight());\n }\n });\n ro.observe(el);\n return () => ro.disconnect();\n }, [textareaRef, recomputeMetrics, updateHeight]);\n\n // Dev-only warning if no accessible name is provided\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') return;\n const hasLabel = textareaProps['aria-label'] != null || textareaProps['aria-labelledby'] != null;\n if (!hasLabel) {\n console.warn('[Chatbar.Textarea] Provide aria-label or aria-labelledby to ensure the control has an accessible name.');\n }\n // warn only on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Note: No MutationObserver is used because <textarea> value changes are not\n // reflected in DOM text nodes. Height updates are handled by effects and events.\n\n const handleFocus = React.useCallback<React.FocusEventHandler<HTMLTextAreaElement>>(\n (event) => {\n if (disabled || readOnly) return;\n if ((expandOn === 'focus' || expandOn === 'both') && !open) setOpen(true);\n onFocus?.(event);\n },\n [disabled, readOnly, expandOn, open, setOpen, onFocus],\n );\n\n const handleChange = React.useCallback<React.ChangeEventHandler<HTMLTextAreaElement>>(\n (event) => {\n const el = event.currentTarget;\n const nextValue = el.value;\n setValue(nextValue);\n\n if ((expandOn === 'overflow' || expandOn === 'both') && !open) {\n el.style.height = 'auto';\n\n if (compactHeightRef.current === 0) {\n recomputeMetrics();\n }\n const shouldExpand = el.scrollHeight > compactHeightRef.current + 1;\n if (shouldExpand) {\n setOpen(true);\n // Immediately size for open state to avoid 1-line + scrollbar flash\n updateHeight(true);\n requestAnimationFrame(() => updateHeight(true));\n }\n }\n\n // Always recalc after any input\n requestAnimationFrame(() => updateHeight());\n onChange?.(event);\n },\n [expandOn, open, setOpen, setValue, onChange, updateHeight, recomputeMetrics],\n );\n\n const handlePaste = React.useCallback<React.ClipboardEventHandler<HTMLTextAreaElement>>(\n (event) => {\n // Attach files from clipboard if enabled\n if (paste) {\n const items = Array.from(event.clipboardData?.items ?? []);\n const files = items\n .filter((i) => i.kind === 'file')\n .map((i) => i.getAsFile())\n .filter((f): f is File => !!f);\n if (files.length > 0) {\n // Prevent pasting the file name or any text representation when files are present\n event.preventDefault();\n appendFilesFromPaste(files);\n }\n }\n setTimeout(() => {\n // If pasting in compact mode, force sizing as open if content overflowed\n if (!open) {\n updateHeight(true);\n } else {\n updateHeight();\n }\n }, 0);\n onPaste?.(event);\n },\n [paste, open, updateHeight, onPaste, appendFilesFromPaste],\n );\n\n const handleKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLTextAreaElement>>(\n (event) => {\n if (!submitOnEnter) {\n onKeyDown?.(event);\n return;\n }\n if (event.key === 'Enter' && !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey && !event.nativeEvent.isComposing) {\n if (disabled || readOnly) {\n onKeyDown?.(event);\n return;\n }\n if (sendMode === 'never') {\n onKeyDown?.(event);\n return;\n }\n const trimmed = value.trim();\n const hasContent = trimmed.length > 0 || ctx.attachments.length > 0;\n if (sendMode === 'whenDirty' && !hasContent) {\n onKeyDown?.(event);\n return;\n }\n event.preventDefault();\n ctx.onSubmit?.({ value, attachments: ctx.attachments });\n if (ctx.clearOnSubmit) {\n if (!isValueControlled) setValue('');\n ctx.setAttachments([]);\n }\n }\n onKeyDown?.(event);\n },\n [submitOnEnter, disabled, readOnly, sendMode, value, isValueControlled, setValue, ctx, onKeyDown],\n );\n\n const Comp = asChild ? Slot : ('textarea' as any);\n return (\n <m.div \n className={classNames('rt-ChatbarField', 'rt-ChatbarTextarea', className)}\n layout=\"position\"\n transition={{\n layout: {\n type: 'spring',\n visualDuration: 0.15,\n bounce: 0.1,\n },\n }}\n >\n <Comp\n {...textareaProps}\n ref={(node: HTMLTextAreaElement) => {\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) (forwardedRef as React.MutableRefObject<HTMLTextAreaElement | null>).current = node;\n (textareaRef as React.MutableRefObject<HTMLTextAreaElement | null>).current = node;\n }}\n className=\"rt-ChatbarInput\"\n value={value}\n onInput={onInput}\n onChange={handleChange}\n onFocus={handleFocus}\n onPaste={handlePaste}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n rows={open ? minLines : 1}\n spellCheck={textareaProps.spellCheck ?? true}\n autoCorrect={textareaProps.autoCorrect ?? 'on'}\n style={style}\n />\n </m.div>\n );\n});\nTextarea.displayName = 'Chatbar.Textarea';\n\ninterface InlineSlotProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {\n asChild?: boolean;\n children?: React.ReactNode;\n}\n\nconst InlineStart = React.forwardRef<HTMLDivElement, InlineSlotProps>((props, forwardedRef) => {\n const { children, asChild, style, className, ...divProps } = props;\n const ctx = useChatbarContext();\n if (ctx.open) return null;\n const Comp = asChild ? Slot : ('div' as any);\n return (\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarInlineStart', className)} style={style}>\n {children}\n </Comp>\n );\n});\nInlineStart.displayName = 'Chatbar.InlineStart';\n\nconst InlineEnd = React.forwardRef<HTMLDivElement, InlineSlotProps>((props, forwardedRef) => {\n const { children, asChild, style, className, ...divProps } = props;\n const ctx = useChatbarContext();\n // Use CSS to hide when open instead of unmounting to avoid layout animation scale\n if (ctx.open) return null;\n const Comp = asChild ? Slot : ('div' as any);\n return (\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarInlineEnd', className)} style={style}>\n {children}\n </Comp>\n );\n});\nInlineEnd.displayName = 'Chatbar.InlineEnd';\n\n/**\n * Renders a horizontally scrollable list of attachments above the inline row.\n * Hidden when empty unless `forceMount`. Override per-item with `renderAttachment`.\n */\ninterface AttachmentsRowProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {\n asChild?: boolean;\n forceMount?: boolean;\n /** If provided, custom-render a tile; otherwise default tile is used */\n renderAttachment?: (attachment: ChatbarAttachment) => React.ReactNode;\n}\n\nconst AttachmentsRow = React.forwardRef<HTMLDivElement, AttachmentsRowProps>((props, forwardedRef) => {\n const { asChild, forceMount, renderAttachment, className, style, ...divProps } = props;\n const ctx = useChatbarContext();\n const hasItems = ctx.attachments.length > 0;\n if (!hasItems && !forceMount) return null;\n const Comp = asChild ? Slot : ('div' as any);\n return (\n <m.div\n layout=\"position\"\n transition={{\n layout: {\n type: 'spring',\n visualDuration: 0.15,\n bounce: 0.1,\n },\n }}\n >\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarAttachmentsRow', className)} style={style} role=\"list\" aria-label={divProps['aria-label'] ?? 'Attachments'}>\n <ScrollArea className=\"rt-ChatbarScrollArea\" scrollbars=\"horizontal\" size=\"1\">\n <Flex align=\"center\" gap=\"2\" style={{ minWidth: 'fit-content' }}>\n {ctx.attachments.map((att) => (\n <Attachment key={att.id} attachment={att} asChild={!!renderAttachment}>\n {renderAttachment?.(att)}\n </Attachment>\n ))}\n </Flex>\n </ScrollArea>\n </Comp>\n </m.div>\n );\n});\nAttachmentsRow.displayName = 'Chatbar.AttachmentsRow';\n\n/** Default tile renderer for a single attachment. */\ninterface AttachmentProps extends React.ComponentPropsWithoutRef<'div'> {\n attachment: ChatbarAttachment;\n asChild?: boolean;\n}\n\nconst Attachment = React.forwardRef<HTMLDivElement, AttachmentProps>((props, forwardedRef) => {\n const { attachment, asChild, className, style, children, ...divProps } = props;\n const ctx = useChatbarContext();\n const Comp = asChild ? Slot : ('div' as any);\n const isImage = !!attachment.url && attachment.type.startsWith('image/');\n return (\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarAttachment', className)} style={style} role=\"listitem\" data-kind={isImage ? 'image' : 'file'} title={attachment.name}>\n {children ?? (\n // <Card size={ctx.size} variant=\"surface\">\n <Flex align=\"center\" gap=\"2\" pr={!isImage ? '6' : undefined}>\n <div className=\"rt-ChatbarAttachmentPreview\" aria-hidden>\n {isImage ? <img className=\"rt-ChatbarAttachmentImage\" src={attachment.url} alt=\"\" /> : <FileTextIcon />}\n </div>\n {!isImage && (\n <Flex direction=\"column\" gap=\"0\" style={{ minWidth: 0 }}>\n <Text size={ctx.size} weight=\"medium\" style={{ whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}>\n {attachment.name}\n </Text>\n <Text size=\"1\" color=\"gray\">\n {Math.ceil(attachment.size / 1024)} KB\n </Text>\n </Flex>\n )}\n <IconButton\n className=\"rt-ChatbarAttachmentRemove\"\n aria-label={`Remove ${attachment.name}`}\n size=\"1\"\n // size={ctx.size}\n variant=\"classic\"\n highContrast\n color=\"gray\"\n onClick={() => ctx.setAttachments(ctx.attachments.filter((a) => a.id !== attachment.id))}\n >\n <CloseIcon />\n </IconButton>\n </Flex>\n // </Card>\n )}\n </Comp>\n );\n});\nAttachment.displayName = 'Chatbar.Attachment';\n\ninterface AttachTriggerProps extends React.ComponentPropsWithoutRef<'button'> {\n asChild?: boolean;\n accept?: string | string[];\n multiple?: boolean;\n}\n\nconst AttachTrigger = React.forwardRef<HTMLButtonElement, AttachTriggerProps>((props, forwardedRef) => {\n const { asChild, accept, multiple, className, style, ...buttonProps } = props;\n const ctx = useChatbarContext();\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const Comp = asChild ? Slot : ('button' as any);\n // Prefer Chatbar.Root's accept when a local accept is not provided\n const mergedAccept = accept ?? ctx.accept;\n const actualAccept = (Array.isArray(mergedAccept) ? mergedAccept : (mergedAccept?.split(',') ?? [])).join(',');\n React.useEffect(() => {\n const handleWindowFocus = () => {\n // Reset guard when window regains focus after file dialog closes\n ctx.fileDialogOpenRef.current = false;\n };\n window.addEventListener('focus', handleWindowFocus);\n return () => window.removeEventListener('focus', handleWindowFocus);\n }, [ctx.fileDialogOpenRef]);\n return (\n <>\n <Comp\n {...(buttonProps as any)}\n ref={forwardedRef as any}\n className={classNames('rt-ChatbarAttachTrigger', className)}\n style={style}\n type={buttonProps.type ?? 'button'}\n aria-label={buttonProps['aria-label'] ?? 'Add attachments'}\n onPointerDown={(e: any) => {\n // Set guard before blur occurs (Safari fires blur before click)\n ctx.fileDialogOpenRef.current = true;\n buttonProps.onPointerDown?.(e);\n }}\n onMouseDown={(e: any) => {\n // Fallback for environments without Pointer Events\n ctx.fileDialogOpenRef.current = true;\n buttonProps.onMouseDown?.(e);\n }}\n onClick={(e: any) => {\n // Ensure file input opens reliably by clicking it first\n ctx.fileDialogOpenRef.current = true;\n if (inputRef.current) {\n inputRef.current.click();\n }\n // Then call user's onClick if provided\n buttonProps.onClick?.(e);\n }}\n />\n <input\n ref={inputRef}\n type=\"file\"\n accept={actualAccept}\n multiple={multiple ?? ctx.multiple}\n tabIndex={-1}\n style={{ display: 'none' }}\n onChange={(e) => {\n const files = Array.from(e.currentTarget.files ?? []);\n if (files.length > 0) {\n ctx.appendFiles(files);\n }\n // File dialog closed; allow normal blur handling\n ctx.fileDialogOpenRef.current = false;\n // Reset input value to allow selecting the same file again\n e.currentTarget.value = '';\n }}\n />\n </>\n );\n});\nAttachTrigger.displayName = 'Chatbar.AttachTrigger';\ninterface RowProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {\n asChild?: boolean;\n children?: React.ReactNode;\n}\n\nconst Row = React.forwardRef<HTMLDivElement, RowProps>((props, forwardedRef) => {\n const { asChild, children, className, style, ...divProps } = props;\n const ctx = useChatbarContext();\n if (!ctx.open) return null;\n const Comp = asChild ? Slot : ('div' as any);\n return (\n <m.div\n layout=\"position\"\n transition={{\n layout: {\n type: 'spring',\n visualDuration: 0.15,\n bounce: 0.1,\n },\n }}\n >\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarRow', className)} style={style}>\n <Flex align=\"center\" justify=\"between\" width=\"100%\">\n {children}\n </Flex>\n </Comp>\n </m.div>\n );\n});\nRow.displayName = 'Chatbar.Row';\n\nconst RowStart = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, forwardedRef) => {\n const { className, style, ...divProps } = props;\n return <div {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarRowStart', className)} style={style} />;\n});\nRowStart.displayName = 'Chatbar.RowStart';\n\nconst RowEnd = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, forwardedRef) => {\n const { className, style, ...divProps } = props;\n return <div {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarRowEnd', className)} style={style} />;\n});\nRowEnd.displayName = 'Chatbar.RowEnd';\n\ntype SendProps = Omit<IconButtonProps, 'aria-label' | 'aria-labelledby'> & {\n /** Optional override for accessible name. Defaults to \"Send\". */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n asChild?: boolean;\n clearOnSend?: boolean;\n};\n\nconst Send = React.forwardRef<HTMLButtonElement, SendProps>((props, forwardedRef) => {\n const { asChild, clearOnSend = true, disabled, children, className, style, size: sizeProp, variant: variantProp, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, ...buttonProps } = props;\n const ctx = useChatbarContext();\n\n const trimmed = ctx.value.trim();\n const hasContent = trimmed.length > 0 || ctx.attachments.length > 0;\n const visible = ctx.sendMode === 'always' || (ctx.sendMode === 'whenDirty' && hasContent);\n if (ctx.sendMode === 'never') return null;\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (ctx.disabled || ctx.readOnly) return;\n ctx.onSubmit?.({ value: ctx.value, attachments: ctx.attachments });\n if (clearOnSend) {\n if (!ctx.isValueControlled) ctx.setValue('');\n if (ctx.clearOnSubmit) ctx.setAttachments([]);\n }\n buttonProps.onClick?.(event);\n };\n\n return (\n <IconButton\n {...(buttonProps as any)}\n ref={forwardedRef as any}\n size={sizeProp ?? ctx.size}\n variant={variantProp ?? (ctx.open ? 'solid' : 'ghost')}\n disabled={disabled || ctx.disabled || ctx.readOnly}\n className={classNames('rt-ChatbarSend', className)}\n style={{\n opacity: visible ? 1 : 0,\n pointerEvents: visible ? 'auto' : 'none',\n ...style,\n }}\n asChild={asChild}\n onClick={handleClick}\n aria-label={ariaLabel ?? (ariaLabelledby ? undefined : 'Send')}\n aria-labelledby={ariaLabelledby}\n >\n {children ?? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-arrow-right-icon lucide-arrow-right\"\n >\n <path d=\"M5 12h14\" />\n <path d=\"m12 5 7 7-7 7\" />\n </svg>\n )}\n </IconButton>\n );\n});\nSend.displayName = 'Chatbar.Send';\n\nexport { Root, Textarea, InlineStart, InlineEnd, AttachmentsRow, Attachment, AttachTrigger, Row, RowStart, RowEnd, Send };\nexport type { RootProps as ChatbarRootProps, TextareaProps as ChatbarTextareaProps, RowProps as ChatbarRowProps, SendProps as ChatbarSendProps, ChatbarAttachment };\n"],
5
- "mappings": "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",
6
- "names": ["chatbar_exports", "__export", "AttachTrigger", "Attachment", "AttachmentsRow", "InlineEnd", "InlineStart", "Root", "Row", "RowEnd", "RowStart", "Send", "Textarea", "React", "classNames", "LazyMotion", "domAnimation", "m", "useDropzone", "useIsomorphicLayoutEffect", "ChatbarContext", "useChatbarContext", "ctx", "Root", "props", "forwardedRef", "className", "style", "children", "valueProp", "defaultValue", "onValueChangeProp", "openProp", "defaultOpen", "onOpenChangeProp", "expandOn", "minLines", "maxLines", "sendMode", "disabled", "readOnly", "onSubmit", "size", "variant", "color", "radius", "panelBackground", "material", "width", "maxWidth", "asChild", "attachmentsProp", "defaultAttachments", "onAttachmentsChange", "accept", "multiple", "maxAttachments", "maxFileSize", "paste", "pasteAccept", "clearOnSubmit", "onAttachmentReject", "dropzone", "apiRef", "divProps", "effectiveMaterial", "isValueControlled", "valueUncontrolled", "setValueUncontrolled", "value", "isOpenControlled", "openUncontrolled", "setOpenUncontrolled", "open", "rootRef", "textareaRef", "fileDialogOpenRef", "isAttachmentsControlled", "attachmentsUncontrolled", "setAttachmentsUncontrolled", "attachments", "generatedUrlSetRef", "toArray", "val", "s", "accepts", "pasteAccepts", "matchesAccept", "file", "patterns", "mime", "name", "patRaw", "pat", "type", "subtype", "fmType", "fmSubtype", "attachmentsRef", "acceptsRef", "pasteAcceptsRef", "maxAttachmentsRef", "maxFileSizeRef", "onAttachmentRejectRef", "onAttachmentsChangeRef", "onOpenChangePropRef", "appendFiles", "files", "currentAttachments", "currentAccepts", "currentMaxAttachments", "currentMaxFileSize", "next", "rejected", "remainingSlots", "id", "looksLikeImageByExt", "url", "merged", "appendFilesFromPaste", "currentPasteAccepts", "acceptedFiles", "currentUrls", "a", "urlSet", "Comp", "Slot", "handleSetOpen", "handleSetValue", "handleSetAttachments", "handleBlurCapture", "event", "nextTarget", "rootEl", "getRootProps", "getInputProps", "isDragActive", "openFileDialog", "rejectedFiles", "rejections", "errors", "reason", "acc", "pattern", "isInteractiveTarget", "target", "el", "handleContainerPointerDown", "LazyMotion", "domAnimation", "node", "classNames", "m", "Text", "Textarea", "onFocus", "onInput", "onChange", "onPaste", "onKeyDown", "submitOnEnter", "rows", "textareaProps", "setOpen", "setValue", "lineHeightRef", "paddingRef", "compactHeightRef", "recomputeMetrics", "computedStyle", "lineHeight", "paddingTop", "paddingBottom", "updateHeight", "forceOpen", "textarea", "padding", "isOpen", "effectiveMinLines", "effectiveMaxLines", "minHeight", "maxHeight", "contentHeight", "finalHeight", "prevLineHeight", "ro", "lh", "handleFocus", "handleChange", "nextValue", "handlePaste", "i", "f", "handleKeyDown", "hasContent", "InlineStart", "InlineEnd", "AttachmentsRow", "forceMount", "renderAttachment", "ScrollArea", "Flex", "att", "Attachment", "attachment", "isImage", "FileTextIcon", "IconButton", "CloseIcon", "AttachTrigger", "buttonProps", "inputRef", "mergedAccept", "actualAccept", "handleWindowFocus", "e", "Row", "RowStart", "RowEnd", "Send", "clearOnSend", "sizeProp", "variantProp", "ariaLabel", "ariaLabelledby", "visible", "handleClick"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as p}from"./chunk-G2CKYO2I.js";import{a as m}from"./chunk-AXUDFYLY.js";import{a as t}from"./chunk-KNQBAOMV.js";import{a as i}from"./chunk-FD2TR343.js";import{a as s}from"./chunk-WYADYDPN.js";import{a as f}from"./chunk-ZE2KAVXW.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{a as e}from"./chunk-HOHUDTTL.js";import{c as r}from"./chunk-66ZLZAAJ.js";var a=["h1","h2","h3","h4","h5","h6"],n=["0","1","2","3","4","5","6","7","8","9","10","11","12"],z={as:{type:"enum",values:a,default:"h1"},...o,size:{type:"enum",className:"rt-r-size",values:n,default:"6",responsive:!0},...m,...i,...p,...t,...f,...s,...r,...e};export{z as a};
2
- //# sourceMappingURL=chunk-N2B7TWIP.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/heading.props.tsx"],
4
- "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textAlignPropDef } from '../props/text-align.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { fontFamilyPropDef } from '../props/font-family.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst as = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const;\nconst sizes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst headingPropDefs = {\n as: { type: 'enum', values: as, default: 'h1' },\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n default: '6',\n responsive: true,\n },\n ...fontFamilyPropDef,\n ...weightPropDef,\n ...textAlignPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n ...colorPropDef,\n ...highContrastPropDef,\n} satisfies {\n as: PropDef<(typeof as)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { headingPropDefs };\n"],
5
- "mappings": "wWAYA,IAAMA,EAAK,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EACxCC,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EAE3EC,EAAkB,CACtB,GAAI,CAAE,KAAM,OAAQ,OAAQF,EAAI,QAAS,IAAK,EAC9C,GAAGG,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,EACR,QAAS,IACT,WAAY,EACd,EACA,GAAGG,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,CACL",
6
- "names": ["as", "sizes", "headingPropDefs", "asChildPropDef", "fontFamilyPropDef", "weightPropDef", "textAlignPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "colorPropDef", "highContrastPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import*as e from"react";var o=e.createContext({isInsideMenu:!1});function u(n){if(n)return typeof n=="string"?n:n.initial}function s({children:n,size:i}){let t=u(i),r=e.useMemo(()=>({isInsideMenu:!0,size:t}),[t]);return e.createElement(o.Provider,{value:r},n)}function c(){return e.useContext(o)}var d={1:24,2:32};export{s as a,c as b,d as c};
2
- //# sourceMappingURL=chunk-QCNUTT4R.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/menu-context.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for calculating item heights (resolved to non-responsive value) */\n size?: MenuSize;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/** Extract the base size from a potentially responsive value */\nfunction resolveSize(size: Responsive<MenuSize> | undefined): MenuSize | undefined {\n if (!size) return undefined;\n if (typeof size === 'string') return size;\n // For responsive objects, use the 'initial' value\n return size.initial;\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = resolveSize(size);\n const value = React.useMemo(() => ({ isInsideMenu: true, size: resolvedSize }), [resolvedSize]);\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n\n/** Map menu size to item height in pixels */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 24, // --space-5\n '2': 32, // --space-6\n};\n"],
5
- "mappings": "AAEA,UAAYA,MAAW,QAoBvB,IAAMC,EAAoB,gBAAgC,CAAE,aAAc,EAAM,CAAC,EASjF,SAASC,EAAYC,EAA8D,CACjF,GAAKA,EACL,OAAI,OAAOA,GAAS,SAAiBA,EAE9BA,EAAK,OACd,CAEO,SAASC,EAAa,CAAE,SAAAC,EAAU,KAAAF,CAAK,EAAsB,CAClE,IAAMG,EAAeJ,EAAYC,CAAI,EAC/BI,EAAc,UAAQ,KAAO,CAAE,aAAc,GAAM,KAAMD,CAAa,GAAI,CAACA,CAAY,CAAC,EAC9F,OAAO,gBAACL,EAAY,SAAZ,CAAqB,MAAOM,GAAQF,CAAS,CACvD,CAEO,SAASG,GAAiB,CAC/B,OAAa,aAAWP,CAAW,CACrC,CAGO,IAAMQ,EAAiD,CAC5D,EAAK,GACL,EAAK,EACP",
6
- "names": ["React", "MenuContext", "resolveSize", "size", "MenuProvider", "children", "resolvedSize", "value", "useMenuContext", "menuSizeToItemHeight"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as v}from"./chunk-VX6ARMWP.js";import{a as f}from"./chunk-XGGLYV5D.js";import{b as P}from"./chunk-IX5HIHVI.js";import{a as h,e as l,f as u,g as R}from"./chunk-V32EP3S7.js";import{b}from"./chunk-YUP6EICB.js";import{a as x}from"./chunk-GSTOGDAJ.js";import{a as m}from"./chunk-6FLLFCBU.js";import{a as k}from"./chunk-UMX5MGLG.js";import{a as z}from"./chunk-3XT5P2HO.js";var _={};z(_,{Item:()=>g,Root:()=>I});import*as o from"react";import d from"classnames";import{Context as D}from"radix-ui/internal";var y="CheckboxCards",[S]=D.createContextScope(y,[h]),G=h(),[B,E]=S(y),I=o.forwardRef((r,s)=>{let a=b(),c=r.panelBackground??a.panelBackground,{__scopeCheckboxCards:t,className:p,color:e,panelBackground:C,...i}=m(r,f,x),n=G(t);return o.createElement(B,{scope:t,size:r.size,variant:r.variant,highContrast:r.highContrast},o.createElement(v,{asChild:!0},o.createElement(l,{...n,"data-accent-color":e,"data-panel-background":c,...i,ref:s,className:d("rt-CheckboxCardsRoot",p)})))});I.displayName="CheckboxCards.Root";var g=o.forwardRef(({__scopeCheckboxCards:r,children:s,className:a,style:c,...t},p)=>{let e=E("CheckboxCardsItem",r),C=G(r),{className:i}=m({size:e?.size,variant:e?.variant||"solid",highContrast:e?.highContrast},k),n=e?.variant?`rt-variant-${e.variant}`:void 0,N=e?.size?`rt-r-size-${e.size}`:void 0;return o.createElement("label",{className:d("rt-BaseCard","rt-CheckboxCardsItem",n,N,a),style:c},s,o.createElement(u,{...C,...t,ref:p,className:d("rt-reset","rt-BaseCheckboxRoot","rt-CheckboxCardCheckbox",i)},o.createElement(R,{...C,asChild:!0,className:"rt-BaseCheckboxIndicator"},o.createElement(P,null))))});g.displayName="CheckboxCards.Item";export{I as a,g as b,_ as c};
2
- //# sourceMappingURL=chunk-QEOAXJLN.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/checkbox-cards.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Context } from 'radix-ui/internal';\n\nimport * as CheckboxGroupPrimitive from './checkbox-group.primitive.js';\nimport { createCheckboxGroupScope } from './checkbox-group.primitive.js';\nimport { checkboxCardsRootPropDefs } from './checkbox-cards.props.js';\nimport { baseCheckboxPropDefs } from './_internal/base-checkbox.props.js';\nimport { Grid } from './grid.js';\nimport { ThickCheckIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { useThemeContext } from './theme.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { Responsive, GetPropDefTypes } from '../props/prop-def.js';\n\nconst CHECKBOX_CARD_GROUP_NAME = 'CheckboxCards';\n\ntype ScopedProps<P> = P & { __scopeCheckboxCards?: Context.Scope };\nconst [createCheckboxCardsContext] = Context.createContextScope(CHECKBOX_CARD_GROUP_NAME, [\n createCheckboxGroupScope,\n]);\nconst useCheckboxGroupScope = createCheckboxGroupScope();\n\ntype CheckboxCardsContextValue = {\n size?: Responsive<(typeof checkboxCardsRootPropDefs.size.values)[number]>;\n variant?: (typeof checkboxCardsRootPropDefs.variant.values)[number];\n highContrast?: boolean;\n};\n\nconst [CheckboxCardsProvider, useCheckboxCardsContext] =\n createCheckboxCardsContext<CheckboxCardsContextValue>(CHECKBOX_CARD_GROUP_NAME);\n\ntype CheckboxCardsRootElement = React.ElementRef<typeof CheckboxGroupPrimitive.Root>;\ntype CheckboxCardsRootOwnProps = GetPropDefTypes<typeof checkboxCardsRootPropDefs>;\ninterface CheckboxCardsRootProps\n extends ComponentPropsWithout<\n typeof CheckboxGroupPrimitive.Root,\n 'asChild' | 'color' | 'defaultChecked'\n >,\n MarginProps,\n CheckboxCardsRootOwnProps {}\nconst CheckboxCardsRoot = React.forwardRef<CheckboxCardsRootElement, CheckboxCardsRootProps>(\n (props: ScopedProps<CheckboxCardsRootProps>, forwardedRef) => {\n const themeContext = useThemeContext();\n const panelBackground = props.panelBackground ?? themeContext.panelBackground;\n const {\n __scopeCheckboxCards,\n className,\n color,\n panelBackground: _,\n ...rootProps\n } = extractProps(props, checkboxCardsRootPropDefs, marginPropDefs);\n const checkboxGroupScope = useCheckboxGroupScope(__scopeCheckboxCards);\n return (\n <CheckboxCardsProvider\n scope={__scopeCheckboxCards}\n size={props.size}\n variant={props.variant}\n highContrast={props.highContrast}\n >\n <Grid asChild>\n <CheckboxGroupPrimitive.Root\n {...checkboxGroupScope}\n data-accent-color={color}\n data-panel-background={panelBackground}\n {...rootProps}\n ref={forwardedRef}\n className={classNames('rt-CheckboxCardsRoot', className)}\n />\n </Grid>\n </CheckboxCardsProvider>\n );\n },\n);\nCheckboxCardsRoot.displayName = 'CheckboxCards.Root';\n\ntype CheckboxCardsItemElement = React.ElementRef<typeof CheckboxGroupPrimitive.Item>;\ninterface CheckboxCardsItemProps\n extends ComponentPropsWithout<typeof CheckboxGroupPrimitive.Item, RemovedProps>,\n MarginProps {}\nconst CheckboxCardsItem = React.forwardRef<\n CheckboxCardsItemElement,\n ScopedProps<CheckboxCardsItemProps>\n>(({ __scopeCheckboxCards, children, className, style, ...props }, forwardedRef) => {\n const context = useCheckboxCardsContext('CheckboxCardsItem', __scopeCheckboxCards);\n const checkboxGroupScope = useCheckboxGroupScope(__scopeCheckboxCards);\n\n const { className: checkboxClassName } = extractProps(\n // Pass size / highContrast values from the context and variant to generate styles\n {\n size: context?.size,\n variant: context?.variant || 'solid',\n highContrast: context?.highContrast,\n },\n // Pass size & variant prop defs to allow it to be extracted\n baseCheckboxPropDefs,\n );\n const variantClass = context?.variant ? `rt-variant-${context.variant}` : undefined;\n const sizeClass = context?.size ? `rt-r-size-${context.size}` : undefined;\n\n return (\n <label\n className={classNames(\n 'rt-BaseCard',\n 'rt-CheckboxCardsItem',\n variantClass,\n sizeClass,\n className,\n )}\n style={style}\n >\n {children}\n <CheckboxGroupPrimitive.Item\n {...checkboxGroupScope}\n {...props}\n ref={forwardedRef}\n className={classNames(\n 'rt-reset',\n 'rt-BaseCheckboxRoot',\n 'rt-CheckboxCardCheckbox',\n checkboxClassName,\n )}\n >\n <CheckboxGroupPrimitive.Indicator\n {...checkboxGroupScope}\n asChild\n className=\"rt-BaseCheckboxIndicator\"\n >\n <ThickCheckIcon />\n </CheckboxGroupPrimitive.Indicator>\n </CheckboxGroupPrimitive.Item>\n </label>\n );\n});\nCheckboxCardsItem.displayName = 'CheckboxCards.Item';\n\nexport { CheckboxCardsRoot as Root, CheckboxCardsItem as Item };\nexport type { CheckboxCardsRootProps as RootProps, CheckboxCardsItemProps as ItemProps };\n"],
5
- "mappings": "wXAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,WAAAC,MAAe,oBAgBxB,IAAMC,EAA2B,gBAG3B,CAACC,CAA0B,EAAIC,EAAQ,mBAAmBF,EAA0B,CACxFG,CACF,CAAC,EACKC,EAAwBD,EAAyB,EAQjD,CAACE,EAAuBC,CAAuB,EACnDL,EAAsDD,CAAwB,EAW1EO,EAA0B,aAC9B,CAACC,EAA4CC,IAAiB,CAC5D,IAAMC,EAAeC,EAAgB,EAC/BC,EAAkBJ,EAAM,iBAAmBE,EAAa,gBACxD,CACJ,qBAAAG,EACA,UAAAC,EACA,MAAAC,EACA,gBAAiBC,EACjB,GAAGC,CACL,EAAIC,EAAaV,EAAOW,EAA2BC,CAAc,EAC3DC,EAAqBjB,EAAsBS,CAAoB,EACrE,OACE,gBAACR,EAAA,CACC,MAAOQ,EACP,KAAML,EAAM,KACZ,QAASA,EAAM,QACf,aAAcA,EAAM,cAEpB,gBAACc,EAAA,CAAK,QAAO,IACX,gBAAwBC,EAAvB,CACE,GAAGF,EACJ,oBAAmBN,EACnB,wBAAuBH,EACtB,GAAGK,EACJ,IAAKR,EACL,UAAWe,EAAW,uBAAwBV,CAAS,EACzD,CACF,CACF,CAEJ,CACF,EACAP,EAAkB,YAAc,qBAMhC,IAAMkB,EAA0B,aAG9B,CAAC,CAAE,qBAAAZ,EAAsB,SAAAa,EAAU,UAAAZ,EAAW,MAAAa,EAAO,GAAGnB,CAAM,EAAGC,IAAiB,CAClF,IAAMmB,EAAUtB,EAAwB,oBAAqBO,CAAoB,EAC3EQ,EAAqBjB,EAAsBS,CAAoB,EAE/D,CAAE,UAAWgB,CAAkB,EAAIX,EAEvC,CACE,KAAMU,GAAS,KACf,QAASA,GAAS,SAAW,QAC7B,aAAcA,GAAS,YACzB,EAEAE,CACF,EACMC,EAAeH,GAAS,QAAU,cAAcA,EAAQ,OAAO,GAAK,OACpEI,EAAYJ,GAAS,KAAO,aAAaA,EAAQ,IAAI,GAAK,OAEhE,OACE,gBAAC,SACC,UAAWJ,EACT,cACA,uBACAO,EACAC,EACAlB,CACF,EACA,MAAOa,GAEND,EACD,gBAAwBO,EAAvB,CACE,GAAGZ,EACH,GAAGb,EACJ,IAAKC,EACL,UAAWe,EACT,WACA,sBACA,0BACAK,CACF,GAEA,gBAAwBK,EAAvB,CACE,GAAGb,EACJ,QAAO,GACP,UAAU,4BAEV,gBAACc,EAAA,IAAe,CAClB,CACF,CACF,CAEJ,CAAC,EACDV,EAAkB,YAAc",
6
- "names": ["checkbox_cards_exports", "__export", "CheckboxCardsItem", "CheckboxCardsRoot", "React", "classNames", "Context", "CHECKBOX_CARD_GROUP_NAME", "createCheckboxCardsContext", "Context", "createCheckboxGroupScope", "useCheckboxGroupScope", "CheckboxCardsProvider", "useCheckboxCardsContext", "CheckboxCardsRoot", "props", "forwardedRef", "themeContext", "useThemeContext", "panelBackground", "__scopeCheckboxCards", "className", "color", "_", "rootProps", "extractProps", "checkboxCardsRootPropDefs", "marginPropDefs", "checkboxGroupScope", "Grid", "Root", "classNames", "CheckboxCardsItem", "children", "style", "context", "checkboxClassName", "baseCheckboxPropDefs", "variantClass", "sizeClass", "Item", "Indicator", "ThickCheckIcon"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as p}from"./chunk-ILRJA7FU.js";import{a as i}from"./chunk-GSTOGDAJ.js";import{a as e}from"./chunk-6FLLFCBU.js";import*as t from"react";import s from"classnames";import{Switch as a}from"radix-ui";var w=t.forwardRef((o,c)=>{let{className:m,color:h,panelBackground:n,material:f,...l}=e(o,p,i),r=f||n;return t.createElement(a.Root,{"data-accent-color":h,"data-panel-background":r,"data-material":r,...l,asChild:!1,ref:c,className:s("rt-reset","rt-SwitchRoot",m)},t.createElement(a.Thumb,{className:s("rt-SwitchThumb",{"rt-high-contrast":o.highContrast})}))});w.displayName="Switch";export{w as a};
2
- //# sourceMappingURL=chunk-SO67YEVQ.js.map
@@ -1,2 +0,0 @@
1
- import{b as s}from"./chunk-KRJTW535.js";import{a as e}from"./chunk-NZJGC6ZW.js";import{a as o}from"./chunk-HOHUDTTL.js";import{a as t,d as a}from"./chunk-66ZLZAAJ.js";var r=["1","2","3","4","5","6","7","8","9","10","11","12"],n=["classic","solid","soft","surface","outline"],f=["solid","translucent"],u=["solid","translucent"],i=["cover","contain","fill","scale-down","none"],m={...e,size:{type:"enum",className:"rt-r-size",values:r,default:"3",responsive:!0},variant:{type:"enum",className:"rt-variant",values:n,default:"soft"},...a,...o,...s,fallback:{type:"ReactNode",required:!0},material:{type:"enum",values:u,default:void 0},panelBackground:{type:"enum",values:f,default:void 0},status:{type:"enum",values:t,default:void 0},badge:{type:"ReactNode",default:void 0},fit:{type:"enum",className:"rt-r-fit",values:i,default:"cover",responsive:!0}};export{m as a};
2
- //# sourceMappingURL=chunk-TBJ6L4NL.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/avatar.props.tsx"],
4
- "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef, accentColors } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nconst variants = ['classic', 'solid', 'soft', 'surface', 'outline'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\nconst objectFitValues = ['cover', 'contain', 'fill', 'scale-down', 'none'] as const;\n\nconst avatarPropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '3', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'soft' },\n ...accentColorPropDef,\n ...highContrastPropDef,\n ...radiusPropDef,\n fallback: { type: 'ReactNode', required: true },\n material: { type: 'enum', values: materials, default: undefined },\n /**\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n /**\n * Status indicator color. Renders a small colored dot at the bottom-right corner.\n * Cannot be used together with `badge`.\n */\n status: { type: 'enum', values: accentColors, default: undefined },\n /**\n * Custom badge content. Renders at the bottom-right corner.\n * Cannot be used together with `status`.\n */\n badge: { type: 'ReactNode', default: undefined },\n /**\n * Controls how the avatar image should be resized to fit its container.\n * Defaults to 'cover' which crops the image to fill the avatar.\n * Use 'contain' to show the full image without cropping.\n */\n fit: { type: 'enum', className: 'rt-r-fit', values: objectFitValues, default: 'cover', responsive: true },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n fallback: PropDef<React.ReactNode>;\n material: PropDef<(typeof materials)[number] | undefined>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n status: PropDef<(typeof accentColors)[number] | undefined>;\n badge: PropDef<React.ReactNode>;\n fit: PropDef<(typeof objectFitValues)[number]>;\n};\n\nexport { avatarPropDefs };\n"],
5
- "mappings": "uKAOA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EACtEC,EAAW,CAAC,UAAW,QAAS,OAAQ,UAAW,SAAS,EAC5DC,EAAmB,CAAC,QAAS,aAAa,EAC1CC,EAAY,CAAC,QAAS,aAAa,EACnCC,EAAkB,CAAC,QAAS,UAAW,OAAQ,aAAc,MAAM,EAEnEC,EAAiB,CACrB,GAAGC,EACH,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQN,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,MAAO,EACpF,GAAGM,EACH,GAAGC,EACH,GAAGC,EACH,SAAU,CAAE,KAAM,YAAa,SAAU,EAAK,EAC9C,SAAU,CAAE,KAAM,OAAQ,OAAQN,EAAW,QAAS,MAAU,EAIhE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,EAAkB,QAAS,MAAU,EAK9E,OAAQ,CAAE,KAAM,OAAQ,OAAQQ,EAAc,QAAS,MAAU,EAKjE,MAAO,CAAE,KAAM,YAAa,QAAS,MAAU,EAM/C,IAAK,CAAE,KAAM,OAAQ,UAAW,WAAY,OAAQN,EAAiB,QAAS,QAAS,WAAY,EAAK,CAC1G",
6
- "names": ["sizes", "variants", "panelBackgrounds", "materials", "objectFitValues", "avatarPropDefs", "asChildPropDef", "accentColorPropDef", "highContrastPropDef", "radiusPropDef", "accentColors"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as t}from"./chunk-KRJTW535.js";import{a as o}from"./chunk-HOHUDTTL.js";import{c as e}from"./chunk-66ZLZAAJ.js";var r=["1","2","3"],i={size:{type:"enum",className:"rt-r-size",values:r,default:"2",responsive:!0}},a=["classic","surface","soft","outline","ghost"],c={variant:{type:"enum",className:"rt-variant",values:a,default:"surface"},panelBackground:{type:"enum",className:"rt-panel-background",values:["solid","translucent"]},error:{type:"boolean"},loading:{type:"boolean"},disabled:{type:"boolean"},readOnly:{type:"boolean"},...e,...t,placeholder:{type:"ReactNode"}},s=["solid","soft"],f={variant:{type:"enum",className:"rt-variant",values:s,default:"solid"},...e,...o};export{i as a,c as b,f as c};
2
- //# sourceMappingURL=chunk-TGN5ZJU5.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/select.props.tsx"],
4
- "sourcesContent": ["import type React from 'react';\n\nimport { colorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3'] as const;\n\nconst selectRootPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n};\n\nconst triggerVariants = ['classic', 'surface', 'soft', 'outline', 'ghost'] as const;\n\nconst selectTriggerPropDefs = {\n variant: { type: 'enum', className: 'rt-variant', values: triggerVariants, default: 'surface' },\n panelBackground: {\n type: 'enum',\n className: 'rt-panel-background',\n values: ['solid', 'translucent'],\n },\n error: { type: 'boolean' },\n loading: { type: 'boolean' },\n disabled: { type: 'boolean' },\n readOnly: { type: 'boolean' },\n ...colorPropDef,\n ...radiusPropDef,\n placeholder: { type: 'ReactNode' },\n} satisfies {\n variant: PropDef<(typeof triggerVariants)[number]>;\n panelBackground: PropDef<'solid' | 'translucent'>;\n error: PropDef<boolean>;\n loading: PropDef<boolean>;\n disabled: PropDef<boolean>;\n readOnly: PropDef<boolean>;\n placeholder: PropDef<React.ReactNode>;\n};\n\nconst contentVariants = ['solid', 'soft'] as const;\n\nconst selectContentPropDefs = {\n variant: { type: 'enum', className: 'rt-variant', values: contentVariants, default: 'solid' },\n ...colorPropDef,\n ...highContrastPropDef,\n} satisfies {\n variant: PropDef<(typeof contentVariants)[number]>;\n};\n\nexport { selectRootPropDefs, selectTriggerPropDefs, selectContentPropDefs };\n"],
5
- "mappings": "wHAQA,IAAMA,EAAQ,CAAC,IAAK,IAAK,GAAG,EAEtBC,EAAqB,CACzB,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQD,EAAO,QAAS,IAAK,WAAY,EAAK,CAC9F,EAIME,EAAkB,CAAC,UAAW,UAAW,OAAQ,UAAW,OAAO,EAEnEC,EAAwB,CAC5B,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQD,EAAiB,QAAS,SAAU,EAC9F,gBAAiB,CACf,KAAM,OACN,UAAW,sBACX,OAAQ,CAAC,QAAS,aAAa,CACjC,EACA,MAAO,CAAE,KAAM,SAAU,EACzB,QAAS,CAAE,KAAM,SAAU,EAC3B,SAAU,CAAE,KAAM,SAAU,EAC5B,SAAU,CAAE,KAAM,SAAU,EAC5B,GAAGE,EACH,GAAGC,EACH,YAAa,CAAE,KAAM,WAAY,CACnC,EAUMC,EAAkB,CAAC,QAAS,MAAM,EAElCC,EAAwB,CAC5B,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQD,EAAiB,QAAS,OAAQ,EAC5F,GAAGF,EACH,GAAGI,CACL",
6
- "names": ["sizes", "selectRootPropDefs", "triggerVariants", "selectTriggerPropDefs", "colorPropDef", "radiusPropDef", "contentVariants", "selectContentPropDefs", "highContrastPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as U,b as X,c as Y}from"./chunk-FXUUI6Z2.js";import{a as V,b as Q,c as I}from"./chunk-4Z33XHOK.js";import{b as K,c as J}from"./chunk-IX5HIHVI.js";import{a as A}from"./chunk-MJJ7XDIP.js";import{b as H,c as q}from"./chunk-YUP6EICB.js";import{c as j}from"./chunk-FWB47YCH.js";import{a as $}from"./chunk-GSTOGDAJ.js";import{a as w}from"./chunk-6FLLFCBU.js";import{a as xo}from"./chunk-3XT5P2HO.js";var fo={};xo(fo,{Content:()=>ao,Empty:()=>io,Group:()=>lo,Input:()=>no,Item:()=>bo,Label:()=>mo,List:()=>so,Root:()=>eo,Separator:()=>po,Trigger:()=>to,Value:()=>ro});import*as o from"react";import p from"classnames";import{useControllableState as z}from"radix-ui/internal";import{Command as h}from"cmdk";var Z=o.createContext(null),R=t=>{let a=o.useContext(Z);if(!a){let e=t?`Combobox.${t}`:"Combobox components";throw new Error(`${e} must be used within Combobox.Root`)}return a},_=o.createContext(null),oo=()=>o.useContext(_),eo=t=>{let{children:a,size:e=V.size.default,highContrast:r=V.highContrast.default,value:l,defaultValue:n=null,onValueChange:m,open:d,defaultOpen:C=!1,onOpenChange:b,placeholder:s="Select an option",searchPlaceholder:c="Search...",searchValue:P,defaultSearchValue:u="",onSearchValueChange:x,filter:i,shouldFilter:f=!0,loop:g=!0,disabled:S,resetSearchOnSelect:E=!0,color:O,displayValue:v,...co}=t,k=o.useId(),[L,y]=z({prop:d,defaultProp:C,onChange:b}),[N,D]=z({prop:l,defaultProp:n,onChange:m}),[M,T]=z({prop:P,defaultProp:u,onChange:x}),G=o.useMemo(()=>{if(v!=null)return typeof v=="function"?v(N):v},[v,N]),W=o.useCallback(uo=>{D(uo),y(!1),E&&T("")},[y,T,D,E]),Co=o.useMemo(()=>({value:N,onSelect:W,open:L,setOpen:y,size:e,highContrast:r,placeholder:s,searchPlaceholder:c,disabled:S,color:O,displayValue:G,listboxId:k}),[N,W,L,y,e,r,s,c,S,O,G,k]),B=o.useRef({filter:i,shouldFilter:f,loop:g,searchValue:M,setSearchValue:T});return B.current={filter:i,shouldFilter:f,loop:g,searchValue:M,setSearchValue:T},o.createElement(Z.Provider,{value:Co},o.createElement(F.Provider,{value:B},o.createElement(U,{open:L,onOpenChange:y,...co},a)))};eo.displayName="Combobox.Root";var F=o.createContext(null),to=o.forwardRef((t,a)=>{let e=R("Trigger"),{children:r,className:l,placeholder:n,disabled:m,readOnly:d,error:C,loading:b,color:s,radius:c,...P}=w({size:e.size,highContrast:e.highContrast,...t},{size:V.size,highContrast:V.highContrast},Q,$),{material:u,panelBackground:x}=t,i=m??e.disabled,f=s??e.color,g=o.createElement(o.Fragment,null,o.createElement("span",{className:"rt-SelectTriggerInner"},o.createElement("span",{className:"rt-ComboboxValue"},e.displayValue??e.value??n??e.placeholder)),b?o.createElement("div",{className:"rt-SelectIcon rt-SelectLoadingIcon","aria-hidden":"true"},o.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},o.createElement("circle",{cx:"8",cy:"8",r:"6.5",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeDasharray:"6 34",strokeDashoffset:"0",className:"rt-SelectLoadingSpinner"}))):o.createElement(J,{className:"rt-SelectIcon"})),{type:S,...E}=P;return o.createElement(X,{disabled:i},o.createElement("button",{"data-accent-color":f,"data-radius":c,"data-panel-background":x,"data-material":u,"data-error":C,"data-loading":b,"data-disabled":i||void 0,"data-read-only":d||void 0,...E,role:"combobox","aria-autocomplete":"list","aria-controls":e.open?e.listboxId:void 0,"aria-expanded":e.open,"aria-haspopup":"listbox","aria-disabled":i||void 0,type:S??"button",disabled:i,ref:a,className:p("rt-reset","rt-SelectTrigger","rt-ComboboxTrigger",l)},r?A(r):g))});to.displayName="Combobox.Trigger";var ro=o.forwardRef(({placeholder:t,children:a,className:e,...r},l)=>{let n=R("Value"),m=n.displayValue??n.value??void 0;return o.createElement("span",{...r,ref:l,className:p("rt-ComboboxValue",e)},m??a??t??n.placeholder)});ro.displayName="Combobox.Value";var ao=o.forwardRef((t,a)=>{let e=R("Content"),r=o.useContext(F),l=H(),n=l.panelBackground,m=t.size??e.size??I.size.default,d=t.variant??I.variant.default,C=t.highContrast??e.highContrast??I.highContrast.default,{className:b,children:s,color:c,forceMount:P,container:u,...x}=w({...t,size:m,variant:d,highContrast:C},I),i=c||e.color||l.accentColor,f=o.useMemo(()=>({variant:d,size:String(m),color:i,material:n,highContrast:C,loop:r?.current.loop,shouldFilter:r?.current.shouldFilter,filter:r?.current.filter}),[d,m,i,n,C,r]);return o.createElement(Y,{size:m,"data-accent-color":i,"data-material":n,"data-panel-background":n,align:"start",sideOffset:4,collisionPadding:10,...x,forceMount:P===!0?!0:void 0,container:u,ref:a,className:p("rt-PopperContent","rt-BaseMenuContent","rt-ComboboxContent",b)},o.createElement(q,{asChild:!0},o.createElement(_.Provider,{value:f},o.createElement(h,{loop:r?.current.loop,shouldFilter:r?.current.shouldFilter,filter:r?.current.filter,className:"rt-ComboboxCommand"},s))))});ao.displayName="Combobox.Content";var no=o.forwardRef(({className:t,startAdornment:a,endAdornment:e,placeholder:r,variant:l,value:n,onValueChange:m,...d},C)=>{let b=R("Input"),s=oo(),c=o.useContext(F),P=s?.variant??"solid",u=l??(P==="solid"?"surface":"soft"),x=n??c?.current.searchValue??"",i=m??c?.current.setSearchValue,f=s?.size?`rt-r-size-${s.size}`:void 0,g=o.createElement("div",{className:p("rt-TextFieldRoot","rt-ComboboxInputRoot",f,`rt-variant-${u}`),"data-accent-color":s?.color,"data-material":s?.material,"data-panel-background":s?.material},a?o.createElement("div",{className:"rt-TextFieldSlot"},a):null,o.createElement(h.Input,{...d,ref:C,value:x,onValueChange:i,placeholder:r??b.searchPlaceholder,className:p("rt-reset","rt-TextFieldInput",t)}),e?o.createElement("div",{className:"rt-TextFieldSlot","data-side":"right"},e):null);return s?o.createElement("div",{className:"rt-ComboboxSearch"},g):g});no.displayName="Combobox.Input";var so=o.forwardRef(({className:t,children:a,...e},r)=>{let l=R("List");return o.createElement("div",{className:"rt-ComboboxScrollArea"},o.createElement("div",{className:p("rt-BaseMenuViewport","rt-ComboboxViewport")},o.createElement(h.List,{...e,id:l.listboxId,ref:r,role:"listbox","aria-label":"Options",className:p("rt-ComboboxList",t)},a)))});so.displayName="Combobox.List";var io=o.forwardRef(({className:t,...a},e)=>o.createElement(h.Empty,{...a,ref:e,className:p("rt-ComboboxEmpty",t)}));io.displayName="Combobox.Empty";var lo=o.forwardRef(({className:t,...a},e)=>o.createElement(h.Group,{...a,ref:e,className:p("rt-BaseMenuGroup","rt-ComboboxGroup",t)}));lo.displayName="Combobox.Group";var mo=o.forwardRef(({className:t,...a},e)=>o.createElement("div",{...a,ref:e,className:p("rt-BaseMenuLabel","rt-ComboboxLabel",t)}));mo.displayName="Combobox.Label";var po=o.forwardRef(({className:t,...a},e)=>o.createElement(h.Separator,{...a,ref:e,className:p("rt-BaseMenuSeparator","rt-ComboboxSeparator",t)}));po.displayName="Combobox.Separator";var bo=o.forwardRef(({className:t,children:a,label:e,value:r,disabled:l,onSelect:n,keywords:m,...d},C)=>{let b=R("Item"),s=oo(),c=r!=null&&b.value===r,P=l??b.disabled??!1,u=s?.size?`rt-r-size-${s.size}`:void 0,x=b.onSelect,i=o.useCallback(()=>{r!=null&&(x(r),n?.(r))},[x,r,n]),f=m??(e?[e]:void 0);return o.createElement(h.Item,{...d,value:r,keywords:f,role:"option","aria-selected":c,disabled:P||void 0,ref:C,onSelect:i,className:p("rt-reset","rt-BaseMenuItem","rt-ComboboxItem",t)},c?o.createElement("span",{className:p("rt-BaseMenuItemIndicator","rt-ComboboxItemIndicator",u)},o.createElement(K,{className:p("rt-BaseMenuItemIndicatorIcon","rt-ComboboxItemIndicatorIcon",u)})):null,o.createElement(j,null,a))});bo.displayName="Combobox.Item";export{eo as a,to as b,ro as c,ao as d,no as e,so as f,io as g,lo as h,mo as i,po as j,bo as k,fo as l};
2
- //# sourceMappingURL=chunk-UGD7Z3L4.js.map