@womp/kookie-ui 0.16.0 → 0.18.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 (969) hide show
  1. package/codemods/space-0.17.py +71 -0
  2. package/components.css +2857 -5012
  3. package/dist/cjs/components/_internal/base-button.d.ts +0 -2
  4. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  5. package/dist/cjs/components/_internal/base-button.js +1 -1
  6. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  7. package/dist/cjs/components/_internal/base-button.props.d.ts +0 -17
  8. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  9. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  10. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  11. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +1 -1
  12. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  13. package/dist/cjs/components/_internal/base-checkbox.props.js.map +2 -2
  14. package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -10
  15. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  16. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  17. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  18. package/dist/cjs/components/_internal/base-menu.utils.d.ts +3 -9
  19. package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
  21. package/dist/cjs/components/_internal/base-menu.utils.js.map +3 -3
  22. package/dist/cjs/components/_internal/base-radio.props.d.ts +1 -1
  23. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  24. package/dist/cjs/components/_internal/base-radio.props.js.map +2 -2
  25. package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -5
  26. package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
  27. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
  28. package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
  29. package/dist/cjs/components/_internal/menu-context.d.ts +2 -3
  30. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  31. package/dist/cjs/components/_internal/menu-context.js +1 -1
  32. package/dist/cjs/components/_internal/menu-context.js.map +4 -4
  33. package/dist/cjs/components/_internal/pane-chrome.d.ts +14 -2
  34. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  35. package/dist/cjs/components/_internal/pane-chrome.js +1 -1
  36. package/dist/cjs/components/_internal/pane-chrome.js.map +3 -3
  37. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  38. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  39. package/dist/cjs/components/accordion.d.ts.map +1 -1
  40. package/dist/cjs/components/accordion.js +1 -1
  41. package/dist/cjs/components/accordion.js.map +4 -4
  42. package/dist/cjs/components/accordion.props.d.ts +0 -7
  43. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  44. package/dist/cjs/components/accordion.props.js +1 -1
  45. package/dist/cjs/components/accordion.props.js.map +3 -3
  46. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  47. package/dist/cjs/components/alert-dialog.js +1 -1
  48. package/dist/cjs/components/alert-dialog.js.map +4 -4
  49. package/dist/cjs/components/alert-dialog.props.d.ts +0 -5
  50. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  51. package/dist/cjs/components/alert-dialog.props.js +1 -1
  52. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  53. package/dist/cjs/components/badge.js +1 -1
  54. package/dist/cjs/components/badge.js.map +4 -4
  55. package/dist/cjs/components/badge.props.d.ts +1 -1
  56. package/dist/cjs/components/badge.props.js +1 -1
  57. package/dist/cjs/components/badge.props.js.map +1 -1
  58. package/dist/cjs/components/button.js +2 -2
  59. package/dist/cjs/components/button.js.map +4 -4
  60. package/dist/cjs/components/button.props.js +1 -1
  61. package/dist/cjs/components/button.props.js.map +3 -3
  62. package/dist/cjs/components/card.d.ts.map +1 -1
  63. package/dist/cjs/components/card.js +1 -1
  64. package/dist/cjs/components/card.js.map +3 -3
  65. package/dist/cjs/components/card.props.d.ts +0 -5
  66. package/dist/cjs/components/card.props.d.ts.map +1 -1
  67. package/dist/cjs/components/card.props.js +1 -1
  68. package/dist/cjs/components/card.props.js.map +3 -3
  69. package/dist/cjs/components/chatbar.d.ts +0 -2
  70. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  71. package/dist/cjs/components/chatbar.js +2 -2
  72. package/dist/cjs/components/chatbar.js.map +4 -4
  73. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  74. package/dist/cjs/components/checkbox-cards.js +1 -1
  75. package/dist/cjs/components/checkbox-cards.js.map +4 -4
  76. package/dist/cjs/components/checkbox-cards.props.d.ts +0 -5
  77. package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
  78. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  79. package/dist/cjs/components/checkbox-cards.props.js.map +3 -3
  80. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  81. package/dist/cjs/components/checkbox-group.js +1 -1
  82. package/dist/cjs/components/checkbox-group.js.map +4 -4
  83. package/dist/cjs/components/checkbox-group.props.d.ts +1 -1
  84. package/dist/cjs/components/checkbox-group.props.js +1 -1
  85. package/dist/cjs/components/checkbox-group.props.js.map +2 -2
  86. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  87. package/dist/cjs/components/checkbox.js +1 -1
  88. package/dist/cjs/components/checkbox.js.map +4 -4
  89. package/dist/cjs/components/checkbox.props.js +1 -1
  90. package/dist/cjs/components/checkbox.props.js.map +2 -2
  91. package/dist/cjs/components/combobox.d.ts.map +1 -1
  92. package/dist/cjs/components/combobox.js +1 -1
  93. package/dist/cjs/components/combobox.js.map +4 -4
  94. package/dist/cjs/components/combobox.props.d.ts +0 -9
  95. package/dist/cjs/components/combobox.props.d.ts.map +1 -1
  96. package/dist/cjs/components/combobox.props.js +1 -1
  97. package/dist/cjs/components/combobox.props.js.map +3 -3
  98. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  99. package/dist/cjs/components/context-menu.js +1 -1
  100. package/dist/cjs/components/context-menu.js.map +4 -4
  101. package/dist/cjs/components/context-menu.props.js +1 -1
  102. package/dist/cjs/components/context-menu.props.js.map +3 -3
  103. package/dist/cjs/components/data-list.d.ts.map +1 -1
  104. package/dist/cjs/components/data-list.js +1 -1
  105. package/dist/cjs/components/data-list.js.map +4 -4
  106. package/dist/cjs/components/dialog.d.ts.map +1 -1
  107. package/dist/cjs/components/dialog.js +1 -1
  108. package/dist/cjs/components/dialog.js.map +4 -4
  109. package/dist/cjs/components/dialog.props.d.ts +0 -5
  110. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  111. package/dist/cjs/components/dialog.props.js +1 -1
  112. package/dist/cjs/components/dialog.props.js.map +3 -3
  113. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  114. package/dist/cjs/components/dropdown-menu.js +1 -1
  115. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  116. package/dist/cjs/components/dropdown-menu.props.js +1 -1
  117. package/dist/cjs/components/dropdown-menu.props.js.map +3 -3
  118. package/dist/cjs/components/hover-card.d.ts.map +1 -1
  119. package/dist/cjs/components/hover-card.js +1 -1
  120. package/dist/cjs/components/hover-card.js.map +4 -4
  121. package/dist/cjs/components/icon-button.js +2 -2
  122. package/dist/cjs/components/icon-button.js.map +4 -4
  123. package/dist/cjs/components/icon-button.props.js +1 -1
  124. package/dist/cjs/components/icon-button.props.js.map +3 -3
  125. package/dist/cjs/components/index.js +5 -5
  126. package/dist/cjs/components/index.js.map +4 -4
  127. package/dist/cjs/components/message-scroller.js +2 -2
  128. package/dist/cjs/components/message-scroller.js.map +4 -4
  129. package/dist/cjs/components/navbar.d.ts.map +1 -1
  130. package/dist/cjs/components/navbar.js +1 -1
  131. package/dist/cjs/components/navbar.js.map +4 -4
  132. package/dist/cjs/components/notice.d.ts +1 -3
  133. package/dist/cjs/components/notice.d.ts.map +1 -1
  134. package/dist/cjs/components/notice.js +2 -2
  135. package/dist/cjs/components/notice.js.map +4 -4
  136. package/dist/cjs/components/popover.d.ts.map +1 -1
  137. package/dist/cjs/components/popover.js +1 -1
  138. package/dist/cjs/components/popover.js.map +4 -4
  139. package/dist/cjs/components/popover.props.d.ts +0 -5
  140. package/dist/cjs/components/popover.props.d.ts.map +1 -1
  141. package/dist/cjs/components/popover.props.js +1 -1
  142. package/dist/cjs/components/popover.props.js.map +3 -3
  143. package/dist/cjs/components/progress.js +1 -1
  144. package/dist/cjs/components/progress.js.map +3 -3
  145. package/dist/cjs/components/progress.props.d.ts +0 -7
  146. package/dist/cjs/components/progress.props.d.ts.map +1 -1
  147. package/dist/cjs/components/progress.props.js +1 -1
  148. package/dist/cjs/components/progress.props.js.map +3 -3
  149. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  150. package/dist/cjs/components/radio-cards.js +1 -1
  151. package/dist/cjs/components/radio-cards.js.map +4 -4
  152. package/dist/cjs/components/radio-cards.props.d.ts +0 -5
  153. package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
  154. package/dist/cjs/components/radio-cards.props.js +1 -1
  155. package/dist/cjs/components/radio-cards.props.js.map +3 -3
  156. package/dist/cjs/components/radio-group.d.ts.map +1 -1
  157. package/dist/cjs/components/radio-group.js +1 -1
  158. package/dist/cjs/components/radio-group.js.map +4 -4
  159. package/dist/cjs/components/radio-group.props.d.ts +1 -1
  160. package/dist/cjs/components/radio-group.props.js +1 -1
  161. package/dist/cjs/components/radio-group.props.js.map +2 -2
  162. package/dist/cjs/components/radio.d.ts.map +1 -1
  163. package/dist/cjs/components/radio.js +1 -1
  164. package/dist/cjs/components/radio.js.map +4 -4
  165. package/dist/cjs/components/radio.props.js +1 -1
  166. package/dist/cjs/components/radio.props.js.map +2 -2
  167. package/dist/cjs/components/schemas/base-button.schema.d.ts +0 -4
  168. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
  169. package/dist/cjs/components/schemas/base-button.schema.js +1 -1
  170. package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
  171. package/dist/cjs/components/schemas/button.schema.d.ts +0 -4
  172. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
  173. package/dist/cjs/components/schemas/button.schema.js +1 -1
  174. package/dist/cjs/components/schemas/button.schema.js.map +2 -2
  175. package/dist/cjs/components/schemas/icon-button.schema.d.ts +0 -4
  176. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
  177. package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
  178. package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
  179. package/dist/cjs/components/schemas/index.js +1 -1
  180. package/dist/cjs/components/schemas/index.js.map +2 -2
  181. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +0 -4
  182. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
  183. package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
  184. package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
  185. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +0 -4
  186. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  187. package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
  188. package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
  189. package/dist/cjs/components/scroll-area.d.ts.map +1 -1
  190. package/dist/cjs/components/scroll-area.js +1 -1
  191. package/dist/cjs/components/scroll-area.js.map +3 -3
  192. package/dist/cjs/components/scroll-area.props.d.ts +0 -7
  193. package/dist/cjs/components/scroll-area.props.d.ts.map +1 -1
  194. package/dist/cjs/components/scroll-area.props.js +1 -1
  195. package/dist/cjs/components/scroll-area.props.js.map +3 -3
  196. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  197. package/dist/cjs/components/segmented-control.js +1 -1
  198. package/dist/cjs/components/segmented-control.js.map +4 -4
  199. package/dist/cjs/components/segmented-control.props.d.ts +0 -4
  200. package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
  201. package/dist/cjs/components/segmented-control.props.js +1 -1
  202. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  203. package/dist/cjs/components/select.d.ts.map +1 -1
  204. package/dist/cjs/components/select.js +1 -1
  205. package/dist/cjs/components/select.js.map +4 -4
  206. package/dist/cjs/components/select.props.d.ts +0 -4
  207. package/dist/cjs/components/select.props.d.ts.map +1 -1
  208. package/dist/cjs/components/select.props.js +1 -1
  209. package/dist/cjs/components/select.props.js.map +2 -2
  210. package/dist/cjs/components/separator.js +1 -1
  211. package/dist/cjs/components/separator.js.map +3 -3
  212. package/dist/cjs/components/separator.props.d.ts +0 -7
  213. package/dist/cjs/components/separator.props.d.ts.map +1 -1
  214. package/dist/cjs/components/separator.props.js +1 -1
  215. package/dist/cjs/components/separator.props.js.map +3 -3
  216. package/dist/cjs/components/sheet.d.ts +0 -1
  217. package/dist/cjs/components/sheet.d.ts.map +1 -1
  218. package/dist/cjs/components/sheet.js +1 -1
  219. package/dist/cjs/components/sheet.js.map +4 -4
  220. package/dist/cjs/components/shell.d.ts +1 -1
  221. package/dist/cjs/components/shell.d.ts.map +1 -1
  222. package/dist/cjs/components/shell.js +1 -1
  223. package/dist/cjs/components/shell.js.map +4 -4
  224. package/dist/cjs/components/sidebar.js +1 -1
  225. package/dist/cjs/components/sidebar.js.map +4 -4
  226. package/dist/cjs/components/slider.d.ts.map +1 -1
  227. package/dist/cjs/components/slider.js +1 -1
  228. package/dist/cjs/components/slider.js.map +4 -4
  229. package/dist/cjs/components/spinner.js +1 -1
  230. package/dist/cjs/components/spinner.js.map +3 -3
  231. package/dist/cjs/components/spinner.props.d.ts +0 -7
  232. package/dist/cjs/components/spinner.props.d.ts.map +1 -1
  233. package/dist/cjs/components/spinner.props.js +1 -1
  234. package/dist/cjs/components/spinner.props.js.map +3 -3
  235. package/dist/cjs/components/switch.d.ts.map +1 -1
  236. package/dist/cjs/components/switch.js +1 -1
  237. package/dist/cjs/components/switch.js.map +4 -4
  238. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  239. package/dist/cjs/components/switch.props.js.map +2 -2
  240. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  241. package/dist/cjs/components/tab-nav.js +1 -1
  242. package/dist/cjs/components/tab-nav.js.map +4 -4
  243. package/dist/cjs/components/tab-nav.props.js +1 -1
  244. package/dist/cjs/components/tab-nav.props.js.map +3 -3
  245. package/dist/cjs/components/table.d.ts.map +1 -1
  246. package/dist/cjs/components/table.js +1 -1
  247. package/dist/cjs/components/table.js.map +4 -4
  248. package/dist/cjs/components/table.props.d.ts +1 -1
  249. package/dist/cjs/components/table.props.js +1 -1
  250. package/dist/cjs/components/table.props.js.map +2 -2
  251. package/dist/cjs/components/tabs.d.ts.map +1 -1
  252. package/dist/cjs/components/tabs.js +1 -1
  253. package/dist/cjs/components/tabs.js.map +4 -4
  254. package/dist/cjs/components/tabs.props.js +1 -1
  255. package/dist/cjs/components/tabs.props.js.map +3 -3
  256. package/dist/cjs/components/text-area.d.ts.map +1 -1
  257. package/dist/cjs/components/text-area.js +1 -1
  258. package/dist/cjs/components/text-area.js.map +4 -4
  259. package/dist/cjs/components/text-area.props.d.ts +0 -5
  260. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  261. package/dist/cjs/components/text-area.props.js +1 -1
  262. package/dist/cjs/components/text-area.props.js.map +3 -3
  263. package/dist/cjs/components/text-field.d.ts.map +1 -1
  264. package/dist/cjs/components/text-field.js +2 -2
  265. package/dist/cjs/components/text-field.js.map +4 -4
  266. package/dist/cjs/components/text-field.props.d.ts +0 -5
  267. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  268. package/dist/cjs/components/text-field.props.js +1 -1
  269. package/dist/cjs/components/text-field.props.js.map +3 -3
  270. package/dist/cjs/components/theme-panel.d.ts.map +1 -1
  271. package/dist/cjs/components/theme-panel.js +3 -3
  272. package/dist/cjs/components/theme-panel.js.map +4 -4
  273. package/dist/cjs/components/theme.d.ts +3 -6
  274. package/dist/cjs/components/theme.d.ts.map +1 -1
  275. package/dist/cjs/components/theme.js +1 -1
  276. package/dist/cjs/components/theme.js.map +4 -4
  277. package/dist/cjs/components/theme.props.d.ts +12 -19
  278. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  279. package/dist/cjs/components/theme.props.js +1 -1
  280. package/dist/cjs/components/theme.props.js.map +3 -3
  281. package/dist/cjs/components/toggle-button.js +3 -3
  282. package/dist/cjs/components/toggle-button.js.map +4 -4
  283. package/dist/cjs/components/toggle-icon-button.js +3 -3
  284. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  285. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  286. package/dist/cjs/components/toolbar.js +2 -2
  287. package/dist/cjs/components/toolbar.js.map +4 -4
  288. package/dist/cjs/components/toolbar.props.d.ts +2 -1
  289. package/dist/cjs/components/toolbar.props.d.ts.map +1 -1
  290. package/dist/cjs/components/toolbar.props.js.map +2 -2
  291. package/dist/cjs/components/tooltip.js +1 -1
  292. package/dist/cjs/components/tooltip.js.map +4 -4
  293. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  294. package/dist/cjs/components/virtual-menu.js +1 -1
  295. package/dist/cjs/components/virtual-menu.js.map +4 -4
  296. package/dist/cjs/helpers/index.d.ts +1 -0
  297. package/dist/cjs/helpers/index.d.ts.map +1 -1
  298. package/dist/cjs/helpers/index.js +3 -3
  299. package/dist/cjs/helpers/index.js.map +4 -4
  300. package/dist/cjs/helpers/map-prop-values.d.ts +1 -4
  301. package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -1
  302. package/dist/cjs/helpers/map-prop-values.js +1 -1
  303. package/dist/cjs/helpers/map-prop-values.js.map +3 -3
  304. package/dist/cjs/helpers/theme-size.d.ts +41 -0
  305. package/dist/cjs/helpers/theme-size.d.ts.map +1 -0
  306. package/dist/cjs/helpers/theme-size.js +2 -0
  307. package/dist/cjs/helpers/theme-size.js.map +7 -0
  308. package/dist/cjs/index.js +6 -6
  309. package/dist/cjs/index.js.map +4 -4
  310. package/dist/cjs/props/index.js +1 -1
  311. package/dist/cjs/props/index.js.map +3 -3
  312. package/dist/esm/chunk-2CNQGDY3.js +2 -0
  313. package/dist/esm/{chunk-MNC2O6QW.js.map → chunk-2CNQGDY3.js.map} +3 -3
  314. package/dist/esm/chunk-2O3WL25H.js +2 -0
  315. package/dist/esm/chunk-2O3WL25H.js.map +7 -0
  316. package/dist/esm/{chunk-XZ5XZS5O.js → chunk-35HNDWWM.js} +2 -2
  317. package/dist/esm/chunk-3YLYGKFB.js +2 -0
  318. package/dist/esm/chunk-3YLYGKFB.js.map +7 -0
  319. package/dist/esm/chunk-4DE3ONED.js +2 -0
  320. package/dist/esm/chunk-4DE3ONED.js.map +7 -0
  321. package/dist/esm/chunk-4M55YJMR.js +2 -0
  322. package/dist/esm/chunk-4M55YJMR.js.map +7 -0
  323. package/dist/esm/chunk-4YQXYWDQ.js +2 -0
  324. package/dist/esm/chunk-4YQXYWDQ.js.map +7 -0
  325. package/dist/esm/{chunk-R4CN4Q3G.js → chunk-534LGOWC.js} +2 -2
  326. package/dist/esm/chunk-54KMG7NX.js +2 -0
  327. package/dist/esm/chunk-54KMG7NX.js.map +7 -0
  328. package/dist/esm/chunk-5LGWS5QS.js +2 -0
  329. package/dist/esm/chunk-5LGWS5QS.js.map +7 -0
  330. package/dist/esm/chunk-5R2WX2FU.js +2 -0
  331. package/dist/esm/chunk-5R2WX2FU.js.map +7 -0
  332. package/dist/esm/{chunk-7UW7D77E.js → chunk-5UU2IMGX.js} +2 -2
  333. package/dist/esm/chunk-5VBJT2VY.js +2 -0
  334. package/dist/esm/chunk-5VBJT2VY.js.map +7 -0
  335. package/dist/esm/chunk-6AZV4VFW.js +2 -0
  336. package/dist/esm/chunk-6AZV4VFW.js.map +7 -0
  337. package/dist/esm/chunk-6YWDEANN.js +2 -0
  338. package/dist/esm/chunk-6YWDEANN.js.map +7 -0
  339. package/dist/esm/chunk-6YWJUNMB.js +2 -0
  340. package/dist/esm/chunk-6YWJUNMB.js.map +7 -0
  341. package/dist/esm/{chunk-Y4IB7KDZ.js → chunk-7FZPCM7W.js} +2 -2
  342. package/dist/esm/chunk-7J2QS2UT.js +5 -0
  343. package/dist/esm/chunk-7J2QS2UT.js.map +7 -0
  344. package/dist/esm/chunk-ABS275QZ.js +2 -0
  345. package/dist/esm/chunk-AKPAHQYE.js +2 -0
  346. package/dist/esm/chunk-AKPAHQYE.js.map +7 -0
  347. package/dist/esm/chunk-B6RH4CTY.js +2 -0
  348. package/dist/esm/chunk-B6RH4CTY.js.map +7 -0
  349. package/dist/esm/chunk-BN24ZBO7.js +2 -0
  350. package/dist/esm/chunk-BN24ZBO7.js.map +7 -0
  351. package/dist/esm/chunk-BZ6YBP2S.js +2 -0
  352. package/dist/esm/chunk-BZ6YBP2S.js.map +7 -0
  353. package/dist/esm/chunk-CC4GNSKL.js +2 -0
  354. package/dist/esm/chunk-CC4GNSKL.js.map +7 -0
  355. package/dist/esm/chunk-CHPZ3LNC.js +2 -0
  356. package/dist/esm/chunk-CHPZ3LNC.js.map +7 -0
  357. package/dist/esm/chunk-CRK34MWY.js +2 -0
  358. package/dist/esm/chunk-CRK34MWY.js.map +7 -0
  359. package/dist/esm/{chunk-PAB6HVKC.js → chunk-DFSW4QR4.js} +2 -2
  360. package/dist/esm/chunk-DJFTDR6Y.js +2 -0
  361. package/dist/esm/chunk-DJFTDR6Y.js.map +7 -0
  362. package/dist/esm/{chunk-UI2EFF6F.js → chunk-E3754NJZ.js} +2 -2
  363. package/dist/esm/chunk-EA2XSEFH.js +2 -0
  364. package/dist/esm/chunk-EA2XSEFH.js.map +7 -0
  365. package/dist/esm/{chunk-F2XQYWBE.js → chunk-EHUSLPWN.js} +2 -2
  366. package/dist/esm/chunk-ENPQJYXZ.js +2 -0
  367. package/dist/esm/chunk-ENPQJYXZ.js.map +7 -0
  368. package/dist/esm/chunk-ENSDQ3XQ.js +2 -0
  369. package/dist/esm/chunk-ENSDQ3XQ.js.map +7 -0
  370. package/dist/esm/chunk-EO7WQYFO.js +2 -0
  371. package/dist/esm/chunk-EO7WQYFO.js.map +7 -0
  372. package/dist/esm/chunk-EUSKAXHP.js +2 -0
  373. package/dist/esm/chunk-EUSKAXHP.js.map +7 -0
  374. package/dist/esm/chunk-F3XBIUXB.js +2 -0
  375. package/dist/esm/chunk-F3XBIUXB.js.map +7 -0
  376. package/dist/esm/{chunk-6ERCPRXX.js → chunk-FSKZAL5H.js} +2 -2
  377. package/dist/esm/chunk-GHD3TKCA.js +2 -0
  378. package/dist/esm/chunk-GHD3TKCA.js.map +7 -0
  379. package/dist/esm/chunk-GQBQHGEF.js +2 -0
  380. package/dist/esm/chunk-GQBQHGEF.js.map +7 -0
  381. package/dist/esm/chunk-GTVFQXLJ.js +2 -0
  382. package/dist/esm/chunk-GTVFQXLJ.js.map +7 -0
  383. package/dist/esm/chunk-HIEGLLY7.js +2 -0
  384. package/dist/esm/chunk-HIEGLLY7.js.map +7 -0
  385. package/dist/esm/chunk-HZYE46V2.js +2 -0
  386. package/dist/esm/chunk-HZYE46V2.js.map +7 -0
  387. package/dist/esm/chunk-IF4PYIUV.js +2 -0
  388. package/dist/esm/chunk-IF4PYIUV.js.map +7 -0
  389. package/dist/esm/chunk-IWT3Q2PD.js +2 -0
  390. package/dist/esm/chunk-IWT3Q2PD.js.map +7 -0
  391. package/dist/esm/chunk-JCRBBT4X.js +2 -0
  392. package/dist/esm/chunk-JCRBBT4X.js.map +7 -0
  393. package/dist/esm/{chunk-ZUOK3KFY.js → chunk-K7VO7TND.js} +1 -1
  394. package/dist/esm/{chunk-ZUOK3KFY.js.map → chunk-K7VO7TND.js.map} +2 -2
  395. package/dist/esm/chunk-KFQ4B5YC.js +2 -0
  396. package/dist/esm/chunk-KFQ4B5YC.js.map +7 -0
  397. package/dist/esm/{chunk-DIGT74P3.js → chunk-KPACVWV4.js} +1 -1
  398. package/dist/esm/{chunk-DIGT74P3.js.map → chunk-KPACVWV4.js.map} +2 -2
  399. package/dist/esm/{chunk-MQT3YJKY.js → chunk-KPPIW4OJ.js} +2 -2
  400. package/dist/esm/{chunk-PTEAQFHI.js → chunk-KRXCFIRK.js} +2 -2
  401. package/dist/esm/{chunk-5SQL4ZRC.js → chunk-KSZOVI57.js} +2 -2
  402. package/dist/esm/{chunk-5SQL4ZRC.js.map → chunk-KSZOVI57.js.map} +1 -1
  403. package/dist/esm/chunk-KU3LLWFU.js +2 -0
  404. package/dist/esm/{chunk-UPCRXJB2.js.map → chunk-KU3LLWFU.js.map} +2 -2
  405. package/dist/esm/chunk-MAI7FEU7.js +2 -0
  406. package/dist/esm/chunk-MAI7FEU7.js.map +7 -0
  407. package/dist/esm/chunk-MDHXSEGH.js +2 -0
  408. package/dist/esm/chunk-MDHXSEGH.js.map +7 -0
  409. package/dist/esm/{chunk-2PO6TZ7L.js → chunk-MJEYJI5G.js} +2 -2
  410. package/dist/esm/chunk-MLXHD7YF.js +2 -0
  411. package/dist/esm/chunk-MLXHD7YF.js.map +7 -0
  412. package/dist/esm/chunk-MPN33CKR.js +2 -0
  413. package/dist/esm/chunk-MPN33CKR.js.map +7 -0
  414. package/dist/esm/chunk-MQDZBF4J.js +2 -0
  415. package/dist/esm/chunk-MQDZBF4J.js.map +7 -0
  416. package/dist/esm/chunk-NCDOMH5I.js +2 -0
  417. package/dist/esm/chunk-NCDOMH5I.js.map +7 -0
  418. package/dist/esm/chunk-NFVOEHZS.js +2 -0
  419. package/dist/esm/chunk-NFVOEHZS.js.map +7 -0
  420. package/dist/esm/{chunk-J43ZS6TI.js → chunk-PAQS6C2A.js} +2 -2
  421. package/dist/esm/chunk-PUVZFRTQ.js +2 -0
  422. package/dist/esm/chunk-PUVZFRTQ.js.map +7 -0
  423. package/dist/esm/chunk-Q7S5LQBQ.js +2 -0
  424. package/dist/esm/chunk-Q7S5LQBQ.js.map +7 -0
  425. package/dist/esm/chunk-QAUYOVVL.js +2 -0
  426. package/dist/esm/chunk-QAUYOVVL.js.map +7 -0
  427. package/dist/esm/chunk-QOPRXQGR.js +2 -0
  428. package/dist/esm/chunk-QOPRXQGR.js.map +7 -0
  429. package/dist/esm/{chunk-MLJLEOZ5.js → chunk-R2FUNQTI.js} +2 -2
  430. package/dist/esm/{chunk-MLJLEOZ5.js.map → chunk-R2FUNQTI.js.map} +2 -2
  431. package/dist/esm/chunk-RC7TBVLO.js +2 -0
  432. package/dist/esm/chunk-RC7TBVLO.js.map +7 -0
  433. package/dist/esm/chunk-RJ6SA7AY.js +2 -0
  434. package/dist/esm/chunk-RJ6SA7AY.js.map +7 -0
  435. package/dist/esm/chunk-RSJSVJ6A.js +2 -0
  436. package/dist/esm/chunk-RSJSVJ6A.js.map +7 -0
  437. package/dist/esm/chunk-STMTXK7U.js +2 -0
  438. package/dist/esm/chunk-STMTXK7U.js.map +7 -0
  439. package/dist/esm/chunk-U7PDXTRX.js +2 -0
  440. package/dist/esm/chunk-U7PDXTRX.js.map +7 -0
  441. package/dist/esm/chunk-UNRG6Z5I.js +2 -0
  442. package/dist/esm/chunk-UNRG6Z5I.js.map +7 -0
  443. package/dist/esm/chunk-UONSKZQT.js +2 -0
  444. package/dist/esm/chunk-UONSKZQT.js.map +7 -0
  445. package/dist/esm/{chunk-2IPVLV6B.js → chunk-UQZHW3EJ.js} +2 -2
  446. package/dist/esm/chunk-VIDXAECE.js +2 -0
  447. package/dist/esm/chunk-VIDXAECE.js.map +7 -0
  448. package/dist/esm/chunk-VLLJ7A6P.js +2 -0
  449. package/dist/esm/chunk-VLLJ7A6P.js.map +7 -0
  450. package/dist/esm/{chunk-ELZEAEN2.js → chunk-VT4AAF7Q.js} +2 -2
  451. package/dist/esm/chunk-WKMJIWFP.js +2 -0
  452. package/dist/esm/chunk-WKMJIWFP.js.map +7 -0
  453. package/dist/esm/chunk-XVKFQSLI.js +2 -0
  454. package/dist/esm/chunk-XVKFQSLI.js.map +7 -0
  455. package/dist/esm/chunk-YF3MFME4.js +10 -0
  456. package/dist/esm/chunk-YF3MFME4.js.map +7 -0
  457. package/dist/esm/chunk-YGPUKJEB.js +2 -0
  458. package/dist/esm/chunk-YGPUKJEB.js.map +7 -0
  459. package/dist/esm/{chunk-MD3QCXRD.js → chunk-YVMQWSHA.js} +2 -2
  460. package/dist/esm/{chunk-MD3QCXRD.js.map → chunk-YVMQWSHA.js.map} +2 -2
  461. package/dist/esm/chunk-ZCAI2PRH.js +2 -0
  462. package/dist/esm/chunk-ZCAI2PRH.js.map +7 -0
  463. package/dist/esm/{chunk-S53ZQNHK.js → chunk-ZFBLPW3X.js} +2 -2
  464. package/dist/esm/chunk-ZH2B7WEH.js +2 -0
  465. package/dist/esm/chunk-ZH2B7WEH.js.map +7 -0
  466. package/dist/esm/chunk-ZJZIV2JH.js +2 -0
  467. package/dist/esm/chunk-ZJZIV2JH.js.map +7 -0
  468. package/dist/esm/components/_internal/base-button.d.ts +0 -2
  469. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  470. package/dist/esm/components/_internal/base-button.js +1 -1
  471. package/dist/esm/components/_internal/base-button.props.d.ts +0 -17
  472. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  473. package/dist/esm/components/_internal/base-button.props.js +1 -1
  474. package/dist/esm/components/_internal/base-checkbox.props.d.ts +1 -1
  475. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  476. package/dist/esm/components/_internal/base-menu.props.d.ts +0 -10
  477. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  478. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  479. package/dist/esm/components/_internal/base-menu.utils.d.ts +3 -9
  480. package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -1
  481. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  482. package/dist/esm/components/_internal/base-radio.props.d.ts +1 -1
  483. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  484. package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -5
  485. package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
  486. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  487. package/dist/esm/components/_internal/menu-context.d.ts +2 -3
  488. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  489. package/dist/esm/components/_internal/menu-context.js +1 -1
  490. package/dist/esm/components/_internal/pane-chrome.d.ts +14 -2
  491. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  492. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  493. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  494. package/dist/esm/components/accordion.d.ts.map +1 -1
  495. package/dist/esm/components/accordion.js +1 -1
  496. package/dist/esm/components/accordion.props.d.ts +0 -7
  497. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  498. package/dist/esm/components/accordion.props.js +1 -1
  499. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  500. package/dist/esm/components/alert-dialog.js +1 -1
  501. package/dist/esm/components/alert-dialog.props.d.ts +0 -5
  502. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  503. package/dist/esm/components/alert-dialog.props.js +1 -1
  504. package/dist/esm/components/badge.js +1 -1
  505. package/dist/esm/components/badge.props.d.ts +1 -1
  506. package/dist/esm/components/badge.props.js +1 -1
  507. package/dist/esm/components/button.js +1 -1
  508. package/dist/esm/components/button.props.js +1 -1
  509. package/dist/esm/components/card.d.ts.map +1 -1
  510. package/dist/esm/components/card.js +1 -1
  511. package/dist/esm/components/card.props.d.ts +0 -5
  512. package/dist/esm/components/card.props.d.ts.map +1 -1
  513. package/dist/esm/components/card.props.js +1 -1
  514. package/dist/esm/components/chatbar.d.ts +0 -2
  515. package/dist/esm/components/chatbar.d.ts.map +1 -1
  516. package/dist/esm/components/chatbar.js +1 -1
  517. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  518. package/dist/esm/components/checkbox-cards.js +1 -1
  519. package/dist/esm/components/checkbox-cards.props.d.ts +0 -5
  520. package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
  521. package/dist/esm/components/checkbox-cards.props.js +1 -1
  522. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  523. package/dist/esm/components/checkbox-group.js +1 -1
  524. package/dist/esm/components/checkbox-group.props.d.ts +1 -1
  525. package/dist/esm/components/checkbox-group.props.js +1 -1
  526. package/dist/esm/components/checkbox.d.ts.map +1 -1
  527. package/dist/esm/components/checkbox.js +1 -1
  528. package/dist/esm/components/checkbox.props.js +1 -1
  529. package/dist/esm/components/combobox.d.ts.map +1 -1
  530. package/dist/esm/components/combobox.js +1 -1
  531. package/dist/esm/components/combobox.props.d.ts +0 -9
  532. package/dist/esm/components/combobox.props.d.ts.map +1 -1
  533. package/dist/esm/components/combobox.props.js +1 -1
  534. package/dist/esm/components/context-menu.d.ts.map +1 -1
  535. package/dist/esm/components/context-menu.js +1 -1
  536. package/dist/esm/components/context-menu.props.js +1 -1
  537. package/dist/esm/components/data-list.d.ts.map +1 -1
  538. package/dist/esm/components/data-list.js +1 -1
  539. package/dist/esm/components/dialog.d.ts.map +1 -1
  540. package/dist/esm/components/dialog.js +1 -1
  541. package/dist/esm/components/dialog.props.d.ts +0 -5
  542. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  543. package/dist/esm/components/dialog.props.js +1 -1
  544. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  545. package/dist/esm/components/dropdown-menu.js +1 -1
  546. package/dist/esm/components/dropdown-menu.props.js +1 -1
  547. package/dist/esm/components/hover-card.d.ts.map +1 -1
  548. package/dist/esm/components/hover-card.js +1 -1
  549. package/dist/esm/components/icon-button.js +1 -1
  550. package/dist/esm/components/icon-button.props.js +1 -1
  551. package/dist/esm/components/index.js +1 -1
  552. package/dist/esm/components/message-scroller.js +1 -1
  553. package/dist/esm/components/navbar.d.ts.map +1 -1
  554. package/dist/esm/components/navbar.js +1 -1
  555. package/dist/esm/components/notice.d.ts +1 -3
  556. package/dist/esm/components/notice.d.ts.map +1 -1
  557. package/dist/esm/components/notice.js +1 -1
  558. package/dist/esm/components/popover.d.ts.map +1 -1
  559. package/dist/esm/components/popover.js +1 -1
  560. package/dist/esm/components/popover.props.d.ts +0 -5
  561. package/dist/esm/components/popover.props.d.ts.map +1 -1
  562. package/dist/esm/components/popover.props.js +1 -1
  563. package/dist/esm/components/progress.js +1 -1
  564. package/dist/esm/components/progress.props.d.ts +0 -7
  565. package/dist/esm/components/progress.props.d.ts.map +1 -1
  566. package/dist/esm/components/progress.props.js +1 -1
  567. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  568. package/dist/esm/components/radio-cards.js +1 -1
  569. package/dist/esm/components/radio-cards.props.d.ts +0 -5
  570. package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
  571. package/dist/esm/components/radio-cards.props.js +1 -1
  572. package/dist/esm/components/radio-group.d.ts.map +1 -1
  573. package/dist/esm/components/radio-group.js +1 -1
  574. package/dist/esm/components/radio-group.props.d.ts +1 -1
  575. package/dist/esm/components/radio-group.props.js +1 -1
  576. package/dist/esm/components/radio.d.ts.map +1 -1
  577. package/dist/esm/components/radio.js +1 -1
  578. package/dist/esm/components/radio.props.js +1 -1
  579. package/dist/esm/components/schemas/base-button.schema.d.ts +0 -4
  580. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
  581. package/dist/esm/components/schemas/base-button.schema.js +1 -1
  582. package/dist/esm/components/schemas/button.schema.d.ts +0 -4
  583. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
  584. package/dist/esm/components/schemas/button.schema.js +1 -1
  585. package/dist/esm/components/schemas/icon-button.schema.d.ts +0 -4
  586. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
  587. package/dist/esm/components/schemas/icon-button.schema.js +1 -1
  588. package/dist/esm/components/schemas/index.js +1 -1
  589. package/dist/esm/components/schemas/toggle-button.schema.d.ts +0 -4
  590. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
  591. package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
  592. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +0 -4
  593. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  594. package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
  595. package/dist/esm/components/scroll-area.d.ts.map +1 -1
  596. package/dist/esm/components/scroll-area.js +1 -1
  597. package/dist/esm/components/scroll-area.props.d.ts +0 -7
  598. package/dist/esm/components/scroll-area.props.d.ts.map +1 -1
  599. package/dist/esm/components/scroll-area.props.js +1 -1
  600. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  601. package/dist/esm/components/segmented-control.js +1 -1
  602. package/dist/esm/components/segmented-control.props.d.ts +0 -4
  603. package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
  604. package/dist/esm/components/segmented-control.props.js +1 -1
  605. package/dist/esm/components/select.d.ts.map +1 -1
  606. package/dist/esm/components/select.js +1 -1
  607. package/dist/esm/components/select.props.d.ts +0 -4
  608. package/dist/esm/components/select.props.d.ts.map +1 -1
  609. package/dist/esm/components/select.props.js +1 -1
  610. package/dist/esm/components/separator.js +1 -1
  611. package/dist/esm/components/separator.props.d.ts +0 -7
  612. package/dist/esm/components/separator.props.d.ts.map +1 -1
  613. package/dist/esm/components/separator.props.js +1 -1
  614. package/dist/esm/components/sheet.d.ts +0 -1
  615. package/dist/esm/components/sheet.d.ts.map +1 -1
  616. package/dist/esm/components/sheet.js +1 -1
  617. package/dist/esm/components/shell.d.ts +1 -1
  618. package/dist/esm/components/shell.d.ts.map +1 -1
  619. package/dist/esm/components/shell.js +1 -1
  620. package/dist/esm/components/sidebar.js +1 -1
  621. package/dist/esm/components/slider.d.ts.map +1 -1
  622. package/dist/esm/components/slider.js +1 -1
  623. package/dist/esm/components/spinner.js +1 -1
  624. package/dist/esm/components/spinner.props.d.ts +0 -7
  625. package/dist/esm/components/spinner.props.d.ts.map +1 -1
  626. package/dist/esm/components/spinner.props.js +1 -1
  627. package/dist/esm/components/switch.d.ts.map +1 -1
  628. package/dist/esm/components/switch.js +1 -1
  629. package/dist/esm/components/switch.props.d.ts.map +1 -1
  630. package/dist/esm/components/switch.props.js +1 -1
  631. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  632. package/dist/esm/components/tab-nav.js +1 -1
  633. package/dist/esm/components/tab-nav.props.js +1 -1
  634. package/dist/esm/components/table.d.ts.map +1 -1
  635. package/dist/esm/components/table.js +1 -1
  636. package/dist/esm/components/table.props.d.ts +1 -1
  637. package/dist/esm/components/table.props.js +1 -1
  638. package/dist/esm/components/tabs.d.ts.map +1 -1
  639. package/dist/esm/components/tabs.js +1 -1
  640. package/dist/esm/components/tabs.props.js +1 -1
  641. package/dist/esm/components/text-area.d.ts.map +1 -1
  642. package/dist/esm/components/text-area.js +1 -1
  643. package/dist/esm/components/text-area.props.d.ts +0 -5
  644. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  645. package/dist/esm/components/text-area.props.js +1 -1
  646. package/dist/esm/components/text-field.d.ts.map +1 -1
  647. package/dist/esm/components/text-field.js +1 -1
  648. package/dist/esm/components/text-field.props.d.ts +0 -5
  649. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  650. package/dist/esm/components/text-field.props.js +1 -1
  651. package/dist/esm/components/theme-panel.d.ts.map +1 -1
  652. package/dist/esm/components/theme-panel.js +1 -1
  653. package/dist/esm/components/theme.d.ts +3 -6
  654. package/dist/esm/components/theme.d.ts.map +1 -1
  655. package/dist/esm/components/theme.js +1 -1
  656. package/dist/esm/components/theme.props.d.ts +12 -19
  657. package/dist/esm/components/theme.props.d.ts.map +1 -1
  658. package/dist/esm/components/theme.props.js +1 -1
  659. package/dist/esm/components/toggle-button.js +1 -1
  660. package/dist/esm/components/toggle-icon-button.js +1 -1
  661. package/dist/esm/components/toolbar.d.ts.map +1 -1
  662. package/dist/esm/components/toolbar.js +1 -1
  663. package/dist/esm/components/toolbar.props.d.ts +2 -1
  664. package/dist/esm/components/toolbar.props.d.ts.map +1 -1
  665. package/dist/esm/components/toolbar.props.js +1 -1
  666. package/dist/esm/components/tooltip.js +1 -1
  667. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  668. package/dist/esm/components/virtual-menu.js +1 -1
  669. package/dist/esm/helpers/index.d.ts +1 -0
  670. package/dist/esm/helpers/index.d.ts.map +1 -1
  671. package/dist/esm/helpers/index.js +1 -1
  672. package/dist/esm/helpers/map-prop-values.d.ts +1 -4
  673. package/dist/esm/helpers/map-prop-values.d.ts.map +1 -1
  674. package/dist/esm/helpers/map-prop-values.js +1 -1
  675. package/dist/esm/helpers/theme-size.d.ts +41 -0
  676. package/dist/esm/helpers/theme-size.d.ts.map +1 -0
  677. package/dist/esm/helpers/theme-size.js +2 -0
  678. package/dist/esm/helpers/theme-size.js.map +7 -0
  679. package/dist/esm/index.js +1 -1
  680. package/dist/esm/props/index.js +1 -1
  681. package/layout/components.css +48 -48
  682. package/layout/tokens.css +79 -31
  683. package/layout.css +127 -79
  684. package/package.json +2 -1
  685. package/schemas/base-button.json +0 -8
  686. package/schemas/button.json +0 -8
  687. package/schemas/icon-button.json +0 -8
  688. package/schemas/index.json +0 -40
  689. package/schemas/toggle-button.json +0 -8
  690. package/schemas/toggle-icon-button.json +0 -8
  691. package/src/components/_internal/base-button.css +130 -175
  692. package/src/components/_internal/base-button.props.ts +0 -26
  693. package/src/components/_internal/base-button.tsx +47 -14
  694. package/src/components/_internal/base-card.css +32 -194
  695. package/src/components/_internal/base-checkbox.css +104 -58
  696. package/src/components/_internal/base-checkbox.props.ts +1 -1
  697. package/src/components/_internal/base-dialog.css +13 -45
  698. package/src/components/_internal/base-menu.css +24 -57
  699. package/src/components/_internal/base-menu.props.ts +0 -8
  700. package/src/components/_internal/base-menu.utils.tsx +4 -15
  701. package/src/components/_internal/base-radio.css +79 -54
  702. package/src/components/_internal/base-radio.props.ts +1 -1
  703. package/src/components/_internal/base-sidebar-menu.css +21 -19
  704. package/src/components/_internal/base-sidebar.css +2 -3
  705. package/src/components/_internal/base-tab-list.css +39 -78
  706. package/src/components/_internal/base-tab-list.props.ts +0 -3
  707. package/src/components/_internal/menu-context.tsx +6 -10
  708. package/src/components/_internal/pane-chrome.tsx +40 -8
  709. package/src/components/accordion.css +17 -263
  710. package/src/components/accordion.props.tsx +0 -4
  711. package/src/components/accordion.tsx +4 -5
  712. package/src/components/alert-dialog.props.tsx +0 -4
  713. package/src/components/alert-dialog.tsx +1 -14
  714. package/src/components/avatar.css +35 -67
  715. package/src/components/badge.css +27 -49
  716. package/src/components/badge.props.tsx +1 -1
  717. package/src/components/blockquote.css +2 -2
  718. package/src/components/button.css +5 -175
  719. package/src/components/card.props.tsx +0 -3
  720. package/src/components/card.tsx +1 -3
  721. package/src/components/chatbar.css +44 -124
  722. package/src/components/chatbar.tsx +10 -11
  723. package/src/components/checkbox-cards.css +11 -11
  724. package/src/components/checkbox-cards.props.tsx +0 -3
  725. package/src/components/checkbox-cards.tsx +0 -5
  726. package/src/components/checkbox-group.css +7 -12
  727. package/src/components/checkbox-group.tsx +3 -1
  728. package/src/components/checkbox.css +6 -11
  729. package/src/components/checkbox.tsx +3 -1
  730. package/src/components/combobox.css +4 -9
  731. package/src/components/combobox.props.tsx +0 -5
  732. package/src/components/combobox.tsx +4 -12
  733. package/src/components/context-menu.tsx +9 -20
  734. package/src/components/data-list.css +4 -4
  735. package/src/components/data-list.tsx +3 -1
  736. package/src/components/dialog.css +0 -12
  737. package/src/components/dialog.props.tsx +0 -3
  738. package/src/components/dialog.tsx +1 -14
  739. package/src/components/dropdown-menu.css +1 -1
  740. package/src/components/dropdown-menu.tsx +8 -20
  741. package/src/components/hover-card.css +3 -3
  742. package/src/components/hover-card.tsx +3 -1
  743. package/src/components/icon-button.css +4 -152
  744. package/src/components/image.css +1 -1
  745. package/src/components/kbd.css +14 -14
  746. package/src/components/message-scroller.css +1 -1
  747. package/src/components/message-scroller.tsx +1 -1
  748. package/src/components/navbar.css +6 -6
  749. package/src/components/navbar.tsx +3 -1
  750. package/src/components/notice.css +9 -15
  751. package/src/components/notice.tsx +8 -7
  752. package/src/components/popover.css +15 -37
  753. package/src/components/popover.props.tsx +0 -3
  754. package/src/components/popover.tsx +3 -6
  755. package/src/components/progress.css +4 -106
  756. package/src/components/progress.props.tsx +0 -3
  757. package/src/components/radio-cards.css +6 -6
  758. package/src/components/radio-cards.props.tsx +0 -3
  759. package/src/components/radio-cards.tsx +0 -5
  760. package/src/components/radio-group.css +1 -1
  761. package/src/components/radio-group.props.tsx +1 -1
  762. package/src/components/radio-group.tsx +3 -1
  763. package/src/components/radio.tsx +3 -1
  764. package/src/components/schemas/base-button.schema.ts +0 -9
  765. package/src/components/scroll-area.css +13 -34
  766. package/src/components/scroll-area.props.tsx +0 -3
  767. package/src/components/scroll-area.tsx +2 -18
  768. package/src/components/section.css +8 -8
  769. package/src/components/segmented-control.css +47 -83
  770. package/src/components/segmented-control.props.tsx +0 -2
  771. package/src/components/segmented-control.tsx +3 -5
  772. package/src/components/select.css +87 -424
  773. package/src/components/select.props.tsx +0 -2
  774. package/src/components/select.tsx +4 -4
  775. package/src/components/separator.css +2 -23
  776. package/src/components/separator.props.tsx +0 -3
  777. package/src/components/sheet.css +0 -11
  778. package/src/components/sheet.tsx +1 -18
  779. package/src/components/shell.css +45 -30
  780. package/src/components/shell.tsx +8 -2
  781. package/src/components/sidebar.css +108 -198
  782. package/src/components/skeleton.css +1 -1
  783. package/src/components/slider.css +35 -98
  784. package/src/components/slider.tsx +3 -1
  785. package/src/components/spinner.css +2 -23
  786. package/src/components/spinner.props.tsx +0 -4
  787. package/src/components/switch.css +56 -49
  788. package/src/components/switch.props.tsx +0 -8
  789. package/src/components/switch.tsx +3 -1
  790. package/src/components/tab-nav.tsx +4 -4
  791. package/src/components/table.css +10 -18
  792. package/src/components/table.props.tsx +1 -1
  793. package/src/components/table.tsx +3 -1
  794. package/src/components/tabs.css +2 -1
  795. package/src/components/tabs.tsx +4 -4
  796. package/src/components/text-area.css +71 -236
  797. package/src/components/text-area.props.tsx +0 -3
  798. package/src/components/text-area.tsx +9 -9
  799. package/src/components/text-field.css +136 -342
  800. package/src/components/text-field.props.tsx +0 -3
  801. package/src/components/text-field.tsx +9 -9
  802. package/src/components/theme-panel.css +4 -4
  803. package/src/components/theme-panel.tsx +19 -236
  804. package/src/components/theme.props.tsx +10 -15
  805. package/src/components/theme.tsx +86 -106
  806. package/src/components/toolbar.css +9 -9
  807. package/src/components/toolbar.props.tsx +2 -1
  808. package/src/components/toolbar.tsx +7 -2
  809. package/src/components/tooltip.css +1 -1
  810. package/src/components/virtual-menu.tsx +2 -4
  811. package/src/helpers/index.ts +1 -0
  812. package/src/helpers/map-prop-values.ts +1 -18
  813. package/src/helpers/theme-size.ts +73 -0
  814. package/src/styles/tokens/base.css +0 -2
  815. package/src/styles/tokens/color.css +4 -32
  816. package/src/styles/tokens/constants.css +27 -51
  817. package/src/styles/tokens/layout.css +1 -1
  818. package/src/styles/tokens/radius.css +24 -24
  819. package/src/styles/tokens/space.css +107 -24
  820. package/src/styles/tokens/typography.css +39 -39
  821. package/styles.css +3091 -5296
  822. package/tokens/base.css +243 -283
  823. package/tokens.css +268 -318
  824. package/dist/esm/chunk-23WDP4JG.js +0 -2
  825. package/dist/esm/chunk-23WDP4JG.js.map +0 -7
  826. package/dist/esm/chunk-2IWL4V4H.js +0 -2
  827. package/dist/esm/chunk-2IWL4V4H.js.map +0 -7
  828. package/dist/esm/chunk-2MYYU7ST.js +0 -2
  829. package/dist/esm/chunk-2MYYU7ST.js.map +0 -7
  830. package/dist/esm/chunk-2NNB4ZZ5.js +0 -2
  831. package/dist/esm/chunk-2NNB4ZZ5.js.map +0 -7
  832. package/dist/esm/chunk-2NNCZM7P.js +0 -2
  833. package/dist/esm/chunk-2NNCZM7P.js.map +0 -7
  834. package/dist/esm/chunk-2XSRO44Q.js +0 -2
  835. package/dist/esm/chunk-2XSRO44Q.js.map +0 -7
  836. package/dist/esm/chunk-3KB2XWBE.js +0 -2
  837. package/dist/esm/chunk-3KB2XWBE.js.map +0 -7
  838. package/dist/esm/chunk-3PT3AOD5.js +0 -2
  839. package/dist/esm/chunk-3PT3AOD5.js.map +0 -7
  840. package/dist/esm/chunk-4D7OU2UA.js +0 -2
  841. package/dist/esm/chunk-4D7OU2UA.js.map +0 -7
  842. package/dist/esm/chunk-4EBCFKNC.js +0 -2
  843. package/dist/esm/chunk-4EBCFKNC.js.map +0 -7
  844. package/dist/esm/chunk-5GYIQIPW.js +0 -2
  845. package/dist/esm/chunk-5GYIQIPW.js.map +0 -7
  846. package/dist/esm/chunk-5PG5YGIW.js +0 -2
  847. package/dist/esm/chunk-5PG5YGIW.js.map +0 -7
  848. package/dist/esm/chunk-5RHODJDJ.js +0 -2
  849. package/dist/esm/chunk-5RHODJDJ.js.map +0 -7
  850. package/dist/esm/chunk-7BE6N3KY.js +0 -2
  851. package/dist/esm/chunk-7BE6N3KY.js.map +0 -7
  852. package/dist/esm/chunk-BALS3AVM.js +0 -2
  853. package/dist/esm/chunk-BALS3AVM.js.map +0 -7
  854. package/dist/esm/chunk-BDOMLGLZ.js +0 -2
  855. package/dist/esm/chunk-BDOMLGLZ.js.map +0 -7
  856. package/dist/esm/chunk-CAUFRKTK.js +0 -2
  857. package/dist/esm/chunk-CAUFRKTK.js.map +0 -7
  858. package/dist/esm/chunk-CJ4UZDW5.js +0 -2
  859. package/dist/esm/chunk-CJ4UZDW5.js.map +0 -7
  860. package/dist/esm/chunk-DD5QHU6R.js +0 -2
  861. package/dist/esm/chunk-DD5QHU6R.js.map +0 -7
  862. package/dist/esm/chunk-DDYII5NA.js +0 -2
  863. package/dist/esm/chunk-DDYII5NA.js.map +0 -7
  864. package/dist/esm/chunk-DQTJMIRO.js +0 -2
  865. package/dist/esm/chunk-DQTJMIRO.js.map +0 -7
  866. package/dist/esm/chunk-E5DJILUI.js +0 -2
  867. package/dist/esm/chunk-E5DJILUI.js.map +0 -7
  868. package/dist/esm/chunk-EJG2UNTM.js +0 -2
  869. package/dist/esm/chunk-EJG2UNTM.js.map +0 -7
  870. package/dist/esm/chunk-FK6F6ROH.js +0 -2
  871. package/dist/esm/chunk-FK6F6ROH.js.map +0 -7
  872. package/dist/esm/chunk-HI3JY3DJ.js +0 -2
  873. package/dist/esm/chunk-HI3JY3DJ.js.map +0 -7
  874. package/dist/esm/chunk-HKRQ3E3I.js +0 -2
  875. package/dist/esm/chunk-HKRQ3E3I.js.map +0 -7
  876. package/dist/esm/chunk-HVQ3SLQC.js +0 -2
  877. package/dist/esm/chunk-HVQ3SLQC.js.map +0 -7
  878. package/dist/esm/chunk-IMYZP5OY.js +0 -2
  879. package/dist/esm/chunk-IMYZP5OY.js.map +0 -7
  880. package/dist/esm/chunk-IYXR46Q6.js +0 -5
  881. package/dist/esm/chunk-IYXR46Q6.js.map +0 -7
  882. package/dist/esm/chunk-JGB6LNTP.js +0 -2
  883. package/dist/esm/chunk-JGB6LNTP.js.map +0 -7
  884. package/dist/esm/chunk-JLHJHYVQ.js +0 -2
  885. package/dist/esm/chunk-JLHJHYVQ.js.map +0 -7
  886. package/dist/esm/chunk-K7J23OPW.js +0 -2
  887. package/dist/esm/chunk-K7J23OPW.js.map +0 -7
  888. package/dist/esm/chunk-LRFAOQK6.js +0 -2
  889. package/dist/esm/chunk-LRFAOQK6.js.map +0 -7
  890. package/dist/esm/chunk-LXSARUXD.js +0 -2
  891. package/dist/esm/chunk-LXSARUXD.js.map +0 -7
  892. package/dist/esm/chunk-MGSHX5N5.js +0 -2
  893. package/dist/esm/chunk-MGSHX5N5.js.map +0 -7
  894. package/dist/esm/chunk-MNC2O6QW.js +0 -2
  895. package/dist/esm/chunk-MOMYWKIO.js +0 -2
  896. package/dist/esm/chunk-MOMYWKIO.js.map +0 -7
  897. package/dist/esm/chunk-MVW2SY4F.js +0 -2
  898. package/dist/esm/chunk-MVW2SY4F.js.map +0 -7
  899. package/dist/esm/chunk-PRRJ4WRE.js +0 -2
  900. package/dist/esm/chunk-PRRJ4WRE.js.map +0 -7
  901. package/dist/esm/chunk-PSS45RHX.js +0 -2
  902. package/dist/esm/chunk-PSS45RHX.js.map +0 -7
  903. package/dist/esm/chunk-QE2EF7A7.js +0 -2
  904. package/dist/esm/chunk-QE2EF7A7.js.map +0 -7
  905. package/dist/esm/chunk-QJFAGWBO.js +0 -2
  906. package/dist/esm/chunk-QJFAGWBO.js.map +0 -7
  907. package/dist/esm/chunk-QJSSCW3B.js +0 -2
  908. package/dist/esm/chunk-QJSSCW3B.js.map +0 -7
  909. package/dist/esm/chunk-QPNYHS6A.js +0 -2
  910. package/dist/esm/chunk-QPNYHS6A.js.map +0 -7
  911. package/dist/esm/chunk-QWFFYUFH.js +0 -2
  912. package/dist/esm/chunk-QWFFYUFH.js.map +0 -7
  913. package/dist/esm/chunk-RA4U6VVZ.js +0 -2
  914. package/dist/esm/chunk-RA4U6VVZ.js.map +0 -7
  915. package/dist/esm/chunk-RVHKSNMJ.js +0 -2
  916. package/dist/esm/chunk-RVHKSNMJ.js.map +0 -7
  917. package/dist/esm/chunk-RYURXQLJ.js +0 -2
  918. package/dist/esm/chunk-RYURXQLJ.js.map +0 -7
  919. package/dist/esm/chunk-UA6FP7HS.js +0 -2
  920. package/dist/esm/chunk-ULSNYQOY.js +0 -2
  921. package/dist/esm/chunk-ULSNYQOY.js.map +0 -7
  922. package/dist/esm/chunk-UPCRXJB2.js +0 -2
  923. package/dist/esm/chunk-URLG45A4.js +0 -2
  924. package/dist/esm/chunk-URLG45A4.js.map +0 -7
  925. package/dist/esm/chunk-UZS3BA2Z.js +0 -2
  926. package/dist/esm/chunk-UZS3BA2Z.js.map +0 -7
  927. package/dist/esm/chunk-V7UP4SLZ.js +0 -2
  928. package/dist/esm/chunk-V7UP4SLZ.js.map +0 -7
  929. package/dist/esm/chunk-W7VAP3WE.js +0 -2
  930. package/dist/esm/chunk-W7VAP3WE.js.map +0 -7
  931. package/dist/esm/chunk-WGNIFXUE.js +0 -2
  932. package/dist/esm/chunk-WGNIFXUE.js.map +0 -7
  933. package/dist/esm/chunk-WNSG5P3U.js +0 -2
  934. package/dist/esm/chunk-WNSG5P3U.js.map +0 -7
  935. package/dist/esm/chunk-X3UTLDGG.js +0 -2
  936. package/dist/esm/chunk-X3UTLDGG.js.map +0 -7
  937. package/dist/esm/chunk-XCDXQLWS.js +0 -2
  938. package/dist/esm/chunk-XCDXQLWS.js.map +0 -7
  939. package/dist/esm/chunk-XKAWVGBL.js +0 -2
  940. package/dist/esm/chunk-XKAWVGBL.js.map +0 -7
  941. package/dist/esm/chunk-XPRPYCII.js +0 -2
  942. package/dist/esm/chunk-XPRPYCII.js.map +0 -7
  943. package/dist/esm/chunk-Y3FVBAN2.js +0 -2
  944. package/dist/esm/chunk-Y3FVBAN2.js.map +0 -7
  945. package/dist/esm/chunk-YKGLZEXX.js +0 -2
  946. package/dist/esm/chunk-YKGLZEXX.js.map +0 -7
  947. package/dist/esm/chunk-YSHEXVBI.js +0 -10
  948. package/dist/esm/chunk-YSHEXVBI.js.map +0 -7
  949. package/dist/esm/chunk-Z2LGVLUB.js +0 -2
  950. package/dist/esm/chunk-Z2LGVLUB.js.map +0 -7
  951. package/src/styles/tokens/blur.css +0 -63
  952. package/src/styles/tokens/opacity.css +0 -32
  953. package/src/styles/tokens/scaling.css +0 -17
  954. /package/dist/esm/{chunk-XZ5XZS5O.js.map → chunk-35HNDWWM.js.map} +0 -0
  955. /package/dist/esm/{chunk-R4CN4Q3G.js.map → chunk-534LGOWC.js.map} +0 -0
  956. /package/dist/esm/{chunk-7UW7D77E.js.map → chunk-5UU2IMGX.js.map} +0 -0
  957. /package/dist/esm/{chunk-Y4IB7KDZ.js.map → chunk-7FZPCM7W.js.map} +0 -0
  958. /package/dist/esm/{chunk-UA6FP7HS.js.map → chunk-ABS275QZ.js.map} +0 -0
  959. /package/dist/esm/{chunk-PAB6HVKC.js.map → chunk-DFSW4QR4.js.map} +0 -0
  960. /package/dist/esm/{chunk-UI2EFF6F.js.map → chunk-E3754NJZ.js.map} +0 -0
  961. /package/dist/esm/{chunk-F2XQYWBE.js.map → chunk-EHUSLPWN.js.map} +0 -0
  962. /package/dist/esm/{chunk-6ERCPRXX.js.map → chunk-FSKZAL5H.js.map} +0 -0
  963. /package/dist/esm/{chunk-MQT3YJKY.js.map → chunk-KPPIW4OJ.js.map} +0 -0
  964. /package/dist/esm/{chunk-PTEAQFHI.js.map → chunk-KRXCFIRK.js.map} +0 -0
  965. /package/dist/esm/{chunk-2PO6TZ7L.js.map → chunk-MJEYJI5G.js.map} +0 -0
  966. /package/dist/esm/{chunk-J43ZS6TI.js.map → chunk-PAQS6C2A.js.map} +0 -0
  967. /package/dist/esm/{chunk-2IPVLV6B.js.map → chunk-UQZHW3EJ.js.map} +0 -0
  968. /package/dist/esm/{chunk-ELZEAEN2.js.map → chunk-VT4AAF7Q.js.map} +0 -0
  969. /package/dist/esm/{chunk-S53ZQNHK.js.map → chunk-ZFBLPW3X.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/text-field.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { composeRefs } from 'radix-ui/internal';\n\nimport { textFieldRootPropDefs, textFieldSlotPropDefs, type TextFieldSlotScrubProps } from './text-field.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { NotInputTextualAttributes } from '../helpers/input-attributes.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TextFieldRootElement = React.ElementRef<'input'>;\ntype TextFieldRootOwnProps = GetPropDefTypes<typeof textFieldRootPropDefs> & {\n defaultValue?: string | number;\n value?: string | number;\n type?: 'date' | 'datetime-local' | 'email' | 'hidden' | 'month' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'time' | 'url' | 'week';\n};\ntype TextFieldInputProps = ComponentPropsWithout<'input', NotInputTextualAttributes | 'color' | 'defaultValue' | 'size' | 'type' | 'value'>;\ninterface TextFieldRootProps extends TextFieldInputProps, MarginProps, TextFieldRootOwnProps {}\nconst TextFieldRoot = React.forwardRef<TextFieldRootElement, TextFieldRootProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, textFieldRootPropDefs.size);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { children, className, color, radius, style, ...inputProps } = extractProps(props, textFieldRootPropDefs, marginPropDefs);\n\n // Generate unique IDs for accessibility\n const errorId = React.useId();\n\n const { 'aria-describedby': ariaDescribedby, 'aria-labelledby': ariaLabelledby, 'aria-invalid': ariaInvalid } = inputProps;\n\n // Invalid when `error` is set or the caller passes aria-invalid; the CSS keys on aria-invalid only.\n const isInvalid = Boolean(inputProps.error) || ariaInvalid === true || ariaInvalid === 'true';\n\n // Build aria-describedby string\n const describedBy = React.useMemo(() => {\n const parts = [];\n if (inputProps.errorMessage) parts.push(errorId);\n if (ariaDescribedby) parts.push(ariaDescribedby);\n return parts.length > 0 ? parts.join(' ') : undefined;\n }, [inputProps.errorMessage, ariaDescribedby, errorId]);\n\n // Build aria attributes\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid ? true : ariaInvalid,\n 'aria-describedby': describedBy,\n 'aria-labelledby': ariaLabelledby,\n }),\n [isInvalid, ariaInvalid, describedBy, ariaLabelledby],\n );\n\n // Filter out our custom props to avoid DOM warnings\n const { error, errorMessage, required, 'aria-describedby': _ariaDescribedby, 'aria-labelledby': _ariaLabelledby, ...nativeInputProps } = inputProps;\n\n // Memoized pointer event handler\n const handlePointerDown = React.useCallback((event: React.PointerEvent) => {\n const target = event.target as HTMLElement;\n if (target.closest('input, button, a')) return;\n\n const input = inputRef.current;\n if (!input) return;\n\n // Same selector as in the CSS to find the right slot\n const isRightSlot = target.closest(`\n .rt-TextFieldSlot[data-side='right'],\n .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left'])\n `);\n\n const cursorPosition = isRightSlot ? input.value.length : 0;\n\n requestAnimationFrame(() => {\n // Only some input types support this, browsers will throw an error if not supported\n // See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#:~:text=Note%20that%20according,not%20support%20selection%22.\n try {\n input.setSelectionRange(cursorPosition, cursorPosition);\n } catch {}\n input.focus();\n });\n }, []);\n\n return (\n <div\n data-accent-color={color}\n data-radius={radius}\n style={style}\n className={classNames('rt-TextFieldRoot', className, {\n 'rt-error': isInvalid,\n })}\n onPointerDown={handlePointerDown}\n >\n <input spellCheck=\"false\" {...nativeInputProps} {...ariaProps} ref={composeRefs(inputRef, forwardedRef)} className=\"rt-reset rt-TextFieldInput\" />\n {children}\n {inputProps.errorMessage && (\n <div id={errorId} className=\"rt-TextFieldErrorMessage\" role=\"alert\">\n {inputProps.errorMessage}\n </div>\n )}\n </div>\n );\n});\nTextFieldRoot.displayName = 'TextField.Root';\n\ntype TextFieldSlotElement = React.ElementRef<'div'>;\ntype TextFieldSlotOwnProps = GetPropDefTypes<typeof textFieldSlotPropDefs> & TextFieldSlotScrubProps;\ninterface TextFieldSlotProps extends ComponentPropsWithout<'div', RemovedProps>, TextFieldSlotOwnProps {}\n\n// Detect if we should use pointer capture instead of pointer lock\n// Safari and Firefox show intrusive browser warnings with pointer lock\nconst usePointerCapture = (() => {\n if (typeof navigator === 'undefined') return false;\n const ua = navigator.userAgent;\n const isSafari = /^((?!chrome|android).)*safari/i.test(ua);\n const isFirefox = /firefox/i.test(ua);\n return isSafari || isFirefox;\n})();\n\nconst TextFieldSlot = React.forwardRef<TextFieldSlotElement, TextFieldSlotProps>((props, forwardedRef) => {\n // Extract scrub props first (not part of PropDef system)\n const { scrub, scrubValue, scrubStep = 1, scrubSensitivity = 1, scrubMin, scrubMax, scrubShiftMultiplier = 10, scrubAltMultiplier = 0.1, onScrub, ...restProps } = props;\n\n // Then extract styling props\n const { className, color, side, ...slotProps } = extractProps(restProps, textFieldSlotPropDefs);\n\n const slotRef = React.useRef<HTMLDivElement>(null);\n const [isScrubbing, setIsScrubbing] = React.useState(false);\n // Virtual cursor position - X wraps around viewport, Y follows mouse\n const [cursorPosition, setCursorPosition] = React.useState({ x: 0, y: 0 });\n\n // Track accumulated sub-step movement for precision\n const accumulatedMovement = React.useRef(0);\n // Track current value for clamping (initialized to scrubValue when scrubbing starts)\n const currentValue = React.useRef(0);\n // Track virtual X position for wrap-around (separate from rendered position)\n const virtualX = React.useRef(0);\n // Track pointer ID for capture mode\n const pointerIdRef = React.useRef<number | null>(null);\n // Track last X position for capture mode (movementX calculation)\n const lastXRef = React.useRef(0);\n\n // Store scrub config in refs so document handlers can access latest values\n const scrubConfigRef = React.useRef({\n scrubValue,\n scrubStep,\n scrubSensitivity,\n scrubMin,\n scrubMax,\n scrubShiftMultiplier,\n scrubAltMultiplier,\n onScrub,\n });\n scrubConfigRef.current = {\n scrubValue,\n scrubStep,\n scrubSensitivity,\n scrubMin,\n scrubMax,\n scrubShiftMultiplier,\n scrubAltMultiplier,\n onScrub,\n };\n\n const handlePointerDown = React.useCallback(\n (event: React.PointerEvent) => {\n if (!scrub) return;\n\n // Don't start scrubbing if clicking on interactive elements\n const target = event.target as HTMLElement;\n if (target.closest('input, button, a')) return;\n\n event.preventDefault();\n accumulatedMovement.current = 0;\n // Initialize to current value so min/max clamping works correctly\n currentValue.current = scrubValue ?? 0;\n\n // Initialize virtual cursor at actual mouse position\n virtualX.current = event.clientX;\n setCursorPosition({ x: event.clientX, y: event.clientY });\n\n const slot = slotRef.current;\n if (!slot) return;\n\n if (usePointerCapture) {\n // Safari/Firefox: Use pointer capture (no browser warning)\n pointerIdRef.current = event.pointerId;\n lastXRef.current = event.clientX;\n slot.setPointerCapture(event.pointerId);\n setIsScrubbing(true);\n } else {\n // Chrome: Use pointer lock for infinite movement\n slot.requestPointerLock();\n }\n },\n [scrub, scrubValue],\n );\n\n // Handle pointer lock state changes (Chrome only)\n React.useEffect(() => {\n if (usePointerCapture) return;\n\n const handlePointerLockChange = () => {\n const isLocked = document.pointerLockElement === slotRef.current;\n setIsScrubbing(isLocked);\n if (!isLocked) {\n // Fire callback with isChanging = false when scrubbing ends\n scrubConfigRef.current.onScrub?.(0, false);\n accumulatedMovement.current = 0;\n currentValue.current = 0;\n }\n };\n\n document.addEventListener('pointerlockchange', handlePointerLockChange);\n return () => {\n document.removeEventListener('pointerlockchange', handlePointerLockChange);\n };\n }, []);\n\n // Shared scrub calculation logic\n const processScrubMovement = React.useCallback((movementX: number, movementY: number, shiftKey: boolean, altKey: boolean) => {\n const config = scrubConfigRef.current;\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Update virtual position with wrap-around at viewport edges\n virtualX.current += movementX;\n if (virtualX.current > viewportWidth) {\n virtualX.current = virtualX.current % viewportWidth;\n } else if (virtualX.current < 0) {\n virtualX.current = viewportWidth + (virtualX.current % viewportWidth);\n }\n\n // Also track Y with wrap-around\n setCursorPosition((prev) => {\n let newY = prev.y + movementY;\n if (newY > viewportHeight) {\n newY = newY % viewportHeight;\n } else if (newY < 0) {\n newY = viewportHeight + (newY % viewportHeight);\n }\n return { x: virtualX.current, y: newY };\n });\n\n // Accumulate movement for sensitivity calculation\n accumulatedMovement.current += movementX;\n\n // Calculate how many steps we've moved\n const stepsFromMovement = accumulatedMovement.current / config.scrubSensitivity;\n\n if (Math.abs(stepsFromMovement) >= 1) {\n // Determine modifier multiplier\n let multiplier = 1;\n if (shiftKey) {\n multiplier = config.scrubShiftMultiplier;\n } else if (altKey) {\n multiplier = config.scrubAltMultiplier;\n }\n\n // Calculate delta\n const wholeSteps = Math.trunc(stepsFromMovement);\n const delta = wholeSteps * config.scrubStep * multiplier;\n\n // Apply min/max clamping if bounds are set\n let clampedDelta = delta;\n if (config.scrubMin !== undefined || config.scrubMax !== undefined) {\n const newValue = currentValue.current + delta;\n const clampedValue = Math.max(config.scrubMin ?? -Infinity, Math.min(config.scrubMax ?? Infinity, newValue));\n clampedDelta = clampedValue - currentValue.current;\n currentValue.current = clampedValue;\n } else {\n currentValue.current += delta;\n }\n\n // Fire callback with clamped delta (isChanging = true during drag)\n if (clampedDelta !== 0) {\n config.onScrub?.(clampedDelta, true);\n }\n\n // Keep the fractional remainder for smooth sub-pixel accumulation\n accumulatedMovement.current = (stepsFromMovement - wholeSteps) * config.scrubSensitivity;\n }\n }, []);\n\n // End scrubbing helper\n const endScrubbing = React.useCallback(() => {\n scrubConfigRef.current.onScrub?.(0, false);\n accumulatedMovement.current = 0;\n currentValue.current = 0;\n pointerIdRef.current = null;\n setIsScrubbing(false);\n }, []);\n\n // Handle pointer capture mode events (Safari/Firefox)\n const handlePointerMove = React.useCallback(\n (event: React.PointerEvent) => {\n if (!isScrubbing || !usePointerCapture) return;\n\n const movementX = event.clientX - lastXRef.current;\n lastXRef.current = event.clientX;\n\n processScrubMovement(movementX, event.movementY, event.shiftKey, event.altKey);\n },\n [isScrubbing, processScrubMovement],\n );\n\n const handlePointerUp = React.useCallback(\n (event: React.PointerEvent) => {\n if (!usePointerCapture || pointerIdRef.current !== event.pointerId) return;\n\n const slot = slotRef.current;\n if (slot && pointerIdRef.current !== null) {\n slot.releasePointerCapture(pointerIdRef.current);\n }\n endScrubbing();\n },\n [endScrubbing],\n );\n\n const handleLostPointerCapture = React.useCallback(() => {\n if (usePointerCapture && isScrubbing) {\n endScrubbing();\n }\n }, [isScrubbing, endScrubbing]);\n\n // Attach document-level listeners for pointer lock mode (Chrome)\n React.useEffect(() => {\n if (!isScrubbing || usePointerCapture) return;\n\n const handleMouseMove = (event: MouseEvent) => {\n processScrubMovement(event.movementX, event.movementY, event.shiftKey, event.altKey);\n };\n\n const handleMouseUp = () => {\n // Exit pointer lock to end scrubbing\n document.exitPointerLock();\n };\n\n // Use mousemove for pointer lock (pointermove doesn't work well with pointer lock)\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n\n // Disable text selection during scrubbing\n document.body.style.userSelect = 'none';\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n document.body.style.userSelect = '';\n };\n }, [isScrubbing, processScrubMovement]);\n\n // Hide native cursor and disable text selection during pointer capture scrubbing\n React.useEffect(() => {\n if (!isScrubbing || !usePointerCapture) return;\n\n // Create a style element to hide cursor globally during scrub\n const style = document.createElement('style');\n style.textContent = '* { cursor: none !important; user-select: none !important; }';\n document.head.appendChild(style);\n\n return () => {\n document.head.removeChild(style);\n };\n }, [isScrubbing]);\n\n // Render virtual cursor via portal to body so it's not clipped\n // Using a data URI of ew-resize cursor for a native look\n const virtualCursor = isScrubbing\n ? ReactDOM.createPortal(\n <img\n className=\"rt-TextFieldSlotScrubCursor\"\n src=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E\"\n alt=\"\"\n style={{\n position: 'fixed',\n left: cursorPosition.x,\n top: cursorPosition.y,\n transform: 'translate(-50%, -50%)',\n pointerEvents: 'none',\n zIndex: 99999,\n width: 24,\n height: 24,\n }}\n aria-hidden=\"true\"\n />,\n document.body,\n )\n : null;\n\n return (\n <div\n data-accent-color={color}\n data-side={side}\n data-scrub={scrub || undefined}\n data-scrubbing={isScrubbing || undefined}\n {...slotProps}\n ref={composeRefs(slotRef, forwardedRef)}\n className={classNames('rt-TextFieldSlot', className)}\n onPointerDown={scrub ? handlePointerDown : undefined}\n onPointerMove={scrub ? handlePointerMove : undefined}\n onPointerUp={scrub ? handlePointerUp : undefined}\n onLostPointerCapture={scrub ? handleLostPointerCapture : undefined}\n >\n {slotProps.children}\n {virtualCursor}\n </div>\n );\n});\nTextFieldSlot.displayName = 'TextField.Slot';\n\nexport { TextFieldRoot as Root, TextFieldSlot as Slot };\nexport type { TextFieldRootProps as RootProps, TextFieldSlotProps as SlotProps };\n"],
