@womp/kookie-ui 0.24.0 → 0.25.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 (1118) hide show
  1. package/README.md +3 -3
  2. package/components.css +12854 -11866
  3. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-button.js +2 -1
  5. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  6. package/dist/cjs/components/_internal/base-button.props.js +1 -0
  7. package/dist/cjs/components/_internal/base-button.props.js.map +2 -2
  8. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -0
  9. package/dist/cjs/components/_internal/base-checkbox.props.js.map +1 -1
  10. package/dist/cjs/components/_internal/base-menu.props.js +1 -0
  11. package/dist/cjs/components/_internal/base-menu.props.js.map +1 -1
  12. package/dist/cjs/components/_internal/base-menu.utils.js +1 -0
  13. package/dist/cjs/components/_internal/base-menu.utils.js.map +1 -1
  14. package/dist/cjs/components/_internal/base-radio.props.js +1 -0
  15. package/dist/cjs/components/_internal/base-radio.props.js.map +1 -1
  16. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -0
  17. package/dist/cjs/components/_internal/base-tab-list.props.js.map +1 -1
  18. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  19. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +2 -1
  21. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +3 -3
  22. package/dist/cjs/components/_internal/menu-context.d.ts +10 -0
  23. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  24. package/dist/cjs/components/_internal/menu-context.js +2 -1
  25. package/dist/cjs/components/_internal/menu-context.js.map +3 -3
  26. package/dist/cjs/components/_internal/pane-chrome.d.ts +3 -1
  27. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  28. package/dist/cjs/components/_internal/pane-chrome.js +2 -1
  29. package/dist/cjs/components/_internal/pane-chrome.js.map +3 -3
  30. package/dist/cjs/components/_internal/shell-bottom.d.ts +1 -1
  31. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  32. package/dist/cjs/components/_internal/shell-bottom.js +2 -1
  33. package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
  34. package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
  35. package/dist/cjs/components/_internal/shell-handles.js +2 -1
  36. package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
  37. package/dist/cjs/components/_internal/shell-inspector.d.ts +1 -1
  38. package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
  39. package/dist/cjs/components/_internal/shell-inspector.js +2 -1
  40. package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
  41. package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -1
  42. package/dist/cjs/components/_internal/shell-pane.js +2 -1
  43. package/dist/cjs/components/_internal/shell-pane.js.map +3 -3
  44. package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -1
  45. package/dist/cjs/components/_internal/shell-resizable.js +2 -1
  46. package/dist/cjs/components/_internal/shell-resizable.js.map +3 -3
  47. package/dist/cjs/components/_internal/shell-resize.js +1 -0
  48. package/dist/cjs/components/_internal/shell-resize.js.map +1 -1
  49. package/dist/cjs/components/_internal/shell-rest.js +1 -0
  50. package/dist/cjs/components/_internal/shell-rest.js.map +1 -1
  51. package/dist/cjs/components/_internal/shell-sidebar.d.ts +1 -1
  52. package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
  53. package/dist/cjs/components/_internal/shell-sidebar.js +2 -1
  54. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  55. package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
  56. package/dist/cjs/components/_internal/shell-store.js +2 -1
  57. package/dist/cjs/components/_internal/shell-store.js.map +3 -3
  58. package/dist/cjs/components/accessible-icon.js +1 -0
  59. package/dist/cjs/components/accessible-icon.js.map +1 -1
  60. package/dist/cjs/components/accordion.d.ts.map +1 -1
  61. package/dist/cjs/components/accordion.js +2 -1
  62. package/dist/cjs/components/accordion.js.map +3 -3
  63. package/dist/cjs/components/accordion.props.js +1 -0
  64. package/dist/cjs/components/accordion.props.js.map +1 -1
  65. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  66. package/dist/cjs/components/alert-dialog.js +2 -1
  67. package/dist/cjs/components/alert-dialog.js.map +4 -4
  68. package/dist/cjs/components/alert-dialog.props.js +1 -0
  69. package/dist/cjs/components/alert-dialog.props.js.map +1 -1
  70. package/dist/cjs/components/avatar.d.ts.map +1 -1
  71. package/dist/cjs/components/avatar.js +2 -1
  72. package/dist/cjs/components/avatar.js.map +3 -3
  73. package/dist/cjs/components/avatar.props.js +1 -0
  74. package/dist/cjs/components/avatar.props.js.map +1 -1
  75. package/dist/cjs/components/blockquote.js +1 -0
  76. package/dist/cjs/components/blockquote.js.map +1 -1
  77. package/dist/cjs/components/blockquote.props.js +1 -0
  78. package/dist/cjs/components/blockquote.props.js.map +1 -1
  79. package/dist/cjs/components/box.js +1 -0
  80. package/dist/cjs/components/box.js.map +1 -1
  81. package/dist/cjs/components/box.props.js +1 -0
  82. package/dist/cjs/components/box.props.js.map +1 -1
  83. package/dist/cjs/components/button.d.ts.map +1 -1
  84. package/dist/cjs/components/button.js +2 -1
  85. package/dist/cjs/components/button.js.map +3 -3
  86. package/dist/cjs/components/button.props.js +1 -0
  87. package/dist/cjs/components/button.props.js.map +2 -2
  88. package/dist/cjs/components/card.js +1 -0
  89. package/dist/cjs/components/card.js.map +1 -1
  90. package/dist/cjs/components/card.props.js +1 -0
  91. package/dist/cjs/components/card.props.js.map +1 -1
  92. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  93. package/dist/cjs/components/chatbar.js +2 -1
  94. package/dist/cjs/components/chatbar.js.map +3 -3
  95. package/dist/cjs/components/checkbox-group.js +1 -0
  96. package/dist/cjs/components/checkbox-group.js.map +1 -1
  97. package/dist/cjs/components/checkbox-group.primitive.js +1 -0
  98. package/dist/cjs/components/checkbox-group.primitive.js.map +1 -1
  99. package/dist/cjs/components/checkbox-group.props.js +1 -0
  100. package/dist/cjs/components/checkbox-group.props.js.map +1 -1
  101. package/dist/cjs/components/checkbox.js +1 -0
  102. package/dist/cjs/components/checkbox.js.map +1 -1
  103. package/dist/cjs/components/checkbox.props.js +1 -0
  104. package/dist/cjs/components/checkbox.props.js.map +1 -1
  105. package/dist/cjs/components/chip.js +2 -1
  106. package/dist/cjs/components/chip.js.map +3 -3
  107. package/dist/cjs/components/chip.props.js +1 -0
  108. package/dist/cjs/components/chip.props.js.map +1 -1
  109. package/dist/cjs/components/code.js +1 -0
  110. package/dist/cjs/components/code.js.map +1 -1
  111. package/dist/cjs/components/code.props.js +1 -0
  112. package/dist/cjs/components/code.props.js.map +1 -1
  113. package/dist/cjs/components/combobox.d.ts.map +1 -1
  114. package/dist/cjs/components/combobox.js +2 -1
  115. package/dist/cjs/components/combobox.js.map +4 -4
  116. package/dist/cjs/components/combobox.props.js +1 -0
  117. package/dist/cjs/components/combobox.props.js.map +1 -1
  118. package/dist/cjs/components/context-menu.d.ts +1 -2
  119. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  120. package/dist/cjs/components/context-menu.js +2 -1
  121. package/dist/cjs/components/context-menu.js.map +4 -4
  122. package/dist/cjs/components/context-menu.props.js +1 -0
  123. package/dist/cjs/components/context-menu.props.js.map +1 -1
  124. package/dist/cjs/components/dialog.js +2 -1
  125. package/dist/cjs/components/dialog.js.map +3 -3
  126. package/dist/cjs/components/dialog.props.js +1 -0
  127. package/dist/cjs/components/dialog.props.js.map +1 -1
  128. package/dist/cjs/components/dropdown-menu.d.ts +1 -2
  129. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  130. package/dist/cjs/components/dropdown-menu.js +2 -1
  131. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  132. package/dist/cjs/components/dropdown-menu.props.js +1 -0
  133. package/dist/cjs/components/dropdown-menu.props.js.map +1 -1
  134. package/dist/cjs/components/flex.js +1 -0
  135. package/dist/cjs/components/flex.js.map +2 -2
  136. package/dist/cjs/components/flex.props.js +1 -0
  137. package/dist/cjs/components/flex.props.js.map +2 -2
  138. package/dist/cjs/components/grid.js +1 -0
  139. package/dist/cjs/components/grid.js.map +2 -2
  140. package/dist/cjs/components/grid.props.js +1 -0
  141. package/dist/cjs/components/grid.props.js.map +2 -2
  142. package/dist/cjs/components/heading.d.ts +2 -2
  143. package/dist/cjs/components/heading.d.ts.map +1 -1
  144. package/dist/cjs/components/heading.js +2 -1
  145. package/dist/cjs/components/heading.js.map +2 -2
  146. package/dist/cjs/components/heading.props.d.ts +1 -1
  147. package/dist/cjs/components/heading.props.js +2 -1
  148. package/dist/cjs/components/heading.props.js.map +2 -2
  149. package/dist/cjs/components/icons.js +1 -0
  150. package/dist/cjs/components/icons.js.map +1 -1
  151. package/dist/cjs/components/image.d.ts +9 -2
  152. package/dist/cjs/components/image.d.ts.map +1 -1
  153. package/dist/cjs/components/image.js +2 -1
  154. package/dist/cjs/components/image.js.map +3 -3
  155. package/dist/cjs/components/image.props.js +1 -0
  156. package/dist/cjs/components/image.props.js.map +1 -1
  157. package/dist/cjs/components/index.d.ts +1 -1
  158. package/dist/cjs/components/index.d.ts.map +1 -1
  159. package/dist/cjs/components/index.js +3 -2
  160. package/dist/cjs/components/index.js.map +4 -4
  161. package/dist/cjs/components/kbd.js +1 -0
  162. package/dist/cjs/components/kbd.js.map +1 -1
  163. package/dist/cjs/components/kbd.props.js +1 -0
  164. package/dist/cjs/components/kbd.props.js.map +1 -1
  165. package/dist/cjs/components/link.js +1 -0
  166. package/dist/cjs/components/link.js.map +1 -1
  167. package/dist/cjs/components/link.props.js +1 -0
  168. package/dist/cjs/components/link.props.js.map +1 -1
  169. package/dist/cjs/components/message-scroller.d.ts +2 -2
  170. package/dist/cjs/components/message-scroller.d.ts.map +1 -1
  171. package/dist/cjs/components/message-scroller.js +2 -1
  172. package/dist/cjs/components/message-scroller.js.map +3 -3
  173. package/dist/cjs/components/navbar.js +1 -0
  174. package/dist/cjs/components/navbar.js.map +2 -2
  175. package/dist/cjs/components/navbar.props.js +1 -0
  176. package/dist/cjs/components/navbar.props.js.map +1 -1
  177. package/dist/cjs/components/notice.js +2 -1
  178. package/dist/cjs/components/notice.js.map +3 -3
  179. package/dist/cjs/components/popover.d.ts +3 -1
  180. package/dist/cjs/components/popover.d.ts.map +1 -1
  181. package/dist/cjs/components/popover.js +2 -1
  182. package/dist/cjs/components/popover.js.map +3 -3
  183. package/dist/cjs/components/popover.props.js +1 -0
  184. package/dist/cjs/components/popover.props.js.map +1 -1
  185. package/dist/cjs/components/portal.js +1 -0
  186. package/dist/cjs/components/portal.js.map +1 -1
  187. package/dist/cjs/components/progress.d.ts.map +1 -1
  188. package/dist/cjs/components/progress.js +2 -1
  189. package/dist/cjs/components/progress.js.map +3 -3
  190. package/dist/cjs/components/progress.props.js +1 -0
  191. package/dist/cjs/components/progress.props.js.map +1 -1
  192. package/dist/cjs/components/radio-group.js +1 -0
  193. package/dist/cjs/components/radio-group.js.map +1 -1
  194. package/dist/cjs/components/radio-group.props.js +1 -0
  195. package/dist/cjs/components/radio-group.props.js.map +1 -1
  196. package/dist/cjs/components/radio.js +1 -0
  197. package/dist/cjs/components/radio.js.map +1 -1
  198. package/dist/cjs/components/radio.props.js +1 -0
  199. package/dist/cjs/components/radio.props.js.map +1 -1
  200. package/dist/cjs/components/reset.js +1 -0
  201. package/dist/cjs/components/reset.js.map +1 -1
  202. package/dist/cjs/components/schemas/base-button.schema.js +1 -0
  203. package/dist/cjs/components/schemas/base-button.schema.js.map +1 -1
  204. package/dist/cjs/components/schemas/button.schema.js +1 -0
  205. package/dist/cjs/components/schemas/button.schema.js.map +1 -1
  206. package/dist/cjs/components/schemas/index.js +1 -0
  207. package/dist/cjs/components/schemas/index.js.map +1 -1
  208. package/dist/cjs/components/schemas/shell.schema.js +1 -0
  209. package/dist/cjs/components/schemas/shell.schema.js.map +1 -1
  210. package/dist/cjs/components/schemas/toggle.schema.js +1 -0
  211. package/dist/cjs/components/schemas/toggle.schema.js.map +1 -1
  212. package/dist/cjs/components/scroll-area.js +1 -0
  213. package/dist/cjs/components/scroll-area.js.map +1 -1
  214. package/dist/cjs/components/scroll-area.props.js +1 -0
  215. package/dist/cjs/components/scroll-area.props.js.map +1 -1
  216. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  217. package/dist/cjs/components/segmented-control.js +2 -1
  218. package/dist/cjs/components/segmented-control.js.map +3 -3
  219. package/dist/cjs/components/segmented-control.props.d.ts +0 -1
  220. package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
  221. package/dist/cjs/components/segmented-control.props.js +2 -1
  222. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  223. package/dist/cjs/components/select.d.ts.map +1 -1
  224. package/dist/cjs/components/select.js +2 -1
  225. package/dist/cjs/components/select.js.map +4 -4
  226. package/dist/cjs/components/select.props.js +1 -0
  227. package/dist/cjs/components/select.props.js.map +1 -1
  228. package/dist/cjs/components/separator.d.ts.map +1 -1
  229. package/dist/cjs/components/separator.js +2 -1
  230. package/dist/cjs/components/separator.js.map +4 -4
  231. package/dist/cjs/components/separator.props.d.ts +1 -1
  232. package/dist/cjs/components/separator.props.js +2 -1
  233. package/dist/cjs/components/separator.props.js.map +2 -2
  234. package/dist/cjs/components/sheet.d.ts +1 -1
  235. package/dist/cjs/components/sheet.d.ts.map +1 -1
  236. package/dist/cjs/components/sheet.js +2 -1
  237. package/dist/cjs/components/sheet.js.map +3 -3
  238. package/dist/cjs/components/shell.context.js +2 -1
  239. package/dist/cjs/components/shell.context.js.map +3 -3
  240. package/dist/cjs/components/shell.d.ts +5 -2
  241. package/dist/cjs/components/shell.d.ts.map +1 -1
  242. package/dist/cjs/components/shell.hooks.js +2 -1
  243. package/dist/cjs/components/shell.hooks.js.map +3 -3
  244. package/dist/cjs/components/shell.js +2 -1
  245. package/dist/cjs/components/shell.js.map +3 -3
  246. package/dist/cjs/components/shell.types.js +1 -0
  247. package/dist/cjs/components/shell.types.js.map +1 -1
  248. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  249. package/dist/cjs/components/sidebar.js +2 -1
  250. package/dist/cjs/components/sidebar.js.map +4 -4
  251. package/dist/cjs/components/slider.d.ts.map +1 -1
  252. package/dist/cjs/components/slider.js +2 -1
  253. package/dist/cjs/components/slider.js.map +3 -3
  254. package/dist/cjs/components/slider.props.d.ts +0 -2
  255. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  256. package/dist/cjs/components/slider.props.js +2 -1
  257. package/dist/cjs/components/slider.props.js.map +2 -2
  258. package/dist/cjs/components/slot.js +1 -0
  259. package/dist/cjs/components/slot.js.map +1 -1
  260. package/dist/cjs/components/spinner.d.ts.map +1 -1
  261. package/dist/cjs/components/spinner.js +2 -1
  262. package/dist/cjs/components/spinner.js.map +2 -2
  263. package/dist/cjs/components/spinner.props.js +1 -0
  264. package/dist/cjs/components/spinner.props.js.map +1 -1
  265. package/dist/cjs/components/switch.js +1 -0
  266. package/dist/cjs/components/switch.js.map +1 -1
  267. package/dist/cjs/components/switch.props.js +1 -0
  268. package/dist/cjs/components/switch.props.js.map +1 -1
  269. package/dist/cjs/components/table.d.ts.map +1 -1
  270. package/dist/cjs/components/table.js +2 -1
  271. package/dist/cjs/components/table.js.map +3 -3
  272. package/dist/cjs/components/table.props.d.ts +0 -2
  273. package/dist/cjs/components/table.props.d.ts.map +1 -1
  274. package/dist/cjs/components/table.props.js +2 -1
  275. package/dist/cjs/components/table.props.js.map +3 -3
  276. package/dist/cjs/components/tabs.d.ts.map +1 -1
  277. package/dist/cjs/components/tabs.js +2 -1
  278. package/dist/cjs/components/tabs.js.map +3 -3
  279. package/dist/cjs/components/tabs.props.js +1 -0
  280. package/dist/cjs/components/tabs.props.js.map +1 -1
  281. package/dist/cjs/components/text-area.d.ts.map +1 -1
  282. package/dist/cjs/components/text-area.js +2 -1
  283. package/dist/cjs/components/text-area.js.map +2 -2
  284. package/dist/cjs/components/text-area.props.js +1 -0
  285. package/dist/cjs/components/text-area.props.js.map +1 -1
  286. package/dist/cjs/components/text-field.d.ts.map +1 -1
  287. package/dist/cjs/components/text-field.js +3 -2
  288. package/dist/cjs/components/text-field.js.map +3 -3
  289. package/dist/cjs/components/text-field.props.js +1 -0
  290. package/dist/cjs/components/text-field.props.js.map +2 -2
  291. package/dist/cjs/components/text.js +1 -0
  292. package/dist/cjs/components/text.js.map +1 -1
  293. package/dist/cjs/components/text.props.js +1 -0
  294. package/dist/cjs/components/text.props.js.map +1 -1
  295. package/dist/cjs/components/theme.d.ts.map +1 -1
  296. package/dist/cjs/components/theme.js +2 -1
  297. package/dist/cjs/components/theme.js.map +3 -3
  298. package/dist/cjs/components/theme.props.js +1 -0
  299. package/dist/cjs/components/theme.props.js.map +1 -1
  300. package/dist/cjs/components/toggle.js +2 -1
  301. package/dist/cjs/components/toggle.js.map +3 -3
  302. package/dist/cjs/components/toolbar.d.ts +4 -1
  303. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  304. package/dist/cjs/components/toolbar.js +2 -1
  305. package/dist/cjs/components/toolbar.js.map +4 -4
  306. package/dist/cjs/components/toolbar.props.js +1 -0
  307. package/dist/cjs/components/toolbar.props.js.map +1 -1
  308. package/dist/cjs/components/tooltip.d.ts +13 -2
  309. package/dist/cjs/components/tooltip.d.ts.map +1 -1
  310. package/dist/cjs/components/tooltip.js +2 -1
  311. package/dist/cjs/components/tooltip.js.map +3 -3
  312. package/dist/cjs/components/tooltip.props.js +1 -0
  313. package/dist/cjs/components/tooltip.props.js.map +1 -1
  314. package/dist/cjs/components/virtual-menu.d.ts +19 -12
  315. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  316. package/dist/cjs/components/virtual-menu.js +2 -1
  317. package/dist/cjs/components/virtual-menu.js.map +3 -3
  318. package/dist/cjs/components/visually-hidden.js +1 -0
  319. package/dist/cjs/components/visually-hidden.js.map +1 -1
  320. package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -1
  321. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  322. package/dist/cjs/helpers/get-margin-styles.js.map +3 -3
  323. package/dist/cjs/helpers/index.js +4 -4
  324. package/dist/cjs/helpers/index.js.map +3 -3
  325. package/dist/cjs/hooks/index.js +5 -4
  326. package/dist/cjs/hooks/index.js.map +3 -3
  327. package/dist/cjs/hooks/use-appearance.d.ts.map +1 -1
  328. package/dist/cjs/hooks/use-appearance.js +4 -3
  329. package/dist/cjs/hooks/use-appearance.js.map +3 -3
  330. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  331. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  332. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +2 -1
  333. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +3 -3
  334. package/dist/cjs/hooks/use-breakpoint.js +1 -0
  335. package/dist/cjs/hooks/use-breakpoint.js.map +1 -1
  336. package/dist/cjs/hooks/use-live-announcer.js +1 -0
  337. package/dist/cjs/hooks/use-live-announcer.js.map +1 -1
  338. package/dist/cjs/hooks/use-prop-synced-state.js +1 -0
  339. package/dist/cjs/hooks/use-prop-synced-state.js.map +1 -1
  340. package/dist/cjs/hooks/use-scroll-edges.js +1 -0
  341. package/dist/cjs/hooks/use-scroll-edges.js.map +1 -1
  342. package/dist/cjs/hooks/use-thumb-sync.js +1 -0
  343. package/dist/cjs/hooks/use-thumb-sync.js.map +1 -1
  344. package/dist/cjs/hooks/use-toggle-state.js +1 -0
  345. package/dist/cjs/hooks/use-toggle-state.js.map +1 -1
  346. package/dist/cjs/hooks/use-tooltip-wrapper.js +1 -0
  347. package/dist/cjs/hooks/use-tooltip-wrapper.js.map +1 -1
  348. package/dist/cjs/index.js +6 -5
  349. package/dist/cjs/index.js.map +4 -4
  350. package/dist/cjs/props/gap.props.d.ts +4 -4
  351. package/dist/cjs/props/gap.props.js.map +1 -1
  352. package/dist/cjs/props/index.js +1 -1
  353. package/dist/cjs/props/index.js.map +3 -3
  354. package/dist/esm/chunk-2EXOL2BR.js +3 -0
  355. package/dist/esm/chunk-2EXOL2BR.js.map +7 -0
  356. package/dist/esm/chunk-2IU5XPR2.js +3 -0
  357. package/dist/esm/chunk-2IU5XPR2.js.map +7 -0
  358. package/dist/esm/chunk-2IUGM657.js +3 -0
  359. package/dist/esm/chunk-2IUGM657.js.map +7 -0
  360. package/dist/esm/{chunk-JYQGCXXI.js → chunk-2VSRZ4IT.js} +2 -1
  361. package/dist/esm/{chunk-JYQGCXXI.js.map → chunk-2VSRZ4IT.js.map} +1 -1
  362. package/dist/esm/chunk-2XZ7477Y.js +3 -0
  363. package/dist/esm/{chunk-NC3CJUE3.js.map → chunk-2XZ7477Y.js.map} +1 -1
  364. package/dist/esm/{chunk-GNTNGLYR.js → chunk-2Z2I27ZS.js} +3 -2
  365. package/dist/esm/{chunk-GNTNGLYR.js.map → chunk-2Z2I27ZS.js.map} +1 -1
  366. package/dist/esm/{chunk-PALE5UWK.js → chunk-3223MHQK.js} +3 -2
  367. package/dist/esm/{chunk-PALE5UWK.js.map → chunk-3223MHQK.js.map} +1 -1
  368. package/dist/esm/{chunk-MPTTUBFU.js → chunk-3H23GRNQ.js} +3 -2
  369. package/dist/esm/{chunk-MPTTUBFU.js.map → chunk-3H23GRNQ.js.map} +2 -2
  370. package/dist/esm/chunk-3LIF53YY.js +13 -0
  371. package/dist/esm/chunk-3LIF53YY.js.map +7 -0
  372. package/dist/esm/chunk-3QWGSRYC.js +3 -0
  373. package/dist/esm/chunk-3QWGSRYC.js.map +7 -0
  374. package/dist/esm/chunk-3WZLXGUE.js +3 -0
  375. package/dist/esm/chunk-3WZLXGUE.js.map +7 -0
  376. package/dist/esm/chunk-45O3JZWQ.js +6 -0
  377. package/dist/esm/chunk-45O3JZWQ.js.map +7 -0
  378. package/dist/esm/chunk-4ABQ6CDI.js +3 -0
  379. package/dist/esm/chunk-4ABQ6CDI.js.map +7 -0
  380. package/dist/esm/{chunk-IAEAXIBI.js → chunk-4J7QDLKI.js} +3 -2
  381. package/dist/esm/{chunk-IAEAXIBI.js.map → chunk-4J7QDLKI.js.map} +1 -1
  382. package/dist/esm/{chunk-4QKZYCCH.js → chunk-4Q5PUIDJ.js} +3 -2
  383. package/dist/esm/{chunk-4QKZYCCH.js.map → chunk-4Q5PUIDJ.js.map} +1 -1
  384. package/dist/esm/chunk-54HUG34P.js +3 -0
  385. package/dist/esm/chunk-54HUG34P.js.map +7 -0
  386. package/dist/esm/chunk-5EP3UTM7.js +3 -0
  387. package/dist/esm/{chunk-Q4IA622Q.js.map → chunk-5EP3UTM7.js.map} +1 -1
  388. package/dist/esm/chunk-5JYSYTHA.js +3 -0
  389. package/dist/esm/chunk-5JYSYTHA.js.map +7 -0
  390. package/dist/esm/{chunk-FWB47YCH.js → chunk-5KMEUZWN.js} +2 -1
  391. package/dist/esm/{chunk-FWB47YCH.js.map → chunk-5KMEUZWN.js.map} +1 -1
  392. package/dist/esm/{chunk-7MC7N4BC.js → chunk-5KQCG7AV.js} +2 -1
  393. package/dist/esm/{chunk-7MC7N4BC.js.map → chunk-5KQCG7AV.js.map} +1 -1
  394. package/dist/esm/chunk-5RFDCAKC.js +3 -0
  395. package/dist/esm/{chunk-SKOYHBIE.js.map → chunk-5RFDCAKC.js.map} +1 -1
  396. package/dist/esm/{chunk-BIITGC3Z.js → chunk-5WTSKXAE.js} +3 -2
  397. package/dist/esm/{chunk-BIITGC3Z.js.map → chunk-5WTSKXAE.js.map} +1 -1
  398. package/dist/esm/{chunk-OSSNMF5U.js → chunk-647DRBXQ.js} +3 -2
  399. package/dist/esm/{chunk-OSSNMF5U.js.map → chunk-647DRBXQ.js.map} +1 -1
  400. package/dist/esm/{chunk-KKMOGHIY.js → chunk-64EFWPHI.js} +3 -2
  401. package/dist/esm/{chunk-KKMOGHIY.js.map → chunk-64EFWPHI.js.map} +1 -1
  402. package/dist/esm/{chunk-BWLCTTTN.js → chunk-65KD6WS6.js} +3 -2
  403. package/dist/esm/{chunk-BWLCTTTN.js.map → chunk-65KD6WS6.js.map} +2 -2
  404. package/dist/esm/{chunk-RWTSGUVJ.js → chunk-6AMWYEM7.js} +3 -2
  405. package/dist/esm/{chunk-RWTSGUVJ.js.map → chunk-6AMWYEM7.js.map} +1 -1
  406. package/dist/esm/{chunk-ELAW7ZUG.js → chunk-6FLLFCBU.js} +2 -2
  407. package/dist/esm/{chunk-4P6TKZCA.js → chunk-6UZT3ZLO.js} +3 -2
  408. package/dist/esm/{chunk-4P6TKZCA.js.map → chunk-6UZT3ZLO.js.map} +1 -1
  409. package/dist/esm/chunk-7IHBNDCE.js +3 -0
  410. package/dist/esm/{chunk-WMVR2XBR.js.map → chunk-7IHBNDCE.js.map} +2 -2
  411. package/dist/esm/chunk-7J7RPEPB.js +3 -0
  412. package/dist/esm/chunk-7J7RPEPB.js.map +7 -0
  413. package/dist/esm/chunk-7N2Q5WOM.js +3 -0
  414. package/dist/esm/chunk-7N2Q5WOM.js.map +7 -0
  415. package/dist/esm/{chunk-25FNCKUM.js → chunk-7ROKZHH2.js} +3 -2
  416. package/dist/esm/{chunk-25FNCKUM.js.map → chunk-7ROKZHH2.js.map} +1 -1
  417. package/dist/esm/chunk-7VJF6EXN.js +3 -0
  418. package/dist/esm/chunk-7VJF6EXN.js.map +7 -0
  419. package/dist/esm/chunk-A2OMWZI7.js +2 -0
  420. package/dist/esm/{chunk-FDJV5RXX.js → chunk-A7QRPXXB.js} +3 -2
  421. package/dist/esm/{chunk-FDJV5RXX.js.map → chunk-A7QRPXXB.js.map} +1 -1
  422. package/dist/esm/chunk-AG2YETE6.js +3 -0
  423. package/dist/esm/chunk-AG2YETE6.js.map +7 -0
  424. package/dist/esm/{chunk-4BU4R7UM.js → chunk-AOBY2OUZ.js} +3 -2
  425. package/dist/esm/{chunk-4BU4R7UM.js.map → chunk-AOBY2OUZ.js.map} +1 -1
  426. package/dist/esm/{chunk-XEZXKPLE.js → chunk-AXODGYRY.js} +2 -1
  427. package/dist/esm/{chunk-XEZXKPLE.js.map → chunk-AXODGYRY.js.map} +1 -1
  428. package/dist/esm/chunk-AYKOOEZR.js +2 -0
  429. package/dist/esm/{chunk-YHYPIJCR.js → chunk-AZHSPPBV.js} +3 -2
  430. package/dist/esm/{chunk-YHYPIJCR.js.map → chunk-AZHSPPBV.js.map} +1 -1
  431. package/dist/esm/{chunk-ERNM3KVF.js → chunk-B6YGNB3V.js} +2 -1
  432. package/dist/esm/{chunk-ERNM3KVF.js.map → chunk-B6YGNB3V.js.map} +1 -1
  433. package/dist/esm/chunk-BMKUGZ4I.js +3 -0
  434. package/dist/esm/{chunk-VPSMETY2.js.map → chunk-BMKUGZ4I.js.map} +1 -1
  435. package/dist/esm/chunk-BOLSK63X.js +3 -0
  436. package/dist/esm/{chunk-X4A3XRBY.js.map → chunk-BOLSK63X.js.map} +1 -1
  437. package/dist/esm/chunk-BUZGRMDD.js +3 -0
  438. package/dist/esm/chunk-BUZGRMDD.js.map +7 -0
  439. package/dist/esm/{chunk-IDOZJVO6.js → chunk-CAAEEHGQ.js} +3 -2
  440. package/dist/esm/{chunk-IDOZJVO6.js.map → chunk-CAAEEHGQ.js.map} +1 -1
  441. package/dist/esm/{chunk-3QZBWH2A.js → chunk-CKJXTEVO.js} +3 -2
  442. package/dist/esm/chunk-CKJXTEVO.js.map +7 -0
  443. package/dist/esm/chunk-CLJ6SEGP.js +3 -0
  444. package/dist/esm/chunk-CLJ6SEGP.js.map +7 -0
  445. package/dist/esm/chunk-CR65RYGM.js +3 -0
  446. package/dist/esm/chunk-CR65RYGM.js.map +7 -0
  447. package/dist/esm/{chunk-H5BYPX6V.js → chunk-CRCYUJMK.js} +3 -2
  448. package/dist/esm/{chunk-H5BYPX6V.js.map → chunk-CRCYUJMK.js.map} +1 -1
  449. package/dist/esm/chunk-CV7QQTI3.js +3 -0
  450. package/dist/esm/chunk-CV7QQTI3.js.map +7 -0
  451. package/dist/esm/chunk-CYTPMHSJ.js +3 -0
  452. package/dist/esm/chunk-CYTPMHSJ.js.map +7 -0
  453. package/dist/esm/{chunk-GYP66ZK2.js → chunk-D4P7332M.js} +3 -2
  454. package/dist/esm/{chunk-GYP66ZK2.js.map → chunk-D4P7332M.js.map} +1 -1
  455. package/dist/esm/chunk-DI7RUMLO.js +3 -0
  456. package/dist/esm/chunk-DI7RUMLO.js.map +7 -0
  457. package/dist/esm/{chunk-OY5NT7VT.js → chunk-DVXDFCCV.js} +3 -2
  458. package/dist/esm/{chunk-OY5NT7VT.js.map → chunk-DVXDFCCV.js.map} +1 -1
  459. package/dist/esm/chunk-E4EMG3RC.js +3 -0
  460. package/dist/esm/chunk-E4EMG3RC.js.map +7 -0
  461. package/dist/esm/chunk-EAIQIW23.js +3 -0
  462. package/dist/esm/{chunk-4ZOVV3TY.js.map → chunk-EAIQIW23.js.map} +3 -3
  463. package/dist/esm/chunk-ENAW44VE.js +3 -0
  464. package/dist/esm/chunk-ENAW44VE.js.map +7 -0
  465. package/dist/esm/chunk-EVCQ6TG5.js +3 -0
  466. package/dist/esm/{chunk-VUPIJNG2.js.map → chunk-EVCQ6TG5.js.map} +2 -2
  467. package/dist/esm/{chunk-RAVZ7F5L.js → chunk-EY6TCYGG.js} +3 -2
  468. package/dist/esm/{chunk-RAVZ7F5L.js.map → chunk-EY6TCYGG.js.map} +1 -1
  469. package/dist/esm/chunk-FFJE25TJ.js +3 -0
  470. package/dist/esm/chunk-FFJE25TJ.js.map +7 -0
  471. package/dist/esm/chunk-FI32HA4X.js +3 -0
  472. package/dist/esm/{chunk-YXLDRDHW.js.map → chunk-FI32HA4X.js.map} +3 -3
  473. package/dist/esm/{chunk-NA237RHQ.js → chunk-FJLYSZV3.js} +1 -1
  474. package/dist/esm/{chunk-NA237RHQ.js.map → chunk-FJLYSZV3.js.map} +1 -1
  475. package/dist/esm/{chunk-DNOQ6E3W.js → chunk-FM3GBCX5.js} +3 -2
  476. package/dist/esm/{chunk-DNOQ6E3W.js.map → chunk-FM3GBCX5.js.map} +1 -1
  477. package/dist/esm/chunk-G32GSPNO.js +3 -0
  478. package/dist/esm/chunk-G32GSPNO.js.map +7 -0
  479. package/dist/esm/{chunk-TBZO22XK.js → chunk-G66WDIIV.js} +3 -2
  480. package/dist/esm/{chunk-TBZO22XK.js.map → chunk-G66WDIIV.js.map} +1 -1
  481. package/dist/esm/{chunk-PN3RQFSU.js → chunk-GHUAUFG7.js} +2 -1
  482. package/dist/esm/{chunk-PN3RQFSU.js.map → chunk-GHUAUFG7.js.map} +1 -1
  483. package/dist/esm/chunk-GHWEXMF6.js +3 -0
  484. package/dist/esm/chunk-GHWEXMF6.js.map +7 -0
  485. package/dist/esm/{chunk-62ZGP4ET.js → chunk-GKDGNPBD.js} +2 -1
  486. package/dist/esm/{chunk-62ZGP4ET.js.map → chunk-GKDGNPBD.js.map} +1 -1
  487. package/dist/esm/{chunk-W6BN5QLH.js → chunk-GNPTPIL7.js} +3 -2
  488. package/dist/esm/{chunk-W6BN5QLH.js.map → chunk-GNPTPIL7.js.map} +1 -1
  489. package/dist/esm/chunk-GPQSC6GL.js +3 -0
  490. package/dist/esm/chunk-GPQSC6GL.js.map +7 -0
  491. package/dist/esm/{chunk-THUBY6L2.js → chunk-GZ333J7L.js} +3 -2
  492. package/dist/esm/{chunk-THUBY6L2.js.map → chunk-GZ333J7L.js.map} +1 -1
  493. package/dist/esm/chunk-HBWBPBSA.js +3 -0
  494. package/dist/esm/chunk-HBWBPBSA.js.map +7 -0
  495. package/dist/esm/chunk-I3SRUPUP.js +3 -0
  496. package/dist/esm/chunk-I3SRUPUP.js.map +7 -0
  497. package/dist/esm/{chunk-3XHTJZNP.js → chunk-I6SMGWS5.js} +3 -2
  498. package/dist/esm/{chunk-3XHTJZNP.js.map → chunk-I6SMGWS5.js.map} +1 -1
  499. package/dist/esm/chunk-ILWS2JUE.js +3 -0
  500. package/dist/esm/chunk-ILWS2JUE.js.map +7 -0
  501. package/dist/esm/{chunk-QWDCLL6R.js → chunk-IN2WND4B.js} +3 -2
  502. package/dist/esm/{chunk-QWDCLL6R.js.map → chunk-IN2WND4B.js.map} +1 -1
  503. package/dist/esm/chunk-IO43RGNR.js +3 -0
  504. package/dist/esm/chunk-IO43RGNR.js.map +7 -0
  505. package/dist/esm/{chunk-UY6WJUNA.js → chunk-IQ2RMFOM.js} +3 -2
  506. package/dist/esm/{chunk-UY6WJUNA.js.map → chunk-IQ2RMFOM.js.map} +2 -2
  507. package/dist/esm/{chunk-DCNHG6VN.js → chunk-IZIDRDQW.js} +3 -2
  508. package/dist/esm/{chunk-DCNHG6VN.js.map → chunk-IZIDRDQW.js.map} +1 -1
  509. package/dist/esm/{chunk-7FTUTUMD.js → chunk-IZXML75Y.js} +2 -2
  510. package/dist/esm/chunk-J3QIUJ6F.js +2 -0
  511. package/dist/esm/chunk-JIF77MRB.js +3 -0
  512. package/dist/esm/chunk-JIF77MRB.js.map +7 -0
  513. package/dist/esm/{chunk-PBFSBHBS.js → chunk-JUY7CBSL.js} +2 -2
  514. package/dist/esm/chunk-JZ5Z53MN.js +2 -0
  515. package/dist/esm/{chunk-YEHM3FZN.js → chunk-JZVLP2VF.js} +3 -2
  516. package/dist/esm/{chunk-YEHM3FZN.js.map → chunk-JZVLP2VF.js.map} +1 -1
  517. package/dist/esm/chunk-KNBSG2WA.js +3 -0
  518. package/dist/esm/chunk-KNBSG2WA.js.map +7 -0
  519. package/dist/esm/{chunk-IWCFJJBI.js → chunk-KOAWATCI.js} +2 -1
  520. package/dist/esm/{chunk-IWCFJJBI.js.map → chunk-KOAWATCI.js.map} +1 -1
  521. package/dist/esm/chunk-KRFXTPEW.js +3 -0
  522. package/dist/esm/{chunk-63PQNLFJ.js.map → chunk-KRFXTPEW.js.map} +1 -1
  523. package/dist/esm/chunk-KSYHZCLD.js +3 -0
  524. package/dist/esm/{chunk-EZYXYLR2.js.map → chunk-KSYHZCLD.js.map} +1 -1
  525. package/dist/esm/{chunk-VW46DG7H.js → chunk-L4NF3Q2T.js} +3 -2
  526. package/dist/esm/{chunk-VW46DG7H.js.map → chunk-L4NF3Q2T.js.map} +1 -1
  527. package/dist/esm/chunk-L54FWKJE.js +3 -0
  528. package/dist/esm/chunk-L54FWKJE.js.map +7 -0
  529. package/dist/esm/{chunk-XTDXXQTB.js → chunk-L66IUPDW.js} +3 -2
  530. package/dist/esm/{chunk-XTDXXQTB.js.map → chunk-L66IUPDW.js.map} +1 -1
  531. package/dist/esm/{chunk-WX7SX5BN.js → chunk-LB2HB4NG.js} +3 -2
  532. package/dist/esm/{chunk-WX7SX5BN.js.map → chunk-LB2HB4NG.js.map} +2 -2
  533. package/dist/esm/{chunk-VVWYAVHM.js → chunk-LCG3JZ3C.js} +3 -2
  534. package/dist/esm/{chunk-VVWYAVHM.js.map → chunk-LCG3JZ3C.js.map} +1 -1
  535. package/dist/esm/chunk-LPLW7OWA.js +3 -0
  536. package/dist/esm/chunk-LPLW7OWA.js.map +7 -0
  537. package/dist/esm/chunk-M37GE2TE.js +3 -0
  538. package/dist/esm/{chunk-UONSKZQT.js.map → chunk-M37GE2TE.js.map} +1 -1
  539. package/dist/esm/{chunk-5YLKKQFK.js → chunk-MAA6LEE2.js} +2 -1
  540. package/dist/esm/{chunk-5YLKKQFK.js.map → chunk-MAA6LEE2.js.map} +1 -1
  541. package/dist/esm/chunk-MXIVYALY.js +3 -0
  542. package/dist/esm/chunk-MXIVYALY.js.map +7 -0
  543. package/dist/esm/chunk-N53NJCEM.js +3 -0
  544. package/dist/esm/chunk-N53NJCEM.js.map +7 -0
  545. package/dist/esm/{chunk-LXTGEI62.js → chunk-NBVCQQSY.js} +3 -2
  546. package/dist/esm/{chunk-LXTGEI62.js.map → chunk-NBVCQQSY.js.map} +1 -1
  547. package/dist/esm/chunk-NG54K6FL.js +2 -0
  548. package/dist/esm/chunk-NMQGDBLD.js +3 -0
  549. package/dist/esm/chunk-NMQGDBLD.js.map +7 -0
  550. package/dist/esm/chunk-OAJ5DARR.js +3 -0
  551. package/dist/esm/chunk-OAJ5DARR.js.map +7 -0
  552. package/dist/esm/chunk-OKQAVYW4.js +3 -0
  553. package/dist/esm/chunk-OKQAVYW4.js.map +7 -0
  554. package/dist/esm/chunk-PF67GJ5D.js +3 -0
  555. package/dist/esm/chunk-PF67GJ5D.js.map +7 -0
  556. package/dist/esm/chunk-PHWT772P.js +3 -0
  557. package/dist/esm/{chunk-XZQSSRTG.js.map → chunk-PHWT772P.js.map} +1 -1
  558. package/dist/esm/{chunk-PM6QY3JO.js → chunk-PPQ7URZL.js} +3 -2
  559. package/dist/esm/chunk-PPQ7URZL.js.map +7 -0
  560. package/dist/esm/{chunk-FNAE6HUI.js → chunk-PT45Q47V.js} +3 -2
  561. package/dist/esm/{chunk-FNAE6HUI.js.map → chunk-PT45Q47V.js.map} +1 -1
  562. package/dist/esm/{chunk-HCBR74BW.js → chunk-PT4KBXXP.js} +3 -2
  563. package/dist/esm/{chunk-HCBR74BW.js.map → chunk-PT4KBXXP.js.map} +1 -1
  564. package/dist/esm/{chunk-CHPT42BY.js → chunk-PZ6Z7WTR.js} +3 -2
  565. package/dist/esm/{chunk-CHPT42BY.js.map → chunk-PZ6Z7WTR.js.map} +1 -1
  566. package/dist/esm/{chunk-PSPENFPH.js → chunk-PZCQDZVJ.js} +3 -2
  567. package/dist/esm/{chunk-PSPENFPH.js.map → chunk-PZCQDZVJ.js.map} +1 -1
  568. package/dist/esm/{chunk-I53SGTKV.js → chunk-QH64BDXO.js} +3 -2
  569. package/dist/esm/{chunk-I53SGTKV.js.map → chunk-QH64BDXO.js.map} +1 -1
  570. package/dist/esm/{chunk-LUNWI377.js → chunk-QQY4WFJL.js} +3 -2
  571. package/dist/esm/{chunk-LUNWI377.js.map → chunk-QQY4WFJL.js.map} +1 -1
  572. package/dist/esm/{chunk-BE7LMBBC.js → chunk-RIHTVZVJ.js} +3 -2
  573. package/dist/esm/{chunk-BE7LMBBC.js.map → chunk-RIHTVZVJ.js.map} +1 -1
  574. package/dist/esm/{chunk-3XZOE2IQ.js → chunk-RVPLXLRA.js} +3 -2
  575. package/dist/esm/{chunk-3XZOE2IQ.js.map → chunk-RVPLXLRA.js.map} +1 -1
  576. package/dist/esm/{chunk-GS2QSZUR.js → chunk-SCIFT27R.js} +2 -1
  577. package/dist/esm/{chunk-GS2QSZUR.js.map → chunk-SCIFT27R.js.map} +1 -1
  578. package/dist/esm/chunk-SGJKXIWG.js +3 -0
  579. package/dist/esm/{chunk-DFGY2NZB.js.map → chunk-SGJKXIWG.js.map} +1 -1
  580. package/dist/esm/chunk-SHLERRO3.js +3 -0
  581. package/dist/esm/chunk-SHLERRO3.js.map +7 -0
  582. package/dist/esm/chunk-SV3CYQY5.js +3 -0
  583. package/dist/esm/{chunk-LVCUY2OS.js.map → chunk-SV3CYQY5.js.map} +2 -2
  584. package/dist/esm/chunk-TDT2CNES.js +2 -0
  585. package/dist/esm/chunk-TDT2CNES.js.map +7 -0
  586. package/dist/esm/chunk-TGRHRMQI.js +3 -0
  587. package/dist/esm/chunk-TGRHRMQI.js.map +7 -0
  588. package/dist/esm/{chunk-HIEGLLY7.js → chunk-TGUWRU7N.js} +2 -1
  589. package/dist/esm/{chunk-HIEGLLY7.js.map → chunk-TGUWRU7N.js.map} +1 -1
  590. package/dist/esm/{chunk-7ZOGH5NT.js → chunk-U5GQ3IFS.js} +2 -1
  591. package/dist/esm/{chunk-7ZOGH5NT.js.map → chunk-U5GQ3IFS.js.map} +1 -1
  592. package/dist/esm/{chunk-RKZVXVBN.js → chunk-UFJGZUKK.js} +3 -2
  593. package/dist/esm/chunk-UFJGZUKK.js.map +7 -0
  594. package/dist/esm/chunk-UUQGOQ5H.js +3 -0
  595. package/dist/esm/{chunk-G2JD52O5.js.map → chunk-UUQGOQ5H.js.map} +1 -1
  596. package/dist/esm/chunk-UZAS4PYM.js +3 -0
  597. package/dist/esm/chunk-UZAS4PYM.js.map +7 -0
  598. package/dist/esm/{chunk-OS3FCYZY.js → chunk-VQPANPMI.js} +2 -1
  599. package/dist/esm/chunk-VVBSYWUA.js +3 -0
  600. package/dist/esm/chunk-VVBSYWUA.js.map +7 -0
  601. package/dist/esm/chunk-WCGQ4IDE.js +3 -0
  602. package/dist/esm/{chunk-H3IAGAEL.js.map → chunk-WCGQ4IDE.js.map} +1 -1
  603. package/dist/esm/{chunk-HWQ3NTJP.js → chunk-WEBNIUEX.js} +2 -1
  604. package/dist/esm/{chunk-HWQ3NTJP.js.map → chunk-WEBNIUEX.js.map} +1 -1
  605. package/dist/esm/chunk-WH7PQSSG.js +2 -0
  606. package/dist/esm/{chunk-KL73COYX.js → chunk-WMZLMZHB.js} +2 -1
  607. package/dist/esm/{chunk-KL73COYX.js.map → chunk-WMZLMZHB.js.map} +1 -1
  608. package/dist/esm/{chunk-GBQZ4Z2H.js → chunk-WN3WMFAM.js} +3 -2
  609. package/dist/esm/{chunk-GBQZ4Z2H.js.map → chunk-WN3WMFAM.js.map} +1 -1
  610. package/dist/esm/{chunk-ETQNRMHU.js → chunk-WT2SYGTU.js} +3 -2
  611. package/dist/esm/{chunk-ETQNRMHU.js.map → chunk-WT2SYGTU.js.map} +1 -1
  612. package/dist/esm/{chunk-SUPFDIJL.js → chunk-WTP2KIK3.js} +2 -1
  613. package/dist/esm/{chunk-SUPFDIJL.js.map → chunk-WTP2KIK3.js.map} +1 -1
  614. package/dist/esm/{chunk-AGAQC4HH.js → chunk-WUCBFB25.js} +2 -1
  615. package/dist/esm/{chunk-AGAQC4HH.js.map → chunk-WUCBFB25.js.map} +1 -1
  616. package/dist/esm/chunk-WZKSLTBH.js +3 -0
  617. package/dist/esm/{chunk-BJUCBOGU.js.map → chunk-WZKSLTBH.js.map} +1 -1
  618. package/dist/esm/chunk-X272YV2E.js +3 -0
  619. package/dist/esm/chunk-X272YV2E.js.map +7 -0
  620. package/dist/esm/{chunk-CN6F4REJ.js → chunk-XH2CRCXR.js} +2 -1
  621. package/dist/esm/{chunk-CN6F4REJ.js.map → chunk-XH2CRCXR.js.map} +1 -1
  622. package/dist/esm/{chunk-KZEZDBE7.js → chunk-XL5OHW6Z.js} +3 -2
  623. package/dist/esm/{chunk-KZEZDBE7.js.map → chunk-XL5OHW6Z.js.map} +1 -1
  624. package/dist/esm/chunk-XMHNOIPB.js +3 -0
  625. package/dist/esm/{chunk-3BUQ7ADW.js.map → chunk-XMHNOIPB.js.map} +1 -1
  626. package/dist/esm/chunk-XU74PNM2.js +3 -0
  627. package/dist/esm/chunk-XU74PNM2.js.map +7 -0
  628. package/dist/esm/{chunk-3J6AUDID.js → chunk-XUCR7L4G.js} +2 -1
  629. package/dist/esm/{chunk-3J6AUDID.js.map → chunk-XUCR7L4G.js.map} +1 -1
  630. package/dist/esm/chunk-XVDT6DQZ.js +3 -0
  631. package/dist/esm/{chunk-TZTUPQYK.js.map → chunk-XVDT6DQZ.js.map} +1 -1
  632. package/dist/esm/{chunk-2N2AQNJH.js → chunk-Y2DBXOLT.js} +2 -1
  633. package/dist/esm/{chunk-2N2AQNJH.js.map → chunk-Y2DBXOLT.js.map} +1 -1
  634. package/dist/esm/chunk-YD2D73LF.js +3 -0
  635. package/dist/esm/chunk-YD2D73LF.js.map +7 -0
  636. package/dist/esm/chunk-YIKLO2XL.js +3 -0
  637. package/dist/esm/chunk-YIKLO2XL.js.map +7 -0
  638. package/dist/esm/chunk-YNCI5PY6.js +3 -0
  639. package/dist/esm/chunk-YNCI5PY6.js.map +7 -0
  640. package/dist/esm/chunk-YOSLXJI5.js +3 -0
  641. package/dist/esm/chunk-YOSLXJI5.js.map +7 -0
  642. package/dist/esm/{chunk-I4FLQELQ.js → chunk-YVZTQA2L.js} +3 -2
  643. package/dist/esm/{chunk-I4FLQELQ.js.map → chunk-YVZTQA2L.js.map} +1 -1
  644. package/dist/esm/chunk-YWG476GC.js +3 -0
  645. package/dist/esm/{chunk-MGQ4A2FI.js.map → chunk-YWG476GC.js.map} +1 -1
  646. package/dist/esm/chunk-YZZMQ457.js +3 -0
  647. package/dist/esm/{chunk-S6GWR6EZ.js.map → chunk-YZZMQ457.js.map} +1 -1
  648. package/dist/esm/chunk-Z27REN6T.js +3 -0
  649. package/dist/esm/chunk-Z27REN6T.js.map +7 -0
  650. package/dist/esm/{chunk-FVY44PTM.js → chunk-ZFDHZEWN.js} +3 -2
  651. package/dist/esm/{chunk-FVY44PTM.js.map → chunk-ZFDHZEWN.js.map} +1 -1
  652. package/dist/esm/chunk-ZPWKWESI.js +3 -0
  653. package/dist/esm/chunk-ZPWKWESI.js.map +7 -0
  654. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  655. package/dist/esm/components/_internal/base-button.js +2 -1
  656. package/dist/esm/components/_internal/base-button.props.js +2 -1
  657. package/dist/esm/components/_internal/base-checkbox.props.js +2 -1
  658. package/dist/esm/components/_internal/base-menu.props.js +2 -1
  659. package/dist/esm/components/_internal/base-menu.utils.js +2 -1
  660. package/dist/esm/components/_internal/base-radio.props.js +2 -1
  661. package/dist/esm/components/_internal/base-tab-list.props.js +2 -1
  662. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  663. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  664. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +2 -1
  665. package/dist/esm/components/_internal/menu-context.d.ts +10 -0
  666. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  667. package/dist/esm/components/_internal/menu-context.js +2 -1
  668. package/dist/esm/components/_internal/pane-chrome.d.ts +3 -1
  669. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  670. package/dist/esm/components/_internal/pane-chrome.js +2 -1
  671. package/dist/esm/components/_internal/shell-bottom.d.ts +1 -1
  672. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  673. package/dist/esm/components/_internal/shell-bottom.js +2 -1
  674. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  675. package/dist/esm/components/_internal/shell-handles.js +2 -1
  676. package/dist/esm/components/_internal/shell-inspector.d.ts +1 -1
  677. package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
  678. package/dist/esm/components/_internal/shell-inspector.js +2 -1
  679. package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -1
  680. package/dist/esm/components/_internal/shell-pane.js +2 -1
  681. package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -1
  682. package/dist/esm/components/_internal/shell-resizable.js +2 -1
  683. package/dist/esm/components/_internal/shell-resize.js +2 -1
  684. package/dist/esm/components/_internal/shell-rest.js +2 -1
  685. package/dist/esm/components/_internal/shell-sidebar.d.ts +1 -1
  686. package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
  687. package/dist/esm/components/_internal/shell-sidebar.js +2 -1
  688. package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
  689. package/dist/esm/components/_internal/shell-store.js +2 -1
  690. package/dist/esm/components/accessible-icon.js +2 -1
  691. package/dist/esm/components/accordion.d.ts.map +1 -1
  692. package/dist/esm/components/accordion.js +2 -1
  693. package/dist/esm/components/accordion.props.js +2 -1
  694. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  695. package/dist/esm/components/alert-dialog.js +2 -1
  696. package/dist/esm/components/alert-dialog.props.js +2 -1
  697. package/dist/esm/components/avatar.d.ts.map +1 -1
  698. package/dist/esm/components/avatar.js +2 -1
  699. package/dist/esm/components/avatar.props.js +2 -1
  700. package/dist/esm/components/blockquote.js +2 -1
  701. package/dist/esm/components/blockquote.props.js +2 -1
  702. package/dist/esm/components/box.js +2 -1
  703. package/dist/esm/components/box.props.js +2 -1
  704. package/dist/esm/components/button.d.ts.map +1 -1
  705. package/dist/esm/components/button.js +2 -1
  706. package/dist/esm/components/button.props.js +2 -1
  707. package/dist/esm/components/card.js +2 -1
  708. package/dist/esm/components/card.props.js +2 -1
  709. package/dist/esm/components/chatbar.d.ts.map +1 -1
  710. package/dist/esm/components/chatbar.js +2 -1
  711. package/dist/esm/components/checkbox-group.js +2 -1
  712. package/dist/esm/components/checkbox-group.primitive.js +2 -1
  713. package/dist/esm/components/checkbox-group.props.js +2 -1
  714. package/dist/esm/components/checkbox.js +2 -1
  715. package/dist/esm/components/checkbox.props.js +2 -1
  716. package/dist/esm/components/chip.js +2 -1
  717. package/dist/esm/components/chip.props.js +2 -1
  718. package/dist/esm/components/code.js +2 -1
  719. package/dist/esm/components/code.props.js +2 -1
  720. package/dist/esm/components/combobox.d.ts.map +1 -1
  721. package/dist/esm/components/combobox.js +2 -1
  722. package/dist/esm/components/combobox.props.js +2 -1
  723. package/dist/esm/components/context-menu.d.ts +1 -2
  724. package/dist/esm/components/context-menu.d.ts.map +1 -1
  725. package/dist/esm/components/context-menu.js +2 -1
  726. package/dist/esm/components/context-menu.props.js +2 -1
  727. package/dist/esm/components/dialog.js +2 -1
  728. package/dist/esm/components/dialog.props.js +2 -1
  729. package/dist/esm/components/dropdown-menu.d.ts +1 -2
  730. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  731. package/dist/esm/components/dropdown-menu.js +2 -1
  732. package/dist/esm/components/dropdown-menu.props.js +2 -1
  733. package/dist/esm/components/flex.js +2 -1
  734. package/dist/esm/components/flex.props.js +2 -1
  735. package/dist/esm/components/grid.js +2 -1
  736. package/dist/esm/components/grid.props.js +2 -1
  737. package/dist/esm/components/heading.d.ts +2 -2
  738. package/dist/esm/components/heading.d.ts.map +1 -1
  739. package/dist/esm/components/heading.js +2 -1
  740. package/dist/esm/components/heading.props.d.ts +1 -1
  741. package/dist/esm/components/heading.props.js +2 -1
  742. package/dist/esm/components/icons.js +2 -1
  743. package/dist/esm/components/image.d.ts +9 -2
  744. package/dist/esm/components/image.d.ts.map +1 -1
  745. package/dist/esm/components/image.js +2 -1
  746. package/dist/esm/components/image.props.js +2 -1
  747. package/dist/esm/components/index.d.ts +1 -1
  748. package/dist/esm/components/index.d.ts.map +1 -1
  749. package/dist/esm/components/index.js +2 -1
  750. package/dist/esm/components/kbd.js +2 -1
  751. package/dist/esm/components/kbd.props.js +2 -1
  752. package/dist/esm/components/link.js +2 -1
  753. package/dist/esm/components/link.props.js +2 -1
  754. package/dist/esm/components/message-scroller.d.ts +2 -2
  755. package/dist/esm/components/message-scroller.d.ts.map +1 -1
  756. package/dist/esm/components/message-scroller.js +2 -1
  757. package/dist/esm/components/navbar.js +2 -1
  758. package/dist/esm/components/navbar.props.js +2 -1
  759. package/dist/esm/components/notice.js +2 -1
  760. package/dist/esm/components/popover.d.ts +3 -1
  761. package/dist/esm/components/popover.d.ts.map +1 -1
  762. package/dist/esm/components/popover.js +2 -1
  763. package/dist/esm/components/popover.props.js +2 -1
  764. package/dist/esm/components/portal.js +2 -1
  765. package/dist/esm/components/progress.d.ts.map +1 -1
  766. package/dist/esm/components/progress.js +2 -1
  767. package/dist/esm/components/progress.props.js +2 -1
  768. package/dist/esm/components/radio-group.js +2 -1
  769. package/dist/esm/components/radio-group.props.js +2 -1
  770. package/dist/esm/components/radio.js +2 -1
  771. package/dist/esm/components/radio.props.js +2 -1
  772. package/dist/esm/components/reset.js +2 -1
  773. package/dist/esm/components/schemas/base-button.schema.js +2 -1
  774. package/dist/esm/components/schemas/button.schema.js +2 -1
  775. package/dist/esm/components/schemas/index.js +2 -1
  776. package/dist/esm/components/schemas/index.js.map +1 -1
  777. package/dist/esm/components/schemas/shell.schema.js +2 -1
  778. package/dist/esm/components/schemas/toggle.schema.js +2 -1
  779. package/dist/esm/components/scroll-area.js +2 -1
  780. package/dist/esm/components/scroll-area.props.js +2 -1
  781. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  782. package/dist/esm/components/segmented-control.js +2 -1
  783. package/dist/esm/components/segmented-control.props.d.ts +0 -1
  784. package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
  785. package/dist/esm/components/segmented-control.props.js +2 -1
  786. package/dist/esm/components/select.d.ts.map +1 -1
  787. package/dist/esm/components/select.js +2 -1
  788. package/dist/esm/components/select.props.js +2 -1
  789. package/dist/esm/components/separator.d.ts.map +1 -1
  790. package/dist/esm/components/separator.js +2 -1
  791. package/dist/esm/components/separator.props.d.ts +1 -1
  792. package/dist/esm/components/separator.props.js +2 -1
  793. package/dist/esm/components/sheet.d.ts +1 -1
  794. package/dist/esm/components/sheet.d.ts.map +1 -1
  795. package/dist/esm/components/sheet.js +2 -1
  796. package/dist/esm/components/shell.context.js +2 -1
  797. package/dist/esm/components/shell.d.ts +5 -2
  798. package/dist/esm/components/shell.d.ts.map +1 -1
  799. package/dist/esm/components/shell.hooks.js +2 -1
  800. package/dist/esm/components/shell.js +2 -1
  801. package/dist/esm/components/shell.types.js +2 -1
  802. package/dist/esm/components/sidebar.d.ts.map +1 -1
  803. package/dist/esm/components/sidebar.js +2 -1
  804. package/dist/esm/components/slider.d.ts.map +1 -1
  805. package/dist/esm/components/slider.js +2 -1
  806. package/dist/esm/components/slider.props.d.ts +0 -2
  807. package/dist/esm/components/slider.props.d.ts.map +1 -1
  808. package/dist/esm/components/slider.props.js +2 -1
  809. package/dist/esm/components/slot.js +2 -1
  810. package/dist/esm/components/spinner.d.ts.map +1 -1
  811. package/dist/esm/components/spinner.js +2 -1
  812. package/dist/esm/components/spinner.props.js +2 -1
  813. package/dist/esm/components/switch.js +2 -1
  814. package/dist/esm/components/switch.props.js +2 -1
  815. package/dist/esm/components/table.d.ts.map +1 -1
  816. package/dist/esm/components/table.js +2 -1
  817. package/dist/esm/components/table.props.d.ts +0 -2
  818. package/dist/esm/components/table.props.d.ts.map +1 -1
  819. package/dist/esm/components/table.props.js +2 -1
  820. package/dist/esm/components/tabs.d.ts.map +1 -1
  821. package/dist/esm/components/tabs.js +2 -1
  822. package/dist/esm/components/tabs.props.js +2 -1
  823. package/dist/esm/components/text-area.d.ts.map +1 -1
  824. package/dist/esm/components/text-area.js +2 -1
  825. package/dist/esm/components/text-area.props.js +2 -1
  826. package/dist/esm/components/text-field.d.ts.map +1 -1
  827. package/dist/esm/components/text-field.js +2 -1
  828. package/dist/esm/components/text-field.props.js +2 -1
  829. package/dist/esm/components/text.js +2 -1
  830. package/dist/esm/components/text.props.js +2 -1
  831. package/dist/esm/components/theme.d.ts.map +1 -1
  832. package/dist/esm/components/theme.js +2 -1
  833. package/dist/esm/components/theme.props.js +2 -1
  834. package/dist/esm/components/toggle.js +2 -1
  835. package/dist/esm/components/toolbar.d.ts +4 -1
  836. package/dist/esm/components/toolbar.d.ts.map +1 -1
  837. package/dist/esm/components/toolbar.js +2 -1
  838. package/dist/esm/components/toolbar.props.js +2 -1
  839. package/dist/esm/components/tooltip.d.ts +13 -2
  840. package/dist/esm/components/tooltip.d.ts.map +1 -1
  841. package/dist/esm/components/tooltip.js +2 -1
  842. package/dist/esm/components/tooltip.props.js +2 -1
  843. package/dist/esm/components/virtual-menu.d.ts +19 -12
  844. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  845. package/dist/esm/components/virtual-menu.js +2 -1
  846. package/dist/esm/components/visually-hidden.js +2 -1
  847. package/dist/esm/helpers/compile-prop-defs.js +1 -1
  848. package/dist/esm/helpers/extract-margin-props.js +1 -1
  849. package/dist/esm/helpers/extract-props.js +1 -1
  850. package/dist/esm/helpers/font-config.js +1 -1
  851. package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -1
  852. package/dist/esm/helpers/get-margin-styles.js +1 -1
  853. package/dist/esm/helpers/get-matching-gray-color.js +1 -1
  854. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  855. package/dist/esm/helpers/get-subtree.js +1 -1
  856. package/dist/esm/helpers/has-own-property.js +1 -1
  857. package/dist/esm/helpers/index.js +1 -1
  858. package/dist/esm/helpers/inert.js +1 -1
  859. package/dist/esm/helpers/inert.js.map +1 -1
  860. package/dist/esm/helpers/is-responsive-object.js +1 -1
  861. package/dist/esm/helpers/map-prop-values.js +1 -1
  862. package/dist/esm/helpers/merge-styles.js +1 -1
  863. package/dist/esm/helpers/normalize-to-px.js +1 -1
  864. package/dist/esm/helpers/require-react-element.js +1 -1
  865. package/dist/esm/helpers/theme-size.js +1 -1
  866. package/dist/esm/helpers/warn-deprecated.js +1 -1
  867. package/dist/esm/helpers/warn-deprecated.js.map +4 -4
  868. package/dist/esm/hooks/appearance-script.js +11 -1
  869. package/dist/esm/hooks/appearance-script.js.map +4 -4
  870. package/dist/esm/hooks/index.js +2 -1
  871. package/dist/esm/hooks/use-appearance.d.ts.map +1 -1
  872. package/dist/esm/hooks/use-appearance.js +2 -1
  873. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  874. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  875. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +2 -1
  876. package/dist/esm/hooks/use-breakpoint.js +2 -1
  877. package/dist/esm/hooks/use-live-announcer.js +2 -1
  878. package/dist/esm/hooks/use-prop-synced-state.js +2 -1
  879. package/dist/esm/hooks/use-scroll-edges.js +2 -1
  880. package/dist/esm/hooks/use-thumb-sync.js +2 -1
  881. package/dist/esm/hooks/use-toggle-state.js +2 -1
  882. package/dist/esm/hooks/use-tooltip-wrapper.js +2 -1
  883. package/dist/esm/index.js +2 -1
  884. package/dist/esm/props/as-child.prop.js +1 -1
  885. package/dist/esm/props/color.prop.js +1 -1
  886. package/dist/esm/props/emphasis.prop.js +1 -1
  887. package/dist/esm/props/font-family.prop.js +1 -1
  888. package/dist/esm/props/gap.props.d.ts +4 -4
  889. package/dist/esm/props/gap.props.js +1 -1
  890. package/dist/esm/props/height.props.js +1 -1
  891. package/dist/esm/props/index.js +1 -1
  892. package/dist/esm/props/index.js.map +4 -4
  893. package/dist/esm/props/layout.props.js +1 -1
  894. package/dist/esm/props/leading-trim.prop.js +1 -1
  895. package/dist/esm/props/margin.props.js +1 -1
  896. package/dist/esm/props/padding.props.js +1 -1
  897. package/dist/esm/props/prop-def.js +1 -1
  898. package/dist/esm/props/radius.prop.js +1 -1
  899. package/dist/esm/props/shadow.props.js +1 -1
  900. package/dist/esm/props/text-align.prop.js +1 -1
  901. package/dist/esm/props/text-wrap.prop.js +1 -1
  902. package/dist/esm/props/truncate.prop.js +1 -1
  903. package/dist/esm/props/weight.prop.js +1 -1
  904. package/dist/esm/props/width.props.js +1 -1
  905. package/layout/utilities.css +2 -2
  906. package/layout.css +2 -2
  907. package/package.json +3 -7
  908. package/src/components/_internal/base-button.css +24 -6
  909. package/src/components/_internal/base-button.props.ts +1 -1
  910. package/src/components/_internal/base-button.tsx +80 -35
  911. package/src/components/_internal/base-checkbox.css +23 -0
  912. package/src/components/_internal/base-menu.css +9 -3
  913. package/src/components/_internal/base-radio.css +22 -0
  914. package/src/components/_internal/base-tab-list.css +5 -0
  915. package/src/components/_internal/dropdown-menu-drill-down.tsx +45 -26
  916. package/src/components/_internal/menu-context.tsx +36 -1
  917. package/src/components/_internal/pane-chrome.tsx +8 -6
  918. package/src/components/_internal/shell-bottom.tsx +2 -0
  919. package/src/components/_internal/shell-handles.tsx +10 -1
  920. package/src/components/_internal/shell-inspector.tsx +3 -0
  921. package/src/components/_internal/shell-pane.tsx +5 -4
  922. package/src/components/_internal/shell-resizable.tsx +17 -8
  923. package/src/components/_internal/shell-sidebar.tsx +3 -0
  924. package/src/components/_internal/shell-store.tsx +2 -1
  925. package/src/components/accordion.css +55 -69
  926. package/src/components/accordion.tsx +0 -26
  927. package/src/components/alert-dialog.tsx +4 -0
  928. package/src/components/avatar.css +6 -2
  929. package/src/components/avatar.tsx +36 -3
  930. package/src/components/blockquote.css +2 -2
  931. package/src/components/button.tsx +12 -5
  932. package/src/components/card.css +14 -3
  933. package/src/components/chatbar.css +20 -3
  934. package/src/components/chatbar.tsx +14 -11
  935. package/src/components/checkbox-group.css +1 -5
  936. package/src/components/checkbox.css +1 -5
  937. package/src/components/chip.css +0 -3
  938. package/src/components/combobox.tsx +25 -26
  939. package/src/components/context-menu.tsx +47 -27
  940. package/src/components/dropdown-menu.css +0 -6
  941. package/src/components/dropdown-menu.tsx +71 -34
  942. package/src/components/heading.props.tsx +1 -1
  943. package/src/components/heading.tsx +4 -4
  944. package/src/components/image.css +5 -0
  945. package/src/components/image.tsx +29 -3
  946. package/src/components/index.tsx +1 -1
  947. package/src/components/kbd.css +6 -5
  948. package/src/components/link.css +1 -5
  949. package/src/components/message-scroller.tsx +15 -26
  950. package/src/components/navbar.css +9 -1
  951. package/src/components/popover.css +14 -10
  952. package/src/components/popover.tsx +13 -11
  953. package/src/components/progress.css +33 -6
  954. package/src/components/progress.tsx +5 -3
  955. package/src/components/scroll-area.css +34 -4
  956. package/src/components/segmented-control.css +178 -148
  957. package/src/components/segmented-control.props.tsx +1 -1
  958. package/src/components/segmented-control.tsx +88 -63
  959. package/src/components/select.css +16 -29
  960. package/src/components/select.tsx +4 -15
  961. package/src/components/separator.css +8 -1
  962. package/src/components/separator.props.tsx +1 -1
  963. package/src/components/separator.tsx +22 -4
  964. package/src/components/sheet.css +4 -5
  965. package/src/components/sheet.tsx +3 -1
  966. package/src/components/shell.css +148 -21
  967. package/src/components/shell.tsx +18 -1
  968. package/src/components/sidebar.css +1 -135
  969. package/src/components/sidebar.tsx +178 -160
  970. package/src/components/slider.css +90 -21
  971. package/src/components/slider.props.tsx +2 -2
  972. package/src/components/slider.tsx +78 -91
  973. package/src/components/spinner.css +10 -2
  974. package/src/components/spinner.tsx +5 -1
  975. package/src/components/switch.css +40 -8
  976. package/src/components/table.css +5 -1
  977. package/src/components/table.props.tsx +0 -9
  978. package/src/components/table.tsx +2 -1
  979. package/src/components/tabs.tsx +10 -3
  980. package/src/components/text-area.css +17 -2
  981. package/src/components/text-area.tsx +20 -16
  982. package/src/components/text-field.css +51 -36
  983. package/src/components/text-field.tsx +100 -49
  984. package/src/components/theme.tsx +14 -44
  985. package/src/components/toolbar.tsx +35 -8
  986. package/src/components/tooltip.css +8 -1
  987. package/src/components/tooltip.tsx +30 -3
  988. package/src/components/virtual-menu.css +80 -0
  989. package/src/components/virtual-menu.tsx +103 -62
  990. package/src/helpers/get-margin-styles.ts +8 -10
  991. package/src/hooks/use-appearance.ts +32 -19
  992. package/src/hooks/use-body-pointer-events-cleanup.ts +123 -124
  993. package/src/props/gap.props.ts +4 -4
  994. package/src/styles/utilities/margin.css +2 -2
  995. package/src/styles/utilities/text-align.css +8 -0
  996. package/styles.css +1827 -803
  997. package/utilities.css +38 -2
  998. package/dist/esm/chunk-2E4P5XQL.js +0 -2
  999. package/dist/esm/chunk-2E4P5XQL.js.map +0 -7
  1000. package/dist/esm/chunk-2KZ4NI3X.js +0 -1
  1001. package/dist/esm/chunk-3BUQ7ADW.js +0 -2
  1002. package/dist/esm/chunk-3PTKPDSA.js +0 -2
  1003. package/dist/esm/chunk-3PTKPDSA.js.map +0 -7
  1004. package/dist/esm/chunk-3QZBWH2A.js.map +0 -7
  1005. package/dist/esm/chunk-3VTS4C63.js +0 -2
  1006. package/dist/esm/chunk-3VTS4C63.js.map +0 -7
  1007. package/dist/esm/chunk-3WE4E2WQ.js +0 -2
  1008. package/dist/esm/chunk-3WE4E2WQ.js.map +0 -7
  1009. package/dist/esm/chunk-3XUY5WFA.js +0 -2
  1010. package/dist/esm/chunk-3XUY5WFA.js.map +0 -7
  1011. package/dist/esm/chunk-432YLNB3.js +0 -2
  1012. package/dist/esm/chunk-432YLNB3.js.map +0 -7
  1013. package/dist/esm/chunk-4R5EMVB3.js +0 -2
  1014. package/dist/esm/chunk-4R5EMVB3.js.map +0 -7
  1015. package/dist/esm/chunk-4ZOVV3TY.js +0 -2
  1016. package/dist/esm/chunk-5ROQAZ7J.js +0 -2
  1017. package/dist/esm/chunk-5ROQAZ7J.js.map +0 -7
  1018. package/dist/esm/chunk-63PQNLFJ.js +0 -2
  1019. package/dist/esm/chunk-6DWDNKLS.js +0 -1
  1020. package/dist/esm/chunk-7CUQMU3T.js +0 -2
  1021. package/dist/esm/chunk-7CUQMU3T.js.map +0 -7
  1022. package/dist/esm/chunk-BGAJ2MDF.js +0 -2
  1023. package/dist/esm/chunk-BGAJ2MDF.js.map +0 -7
  1024. package/dist/esm/chunk-BJUCBOGU.js +0 -2
  1025. package/dist/esm/chunk-CLZW2IDD.js +0 -2
  1026. package/dist/esm/chunk-CLZW2IDD.js.map +0 -7
  1027. package/dist/esm/chunk-CMHUK7OG.js +0 -2
  1028. package/dist/esm/chunk-CMHUK7OG.js.map +0 -7
  1029. package/dist/esm/chunk-DFGY2NZB.js +0 -2
  1030. package/dist/esm/chunk-DUTZUWZP.js +0 -2
  1031. package/dist/esm/chunk-DUTZUWZP.js.map +0 -7
  1032. package/dist/esm/chunk-EZYXYLR2.js +0 -2
  1033. package/dist/esm/chunk-FDHWAC6W.js +0 -2
  1034. package/dist/esm/chunk-FDHWAC6W.js.map +0 -7
  1035. package/dist/esm/chunk-G2JD52O5.js +0 -2
  1036. package/dist/esm/chunk-G4ETY2NP.js +0 -2
  1037. package/dist/esm/chunk-G4ETY2NP.js.map +0 -7
  1038. package/dist/esm/chunk-GPOCLDBR.js +0 -2
  1039. package/dist/esm/chunk-GPOCLDBR.js.map +0 -7
  1040. package/dist/esm/chunk-H3IAGAEL.js +0 -2
  1041. package/dist/esm/chunk-H5G7UECV.js +0 -2
  1042. package/dist/esm/chunk-H5G7UECV.js.map +0 -7
  1043. package/dist/esm/chunk-HT7RFHLW.js +0 -2
  1044. package/dist/esm/chunk-HT7RFHLW.js.map +0 -7
  1045. package/dist/esm/chunk-IUER6BNH.js +0 -12
  1046. package/dist/esm/chunk-IUER6BNH.js.map +0 -7
  1047. package/dist/esm/chunk-IVQHRM33.js +0 -2
  1048. package/dist/esm/chunk-IVQHRM33.js.map +0 -7
  1049. package/dist/esm/chunk-KA5UE2VN.js +0 -2
  1050. package/dist/esm/chunk-KA5UE2VN.js.map +0 -7
  1051. package/dist/esm/chunk-KEGCX5VM.js +0 -2
  1052. package/dist/esm/chunk-KEGCX5VM.js.map +0 -7
  1053. package/dist/esm/chunk-KT2CMUS5.js +0 -2
  1054. package/dist/esm/chunk-KT2CMUS5.js.map +0 -7
  1055. package/dist/esm/chunk-KVHKPUZ2.js +0 -2
  1056. package/dist/esm/chunk-KVHKPUZ2.js.map +0 -7
  1057. package/dist/esm/chunk-LVCUY2OS.js +0 -2
  1058. package/dist/esm/chunk-M7I6ISPL.js +0 -2
  1059. package/dist/esm/chunk-M7I6ISPL.js.map +0 -7
  1060. package/dist/esm/chunk-MGQ4A2FI.js +0 -2
  1061. package/dist/esm/chunk-MHANZINI.js +0 -2
  1062. package/dist/esm/chunk-MHANZINI.js.map +0 -7
  1063. package/dist/esm/chunk-MYYXOFU5.js +0 -1
  1064. package/dist/esm/chunk-N3WBEQWL.js +0 -5
  1065. package/dist/esm/chunk-N3WBEQWL.js.map +0 -7
  1066. package/dist/esm/chunk-NC3CJUE3.js +0 -2
  1067. package/dist/esm/chunk-OA7C34MJ.js +0 -1
  1068. package/dist/esm/chunk-P2MV6HLA.js +0 -2
  1069. package/dist/esm/chunk-P2MV6HLA.js.map +0 -7
  1070. package/dist/esm/chunk-PDMCLVYT.js +0 -2
  1071. package/dist/esm/chunk-PDMCLVYT.js.map +0 -7
  1072. package/dist/esm/chunk-PJR6GRZC.js +0 -2
  1073. package/dist/esm/chunk-PJR6GRZC.js.map +0 -7
  1074. package/dist/esm/chunk-PM6QY3JO.js.map +0 -7
  1075. package/dist/esm/chunk-PPZY7PJA.js +0 -2
  1076. package/dist/esm/chunk-PPZY7PJA.js.map +0 -7
  1077. package/dist/esm/chunk-Q4IA622Q.js +0 -2
  1078. package/dist/esm/chunk-RKZVXVBN.js.map +0 -7
  1079. package/dist/esm/chunk-S6GWR6EZ.js +0 -2
  1080. package/dist/esm/chunk-SKOYHBIE.js +0 -2
  1081. package/dist/esm/chunk-STPMPY3X.js +0 -1
  1082. package/dist/esm/chunk-TXQZ5HLV.js +0 -2
  1083. package/dist/esm/chunk-TXQZ5HLV.js.map +0 -7
  1084. package/dist/esm/chunk-TZTUPQYK.js +0 -2
  1085. package/dist/esm/chunk-UICSVJ3B.js +0 -1
  1086. package/dist/esm/chunk-UKASIY6M.js +0 -2
  1087. package/dist/esm/chunk-UKASIY6M.js.map +0 -7
  1088. package/dist/esm/chunk-UONSKZQT.js +0 -2
  1089. package/dist/esm/chunk-V5O3TF57.js +0 -2
  1090. package/dist/esm/chunk-V5O3TF57.js.map +0 -7
  1091. package/dist/esm/chunk-VPSMETY2.js +0 -2
  1092. package/dist/esm/chunk-VUNCI6A6.js +0 -2
  1093. package/dist/esm/chunk-VUNCI6A6.js.map +0 -7
  1094. package/dist/esm/chunk-VUPIJNG2.js +0 -2
  1095. package/dist/esm/chunk-VXQQ6KXI.js +0 -2
  1096. package/dist/esm/chunk-VXQQ6KXI.js.map +0 -7
  1097. package/dist/esm/chunk-WG5ORTIW.js +0 -2
  1098. package/dist/esm/chunk-WG5ORTIW.js.map +0 -7
  1099. package/dist/esm/chunk-WMVR2XBR.js +0 -2
  1100. package/dist/esm/chunk-WOR3JCLX.js +0 -1
  1101. package/dist/esm/chunk-WOR3JCLX.js.map +0 -7
  1102. package/dist/esm/chunk-X4A3XRBY.js +0 -2
  1103. package/dist/esm/chunk-XOACTIBL.js +0 -2
  1104. package/dist/esm/chunk-XOACTIBL.js.map +0 -7
  1105. package/dist/esm/chunk-XZQSSRTG.js +0 -2
  1106. package/dist/esm/chunk-YIK4ACXS.js +0 -2
  1107. package/dist/esm/chunk-YIK4ACXS.js.map +0 -7
  1108. package/dist/esm/chunk-YXLDRDHW.js +0 -2
  1109. /package/dist/esm/{chunk-ELAW7ZUG.js.map → chunk-6FLLFCBU.js.map} +0 -0
  1110. /package/dist/esm/{chunk-2KZ4NI3X.js.map → chunk-A2OMWZI7.js.map} +0 -0
  1111. /package/dist/esm/{chunk-6DWDNKLS.js.map → chunk-AYKOOEZR.js.map} +0 -0
  1112. /package/dist/esm/{chunk-7FTUTUMD.js.map → chunk-IZXML75Y.js.map} +0 -0
  1113. /package/dist/esm/{chunk-MYYXOFU5.js.map → chunk-J3QIUJ6F.js.map} +0 -0
  1114. /package/dist/esm/{chunk-PBFSBHBS.js.map → chunk-JUY7CBSL.js.map} +0 -0
  1115. /package/dist/esm/{chunk-OA7C34MJ.js.map → chunk-JZ5Z53MN.js.map} +0 -0
  1116. /package/dist/esm/{chunk-OS3FCYZY.js.map → chunk-NG54K6FL.js.map} +0 -0
  1117. /package/dist/esm/{chunk-STPMPY3X.js.map → chunk-VQPANPMI.js.map} +0 -0
  1118. /package/dist/esm/{chunk-UICSVJ3B.js.map → chunk-WH7PQSSG.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/components/select.tsx", "../../../src/helpers/extract-props.ts", "../../../src/helpers/compile-prop-defs.ts", "../../../src/props/prop-def.ts", "../../../src/helpers/has-own-property.ts", "../../../src/helpers/is-responsive-object.ts", "../../../src/helpers/get-responsive-styles.ts", "../../../src/helpers/merge-styles.ts", "../../../src/helpers/theme-size.ts", "../../../src/components/icons.tsx", "../../../src/props/color.prop.ts", "../../../src/props/radius.prop.ts", "../../../src/components/select.props.tsx", "../../../src/components/theme.tsx", "../../../src/helpers/get-matching-gray-color.ts", "../../../src/hooks/use-prop-synced-state.ts", "../../../src/props/as-child.prop.ts", "../../../src/components/theme.props.tsx", "../../../src/hooks/use-thumb-sync.ts"],
4
- "sourcesContent": ["'use client';\n\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 { 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 { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype SelectRootOwnProps = GetPropDefTypes<typeof selectRootPropDefs>;\n\n// Trigger and Content pass the size prop def as its own record. It is hoisted because\n// extractProps caches its compiled prop defs on the identity of each record it is given:\n// a literal written at the call site would be a new object, and a recompile, every render.\nconst selectSizePropDefs = { size: selectRootPropDefs.size };\n\n// Keys that open the list from the trigger, as in Radix.\nconst OPEN_KEYS = [' ', 'Enter', 'ArrowUp', 'ArrowDown'];\n\ninterface SelectContextValue extends SelectRootOwnProps {\n /** Whether the list is open. Undefined when Content is rendered outside a Kookie Select.Root. */\n open?: boolean;\n}\nconst SelectContext = React.createContext<SelectContextValue>({});\n\ninterface SelectRootProps extends SelectPrimitive.SelectProps, SelectRootOwnProps {}\nconst SelectRoot: React.FC<SelectRootProps> = (props) => {\n const {\n children,\n size: sizeProp,\n open: openProp,\n defaultOpen,\n onOpenChange,\n ...rootProps\n } = props;\n const size = useThemeSize(sizeProp, selectRootPropDefs.size);\n\n // Root owns the open state and hands Radix a controlled `open`, so Content learns of a\n // change in the same render Radix does. Radix's uncontrolled state reports changes from an\n // effect, a render late, which would mount the open list once without its wrappers.\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false);\n const open = openProp ?? uncontrolledOpen;\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n onOpenChange?.(next);\n },\n [onOpenChange],\n );\n\n return (\n <SelectPrimitive.Root {...rootProps} open={open} onOpenChange={handleOpenChange}>\n <SelectContext.Provider value={React.useMemo(() => ({ size, open }), [size, open])}>\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 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 selectSizePropDefs,\n selectTriggerPropDefs,\n );\n\n // The props win when set; otherwise a caller's own aria-* (a form library's aria-invalid)\n // stays, so both paths reach the accessibility tree and the CSS, as on TextField.\n const {\n 'aria-invalid': ariaInvalid,\n 'aria-busy': ariaBusy,\n 'aria-disabled': ariaDisabled,\n 'aria-readonly': ariaReadOnly,\n } = triggerProps;\n const isInvalid = Boolean(error) || ariaInvalid === true || ariaInvalid === 'true';\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid ? true : ariaInvalid,\n 'aria-busy': loading || ariaBusy,\n 'aria-disabled': disabled || ariaDisabled,\n 'aria-readonly': readOnly || ariaReadOnly,\n }),\n [isInvalid, ariaInvalid, loading, ariaBusy, disabled, ariaDisabled, readOnly, ariaReadOnly],\n );\n\n // Read-only and loading triggers stay focusable but do not open or take typeahead,\n // as on Combobox. Radix skips its own handler when the event is default-prevented.\n const isBlocked = Boolean(readOnly || loading);\n const blockedHandlers = isBlocked\n ? {\n onPointerDown: (event: React.PointerEvent<HTMLButtonElement>) => event.preventDefault(),\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.currentTarget.focus();\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (OPEN_KEYS.includes(event.key) || (!isModifierKey && event.key.length === 1)) {\n event.preventDefault();\n }\n },\n }\n : undefined;\n\n return (\n // `disabled` goes to Radix, which merges it with Root's and sets the native attribute.\n <SelectPrimitive.Trigger asChild disabled={disabled} {...blockedHandlers}>\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('kui-reset', 'kui-SelectTrigger', className)}\n >\n <span className=\"kui-SelectTriggerInner\">\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n </span>\n <SelectPrimitive.Icon asChild>\n {loading ? (\n <div className=\"kui-SelectIcon kui-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=\"kui-SelectLoadingIconCircle\"\n />\n </svg>\n </div>\n ) : (\n <ChevronDownIcon className=\"kui-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 selectSizePropDefs,\n selectContentPropDefs,\n );\n const themeContext = useThemeContext();\n\n // While closed, Radix still renders Content's children, into a detached fragment: the\n // items must exist for the trigger's value label, typeahead and the native form select.\n // Nothing in that fragment is ever shown, so the theme wrapper and the scroll area, with\n // its two resize observers, are left out until the list opens.\n if (context.open === false && !contentProps.forceMount) {\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content {...contentProps} asChild={false} ref={forwardedRef}>\n {children}\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n }\n\n const resolvedColor = color || themeContext.accentColor;\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 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-SelectContent',\n className,\n )}\n >\n <SelectScrollArea>{children}</SelectScrollArea>\n </SelectPrimitive.Content>\n </Theme>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'Select.Content';\n\n/** The open list's scroll area. Its own component so the thumb sync hook runs only while open. */\nfunction SelectScrollArea({ children }: { children: React.ReactNode }) {\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n return (\n <ScrollAreaPrimitive.Root type=\"auto\" className=\"kui-ScrollAreaRoot\">\n <SelectPrimitive.Viewport\n asChild\n className={classNames('kui-BaseMenuViewport', 'kui-SelectViewport')}\n >\n <ScrollAreaPrimitive.Viewport\n ref={setThumbViewport}\n className=\"kui-ScrollAreaViewport\"\n style={{ overflowY: undefined }}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n </SelectPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar className=\"kui-ScrollAreaScrollbar\" orientation=\"vertical\">\n <ScrollAreaPrimitive.Thumb className=\"kui-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n );\n}\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 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-SelectItem',\n { 'kui-SelectItemRich': isRichContent },\n className,\n )}\n >\n <SelectPrimitive.ItemIndicator className=\"kui-SelectItemIndicator\">\n <ThickCheckIcon className=\"kui-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('kui-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('kui-BaseMenuLabel', 'kui-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('kui-BaseMenuSeparator', 'kui-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", "import classNames from 'classnames';\n\nimport { getCompiledPropDefs } from './compile-prop-defs.js';\nimport { getResponsiveClassNames, getResponsiveStyles } from './get-responsive-styles.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\nimport { mergeStyles } from './merge-styles.js';\n\nimport type { CompiledPropDef } from './compile-prop-defs.js';\nimport type * as React from 'react';\nimport type { PropDef } from '../props/prop-def.js';\n\ntype PropDefsWithClassName<T> = T extends Record<string, PropDef> ? { [K in keyof T]: T[K] extends { className: string } ? K : never }[keyof T] : never;\n\ntype ResponsiveValue = Record<string, string | undefined>;\n\n/**\n * Fills in the `initial` breakpoint of a responsive value from the prop def's\n * default, and coerces an invalid `initial` enum value back to that default.\n *\n * Returns the value untouched when nothing needs changing, and a copy otherwise\n * \u2014 callers routinely hoist responsive objects to module scope, so mutating the\n * caller's object would corrupt it for every later render.\n */\nfunction normalizeResponsiveValue(value: ResponsiveValue, propDef: CompiledPropDef) {\n let initial = value.initial;\n let changed = false;\n\n if (propDef.hasDefault && initial === undefined) {\n initial = propDef.default as string | undefined;\n changed = true;\n }\n\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(initial)) {\n initial = propDef.default as string | undefined;\n changed = true;\n }\n\n return changed ? { ...value, initial } : value;\n}\n\n/**\n * Takes props, checks them against prop defs that have a `className` on them,\n * adds necessary CSS classes and inline styles, and returns the props without\n * the corresponding prop defs that were used to formulate the new `className`\n * and `style` values. Also applies prop def defaults to every prop.\n */\nfunction extractProps<P extends { className?: string; style?: React.CSSProperties; [key: string]: any }, T extends Record<string, PropDef>[]>(\n props: P,\n ...propDefs: T\n): Omit<P & { className?: string; style?: React.CSSProperties }, PropDefsWithClassName<T[number]>> {\n const { styling, passthrough, stylingKeys } = getCompiledPropDefs(propDefs);\n\n // Copy the props that survive to the element rather than spreading and then\n // deleting the styling keys. Deleting off a spread demotes the object to\n // dictionary mode in V8, and this object is on the render path of every\n // component in the library.\n const extractedProps: Record<string, any> = {};\n for (const key in props) {\n if (stylingKeys.has(key)) continue;\n extractedProps[key] = props[key];\n }\n\n for (let i = 0; i < passthrough.length; i++) {\n const propDef = passthrough[i];\n const value = extractedProps[propDef.key];\n\n if (value === undefined) {\n if (propDef.hasDefault) extractedProps[propDef.key] = propDef.default;\n continue;\n }\n\n // Fall back to the default when the value is not a valid enum value\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(value) && !isResponsiveObject(value)) {\n extractedProps[propDef.key] = propDef.default;\n }\n }\n\n let style: ReturnType<typeof mergeStyles>;\n const classes: string[] = [];\n\n for (let i = 0; i < styling.length; i++) {\n const propDef = styling[i];\n let value = props[propDef.key];\n\n // Apply prop def defaults\n if (value === undefined && propDef.hasDefault) {\n value = propDef.default;\n }\n\n // Apply the default value if the value is not a valid enum value\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(value) && !isResponsiveObject(value)) {\n value = propDef.default;\n }\n\n if (!value) continue;\n\n if (isResponsiveObject(value)) {\n // Make sure we are not threading through responsive values for non-responsive prop defs\n if (!propDef.responsive) continue;\n value = normalizeResponsiveValue(value, propDef);\n }\n\n if (propDef.type === 'enum') {\n const propClassName = getResponsiveClassNames({\n allowArbitraryValues: false,\n value,\n className: propDef.className!,\n propValues: propDef.values,\n propValueSet: propDef.valueSet,\n parseValue: propDef.parseValue,\n });\n\n if (propClassName) classes.push(propClassName);\n continue;\n }\n\n if (propDef.type === 'string' || propDef.type === 'enum | string') {\n const [propClassNames, propCustomProperties] = getResponsiveStyles({\n className: propDef.className!,\n customProperties: propDef.customProperties!,\n // `string` prop defs have no enum values, so every value is arbitrary\n propValues: propDef.type === 'string' ? [] : propDef.values,\n propValueSet: propDef.type === 'string' ? undefined : propDef.valueSet,\n parseValue: propDef.parseValue,\n value,\n });\n\n if (propCustomProperties) style = mergeStyles(style, propCustomProperties);\n if (propClassNames) classes.push(propClassNames);\n continue;\n }\n\n if (propDef.type === 'boolean') {\n // TODO handle responsive boolean props\n classes.push(propDef.className!);\n continue;\n }\n }\n\n extractedProps.className = classNames(classes.length > 0 ? classes.join(' ') : undefined, props.className);\n extractedProps.style = mergeStyles(style, props.style);\n return extractedProps as ReturnType<typeof extractProps<P, T>>;\n}\n\nexport { extractProps };\n", "import type { PropDef } from '../props/prop-def.js';\n\n/**\n * A prop def pre-processed into the exact shape `extractProps` needs at render\n * time. Everything that can be derived from the static prop def \u2014 enum\n * membership sets, whether the def is responsive, whether it carries a default\n * \u2014 is computed once here instead of on every render.\n */\ninterface CompiledPropDef {\n key: string;\n type: PropDef['type'];\n default: unknown;\n hasDefault: boolean;\n responsive: boolean;\n className?: string;\n customProperties?: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n /** The prop def's own enum values, kept for the responsive class name helpers. */\n values: readonly string[];\n /** O(1) membership for `values`. */\n valueSet: ReadonlySet<string>;\n /**\n * `values` plus the default, used to coerce invalid enum values back to the\n * default. Only present for `type: 'enum'` \u2014 `'enum | string'` props accept\n * arbitrary strings and must not be coerced.\n */\n enumValueSet?: ReadonlySet<unknown>;\n}\n\ninterface CompiledPropDefs {\n /** Defs that contribute a class name and/or custom properties. */\n styling: CompiledPropDef[];\n /**\n * Defs that pass through to the element but still need a default applied or\n * an invalid enum value coerced. Defs that can do neither are omitted\n * entirely \u2014 they are already correct as passed.\n */\n passthrough: CompiledPropDef[];\n /** Keys consumed by `styling`, so they can be skipped when copying props. */\n stylingKeys: ReadonlySet<string>;\n}\n\nconst EMPTY_VALUES: readonly string[] = [];\nconst EMPTY_SET: ReadonlySet<string> = new Set();\n\nfunction compile(propDefs: readonly Record<string, PropDef>[]): CompiledPropDefs {\n const merged: Record<string, PropDef> = Object.assign({}, ...propDefs);\n const styling: CompiledPropDef[] = [];\n const passthrough: CompiledPropDef[] = [];\n const stylingKeys = new Set<string>();\n\n for (const key in merged) {\n // The PropDef union is narrowed per-field below; reading the optional\n // members off the union directly is what the runtime actually needs.\n const def = merged[key] as PropDef & {\n default?: unknown;\n values?: readonly string[];\n className?: string;\n customProperties?: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n responsive?: true;\n };\n\n const values = def.values ?? EMPTY_VALUES;\n const compiled: CompiledPropDef = {\n key,\n type: def.type,\n default: def.default,\n hasDefault: def.default !== undefined,\n responsive: 'responsive' in def,\n className: def.className,\n customProperties: def.customProperties,\n parseValue: def.parseValue,\n values,\n valueSet: values.length > 0 ? new Set(values) : EMPTY_SET,\n enumValueSet: def.type === 'enum' ? new Set<unknown>([def.default, ...values]) : undefined,\n };\n\n if (def.className) {\n styling.push(compiled);\n stylingKeys.add(key);\n } else if (compiled.hasDefault || def.type === 'enum') {\n // Anything else is copied through untouched, so there is nothing to do.\n passthrough.push(compiled);\n }\n }\n\n return { styling, passthrough, stylingKeys };\n}\n\ninterface CacheNode {\n children: WeakMap<object, CacheNode>;\n compiled?: CompiledPropDefs;\n}\n\nconst cacheRoot: CacheNode = { children: new WeakMap() };\n\n/**\n * Compiles a set of prop defs, memoized on the identity of the prop def objects\n * themselves. Components always pass the same module-level constants, so after\n * the first render of a given component this is a couple of WeakMap lookups\n * instead of merging 50-odd prop defs into a fresh object.\n */\nfunction getCompiledPropDefs(propDefs: readonly Record<string, PropDef>[]): CompiledPropDefs {\n let node = cacheRoot;\n\n for (let i = 0; i < propDefs.length; i++) {\n const propDef = propDefs[i];\n let child = node.children.get(propDef);\n if (child === undefined) {\n child = { children: new WeakMap() };\n node.children.set(propDef, child);\n }\n node = child;\n }\n\n return (node.compiled ??= compile(propDefs));\n}\n\nexport { getCompiledPropDefs };\nexport type { CompiledPropDef, CompiledPropDefs };\n", "import type React from 'react';\n\n// Creates a union type of string literals with strings, but retains intellisense for the literals.\n// Union<string, 'foo' | 'bar'> => string | Omit<string, 'foo' | 'bar'>\ntype Union<S = string, T extends string | number = string> = T | Omit<S, T>;\n\nconst breakpoints = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'] as const;\nconst breakpointSet: Set<string> = new Set(breakpoints);\ntype Breakpoint = (typeof breakpoints)[number];\ntype Responsive<T> = T | Partial<Record<Breakpoint, T>>;\n\ntype BooleanPropDef = {\n type: 'boolean';\n default?: boolean;\n required?: boolean;\n className?: string;\n};\ntype StringPropDef = {\n type: 'string';\n default?: string;\n required?: boolean;\n};\ntype ReactNodePropDef = {\n type: 'ReactNode';\n default?: React.ReactNode;\n required?: boolean;\n};\ntype EnumPropDef<T> = {\n type: 'enum';\n values: readonly T[];\n default?: T;\n required?: boolean;\n};\ntype EnumOrStringPropDef<T> = {\n type: 'enum | string';\n values: readonly T[];\n default?: T | string;\n required?: boolean;\n};\n\ntype NonStylingPropDef = {\n className?: never;\n customProperties?: never;\n parseValue?: never;\n};\n\ntype StylingPropDef = {\n className: string;\n parseValue?: (value: string) => string | undefined;\n};\n\ntype ArbitraryStylingPropDef = {\n className: string;\n customProperties: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n};\n\ntype RegularPropDef<T> =\n | ReactNodePropDef\n | BooleanPropDef\n | (StringPropDef & ArbitraryStylingPropDef)\n | (StringPropDef & NonStylingPropDef)\n | (EnumPropDef<T> & StylingPropDef)\n | (EnumPropDef<T> & NonStylingPropDef)\n | (EnumOrStringPropDef<T> & ArbitraryStylingPropDef)\n | (EnumOrStringPropDef<T> & NonStylingPropDef);\ntype ResponsivePropDef<T = any> = RegularPropDef<T> & { responsive: true };\ntype PropDef<T = any> = RegularPropDef<T> | ResponsivePropDef<T>;\n\n// prettier-ignore\ntype GetPropDefType<Def> =\n Def extends BooleanPropDef ? (Def extends ResponsivePropDef ? Responsive<boolean> : boolean)\n : Def extends StringPropDef ? (Def extends ResponsivePropDef ? Responsive<string> : string)\n : Def extends ReactNodePropDef ? (Def extends ResponsivePropDef ? Responsive<React.ReactNode> : React.ReactNode)\n : Def extends EnumOrStringPropDef<infer Type> ?\n Def extends ResponsivePropDef<infer Type extends string> ? Responsive<Union<string, Type>> : Type\n : Def extends EnumPropDef<infer Type> ? (Def extends ResponsivePropDef<infer Type> ? Responsive<Type> : Type)\n : never;\n\ntype GetPropDefTypes<P> = {\n [K in keyof P]?: GetPropDefType<P[K]>;\n};\n\nexport { breakpoints, breakpointSet };\nexport type {\n PropDef,\n GetPropDefTypes,\n ResponsivePropDef,\n //\n Breakpoint,\n Responsive,\n Union,\n};\n", "/** A util to check whether the object has a key, while inferring the correct key type */\nfunction hasOwnProperty<K extends string | number | symbol>(\n obj: Record<K, unknown>,\n key: string | number | symbol\n): key is K {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport { hasOwnProperty };\n", "import type { Responsive, Breakpoint } from '../props/prop-def.js';\n\n// Use a Set for O(1) lookup instead of array.includes() which is O(n)\nconst breakpointSet = new Set<string>(['initial', 'xs', 'sm', 'md', 'lg', 'xl']);\n\nexport function isResponsiveObject<Value extends string>(\n obj: Responsive<Value | Omit<string, Value>> | undefined\n): obj is Record<Breakpoint, string> {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n // Use for...in to avoid Object.keys() array allocation\n for (const key in obj) {\n if (breakpointSet.has(key)) {\n return true;\n }\n }\n return false;\n}\n", "import { breakpointSet } from '../props/prop-def.js';\nimport { hasOwnProperty } from './has-own-property.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\n\nimport type { Responsive, Union } from '../props/prop-def.js';\n\n/**\n * Membership test against a prop def's enum values. Callers that already hold a\n * compiled prop def pass `propValueSet` for an O(1) lookup; the handful of call\n * sites that build options inline fall back to scanning the array.\n */\nfunction includesValue(propValues: string[] | readonly string[], propValueSet: ReadonlySet<string> | undefined, value: string): boolean {\n return propValueSet !== undefined ? propValueSet.has(value) : propValues.includes(value);\n}\n\ninterface GetResponsiveStylesOptions {\n className: string;\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveStyles({ className, customProperties, ...args }: GetResponsiveStylesOptions) {\n const responsiveClassNames = getResponsiveClassNames({\n allowArbitraryValues: true,\n className,\n ...args,\n });\n\n const responsiveCustomProperties = getResponsiveCustomProperties({ customProperties, ...args });\n return [responsiveClassNames, responsiveCustomProperties] as const;\n}\n\ninterface GetResponsiveClassNamesOptions {\n allowArbitraryValues?: boolean;\n className: string;\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveClassNames({ allowArbitraryValues, value, className, propValues, propValueSet, parseValue = (value) => value }: GetResponsiveClassNamesOptions): string | undefined {\n if (!value) {\n return undefined;\n }\n\n if (typeof value === 'string') {\n if (includesValue(propValues, propValueSet, value)) {\n return getBaseClassName(className, value, parseValue);\n }\n return allowArbitraryValues ? className : undefined;\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n const classNames: string[] = [];\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n if (value !== undefined) {\n if (includesValue(propValues, propValueSet, value)) {\n const baseClassName = getBaseClassName(className, value, parseValue);\n const bpClassName = bp === 'initial' ? baseClassName : `${bp}:${baseClassName}`;\n classNames.push(bpClassName);\n } else if (allowArbitraryValues) {\n const bpClassName = bp === 'initial' ? className : `${bp}:${className}`;\n classNames.push(bpClassName);\n }\n }\n }\n\n return classNames.length > 0 ? classNames.join(' ') : '';\n }\n\n if (allowArbitraryValues) {\n return className;\n }\n}\n\nfunction getBaseClassName(className: string, value: string, parseValue: (value: string) => string | undefined): string {\n const delimiter = className ? '-' : '';\n const matchedValue = parseValue(value);\n const isNegative = matchedValue?.startsWith('-');\n const minus = isNegative ? '-' : '';\n const absoluteValue = isNegative ? matchedValue?.substring(1) : matchedValue;\n return `${minus}${className}${delimiter}${absoluteValue}`;\n}\n\ninterface GetResponsiveCustomPropertiesOptions {\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveCustomProperties({ customProperties, value, propValues, propValueSet, parseValue = (value) => value }: GetResponsiveCustomPropertiesOptions) {\n // Don't generate custom properties if the value is not arbitrary\n if (!value || (typeof value === 'string' && includesValue(propValues, propValueSet, value))) {\n return undefined;\n }\n\n let styles: Record<string, string | undefined> | undefined;\n\n if (typeof value === 'string') {\n const parsed = parseValue(value);\n styles = {};\n for (const customProperty of customProperties) {\n styles[customProperty] = parsed;\n }\n return styles;\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n // Don't generate a custom property if the value is not arbitrary\n if (value === undefined || includesValue(propValues, propValueSet, value)) {\n continue;\n }\n\n const parsed = parseValue(value);\n styles ??= {};\n for (const customProperty of customProperties) {\n const bpProperty = bp === 'initial' ? customProperty : `${customProperty}-${bp}`;\n styles[bpProperty] = parsed;\n }\n }\n }\n\n return styles ?? {};\n}\n\nexport { getResponsiveStyles, getResponsiveCustomProperties, getResponsiveClassNames };\n", "type InlineStyle =\n | React.CSSProperties\n | Record<string, string | number | null | undefined>\n | undefined;\n\n// Merges CSS styles like `classNames` merges CSS classes\n// Optimized to avoid object spread in loop - uses Object.assign for in-place mutation\nexport function mergeStyles(...styles: Array<InlineStyle>): InlineStyle {\n let result: Record<string, string | number | null | undefined> | undefined;\n\n for (const style of styles) {\n if (style) {\n if (result === undefined) {\n // First non-empty style - create result object\n result = {};\n }\n Object.assign(result, style);\n }\n }\n\n return result;\n}\n", "'use client';\n\nimport * as React from 'react';\n\ntype ThemeSize = '1' | '2' | '3' | '4';\n\n/** The rest of the 1-4 index when no Theme states a size. */\nconst THEME_SIZE_DEFAULT: ThemeSize = '2';\n\n/**\n * The app-wide size index, provided by `Theme` beside `ThemeContext`.\n *\n * It is its own context, holding one string, so a component that only needs\n * the size does not re-render when the accent colour or appearance changes.\n */\nconst ThemeSizeContext = React.createContext<ThemeSize>(THEME_SIZE_DEFAULT);\nThemeSizeContext.displayName = 'ThemeSizeContext';\n\ninterface SizePropDef {\n values: readonly string[];\n default?: string;\n}\n\n/**\n * Maps the theme size onto a component's own range: the value itself when the\n * component has it, otherwise the nearest end of the range (`4` on a 1-3 scale\n * is `3`, on a 1-2 scale it is `2`).\n */\nfunction clampSize(size: ThemeSize, values: readonly string[]): string {\n if (values.includes(size)) return size;\n const n = Number(size);\n let nearest = values[0];\n let distance = Infinity;\n for (let i = 0; i < values.length; i++) {\n const d = Math.abs(Number(values[i]) - n);\n if (d < distance) {\n distance = d;\n nearest = values[i];\n }\n }\n return nearest;\n}\n\n/**\n * The size a component on the 1-4 index takes: what the caller said, else the\n * nearest Theme's size, mapped into the component's range.\n */\nfunction useThemeSize<V>(explicit: V | undefined, propDef: SizePropDef): V {\n const themeSize = React.useContext(ThemeSizeContext);\n if (explicit !== undefined) return explicit;\n // The clamped value is one of `propDef.values`, which is what `V` ranges over.\n return clampSize(themeSize, propDef.values) as V;\n}\n\n/**\n * Fills `size` from the nearest Theme when the caller left it unset, so the\n * result can go straight into `extractProps`. An explicit size, responsive\n * object included, wins.\n *\n * Returns the same props object when there is nothing to fill: when a size is\n * set, or when the theme size resolves to the prop def's own default (the\n * common case, a Theme with no size), so `extractProps` applies it as before.\n */\nfunction useThemeSizeProps<P extends { size?: unknown }>(props: P, propDef: SizePropDef): P {\n const themeSize = React.useContext(ThemeSizeContext);\n if (props.size !== undefined) return props;\n const size = clampSize(themeSize, propDef.values);\n if (size === propDef.default) return props;\n return { ...props, size };\n}\n\nexport { ThemeSizeContext, THEME_SIZE_DEFAULT, clampSize, useThemeSize, useThemeSizeProps };\nexport type { ThemeSize };\n", "import React from 'react';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype IconElement = React.ElementRef<'svg'>;\ninterface IconProps extends ComponentPropsWithout<'svg', RemovedProps | 'children'> {}\n\nconst ThickDividerHorizontalIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z\"\n />\n </svg>\n );\n});\n\nThickDividerHorizontalIcon.displayName = 'ThickDividerHorizontalIcon';\n\nconst ThickCheckIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z\"\n />\n </svg>\n );\n});\nThickCheckIcon.displayName = 'ThickCheckIcon';\n\nconst ChevronDownIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path d=\"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z\" />\n </svg>\n );\n});\nChevronDownIcon.displayName = 'ChevronDownIcon';\n\nconst ThickChevronRightIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronRightIcon.displayName = 'ThickChevronRightIcon';\n\nconst ThickChevronLeftIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.76174 0.201711C5.45892 -0.0809141 4.98433 -0.0645489 4.70171 0.238264L1.20171 3.98826C0.932757 4.27642 0.932757 4.72359 1.20171 5.01174L4.70171 8.76174C4.98433 9.06455 5.45892 9.08092 5.76174 8.79829C6.06455 8.51567 6.08091 8.04108 5.79829 7.73826L2.77591 4.5L5.79829 1.26174C6.08091 0.958928 6.06455 0.484337 5.76174 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronLeftIcon.displayName = 'ThickChevronLeftIcon';\n\nconst ThickDotIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <circle cx=\"4.5\" cy=\"4.5\" r=\"2\" />\n </svg>\n );\n});\nThickDotIcon.displayName = 'ThickDotIcon';\n\nexport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDividerHorizontalIcon, ThickDotIcon };\nexport type { IconProps };\n\n// Additional minimal icons\nconst CloseIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg\n {..._props}\n ref={_forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n});\nCloseIcon.displayName = 'CloseIcon';\n\nconst PaperclipIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg\n {...props}\n ref={forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\" />\n </svg>\n );\n});\nPaperclipIcon.displayName = 'PaperclipIcon';\n\nconst FileIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <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\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n </svg>\n );\n});\nFileIcon.displayName = 'FileIcon';\n\nconst FileTextIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <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\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n <path d=\"M10 9H8\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </svg>\n );\n});\nFileTextIcon.displayName = 'FileTextIcon';\n\n/** The tick a button shows in place of its icon while `done`. Drawn on the 24 grid at the icon set's stroke. */\nconst TickIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path d=\"M5 12.75L9.5 17.25L19 7.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n});\nTickIcon.displayName = 'TickIcon';\n\nexport { CloseIcon, PaperclipIcon, FileIcon, FileTextIcon, TickIcon };\n", "import type { PropDef } from './prop-def.js';\n\n// prettier-ignore\nconst accentColors = ['gray', 'gold', 'bronze', 'brown', 'yellow', 'amber', 'orange', 'tomato', 'red', 'ruby', 'crimson', 'pink', 'plum', 'purple', 'violet', 'iris', 'indigo', 'blue', 'cyan', 'teal', 'jade', 'green', 'grass', 'lime', 'mint', 'sky'] as const;\n\nconst grayColors = ['auto', 'gray', 'mauve', 'slate', 'sage', 'olive', 'sand'] as const;\n\nconst colorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: undefined as (typeof accentColors)[number] | undefined,\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// 1. When used on components that compose Text, sets the color of the text to the current accent.\n// 2. Re-declares the accent role tokens (`--accent-ink`, `--accent-solid`, ...) that descendants read.\nconst accentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: '' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// For components whose colour comes from their content (Chip, Avatar, Code): they rest gray, and `color` picks a category when it means something.\nconst grayAccentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: 'gray' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\nexport {\n accentColorPropDef,\n grayAccentColorPropDef,\n colorPropDef,\n //\n accentColors,\n grayColors,\n};\n", "import type { PropDef } from './prop-def.js';\n\nconst radii = ['none', 'small', 'medium', 'large', 'full'] as const;\n\nconst radiusPropDef = {\n radius: {\n type: 'enum',\n values: radii,\n default: undefined,\n },\n} satisfies {\n radius: PropDef<(typeof radii)[number]>;\n};\n\nexport { radiusPropDef, radii };\n", "import type React from 'react';\n\nimport { colorPropDef } from '../props/color.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\n\nconst selectRootPropDefs = {\n size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n};\n\nconst triggerVariants = ['raised', 'surface', 'soft', 'outline', 'ghost'] as const;\n\nconst selectTriggerPropDefs = {\n variant: { type: 'enum', className: 'kui-variant', values: triggerVariants, default: 'raised' },\n error: { type: 'boolean' },\n loading: { type: 'boolean' },\n disabled: { type: 'boolean' },\n readOnly: { type: 'boolean' },\n ...colorPropDef,\n ...radiusPropDef,\n placeholder: { type: 'ReactNode' },\n} satisfies {\n variant: PropDef<(typeof triggerVariants)[number]>;\n error: PropDef<boolean>;\n loading: PropDef<boolean>;\n disabled: PropDef<boolean>;\n readOnly: PropDef<boolean>;\n placeholder: PropDef<React.ReactNode>;\n};\n\n\nconst selectContentPropDefs = {\n ...colorPropDef,\n} satisfies {\n};\n\nexport { selectRootPropDefs, selectTriggerPropDefs, selectContentPropDefs };\n", "'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot, Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { ThemeSizeContext } from '../helpers/theme-size.js';\nimport { usePropSyncedState } from '../hooks/use-prop-synced-state.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\ntype ThemeSize = (typeof themePropDefs.size.values)[number];\n// Headings follow the body font until something sets this, so `undefined` is a\n// meaningful value here rather than a missing one.\ntype ThemeHeadingFontFamily = ThemeFontFamily | undefined;\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n onHeadingFontFamilyChange: (headingFontFamily: ThemeHeadingFontFamily) => void;\n onSizeChange: (size: ThemeSize) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n radius: ThemeRadius;\n fontFamily: ThemeFontFamily;\n headingFontFamily: ThemeHeadingFontFamily;\n size: ThemeSize;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n radius: themePropDefs.radius.default,\n fontFamily: themePropDefs.fontFamily.default,\n headingFontFamily: undefined,\n size: themePropDefs.size.default,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onRadiusChange: noop,\n onFontFamilyChange: noop,\n onHeadingFontFamilyChange: noop,\n onSizeChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n // Direction is inherited: a Radix DirectionProvider above the Theme (for a right-to-left app)\n // wins, and left-to-right stays the default when there is none.\n const dir = Direction.useDirection();\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <TooltipPrimitive.Provider delayDuration={200}>\n <Direction.Provider dir={dir}>\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n </TooltipPrimitive.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>((props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n radius: radiusProp = themePropDefs.radius.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n headingFontFamily: headingFontFamilyProp,\n size: sizeProp = themePropDefs.size.default,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n // Each of these follows its prop but stays independently settable, so\n // the context setters can change the theme at runtime. Syncing during render\n // rather than in an effect matters here: an effect would commit the old\n // theme first and re-render every consumer of the context a second time.\n const [appearance, setAppearance] = usePropSyncedState(appearanceProp);\n const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);\n const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);\n const [radius, setRadius] = usePropSyncedState(radiusProp);\n const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);\n const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);\n const [size, setSize] = usePropSyncedState(sizeProp);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n radius={radius}\n fontFamily={fontFamily}\n headingFontFamily={headingFontFamily}\n size={size}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onRadiusChange={setRadius}\n onFontFamilyChange={setFontFamily}\n onHeadingFontFamilyChange={setHeadingFontFamily}\n onSizeChange={setSize}\n />\n );\n});\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps extends ComponentPropsWithout<'div', RemovedProps | 'dir'>, ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nfunction getClientOS(): 'windows' | 'macos' | 'linux' | undefined {\n if (typeof navigator === 'undefined') return undefined;\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'windows';\n if (ua.includes('Mac')) return 'macos';\n if (ua.includes('Linux')) return 'linux';\n return undefined;\n}\n\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n headingFontFamily = props.headingFontFamily ?? context?.headingFontFamily,\n size = props.size ?? context?.size ?? themePropDefs.size.default,\n //\n onAppearanceChange = noop,\n onAccentColorChange = noop,\n onGrayColorChange = noop,\n onRadiusChange = noop,\n onFontFamilyChange = noop,\n onHeadingFontFamilyChange = noop,\n onSizeChange = noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground = hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n // `data-os` can only be resolved on the client. Writing it straight to the\n // DOM keeps it out of the server markup \u2014 so hydration still matches \u2014 without\n // spending a render pass, and a state update here would re-render the whole\n // application on mount.\n const rootRef = React.useRef<ThemeImplElement>(null);\n const composedRef = useComposedRefs(forwardedRef, rootRef);\n const hasExplicitOS = 'data-os' in themeProps;\n\n useLayoutEffect(() => {\n if (!isRoot || hasExplicitOS) return;\n const node = rootRef.current;\n if (!node) return;\n\n const os = getClientOS();\n if (!os) return;\n node.setAttribute('data-os', os);\n return () => node.removeAttribute('data-os');\n }, [isRoot, hasExplicitOS]);\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n radius,\n fontFamily,\n headingFontFamily,\n size,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onRadiusChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n onSizeChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n radius,\n fontFamily,\n headingFontFamily,\n size,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onRadiusChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n onSizeChange,\n ],\n )}\n >\n {/* Size travels on its own context as a bare string, so the components\n that read it do not re-render when another theme value changes. */}\n <ThemeSizeContext.Provider value={size}>\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-radius={radius}\n data-font-family={fontFamily}\n data-heading-font-family={headingFontFamily}\n ref={composedRef}\n {...themeProps}\n className={classNames(\n 'kui-theme',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeSizeContext.Provider>\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n", "import type { accentColors } from '../props/color.prop.js';\n\ntype ThemeAccentColor = (typeof accentColors)[number];\n\nexport function getMatchingGrayColor(accentColor: ThemeAccentColor) {\n switch (accentColor) {\n case 'tomato':\n case 'red':\n case 'ruby':\n case 'crimson':\n case 'pink':\n case 'plum':\n case 'purple':\n case 'violet':\n return 'mauve';\n case 'iris':\n case 'indigo':\n case 'blue':\n case 'sky':\n case 'cyan':\n return 'slate';\n case 'teal':\n case 'jade':\n case 'mint':\n case 'green':\n return 'sage';\n case 'grass':\n case 'lime':\n return 'olive';\n case 'yellow':\n case 'amber':\n case 'orange':\n case 'brown':\n case 'gold':\n case 'bronze':\n return 'sand';\n case 'gray':\n return 'gray';\n }\n}\n", "import * as React from 'react';\n\n/**\n * State that tracks a prop but can also be set imperatively \u2014 the shape `Theme`\n * needs, where a prop sets the value and the context setters can change it at runtime.\n *\n * Adjusts state during render rather than syncing in a `useEffect`. An effect\n * would commit one render carrying the *old* value and schedule a second one,\n * which for a provider means every consumer renders twice and the browser can\n * paint the stale value in between.\n *\n * @see https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\nexport function usePropSyncedState<T>(propValue: T) {\n const [value, setValue] = React.useState(propValue);\n const [previousPropValue, setPreviousPropValue] = React.useState(propValue);\n\n if (!Object.is(propValue, previousPropValue)) {\n setPreviousPropValue(propValue);\n setValue(propValue);\n }\n\n return [value, setValue] as const;\n}\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColors, grayColors } from '../props/color.prop.js';\nimport { radii } from '../props/radius.prop.js';\n\nimport type { GetPropDefTypes, PropDef } from '../props/prop-def.js';\n\nconst appearances = ['inherit', 'light', 'dark'] as const;\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\nconst sizes = ['1', '2', '3', '4'] as const;\n\nconst themePropDefs = {\n ...asChildPropDef,\n /**\n * Whether to apply background color to the Theme element.\n *\n * Defaults to true for the root Theme and for Theme elements that\n * have an explicit light or dark appearance prop.\n */\n hasBackground: { type: 'boolean', default: true },\n /**\n * Sets the color scheme of the theme, typcially referred to as light and dark mode.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/dark-mode\n */\n appearance: { type: 'enum', values: appearances, default: 'inherit' },\n /**\n * Selects one of the accent color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n accentColor: { type: 'enum', values: accentColors, default: 'gray' },\n /**\n * Selects one of the gray color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n grayColor: { type: 'enum', values: grayColors, default: 'gray' },\n /**\n * Sets the default radius of the components.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n radius: { type: 'enum', values: radii, default: 'full' },\n /**\n * Sets the font family used for body text in the theme.\n *\n * Headings follow this unless `headingFontFamily` (or the `--font-heading`\n * token) says otherwise.\n *\n * @default 'sans'\n */\n fontFamily: { type: 'enum', values: fontFamilies, default: 'sans' },\n /**\n * Sets the font family used for `Heading`, independently of body text.\n *\n * Deliberately has no default: when it is left unset no attribute is\n * emitted and `--font-heading` keeps following `--font-body`, so a\n * `--font-heading` override in your own CSS survives a `fontFamily` switch.\n */\n headingFontFamily: { type: 'enum', values: fontFamilies },\n /**\n * The app-wide size index. Every component on the 1-4 control and surface\n * scale that states no `size` of its own takes this one; an explicit\n * `size` always wins. Nested Themes override it for their subtree.\n *\n * @default '2'\n */\n size: { type: 'enum', values: sizes, default: '2' },\n} satisfies {\n hasBackground: PropDef<boolean>;\n appearance: PropDef<(typeof appearances)[number]>;\n accentColor: PropDef<(typeof accentColors)[number]>;\n grayColor: PropDef<(typeof grayColors)[number]>;\n radius: PropDef<(typeof radii)[number]>;\n fontFamily: PropDef<(typeof fontFamilies)[number]>;\n headingFontFamily: PropDef<(typeof fontFamilies)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n};\n\ntype ThemeOwnProps = GetPropDefTypes<typeof themePropDefs & typeof asChildPropDef>;\n\nexport { themePropDefs };\nexport type { ThemeOwnProps };\n", "import * as React from 'react';\n\n/**\n * Keeps a Radix ScrollArea's thumbs on the scroll position on every scroll.\n *\n * Radix moves a thumb from a requestAnimationFrame loop it starts on the first scroll event of a\n * burst. Next's production minifier compiles that self-calling loop away, so in a production\n * build the thumb moves once, sits while the content scrolls, and jumps when the next burst\n * starts. This writes the transform Radix would, at most once per frame. Nothing re-renders.\n *\n * Pass the hook's setter as a ref on `ScrollArea.Viewport`; the scrollbars are its siblings.\n */\nexport function useThumbSync<T extends HTMLElement>() {\n const [viewport, setViewport] = React.useState<T | null>(null);\n\n React.useEffect(() => {\n const root = viewport?.parentElement;\n if (!viewport || !root) return;\n let frame = 0;\n const write = () => {\n frame = 0;\n for (const thumb of root.querySelectorAll<HTMLElement>(':scope > .kui-ScrollAreaScrollbar > .kui-ScrollAreaThumb')) {\n const scrollbar = thumb.parentElement as HTMLElement;\n const style = getComputedStyle(scrollbar);\n if (scrollbar.dataset.orientation === 'horizontal') {\n const track = scrollbar.clientWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight);\n const offset = thumbOffset(viewport.scrollLeft, viewport.scrollWidth - viewport.offsetWidth, track - thumb.offsetWidth);\n thumb.style.transform = `translate3d(${offset}px, 0, 0)`;\n } else {\n const track = scrollbar.clientHeight - parseFloat(style.paddingTop) - parseFloat(style.paddingBottom);\n const offset = thumbOffset(viewport.scrollTop, viewport.scrollHeight - viewport.offsetHeight, track - thumb.offsetHeight);\n thumb.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }\n };\n const schedule = () => {\n if (!frame) frame = requestAnimationFrame(write);\n };\n viewport.addEventListener('scroll', schedule, { passive: true });\n return () => {\n if (frame) cancelAnimationFrame(frame);\n viewport.removeEventListener('scroll', schedule);\n };\n }, [viewport]);\n\n return setViewport;\n}\n\n/** Radix's mapping: scroll position over its range, onto the room the thumb has to travel. */\nfunction thumbOffset(position: number, range: number, travel: number) {\n if (range <= 0 || travel <= 0) return 0;\n // Right-to-left scrolls run from -range to 0; the thumb then travels from -travel to 0.\n const clamped = Math.min(Math.max(position, -range), range);\n return (clamped / range) * travel;\n}\n"],
5
- "mappings": "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",
6
- "names": ["select_exports", "__export", "SelectContent", "SelectGroup", "SelectItem", "SelectLabel", "SelectRoot", "SelectSeparator", "SelectTrigger", "__toCommonJS", "React", "import_classnames", "import_radix_ui", "import_classnames", "EMPTY_VALUES", "EMPTY_SET", "compile", "propDefs", "merged", "styling", "passthrough", "stylingKeys", "key", "def", "values", "compiled", "cacheRoot", "getCompiledPropDefs", "node", "i", "propDef", "child", "breakpoints", "breakpointSet", "hasOwnProperty", "obj", "key", "breakpointSet", "isResponsiveObject", "obj", "key", "includesValue", "propValues", "propValueSet", "value", "getResponsiveStyles", "className", "customProperties", "args", "responsiveClassNames", "getResponsiveClassNames", "responsiveCustomProperties", "getResponsiveCustomProperties", "allowArbitraryValues", "parseValue", "getBaseClassName", "isResponsiveObject", "object", "classNames", "bp", "hasOwnProperty", "breakpointSet", "baseClassName", "bpClassName", "delimiter", "matchedValue", "isNegative", "minus", "absoluteValue", "styles", "parsed", "customProperty", "bpProperty", "mergeStyles", "styles", "result", "style", "normalizeResponsiveValue", "value", "propDef", "initial", "changed", "extractProps", "props", "propDefs", "styling", "passthrough", "stylingKeys", "getCompiledPropDefs", "extractedProps", "key", "i", "isResponsiveObject", "style", "classes", "propClassName", "getResponsiveClassNames", "propClassNames", "propCustomProperties", "getResponsiveStyles", "mergeStyles", "classNames", "React", "THEME_SIZE_DEFAULT", "ThemeSizeContext", "clampSize", "size", "values", "n", "nearest", "distance", "d", "useThemeSize", "explicit", "propDef", "themeSize", "import_react", "ThickDividerHorizontalIcon", "React", "props", "forwardedRef", "ThickCheckIcon", "ChevronDownIcon", "ThickChevronRightIcon", "ThickChevronLeftIcon", "ThickDotIcon", "CloseIcon", "React", "_props", "_forwardedRef", "PaperclipIcon", "props", "forwardedRef", "FileIcon", "FileTextIcon", "TickIcon", "accentColors", "grayColors", "colorPropDef", "radii", "radiusPropDef", "sizes", "selectRootPropDefs", "triggerVariants", "selectTriggerPropDefs", "colorPropDef", "radiusPropDef", "selectContentPropDefs", "React", "import_classnames", "import_radix_ui", "import_internal", "getMatchingGrayColor", "accentColor", "React", "usePropSyncedState", "propValue", "value", "setValue", "previousPropValue", "setPreviousPropValue", "asChildPropDef", "appearances", "fontFamilies", "sizes", "themePropDefs", "asChildPropDef", "accentColors", "grayColors", "radii", "noop", "defaultThemeContext", "themePropDefs", "ThemeContext", "useThemeContext", "Theme", "props", "forwardedRef", "context", "dir", "TooltipPrimitive", "ThemeRoot", "ThemeImpl", "appearanceProp", "accentColorProp", "grayColorProp", "radiusProp", "fontFamilyProp", "headingFontFamilyProp", "sizeProp", "hasBackground", "rootProps", "appearance", "setAppearance", "usePropSyncedState", "accentColor", "setAccentColor", "grayColor", "setGrayColor", "radius", "setRadius", "fontFamily", "setFontFamily", "headingFontFamily", "setHeadingFontFamily", "size", "setSize", "getClientOS", "ua", "asChild", "isRoot", "hasBackgroundProp", "onAppearanceChange", "onAccentColorChange", "onGrayColorChange", "onRadiusChange", "onFontFamilyChange", "onHeadingFontFamilyChange", "onSizeChange", "themeProps", "Comp", "resolvedGrayColor", "getMatchingGrayColor", "isExplicitAppearance", "rootRef", "composedRef", "hasExplicitOS", "node", "os", "ThemeSizeContext", "classNames", "React", "useThumbSync", "viewport", "setViewport", "root", "frame", "write", "thumb", "scrollbar", "style", "track", "offset", "thumbOffset", "schedule", "position", "range", "travel", "selectSizePropDefs", "selectRootPropDefs", "OPEN_KEYS", "SelectContext", "SelectRoot", "props", "children", "sizeProp", "openProp", "defaultOpen", "onOpenChange", "rootProps", "size", "useThemeSize", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChange", "next", "SelectPrimitive", "SelectTrigger", "forwardedRef", "context", "className", "color", "radius", "placeholder", "error", "loading", "disabled", "readOnly", "triggerProps", "extractProps", "selectTriggerPropDefs", "ariaInvalid", "ariaBusy", "ariaDisabled", "ariaReadOnly", "isInvalid", "ariaProps", "blockedHandlers", "event", "isModifierKey", "classNames", "ChevronDownIcon", "SelectContent", "container", "contentProps", "selectContentPropDefs", "themeContext", "useThemeContext", "resolvedColor", "Theme", "SelectScrollArea", "setThumbViewport", "useThumbSync", "ScrollAreaPrimitive", "SelectItem", "itemProps", "isRichContent", "ThickCheckIcon", "SelectGroup", "SelectLabel", "SelectSeparator"]
3
+ "sources": ["../../../src/components/select.tsx", "../../../src/helpers/extract-props.ts", "../../../src/helpers/compile-prop-defs.ts", "../../../src/props/prop-def.ts", "../../../src/helpers/has-own-property.ts", "../../../src/helpers/is-responsive-object.ts", "../../../src/helpers/get-responsive-styles.ts", "../../../src/helpers/merge-styles.ts", "../../../src/helpers/theme-size.ts", "../../../src/components/icons.tsx", "../../../src/components/spinner.tsx", "../../../src/components/flex.tsx", "../../../src/props/padding.props.ts", "../../../src/props/height.props.ts", "../../../src/props/width.props.ts", "../../../src/props/layout.props.ts", "../../../src/props/margin.props.ts", "../../../src/components/slot.tsx", "../../../src/props/as-child.prop.ts", "../../../src/props/gap.props.ts", "../../../src/components/flex.props.tsx", "../../../src/components/spinner.props.tsx", "../../../src/props/color.prop.ts", "../../../src/props/radius.prop.ts", "../../../src/components/select.props.tsx", "../../../src/components/theme.tsx", "../../../src/helpers/get-matching-gray-color.ts", "../../../src/hooks/use-prop-synced-state.ts", "../../../src/components/theme.props.tsx", "../../../src/hooks/use-thumb-sync.ts"],
4
+ "sourcesContent": ["'use client';\n\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 { ChevronDownIcon, ThickCheckIcon } from './icons.js';\nimport { Spinner } from './spinner.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 { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype SelectRootOwnProps = GetPropDefTypes<typeof selectRootPropDefs>;\n\n// Trigger and Content pass the size prop def as its own record. It is hoisted because\n// extractProps caches its compiled prop defs on the identity of each record it is given:\n// a literal written at the call site would be a new object, and a recompile, every render.\nconst selectSizePropDefs = { size: selectRootPropDefs.size };\n\n// Keys that open the list from the trigger, as in Radix.\nconst OPEN_KEYS = [' ', 'Enter', 'ArrowUp', 'ArrowDown'];\n\ninterface SelectContextValue extends SelectRootOwnProps {\n /** Whether the list is open. Undefined when Content is rendered outside a Kookie Select.Root. */\n open?: boolean;\n}\nconst SelectContext = React.createContext<SelectContextValue>({});\n\ninterface SelectRootProps extends SelectPrimitive.SelectProps, SelectRootOwnProps {}\nconst SelectRoot: React.FC<SelectRootProps> = (props) => {\n const {\n children,\n size: sizeProp,\n open: openProp,\n defaultOpen,\n onOpenChange,\n ...rootProps\n } = props;\n const size = useThemeSize(sizeProp, selectRootPropDefs.size);\n\n // Root owns the open state and hands Radix a controlled `open`, so Content learns of a\n // change in the same render Radix does. Radix's uncontrolled state reports changes from an\n // effect, a render late, which would mount the open list once without its wrappers.\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false);\n const open = openProp ?? uncontrolledOpen;\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n onOpenChange?.(next);\n },\n [onOpenChange],\n );\n\n return (\n <SelectPrimitive.Root {...rootProps} open={open} onOpenChange={handleOpenChange}>\n <SelectContext.Provider value={React.useMemo(() => ({ size, open }), [size, open])}>\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 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 selectSizePropDefs,\n selectTriggerPropDefs,\n );\n\n // The props win when set; otherwise a caller's own aria-* (a form library's aria-invalid)\n // stays, so both paths reach the accessibility tree and the CSS, as on TextField.\n const {\n 'aria-invalid': ariaInvalid,\n 'aria-busy': ariaBusy,\n 'aria-disabled': ariaDisabled,\n 'aria-readonly': ariaReadOnly,\n } = triggerProps;\n const isInvalid = Boolean(error) || ariaInvalid === true || ariaInvalid === 'true';\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid ? true : ariaInvalid,\n 'aria-busy': loading || ariaBusy,\n 'aria-disabled': disabled || ariaDisabled,\n 'aria-readonly': readOnly || ariaReadOnly,\n }),\n [isInvalid, ariaInvalid, loading, ariaBusy, disabled, ariaDisabled, readOnly, ariaReadOnly],\n );\n\n // Read-only and loading triggers stay focusable but do not open or take typeahead,\n // as on Combobox. Radix skips its own handler when the event is default-prevented.\n const isBlocked = Boolean(readOnly || loading);\n const blockedHandlers = isBlocked\n ? {\n onPointerDown: (event: React.PointerEvent<HTMLButtonElement>) => event.preventDefault(),\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.currentTarget.focus();\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (OPEN_KEYS.includes(event.key) || (!isModifierKey && event.key.length === 1)) {\n event.preventDefault();\n }\n },\n }\n : undefined;\n\n return (\n // `disabled` goes to Radix, which merges it with Root's and sets the native attribute.\n <SelectPrimitive.Trigger asChild disabled={disabled} {...blockedHandlers}>\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('kui-reset', 'kui-SelectTrigger', className)}\n >\n <span className=\"kui-SelectTriggerInner\">\n <SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>\n </span>\n <SelectPrimitive.Icon asChild>\n {loading ? (\n <span className=\"kui-SelectIcon kui-SelectLoadingIcon\" aria-hidden=\"true\">\n <Spinner />\n </span>\n ) : (\n <ChevronDownIcon className=\"kui-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 selectSizePropDefs,\n selectContentPropDefs,\n );\n const themeContext = useThemeContext();\n\n // While closed, Radix still renders Content's children, into a detached fragment: the\n // items must exist for the trigger's value label, typeahead and the native form select.\n // Nothing in that fragment is ever shown, so the theme wrapper and the scroll area, with\n // its two resize observers, are left out until the list opens.\n if (context.open === false && !contentProps.forceMount) {\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content {...contentProps} asChild={false} ref={forwardedRef}>\n {children}\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n }\n\n const resolvedColor = color || themeContext.accentColor;\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 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-SelectContent',\n className,\n )}\n >\n <SelectScrollArea>{children}</SelectScrollArea>\n </SelectPrimitive.Content>\n </Theme>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'Select.Content';\n\n/** The open list's scroll area. Its own component so the thumb sync hook runs only while open. */\nfunction SelectScrollArea({ children }: { children: React.ReactNode }) {\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n return (\n <ScrollAreaPrimitive.Root type=\"auto\" className=\"kui-ScrollAreaRoot\">\n <SelectPrimitive.Viewport\n asChild\n className={classNames('kui-BaseMenuViewport', 'kui-SelectViewport')}\n >\n <ScrollAreaPrimitive.Viewport\n ref={setThumbViewport}\n className=\"kui-ScrollAreaViewport\"\n style={{ overflowY: undefined }}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n </SelectPrimitive.Viewport>\n <ScrollAreaPrimitive.Scrollbar className=\"kui-ScrollAreaScrollbar\" orientation=\"vertical\">\n <ScrollAreaPrimitive.Thumb className=\"kui-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n </ScrollAreaPrimitive.Root>\n );\n}\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 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-SelectItem',\n { 'kui-SelectItemRich': isRichContent },\n className,\n )}\n >\n <SelectPrimitive.ItemIndicator className=\"kui-SelectItemIndicator\">\n <ThickCheckIcon className=\"kui-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('kui-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('kui-BaseMenuLabel', 'kui-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('kui-BaseMenuSeparator', 'kui-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", "import classNames from 'classnames';\n\nimport { getCompiledPropDefs } from './compile-prop-defs.js';\nimport { getResponsiveClassNames, getResponsiveStyles } from './get-responsive-styles.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\nimport { mergeStyles } from './merge-styles.js';\n\nimport type { CompiledPropDef } from './compile-prop-defs.js';\nimport type * as React from 'react';\nimport type { PropDef } from '../props/prop-def.js';\n\ntype PropDefsWithClassName<T> = T extends Record<string, PropDef> ? { [K in keyof T]: T[K] extends { className: string } ? K : never }[keyof T] : never;\n\ntype ResponsiveValue = Record<string, string | undefined>;\n\n/**\n * Fills in the `initial` breakpoint of a responsive value from the prop def's\n * default, and coerces an invalid `initial` enum value back to that default.\n *\n * Returns the value untouched when nothing needs changing, and a copy otherwise\n * \u2014 callers routinely hoist responsive objects to module scope, so mutating the\n * caller's object would corrupt it for every later render.\n */\nfunction normalizeResponsiveValue(value: ResponsiveValue, propDef: CompiledPropDef) {\n let initial = value.initial;\n let changed = false;\n\n if (propDef.hasDefault && initial === undefined) {\n initial = propDef.default as string | undefined;\n changed = true;\n }\n\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(initial)) {\n initial = propDef.default as string | undefined;\n changed = true;\n }\n\n return changed ? { ...value, initial } : value;\n}\n\n/**\n * Takes props, checks them against prop defs that have a `className` on them,\n * adds necessary CSS classes and inline styles, and returns the props without\n * the corresponding prop defs that were used to formulate the new `className`\n * and `style` values. Also applies prop def defaults to every prop.\n */\nfunction extractProps<P extends { className?: string; style?: React.CSSProperties; [key: string]: any }, T extends Record<string, PropDef>[]>(\n props: P,\n ...propDefs: T\n): Omit<P & { className?: string; style?: React.CSSProperties }, PropDefsWithClassName<T[number]>> {\n const { styling, passthrough, stylingKeys } = getCompiledPropDefs(propDefs);\n\n // Copy the props that survive to the element rather than spreading and then\n // deleting the styling keys. Deleting off a spread demotes the object to\n // dictionary mode in V8, and this object is on the render path of every\n // component in the library.\n const extractedProps: Record<string, any> = {};\n for (const key in props) {\n if (stylingKeys.has(key)) continue;\n extractedProps[key] = props[key];\n }\n\n for (let i = 0; i < passthrough.length; i++) {\n const propDef = passthrough[i];\n const value = extractedProps[propDef.key];\n\n if (value === undefined) {\n if (propDef.hasDefault) extractedProps[propDef.key] = propDef.default;\n continue;\n }\n\n // Fall back to the default when the value is not a valid enum value\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(value) && !isResponsiveObject(value)) {\n extractedProps[propDef.key] = propDef.default;\n }\n }\n\n let style: ReturnType<typeof mergeStyles>;\n const classes: string[] = [];\n\n for (let i = 0; i < styling.length; i++) {\n const propDef = styling[i];\n let value = props[propDef.key];\n\n // Apply prop def defaults\n if (value === undefined && propDef.hasDefault) {\n value = propDef.default;\n }\n\n // Apply the default value if the value is not a valid enum value\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(value) && !isResponsiveObject(value)) {\n value = propDef.default;\n }\n\n if (!value) continue;\n\n if (isResponsiveObject(value)) {\n // Make sure we are not threading through responsive values for non-responsive prop defs\n if (!propDef.responsive) continue;\n value = normalizeResponsiveValue(value, propDef);\n }\n\n if (propDef.type === 'enum') {\n const propClassName = getResponsiveClassNames({\n allowArbitraryValues: false,\n value,\n className: propDef.className!,\n propValues: propDef.values,\n propValueSet: propDef.valueSet,\n parseValue: propDef.parseValue,\n });\n\n if (propClassName) classes.push(propClassName);\n continue;\n }\n\n if (propDef.type === 'string' || propDef.type === 'enum | string') {\n const [propClassNames, propCustomProperties] = getResponsiveStyles({\n className: propDef.className!,\n customProperties: propDef.customProperties!,\n // `string` prop defs have no enum values, so every value is arbitrary\n propValues: propDef.type === 'string' ? [] : propDef.values,\n propValueSet: propDef.type === 'string' ? undefined : propDef.valueSet,\n parseValue: propDef.parseValue,\n value,\n });\n\n if (propCustomProperties) style = mergeStyles(style, propCustomProperties);\n if (propClassNames) classes.push(propClassNames);\n continue;\n }\n\n if (propDef.type === 'boolean') {\n // TODO handle responsive boolean props\n classes.push(propDef.className!);\n continue;\n }\n }\n\n extractedProps.className = classNames(classes.length > 0 ? classes.join(' ') : undefined, props.className);\n extractedProps.style = mergeStyles(style, props.style);\n return extractedProps as ReturnType<typeof extractProps<P, T>>;\n}\n\nexport { extractProps };\n", "import type { PropDef } from '../props/prop-def.js';\n\n/**\n * A prop def pre-processed into the exact shape `extractProps` needs at render\n * time. Everything that can be derived from the static prop def \u2014 enum\n * membership sets, whether the def is responsive, whether it carries a default\n * \u2014 is computed once here instead of on every render.\n */\ninterface CompiledPropDef {\n key: string;\n type: PropDef['type'];\n default: unknown;\n hasDefault: boolean;\n responsive: boolean;\n className?: string;\n customProperties?: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n /** The prop def's own enum values, kept for the responsive class name helpers. */\n values: readonly string[];\n /** O(1) membership for `values`. */\n valueSet: ReadonlySet<string>;\n /**\n * `values` plus the default, used to coerce invalid enum values back to the\n * default. Only present for `type: 'enum'` \u2014 `'enum | string'` props accept\n * arbitrary strings and must not be coerced.\n */\n enumValueSet?: ReadonlySet<unknown>;\n}\n\ninterface CompiledPropDefs {\n /** Defs that contribute a class name and/or custom properties. */\n styling: CompiledPropDef[];\n /**\n * Defs that pass through to the element but still need a default applied or\n * an invalid enum value coerced. Defs that can do neither are omitted\n * entirely \u2014 they are already correct as passed.\n */\n passthrough: CompiledPropDef[];\n /** Keys consumed by `styling`, so they can be skipped when copying props. */\n stylingKeys: ReadonlySet<string>;\n}\n\nconst EMPTY_VALUES: readonly string[] = [];\nconst EMPTY_SET: ReadonlySet<string> = new Set();\n\nfunction compile(propDefs: readonly Record<string, PropDef>[]): CompiledPropDefs {\n const merged: Record<string, PropDef> = Object.assign({}, ...propDefs);\n const styling: CompiledPropDef[] = [];\n const passthrough: CompiledPropDef[] = [];\n const stylingKeys = new Set<string>();\n\n for (const key in merged) {\n // The PropDef union is narrowed per-field below; reading the optional\n // members off the union directly is what the runtime actually needs.\n const def = merged[key] as PropDef & {\n default?: unknown;\n values?: readonly string[];\n className?: string;\n customProperties?: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n responsive?: true;\n };\n\n const values = def.values ?? EMPTY_VALUES;\n const compiled: CompiledPropDef = {\n key,\n type: def.type,\n default: def.default,\n hasDefault: def.default !== undefined,\n responsive: 'responsive' in def,\n className: def.className,\n customProperties: def.customProperties,\n parseValue: def.parseValue,\n values,\n valueSet: values.length > 0 ? new Set(values) : EMPTY_SET,\n enumValueSet: def.type === 'enum' ? new Set<unknown>([def.default, ...values]) : undefined,\n };\n\n if (def.className) {\n styling.push(compiled);\n stylingKeys.add(key);\n } else if (compiled.hasDefault || def.type === 'enum') {\n // Anything else is copied through untouched, so there is nothing to do.\n passthrough.push(compiled);\n }\n }\n\n return { styling, passthrough, stylingKeys };\n}\n\ninterface CacheNode {\n children: WeakMap<object, CacheNode>;\n compiled?: CompiledPropDefs;\n}\n\nconst cacheRoot: CacheNode = { children: new WeakMap() };\n\n/**\n * Compiles a set of prop defs, memoized on the identity of the prop def objects\n * themselves. Components always pass the same module-level constants, so after\n * the first render of a given component this is a couple of WeakMap lookups\n * instead of merging 50-odd prop defs into a fresh object.\n */\nfunction getCompiledPropDefs(propDefs: readonly Record<string, PropDef>[]): CompiledPropDefs {\n let node = cacheRoot;\n\n for (let i = 0; i < propDefs.length; i++) {\n const propDef = propDefs[i];\n let child = node.children.get(propDef);\n if (child === undefined) {\n child = { children: new WeakMap() };\n node.children.set(propDef, child);\n }\n node = child;\n }\n\n return (node.compiled ??= compile(propDefs));\n}\n\nexport { getCompiledPropDefs };\nexport type { CompiledPropDef, CompiledPropDefs };\n", "import type React from 'react';\n\n// Creates a union type of string literals with strings, but retains intellisense for the literals.\n// Union<string, 'foo' | 'bar'> => string | Omit<string, 'foo' | 'bar'>\ntype Union<S = string, T extends string | number = string> = T | Omit<S, T>;\n\nconst breakpoints = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'] as const;\nconst breakpointSet: Set<string> = new Set(breakpoints);\ntype Breakpoint = (typeof breakpoints)[number];\ntype Responsive<T> = T | Partial<Record<Breakpoint, T>>;\n\ntype BooleanPropDef = {\n type: 'boolean';\n default?: boolean;\n required?: boolean;\n className?: string;\n};\ntype StringPropDef = {\n type: 'string';\n default?: string;\n required?: boolean;\n};\ntype ReactNodePropDef = {\n type: 'ReactNode';\n default?: React.ReactNode;\n required?: boolean;\n};\ntype EnumPropDef<T> = {\n type: 'enum';\n values: readonly T[];\n default?: T;\n required?: boolean;\n};\ntype EnumOrStringPropDef<T> = {\n type: 'enum | string';\n values: readonly T[];\n default?: T | string;\n required?: boolean;\n};\n\ntype NonStylingPropDef = {\n className?: never;\n customProperties?: never;\n parseValue?: never;\n};\n\ntype StylingPropDef = {\n className: string;\n parseValue?: (value: string) => string | undefined;\n};\n\ntype ArbitraryStylingPropDef = {\n className: string;\n customProperties: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n};\n\ntype RegularPropDef<T> =\n | ReactNodePropDef\n | BooleanPropDef\n | (StringPropDef & ArbitraryStylingPropDef)\n | (StringPropDef & NonStylingPropDef)\n | (EnumPropDef<T> & StylingPropDef)\n | (EnumPropDef<T> & NonStylingPropDef)\n | (EnumOrStringPropDef<T> & ArbitraryStylingPropDef)\n | (EnumOrStringPropDef<T> & NonStylingPropDef);\ntype ResponsivePropDef<T = any> = RegularPropDef<T> & { responsive: true };\ntype PropDef<T = any> = RegularPropDef<T> | ResponsivePropDef<T>;\n\n// prettier-ignore\ntype GetPropDefType<Def> =\n Def extends BooleanPropDef ? (Def extends ResponsivePropDef ? Responsive<boolean> : boolean)\n : Def extends StringPropDef ? (Def extends ResponsivePropDef ? Responsive<string> : string)\n : Def extends ReactNodePropDef ? (Def extends ResponsivePropDef ? Responsive<React.ReactNode> : React.ReactNode)\n : Def extends EnumOrStringPropDef<infer Type> ?\n Def extends ResponsivePropDef<infer Type extends string> ? Responsive<Union<string, Type>> : Type\n : Def extends EnumPropDef<infer Type> ? (Def extends ResponsivePropDef<infer Type> ? Responsive<Type> : Type)\n : never;\n\ntype GetPropDefTypes<P> = {\n [K in keyof P]?: GetPropDefType<P[K]>;\n};\n\nexport { breakpoints, breakpointSet };\nexport type {\n PropDef,\n GetPropDefTypes,\n ResponsivePropDef,\n //\n Breakpoint,\n Responsive,\n Union,\n};\n", "/** A util to check whether the object has a key, while inferring the correct key type */\nfunction hasOwnProperty<K extends string | number | symbol>(\n obj: Record<K, unknown>,\n key: string | number | symbol\n): key is K {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport { hasOwnProperty };\n", "import type { Responsive, Breakpoint } from '../props/prop-def.js';\n\n// Use a Set for O(1) lookup instead of array.includes() which is O(n)\nconst breakpointSet = new Set<string>(['initial', 'xs', 'sm', 'md', 'lg', 'xl']);\n\nexport function isResponsiveObject<Value extends string>(\n obj: Responsive<Value | Omit<string, Value>> | undefined\n): obj is Record<Breakpoint, string> {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n // Use for...in to avoid Object.keys() array allocation\n for (const key in obj) {\n if (breakpointSet.has(key)) {\n return true;\n }\n }\n return false;\n}\n", "import { breakpointSet } from '../props/prop-def.js';\nimport { hasOwnProperty } from './has-own-property.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\n\nimport type { Responsive, Union } from '../props/prop-def.js';\n\n/**\n * Membership test against a prop def's enum values. Callers that already hold a\n * compiled prop def pass `propValueSet` for an O(1) lookup; the handful of call\n * sites that build options inline fall back to scanning the array.\n */\nfunction includesValue(propValues: string[] | readonly string[], propValueSet: ReadonlySet<string> | undefined, value: string): boolean {\n return propValueSet !== undefined ? propValueSet.has(value) : propValues.includes(value);\n}\n\ninterface GetResponsiveStylesOptions {\n className: string;\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveStyles({ className, customProperties, ...args }: GetResponsiveStylesOptions) {\n const responsiveClassNames = getResponsiveClassNames({\n allowArbitraryValues: true,\n className,\n ...args,\n });\n\n const responsiveCustomProperties = getResponsiveCustomProperties({ customProperties, ...args });\n return [responsiveClassNames, responsiveCustomProperties] as const;\n}\n\ninterface GetResponsiveClassNamesOptions {\n allowArbitraryValues?: boolean;\n className: string;\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveClassNames({ allowArbitraryValues, value, className, propValues, propValueSet, parseValue = (value) => value }: GetResponsiveClassNamesOptions): string | undefined {\n if (!value) {\n return undefined;\n }\n\n if (typeof value === 'string') {\n if (includesValue(propValues, propValueSet, value)) {\n return getBaseClassName(className, value, parseValue);\n }\n return allowArbitraryValues ? className : undefined;\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n const classNames: string[] = [];\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n if (value !== undefined) {\n if (includesValue(propValues, propValueSet, value)) {\n const baseClassName = getBaseClassName(className, value, parseValue);\n const bpClassName = bp === 'initial' ? baseClassName : `${bp}:${baseClassName}`;\n classNames.push(bpClassName);\n } else if (allowArbitraryValues) {\n const bpClassName = bp === 'initial' ? className : `${bp}:${className}`;\n classNames.push(bpClassName);\n }\n }\n }\n\n return classNames.length > 0 ? classNames.join(' ') : '';\n }\n\n if (allowArbitraryValues) {\n return className;\n }\n}\n\nfunction getBaseClassName(className: string, value: string, parseValue: (value: string) => string | undefined): string {\n const delimiter = className ? '-' : '';\n const matchedValue = parseValue(value);\n const isNegative = matchedValue?.startsWith('-');\n const minus = isNegative ? '-' : '';\n const absoluteValue = isNegative ? matchedValue?.substring(1) : matchedValue;\n return `${minus}${className}${delimiter}${absoluteValue}`;\n}\n\ninterface GetResponsiveCustomPropertiesOptions {\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveCustomProperties({ customProperties, value, propValues, propValueSet, parseValue = (value) => value }: GetResponsiveCustomPropertiesOptions) {\n // Don't generate custom properties if the value is not arbitrary\n if (!value || (typeof value === 'string' && includesValue(propValues, propValueSet, value))) {\n return undefined;\n }\n\n let styles: Record<string, string | undefined> | undefined;\n\n if (typeof value === 'string') {\n const parsed = parseValue(value);\n styles = {};\n for (const customProperty of customProperties) {\n styles[customProperty] = parsed;\n }\n return styles;\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n // Don't generate a custom property if the value is not arbitrary\n if (value === undefined || includesValue(propValues, propValueSet, value)) {\n continue;\n }\n\n const parsed = parseValue(value);\n styles ??= {};\n for (const customProperty of customProperties) {\n const bpProperty = bp === 'initial' ? customProperty : `${customProperty}-${bp}`;\n styles[bpProperty] = parsed;\n }\n }\n }\n\n return styles ?? {};\n}\n\nexport { getResponsiveStyles, getResponsiveCustomProperties, getResponsiveClassNames };\n", "type InlineStyle =\n | React.CSSProperties\n | Record<string, string | number | null | undefined>\n | undefined;\n\n// Merges CSS styles like `classNames` merges CSS classes\n// Optimized to avoid object spread in loop - uses Object.assign for in-place mutation\nexport function mergeStyles(...styles: Array<InlineStyle>): InlineStyle {\n let result: Record<string, string | number | null | undefined> | undefined;\n\n for (const style of styles) {\n if (style) {\n if (result === undefined) {\n // First non-empty style - create result object\n result = {};\n }\n Object.assign(result, style);\n }\n }\n\n return result;\n}\n", "'use client';\n\nimport * as React from 'react';\n\ntype ThemeSize = '1' | '2' | '3' | '4';\n\n/** The rest of the 1-4 index when no Theme states a size. */\nconst THEME_SIZE_DEFAULT: ThemeSize = '2';\n\n/**\n * The app-wide size index, provided by `Theme` beside `ThemeContext`.\n *\n * It is its own context, holding one string, so a component that only needs\n * the size does not re-render when the accent colour or appearance changes.\n */\nconst ThemeSizeContext = React.createContext<ThemeSize>(THEME_SIZE_DEFAULT);\nThemeSizeContext.displayName = 'ThemeSizeContext';\n\ninterface SizePropDef {\n values: readonly string[];\n default?: string;\n}\n\n/**\n * Maps the theme size onto a component's own range: the value itself when the\n * component has it, otherwise the nearest end of the range (`4` on a 1-3 scale\n * is `3`, on a 1-2 scale it is `2`).\n */\nfunction clampSize(size: ThemeSize, values: readonly string[]): string {\n if (values.includes(size)) return size;\n const n = Number(size);\n let nearest = values[0];\n let distance = Infinity;\n for (let i = 0; i < values.length; i++) {\n const d = Math.abs(Number(values[i]) - n);\n if (d < distance) {\n distance = d;\n nearest = values[i];\n }\n }\n return nearest;\n}\n\n/**\n * The size a component on the 1-4 index takes: what the caller said, else the\n * nearest Theme's size, mapped into the component's range.\n */\nfunction useThemeSize<V>(explicit: V | undefined, propDef: SizePropDef): V {\n const themeSize = React.useContext(ThemeSizeContext);\n if (explicit !== undefined) return explicit;\n // The clamped value is one of `propDef.values`, which is what `V` ranges over.\n return clampSize(themeSize, propDef.values) as V;\n}\n\n/**\n * Fills `size` from the nearest Theme when the caller left it unset, so the\n * result can go straight into `extractProps`. An explicit size, responsive\n * object included, wins.\n *\n * Returns the same props object when there is nothing to fill: when a size is\n * set, or when the theme size resolves to the prop def's own default (the\n * common case, a Theme with no size), so `extractProps` applies it as before.\n */\nfunction useThemeSizeProps<P extends { size?: unknown }>(props: P, propDef: SizePropDef): P {\n const themeSize = React.useContext(ThemeSizeContext);\n if (props.size !== undefined) return props;\n const size = clampSize(themeSize, propDef.values);\n if (size === propDef.default) return props;\n return { ...props, size };\n}\n\nexport { ThemeSizeContext, THEME_SIZE_DEFAULT, clampSize, useThemeSize, useThemeSizeProps };\nexport type { ThemeSize };\n", "import React from 'react';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype IconElement = React.ElementRef<'svg'>;\ninterface IconProps extends ComponentPropsWithout<'svg', RemovedProps | 'children'> {}\n\nconst ThickDividerHorizontalIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z\"\n />\n </svg>\n );\n});\n\nThickDividerHorizontalIcon.displayName = 'ThickDividerHorizontalIcon';\n\nconst ThickCheckIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z\"\n />\n </svg>\n );\n});\nThickCheckIcon.displayName = 'ThickCheckIcon';\n\nconst ChevronDownIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path d=\"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z\" />\n </svg>\n );\n});\nChevronDownIcon.displayName = 'ChevronDownIcon';\n\nconst ThickChevronRightIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronRightIcon.displayName = 'ThickChevronRightIcon';\n\nconst ThickChevronLeftIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.76174 0.201711C5.45892 -0.0809141 4.98433 -0.0645489 4.70171 0.238264L1.20171 3.98826C0.932757 4.27642 0.932757 4.72359 1.20171 5.01174L4.70171 8.76174C4.98433 9.06455 5.45892 9.08092 5.76174 8.79829C6.06455 8.51567 6.08091 8.04108 5.79829 7.73826L2.77591 4.5L5.79829 1.26174C6.08091 0.958928 6.06455 0.484337 5.76174 0.201711Z\"\n />\n </svg>\n );\n});\nThickChevronLeftIcon.displayName = 'ThickChevronLeftIcon';\n\nconst ThickDotIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <circle cx=\"4.5\" cy=\"4.5\" r=\"2\" />\n </svg>\n );\n});\nThickDotIcon.displayName = 'ThickDotIcon';\n\nexport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDividerHorizontalIcon, ThickDotIcon };\nexport type { IconProps };\n\n// Additional minimal icons\nconst CloseIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <svg\n {..._props}\n ref={_forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n});\nCloseIcon.displayName = 'CloseIcon';\n\nconst PaperclipIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg\n {...props}\n ref={forwardedRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\" />\n </svg>\n );\n});\nPaperclipIcon.displayName = 'PaperclipIcon';\n\nconst FileIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <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\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n </svg>\n );\n});\nFileIcon.displayName = 'FileIcon';\n\nconst FileTextIcon = React.forwardRef<IconElement, IconProps>((_props, _forwardedRef) => {\n return (\n <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\">\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" />\n <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" />\n <path d=\"M10 9H8\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </svg>\n );\n});\nFileTextIcon.displayName = 'FileTextIcon';\n\n/** The tick a button shows in place of its icon while `done`. Drawn on the 24 grid at the icon set's stroke. */\nconst TickIcon = React.forwardRef<IconElement, IconProps>((props, forwardedRef) => {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props} ref={forwardedRef}>\n <path d=\"M5 12.75L9.5 17.25L19 7.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n});\nTickIcon.displayName = 'TickIcon';\n\nexport { CloseIcon, PaperclipIcon, FileIcon, FileTextIcon, TickIcon };\n", "import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { Flex } from './flex.js';\nimport { spinnerPropDefs } from './spinner.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype SpinnerElement = React.ElementRef<'span'>;\ntype SpinnerOwnProps = GetPropDefTypes<typeof spinnerPropDefs>;\ninterface SpinnerProps\n extends ComponentPropsWithout<'span', RemovedProps>,\n SpinnerOwnProps {}\nconst Spinner = React.forwardRef<SpinnerElement, SpinnerProps>((props, forwardedRef) => {\n const { className, children, loading, ...spinnerProps } = extractProps(\n props,\n spinnerPropDefs\n );\n\n if (!loading) return children;\n\n // Decorative unless named: a named spinner is a status message, an unnamed one is hidden.\n const named =\n spinnerProps['aria-label'] !== undefined || spinnerProps['aria-labelledby'] !== undefined;\n\n const spinner = (\n <span\n role={named ? 'status' : undefined}\n aria-hidden={named ? undefined : true}\n {...spinnerProps}\n ref={forwardedRef} className={classNames('kui-Spinner', className)}>\n <span className=\"kui-SpinnerWheel\">\n <span className=\"kui-SpinnerLeaf\" />\n <span className=\"kui-SpinnerLeaf\" />\n <span className=\"kui-SpinnerLeaf\" />\n <span className=\"kui-SpinnerLeaf\" />\n <span className=\"kui-SpinnerLeaf\" />\n <span className=\"kui-SpinnerLeaf\" />\n <span className=\"kui-SpinnerLeaf\" />\n <span className=\"kui-SpinnerLeaf\" />\n </span>\n {/* A live region reads its text, not its aria-label, so the name is also its content. */}\n {typeof spinnerProps['aria-label'] === 'string' ? (\n <span className=\"kui-sr-only\">{spinnerProps['aria-label']}</span>\n ) : null}\n </span>\n );\n\n if (children === undefined) return spinner;\n\n return (\n <Flex asChild position=\"relative\" align=\"center\" justify=\"center\">\n <span aria-busy=\"true\">\n {/**\n * `display: contents` removes the content from the accessibility tree in some browsers,\n * so we force remove it with `aria-hidden`\n */}\n <span aria-hidden className=\"kui-SpinnerHiddenChildren\">\n {children}\n </span>\n\n <Flex asChild align=\"center\" justify=\"center\" position=\"absolute\" inset=\"0\">\n <span>{spinner}</span>\n </Flex>\n </span>\n </Flex>\n );\n});\nSpinner.displayName = 'Spinner';\n\nexport { Spinner };\nexport type { SpinnerProps };\n", "import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { layoutPropDefs } from '../props/layout.props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { Slot } from './slot.js';\nimport { flexPropDefs } from './flex.props.js';\n\nimport type { FlexOwnProps } from './flex.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { LayoutProps } from '../props/layout.props.js';\nimport type { MarginProps } from '../props/margin.props.js';\n\ntype FlexElement = React.ElementRef<'div'>;\ninterface CommonFlexProps extends MarginProps, LayoutProps, FlexOwnProps {}\ntype FlexDivProps = { as?: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\ntype FlexSpanProps = { as: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\ntype FlexProps = CommonFlexProps & (FlexSpanProps | FlexDivProps);\n\nconst Flex = React.forwardRef<FlexElement, FlexProps>((props, forwardedRef) => {\n const {\n className,\n asChild,\n as: Tag = 'div',\n ...flexProps\n } = extractProps(props, flexPropDefs, layoutPropDefs, marginPropDefs);\n const Comp = asChild ? Slot : Tag;\n return <Comp {...flexProps} ref={forwardedRef} className={classNames('kui-Flex', className)} />;\n});\nFlex.displayName = 'Flex';\n\nexport { Flex };\nexport type { FlexProps };\n", "import type { GetPropDefTypes, PropDef } from './prop-def.js';\n\nconst paddingValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst paddingPropDefs = {\n /**\n * Sets the CSS **padding** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * p=\"4\"\n * p=\"100px\"\n * p={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding\n */\n p: {\n type: 'enum | string',\n className: 'kui-r-p',\n customProperties: ['--p'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-left** and **padding-right** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * px=\"4\"\n * px=\"100px\"\n * px={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right\n */\n px: {\n type: 'enum | string',\n className: 'kui-r-px',\n customProperties: ['--pl', '--pr'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-top** and **padding-bottom** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * py=\"4\"\n * py=\"100px\"\n * py={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom\n */\n py: {\n type: 'enum | string',\n className: 'kui-r-py',\n customProperties: ['--pt', '--pb'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-top** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pt=\"4\"\n * pt=\"100px\"\n * pt={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top\n */\n pt: {\n type: 'enum | string',\n className: 'kui-r-pt',\n customProperties: ['--pt'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-right** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pr=\"4\"\n * pr=\"100px\"\n * pr={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right\n */\n pr: {\n type: 'enum | string',\n className: 'kui-r-pr',\n customProperties: ['--pr'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-bottom** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pb=\"4\"\n * pb=\"100px\"\n * pb={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom\n */\n pb: {\n type: 'enum | string',\n className: 'kui-r-pb',\n customProperties: ['--pb'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-left** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pl=\"4\"\n * pl=\"100px\"\n * pl={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left\n */\n pl: {\n type: 'enum | string',\n className: 'kui-r-pl',\n customProperties: ['--pl'],\n values: paddingValues,\n responsive: true,\n },\n} satisfies {\n p: PropDef<(typeof paddingValues)[number]>;\n px: PropDef<(typeof paddingValues)[number]>;\n py: PropDef<(typeof paddingValues)[number]>;\n pt: PropDef<(typeof paddingValues)[number]>;\n pr: PropDef<(typeof paddingValues)[number]>;\n pb: PropDef<(typeof paddingValues)[number]>;\n pl: PropDef<(typeof paddingValues)[number]>;\n};\n\ntype PaddingProps = GetPropDefTypes<typeof paddingPropDefs>;\n\nexport { paddingPropDefs };\nexport type { PaddingProps };\n", "import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\nconst heightPropDefs = {\n /**\n * Sets the CSS **height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * height=\"100px\"\n * height={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/height\n */\n height: {\n type: 'string',\n className: 'kui-r-h',\n customProperties: ['--height'],\n responsive: true,\n },\n /**\n * Sets the CSS **min-height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * minHeight=\"100px\"\n * minHeight={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/min-height\n */\n minHeight: {\n type: 'string',\n className: 'kui-r-min-h',\n customProperties: ['--min-height'],\n responsive: true,\n },\n /**\n * Sets the CSS **max-height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * maxHeight=\"100px\"\n * maxHeight={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/max-height\n */\n maxHeight: {\n type: 'string',\n className: 'kui-r-max-h',\n customProperties: ['--max-height'],\n responsive: true,\n },\n} satisfies {\n height: PropDef<string>;\n minHeight: PropDef<string>;\n maxHeight: PropDef<string>;\n};\n\ntype HeightProps = GetPropDefTypes<typeof heightPropDefs>;\n\nexport { heightPropDefs };\nexport type { HeightProps };\n", "import type { GetPropDefTypes, PropDef } from './prop-def.js';\n\nconst widthPropDefs = {\n /**\n * Sets the CSS **width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * width=\"100px\"\n * width={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/width\n */\n width: {\n type: 'string',\n className: 'kui-r-w',\n customProperties: ['--width'],\n responsive: true,\n },\n /**\n * Sets the CSS **min-width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * minWidth=\"100px\"\n * minWidth={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/min-width\n */\n minWidth: {\n type: 'string',\n className: 'kui-r-min-w',\n customProperties: ['--min-width'],\n responsive: true,\n },\n /**\n * Sets the CSS **max-width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * maxWidth=\"100px\"\n * maxWidth={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/max-width\n */\n maxWidth: {\n type: 'string',\n className: 'kui-r-max-w',\n customProperties: ['--max-width'],\n responsive: true,\n },\n} satisfies {\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n};\n\ntype WidthProps = GetPropDefTypes<typeof widthPropDefs>;\n\nexport { widthPropDefs };\nexport type { WidthProps };\n", "import { paddingPropDefs } from './padding.props.js';\nimport { heightPropDefs } from './height.props.js';\nimport { widthPropDefs } from './width.props.js';\n\nimport type { PropDef, GetPropDefTypes } from './prop-def.js';\n\nconst overflowValues = ['visible', 'hidden', 'clip', 'scroll', 'auto'] as const;\nconst positionValues = ['static', 'relative', 'absolute', 'fixed', 'sticky'] as const;\n// prettier-ignore\nconst positionEdgeValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '-1', '-2', '-3', '-4', '-5', '-6', '-7', '-8', '-9'] as const;\nconst flexShrinkValues = ['0', '1'] as const;\nconst flexGrowValues = ['0', '1'] as const;\nconst alignSelfValues = ['start', 'center', 'end', 'baseline', 'stretch'] as const;\nconst justifySelfValues = ['start', 'center', 'end', 'baseline', 'stretch'] as const;\n\nconst layoutPropDefs = {\n ...paddingPropDefs,\n ...widthPropDefs,\n ...heightPropDefs,\n /**\n * Sets the CSS **position** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * position=\"absolute\"\n * position={{ sm: 'absolute', lg: 'sticky' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/position\n */\n position: {\n type: 'enum',\n className: 'kui-r-position',\n values: positionValues,\n responsive: true,\n },\n /**\n * Sets the CSS **inset** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * inset=\"4\"\n * inset=\"100px\"\n * inset={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/inset\n */\n inset: {\n type: 'enum | string',\n className: 'kui-r-inset',\n customProperties: ['--inset'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **top** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * top=\"4\"\n * top=\"100px\"\n * top={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/top\n */\n top: {\n type: 'enum | string',\n className: 'kui-r-top',\n customProperties: ['--top'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **right** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * right=\"4\"\n * right=\"100px\"\n * right={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/right\n */\n right: {\n type: 'enum | string',\n className: 'kui-r-right',\n customProperties: ['--right'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **bottom** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * bottom=\"4\"\n * bottom=\"100px\"\n * bottom={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/bottom\n */\n bottom: {\n type: 'enum | string',\n className: 'kui-r-bottom',\n customProperties: ['--bottom'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **left** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * left=\"4\"\n * left=\"100px\"\n * left={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/left\n */\n left: {\n type: 'enum | string',\n className: 'kui-r-left',\n customProperties: ['--left'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **overflow** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * overflow=\"hidden\"\n * overflow={{ sm: 'hidden', lg: 'visible' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n */\n overflow: {\n type: 'enum',\n className: 'kui-r-overflow',\n values: overflowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **overflow-x** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * overflowX=\"hidden\"\n * overflowX={{ sm: 'hidden', md: 'visible' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n */\n overflowX: {\n type: 'enum',\n className: 'kui-r-ox',\n values: overflowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **overflow-y** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * overflowY=\"hidden\"\n * overflowY={{ sm: 'hidden', md: 'visible' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n */\n overflowY: {\n type: 'enum',\n className: 'kui-r-oy',\n values: overflowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-basis** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * flexBasis=\"0\"\n * flexBasis=\"100%\"\n * flexBasis={{ sm: '200px', lg: 'auto' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis\n */\n flexBasis: {\n type: 'string',\n className: 'kui-r-fb',\n customProperties: ['--flex-basis'],\n responsive: true,\n },\n /**\n * Sets the CSS **flex-shrink** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * flexShrink=\"0\"\n * flexShrink=\"1\"\n * flexShrink={{ sm: '0', lg: '1' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink\n */\n flexShrink: {\n type: 'enum | string',\n className: 'kui-r-fs',\n customProperties: ['--flex-shrink'],\n values: flexShrinkValues,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-grow** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * flexGrow=\"0\"\n * flexGrow=\"1\"\n * flexGrow={{ sm: '0', lg: '1' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow\n */\n flexGrow: {\n type: 'enum | string',\n className: 'kui-r-fg',\n customProperties: ['--flex-grow'],\n values: flexGrowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **grid-area** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridArea=\"header\"\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area\n */\n gridArea: {\n type: 'string',\n className: 'kui-r-ga',\n customProperties: ['--grid-area'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-column** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridColumn=\"1\"\n * gridColumn=\"1 / -1\"\n * gridColumn={{ sm: '1 / 3', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column\n */\n gridColumn: {\n type: 'string',\n className: 'kui-r-gc',\n customProperties: ['--grid-column'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-column-start** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridColumnStart=\"1\"\n * gridColumnStart=\"auto\"\n * gridColumnStart={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start\n */\n gridColumnStart: {\n type: 'string',\n className: 'kui-r-gcs',\n customProperties: ['--grid-column-start'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-column-end** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridColumnEnd=\"1\"\n * gridColumnEnd=\"auto\"\n * gridColumnEnd={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end\n */\n gridColumnEnd: {\n type: 'string',\n className: 'kui-r-gce',\n customProperties: ['--grid-column-end'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-row** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridRow=\"1\"\n * gridRow=\"auto\"\n * gridRow={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row\n */\n gridRow: {\n type: 'string',\n className: 'kui-r-gr',\n customProperties: ['--grid-row'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-row-start** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridRowStart=\"1\"\n * gridRowStart=\"auto\"\n * gridRowStart={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start\n */\n gridRowStart: {\n type: 'string',\n className: 'kui-r-grs',\n customProperties: ['--grid-row-start'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-row-end** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridRowEnd=\"1\"\n * gridRowEnd=\"auto\"\n * gridRowEnd={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end\n */\n gridRowEnd: {\n type: 'string',\n className: 'kui-r-gre',\n customProperties: ['--grid-row-end'],\n responsive: true,\n },\n /**\n * Sets the CSS **align-self** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * alignSelf=\"center\"\n * alignSelf={{ sm: 'start', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/align-self\n */\n alignSelf: {\n type: 'enum',\n className: 'kui-r-as',\n values: alignSelfValues,\n responsive: true,\n },\n /**\n * Sets the CSS **justify-self** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * justifySelf=\"center\"\n * justifySelf={{ sm: 'start', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self\n */\n justifySelf: {\n type: 'enum',\n className: 'kui-r-js',\n values: justifySelfValues,\n responsive: true,\n },\n} satisfies {\n position: PropDef<(typeof positionValues)[number]>;\n inset: PropDef<(typeof positionEdgeValues)[number]>;\n top: PropDef<(typeof positionEdgeValues)[number]>;\n right: PropDef<(typeof positionEdgeValues)[number]>;\n bottom: PropDef<(typeof positionEdgeValues)[number]>;\n left: PropDef<(typeof positionEdgeValues)[number]>;\n overflow: PropDef<(typeof overflowValues)[number]>;\n overflowX: PropDef<(typeof overflowValues)[number]>;\n overflowY: PropDef<(typeof overflowValues)[number]>;\n flexBasis: PropDef<string>;\n flexShrink: PropDef<(typeof flexShrinkValues)[number]>;\n flexGrow: PropDef<(typeof flexGrowValues)[number]>;\n gridColumn: PropDef<string>;\n gridColumnStart: PropDef<string>;\n gridColumnEnd: PropDef<string>;\n gridRow: PropDef<string>;\n gridRowStart: PropDef<string>;\n gridRowEnd: PropDef<string>;\n gridArea: PropDef<string>;\n alignSelf: PropDef<(typeof alignSelfValues)[number]>;\n justifySelf: PropDef<(typeof justifySelfValues)[number]>;\n};\n\n// Use all of the imported prop defs to ensure that JSDoc works\ntype LayoutProps = GetPropDefTypes<\n typeof paddingPropDefs & typeof widthPropDefs & typeof heightPropDefs & typeof layoutPropDefs\n>;\n\nexport { layoutPropDefs };\nexport type { LayoutProps };\n", "import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\n// prettier-ignore\nconst marginValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '-1', '-2', '-3', '-4', '-5', '-6', '-7', '-8', '-9', '-10', '-11', '-12', 'bleed'] as const;\n\nconst marginPropDefs = {\n /**\n * Sets the CSS **margin** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * m=\"4\"\n * m=\"100px\"\n * m={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin\n */\n m: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'kui-r-m',\n customProperties: ['--m'],\n },\n /**\n * Sets the CSS **margin-left** and **margin-right** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mx=\"4\"\n * mx=\"100px\"\n * mx={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\n */\n mx: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'kui-r-mx',\n customProperties: ['--ml', '--mr'],\n },\n /**\n * Sets the CSS **margin-top** and **margin-bottom** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * my=\"4\"\n * my=\"100px\"\n * my={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\n */\n my: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'kui-r-my',\n customProperties: ['--mt', '--mb'],\n },\n /**\n * Sets the CSS **margin-top** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mt=\"4\"\n * mt=\"100px\"\n * mt={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\n */\n mt: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'kui-r-mt',\n customProperties: ['--mt'],\n },\n /**\n * Sets the CSS **margin-right** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mr=\"4\"\n * mr=\"100px\"\n * mr={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\n */\n mr: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'kui-r-mr',\n customProperties: ['--mr'],\n },\n /**\n * Sets the CSS **margin-bottom** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mb=\"4\"\n * mb=\"100px\"\n * mb={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\n */\n mb: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'kui-r-mb',\n customProperties: ['--mb'],\n },\n /**\n * Sets the CSS **margin-left** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * ml=\"4\"\n * ml=\"100px\"\n * ml={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\n */\n ml: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'kui-r-ml',\n customProperties: ['--ml'],\n },\n} satisfies {\n m: PropDef<(typeof marginValues)[number]>;\n mx: PropDef<(typeof marginValues)[number]>;\n my: PropDef<(typeof marginValues)[number]>;\n mt: PropDef<(typeof marginValues)[number]>;\n mr: PropDef<(typeof marginValues)[number]>;\n mb: PropDef<(typeof marginValues)[number]>;\n ml: PropDef<(typeof marginValues)[number]>;\n};\n\ntype MarginProps = GetPropDefTypes<typeof marginPropDefs>;\n\nexport { marginPropDefs };\nexport type { MarginProps };\n", "import { Slot as SlotPrimitive } from 'radix-ui';\nexport const Root = SlotPrimitive.Root;\nexport const Slot = SlotPrimitive.Root;\nexport const Slottable: typeof SlotPrimitive.Slottable = SlotPrimitive.Slottable;\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst gapValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst gapPropDefs = {\n /**\n * Sets the CSS **gap** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * gap=\"4\"\n * gap=\"20px\"\n * gap={{ sm: '2', lg: '3em' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/gap\n */\n gap: {\n type: 'enum | string',\n className: 'kui-r-gap',\n customProperties: ['--gap'],\n values: gapValues,\n responsive: true,\n },\n /**\n * Sets the CSS **column-gap** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * gapX=\"4\"\n * gapX=\"20px\"\n * gapX={{ sm: '2', lg: '3em' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap\n */\n gapX: {\n type: 'enum | string',\n className: 'kui-r-cg',\n customProperties: ['--column-gap'],\n values: gapValues,\n responsive: true,\n },\n /**\n * Sets the CSS **row-gap** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * gapY=\"4\"\n * gapY=\"20px\"\n * gapY={{ sm: '2', lg: '3em' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap\n */\n gapY: {\n type: 'enum | string',\n className: 'kui-r-rg',\n customProperties: ['--row-gap'],\n values: gapValues,\n responsive: true,\n },\n} satisfies {\n gap: PropDef<(typeof gapValues)[number]>;\n gapX: PropDef<(typeof gapValues)[number]>;\n gapY: PropDef<(typeof gapValues)[number]>;\n};\n\nexport { gapPropDefs };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { gapPropDefs } from '../props/gap.props.js';\n\nimport type { PropDef, GetPropDefTypes } from '../props/prop-def.js';\n\nconst as = ['div', 'span'] as const;\nconst displayValues = ['none', 'inline-flex', 'flex'] as const;\nconst directionValues = ['row', 'column', 'row-reverse', 'column-reverse'] as const;\nconst alignValues = ['start', 'center', 'end', 'baseline', 'stretch'] as const;\nconst justifyValues = ['start', 'center', 'end', 'between'] as const;\nconst wrapValues = ['nowrap', 'wrap', 'wrap-reverse'] as const;\n\nconst flexPropDefs = {\n /**\n * Controls whether to render **div** or **span**\n *\n * @example\n * as=\"div\"\n * as=\"span\"\n */\n as: { type: 'enum', values: as, default: 'div' },\n ...asChildPropDef,\n /**\n * Sets the CSS **display** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * display=\"inline-flex\"\n * display={{ sm: 'none', lg: 'flex' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/display\n */\n display: {\n type: 'enum',\n className: 'kui-r-display',\n values: displayValues,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-direction** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * direction=\"column\"\n * direction={{ sm: 'column', lg: 'row' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction\n */\n direction: {\n type: 'enum',\n className: 'kui-r-fd',\n values: directionValues,\n responsive: true,\n },\n /**\n * Sets the CSS **align-items** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * align=\"center\"\n * align={{ sm: 'baseline', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/align-items\n */\n align: {\n type: 'enum',\n className: 'kui-r-ai',\n values: alignValues,\n responsive: true,\n },\n /**\n * Sets the CSS **justify-content** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * justify=\"between\"\n * justify={{ sm: 'start', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content\n */\n justify: {\n type: 'enum',\n className: 'kui-r-jc',\n values: justifyValues,\n parseValue: parseJustifyValue,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-wrap** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * wrap=\"wrap\"\n * wrap={{ sm: 'wrap', lg: 'nowrap' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap\n */\n wrap: {\n type: 'enum',\n className: 'kui-r-fw',\n values: wrapValues,\n responsive: true,\n },\n ...gapPropDefs,\n} satisfies {\n as: PropDef<(typeof as)[number]>;\n display: PropDef<(typeof displayValues)[number]>;\n direction: PropDef<(typeof directionValues)[number]>;\n align: PropDef<(typeof alignValues)[number]>;\n justify: PropDef<(typeof justifyValues)[number]>;\n wrap: PropDef<(typeof wrapValues)[number]>;\n};\n\nfunction parseJustifyValue(value: string) {\n return value === 'between' ? 'space-between' : value;\n}\n\n// Use all of the imported prop defs to ensure that JSDoc works\ntype FlexOwnProps = GetPropDefTypes<\n typeof flexPropDefs & typeof gapPropDefs & typeof asChildPropDef\n>;\n\nexport { flexPropDefs };\nexport type { FlexOwnProps };\n", "import type { PropDef } from '../props/prop-def.js';\n\nconst spinnerPropDefs = {\n loading: { type: 'boolean', default: true },\n} satisfies {\n loading: PropDef<boolean>;\n};\n\nexport { spinnerPropDefs };\n", "import type { PropDef } from './prop-def.js';\n\n// prettier-ignore\nconst accentColors = ['gray', 'gold', 'bronze', 'brown', 'yellow', 'amber', 'orange', 'tomato', 'red', 'ruby', 'crimson', 'pink', 'plum', 'purple', 'violet', 'iris', 'indigo', 'blue', 'cyan', 'teal', 'jade', 'green', 'grass', 'lime', 'mint', 'sky'] as const;\n\nconst grayColors = ['auto', 'gray', 'mauve', 'slate', 'sage', 'olive', 'sand'] as const;\n\nconst colorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: undefined as (typeof accentColors)[number] | undefined,\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// 1. When used on components that compose Text, sets the color of the text to the current accent.\n// 2. Re-declares the accent role tokens (`--accent-ink`, `--accent-solid`, ...) that descendants read.\nconst accentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: '' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// For components whose colour comes from their content (Chip, Avatar, Code): they rest gray, and `color` picks a category when it means something.\nconst grayAccentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: 'gray' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\nexport {\n accentColorPropDef,\n grayAccentColorPropDef,\n colorPropDef,\n //\n accentColors,\n grayColors,\n};\n", "import type { PropDef } from './prop-def.js';\n\nconst radii = ['none', 'small', 'medium', 'large', 'full'] as const;\n\nconst radiusPropDef = {\n radius: {\n type: 'enum',\n values: radii,\n default: undefined,\n },\n} satisfies {\n radius: PropDef<(typeof radii)[number]>;\n};\n\nexport { radiusPropDef, radii };\n", "import type React from 'react';\n\nimport { colorPropDef } from '../props/color.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\n\nconst selectRootPropDefs = {\n size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n};\n\nconst triggerVariants = ['raised', 'surface', 'soft', 'outline', 'ghost'] as const;\n\nconst selectTriggerPropDefs = {\n variant: { type: 'enum', className: 'kui-variant', values: triggerVariants, default: 'raised' },\n error: { type: 'boolean' },\n loading: { type: 'boolean' },\n disabled: { type: 'boolean' },\n readOnly: { type: 'boolean' },\n ...colorPropDef,\n ...radiusPropDef,\n placeholder: { type: 'ReactNode' },\n} satisfies {\n variant: PropDef<(typeof triggerVariants)[number]>;\n error: PropDef<boolean>;\n loading: PropDef<boolean>;\n disabled: PropDef<boolean>;\n readOnly: PropDef<boolean>;\n placeholder: PropDef<React.ReactNode>;\n};\n\n\nconst selectContentPropDefs = {\n ...colorPropDef,\n} satisfies {\n};\n\nexport { selectRootPropDefs, selectTriggerPropDefs, selectContentPropDefs };\n", "'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot } from 'radix-ui';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { ThemeSizeContext } from '../helpers/theme-size.js';\nimport { usePropSyncedState } from '../hooks/use-prop-synced-state.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\ntype ThemeSize = (typeof themePropDefs.size.values)[number];\n// Headings follow the body font until something sets this, so `undefined` is a\n// meaningful value here rather than a missing one.\ntype ThemeHeadingFontFamily = ThemeFontFamily | undefined;\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n onHeadingFontFamilyChange: (headingFontFamily: ThemeHeadingFontFamily) => void;\n onSizeChange: (size: ThemeSize) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n radius: ThemeRadius;\n fontFamily: ThemeFontFamily;\n headingFontFamily: ThemeHeadingFontFamily;\n size: ThemeSize;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n radius: themePropDefs.radius.default,\n fontFamily: themePropDefs.fontFamily.default,\n headingFontFamily: undefined,\n size: themePropDefs.size.default,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onRadiusChange: noop,\n onFontFamilyChange: noop,\n onHeadingFontFamilyChange: noop,\n onSizeChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n // Direction is inherited: a Radix DirectionProvider above the Theme (for a right-to-left app)\n // wins, and left-to-right stays the default when there is none.\n const dir = Direction.useDirection();\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <Direction.Provider dir={dir}>\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>((props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n radius: radiusProp = themePropDefs.radius.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n headingFontFamily: headingFontFamilyProp,\n size: sizeProp = themePropDefs.size.default,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n // Each of these follows its prop but stays independently settable, so\n // the context setters can change the theme at runtime. Syncing during render\n // rather than in an effect matters here: an effect would commit the old\n // theme first and re-render every consumer of the context a second time.\n const [appearance, setAppearance] = usePropSyncedState(appearanceProp);\n const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);\n const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);\n const [radius, setRadius] = usePropSyncedState(radiusProp);\n const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);\n const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);\n const [size, setSize] = usePropSyncedState(sizeProp);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n radius={radius}\n fontFamily={fontFamily}\n headingFontFamily={headingFontFamily}\n size={size}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onRadiusChange={setRadius}\n onFontFamilyChange={setFontFamily}\n onHeadingFontFamilyChange={setHeadingFontFamily}\n onSizeChange={setSize}\n />\n );\n});\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps extends ComponentPropsWithout<'div', RemovedProps | 'dir'>, ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n headingFontFamily = props.headingFontFamily ?? context?.headingFontFamily,\n size = props.size ?? context?.size ?? themePropDefs.size.default,\n // A nested Theme forwards changes to the one above it, so a switcher\n // inside a portal (Dialog, Popover, menus) still reaches the root.\n onAppearanceChange = context?.onAppearanceChange ?? noop,\n onAccentColorChange = context?.onAccentColorChange ?? noop,\n onGrayColorChange = context?.onGrayColorChange ?? noop,\n onRadiusChange = context?.onRadiusChange ?? noop,\n onFontFamilyChange = context?.onFontFamilyChange ?? noop,\n onHeadingFontFamilyChange = context?.onHeadingFontFamilyChange ?? noop,\n onSizeChange = context?.onSizeChange ?? noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground = hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n radius,\n fontFamily,\n headingFontFamily,\n size,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onRadiusChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n onSizeChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n radius,\n fontFamily,\n headingFontFamily,\n size,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onRadiusChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n onSizeChange,\n ],\n )}\n >\n {/* Size travels on its own context as a bare string, so the components\n that read it do not re-render when another theme value changes. */}\n <ThemeSizeContext.Provider value={size}>\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-radius={radius}\n data-font-family={fontFamily}\n data-heading-font-family={headingFontFamily}\n ref={forwardedRef}\n {...themeProps}\n className={classNames(\n 'kui-theme',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeSizeContext.Provider>\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n", "import type { accentColors } from '../props/color.prop.js';\n\ntype ThemeAccentColor = (typeof accentColors)[number];\n\nexport function getMatchingGrayColor(accentColor: ThemeAccentColor) {\n switch (accentColor) {\n case 'tomato':\n case 'red':\n case 'ruby':\n case 'crimson':\n case 'pink':\n case 'plum':\n case 'purple':\n case 'violet':\n return 'mauve';\n case 'iris':\n case 'indigo':\n case 'blue':\n case 'sky':\n case 'cyan':\n return 'slate';\n case 'teal':\n case 'jade':\n case 'mint':\n case 'green':\n return 'sage';\n case 'grass':\n case 'lime':\n return 'olive';\n case 'yellow':\n case 'amber':\n case 'orange':\n case 'brown':\n case 'gold':\n case 'bronze':\n return 'sand';\n case 'gray':\n return 'gray';\n }\n}\n", "import * as React from 'react';\n\n/**\n * State that tracks a prop but can also be set imperatively \u2014 the shape `Theme`\n * needs, where a prop sets the value and the context setters can change it at runtime.\n *\n * Adjusts state during render rather than syncing in a `useEffect`. An effect\n * would commit one render carrying the *old* value and schedule a second one,\n * which for a provider means every consumer renders twice and the browser can\n * paint the stale value in between.\n *\n * @see https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\nexport function usePropSyncedState<T>(propValue: T) {\n const [value, setValue] = React.useState(propValue);\n const [previousPropValue, setPreviousPropValue] = React.useState(propValue);\n\n if (!Object.is(propValue, previousPropValue)) {\n setPreviousPropValue(propValue);\n setValue(propValue);\n }\n\n return [value, setValue] as const;\n}\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColors, grayColors } from '../props/color.prop.js';\nimport { radii } from '../props/radius.prop.js';\n\nimport type { GetPropDefTypes, PropDef } from '../props/prop-def.js';\n\nconst appearances = ['inherit', 'light', 'dark'] as const;\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\nconst sizes = ['1', '2', '3', '4'] as const;\n\nconst themePropDefs = {\n ...asChildPropDef,\n /**\n * Whether to apply background color to the Theme element.\n *\n * Defaults to true for the root Theme and for Theme elements that\n * have an explicit light or dark appearance prop.\n */\n hasBackground: { type: 'boolean', default: true },\n /**\n * Sets the color scheme of the theme, typcially referred to as light and dark mode.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/dark-mode\n */\n appearance: { type: 'enum', values: appearances, default: 'inherit' },\n /**\n * Selects one of the accent color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n accentColor: { type: 'enum', values: accentColors, default: 'gray' },\n /**\n * Selects one of the gray color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n grayColor: { type: 'enum', values: grayColors, default: 'gray' },\n /**\n * Sets the default radius of the components.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n radius: { type: 'enum', values: radii, default: 'full' },\n /**\n * Sets the font family used for body text in the theme.\n *\n * Headings follow this unless `headingFontFamily` (or the `--font-heading`\n * token) says otherwise.\n *\n * @default 'sans'\n */\n fontFamily: { type: 'enum', values: fontFamilies, default: 'sans' },\n /**\n * Sets the font family used for `Heading`, independently of body text.\n *\n * Deliberately has no default: when it is left unset no attribute is\n * emitted and `--font-heading` keeps following `--font-body`, so a\n * `--font-heading` override in your own CSS survives a `fontFamily` switch.\n */\n headingFontFamily: { type: 'enum', values: fontFamilies },\n /**\n * The app-wide size index. Every component on the 1-4 control and surface\n * scale that states no `size` of its own takes this one; an explicit\n * `size` always wins. Nested Themes override it for their subtree.\n *\n * @default '2'\n */\n size: { type: 'enum', values: sizes, default: '2' },\n} satisfies {\n hasBackground: PropDef<boolean>;\n appearance: PropDef<(typeof appearances)[number]>;\n accentColor: PropDef<(typeof accentColors)[number]>;\n grayColor: PropDef<(typeof grayColors)[number]>;\n radius: PropDef<(typeof radii)[number]>;\n fontFamily: PropDef<(typeof fontFamilies)[number]>;\n headingFontFamily: PropDef<(typeof fontFamilies)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n};\n\ntype ThemeOwnProps = GetPropDefTypes<typeof themePropDefs & typeof asChildPropDef>;\n\nexport { themePropDefs };\nexport type { ThemeOwnProps };\n", "import * as React from 'react';\n\n/**\n * Keeps a Radix ScrollArea's thumbs on the scroll position on every scroll.\n *\n * Radix moves a thumb from a requestAnimationFrame loop it starts on the first scroll event of a\n * burst. Next's production minifier compiles that self-calling loop away, so in a production\n * build the thumb moves once, sits while the content scrolls, and jumps when the next burst\n * starts. This writes the transform Radix would, at most once per frame. Nothing re-renders.\n *\n * Pass the hook's setter as a ref on `ScrollArea.Viewport`; the scrollbars are its siblings.\n */\nexport function useThumbSync<T extends HTMLElement>() {\n const [viewport, setViewport] = React.useState<T | null>(null);\n\n React.useEffect(() => {\n const root = viewport?.parentElement;\n if (!viewport || !root) return;\n let frame = 0;\n const write = () => {\n frame = 0;\n for (const thumb of root.querySelectorAll<HTMLElement>(':scope > .kui-ScrollAreaScrollbar > .kui-ScrollAreaThumb')) {\n const scrollbar = thumb.parentElement as HTMLElement;\n const style = getComputedStyle(scrollbar);\n if (scrollbar.dataset.orientation === 'horizontal') {\n const track = scrollbar.clientWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight);\n const offset = thumbOffset(viewport.scrollLeft, viewport.scrollWidth - viewport.offsetWidth, track - thumb.offsetWidth);\n thumb.style.transform = `translate3d(${offset}px, 0, 0)`;\n } else {\n const track = scrollbar.clientHeight - parseFloat(style.paddingTop) - parseFloat(style.paddingBottom);\n const offset = thumbOffset(viewport.scrollTop, viewport.scrollHeight - viewport.offsetHeight, track - thumb.offsetHeight);\n thumb.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }\n };\n const schedule = () => {\n if (!frame) frame = requestAnimationFrame(write);\n };\n viewport.addEventListener('scroll', schedule, { passive: true });\n return () => {\n if (frame) cancelAnimationFrame(frame);\n viewport.removeEventListener('scroll', schedule);\n };\n }, [viewport]);\n\n return setViewport;\n}\n\n/** Radix's mapping: scroll position over its range, onto the room the thumb has to travel. */\nfunction thumbOffset(position: number, range: number, travel: number) {\n if (range <= 0 || travel <= 0) return 0;\n // Right-to-left scrolls run from -range to 0; the thumb then travels from -travel to 0.\n const clamped = Math.min(Math.max(position, -range), range);\n return (clamped / range) * travel;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["select_exports", "__export", "SelectContent", "SelectGroup", "SelectItem", "SelectLabel", "SelectRoot", "SelectSeparator", "SelectTrigger", "__toCommonJS", "React", "import_classnames", "import_radix_ui", "import_classnames", "EMPTY_VALUES", "EMPTY_SET", "compile", "propDefs", "merged", "styling", "passthrough", "stylingKeys", "key", "def", "values", "compiled", "cacheRoot", "getCompiledPropDefs", "node", "i", "propDef", "child", "breakpoints", "breakpointSet", "hasOwnProperty", "obj", "key", "breakpointSet", "isResponsiveObject", "obj", "key", "includesValue", "propValues", "propValueSet", "value", "getResponsiveStyles", "className", "customProperties", "args", "responsiveClassNames", "getResponsiveClassNames", "responsiveCustomProperties", "getResponsiveCustomProperties", "allowArbitraryValues", "parseValue", "getBaseClassName", "isResponsiveObject", "object", "classNames", "bp", "hasOwnProperty", "breakpointSet", "baseClassName", "bpClassName", "delimiter", "matchedValue", "isNegative", "minus", "absoluteValue", "styles", "parsed", "customProperty", "bpProperty", "mergeStyles", "styles", "result", "style", "normalizeResponsiveValue", "value", "propDef", "initial", "changed", "extractProps", "props", "propDefs", "styling", "passthrough", "stylingKeys", "getCompiledPropDefs", "extractedProps", "key", "i", "isResponsiveObject", "style", "classes", "propClassName", "getResponsiveClassNames", "propClassNames", "propCustomProperties", "getResponsiveStyles", "mergeStyles", "classNames", "React", "THEME_SIZE_DEFAULT", "ThemeSizeContext", "clampSize", "size", "values", "n", "nearest", "distance", "i", "d", "useThemeSize", "explicit", "propDef", "themeSize", "import_react", "ThickDividerHorizontalIcon", "React", "props", "forwardedRef", "ThickCheckIcon", "ChevronDownIcon", "ThickChevronRightIcon", "ThickChevronLeftIcon", "ThickDotIcon", "CloseIcon", "React", "_props", "_forwardedRef", "PaperclipIcon", "props", "forwardedRef", "FileIcon", "FileTextIcon", "TickIcon", "React", "import_classnames", "React", "import_classnames", "paddingValues", "paddingPropDefs", "heightPropDefs", "widthPropDefs", "overflowValues", "positionValues", "positionEdgeValues", "flexShrinkValues", "flexGrowValues", "alignSelfValues", "justifySelfValues", "layoutPropDefs", "paddingPropDefs", "widthPropDefs", "heightPropDefs", "marginValues", "marginPropDefs", "import_radix_ui", "Root", "SlotPrimitive", "Slot", "Slottable", "asChildPropDef", "gapValues", "gapPropDefs", "as", "displayValues", "directionValues", "alignValues", "justifyValues", "wrapValues", "flexPropDefs", "asChildPropDef", "parseJustifyValue", "gapPropDefs", "value", "Flex", "props", "forwardedRef", "className", "asChild", "Tag", "flexProps", "extractProps", "flexPropDefs", "layoutPropDefs", "marginPropDefs", "Slot", "classNames", "spinnerPropDefs", "Spinner", "props", "forwardedRef", "className", "children", "loading", "spinnerProps", "extractProps", "spinnerPropDefs", "named", "spinner", "classNames", "Flex", "accentColors", "grayColors", "colorPropDef", "radii", "radiusPropDef", "sizes", "selectRootPropDefs", "triggerVariants", "selectTriggerPropDefs", "colorPropDef", "radiusPropDef", "selectContentPropDefs", "React", "import_classnames", "import_radix_ui", "getMatchingGrayColor", "accentColor", "React", "usePropSyncedState", "propValue", "value", "setValue", "previousPropValue", "setPreviousPropValue", "appearances", "fontFamilies", "sizes", "themePropDefs", "asChildPropDef", "accentColors", "grayColors", "radii", "noop", "defaultThemeContext", "themePropDefs", "ThemeContext", "useThemeContext", "Theme", "props", "forwardedRef", "context", "dir", "ThemeRoot", "ThemeImpl", "appearanceProp", "accentColorProp", "grayColorProp", "radiusProp", "fontFamilyProp", "headingFontFamilyProp", "sizeProp", "hasBackground", "rootProps", "appearance", "setAppearance", "usePropSyncedState", "accentColor", "setAccentColor", "grayColor", "setGrayColor", "radius", "setRadius", "fontFamily", "setFontFamily", "headingFontFamily", "setHeadingFontFamily", "size", "setSize", "asChild", "isRoot", "hasBackgroundProp", "onAppearanceChange", "onAccentColorChange", "onGrayColorChange", "onRadiusChange", "onFontFamilyChange", "onHeadingFontFamilyChange", "onSizeChange", "themeProps", "Comp", "resolvedGrayColor", "getMatchingGrayColor", "isExplicitAppearance", "ThemeSizeContext", "classNames", "React", "useThumbSync", "viewport", "setViewport", "root", "frame", "write", "thumb", "scrollbar", "style", "track", "offset", "thumbOffset", "schedule", "position", "range", "travel", "selectSizePropDefs", "selectRootPropDefs", "OPEN_KEYS", "SelectContext", "SelectRoot", "props", "children", "sizeProp", "openProp", "defaultOpen", "onOpenChange", "rootProps", "size", "useThemeSize", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChange", "next", "SelectPrimitive", "SelectTrigger", "forwardedRef", "context", "className", "color", "radius", "placeholder", "error", "loading", "disabled", "readOnly", "triggerProps", "extractProps", "selectTriggerPropDefs", "ariaInvalid", "ariaBusy", "ariaDisabled", "ariaReadOnly", "isInvalid", "ariaProps", "blockedHandlers", "event", "isModifierKey", "classNames", "Spinner", "ChevronDownIcon", "SelectContent", "container", "contentProps", "selectContentPropDefs", "themeContext", "useThemeContext", "resolvedColor", "Theme", "SelectScrollArea", "setThumbViewport", "useThumbSync", "ScrollAreaPrimitive", "SelectItem", "itemProps", "isRichContent", "ThickCheckIcon", "SelectGroup", "SelectLabel", "SelectSeparator"]
7
7
  }