5
+ "mappings": "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",
6
+ "names": ["text_field_exports", "__export", "TextFieldRoot", "TextFieldSlot", "React", "ReactDOM", "classNames", "composeRefs", "TextFieldRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "textFieldRootPropDefs", "inputRef", "children", "className", "color", "radius", "style", "inputProps", "extractProps", "marginPropDefs", "errorId", "ariaDescribedby", "ariaLabelledby", "ariaInvalid", "isInvalid", "describedBy", "parts", "ariaProps", "error", "errorMessage", "required", "_ariaDescribedby", "_ariaLabelledby", "nativeInputProps", "handlePointerDown", "event", "target", "input", "cursorPosition", "classNames", "composeRefs", "usePointerCapture", "ua", "isSafari", "isFirefox", "TextFieldSlot", "scrub", "scrubValue", "scrubStep", "scrubSensitivity", "scrubMin", "scrubMax", "scrubShiftMultiplier", "scrubAltMultiplier", "onScrub", "restProps", "side", "slotProps", "textFieldSlotPropDefs", "slotRef", "isScrubbing", "setIsScrubbing", "setCursorPosition", "accumulatedMovement", "currentValue", "virtualX", "pointerIdRef", "lastXRef", "scrubConfigRef", "slot", "handlePointerLockChange", "isLocked", "processScrubMovement", "movementX", "movementY", "shiftKey", "altKey", "config", "viewportWidth", "viewportHeight", "prev", "newY", "stepsFromMovement", "multiplier", "wholeSteps", "delta", "clampedDelta", "newValue", "clampedValue", "endScrubbing", "handlePointerMove", "handlePointerUp", "handleLostPointerCapture", "handleMouseMove", "handleMouseUp", "virtualCursor"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as r}from"./chunk-STMTXK7U.js";import{a as o}from"./chunk-NZJGC6ZW.js";var f={...o,...r};export{f as a};
2
+ //# sourceMappingURL=chunk-ABS275QZ.js.map
@@ -0,0 +1,2 @@
1
+ import{a as m}from"./chunk-7ZOGH5NT.js";import{a as N}from"./chunk-7CBZFHSQ.js";import{b as v}from"./chunk-FWB47YCH.js";import{e as f}from"./chunk-3YLYGKFB.js";import{a as c}from"./chunk-UBSLEGQZ.js";import{a as g}from"./chunk-OS3FCYZY.js";var y={};g(y,{Actions:()=>R,Logo:()=>b,Navigation:()=>P,Root:()=>l});import*as o from"react";import p from"classnames";var l=o.forwardRef((s,i)=>{let e=f(s,m.size),{children:n,className:a,...r}=c(e,m),t=e.position??"fixed",d=e.size??"2";return o.createElement("header",{...r,ref:i,className:p("rt-NavbarRoot",a),"data-position":t,"data-size":d},o.createElement("div",{className:"rt-NavbarContainer"},n))});l.displayName="Navbar.Root";var b=o.forwardRef(({asChild:s,gap:i="2",align:e="center",justify:n="start",className:a,...r},t)=>s?o.createElement(v,{ref:t,className:p("rt-NavbarLogo",a),...r}):o.createElement(N,{ref:t,gap:i,align:e,justify:n,className:p("rt-NavbarLogo",a),...r}));b.displayName="Navbar.Logo";var P=o.forwardRef(({asChild:s,gap:i="4",align:e="center",justify:n="center",className:a,...r},t)=>s?o.createElement(v,{ref:t,className:p("rt-NavbarNavigation",a),role:"navigation",...r}):o.createElement(N,{ref:t,gap:i,align:e,justify:n,className:p("rt-NavbarNavigation",a),role:"navigation",...r}));P.displayName="Navbar.Navigation";var R=o.forwardRef(({asChild:s,gap:i="4",align:e="center",justify:n="end",className:a,...r},t)=>s?o.createElement(v,{ref:t,className:p("rt-NavbarActions",a),...r}):o.createElement(N,{ref:t,gap:i,align:e,justify:n,className:p("rt-NavbarActions",a),...r}));R.displayName="Navbar.Actions";export{l as a,b,P as c,R as d,y as e};
2
+ //# sourceMappingURL=chunk-AKPAHQYE.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/navbar.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Flex } from './flex.js';\nimport { Slot } from './slot.js';\n\nimport type { FlexProps } from './flex.js';\n\nimport { navbarRootPropDefs } from './navbar.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\n/**\n * Navbar Component\n *\n * A horizontal navigation bar component with semantic slots for organizing\n * content. Follows the Shell and Sidebar compound component patterns.\n *\n * @example\n * <Navbar.Root>\n * <Navbar.Logo>Brand/logo content</Navbar.Logo>\n * <Navbar.Navigation>Navigation links</Navbar.Navigation>\n * <Navbar.Actions>CTAs, user menu, etc</Navbar.Actions>\n * </Navbar.Root>\n */\n\n// Root Component\ntype NavbarRootElement = React.ElementRef<'header'>;\ntype NavbarRootOwnProps = GetPropDefTypes<typeof navbarRootPropDefs>;\ninterface NavbarRootProps\n extends ComponentPropsWithout<'header', RemovedProps>,\n NavbarRootOwnProps {}\n\nconst NavbarRoot = React.forwardRef<NavbarRootElement, NavbarRootProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, navbarRootPropDefs.size);\n const { children, className, ...rootProps } = extractProps(\n props,\n navbarRootPropDefs,\n );\n\n const position = props.position ?? 'fixed';\n const size = props.size ?? '2';\n\n return (\n <header\n {...rootProps}\n ref={forwardedRef}\n className={classNames('rt-NavbarRoot', className)}\n data-position={position}\n data-size={size}\n >\n <div className=\"rt-NavbarContainer\">{children}</div>\n </header>\n );\n },\n);\nNavbarRoot.displayName = 'Navbar.Root';\n\n// Logo Slot - extends FlexProps\ntype NavbarLogoProps = FlexProps & {\n asChild?: boolean;\n};\n\nconst NavbarLogo = React.forwardRef<HTMLDivElement, NavbarLogoProps>(\n ({ asChild, gap = '2', align = 'center', justify = 'start', className, ...props }, ref) => {\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={classNames('rt-NavbarLogo', className)}\n {...props}\n />\n );\n }\n\n return (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('rt-NavbarLogo', className)}\n {...props}\n />\n );\n }\n);\nNavbarLogo.displayName = 'Navbar.Logo';\n\n// Navigation Slot - extends FlexProps\ntype NavbarNavigationProps = FlexProps & {\n asChild?: boolean;\n};\n\nconst NavbarNavigation = React.forwardRef<HTMLDivElement, NavbarNavigationProps>(\n ({ asChild, gap = '4', align = 'center', justify = 'center', className, ...props }, ref) => {\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={classNames('rt-NavbarNavigation', className)}\n role=\"navigation\"\n {...props}\n />\n );\n }\n\n return (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('rt-NavbarNavigation', className)}\n role=\"navigation\"\n {...props}\n />\n );\n }\n);\nNavbarNavigation.displayName = 'Navbar.Navigation';\n\n// Actions Slot - extends FlexProps\ntype NavbarActionsProps = FlexProps & {\n asChild?: boolean;\n};\n\nconst NavbarActions = React.forwardRef<HTMLDivElement, NavbarActionsProps>(\n ({ asChild, gap = '4', align = 'center', justify = 'end', className, ...props }, ref) => {\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={classNames('rt-NavbarActions', className)}\n {...props}\n />\n );\n }\n\n return (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('rt-NavbarActions', className)}\n {...props}\n />\n );\n }\n);\nNavbarActions.displayName = 'Navbar.Actions';\n\nexport {\n NavbarRoot as Root,\n NavbarLogo as Logo,\n NavbarNavigation as Navigation,\n NavbarActions as Actions,\n};\n\nexport type {\n NavbarRootProps as RootProps,\n NavbarLogoProps as LogoProps,\n NavbarNavigationProps as NavigationProps,\n NavbarActionsProps as ActionsProps,\n};\n"],
5
+ "mappings": "gPAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,EAAA,eAAAC,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aAkCvB,IAAMC,EAAmB,aACvB,CAACC,EAAUC,IAAiB,CAC1B,IAAMC,EAAQC,EAAkBH,EAAUI,EAAmB,IAAI,EAC3D,CAAE,SAAAC,EAAU,UAAAC,EAAW,GAAGC,CAAU,EAAIC,EAC5CN,EACAE,CACF,EAEMK,EAAWP,EAAM,UAAY,QAC7BQ,EAAOR,EAAM,MAAQ,IAE3B,OACE,gBAAC,UACE,GAAGK,EACJ,IAAKN,EACL,UAAWU,EAAW,gBAAiBL,CAAS,EAChD,gBAAeG,EACf,YAAWC,GAEX,gBAAC,OAAI,UAAU,sBAAsBL,CAAS,CAChD,CAEJ,CACF,EACAN,EAAW,YAAc,cAOzB,IAAMa,EAAmB,aACvB,CAAC,CAAE,QAAAC,EAAS,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,QAAS,UAAAV,EAAW,GAAGJ,CAAM,EAAGe,IAC7EJ,EAEA,gBAACK,EAAA,CACC,IAAKD,EACL,UAAWN,EAAW,gBAAiBL,CAAS,EAC/C,GAAGJ,EACN,EAKF,gBAACiB,EAAA,CACC,IAAKF,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWL,EAAW,gBAAiBL,CAAS,EAC/C,GAAGJ,EACN,CAGN,EACAU,EAAW,YAAc,cAOzB,IAAMQ,EAAyB,aAC7B,CAAC,CAAE,QAAAP,EAAS,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,SAAU,UAAAV,EAAW,GAAGJ,CAAM,EAAGe,IAC9EJ,EAEA,gBAACK,EAAA,CACC,IAAKD,EACL,UAAWN,EAAW,sBAAuBL,CAAS,EACtD,KAAK,aACJ,GAAGJ,EACN,EAKF,gBAACiB,EAAA,CACC,IAAKF,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWL,EAAW,sBAAuBL,CAAS,EACtD,KAAK,aACJ,GAAGJ,EACN,CAGN,EACAkB,EAAiB,YAAc,oBAO/B,IAAMC,EAAsB,aAC1B,CAAC,CAAE,QAAAR,EAAS,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,MAAO,UAAAV,EAAW,GAAGJ,CAAM,EAAGe,IAC3EJ,EAEA,gBAACK,EAAA,CACC,IAAKD,EACL,UAAWN,EAAW,mBAAoBL,CAAS,EAClD,GAAGJ,EACN,EAKF,gBAACiB,EAAA,CACC,IAAKF,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWL,EAAW,mBAAoBL,CAAS,EAClD,GAAGJ,EACN,CAGN,EACAmB,EAAc,YAAc",
6
+ "names": ["navbar_exports", "__export", "NavbarActions", "NavbarLogo", "NavbarNavigation", "NavbarRoot", "React", "classNames", "NavbarRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "navbarRootPropDefs", "children", "className", "rootProps", "extractProps", "position", "size", "classNames", "NavbarLogo", "asChild", "gap", "align", "justify", "ref", "Slot", "Flex", "NavbarNavigation", "NavbarActions"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as o}from"./chunk-SMGDH54W.js";import{a as e}from"./chunk-TTFUM47A.js";import{b as s}from"./chunk-KRJTW535.js";import{c as r}from"./chunk-34KVYDF6.js";var t=["1","2","3","4"],p=["raised","surface","soft","ghost","outline"],d={size:{type:"enum",className:"rt-r-size",values:t,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:p,default:"raised"},error:{type:"boolean",default:!1},errorMessage:{type:"string",default:void 0},required:{type:"boolean",default:!1},"aria-describedby":{type:"string",default:void 0},"aria-labelledby":{type:"string",default:void 0},...r,...s},i=["left","right"],l={side:{type:"enum",values:i},...r,gap:o.gap,px:e.px,pl:e.pl,pr:e.pr};export{d as a,l as b};
2
+ //# sourceMappingURL=chunk-B6RH4CTY.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/text-field.props.tsx"],
4
+ "sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\nimport { paddingPropDefs } from '../props/padding.props.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\nimport { flexPropDefs } from './flex.props.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['raised', 'surface', 'soft', 'ghost', 'outline'] as const;\n\nconst textFieldRootPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'raised' },\n // Error and validation props\n error: { type: 'boolean', default: false },\n errorMessage: { type: 'string', default: undefined },\n required: { type: 'boolean', default: false },\n // Accessibility props\n 'aria-describedby': { type: 'string', default: undefined },\n 'aria-labelledby': { type: 'string', default: undefined },\n ...colorPropDef,\n ...radiusPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n error: PropDef<boolean>;\n errorMessage: PropDef<string | undefined>;\n required: PropDef<boolean>;\n 'aria-describedby': PropDef<string | undefined>;\n 'aria-labelledby': PropDef<string | undefined>;\n};\n\nconst sides = ['left', 'right'] as const;\n\nconst textFieldSlotPropDefs = {\n side: { type: 'enum', values: sides },\n ...colorPropDef,\n gap: flexPropDefs.gap,\n px: paddingPropDefs.px,\n pl: paddingPropDefs.pl,\n pr: paddingPropDefs.pr,\n} satisfies {\n side: PropDef<(typeof sides)[number]>;\n gap: typeof flexPropDefs.gap;\n px: typeof paddingPropDefs.px;\n pl: typeof paddingPropDefs.pl;\n pr: typeof paddingPropDefs.pr;\n};\n\n/** Scrubbing props for TextField.Slot - handled separately from PropDef system */\ninterface TextFieldSlotScrubProps {\n /** Enable scrubbing behavior on this slot */\n scrub?: boolean;\n /** Current value (required for min/max clamping to work correctly) */\n scrubValue?: number;\n /** Base value change per movement unit (default: 1) */\n scrubStep?: number;\n /** Pixels of movement per step - higher = less sensitive (default: 1) */\n scrubSensitivity?: number;\n /** Minimum allowed value */\n scrubMin?: number;\n /** Maximum allowed value */\n scrubMax?: number;\n /** Step multiplier when Shift is held (default: 10) */\n scrubShiftMultiplier?: number;\n /** Step multiplier when Alt/Option is held (default: 0.1) */\n scrubAltMultiplier?: number;\n /**\n * Callback fired during scrubbing with the value delta\n * @param delta - The change in value\n * @param isChanging - true while dragging, false when released\n */\n onScrub?: (delta: number, isChanging: boolean) => void;\n}\n\nexport type { TextFieldSlotScrubProps };\n\nexport { textFieldRootPropDefs, textFieldSlotPropDefs };\n"],
5
+ "mappings": "gKAOA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,SAAU,UAAW,OAAQ,QAAS,SAAS,EAE3DC,EAAwB,CAC5B,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQF,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,QAAS,EAEtF,MAAO,CAAE,KAAM,UAAW,QAAS,EAAM,EACzC,aAAc,CAAE,KAAM,SAAU,QAAS,MAAU,EACnD,SAAU,CAAE,KAAM,UAAW,QAAS,EAAM,EAE5C,mBAAoB,CAAE,KAAM,SAAU,QAAS,MAAU,EACzD,kBAAmB,CAAE,KAAM,SAAU,QAAS,MAAU,EACxD,GAAGE,EACH,GAAGC,CACL,EAUMC,EAAQ,CAAC,OAAQ,OAAO,EAExBC,EAAwB,CAC5B,KAAM,CAAE,KAAM,OAAQ,OAAQD,CAAM,EACpC,GAAGF,EACH,IAAKI,EAAa,IAClB,GAAIC,EAAgB,GACpB,GAAIA,EAAgB,GACpB,GAAIA,EAAgB,EACtB",
6
+ "names": ["sizes", "variants", "textFieldRootPropDefs", "colorPropDef", "radiusPropDef", "sides", "textFieldSlotPropDefs", "flexPropDefs", "paddingPropDefs"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as S}from"./chunk-T5DSQKKF.js";import{e as N}from"./chunk-3YLYGKFB.js";import{a as x}from"./chunk-UBSLEGQZ.js";import{a as C}from"./chunk-GSTOGDAJ.js";import*as t from"react";import L from"classnames";import{Slider as b}from"radix-ui";var W=t.forwardRef((A,V)=>{let v=N(A,S.size),{className:k,color:M,radius:w,tabIndex:y,...i}=x(v,S,C),{ticks:o,showTickLabels:D,snapToTicks:d,unit:l}=v,u=i.min??0,s=i.max??100,m=i.value??i.defaultValue??[u],R=Array.isArray(m)&&m.length>1,E=i.step,n=t.useMemo(()=>o?[...o].sort((e,r)=>e.value-r.value):[],[o]),T=t.useCallback(e=>{if(!d||!n.length)return e;let r=0,a=n.length-1;if(e<=n[r].value)return n[r].value;if(e>=n[a].value)return n[a].value;for(;r<=a;){let f=Math.floor((r+a)/2);if(n[f].value===e)return e;n[f].value<e?r=f+1:a=f-1}let j=Math.abs(e-n[a].value),G=Math.abs(e-n[r].value);return j<=G?n[a].value:n[r].value},[d,n]),h=t.useCallback(e=>{let r=a=>l?`${a} ${l}`:a.toString();return e.length===1?`${r(e[0])} out of ${r(s)}`:e.length===2?`${r(e[0])} to ${r(e[1])} out of ${r(s)}`:`${e.map(r).join(", ")} out of ${r(s)}`},[l,s]),$=t.useMemo(()=>o?o.map((e,r)=>({...e,percentage:(e.value-u)/(s-u)*100,index:r})):null,[o,u,s]),c=t.useRef(null),p=t.useRef(null),{onValueChange:g}=i,P=t.useCallback(e=>{let r=d&&o?e.map(a=>T(a)):e;if(c.current){let a=h(r);c.current.textContent=a,p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{c.current&&(c.current.textContent="")},1e3)}g?.(r)},[d,o,T,h,g]);return t.useEffect(()=>()=>{p.current&&clearTimeout(p.current)},[]),t.createElement("div",{className:"rt-SliderContainer"},t.createElement("div",{ref:c,"aria-live":"polite","aria-atomic":"true",className:"sr-only",style:{position:"absolute",left:"-10000px",width:"1px",height:"1px",overflow:"hidden"}}),t.createElement(b.Root,{"data-accent-color":M,"data-radius":w,ref:V,...i,step:E,onValueChange:P,asChild:!1,className:L("rt-SliderRoot",k),"aria-valuemin":u,"aria-valuemax":s,"aria-valuenow":Array.isArray(m)?m[0]:m,"aria-valuetext":h(m),"aria-label":v["aria-label"]||`${R?"Range":"Value"} slider`},t.createElement(b.Track,{className:"rt-SliderTrack"},t.createElement(b.Range,{className:"rt-SliderRange","data-inverted":i.inverted?"":void 0})),(i.value??i.defaultValue??[]).map((e,r)=>t.createElement(b.Thumb,{key:r,className:"rt-SliderThumb",...y!==void 0?{tabIndex:y}:void 0,"aria-label":R?`${r===0?"Minimum":r===1?"Maximum":`Thumb ${r+1}`} value: ${l?`${e} ${l}`:e}`:`Slider value: ${l?`${e} ${l}`:e}`,"aria-valuetext":l?`${e} ${l}`:e.toString()}))),$&&t.createElement("div",{className:"rt-SliderTicks",role:"group","aria-label":"Slider tick marks"},$.map(e=>t.createElement("button",{key:e.index,className:"rt-SliderTick",style:{left:`${e.percentage}%`,transform:"translateX(-50%)"},onClick:()=>{let r=i.value??i.defaultValue??[u],a=Array.isArray(r)?r.map(()=>e.value):[e.value];P(a)},"aria-label":`Set to ${e.label||(l?`${e.value} ${l}`:e.value)}`,"aria-describedby":e.label?void 0:`tick-${e.index}-value`,type:"button"},t.createElement("div",{className:"rt-SliderTickMark"}),e.label&&D!==!1&&t.createElement("div",{className:"rt-SliderTickLabel"},e.label),!e.label&&t.createElement("span",{id:`tick-${e.index}-value`,className:"sr-only"},l?`${e.value} ${l}`:e.value)))))});W.displayName="Slider";export{W as a};
2
+ //# sourceMappingURL=chunk-BN24ZBO7.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/slider.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Slider as SliderPrimitive } from 'radix-ui';\n\nimport { sliderPropDefs } from './slider.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype SliderElement = React.ElementRef<typeof SliderPrimitive.Root>;\ntype SliderOwnProps = GetPropDefTypes<typeof sliderPropDefs>;\ninterface SliderProps\n extends ComponentPropsWithout<\n typeof SliderPrimitive.Root,\n 'asChild' | 'color' | 'children' | 'defaultChecked'\n >,\n MarginProps,\n SliderOwnProps {\n ticks?: Array<{ value: number; label?: string }>;\n unit?: string;\n}\nconst Slider = React.forwardRef<SliderElement, SliderProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, sliderPropDefs.size);\n const { className, color, radius, tabIndex, ...sliderProps } = extractProps(\n props,\n sliderPropDefs,\n marginPropDefs,\n );\n const { ticks, showTickLabels, snapToTicks, unit } = props;\n\n const min = sliderProps.min ?? 0;\n const max = sliderProps.max ?? 100;\n\n // Current value for accessibility\n const currentValue = sliderProps.value ?? sliderProps.defaultValue ?? [min];\n const isRange = Array.isArray(currentValue) && currentValue.length > 1;\n\n // For snapping to ticks, we need to handle this differently\n // Radix slider doesn't support arbitrary step values, so we'll handle snapping in the onValueChange\n const step = sliderProps.step;\n\n // Optimized snap-to-ticks with memoized sorted ticks\n const sortedTicks = React.useMemo(\n () => (ticks ? [...ticks].sort((a, b) => a.value - b.value) : []),\n [ticks],\n );\n\n // Function to snap value to nearest tick (optimized)\n const snapToNearestTick = React.useCallback(\n (value: number): number => {\n if (!snapToTicks || !sortedTicks.length) return value;\n\n // Binary search for closest tick\n let left = 0;\n let right = sortedTicks.length - 1;\n\n if (value <= sortedTicks[left].value) return sortedTicks[left].value;\n if (value >= sortedTicks[right].value) return sortedTicks[right].value;\n\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n if (sortedTicks[mid].value === value) return value;\n\n if (sortedTicks[mid].value < value) {\n left = mid + 1;\n } else {\n right = mid - 1;\n }\n }\n\n // Find closest between left and right\n const leftDistance = Math.abs(value - sortedTicks[right].value);\n const rightDistance = Math.abs(value - sortedTicks[left].value);\n\n return leftDistance <= rightDistance ? sortedTicks[right].value : sortedTicks[left].value;\n },\n [snapToTicks, sortedTicks],\n );\n\n // Format value text for accessibility\n const formatValueText = React.useCallback(\n (values: number[]): string => {\n const formatValue = (val: number) => (unit ? `${val} ${unit}` : val.toString());\n\n if (values.length === 1) {\n return `${formatValue(values[0])} out of ${formatValue(max)}`;\n } else if (values.length === 2) {\n return `${formatValue(values[0])} to ${formatValue(values[1])} out of ${formatValue(max)}`;\n } else {\n return `${values.map(formatValue).join(', ')} out of ${formatValue(max)}`;\n }\n },\n [unit, max],\n );\n\n // Memoize tick elements for performance\n const tickElements = React.useMemo(() => {\n if (!ticks) return null;\n\n return ticks.map((tick, index) => ({\n ...tick,\n percentage: ((tick.value - min) / (max - min)) * 100,\n index,\n }));\n }, [ticks, min, max]);\n\n // Live region ref for accessibility announcements (no state = no re-renders)\n const announceRef = React.useRef<HTMLDivElement>(null);\n const announceTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const { onValueChange } = sliderProps;\n // Handle value changes with snapping\n const handleValueChange = React.useCallback(\n (newValue: number[]) => {\n const finalValue =\n snapToTicks && ticks ? newValue.map((v) => snapToNearestTick(v)) : newValue;\n\n // Update live region for screen readers (direct DOM update, no React state)\n if (announceRef.current) {\n const valueText = formatValueText(finalValue);\n announceRef.current.textContent = valueText;\n\n // Clear after delay to prevent spam\n if (announceTimeoutRef.current) {\n clearTimeout(announceTimeoutRef.current);\n }\n announceTimeoutRef.current = setTimeout(() => {\n if (announceRef.current) {\n announceRef.current.textContent = '';\n }\n }, 1000);\n }\n\n onValueChange?.(finalValue);\n },\n [snapToTicks, ticks, snapToNearestTick, formatValueText, onValueChange],\n );\n\n // Cleanup timeout on unmount\n React.useEffect(() => {\n return () => {\n if (announceTimeoutRef.current) {\n clearTimeout(announceTimeoutRef.current);\n }\n };\n }, []);\n\n return (\n <div className=\"rt-SliderContainer\">\n {/* Live region for screen reader announcements */}\n <div\n ref={announceRef}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"sr-only\"\n style={{\n position: 'absolute',\n left: '-10000px',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n }}\n />\n\n <SliderPrimitive.Root\n data-accent-color={color}\n data-radius={radius}\n ref={forwardedRef}\n {...sliderProps}\n step={step}\n onValueChange={handleValueChange}\n asChild={false}\n className={classNames('rt-SliderRoot', className)}\n // Essential ARIA attributes for WCAG 2.2 AA compliance\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={Array.isArray(currentValue) ? currentValue[0] : (currentValue as number)}\n aria-valuetext={formatValueText(currentValue as number[])}\n aria-label={props['aria-label'] || `${isRange ? 'Range' : 'Value'} slider`}\n >\n <SliderPrimitive.Track className=\"rt-SliderTrack\">\n <SliderPrimitive.Range\n className=\"rt-SliderRange\"\n data-inverted={sliderProps.inverted ? '' : undefined}\n />\n </SliderPrimitive.Track>\n {(sliderProps.value ?? sliderProps.defaultValue ?? []).map((value, index) => (\n <SliderPrimitive.Thumb\n key={index}\n className=\"rt-SliderThumb\"\n {...(tabIndex !== undefined ? { tabIndex } : undefined)}\n aria-label={\n isRange\n ? `${index === 0 ? 'Minimum' : index === 1 ? 'Maximum' : `Thumb ${index + 1}`} value: ${unit ? `${value} ${unit}` : value}`\n : `Slider value: ${unit ? `${value} ${unit}` : value}`\n }\n aria-valuetext={unit ? `${value} ${unit}` : value.toString()}\n />\n ))}\n </SliderPrimitive.Root>\n {tickElements && (\n <div className=\"rt-SliderTicks\" role=\"group\" aria-label=\"Slider tick marks\">\n {tickElements.map((tick) => {\n return (\n <button\n key={tick.index}\n className=\"rt-SliderTick\"\n style={{\n left: `${tick.percentage}%`,\n transform: 'translateX(-50%)',\n }}\n onClick={() => {\n const currentValues = sliderProps.value ?? sliderProps.defaultValue ?? [min];\n const newValue = Array.isArray(currentValues)\n ? currentValues.map(() => tick.value)\n : [tick.value];\n\n handleValueChange(newValue);\n }}\n aria-label={`Set to ${tick.label || (unit ? `${tick.value} ${unit}` : tick.value)}`}\n aria-describedby={tick.label ? undefined : `tick-${tick.index}-value`}\n type=\"button\"\n >\n <div className=\"rt-SliderTickMark\" />\n {tick.label && showTickLabels !== false && (\n <div className=\"rt-SliderTickLabel\">{tick.label}</div>\n )}\n {!tick.label && (\n <span id={`tick-${tick.index}-value`} className=\"sr-only\">\n {unit ? `${tick.value} ${unit}` : tick.value}\n </span>\n )}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n});\nSlider.displayName = 'Slider';\n\nexport { Slider };\nexport type { SliderProps };\n"],
5
+ "mappings": "gKAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,UAAUC,MAAuB,WAuB1C,IAAMC,EAAe,aAAuC,CAACC,EAAUC,IAAiB,CACtF,IAAMC,EAAQC,EAAkBH,EAAUI,EAAe,IAAI,EACvD,CAAE,UAAAC,EAAW,MAAAC,EAAO,OAAAC,EAAQ,SAAAC,EAAU,GAAGC,CAAY,EAAIC,EAC7DR,EACAE,EACAO,CACF,EACM,CAAE,MAAAC,EAAO,eAAAC,EAAgB,YAAAC,EAAa,KAAAC,CAAK,EAAIb,EAE/Cc,EAAMP,EAAY,KAAO,EACzBQ,EAAMR,EAAY,KAAO,IAGzBS,EAAeT,EAAY,OAASA,EAAY,cAAgB,CAACO,CAAG,EACpEG,EAAU,MAAM,QAAQD,CAAY,GAAKA,EAAa,OAAS,EAI/DE,EAAOX,EAAY,KAGnBY,EAAoB,UACxB,IAAOT,EAAQ,CAAC,GAAGA,CAAK,EAAE,KAAK,CAACU,EAAGC,IAAMD,EAAE,MAAQC,EAAE,KAAK,EAAI,CAAC,EAC/D,CAACX,CAAK,CACR,EAGMY,EAA0B,cAC7BC,GAA0B,CACzB,GAAI,CAACX,GAAe,CAACO,EAAY,OAAQ,OAAOI,EAGhD,IAAIC,EAAO,EACPC,EAAQN,EAAY,OAAS,EAEjC,GAAII,GAASJ,EAAYK,CAAI,EAAE,MAAO,OAAOL,EAAYK,CAAI,EAAE,MAC/D,GAAID,GAASJ,EAAYM,CAAK,EAAE,MAAO,OAAON,EAAYM,CAAK,EAAE,MAEjE,KAAOD,GAAQC,GAAO,CACpB,IAAMC,EAAM,KAAK,OAAOF,EAAOC,GAAS,CAAC,EACzC,GAAIN,EAAYO,CAAG,EAAE,QAAUH,EAAO,OAAOA,EAEzCJ,EAAYO,CAAG,EAAE,MAAQH,EAC3BC,EAAOE,EAAM,EAEbD,EAAQC,EAAM,CAElB,CAGA,IAAMC,EAAe,KAAK,IAAIJ,EAAQJ,EAAYM,CAAK,EAAE,KAAK,EACxDG,EAAgB,KAAK,IAAIL,EAAQJ,EAAYK,CAAI,EAAE,KAAK,EAE9D,OAAOG,GAAgBC,EAAgBT,EAAYM,CAAK,EAAE,MAAQN,EAAYK,CAAI,EAAE,KACtF,EACA,CAACZ,EAAaO,CAAW,CAC3B,EAGMU,EAAwB,cAC3BC,GAA6B,CAC5B,IAAMC,EAAeC,GAAiBnB,EAAO,GAAGmB,CAAG,IAAInB,CAAI,GAAKmB,EAAI,SAAS,EAE7E,OAAIF,EAAO,SAAW,EACb,GAAGC,EAAYD,EAAO,CAAC,CAAC,CAAC,WAAWC,EAAYhB,CAAG,CAAC,GAClDe,EAAO,SAAW,EACpB,GAAGC,EAAYD,EAAO,CAAC,CAAC,CAAC,OAAOC,EAAYD,EAAO,CAAC,CAAC,CAAC,WAAWC,EAAYhB,CAAG,CAAC,GAEjF,GAAGe,EAAO,IAAIC,CAAW,EAAE,KAAK,IAAI,CAAC,WAAWA,EAAYhB,CAAG,CAAC,EAE3E,EACA,CAACF,EAAME,CAAG,CACZ,EAGMkB,EAAqB,UAAQ,IAC5BvB,EAEEA,EAAM,IAAI,CAACwB,EAAMC,KAAW,CACjC,GAAGD,EACH,YAAcA,EAAK,MAAQpB,IAAQC,EAAMD,GAAQ,IACjD,MAAAqB,CACF,EAAE,EANiB,KAOlB,CAACzB,EAAOI,EAAKC,CAAG,CAAC,EAGdqB,EAAoB,SAAuB,IAAI,EAC/CC,EAA2B,SAA6C,IAAI,EAE5E,CAAE,cAAAC,CAAc,EAAI/B,EAEpBgC,EAA0B,cAC7BC,GAAuB,CACtB,IAAMC,EACJ7B,GAAeF,EAAQ8B,EAAS,IAAKE,GAAMpB,EAAkBoB,CAAC,CAAC,EAAIF,EAGrE,GAAIJ,EAAY,QAAS,CACvB,IAAMO,EAAYd,EAAgBY,CAAU,EAC5CL,EAAY,QAAQ,YAAcO,EAG9BN,EAAmB,SACrB,aAAaA,EAAmB,OAAO,EAEzCA,EAAmB,QAAU,WAAW,IAAM,CACxCD,EAAY,UACdA,EAAY,QAAQ,YAAc,GAEtC,EAAG,GAAI,CACT,CAEAE,IAAgBG,CAAU,CAC5B,EACA,CAAC7B,EAAaF,EAAOY,EAAmBO,EAAiBS,CAAa,CACxE,EAGA,OAAM,YAAU,IACP,IAAM,CACPD,EAAmB,SACrB,aAAaA,EAAmB,OAAO,CAE3C,EACC,CAAC,CAAC,EAGH,gBAAC,OAAI,UAAU,sBAEb,gBAAC,OACC,IAAKD,EACL,YAAU,SACV,cAAY,OACZ,UAAU,UACV,MAAO,CACL,SAAU,WACV,KAAM,WACN,MAAO,MACP,OAAQ,MACR,SAAU,QACZ,EACF,EAEA,gBAACQ,EAAgB,KAAhB,CACC,oBAAmBxC,EACnB,cAAaC,EACb,IAAKN,EACJ,GAAGQ,EACJ,KAAMW,EACN,cAAeqB,EACf,QAAS,GACT,UAAWM,EAAW,gBAAiB1C,CAAS,EAEhD,gBAAeW,EACf,gBAAeC,EACf,gBAAe,MAAM,QAAQC,CAAY,EAAIA,EAAa,CAAC,EAAKA,EAChE,iBAAgBa,EAAgBb,CAAwB,EACxD,aAAYhB,EAAM,YAAY,GAAK,GAAGiB,EAAU,QAAU,OAAO,WAEjE,gBAAC2B,EAAgB,MAAhB,CAAsB,UAAU,kBAC/B,gBAACA,EAAgB,MAAhB,CACC,UAAU,iBACV,gBAAerC,EAAY,SAAW,GAAK,OAC7C,CACF,GACEA,EAAY,OAASA,EAAY,cAAgB,CAAC,GAAG,IAAI,CAACgB,EAAOY,IACjE,gBAACS,EAAgB,MAAhB,CACC,IAAKT,EACL,UAAU,iBACT,GAAI7B,IAAa,OAAY,CAAE,SAAAA,CAAS,EAAI,OAC7C,aACEW,EACI,GAAGkB,IAAU,EAAI,UAAYA,IAAU,EAAI,UAAY,SAASA,EAAQ,CAAC,EAAE,WAAWtB,EAAO,GAAGU,CAAK,IAAIV,CAAI,GAAKU,CAAK,GACvH,iBAAiBV,EAAO,GAAGU,CAAK,IAAIV,CAAI,GAAKU,CAAK,GAExD,iBAAgBV,EAAO,GAAGU,CAAK,IAAIV,CAAI,GAAKU,EAAM,SAAS,EAC7D,CACD,CACH,EACCU,GACC,gBAAC,OAAI,UAAU,iBAAiB,KAAK,QAAQ,aAAW,qBACrDA,EAAa,IAAKC,GAEf,gBAAC,UACC,IAAKA,EAAK,MACV,UAAU,gBACV,MAAO,CACL,KAAM,GAAGA,EAAK,UAAU,IACxB,UAAW,kBACb,EACA,QAAS,IAAM,CACb,IAAMY,EAAgBvC,EAAY,OAASA,EAAY,cAAgB,CAACO,CAAG,EACrE0B,EAAW,MAAM,QAAQM,CAAa,EACxCA,EAAc,IAAI,IAAMZ,EAAK,KAAK,EAClC,CAACA,EAAK,KAAK,EAEfK,EAAkBC,CAAQ,CAC5B,EACA,aAAY,UAAUN,EAAK,QAAUrB,EAAO,GAAGqB,EAAK,KAAK,IAAIrB,CAAI,GAAKqB,EAAK,MAAM,GACjF,mBAAkBA,EAAK,MAAQ,OAAY,QAAQA,EAAK,KAAK,SAC7D,KAAK,UAEL,gBAAC,OAAI,UAAU,oBAAoB,EAClCA,EAAK,OAASvB,IAAmB,IAChC,gBAAC,OAAI,UAAU,sBAAsBuB,EAAK,KAAM,EAEjD,CAACA,EAAK,OACL,gBAAC,QAAK,GAAI,QAAQA,EAAK,KAAK,SAAU,UAAU,WAC7CrB,EAAO,GAAGqB,EAAK,KAAK,IAAIrB,CAAI,GAAKqB,EAAK,KACzC,CAEJ,CAEH,CACH,CAEJ,CAEJ,CAAC,EACDrC,EAAO,YAAc",
6
+ "names": ["React", "classNames", "SliderPrimitive", "Slider", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "sliderPropDefs", "className", "color", "radius", "tabIndex", "sliderProps", "extractProps", "marginPropDefs", "ticks", "showTickLabels", "snapToTicks", "unit", "min", "max", "currentValue", "isRange", "step", "sortedTicks", "a", "b", "snapToNearestTick", "value", "left", "right", "mid", "leftDistance", "rightDistance", "formatValueText", "values", "formatValue", "val", "tickElements", "tick", "index", "announceRef", "announceTimeoutRef", "onValueChange", "handleValueChange", "newValue", "finalValue", "v", "valueText", "SliderPrimitive", "classNames", "currentValues"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as b}from"./chunk-K7VO7TND.js";import{a as C}from"./chunk-KPPIW4OJ.js";import{a as S}from"./chunk-7FZPCM7W.js";import{a as v}from"./chunk-O6K6RZXY.js";import{f as x}from"./chunk-DJFTDR6Y.js";import{d as B}from"./chunk-3YLYGKFB.js";import{a as R}from"./chunk-UBSLEGQZ.js";import{a as y}from"./chunk-GSTOGDAJ.js";import*as o from"react";import T from"classnames";import{Toolbar as P}from"radix-ui";var z=o.createContext(null),G=o.createContext(null);function u(t){let r=o.useContext(z);if(!r)throw new Error(`${t} must be rendered inside a Toolbar.`);return r}var d=o.forwardRef((t,r)=>{let e=x(),a=B(t.size??e??void 0,b.size),s=t.orientation??b.orientation.default,{className:n,orientation:p,backdrop:i=!1,children:m,...c}=R({...t,size:a},b,y),l=o.useMemo(()=>({size:a,orientation:s,backdrop:i}),[a,s,i]);return o.createElement(P.Root,{...c,ref:r,orientation:s,"data-backdrop":i||void 0,className:T("rt-Toolbar",n)},o.createElement(z.Provider,{value:l},m))});d.displayName="Toolbar";var N=o.forwardRef(({className:t,disabled:r=!1,children:e,...a},s)=>{let{orientation:n}=u("ToolbarGroup"),p=o.useMemo(()=>({disabled:r}),[r]);return o.createElement("div",{role:"group","data-orientation":n,"data-disabled":r||void 0,...a,ref:s,className:T("rt-ToolbarGroup",t)},o.createElement(G.Provider,{value:p},e))});N.displayName="Toolbar.Group";function M(t){return t===!0||t==="true"}var h=o.forwardRef((t,r)=>{let e=u("ToolbarButton"),a=o.useContext(G),{iconOnly:s,size:n,variant:p,emphasis:i,color:m,disabled:c,...l}=t,D=M(t["aria-pressed"]),w="data-state"in t||t["aria-pressed"]===void 0?{}:{"data-state":D?"on":"off"},f={size:n??e.size,...i!==void 0?{emphasis:i}:{variant:p??(a?"ghost":e.backdrop?"raised":"soft")},color:m??(p||i?void 0:"gray"),...w};return o.createElement(P.Button,{asChild:!0,ref:r,disabled:c||a?.disabled||void 0},s?o.createElement(C,{...l,...f}):o.createElement(S,{...l,...f}))});h.displayName="Toolbar.Button";var g=o.forwardRef(({className:t,...r},e)=>(u("ToolbarSeparator"),o.createElement(P.Separator,{...r,ref:e,className:T("rt-ToolbarSeparator",t)})));g.displayName="Toolbar.Separator";var k={1:"2",2:"3",3:"4",4:"5"},O=o.forwardRef(({className:t,children:r,style:e,id:a},s)=>{let{size:n}=u("ToolbarTitle");return r==null||r===!1?null:o.createElement(v,{ref:s,as:"span",size:k[n],weight:"medium",truncate:!0,id:a,style:e,className:T("rt-ToolbarTitle",t)},r)});O.displayName="Toolbar.Title";var $=Object.assign(d,{Root:d,Group:N,Button:h,Separator:g,Title:O});export{d as a,N as b,h as c,g as d,O as e,$ as f};
2
+ //# sourceMappingURL=chunk-BZ6YBP2S.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/toolbar.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Toolbar as ToolbarPrimitive } from 'radix-ui';\n\nimport { toolbarRootPropDefs } from './toolbar.props.js';\nimport { Button } from './button.js';\nimport { IconButton } from './icon-button.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSize } from '../helpers/theme-size.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { usePaneBandSize } from './_internal/pane-chrome.js';\n\nimport type { ButtonProps } from './button.js';\nimport type { TextProps } from './text.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ButtonRankProps } from './button.js';\n\n/*\n * Toolbar takes Kookie UI v2's contract (v2: components/toolbar), built on Radix instead of\n * Base UI. A toolbar is a row of controls with ONE tab stop: `role=\"toolbar\"`, and the arrow\n * keys move focus between its controls. That keyboard is the reason it is a component.\n *\n * Its `size` reaches every control inside it that does not state its own. The row itself paints\n * nothing; a `ToolbarGroup` draws a quiet well around controls that belong together, and a\n * `ToolbarSeparator` draws a gray hairline between clusters. Use a `Flex` to cluster controls\n * without a well: the row spaces the clusters with `space-between`.\n */\n\ntype ToolbarSize = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['size']>;\ntype ToolbarOrientation = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['orientation']>;\n\ninterface ToolbarContextValue {\n size: ToolbarSize;\n orientation: ToolbarOrientation;\n backdrop: boolean;\n}\n\nconst ToolbarContext = React.createContext<ToolbarContextValue | null>(null);\n\n/** Set by a `ToolbarGroup`: its children rest quiet, and `disabled` turns them all off. */\nconst ToolbarGroupContext = React.createContext<{ disabled: boolean } | null>(null);\n\nfunction useToolbarContext(consumer: string): ToolbarContextValue {\n const context = React.useContext(ToolbarContext);\n if (!context) {\n throw new Error(`${consumer} must be rendered inside a Toolbar.`);\n }\n return context;\n}\n\n// ============================================================================\n// Toolbar (root)\n// ============================================================================\n\ntype ToolbarOwnProps = GetPropDefTypes<typeof toolbarRootPropDefs>;\n\ninterface ToolbarProps\n extends ComponentPropsWithout<typeof ToolbarPrimitive.Root, RemovedProps | 'orientation'>,\n ToolbarOwnProps,\n MarginProps {\n /**\n * Gives every control a surface of its own, for a row that content passes behind, such as\n * `Shell.PaneHeader float`. Buttons rest `raised` instead of `soft`, and a group's well is\n * solid and raised.\n */\n backdrop?: boolean;\n}\n\n/**\n * A row of controls with one keyboard tab stop. The arrow keys move focus between the controls.\n *\n * Give it an `aria-label` (or `aria-labelledby`) that says what the controls act on.\n *\n * @example\n * ```tsx\n * <Toolbar aria-label=\"Formatting\">\n * <ToolbarGroup>\n * <ToolbarButton iconOnly aria-label=\"Bold\" aria-pressed={bold} onClick={toggleBold}>\n * <HugeiconsIcon icon={TextBoldIcon} strokeWidth={1.75} />\n * </ToolbarButton>\n * </ToolbarGroup>\n * <ToolbarSeparator />\n * <ToolbarButton>Share</ToolbarButton>\n * </Toolbar>\n * ```\n */\nconst ToolbarRoot = React.forwardRef<HTMLDivElement, ToolbarProps>((props, forwardedRef) => {\n // In a Shell pane's header or footer, a toolbar with no size rests one step above the Shell's.\n const band = usePaneBandSize();\n // Elsewhere it takes the nearest Theme's size.\n const size: ToolbarSize = useThemeSize(props.size ?? band ?? undefined, toolbarRootPropDefs.size);\n const orientation: ToolbarOrientation = props.orientation ?? toolbarRootPropDefs.orientation.default;\n const { className, orientation: _orientation, backdrop = false, children, ...rootProps } = extractProps(\n { ...props, size },\n toolbarRootPropDefs,\n marginPropDefs,\n );\n\n const context = React.useMemo(() => ({ size, orientation, backdrop }), [size, orientation, backdrop]);\n\n return (\n <ToolbarPrimitive.Root\n {...rootProps}\n ref={forwardedRef}\n orientation={orientation}\n data-backdrop={backdrop || undefined}\n className={classNames('rt-Toolbar', className)}\n >\n <ToolbarContext.Provider value={context}>{children}</ToolbarContext.Provider>\n </ToolbarPrimitive.Root>\n );\n});\nToolbarRoot.displayName = 'Toolbar';\n\n// ============================================================================\n// ToolbarGroup\n// ============================================================================\n\ninterface ToolbarGroupProps extends ComponentPropsWithout<'div', RemovedProps> {\n /** Turns every control in the group off at once. */\n disabled?: boolean;\n}\n\n/**\n * Controls that belong together, drawn as one quiet well that stands level with a button\n * beside it. Buttons inside it rest as `ghost` unless they state a `variant`.\n * To cluster controls without a well, use a `Flex`.\n */\nconst ToolbarGroup = React.forwardRef<HTMLDivElement, ToolbarGroupProps>(\n ({ className, disabled = false, children, ...props }, forwardedRef) => {\n const { orientation } = useToolbarContext('ToolbarGroup');\n const group = React.useMemo(() => ({ disabled }), [disabled]);\n return (\n <div\n role=\"group\"\n data-orientation={orientation}\n data-disabled={disabled || undefined}\n {...props}\n ref={forwardedRef}\n className={classNames('rt-ToolbarGroup', className)}\n >\n <ToolbarGroupContext.Provider value={group}>{children}</ToolbarGroupContext.Provider>\n </div>\n );\n },\n);\nToolbarGroup.displayName = 'Toolbar.Group';\n\n// ============================================================================\n// ToolbarButton\n// ============================================================================\n\ntype ToolbarButtonBaseProps = Omit<ButtonProps, 'as' | 'asChild' | 'variant' | 'emphasis'>;\n\n/** A labelled button: takes every `Button` prop. */\ntype ToolbarTextButtonProps = ToolbarButtonBaseProps &\n ButtonRankProps & {\n iconOnly?: false;\n};\n\n/** An icon-only button: renders an `IconButton`, and the type requires an `aria-label`. */\ntype ToolbarIconButtonProps = Omit<ToolbarButtonBaseProps, 'aria-label' | 'aria-labelledby' | 'fullWidth'> &\n ButtonRankProps & {\n iconOnly: true;\n /** The control's accessible name. An icon has no words of its own, so this is required. */\n 'aria-label': string;\n};\n\ntype ToolbarButtonProps = ToolbarTextButtonProps | ToolbarIconButtonProps;\n\nfunction isPressed(value: React.AriaAttributes['aria-pressed']) {\n return value === true || value === 'true';\n}\n\n/**\n * A `Button` that joins the toolbar's keyboard navigation, so a row of them is one tab stop.\n *\n * Set `iconOnly` (with an `aria-label`) for a symbol-only control. Set `aria-pressed` for a\n * control that toggles; a pressed button wears Button's pressed look.\n *\n * It takes the toolbar's `size`, and rests as a gray `soft` button (`raised` in a toolbar with\n * `backdrop`, gray `ghost` inside a `ToolbarGroup`). A stated `size`, `variant` or `color` wins; a stated `variant` without a\n * `color` takes Button's own default colour. It throws outside a `Toolbar`.\n */\nconst ToolbarButton = React.forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n const toolbar = useToolbarContext('ToolbarButton');\n const group = React.useContext(ToolbarGroupContext);\n const { iconOnly, size, variant, emphasis, color, disabled, ...rest } = props;\n\n const pressed = isPressed(props['aria-pressed']);\n const stateProps =\n 'data-state' in props || props['aria-pressed'] === undefined ? {} : { 'data-state': pressed ? 'on' : 'off' };\n\n const shared = {\n size: size ?? toolbar.size,\n // A caller states the look by `variant` or the rank by `emphasis`, never both.\n ...(emphasis !== undefined ? { emphasis } : { variant: variant ?? (group ? 'ghost' : toolbar.backdrop ? 'raised' : 'soft') }),\n // The gray rest is a pair with the default variant: a caller who states a variant or an\n // emphasis gets Button's own colour for it unless they state a colour too.\n color: color ?? (variant || emphasis ? undefined : 'gray'),\n ...stateProps,\n } as const;\n\n return (\n <ToolbarPrimitive.Button asChild ref={forwardedRef} disabled={disabled || group?.disabled || undefined}>\n {iconOnly ? (\n <IconButton {...(rest as Omit<ToolbarIconButtonProps, 'iconOnly' | 'variant' | 'emphasis'>)} {...shared} />\n ) : (\n <Button {...(rest as Omit<ToolbarTextButtonProps, 'iconOnly' | 'variant' | 'emphasis'>)} {...shared} />\n )}\n </ToolbarPrimitive.Button>\n );\n});\nToolbarButton.displayName = 'Toolbar.Button';\n\n// ============================================================================\n// ToolbarSeparator\n// ============================================================================\n\ntype ToolbarSeparatorProps = ComponentPropsWithout<typeof ToolbarPrimitive.Separator, RemovedProps | 'orientation'>;\n\n/**\n * A gray hairline between two clusters, announced as a separator. Its direction is always\n * opposite to the toolbar's.\n */\nconst ToolbarSeparator = React.forwardRef<HTMLDivElement, ToolbarSeparatorProps>(\n ({ className, ...props }, forwardedRef) => {\n useToolbarContext('ToolbarSeparator');\n return (\n <ToolbarPrimitive.Separator\n {...props}\n ref={forwardedRef}\n className={classNames('rt-ToolbarSeparator', className)}\n />\n );\n },\n);\nToolbarSeparator.displayName = 'Toolbar.Separator';\n\n// ============================================================================\n// ToolbarTitle\n// ============================================================================\n\n/** The title's text step: one step above the label of a button at the same size. */\nconst TITLE_SIZE = { '1': '2', '2': '3', '3': '4', '4': '5' } as const satisfies Record<ToolbarSize, TextProps['size']>;\n\ninterface ToolbarTitleProps {\n /** The title text. With none, the title renders nothing. */\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n /** The id of the title, so that the toolbar's `aria-labelledby` can point at it. */\n id?: string;\n}\n\n/**\n * What the row is about, at its leading edge. One line: it truncates rather than wrapping.\n * Its text step follows the toolbar's `size`, and it takes more air from the controls beside it\n * than they take from each other.\n */\nconst ToolbarTitle = React.forwardRef<HTMLSpanElement, ToolbarTitleProps>(\n ({ className, children, style, id }, forwardedRef) => {\n const { size } = useToolbarContext('ToolbarTitle');\n if (children === undefined || children === null || children === false) return null;\n return (\n <Text\n ref={forwardedRef}\n as=\"span\"\n size={TITLE_SIZE[size]}\n weight=\"medium\"\n truncate\n id={id}\n style={style}\n className={classNames('rt-ToolbarTitle', className)}\n >\n {children}\n </Text>\n );\n },\n);\nToolbarTitle.displayName = 'Toolbar.Title';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst Toolbar = Object.assign(ToolbarRoot, {\n Root: ToolbarRoot,\n Group: ToolbarGroup,\n Button: ToolbarButton,\n Separator: ToolbarSeparator,\n Title: ToolbarTitle,\n});\n\nexport {\n Toolbar,\n ToolbarGroup,\n ToolbarButton,\n ToolbarSeparator,\n ToolbarTitle,\n ToolbarRoot as Root,\n ToolbarGroup as Group,\n ToolbarButton as Button,\n ToolbarSeparator as Separator,\n ToolbarTitle as Title,\n};\nexport type {\n ToolbarProps,\n ToolbarGroupProps,\n ToolbarButtonProps,\n ToolbarSeparatorProps,\n ToolbarTitleProps,\n ToolbarProps as RootProps,\n ToolbarGroupProps as GroupProps,\n ToolbarButtonProps as ButtonProps,\n ToolbarSeparatorProps as SeparatorProps,\n ToolbarTitleProps as TitleProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "classNames", "ToolbarPrimitive", "ToolbarContext", "ToolbarGroupContext", "useToolbarContext", "consumer", "context", "ToolbarRoot", "props", "forwardedRef", "band", "usePaneBandSize", "size", "useThemeSize", "toolbarRootPropDefs", "orientation", "className", "_orientation", "backdrop", "children", "rootProps", "extractProps", "marginPropDefs", "ToolbarPrimitive", "classNames", "ToolbarGroup", "disabled", "group", "isPressed", "value", "ToolbarButton", "toolbar", "iconOnly", "variant", "emphasis", "color", "rest", "pressed", "stateProps", "shared", "IconButton", "Button", "ToolbarSeparator", "TITLE_SIZE", "ToolbarTitle", "style", "id", "Text", "Toolbar"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{z as e}from"zod";var t=e.object({as:e.string().optional().describe("HTML element type to render as"),asChild:e.boolean().optional().describe("Merge props with child element instead of rendering wrapper"),size:e.union([e.enum(["1","2","3","4"]),e.object({initial:e.enum(["1","2","3","4"]).optional(),sm:e.enum(["1","2","3","4"]).optional(),md:e.enum(["1","2","3","4"]).optional(),lg:e.enum(["1","2","3","4"]).optional(),xl:e.enum(["1","2","3","4"]).optional()})]).default("2").describe("Button size for responsive design and interface density"),variant:e.enum(["raised","solid","soft","surface","outline","ghost"]).default("solid").describe("Visual variant that determines the button's appearance and context"),color:e.enum(["tomato","red","ruby","crimson","pink","plum","purple","violet","iris","indigo","blue","cyan","teal","jade","green","grass","brown","orange","sky","mint","lime","yellow","amber","gold","bronze","gray"]).optional().describe("Accent color for the button"),radius:e.enum(["none","small","medium","large","full"]).optional().describe("Border radius for the button"),loading:e.boolean().optional().default(!1).describe("Loading state that shows a spinner and disables interaction"),flush:e.boolean().optional().default(!1).describe("Flush mode that removes visual padding for seamless text integration"),disabled:e.boolean().optional().default(!1).describe("Disabled state"),type:e.enum(["button","submit","reset"]).optional().describe("Type attribute for form buttons"),className:e.string().optional().describe("Additional CSS class name"),style:e.record(e.string(),e.union([e.string(),e.number()])).optional().describe("Inline styles"),onClick:e.function().optional().describe("Click handler"),onFocus:e.function().optional().describe("Focus handler"),onBlur:e.function().optional().describe("Blur handler"),onMouseEnter:e.function().optional().describe("Mouse enter handler"),onMouseLeave:e.function().optional().describe("Mouse leave handler"),onKeyDown:e.function().optional().describe("Key down handler"),onKeyUp:e.function().optional().describe("Key up handler"),onSubmit:e.function().optional().describe("Form submission handler"),tabIndex:e.number().optional().describe("Tab index for keyboard navigation"),"aria-label":e.string().optional().describe("ARIA label for accessibility"),"aria-labelledby":e.string().optional().describe("ARIA labelled by reference"),"aria-describedby":e.string().optional().describe("ARIA described by reference"),"aria-expanded":e.boolean().optional().describe("ARIA expanded state"),"aria-pressed":e.boolean().optional().describe("ARIA pressed state"),"aria-current":e.union([e.boolean(),e.enum(["page","step","location","date","time"])]).optional().describe("ARIA current state"),"aria-controls":e.string().optional().describe("ARIA controls reference"),"aria-owns":e.string().optional().describe("ARIA owns reference"),"data-*":e.record(e.string(),e.string()).optional().describe("Data attributes"),id:e.string().optional().describe("ID attribute"),title:e.string().optional().describe("Title attribute for tooltip"),role:e.string().optional().describe("Role attribute"),children:e.any().optional().describe("Children elements")}).strict();function i(o){return o}export{t as a,i as b};
2
+ //# sourceMappingURL=chunk-CC4GNSKL.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/schemas/base-button.schema.ts"],
4
+ "sourcesContent": ["import { z } from 'zod';\n\n/**\n * BaseButton Zod schema - Single source of truth for all button component props\n *\n * This schema defines the core button functionality used by Button, IconButton,\n * ToggleButton, and ToggleIconButton components. It ensures consistency across\n * the design system and provides machine-readable validation.\n *\n * @example\n * ```tsx\n * // Basic validation\n * const props = BaseButtonSchema.parse({ size: '2', variant: 'solid' });\n *\n * // With responsive props\n * const responsiveProps = BaseButtonSchema.parse({\n * size: { initial: '1', sm: '2', md: '3' },\n * variant: 'solid'\n * });\n * ```\n */\nexport const BaseButtonSchema = z\n .object({\n /**\n * Polymorphic rendering - render as different HTML elements\n * @default 'button'\n */\n as: z.string().optional().describe('HTML element type to render as'),\n\n /**\n * Use asChild to merge props with child element\n * @default false\n */\n asChild: z\n .boolean()\n .optional()\n .describe('Merge props with child element instead of rendering wrapper'),\n\n /**\n * Button size for responsive design and interface density\n * Supports responsive objects: { initial: '1', sm: '2', md: '3', lg: '4' }\n * @default '2'\n */\n size: z\n .union([\n z.enum(['1', '2', '3', '4']),\n z.object({\n initial: z.enum(['1', '2', '3', '4']).optional(),\n sm: z.enum(['1', '2', '3', '4']).optional(),\n md: z.enum(['1', '2', '3', '4']).optional(),\n lg: z.enum(['1', '2', '3', '4']).optional(),\n xl: z.enum(['1', '2', '3', '4']).optional(),\n }),\n ])\n .default('2')\n .describe('Button size for responsive design and interface density'),\n\n /**\n * Visual variant that determines the button's appearance and context\n * @default 'solid'\n */\n variant: z\n .enum(['raised', 'solid', 'soft', 'surface', 'outline', 'ghost'])\n .default('solid')\n .describe(\"Visual variant that determines the button's appearance and context\"),\n\n /**\n * Accent color for the button\n */\n color: z\n .enum([\n 'tomato',\n 'red',\n 'ruby',\n 'crimson',\n 'pink',\n 'plum',\n 'purple',\n 'violet',\n 'iris',\n 'indigo',\n 'blue',\n 'cyan',\n 'teal',\n 'jade',\n 'green',\n 'grass',\n 'brown',\n 'orange',\n 'sky',\n 'mint',\n 'lime',\n 'yellow',\n 'amber',\n 'gold',\n 'bronze',\n 'gray',\n ])\n .optional()\n .describe('Accent color for the button'),\n\n /**\n * Border radius for the button\n */\n radius: z\n .enum(['none', 'small', 'medium', 'large', 'full'])\n .optional()\n .describe('Border radius for the button'),\n\n /**\n * Loading state that shows a spinner and disables interaction\n * Automatically sets disabled=true and provides accessibility announcements\n * @default false\n */\n loading: z\n .boolean()\n .optional()\n .default(false)\n .describe('Loading state that shows a spinner and disables interaction'),\n\n /**\n * Flush mode that removes visual padding for seamless text integration\n * Only effective with ghost variant\n * @default false\n */\n flush: z\n .boolean()\n .optional()\n .default(false)\n .describe('Flush mode that removes visual padding for seamless text integration'),\n\n /**\n * Disabled state\n * @default false\n */\n disabled: z.boolean().optional().default(false).describe('Disabled state'),\n\n /**\n * Type attribute for form buttons\n * @default 'button'\n */\n type: z\n .enum(['button', 'submit', 'reset'])\n .optional()\n .describe('Type attribute for form buttons'),\n\n /**\n * Additional CSS class name\n */\n className: z.string().optional().describe('Additional CSS class name'),\n\n /**\n * Inline styles\n */\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n\n /**\n * Click handler\n */\n onClick: z.function().optional().describe('Click handler'),\n\n /**\n * Focus handler\n */\n onFocus: z.function().optional().describe('Focus handler'),\n\n /**\n * Blur handler\n */\n onBlur: z.function().optional().describe('Blur handler'),\n\n /**\n * Mouse enter handler\n */\n onMouseEnter: z.function().optional().describe('Mouse enter handler'),\n\n /**\n * Mouse leave handler\n */\n onMouseLeave: z.function().optional().describe('Mouse leave handler'),\n\n /**\n * Key down handler\n */\n onKeyDown: z.function().optional().describe('Key down handler'),\n\n /**\n * Key up handler\n */\n onKeyUp: z.function().optional().describe('Key up handler'),\n\n /**\n * Form submission handler\n */\n onSubmit: z.function().optional().describe('Form submission handler'),\n\n /**\n * Tab index for keyboard navigation\n */\n tabIndex: z.number().optional().describe('Tab index for keyboard navigation'),\n\n /**\n * ARIA label for accessibility\n */\n 'aria-label': z.string().optional().describe('ARIA label for accessibility'),\n\n /**\n * ARIA labelled by reference\n */\n 'aria-labelledby': z.string().optional().describe('ARIA labelled by reference'),\n\n /**\n * ARIA described by reference\n */\n 'aria-describedby': z.string().optional().describe('ARIA described by reference'),\n\n /**\n * ARIA expanded state\n */\n 'aria-expanded': z.boolean().optional().describe('ARIA expanded state'),\n\n /**\n * ARIA pressed state\n */\n 'aria-pressed': z.boolean().optional().describe('ARIA pressed state'),\n\n /**\n * ARIA current state\n */\n 'aria-current': z\n .union([z.boolean(), z.enum(['page', 'step', 'location', 'date', 'time'])])\n .optional()\n .describe('ARIA current state'),\n\n /**\n * ARIA controls reference\n */\n 'aria-controls': z.string().optional().describe('ARIA controls reference'),\n\n /**\n * ARIA owns reference\n */\n 'aria-owns': z.string().optional().describe('ARIA owns reference'),\n\n /**\n * Data attributes\n */\n 'data-*': z.record(z.string(), z.string()).optional().describe('Data attributes'),\n\n /**\n * ID attribute\n */\n id: z.string().optional().describe('ID attribute'),\n\n /**\n * Title attribute for tooltip\n */\n title: z.string().optional().describe('Title attribute for tooltip'),\n\n /**\n * Role attribute\n */\n role: z.string().optional().describe('Role attribute'),\n\n /**\n * Children elements\n */\n children: z.any().optional().describe('Children elements'),\n })\n .strict();\n\n/**\n * Type derived from BaseButton Zod schema\n * This ensures type safety and consistency with the schema\n */\nexport type BaseButtonProps = z.infer<typeof BaseButtonSchema>;\n\n/**\n * Development-only helper to validate and normalize props\n * This function should only be used in development mode\n *\n * @param props - Props to validate and normalize\n * @returns Validated and normalized props\n *\n * @example\n * ```tsx\n * // In development, this will validate props and show helpful errors\n * const validatedProps = parseBaseButtonProps({ size: 'invalid', variant: 'solid' });\n * // Throws: \"Invalid enum value. Expected '1' | '2' | '3' | '4', received 'invalid'\"\n * ```\n */\nexport function parseBaseButtonProps(props: unknown): BaseButtonProps {\n if (process.env.NODE_ENV === 'development') {\n return BaseButtonSchema.parse(props);\n }\n return props as BaseButtonProps;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "BaseButtonSchema", "parseBaseButtonProps", "props"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as S,b,c as x}from"./chunk-KU3LLWFU.js";import{b as T,c as N}from"./chunk-IX5HIHVI.js";import{b as h,c as I}from"./chunk-6AZV4VFW.js";import{a as y}from"./chunk-DDFONGSM.js";import{d as v}from"./chunk-3YLYGKFB.js";import{a as u}from"./chunk-UBSLEGQZ.js";import{a as g}from"./chunk-GSTOGDAJ.js";import{a as W}from"./chunk-OS3FCYZY.js";var O={};W(O,{Content:()=>L,Group:()=>D,Item:()=>G,Label:()=>z,Root:()=>w,Separator:()=>V,Trigger:()=>E});import*as e from"react";import c from"classnames";import{Select as a,ScrollArea as P}from"radix-ui";var R=e.createContext({}),w=t=>{let{children:r,size:o,...l}=t,s=v(o,S.size);return e.createElement(a.Root,{...l},e.createElement(R.Provider,{value:e.useMemo(()=>({size:s}),[s])},r))};w.displayName="Select.Root";var E=e.forwardRef((t,r)=>{let o=e.useContext(R),{children:l,className:s,color:n,radius:f,placeholder:d,error:p,loading:i,disabled:m,readOnly:C,...M}=u({size:o?.size,...t},{size:S.size},b,g),A=e.useMemo(()=>({"aria-invalid":p||void 0,"aria-busy":i||void 0,"aria-disabled":m||void 0,"aria-readonly":C||void 0}),[p,i,m,C]);return e.createElement(a.Trigger,{asChild:!0},e.createElement("button",{"data-accent-color":n,"data-radius":f,"data-error":p,"data-loading":i,...M,...A,ref:r,className:c("rt-reset","rt-SelectTrigger",s)},e.createElement("span",{className:"rt-SelectTriggerInner"},e.createElement(a.Value,{placeholder:d},l)),e.createElement(a.Icon,{asChild:!0},i?e.createElement("div",{className:"rt-SelectIcon rt-SelectLoadingIcon","aria-hidden":"true"},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e.createElement("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"32",strokeDashoffset:"32",className:"rt-SelectLoadingIconCircle"}))):e.createElement(N,{className:"rt-SelectIcon"}))))});E.displayName="Select.Trigger";var L=e.forwardRef((t,r)=>{let o=e.useContext(R),{className:l,children:s,color:n,container:f,...d}=u({size:o?.size,...t},{size:S.size},x),p=h(),i=n||p.accentColor,m=y();return e.createElement(a.Portal,{container:f},e.createElement(I,{asChild:!0},e.createElement(a.Content,{"data-accent-color":i,sideOffset:4,...d,asChild:!1,ref:r,className:c("rt-PopperContent","rt-BaseMenuContent","rt-variant-soft","rt-SelectContent",l)},e.createElement(P.Root,{type:"auto",className:"rt-ScrollAreaRoot"},e.createElement(a.Viewport,{asChild:!0,className:c("rt-BaseMenuViewport","rt-SelectViewport")},e.createElement(P.Viewport,{ref:m,className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},s)),e.createElement(P.Scrollbar,{className:"rt-ScrollAreaScrollbar",orientation:"vertical"},e.createElement(P.Thumb,{className:"rt-ScrollAreaThumb"}))))))});L.displayName="Select.Content";var G=e.forwardRef((t,r)=>{let{className:o,children:l,...s}=t,n=typeof l!="string";return e.createElement(a.Item,{...s,asChild:!1,ref:r,className:c("rt-reset","rt-BaseMenuItem","rt-SelectItem",{"rt-SelectItemRich":n},o)},e.createElement(a.ItemIndicator,{className:"rt-SelectItemIndicator"},e.createElement(T,{className:"rt-SelectItemIndicatorIcon"})),e.createElement(a.ItemText,null,l))});G.displayName="Select.Item";var D=e.forwardRef(({className:t,...r},o)=>e.createElement(a.Group,{...r,asChild:!1,ref:o,className:c("rt-SelectGroup",t)}));D.displayName="Select.Group";var z=e.forwardRef(({className:t,...r},o)=>e.createElement(a.Label,{...r,asChild:!1,ref:o,className:c("rt-BaseMenuLabel","rt-SelectLabel",t)}));z.displayName="Select.Label";var V=e.forwardRef(({className:t,...r},o)=>e.createElement(a.Separator,{...r,asChild:!1,ref:o,className:c("rt-BaseMenuSeparator","rt-SelectSeparator",t)}));V.displayName="Select.Separator";export{w as a,E as b,L as c,G as d,D as e,z as f,V as g,O as h};
2
+ //# sourceMappingURL=chunk-CHPZ3LNC.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/select.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Select as SelectPrimitive, ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSize } from '../helpers/theme-size.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { ChevronDownIcon, ThickCheckIcon } from './icons.js';\nimport {\n selectRootPropDefs,\n selectTriggerPropDefs,\n selectContentPropDefs,\n} from './select.props.js';\nimport { useThemeContext, Theme } from './theme.js';\nimport { useThumbSync } from '../hooks/use-thumb-sync.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype SelectRootOwnProps = GetPropDefTypes<typeof selectRootPropDefs>;\n\ntype SelectContextValue = SelectRootOwnProps;\nconst SelectContext = React.createContext<SelectContextValue>({});\n\ninterface SelectRootProps extends SelectPrimitive.SelectProps, SelectContextValue {}\nconst SelectRoot: React.FC<SelectRootProps> = (props) => {\n const { children, size: sizeProp, ...rootProps } = props;\n const size = useThemeSize(sizeProp, selectRootPropDefs.size);\n return (\n <SelectPrimitive.Root {...rootProps}>\n <SelectContext.Provider value={React.useMemo(() => ({ size }), [size])}>\n {children}\n </SelectContext.Provider>\n </SelectPrimitive.Root>\n );\n};\nSelectRoot.displayName = 'Select.Root';\n\ntype SelectTriggerElement = React.ElementRef<typeof SelectPrimitive.Trigger>;\ntype SelectTriggerOwnProps = GetPropDefTypes<typeof selectTriggerPropDefs>;\ninterface SelectTriggerProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Trigger, RemovedProps>,\n MarginProps,\n SelectTriggerOwnProps {}\nconst SelectTrigger = React.forwardRef<SelectTriggerElement, SelectTriggerProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const {\n children,\n className,\n color,\n radius,\n placeholder,\n error,\n loading,\n disabled,\n readOnly,\n ...triggerProps\n } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n { size: selectRootPropDefs.size },\n selectTriggerPropDefs,\n marginPropDefs,\n );\n\n\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': error || undefined,\n 'aria-busy': loading || undefined,\n 'aria-disabled': disabled || undefined,\n 'aria-readonly': readOnly || undefined,\n }),\n [error, loading, disabled, readOnly],\n );\n\n return (\n <SelectPrimitive.Trigger asChild>\n <button\n data-accent-color={color}\n data-radius={radius}\n data-error={error}\n data-loading={loading}\n {...triggerProps}\n {...ariaProps}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-SelectTrigger', className)}\n >\n <span className=\"rt-SelectTriggerInner\">\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n </span>\n <SelectPrimitive.Icon asChild>\n {loading ? (\n <div className=\"rt-SelectIcon rt-SelectLoadingIcon\" aria-hidden=\"true\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"32\"\n strokeDashoffset=\"32\"\n className=\"rt-SelectLoadingIconCircle\"\n />\n </svg>\n </div>\n ) : (\n <ChevronDownIcon className=\"rt-SelectIcon\" />\n )}\n </SelectPrimitive.Icon>\n </button>\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'Select.Trigger';\n\ntype SelectContentElement = React.ElementRef<typeof SelectPrimitive.Content>;\ntype SelectContentOwnProps = GetPropDefTypes<typeof selectContentPropDefs>;\ninterface SelectContentProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Content, RemovedProps>,\n SelectContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Portal>['container'];\n}\nconst SelectContent = React.forwardRef<SelectContentElement, SelectContentProps>(\n (props, forwardedRef) => {\n const context = React.useContext(SelectContext);\n const { className, children, color, container, ...contentProps } = extractProps(\n // Pass size value from the context to generate styles\n { size: context?.size, ...props },\n // Pass size prop def to allow it to be extracted\n { size: selectRootPropDefs.size },\n selectContentPropDefs,\n );\n const themeContext = useThemeContext();\n const resolvedColor = color || themeContext.accentColor;\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n return (\n <SelectPrimitive.Portal container={container}>\n <Theme asChild>\n <SelectPrimitive.Content\n data-accent-color={resolvedColor}\n sideOffset={4}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-PopperContent',\n 'rt-BaseMenuContent',\n 'rt-variant-soft',\n 'rt-SelectContent',\n className,\n )}\n >\n <ScrollAreaPrimitive.Root type=\"auto\" className=\"rt-ScrollAreaRoot\">\n <SelectPrimitive.Viewport\n asChild\n className={classNames('rt-BaseMenuViewport', 'rt-SelectViewport')}\n >\n <ScrollAreaPrimitive.Viewport\n ref={setThumbViewport}\n className=\"rt-ScrollAreaViewport\"\n style={{ overflowY: undefined }}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n </SelectPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar\n className=\"rt-ScrollAreaScrollbar\"\n orientation=\"vertical\"\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n </SelectPrimitive.Content>\n </Theme>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'Select.Content';\n\ntype SelectItemElement = React.ElementRef<typeof SelectPrimitive.Item>;\ninterface SelectItemProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Item, RemovedProps> {}\nconst SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>((props, forwardedRef) => {\n const { className, children, ...itemProps } = props;\n\n // Detect if this is rich content (not just a string)\n const isRichContent = typeof children !== 'string';\n\n return (\n <SelectPrimitive.Item\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'rt-reset',\n 'rt-BaseMenuItem',\n 'rt-SelectItem',\n { 'rt-SelectItemRich': isRichContent },\n className,\n )}\n >\n <SelectPrimitive.ItemIndicator className=\"rt-SelectItemIndicator\">\n <ThickCheckIcon className=\"rt-SelectItemIndicatorIcon\" />\n </SelectPrimitive.ItemIndicator>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n});\nSelectItem.displayName = 'Select.Item';\n\ntype SelectGroupElement = React.ElementRef<typeof SelectPrimitive.Group>;\ninterface SelectGroupProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Group, RemovedProps> {}\nconst SelectGroup = React.forwardRef<SelectGroupElement, SelectGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-SelectGroup', className)}\n />\n ),\n);\nSelectGroup.displayName = 'Select.Group';\n\ntype SelectLabelElement = React.ElementRef<typeof SelectPrimitive.Label>;\ninterface SelectLabelProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Label, RemovedProps> {}\nconst SelectLabel = React.forwardRef<SelectLabelElement, SelectLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuLabel', 'rt-SelectLabel', className)}\n />\n ),\n);\nSelectLabel.displayName = 'Select.Label';\n\ntype SelectSeparatorElement = React.ElementRef<typeof SelectPrimitive.Separator>;\ninterface SelectSeparatorProps\n extends ComponentPropsWithout<typeof SelectPrimitive.Separator, RemovedProps> {}\nconst SelectSeparator = React.forwardRef<SelectSeparatorElement, SelectSeparatorProps>(\n ({ className, ...props }, forwardedRef) => (\n <SelectPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-BaseMenuSeparator', 'rt-SelectSeparator', className)}\n />\n ),\n);\nSelectSeparator.displayName = 'Select.Separator';\n\nexport {\n SelectRoot as Root,\n SelectTrigger as Trigger,\n SelectContent as Content,\n SelectItem as Item,\n SelectGroup as Group,\n SelectLabel as Label,\n SelectSeparator as Separator,\n};\n\nexport type {\n SelectRootProps as RootProps,\n SelectTriggerProps as TriggerProps,\n SelectContentProps as ContentProps,\n SelectItemProps as ItemProps,\n SelectGroupProps as GroupProps,\n SelectLabelProps as LabelProps,\n SelectSeparatorProps as SeparatorProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["select_exports", "__export", "SelectContent", "SelectGroup", "SelectItem", "SelectLabel", "SelectRoot", "SelectSeparator", "SelectTrigger", "React", "classNames", "SelectPrimitive", "ScrollAreaPrimitive", "SelectContext", "SelectRoot", "props", "children", "sizeProp", "rootProps", "size", "useThemeSize", "selectRootPropDefs", "SelectPrimitive", "SelectTrigger", "forwardedRef", "context", "className", "color", "radius", "placeholder", "error", "loading", "disabled", "readOnly", "triggerProps", "extractProps", "selectTriggerPropDefs", "marginPropDefs", "ariaProps", "classNames", "ChevronDownIcon", "SelectContent", "container", "contentProps", "selectContentPropDefs", "themeContext", "useThemeContext", "resolvedColor", "setThumbViewport", "useThumbSync", "Theme", "ScrollAreaPrimitive", "SelectItem", "itemProps", "isRichContent", "ThickCheckIcon", "SelectGroup", "SelectLabel", "SelectSeparator"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as R}from"./chunk-ZCAI2PRH.js";import{a as P}from"./chunk-O6K6RZXY.js";import{d as f}from"./chunk-3YLYGKFB.js";import{a as u}from"./chunk-UBSLEGQZ.js";import{a as n}from"./chunk-GSTOGDAJ.js";import{a as v}from"./chunk-OS3FCYZY.js";var z={};v(z,{Item:()=>C,Root:()=>x});import*as o from"react";import G from"classnames";import{Context as h}from"radix-ui/internal";import{RadioGroup as d}from"radix-ui";var l="RadioGroup",[E]=h.createContextScope(l,[d.createRadioGroupScope]),I=d.createRadioGroupScope(),[_,y]=E(l),x=o.forwardRef(({color:a=R.color.default,size:e,variant:r=R.variant.default,...t},i)=>{let s=f(e,R.size),{__scopeRadioGroup:p,className:m,...N}=u(t,n),S=I(p);return o.createElement(_,{scope:p,color:a,size:s,variant:r},o.createElement(d.Root,{...S,...N,ref:i,className:G("rt-RadioGroupRoot",m)}))});x.displayName="RadioGroup.Root";var C=o.forwardRef((a,e)=>{let{__scopeRadioGroup:r,children:t,className:i,style:s,...p}=a,{size:m}=y("RadioGroupItem",r);return t?o.createElement(P,{as:"label",size:m,className:G("rt-RadioGroupItem",i),style:s},o.createElement(c,{__scopeRadioGroup:r,...p,ref:e}),t&&o.createElement("span",{className:"rt-RadioGroupItemInner"},t)):o.createElement(c,{__scopeRadioGroup:r,...p,ref:e,className:i,style:s})});C.displayName="RadioGroup.Item";var c=o.forwardRef(({__scopeRadioGroup:a,...e},r)=>{let t=y("RadioGroupItemRadio",a),i=I(a),{color:s,className:p}=u({...e,...t},R,n);return o.createElement(d.Item,{...i,"data-accent-color":s,...e,asChild:!1,ref:r,className:G("rt-reset","rt-BaseRadioRoot",p)})});c.displayName="RadioGroup.ItemRadio";export{x as a,C as b,z as c};
2
+ //# sourceMappingURL=chunk-CRK34MWY.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/radio-group.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Context } from 'radix-ui/internal';\nimport { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\n\nimport { radioGroupRootPropDefs } from './radio-group.props.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSize } from '../helpers/theme-size.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps<P> = P & { __scopeRadioGroup?: Context.Scope };\nconst [createRadioGroupContext] = Context.createContextScope(RADIO_GROUP_NAME, [\n RadioGroupPrimitive.createRadioGroupScope,\n]);\nconst useRadioGroupScope = RadioGroupPrimitive.createRadioGroupScope();\n\ntype RadioGroupRootOwnProps = GetPropDefTypes<typeof radioGroupRootPropDefs>;\ntype RadioGroupContextValue = RadioGroupRootOwnProps;\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContext<RadioGroupContextValue>(RADIO_GROUP_NAME);\n\ntype RadioGroupRootElement = React.ElementRef<typeof RadioGroupPrimitive.Root>;\ninterface RadioGroupRootProps\n extends ComponentPropsWithout<\n typeof RadioGroupPrimitive.Root,\n 'asChild' | 'color' | 'defaultChecked'\n >,\n MarginProps,\n RadioGroupRootOwnProps {}\nconst RadioGroupRoot = React.forwardRef<RadioGroupRootElement, RadioGroupRootProps>(\n (\n {\n color = radioGroupRootPropDefs.color.default,\n size: sizeProp,\n variant = radioGroupRootPropDefs.variant.default,\n ...props\n }: ScopedProps<RadioGroupRootProps>,\n forwardedRef\n ) => {\n const size = useThemeSize(sizeProp, radioGroupRootPropDefs.size);\n const { __scopeRadioGroup, className, ...rootProps } = extractProps(props, marginPropDefs);\n const radioGroupScope = useRadioGroupScope(__scopeRadioGroup);\n return (\n <RadioGroupProvider\n scope={__scopeRadioGroup}\n color={color}\n size={size}\n variant={variant}\n >\n <RadioGroupPrimitive.Root\n {...radioGroupScope}\n {...rootProps}\n ref={forwardedRef}\n className={classNames('rt-RadioGroupRoot', className)}\n />\n </RadioGroupProvider>\n );\n }\n);\nRadioGroupRoot.displayName = 'RadioGroup.Root';\n\ntype RadioGroupItemElement = React.ElementRef<typeof RadioGroupItemRadio>;\ninterface RadioGroupItemProps\n extends ComponentPropsWithout<typeof RadioGroupItemRadio, RemovedProps>,\n MarginProps {}\nconst RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(\n (_props: ScopedProps<RadioGroupItemProps>, forwardedRef) => {\n const { __scopeRadioGroup, children, className, style, ...props } = _props;\n const { size } = useRadioGroupContext('RadioGroupItem', __scopeRadioGroup);\n\n // Render `<Text as=\"label\">` if children\u00A0are provided, otherwise render\n // the solo radio button to allow building out your custom layouts with it.\n if (children) {\n return (\n <Text\n as=\"label\"\n size={size}\n className={classNames('rt-RadioGroupItem', className)}\n style={style}\n >\n <RadioGroupItemRadio\n __scopeRadioGroup={__scopeRadioGroup}\n {...props}\n ref={forwardedRef}\n />\n {children && <span className=\"rt-RadioGroupItemInner\">{children}</span>}\n </Text>\n );\n }\n\n return (\n <RadioGroupItemRadio\n __scopeRadioGroup={__scopeRadioGroup}\n {...props}\n ref={forwardedRef}\n className={className}\n style={style}\n />\n );\n }\n);\nRadioGroupItem.displayName = 'RadioGroup.Item';\n\ntype RadioGroupItemRadioElement = React.ElementRef<typeof RadioGroupPrimitive.Item>;\ninterface RadioGroupItemRadioProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {}\nconst RadioGroupItemRadio = React.forwardRef<\n RadioGroupItemRadioElement,\n ScopedProps<RadioGroupItemRadioProps>\n>(({ __scopeRadioGroup, ...props }, forwardedRef) => {\n const context = useRadioGroupContext('RadioGroupItemRadio', __scopeRadioGroup);\n const radioGroupScope = useRadioGroupScope(__scopeRadioGroup);\n const { color, className } = extractProps(\n { ...props, ...context },\n radioGroupRootPropDefs,\n marginPropDefs\n );\n return (\n <RadioGroupPrimitive.Item\n {...radioGroupScope}\n data-accent-color={color}\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-BaseRadioRoot', className)}\n />\n );\n});\nRadioGroupItemRadio.displayName = 'RadioGroup.ItemRadio';\n\nexport { RadioGroupRoot as Root, RadioGroupItem as Item };\nexport type { RadioGroupRootProps as RootProps, RadioGroupItemProps as ItemProps };\n"],
5
+ "mappings": "gPAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,WAAAC,MAAe,oBACxB,OAAS,cAAcC,MAA2B,WAYlD,IAAMC,EAAmB,aAGnB,CAACC,CAAuB,EAAIC,EAAQ,mBAAmBF,EAAkB,CAC7EG,EAAoB,qBACtB,CAAC,EACKC,EAAqBD,EAAoB,sBAAsB,EAK/D,CAACE,EAAoBC,CAAoB,EAC7CL,EAAgDD,CAAgB,EAU5DO,EAAuB,aAC3B,CACE,CACE,MAAAC,EAAQC,EAAuB,MAAM,QACrC,KAAMC,EACN,QAAAC,EAAUF,EAAuB,QAAQ,QACzC,GAAGG,CACL,EACAC,IACG,CACH,IAAMC,EAAOC,EAAaL,EAAUD,EAAuB,IAAI,EACzD,CAAE,kBAAAO,EAAmB,UAAAC,EAAW,GAAGC,CAAU,EAAIC,EAAaP,EAAOQ,CAAc,EACnFC,EAAkBjB,EAAmBY,CAAiB,EAC5D,OACE,gBAACX,EAAA,CACC,MAAOW,EACP,MAAOR,EACP,KAAMM,EACN,QAASH,GAET,gBAACR,EAAoB,KAApB,CACE,GAAGkB,EACH,GAAGH,EACJ,IAAKL,EACL,UAAWS,EAAW,oBAAqBL,CAAS,EACtD,CACF,CAEJ,CACF,EACAV,EAAe,YAAc,kBAM7B,IAAMgB,EAAuB,aAC3B,CAACC,EAA0CX,IAAiB,CAC1D,GAAM,CAAE,kBAAAG,EAAmB,SAAAS,EAAU,UAAAR,EAAW,MAAAS,EAAO,GAAGd,CAAM,EAAIY,EAC9D,CAAE,KAAAV,CAAK,EAAIR,EAAqB,iBAAkBU,CAAiB,EAIzE,OAAIS,EAEA,gBAACE,EAAA,CACC,GAAG,QACH,KAAMb,EACN,UAAWQ,EAAW,oBAAqBL,CAAS,EACpD,MAAOS,GAEP,gBAACE,EAAA,CACC,kBAAmBZ,EAClB,GAAGJ,EACJ,IAAKC,EACP,EACCY,GAAY,gBAAC,QAAK,UAAU,0BAA0BA,CAAS,CAClE,EAKF,gBAACG,EAAA,CACC,kBAAmBZ,EAClB,GAAGJ,EACJ,IAAKC,EACL,UAAWI,EACX,MAAOS,EACT,CAEJ,CACF,EACAH,EAAe,YAAc,kBAK7B,IAAMK,EAA4B,aAGhC,CAAC,CAAE,kBAAAZ,EAAmB,GAAGJ,CAAM,EAAGC,IAAiB,CACnD,IAAMgB,EAAUvB,EAAqB,sBAAuBU,CAAiB,EACvEK,EAAkBjB,EAAmBY,CAAiB,EACtD,CAAE,MAAAR,EAAO,UAAAS,CAAU,EAAIE,EAC3B,CAAE,GAAGP,EAAO,GAAGiB,CAAQ,EACvBpB,EACAW,CACF,EACA,OACE,gBAACjB,EAAoB,KAApB,CACE,GAAGkB,EACJ,oBAAmBb,EAClB,GAAGI,EACJ,QAAS,GACT,IAAKC,EACL,UAAWS,EAAW,WAAY,mBAAoBL,CAAS,EACjE,CAEJ,CAAC,EACDW,EAAoB,YAAc",
6
+ "names": ["radio_group_exports", "__export", "RadioGroupItem", "RadioGroupRoot", "React", "classNames", "Context", "RadioGroupPrimitive", "RADIO_GROUP_NAME", "createRadioGroupContext", "Context", "RadioGroupPrimitive", "useRadioGroupScope", "RadioGroupProvider", "useRadioGroupContext", "RadioGroupRoot", "color", "radioGroupRootPropDefs", "sizeProp", "variant", "props", "forwardedRef", "size", "useThemeSize", "__scopeRadioGroup", "className", "rootProps", "extractProps", "marginPropDefs", "radioGroupScope", "classNames", "RadioGroupItem", "_props", "children", "style", "Text", "RadioGroupItemRadio", "context"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as U}from"./chunk-2IPVLV6B.js";import{a as K,b as F,c as j,e as E,f as O}from"./chunk-2NNCZM7P.js";import{a as z,b as H,c as W}from"./chunk-QE2EF7A7.js";import{d as G}from"./chunk-IX5HIHVI.js";import{a as w}from"./chunk-PTEAQFHI.js";import{b as P}from"./chunk-UZS3BA2Z.js";import{b as x}from"./chunk-FWB47YCH.js";import{a as D}from"./chunk-XHKL4PG7.js";import{a as ae}from"./chunk-OS3FCYZY.js";var oe={};ae(oe,{Group:()=>_,GroupContent:()=>re,GroupLabel:()=>ee,Menu:()=>$,MenuButton:()=>J,MenuItem:()=>X,MenuSub:()=>Q,MenuSubContent:()=>Z,MenuSubTrigger:()=>Y,Search:()=>te,Separator:()=>V});import*as e from"react";import u from"classnames";import*as f from"@radix-ui/react-accordion";var V=e.forwardRef(({className:r,...t},n)=>e.createElement(U,{...t,ref:n,className:u("rt-SidebarSeparator",r)}));V.displayName="Sidebar.Separator";var $=e.forwardRef(({className:r,...t},n)=>e.createElement("ul",{...t,ref:n,className:u("rt-SidebarMenu",r)}));$.displayName="Sidebar.Menu";var X=e.forwardRef(({className:r,...t},n)=>e.createElement("li",{...t,ref:n,className:u("rt-SidebarMenuItem",r)}));X.displayName="Sidebar.MenuItem";function ne(r){let t=[],n=[];return e.Children.forEach(r,a=>{if(typeof a=="string"||typeof a=="number")n.push(e.createElement("span",{key:n.length,className:"rt-SidebarMenuLabel"},a));else if(e.isValidElement(a)){let i=a;i.type==="svg"||i.props&&i.props.icon||typeof i.type=="function"&&(i.type.displayName?.includes("Icon")||i.type.name?.includes("Icon"))?t.push(a):n.push(a)}else a&&n.push(a)}),{icons:t,labels:n}}function k(r){if(typeof r=="string"||typeof r=="number")return e.createElement("span",{className:"rt-SidebarMenuLabel"},r);if(Array.isArray(r))return r.map((t,n)=>e.createElement(e.Fragment,{key:n},k(t)));if(e.isValidElement(r)){let t=r,n=t.props&&t.props.className||"";if(typeof t.type=="string"&&n.split(" ").includes("rt-SidebarMenuLabel"))return t;let i=k(t.props?.children);return e.cloneElement(t,{...t.props},i)}return r}var J=e.forwardRef(({asChild:r=!1,isActive:t=!1,shortcut:n,badge:a,className:i,children:l,onKeyDown:m,...M},C)=>{let s=P(),c=s?.size??"2",p=s?.presentation==="thin",v=r?x:"button",I=e.useCallback(o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){let b=o.currentTarget.closest(".rt-SidebarContent, .rt-SidebarSearchPopover"),y=b?Array.from(b.querySelectorAll(".rt-SidebarMenuButton")).filter(h=>h.offsetParent!==null):[],d=y.indexOf(o.currentTarget),N=y[d+(o.key==="ArrowDown"?1:-1)];d!==-1&&N&&(o.preventDefault(),N.focus())}m?.(o)},[m]),S=e.useMemo(()=>k(l),[l]),{icons:R,labels:B}=e.useMemo(()=>p?ne(l):{icons:[],labels:[]},[p,l]),L=e.useMemo(()=>{if(!r)return null;try{let o=e.Children.only(S),b=o.props?.children,y=e.createElement(e.Fragment,null,b,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(w,{size:c,variant:"soft"},a):e.createElement(w,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:c},n)));return e.cloneElement(o,{...o.props},y)}catch{return S}},[r,S,a,n,c]);return e.createElement(v,{...M,ref:C,"aria-current":t?"page":void 0,className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton",i),"data-active":t||void 0,onKeyDown:I},r?L:p&&R.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},R),B.map((o,b)=>e.createElement(e.Fragment,{key:b},typeof o=="string"||typeof o=="number"?e.createElement("span",{className:"rt-SidebarMenuLabel"},o):o))):e.createElement(e.Fragment,null,S,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(w,{size:c,variant:"soft"},a):e.createElement(w,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:c},n))))});J.displayName="Sidebar.MenuButton";var T=e.createContext("accordion"),Q=e.forwardRef(({defaultOpen:r=!1,children:t,...n},a)=>(P()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:a},e.createElement(K,null,e.createElement(T.Provider,{value:"dropdown"},t))):e.createElement("div",{...n,ref:a},e.createElement(T.Provider,{value:"accordion"},e.createElement(f.Root,{type:"single",collapsible:!0,defaultValue:r?"item":void 0},e.createElement(f.Item,{value:"item"},t)))));Q.displayName="Sidebar.MenuSub";var Y=e.forwardRef(({asChild:r=!1,className:t,children:n,...a},i)=>e.useContext(T)==="dropdown"?e.createElement(F,null,e.createElement("button",{...a,ref:i,type:"button","aria-haspopup":"menu",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},n)):e.createElement(f.Header,{asChild:!0},e.createElement("div",null,e.createElement(f.Trigger,{...a,ref:i,asChild:r,className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},r?n:e.createElement(e.Fragment,null,n,e.createElement(G,{className:u("rt-BaseMenuSubTriggerIcon","rt-SidebarMenuSubTriggerIcon")}))))));Y.displayName="Sidebar.MenuSubTrigger";var Z=e.forwardRef(({className:r,children:t,...n},a)=>{let i=P();if(e.useContext(T)==="dropdown"){let m=s=>{if(Array.isArray(s))return s.map((c,p)=>e.createElement(e.Fragment,{key:p},m(c)));if(e.isValidElement(s)){if(s.type?.displayName==="Sidebar.MenuButton")return s.props?.children;let p=s.props?.children;if(p!==void 0)return e.cloneElement(s,{...s.props,children:m(p)})}return s},M=e.Children.map(t,(s,c)=>{if(e.isValidElement(s)&&s.type?.displayName==="Sidebar.MenuItem"){let p=s.props?.children,v=m(p);return e.createElement(E,{key:c,asChild:!0},v)}return e.createElement(E,{key:c,asChild:!0},m(s))}),C=i?.size==="3"?"2":i?.size;return e.createElement(j,{size:C,className:u(r)},e.createElement(O,null,M))}return e.createElement(f.Content,{...n,ref:a,className:u("rt-SidebarMenuSubContent",r)},e.createElement("div",{className:"rt-SidebarMenuSubList"},t))});Z.displayName="Sidebar.MenuSubContent";var _=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:u("rt-BaseMenuGroup","rt-SidebarGroup",r)}));_.displayName="Sidebar.Group";var ee=e.forwardRef(({asChild:r=!1,className:t,...n},a)=>e.createElement(r?x:"div",{...n,ref:a,className:u("rt-BaseMenuLabel","rt-SidebarGroupLabel",t)}));ee.displayName="Sidebar.GroupLabel";var re=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:u("rt-SidebarGroupContent",r)}));re.displayName="Sidebar.GroupContent";var A=({className:r})=>e.createElement("svg",{className:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),q=({className:r})=>e.createElement("svg",{className:r,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),te=e.forwardRef(({value:r,onValueChange:t,placeholder:n="Search...",children:a,className:i,...l},m)=>{let M=P(),C=M?.presentation==="thin",s=e.useRef(null),c=e.useRef(null),v=`${e.useId()}-results`,I=e.useRef(r);I.current=r;let S=e.useRef(t);S.current=t;let R=n.replace(/\.+$/,""),B=e.useCallback(o=>{o.key==="Escape"&&I.current&&(o.preventDefault(),o.stopPropagation(),S.current(""),s.current?.focus())},[]),L=e.useCallback(o=>{let b=c.current;if(!b)return;let y=b.querySelector('[role="group"]');if(!y)return;let d=Array.from(y.querySelectorAll("a, button"));if(d.length===0)return;let N=document.activeElement,h=N===s.current,g=d.indexOf(N);if(o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!h&&g!==-1){s.current?.focus();return}switch(o.key){case"ArrowDown":{o.preventDefault(),h||g===-1?d[0]?.focus():g<d.length-1&&d[g+1]?.focus();break}case"ArrowUp":{o.preventDefault(),g<=0?s.current?.focus():d[g-1]?.focus();break}case"Home":{h||(o.preventDefault(),d[0]?.focus());break}case"End":{h||(o.preventDefault(),d[d.length-1]?.focus());break}}},[]);return C?e.createElement("div",{...l,ref:m,className:u("rt-SidebarSearch","rt-SidebarSearch--thin",i)},e.createElement(z,null,e.createElement(H,null,e.createElement("button",{type:"button",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarSearchTrigger"),"aria-label":R},e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},e.createElement(A,null)),e.createElement("span",{className:"rt-SidebarMenuLabel"},"Search"))),e.createElement(W,{side:"right",align:"start",size:"2",width:"280px","aria-label":R},e.createElement("div",{ref:c,className:"rt-SidebarSearchPopover",role:"search",onKeyDown:L},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R,"aria-controls":a?v:void 0,autoFocus:!0}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))),a&&e.createElement("div",{id:v,role:"group","aria-label":"Search results"},a))))):e.createElement("div",{...l,ref:m,className:u("rt-SidebarSearch","rt-SidebarSearch--expanded","rt-ShellPaneChrome",`rt-r-size-${M?.size??"2"}`,i),role:"search"},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))))});te.displayName="Sidebar.Search";export{V as a,$ as b,X as c,J as d,Q as e,Y as f,Z as g,_ as h,ee as i,re as j,te as k,oe as l};
2
- //# sourceMappingURL=chunk-PAB6HVKC.js.map
1
+ import{a as U}from"./chunk-UQZHW3EJ.js";import{a as K,b as F,c as j,e as E,f as O}from"./chunk-XVKFQSLI.js";import{a as z,b as H,c as W}from"./chunk-QAUYOVVL.js";import{d as G}from"./chunk-IX5HIHVI.js";import{a as w}from"./chunk-KRXCFIRK.js";import{b as P}from"./chunk-DJFTDR6Y.js";import{b as x}from"./chunk-FWB47YCH.js";import{a as D}from"./chunk-XHKL4PG7.js";import{a as ae}from"./chunk-OS3FCYZY.js";var oe={};ae(oe,{Group:()=>_,GroupContent:()=>re,GroupLabel:()=>ee,Menu:()=>$,MenuButton:()=>J,MenuItem:()=>X,MenuSub:()=>Q,MenuSubContent:()=>Z,MenuSubTrigger:()=>Y,Search:()=>te,Separator:()=>V});import*as e from"react";import u from"classnames";import*as f from"@radix-ui/react-accordion";var V=e.forwardRef(({className:r,...t},n)=>e.createElement(U,{...t,ref:n,className:u("rt-SidebarSeparator",r)}));V.displayName="Sidebar.Separator";var $=e.forwardRef(({className:r,...t},n)=>e.createElement("ul",{...t,ref:n,className:u("rt-SidebarMenu",r)}));$.displayName="Sidebar.Menu";var X=e.forwardRef(({className:r,...t},n)=>e.createElement("li",{...t,ref:n,className:u("rt-SidebarMenuItem",r)}));X.displayName="Sidebar.MenuItem";function ne(r){let t=[],n=[];return e.Children.forEach(r,a=>{if(typeof a=="string"||typeof a=="number")n.push(e.createElement("span",{key:n.length,className:"rt-SidebarMenuLabel"},a));else if(e.isValidElement(a)){let i=a;i.type==="svg"||i.props&&i.props.icon||typeof i.type=="function"&&(i.type.displayName?.includes("Icon")||i.type.name?.includes("Icon"))?t.push(a):n.push(a)}else a&&n.push(a)}),{icons:t,labels:n}}function k(r){if(typeof r=="string"||typeof r=="number")return e.createElement("span",{className:"rt-SidebarMenuLabel"},r);if(Array.isArray(r))return r.map((t,n)=>e.createElement(e.Fragment,{key:n},k(t)));if(e.isValidElement(r)){let t=r,n=t.props&&t.props.className||"";if(typeof t.type=="string"&&n.split(" ").includes("rt-SidebarMenuLabel"))return t;let i=k(t.props?.children);return e.cloneElement(t,{...t.props},i)}return r}var J=e.forwardRef(({asChild:r=!1,isActive:t=!1,shortcut:n,badge:a,className:i,children:l,onKeyDown:m,...M},C)=>{let s=P(),c=s?.size??"2",p=s?.presentation==="thin",v=r?x:"button",I=e.useCallback(o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){let b=o.currentTarget.closest(".rt-SidebarContent, .rt-SidebarSearchPopover"),y=b?Array.from(b.querySelectorAll(".rt-SidebarMenuButton")).filter(h=>h.offsetParent!==null):[],d=y.indexOf(o.currentTarget),N=y[d+(o.key==="ArrowDown"?1:-1)];d!==-1&&N&&(o.preventDefault(),N.focus())}m?.(o)},[m]),S=e.useMemo(()=>k(l),[l]),{icons:R,labels:B}=e.useMemo(()=>p?ne(l):{icons:[],labels:[]},[p,l]),L=e.useMemo(()=>{if(!r)return null;try{let o=e.Children.only(S),b=o.props?.children,y=e.createElement(e.Fragment,null,b,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(w,{size:c,variant:"soft"},a):e.createElement(w,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:c},n)));return e.cloneElement(o,{...o.props},y)}catch{return S}},[r,S,a,n,c]);return e.createElement(v,{...M,ref:C,"aria-current":t?"page":void 0,className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton",i),"data-active":t||void 0,onKeyDown:I},r?L:p&&R.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},R),B.map((o,b)=>e.createElement(e.Fragment,{key:b},typeof o=="string"||typeof o=="number"?e.createElement("span",{className:"rt-SidebarMenuLabel"},o):o))):e.createElement(e.Fragment,null,S,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(w,{size:c,variant:"soft"},a):e.createElement(w,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:c},n))))});J.displayName="Sidebar.MenuButton";var T=e.createContext("accordion"),Q=e.forwardRef(({defaultOpen:r=!1,children:t,...n},a)=>(P()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:a},e.createElement(K,null,e.createElement(T.Provider,{value:"dropdown"},t))):e.createElement("div",{...n,ref:a},e.createElement(T.Provider,{value:"accordion"},e.createElement(f.Root,{type:"single",collapsible:!0,defaultValue:r?"item":void 0},e.createElement(f.Item,{value:"item"},t)))));Q.displayName="Sidebar.MenuSub";var Y=e.forwardRef(({asChild:r=!1,className:t,children:n,...a},i)=>e.useContext(T)==="dropdown"?e.createElement(F,null,e.createElement("button",{...a,ref:i,type:"button","aria-haspopup":"menu",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},n)):e.createElement(f.Header,{asChild:!0},e.createElement("div",null,e.createElement(f.Trigger,{...a,ref:i,asChild:r,className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},r?n:e.createElement(e.Fragment,null,n,e.createElement(G,{className:u("rt-BaseMenuSubTriggerIcon","rt-SidebarMenuSubTriggerIcon")}))))));Y.displayName="Sidebar.MenuSubTrigger";var Z=e.forwardRef(({className:r,children:t,...n},a)=>{let i=P();if(e.useContext(T)==="dropdown"){let m=s=>{if(Array.isArray(s))return s.map((c,p)=>e.createElement(e.Fragment,{key:p},m(c)));if(e.isValidElement(s)){if(s.type?.displayName==="Sidebar.MenuButton")return s.props?.children;let p=s.props?.children;if(p!==void 0)return e.cloneElement(s,{...s.props,children:m(p)})}return s},M=e.Children.map(t,(s,c)=>{if(e.isValidElement(s)&&s.type?.displayName==="Sidebar.MenuItem"){let p=s.props?.children,v=m(p);return e.createElement(E,{key:c,asChild:!0},v)}return e.createElement(E,{key:c,asChild:!0},m(s))}),C=i?.size==="3"?"2":i?.size;return e.createElement(j,{size:C,className:u(r)},e.createElement(O,null,M))}return e.createElement(f.Content,{...n,ref:a,className:u("rt-SidebarMenuSubContent",r)},e.createElement("div",{className:"rt-SidebarMenuSubList"},t))});Z.displayName="Sidebar.MenuSubContent";var _=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:u("rt-BaseMenuGroup","rt-SidebarGroup",r)}));_.displayName="Sidebar.Group";var ee=e.forwardRef(({asChild:r=!1,className:t,...n},a)=>e.createElement(r?x:"div",{...n,ref:a,className:u("rt-BaseMenuLabel","rt-SidebarGroupLabel",t)}));ee.displayName="Sidebar.GroupLabel";var re=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:u("rt-SidebarGroupContent",r)}));re.displayName="Sidebar.GroupContent";var A=({className:r})=>e.createElement("svg",{className:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),q=({className:r})=>e.createElement("svg",{className:r,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),te=e.forwardRef(({value:r,onValueChange:t,placeholder:n="Search...",children:a,className:i,...l},m)=>{let M=P(),C=M?.presentation==="thin",s=e.useRef(null),c=e.useRef(null),v=`${e.useId()}-results`,I=e.useRef(r);I.current=r;let S=e.useRef(t);S.current=t;let R=n.replace(/\.+$/,""),B=e.useCallback(o=>{o.key==="Escape"&&I.current&&(o.preventDefault(),o.stopPropagation(),S.current(""),s.current?.focus())},[]),L=e.useCallback(o=>{let b=c.current;if(!b)return;let y=b.querySelector('[role="group"]');if(!y)return;let d=Array.from(y.querySelectorAll("a, button"));if(d.length===0)return;let N=document.activeElement,h=N===s.current,g=d.indexOf(N);if(o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!h&&g!==-1){s.current?.focus();return}switch(o.key){case"ArrowDown":{o.preventDefault(),h||g===-1?d[0]?.focus():g<d.length-1&&d[g+1]?.focus();break}case"ArrowUp":{o.preventDefault(),g<=0?s.current?.focus():d[g-1]?.focus();break}case"Home":{h||(o.preventDefault(),d[0]?.focus());break}case"End":{h||(o.preventDefault(),d[d.length-1]?.focus());break}}},[]);return C?e.createElement("div",{...l,ref:m,className:u("rt-SidebarSearch","rt-SidebarSearch--thin",i)},e.createElement(z,null,e.createElement(H,null,e.createElement("button",{type:"button",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarSearchTrigger"),"aria-label":R},e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},e.createElement(A,null)),e.createElement("span",{className:"rt-SidebarMenuLabel"},"Search"))),e.createElement(W,{side:"right",align:"start",size:"2",width:"280px","aria-label":R},e.createElement("div",{ref:c,className:"rt-SidebarSearchPopover",role:"search",onKeyDown:L},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R,"aria-controls":a?v:void 0,autoFocus:!0}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))),a&&e.createElement("div",{id:v,role:"group","aria-label":"Search results"},a))))):e.createElement("div",{...l,ref:m,className:u("rt-SidebarSearch","rt-SidebarSearch--expanded","rt-ShellPaneChrome",`rt-r-size-${M?.size??"2"}`,i),role:"search"},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))))});te.displayName="Sidebar.Search";export{V as a,$ as b,X as c,J as d,Q as e,Y as f,Z as g,_ as h,ee as i,re as j,te as k,oe as l};
2
+ //# sourceMappingURL=chunk-DFSW4QR4.js.map
@@ -0,0 +1,2 @@
1
+ import{a as S}from"./chunk-ZJZIV2JH.js";import*as e from"react";import d from"classnames";var P=e.createContext(null);function f(){return e.useContext(P)}var c=e.createContext("2");function h({children:t,presentation:a}){let n=e.useContext(c),o=e.useMemo(()=>({size:n,menuVariant:"soft",presentation:a}),[n,a]);return e.createElement(P.Provider,{value:o},t)}function u(){let t=f(),a=e.useContext(c),n=t?.size??a,o=t?.menuVariant??"soft";return["rt-ShellPaneChrome",`rt-r-size-${n}`,`rt-menu-variant-${o}`]}var p={1:"2",2:"3",3:"4",4:"4"},s=e.createContext(null);function b(){return e.useContext(s)}function m(){let t=f(),a=e.useContext(c);return p[t?.size??a]}var v=e.forwardRef(({className:t,float:a,children:n,...o},r)=>{let i=u(),l=m();return e.createElement("div",{...o,ref:r,"data-float":a||void 0,className:d("rt-ShellPaneHeader","rt-SidebarHeader","rt-SidebarHeader--container",...i,t)},e.createElement(s.Provider,{value:l},n))});v.displayName="Shell.PaneHeader";var C=e.forwardRef(({className:t,float:a,children:n,...o},r)=>{let i=u(),l=m();return e.createElement("div",{...o,ref:r,"data-float":a||void 0,className:d("rt-ShellPaneFooter","rt-SidebarFooter","rt-SidebarFooter--container",...i,t)},e.createElement(s.Provider,{value:l},n))});C.displayName="Shell.PaneFooter";var x=e.forwardRef(({className:t,children:a,fade:n=!1,...o},r)=>{let i=u();return e.createElement(S,{type:"hover",fade:n,className:"rt-ShellScroll"},e.createElement("div",{...o,ref:r,className:d("rt-BaseMenuContent","rt-SidebarContent",...i,t)},e.createElement(s.Provider,{value:null},e.createElement("div",{className:"rt-BaseMenuViewport"},a))))});x.displayName="Shell.Scroll";export{P as a,f as b,c,h as d,p as e,b as f,v as g,C as h,x as i};
2
+ //# sourceMappingURL=chunk-DJFTDR6Y.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/_internal/pane-chrome.tsx"],
4
+ "sourcesContent": ["'use client';\n\n/**\n * A pane's own chrome: a header row, a scrolling region and a footer row.\n *\n * Shell.Sidebar and Shell.Panel render these as `Shell.PaneHeader`, `Shell.Scroll` and\n * `Shell.PaneFooter`. The pane renders anything; with these parts it is the presentation, so\n * Sidebar's menu parts work inside it with no `Sidebar.Root`. The index comes from the nearest\n * Shell (`Shell.Root size`), or from a deprecated `Sidebar.Root` that still wraps them.\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport { ScrollArea } from '../scroll-area.js';\n\ntype PaneSize = '1' | '2' | '3';\n\ntype SidebarVisualContextValue = {\n size: PaneSize;\n menuVariant: 'solid' | 'soft';\n presentation?: 'thin' | 'expanded';\n color?: string;\n};\n\n/** Size, menu highlight and presentation for the Sidebar parts. Internal: not exported. */\nconst SidebarVisualContext = React.createContext<SidebarVisualContextValue | null>(null);\n\nfunction useSidebarVisual() {\n return React.useContext(SidebarVisualContext);\n}\n\n/** The Shell's index. `Shell.Root size` sets it; panes hand it to their chrome. */\nconst ShellSizeContext = React.createContext<PaneSize>('2');\n\n/**\n * Gives a Shell pane's children the Shell's index, so Sidebar parts size themselves. In a Rail\n * the rows are `thin`: icon tiles with a small label, sub-menus as dropdowns.\n */\nfunction PaneChromeScope({ children, presentation }: { children: React.ReactNode; presentation?: 'thin' }) {\n const size = React.useContext(ShellSizeContext);\n const value = React.useMemo<SidebarVisualContextValue>(() => ({ size, menuVariant: 'soft', presentation }), [size, presentation]);\n return <SidebarVisualContext.Provider value={value}>{children}</SidebarVisualContext.Provider>;\n}\n\nfunction useChromeClasses() {\n const visual = useSidebarVisual();\n // A pane with no scope (Inspector, Bottom) still takes the Shell's index.\n const shellSize = React.useContext(ShellSizeContext);\n const size = visual?.size ?? shellSize;\n const menuVariant = visual?.menuVariant ?? 'soft';\n return ['rt-ShellPaneChrome', `rt-r-size-${size}`, `rt-menu-variant-${menuVariant}`];\n}\n\ntype BandSize = '1' | '2' | '3' | '4';\n\n/**\n * The index a Toolbar in a pane's header or footer rests at when it states none: one step above\n * the Shell's, so the band reads as chrome over the rows (v2 BAND_STEP). 4 has no step above.\n */\nconst BAND_STEP = { '1': '2', '2': '3', '3': '4', '4': '4' } as const satisfies Record<BandSize, BandSize>;\n\n/** Set by `Shell.PaneHeader` and `Shell.PaneFooter`; read by Toolbar as its fallback size. Null elsewhere. */\nconst PaneBandSizeContext = React.createContext<BandSize | null>(null);\n\nfunction usePaneBandSize() {\n return React.useContext(PaneBandSizeContext);\n}\n\nfunction useBandSize(): BandSize {\n const visual = useSidebarVisual();\n const shellSize = React.useContext(ShellSizeContext);\n return BAND_STEP[visual?.size ?? shellSize];\n}\n\ninterface PaneHeaderProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Floats the row over the top of `Shell.Scroll`, so the list scrolls behind it. The list\n * starts below the row, and `Shell.Scroll fade` fades it out under the row. The row paints\n * nothing and lets clicks through between its controls; a `Toolbar backdrop` in it keeps\n * the controls readable.\n */\n float?: boolean;\n}\n\n/** A pane's header row, pinned above its scrolling region. */\nconst PaneHeader = React.forwardRef<HTMLDivElement, PaneHeaderProps>(({ className, float, children, ...props }, forwardedRef) => {\n const chrome = useChromeClasses();\n const band = useBandSize();\n return (\n <div\n {...props}\n ref={forwardedRef}\n data-float={float || undefined}\n className={classNames('rt-ShellPaneHeader', 'rt-SidebarHeader', 'rt-SidebarHeader--container', ...chrome, className)}\n >\n <PaneBandSizeContext.Provider value={band}>{children}</PaneBandSizeContext.Provider>\n </div>\n );\n});\nPaneHeader.displayName = 'Shell.PaneHeader';\n\ninterface PaneFooterProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Floats the row over the bottom of `Shell.Scroll`, the way `Shell.PaneHeader float` does at the top. */\n float?: boolean;\n}\n\n/** A pane's footer row, pinned below its scrolling region. */\nconst PaneFooter = React.forwardRef<HTMLDivElement, PaneFooterProps>(({ className, float, children, ...props }, forwardedRef) => {\n const chrome = useChromeClasses();\n const band = useBandSize();\n return (\n <div\n {...props}\n ref={forwardedRef}\n data-float={float || undefined}\n className={classNames('rt-ShellPaneFooter', 'rt-SidebarFooter', 'rt-SidebarFooter--container', ...chrome, className)}\n >\n <PaneBandSizeContext.Provider value={band}>{children}</PaneBandSizeContext.Provider>\n </div>\n );\n});\nPaneFooter.displayName = 'Shell.PaneFooter';\n\ninterface ScrollProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Fades the list out toward an edge with more past it, and under a floating header or footer. */\n fade?: boolean;\n}\n\n/**\n * The one region of a pane that scrolls; it takes the room the header and footer leave.\n * It is not a landmark: for navigation, pass `role=\"navigation\"` and an `aria-label`.\n */\nconst Scroll = React.forwardRef<HTMLDivElement, ScrollProps>(({ className, children, fade = false, ...props }, forwardedRef) => {\n const chrome = useChromeClasses();\n return (\n <ScrollArea type=\"hover\" fade={fade} className=\"rt-ShellScroll\">\n <div {...props} ref={forwardedRef} className={classNames('rt-BaseMenuContent', 'rt-SidebarContent', ...chrome, className)}>\n {/* A header's band does not reach a Toolbar in the scrolling list. */}\n <PaneBandSizeContext.Provider value={null}>\n <div className=\"rt-BaseMenuViewport\">{children}</div>\n </PaneBandSizeContext.Provider>\n </div>\n </ScrollArea>\n );\n});\nScroll.displayName = 'Shell.Scroll';\n\nexport { SidebarVisualContext, useSidebarVisual, ShellSizeContext, PaneChromeScope, PaneHeader, PaneFooter, Scroll, BAND_STEP, usePaneBandSize };\nexport type { SidebarVisualContextValue, PaneSize, BandSize, PaneHeaderProps, PaneFooterProps, ScrollProps };\n"],
5
+ "mappings": "wCAWA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aAcvB,IAAMC,EAA6B,gBAAgD,IAAI,EAEvF,SAASC,GAAmB,CAC1B,OAAa,aAAWD,CAAoB,CAC9C,CAGA,IAAME,EAAyB,gBAAwB,GAAG,EAM1D,SAASC,EAAgB,CAAE,SAAAC,EAAU,aAAAC,CAAa,EAAyD,CACzG,IAAMC,EAAa,aAAWJ,CAAgB,EACxCK,EAAc,UAAmC,KAAO,CAAE,KAAAD,EAAM,YAAa,OAAQ,aAAAD,CAAa,GAAI,CAACC,EAAMD,CAAY,CAAC,EAChI,OAAO,gBAACL,EAAqB,SAArB,CAA8B,MAAOO,GAAQH,CAAS,CAChE,CAEA,SAASI,GAAmB,CAC1B,IAAMC,EAASR,EAAiB,EAE1BS,EAAkB,aAAWR,CAAgB,EAC7CI,EAAOG,GAAQ,MAAQC,EACvBC,EAAcF,GAAQ,aAAe,OAC3C,MAAO,CAAC,qBAAsB,aAAaH,CAAI,GAAI,mBAAmBK,CAAW,EAAE,CACrF,CAQA,IAAMC,EAAY,CAAE,EAAK,IAAK,EAAK,IAAK,EAAK,IAAK,EAAK,GAAI,EAGrDC,EAA4B,gBAA+B,IAAI,EAErE,SAASC,GAAkB,CACzB,OAAa,aAAWD,CAAmB,CAC7C,CAEA,SAASE,GAAwB,CAC/B,IAAMN,EAASR,EAAiB,EAC1BS,EAAkB,aAAWR,CAAgB,EACnD,OAAOU,EAAUH,GAAQ,MAAQC,CAAS,CAC5C,CAaA,IAAMM,EAAmB,aAA4C,CAAC,CAAE,UAAAC,EAAW,MAAAC,EAAO,SAAAd,EAAU,GAAGe,CAAM,EAAGC,IAAiB,CAC/H,IAAMC,EAASb,EAAiB,EAC1Bc,EAAOP,EAAY,EACzB,OACE,gBAAC,OACE,GAAGI,EACJ,IAAKC,EACL,aAAYF,GAAS,OACrB,UAAWK,EAAW,qBAAsB,mBAAoB,8BAA+B,GAAGF,EAAQJ,CAAS,GAEnH,gBAACJ,EAAoB,SAApB,CAA6B,MAAOS,GAAOlB,CAAS,CACvD,CAEJ,CAAC,EACDY,EAAW,YAAc,mBAQzB,IAAMQ,EAAmB,aAA4C,CAAC,CAAE,UAAAP,EAAW,MAAAC,EAAO,SAAAd,EAAU,GAAGe,CAAM,EAAGC,IAAiB,CAC/H,IAAMC,EAASb,EAAiB,EAC1Bc,EAAOP,EAAY,EACzB,OACE,gBAAC,OACE,GAAGI,EACJ,IAAKC,EACL,aAAYF,GAAS,OACrB,UAAWK,EAAW,qBAAsB,mBAAoB,8BAA+B,GAAGF,EAAQJ,CAAS,GAEnH,gBAACJ,EAAoB,SAApB,CAA6B,MAAOS,GAAOlB,CAAS,CACvD,CAEJ,CAAC,EACDoB,EAAW,YAAc,mBAWzB,IAAMC,EAAe,aAAwC,CAAC,CAAE,UAAAR,EAAW,SAAAb,EAAU,KAAAsB,EAAO,GAAO,GAAGP,CAAM,EAAGC,IAAiB,CAC9H,IAAMC,EAASb,EAAiB,EAChC,OACE,gBAACmB,EAAA,CAAW,KAAK,QAAQ,KAAMD,EAAM,UAAU,kBAC7C,gBAAC,OAAK,GAAGP,EAAO,IAAKC,EAAc,UAAWG,EAAW,qBAAsB,oBAAqB,GAAGF,EAAQJ,CAAS,GAEtH,gBAACJ,EAAoB,SAApB,CAA6B,MAAO,MACnC,gBAAC,OAAI,UAAU,uBAAuBT,CAAS,CACjD,CACF,CACF,CAEJ,CAAC,EACDqB,EAAO,YAAc",
6
+ "names": ["React", "classNames", "SidebarVisualContext", "useSidebarVisual", "ShellSizeContext", "PaneChromeScope", "children", "presentation", "size", "value", "useChromeClasses", "visual", "shellSize", "menuVariant", "BAND_STEP", "PaneBandSizeContext", "usePaneBandSize", "useBandSize", "PaneHeader", "className", "float", "props", "forwardedRef", "chrome", "band", "classNames", "PaneFooter", "Scroll", "fade", "ScrollArea"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as o}from"./chunk-5PG5YGIW.js";import{z as t}from"zod";var l=o.extend({tooltip:t.string().optional().describe("Content to display in the tooltip on hover/focus"),tooltipSide:t.enum(["top","right","bottom","left"]).optional().default("top").describe("Side of the button where the tooltip should appear"),emphasis:t.enum(["loud","medium","quiet"]).optional().describe("The button's rank: loud (solid), medium (raised) or quiet (ghost). Not with variant."),iconOnly:t.boolean().optional().default(!1).describe("Square button holding only an icon; needs aria-label"),fullWidth:t.boolean().optional().default(!1).describe("Expands the button to fill its container"),tooltipAlign:t.enum(["start","center","end"]).optional().default("center").describe("Alignment of the tooltip relative to the button"),tooltipDelayDuration:t.number().optional().describe("Delay before showing the tooltip (in milliseconds)"),tooltipDisableHoverableContent:t.boolean().optional().default(!1).describe("Whether to disable hoverable content behavior")}).strict();function a(e){return e}export{l as a,a as b};
2
- //# sourceMappingURL=chunk-UI2EFF6F.js.map
1
+ import{a as o}from"./chunk-CC4GNSKL.js";import{z as t}from"zod";var l=o.extend({tooltip:t.string().optional().describe("Content to display in the tooltip on hover/focus"),tooltipSide:t.enum(["top","right","bottom","left"]).optional().default("top").describe("Side of the button where the tooltip should appear"),emphasis:t.enum(["loud","medium","quiet"]).optional().describe("The button's rank: loud (solid), medium (raised) or quiet (ghost). Not with variant."),iconOnly:t.boolean().optional().default(!1).describe("Square button holding only an icon; needs aria-label"),fullWidth:t.boolean().optional().default(!1).describe("Expands the button to fill its container"),tooltipAlign:t.enum(["start","center","end"]).optional().default("center").describe("Alignment of the tooltip relative to the button"),tooltipDelayDuration:t.number().optional().describe("Delay before showing the tooltip (in milliseconds)"),tooltipDisableHoverableContent:t.boolean().optional().default(!1).describe("Whether to disable hoverable content behavior")}).strict();function a(e){return e}export{l as a,a as b};
2
+ //# sourceMappingURL=chunk-E3754NJZ.js.map
@@ -0,0 +1,2 @@
1
+ import{a as at}from"./chunk-GHD3TKCA.js";import{a as Be}from"./chunk-KPPIW4OJ.js";import{g as et,j as tt}from"./chunk-IX5HIHVI.js";import{a as we}from"./chunk-O6K6RZXY.js";import{a as Ze}from"./chunk-ZJZIV2JH.js";import{a as ze}from"./chunk-35HNDWWM.js";import{a as Fe}from"./chunk-7CBZFHSQ.js";import{a as De}from"./chunk-AGAQC4HH.js";import{b as U}from"./chunk-FWB47YCH.js";import{d as Qe}from"./chunk-3YLYGKFB.js";import{a as Ot}from"./chunk-OS3FCYZY.js";var Vt={};Ot(Vt,{AttachTrigger:()=>bt,Attachment:()=>$e,AttachmentsRow:()=>mt,InlineEnd:()=>ut,InlineStart:()=>dt,Item:()=>ft,Root:()=>it,Row:()=>Rt,RowEnd:()=>gt,RowStart:()=>Ct,Send:()=>vt,Textarea:()=>lt});import*as e from"react";import E from"classnames";import{useComposedRefs as ot}from"radix-ui/internal";import{useDropzone as Ht}from"react-dropzone";var je=typeof window<"u"?e.useLayoutEffect:e.useEffect;function nt(t,o){let{placeholder:a}=t;if(!a){o();return}t.placeholder="";try{o()}finally{t.placeholder=a}}var It={values:["1","2","3"]},st=e.createContext(null),We=e.createContext(""),I=()=>{let t=e.useContext(st);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},me=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(o=>o.trim()).filter(Boolean):[],Ft=(t,o)=>{if(o.length===0)return!0;let a=t.type.toLowerCase(),c=t.name.toLowerCase();for(let i of o){let l=i.toLowerCase();if(l.includes("/")){let[d,u]=l.split("/"),[h,f]=a.split("/");if(d==="*"||d===h&&(u==="*"||u===f))return!0}else if(l.startsWith(".")&&c.endsWith(l))return!0}return!1},zt=/\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i,ct=(t,o)=>(o||"").toLowerCase().startsWith("image/")||zt.test(t),Ve=t=>t.trim().length>0,rt=(t,o)=>`${t} ${o}${t===1?"":"s"}`,Dt=0,Bt=()=>`chatbar-attachment-${Date.now()}-${++Dt}`,it=e.forwardRef((t,o)=>{let{className:a,style:c,children:i,value:l,defaultValue:d="",onValueChange:u,open:h,defaultOpen:f=!1,onOpenChange:g,expandOn:v="both",minLines:C=3,maxLines:w=6,sendMode:F="whenDirty",disabled:b,readOnly:S,onSubmit:D,size:M,variant:z,color:O,radius:H,width:Q,maxWidth:R,attachments:G,defaultAttachments:B,onAttachmentsChange:se,accept:P,multiple:L=!0,maxAttachments:Z,maxFileSize:_,paste:j=!0,pasteAccept:q,clearOnSubmit:V=!0,onAttachmentReject:k,dropzone:N=!0,apiRef:Se,onBlurCapture:pe,notices:he,context:fe,...Ee}=t,W=Qe(M,It),be=l!=null,[r,y]=e.useState(d),A=be?l:r,ee=h!=null,[X,te]=e.useState(f),ce=ee?h:X,Y="attachments"in t,[ie,Re]=e.useState(()=>B??[]),le=e.useMemo(()=>Y?G??[]:ie,[Y,G,ie]),[Ke,yt]=e.useState({text:"",id:0}),de=e.useCallback(n=>yt(s=>({text:n,id:s.id+1})),[]),Ue=e.useRef(null),xt=ot(o,Ue),Te=e.useRef(null),Le=e.useRef(null),ue=e.useRef(!1),Ce=e.useRef(!1),ge=e.useRef(void 0),ke=e.useRef(null),Ge=me(P).join(","),Ne=me(q).join(","),Me=e.useMemo(()=>me(Ge),[Ge]),Pt=e.useMemo(()=>Ne?me(Ne):Me,[Ne,Me]),_e={value:A,attachments:le,accepts:Me,pasteAccepts:Pt,multiple:L,maxAttachments:Z,maxFileSize:_,disabled:b,readOnly:S,expandOn:v,isValueControlled:be,isOpenControlled:ee,isAttachmentsControlled:Y,onValueChange:u,onOpenChange:g,onAttachmentsChange:se,onAttachmentReject:k,onSubmit:D},x=e.useRef(_e);x.current=_e;let Oe=e.useRef(null),$=e.useCallback(()=>Oe.current??x.current.attachments,[]),ae=e.useCallback(n=>{x.current.isOpenControlled||te(n),x.current.onOpenChange?.(n)},[]),ve=e.useCallback(n=>{x.current.isValueControlled||y(n),x.current.onValueChange?.(n)},[]),ne=e.useCallback(n=>{Oe.current=n,queueMicrotask(()=>{Oe.current=null}),x.current.isAttachmentsControlled||Re(n),x.current.onAttachmentsChange?.(n)},[]),ye=e.useRef(new Set),re=e.useCallback((n,s,m=x.current.multiple)=>{let p=x.current;if(p.disabled||p.readOnly||n.length===0)return 0;let K=$(),J=[],oe=[],Nt=typeof p.maxAttachments=="number"?Math.max(p.maxAttachments-K.length,0):1/0,Mt=m?1/0:1;for(let T of n){if(J.length>=Nt||J.length>=Mt){oe.push({file:T,reason:"count"});continue}if(typeof p.maxFileSize=="number"&&T.size>p.maxFileSize){oe.push({file:T,reason:"size"});continue}if(!Ft(T,s)){oe.push({file:T,reason:"type"});continue}let Ie=ct(T.name,T.type)?URL.createObjectURL(T):void 0;Ie&&ye.current.add(Ie),J.push({id:Bt(),name:T.name,size:T.size,type:T.type,file:T,url:Ie,status:"idle"})}let Ae=[];return J.length>0&&(ne(K.concat(J)),p.expandOn!=="none"&&ae(!0),Ae.push(`${rt(J.length,"file")} attached.`)),oe.length>0&&(p.onAttachmentReject?.(oe),Ae.push(`${rt(oe.length,"file")} could not be attached.`)),Ae.length>0&&de(Ae.join(" ")),J.length},[$,ne,ae,de]),xe=e.useCallback(n=>re(n,x.current.accepts),[re]),qe=e.useCallback(n=>re(n,x.current.pasteAccepts),[re]),Xe=e.useCallback(n=>{let s=$(),m=s.find(p=>p.id===n);m&&(ne(s.filter(p=>p.id!==n)),de(`Removed ${m.name}.`))},[$,ne,de]),Ye=e.useCallback(n=>{let s=x.current;if(s.disabled||s.readOnly)return!1;let m=$();if(!Ve(s.value)&&m.length===0)return!1;let p={value:s.value,attachments:m};if(n&&s.onSubmit)for(let K of m)K.url&&ye.current.delete(K.url);return s.onSubmit?.(p),n&&(ve(""),ne([])),!0},[$,ve,ne]);e.useEffect(()=>{let n=ye.current;if(n.size===0)return;let s=new Set(le.map(m=>m.url));for(let m of Array.from(n))s.has(m)||(URL.revokeObjectURL(m),n.delete(m))},[le]),e.useEffect(()=>{let n=ye.current;return()=>{if(!x.current.isAttachmentsControlled){for(let s of Array.from(n))URL.revokeObjectURL(s);n.clear()}}},[]);let Pe=e.useCallback(n=>{let s=x.current,m=Le.current;if(clearTimeout(ge.current),Ce.current=!1,!m||s.disabled||s.readOnly)return;let p=n?.accept!=null?me(n.accept):s.accepts,K=n?.multiple??s.multiple;ke.current={patterns:p,multiple:K},m.accept=p.join(","),m.multiple=K,ue.current=!0,m.click(),setTimeout(()=>{document.hasFocus()&&(ue.current=!1)},1e3)},[]),Je=e.useCallback(()=>{Ce.current=!0,clearTimeout(ge.current),ge.current=setTimeout(()=>{Ce.current=!1},800)},[]);e.useEffect(()=>()=>clearTimeout(ge.current),[]),e.useEffect(()=>{let n=Le.current,s=()=>{ue.current=!1};return window.addEventListener("focus",s),n?.addEventListener("cancel",s),()=>{window.removeEventListener("focus",s),n?.removeEventListener("cancel",s)}},[]);let At=e.useCallback(n=>{let s=n.currentTarget,m=Array.from(s.files??[]),p=ke.current;re(m,p?.patterns??x.current.accepts,p?.multiple),ue.current=!1,ke.current=null,s.value=""},[re]),wt=e.useCallback(n=>{pe?.(n);let s=x.current,m=Ue.current;if(!m||s.expandOn==="none")return;let p=n.relatedTarget;p&&m.contains(p)||ue.current||Ce.current||!Ve(s.value)&&$().length===0&&ae(!1)},[pe,ae,$]),St=e.useCallback(n=>{xe(n)},[xe]),{getRootProps:Et,isDragActive:Tt}=Ht({onDrop:St,onDragEnter:()=>de(""),noClick:!0,noKeyboard:!0,noPaste:!0,disabled:!N||b||S}),He=N&&Tt;e.useImperativeHandle(Se,()=>({focusTextarea:()=>Te.current?.focus({preventScroll:!0}),openFilePicker:()=>Pe()}),[Pe]);let Lt=e.useCallback(n=>{if(b||n.pointerType==="mouse"&&n.button!==0)return;let s=n.target;s instanceof Element&&s.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')||(n.preventDefault(),Te.current?.focus({preventScroll:!0}))},[b]),kt=e.useMemo(()=>({open:ce,setOpen:ae,setValue:ve,size:W,expandOn:v,minLines:C,maxLines:w,sendMode:F,disabled:b,readOnly:S,paste:j,clearOnSubmit:V,multiple:L,textareaRef:Te,attachments:le,removeAttachment:Xe,submit:Ye,appendFiles:xe,appendFilesFromPaste:qe,openFilePicker:Pe,beginFilePickerPress:Je}),[ce,ae,ve,W,v,C,w,F,b,S,j,V,L,le,Xe,Ye,xe,qe,Pe,Je]);return e.createElement(st.Provider,{value:kt},e.createElement(We.Provider,{value:A},e.createElement(e.Fragment,null,e.createElement("div",{...Ee,ref:xt,className:E("rt-ChatbarRoot",`rt-r-size-${W}`,a),style:{position:"relative",width:Q,maxWidth:R,...c},"data-state":ce?"open":"closed","data-disabled":b?"":void 0,"data-readonly":S?"":void 0,"data-drop-active":He?"":void 0,"data-accent-color":O,"data-radius":H,onBlurCapture:wt},e.createElement("input",{ref:Le,type:"file",tabIndex:-1,"aria-hidden":!0,style:{display:"none"},onChange:At}),he?e.createElement("div",{className:"rt-ChatbarNotices"},e.createElement(at.Provider,{value:W},he)):null,e.createElement("div",{...N?Et():{},style:{width:"100%",flex:"1 1 auto",minHeight:0},onPointerDown:Lt},e.createElement("div",{className:E("rt-ChatbarBox",`rt-variant-${z??"raised"}`),style:{position:"relative"},"data-accent-color":O,"data-radius":H},e.createElement("div",{className:"rt-ChatbarGrid"},i),He&&e.createElement("div",{className:"rt-ChatbarDropOverlay","aria-hidden":!0},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(we,{emphasis:"medium",size:W,weight:"medium"},"Drop files here to attach"))))),fe?e.createElement(we,{as:"div",size:W==="3"?"2":"1",emphasis:"medium",className:"rt-ChatbarContext"},fe):null,e.createElement(De,{role:"status","aria-live":"polite"},He?"Drop files here to attach.":e.createElement("span",{key:Ke.id},Ke.text))))))});it.displayName="Chatbar.Root";var lt=e.forwardRef((t,o)=>{let{className:a,style:c,asChild:i,onFocus:l,onChange:d,onPaste:u,onKeyDown:h,onCompositionStart:f,onCompositionEnd:g,submitOnEnter:v=!1,...C}=t,w=I(),F=e.useContext(We),{open:b,minLines:S,maxLines:D,expandOn:M,disabled:z,readOnly:O,setOpen:H,setValue:Q,textareaRef:R,paste:G,appendFilesFromPaste:B,size:se,submit:P,clearOnSubmit:L}=w,Z=ot(o,R),_=e.useRef(0),j=e.useRef(0),q=e.useRef(!1),V=e.useRef({open:b,minLines:S,maxLines:D});je(()=>{V.current={open:b,minLines:S,maxLines:D}},[b,S,D]);let k=e.useCallback(()=>{let r=R.current;if(!r)return;let y=window.getComputedStyle(r);_.current=parseFloat(y.lineHeight)||20,j.current=(parseFloat(y.paddingTop)||0)+(parseFloat(y.paddingBottom)||0)},[R]),N=e.useCallback((r,y)=>{let{minLines:A,maxLines:ee}=V.current,X=_.current,te=j.current,ce=Math.ceil((y?A:1)*X)+te,Y=Math.ceil((y?ee:1)*X)+te,ie=Math.max(r.scrollHeight,ce);r.style.height=`${Math.min(ie,Y)}px`;let Re=ie>Y;r.style.overflowY=Re?"auto":"hidden",r.style.maxHeight=Re?`${Y}px`:"none"},[]);je(()=>{k()},[k,se]),je(()=>{let r=R.current;r&&(_.current===0&&k(),nt(r,()=>{r.style.height="auto";let y=b;if(!b&&(M==="overflow"||M==="both")){let A=Math.ceil(_.current)+j.current;r.scrollHeight>A+1&&(y=!0,H(!0))}N(r,y)}))},[F,b,M,S,D,se,H,R,k,N]),e.useEffect(()=>{let r=R.current;if(!r||typeof ResizeObserver>"u")return;let y=-1,A=new ResizeObserver(ee=>{let X=ee[0]?.contentRect.width??0;if(X===y)return;let te=y===-1;y=X,!te&&(k(),nt(r,()=>{r.style.height="auto",N(r,V.current.open)}))});return A.observe(r),()=>A.disconnect()},[R,k,N]),e.useEffect(()=>{},[]);let Se=e.useCallback(r=>{l?.(r),!(z||O)&&(M==="focus"||M==="both")&&!b&&H(!0)},[z,O,M,b,H,l]),pe=e.useCallback(r=>{Q(r.currentTarget.value),d?.(r)},[Q,d]),he=e.useCallback(r=>{if(u?.(r),r.defaultPrevented||!G||z||O)return;let y=Array.from(r.clipboardData?.items??[]).filter(A=>A.kind==="file").map(A=>A.getAsFile()).filter(A=>!!A);y.length!==0&&B(y)>0&&r.preventDefault()},[G,z,O,u,B]),fe=e.useCallback(r=>{q.current=!0,f?.(r)},[f]),Ee=e.useCallback(r=>{q.current=!1,g?.(r)},[g]),W=e.useCallback(r=>{h?.(r),!(r.defaultPrevented||!v)&&(r.key!=="Enter"||r.shiftKey||r.altKey||r.ctrlKey||r.metaKey||q.current||r.nativeEvent.isComposing||r.nativeEvent.keyCode===229||(r.preventDefault(),P(L)))},[v,h,P,L]),be=i?U:"textarea";return e.createElement("div",{className:E("rt-ChatbarField","rt-ChatbarTextarea",a)},e.createElement(be,{...C,ref:Z,className:"rt-ChatbarInput",value:F,onChange:pe,onFocus:Se,onPaste:he,onKeyDown:W,onCompositionStart:fe,onCompositionEnd:Ee,disabled:z,readOnly:O,rows:b?S:1,spellCheck:C.spellCheck??!0,autoCorrect:C.autoCorrect??"on",style:c}))});lt.displayName="Chatbar.Textarea";var dt=e.forwardRef((t,o)=>{let{children:a,asChild:c,className:i,...l}=t;return I().open?null:e.createElement(c?U:"div",{...l,ref:o,className:E("rt-ChatbarInlineStart",i)},a)});dt.displayName="Chatbar.InlineStart";var ut=e.forwardRef((t,o)=>{let{children:a,asChild:c,className:i,...l}=t;return I().open?null:e.createElement(c?U:"div",{...l,ref:o,className:E("rt-ChatbarInlineEnd",i)},a)});ut.displayName="Chatbar.InlineEnd";var mt=e.forwardRef((t,o)=>{let{asChild:a,forceMount:c,renderAttachment:i,className:l,children:d,...u}=t,h=I(),f=e.Children.toArray(d).length>0;return h.attachments.length===0&&!f&&!c?null:e.createElement("div",null,e.createElement(a?U:"div",{...u,ref:o,className:E("rt-ChatbarAttachmentsRow",l),role:"list","aria-label":u["aria-label"]??"Attachments"},e.createElement(Ze,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal"},e.createElement(Fe,{align:"center",gap:"3",minWidth:"fit-content"},h.attachments.map(v=>e.createElement($e,{key:v.id,attachment:v,asChild:!!i},i?.(v))),d))))});mt.displayName="Chatbar.AttachmentsRow";function pt(t,o){let a=t.closest('[role="listitem"]'),c=a?.parentElement?Array.from(a.parentElement.children):[],i=a?c.indexOf(a):-1,d=(c[i+1]??c[i-1])?.querySelector(".rt-ChatbarItemRemove");d?d.focus():o.current?.focus({preventScroll:!0})}var ht=({lead:t,leadKind:o,label:a,detail:c,removeLabel:i,onRemove:l})=>{let d=I();return e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-ChatbarItemLead","data-kind":o,"aria-hidden":!0},t),e.createElement(we,{className:"rt-ChatbarItemLabel",size:d.size,truncate:!0},a,c?e.createElement(De,null,", ",c):null),l&&e.createElement(Be,{className:"rt-ChatbarItemRemove","aria-label":i,size:"1",variant:"ghost",color:"gray",onClick:l},e.createElement(et,null)))},jt={uploading:"uploading",error:"failed to upload"},$e=e.forwardRef((t,o)=>{let{attachment:a,asChild:c,className:i,children:l,...d}=t,u=I(),h=c?U:"div",f=!!a.url&&ct(a.name,a.type),g=`${Math.ceil(a.size/1024)} KB`,v=a.status?jt[a.status]:void 0,C=u.disabled||u.readOnly,w=b=>{pt(b.currentTarget,u.textareaRef),u.removeAttachment(a.id)},F=a.status==="uploading"?e.createElement(ze,null):f?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:a.url,alt:""}):e.createElement(tt,null);return e.createElement(h,{...d,ref:o,className:E(l?"rt-ChatbarAttachment":"rt-ChatbarAttachment rt-ChatbarItem",i),role:"listitem","data-kind":f?"image":"file","data-status":a.status,title:a.name},l??e.createElement(ht,{lead:F,leadKind:f&&a.status!=="uploading"?"image":"icon",label:a.name,detail:v?`${g}, ${v}`:g,removeLabel:`Remove ${a.name}`,onRemove:C?void 0:w}))});$e.displayName="Chatbar.Attachment";var ft=e.forwardRef((t,o)=>{let{children:a,icon:c,image:i,color:l,onRemove:d,removeLabel:u,className:h,...f}=t,g=I(),v=g.disabled||g.readOnly,C=d?w=>{pt(w.currentTarget,g.textareaRef),d()}:void 0;return e.createElement("div",{...f,ref:o,className:E("rt-ChatbarItem",h),role:"listitem","data-accent-color":i?void 0:l??"gray",title:a},e.createElement(ht,{lead:i?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:i,alt:""}):c,leadKind:i?"image":"icon",label:a,removeLabel:u??`Remove ${a}`,onRemove:v?void 0:C}))});ft.displayName="Chatbar.Item";var bt=e.forwardRef((t,o)=>{let{asChild:a,accept:c,multiple:i,disabled:l,onPointerDown:d,onClick:u,...h}=t,f=I(),g=l||f.disabled||f.readOnly;return e.createElement(a?U:"button",{...h,ref:o,className:E("rt-ChatbarAttachTrigger",h.className),type:h.type??"button","aria-label":h["aria-label"]??"Add attachments",disabled:g,onPointerDown:C=>{d?.(C),!g&&!C.defaultPrevented&&f.beginFilePickerPress()},onClick:C=>{u?.(C),!(g||C.defaultPrevented)&&f.openFilePicker({accept:c,multiple:i})}})});bt.displayName="Chatbar.AttachTrigger";var Rt=e.forwardRef((t,o)=>{let{asChild:a,children:c,className:i,...l}=t;return I().open?e.createElement("div",null,e.createElement(a?U:"div",{...l,ref:o,className:E("rt-ChatbarRow",i)},e.createElement(Fe,{align:"center",justify:"between",width:"100%"},c))):null});Rt.displayName="Chatbar.Row";var Ct=e.forwardRef((t,o)=>{let{className:a,...c}=t;return e.createElement("div",{...c,ref:o,className:E("rt-ChatbarRowStart",a)})});Ct.displayName="Chatbar.RowStart";var gt=e.forwardRef((t,o)=>{let{className:a,...c}=t;return e.createElement("div",{...c,ref:o,className:E("rt-ChatbarRowEnd",a)})});gt.displayName="Chatbar.RowEnd";var vt=e.forwardRef((t,o)=>{let{asChild:a,clearOnSend:c,disabled:i,children:l,style:d,className:u,size:h,variant:f,emphasis:g,tabIndex:v,onClick:C,status:w="ready",onStop:F,onRetry:b,stopLabel:S="Stop",retryLabel:D="Retry",stopIcon:M,retryIcon:z,"aria-label":O,"aria-labelledby":H,...Q}=t,R=I(),G=e.useContext(We),B=Ve(G)||R.attachments.length>0,P=B?"send":w==="submitted"||w==="streaming"?"stop":w==="error"?"retry":"send";if(R.sendMode==="never"&&P==="send")return null;let L=P!=="send"||R.sendMode==="always"||B,Z=P==="send"?i||R.disabled||R.readOnly||!B:i||R.disabled,j=P==="stop"?{"aria-label":S}:P==="retry"?{"aria-label":D}:H?{"aria-labelledby":H}:{"aria-label":O??"Send"},q=k=>{if(C?.(k),k.defaultPrevented||Z)return;if(P==="stop"){F?.();return}if(P==="retry"){b?.();return}let N=c??R.clearOnSubmit;R.submit(N)&&N&&R.textareaRef.current?.focus({preventScroll:!0})},V=P==="stop"?M??(w==="submitted"?e.createElement(ze,null):e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},e.createElement("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2"}))):P==="retry"?z??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","aria-hidden":!0},e.createElement("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),e.createElement("path",{d:"M3 3v5h5"})):l??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","aria-hidden":!0},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"}));return e.createElement(Be,{...Q,ref:o,size:h??R.size,...g?{emphasis:g}:{variant:f??(R.open||P!=="send"?"solid":"ghost")},disabled:Z,className:E("rt-ChatbarSend",u),style:{opacity:L?1:0,pointerEvents:L?void 0:"none",...d},"aria-hidden":L?void 0:!0,tabIndex:L?v:-1,asChild:a,onClick:q,"data-status":w,"data-mode":P,...j},V)});vt.displayName="Chatbar.Send";export{it as a,lt as b,dt as c,ut as d,mt as e,$e as f,ft as g,bt as h,Rt as i,Ct as j,gt as k,vt as l,Vt as m};
2
+ //# sourceMappingURL=chunk-EA2XSEFH.js.map