@mitcsutt/kiln-ui 0.1.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 (742) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/dist/assets/fonts/big-shoulders-latin-ext-standard-normal.woff2 +0 -0
  4. package/dist/assets/fonts/big-shoulders-latin-standard-normal.woff2 +0 -0
  5. package/dist/assets/fonts/bricolage-grotesque-latin-ext-standard-normal.woff2 +0 -0
  6. package/dist/assets/fonts/bricolage-grotesque-latin-standard-normal.woff2 +0 -0
  7. package/dist/assets/fonts/licenses/big-shoulders.txt +93 -0
  8. package/dist/assets/fonts/licenses/bricolage-grotesque.txt +93 -0
  9. package/dist/assets/fonts/licenses/martian-mono.txt +93 -0
  10. package/dist/assets/fonts/licenses/newsreader.txt +93 -0
  11. package/dist/assets/fonts/licenses/schibsted-grotesk.txt +93 -0
  12. package/dist/assets/fonts/martian-mono-latin-ext-standard-normal.woff2 +0 -0
  13. package/dist/assets/fonts/martian-mono-latin-standard-normal.woff2 +0 -0
  14. package/dist/assets/fonts/newsreader-latin-ext-standard-italic.woff2 +0 -0
  15. package/dist/assets/fonts/newsreader-latin-ext-standard-normal.woff2 +0 -0
  16. package/dist/assets/fonts/newsreader-latin-standard-italic.woff2 +0 -0
  17. package/dist/assets/fonts/newsreader-latin-standard-normal.woff2 +0 -0
  18. package/dist/assets/fonts/schibsted-grotesk-latin-ext-wght-italic.woff2 +0 -0
  19. package/dist/assets/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2 +0 -0
  20. package/dist/assets/fonts/schibsted-grotesk-latin-wght-italic.woff2 +0 -0
  21. package/dist/assets/fonts/schibsted-grotesk-latin-wght-normal.woff2 +0 -0
  22. package/dist/components/actions/Button/Button.d.ts +26 -0
  23. package/dist/components/actions/Button/Button.js +47 -0
  24. package/dist/components/actions/Button/Button.js.map +1 -0
  25. package/dist/components/actions/Button/Button.module.js +10 -0
  26. package/dist/components/actions/Button/Button.module.js.map +1 -0
  27. package/dist/components/actions/Button/index.d.ts +2 -0
  28. package/dist/components/actions/ChipGroup/ChipGroup.d.ts +50 -0
  29. package/dist/components/actions/ChipGroup/ChipGroup.js +104 -0
  30. package/dist/components/actions/ChipGroup/ChipGroup.js.map +1 -0
  31. package/dist/components/actions/ChipGroup/ChipGroup.module.js +6 -0
  32. package/dist/components/actions/ChipGroup/ChipGroup.module.js.map +1 -0
  33. package/dist/components/actions/ChipGroup/index.d.ts +2 -0
  34. package/dist/components/actions/IconButton/IconButton.d.ts +28 -0
  35. package/dist/components/actions/IconButton/IconButton.js +28 -0
  36. package/dist/components/actions/IconButton/IconButton.js.map +1 -0
  37. package/dist/components/actions/IconButton/IconButton.module.js +9 -0
  38. package/dist/components/actions/IconButton/IconButton.module.js.map +1 -0
  39. package/dist/components/actions/IconButton/index.d.ts +2 -0
  40. package/dist/components/actions/ModeToggle/ModeToggle.d.ts +28 -0
  41. package/dist/components/actions/ModeToggle/ModeToggle.js +63 -0
  42. package/dist/components/actions/ModeToggle/ModeToggle.js.map +1 -0
  43. package/dist/components/actions/ModeToggle/index.d.ts +2 -0
  44. package/dist/components/actions/SegmentedControl/SegmentedControl.d.ts +46 -0
  45. package/dist/components/actions/SegmentedControl/SegmentedControl.js +109 -0
  46. package/dist/components/actions/SegmentedControl/SegmentedControl.js.map +1 -0
  47. package/dist/components/actions/SegmentedControl/SegmentedControl.module.js +13 -0
  48. package/dist/components/actions/SegmentedControl/SegmentedControl.module.js.map +1 -0
  49. package/dist/components/actions/SegmentedControl/index.d.ts +2 -0
  50. package/dist/components/actions/ToggleChip/ToggleChip.d.ts +19 -0
  51. package/dist/components/actions/ToggleChip/ToggleChip.js +34 -0
  52. package/dist/components/actions/ToggleChip/ToggleChip.js.map +1 -0
  53. package/dist/components/actions/ToggleChip/chip.module.js +10 -0
  54. package/dist/components/actions/ToggleChip/chip.module.js.map +1 -0
  55. package/dist/components/actions/ToggleChip/index.d.ts +2 -0
  56. package/dist/components/display/Avatar/Avatar.d.ts +27 -0
  57. package/dist/components/display/Avatar/Avatar.js +39 -0
  58. package/dist/components/display/Avatar/Avatar.js.map +1 -0
  59. package/dist/components/display/Avatar/Avatar.module.js +10 -0
  60. package/dist/components/display/Avatar/Avatar.module.js.map +1 -0
  61. package/dist/components/display/Avatar/AvatarContext.d.ts +3 -0
  62. package/dist/components/display/Avatar/AvatarContext.js +7 -0
  63. package/dist/components/display/Avatar/AvatarContext.js.map +1 -0
  64. package/dist/components/display/Avatar/avatarUtils.d.ts +10 -0
  65. package/dist/components/display/Avatar/avatarUtils.js +14 -0
  66. package/dist/components/display/Avatar/avatarUtils.js.map +1 -0
  67. package/dist/components/display/Avatar/index.d.ts +5 -0
  68. package/dist/components/display/AvatarGroup/AvatarGroup.d.ts +16 -0
  69. package/dist/components/display/AvatarGroup/AvatarGroup.js +33 -0
  70. package/dist/components/display/AvatarGroup/AvatarGroup.js.map +1 -0
  71. package/dist/components/display/AvatarGroup/AvatarGroup.module.js +9 -0
  72. package/dist/components/display/AvatarGroup/AvatarGroup.module.js.map +1 -0
  73. package/dist/components/display/AvatarGroup/index.d.ts +2 -0
  74. package/dist/components/display/Badge/Badge.d.ts +18 -0
  75. package/dist/components/display/Badge/Badge.js +23 -0
  76. package/dist/components/display/Badge/Badge.js.map +1 -0
  77. package/dist/components/display/Badge/Badge.module.js +9 -0
  78. package/dist/components/display/Badge/Badge.module.js.map +1 -0
  79. package/dist/components/display/Badge/index.d.ts +2 -0
  80. package/dist/components/display/Card/Card.d.ts +46 -0
  81. package/dist/components/display/Card/Card.js +78 -0
  82. package/dist/components/display/Card/Card.js.map +1 -0
  83. package/dist/components/display/Card/Card.module.js +15 -0
  84. package/dist/components/display/Card/Card.module.js.map +1 -0
  85. package/dist/components/display/Card/index.d.ts +2 -0
  86. package/dist/components/display/CodeBlock/CodeBlock.d.ts +26 -0
  87. package/dist/components/display/CodeBlock/CodeBlock.js +85 -0
  88. package/dist/components/display/CodeBlock/CodeBlock.js.map +1 -0
  89. package/dist/components/display/CodeBlock/CodeBlock.module.js +16 -0
  90. package/dist/components/display/CodeBlock/CodeBlock.module.js.map +1 -0
  91. package/dist/components/display/CodeBlock/index.d.ts +2 -0
  92. package/dist/components/display/DataList/DataList.d.ts +19 -0
  93. package/dist/components/display/DataList/DataList.js +31 -0
  94. package/dist/components/display/DataList/DataList.js.map +1 -0
  95. package/dist/components/display/DataList/DataList.module.js +11 -0
  96. package/dist/components/display/DataList/DataList.module.js.map +1 -0
  97. package/dist/components/display/DataList/index.d.ts +2 -0
  98. package/dist/components/display/Delta/Delta.d.ts +23 -0
  99. package/dist/components/display/Delta/Delta.js +42 -0
  100. package/dist/components/display/Delta/Delta.js.map +1 -0
  101. package/dist/components/display/Delta/Delta.module.js +9 -0
  102. package/dist/components/display/Delta/Delta.module.js.map +1 -0
  103. package/dist/components/display/Delta/index.d.ts +2 -0
  104. package/dist/components/display/EmptyState/EmptyState.d.ts +28 -0
  105. package/dist/components/display/EmptyState/EmptyState.js +42 -0
  106. package/dist/components/display/EmptyState/EmptyState.js.map +1 -0
  107. package/dist/components/display/EmptyState/EmptyState.module.js +14 -0
  108. package/dist/components/display/EmptyState/EmptyState.module.js.map +1 -0
  109. package/dist/components/display/EmptyState/index.d.ts +2 -0
  110. package/dist/components/display/List/List.d.ts +33 -0
  111. package/dist/components/display/List/List.js +64 -0
  112. package/dist/components/display/List/List.js.map +1 -0
  113. package/dist/components/display/List/List.module.js +14 -0
  114. package/dist/components/display/List/List.module.js.map +1 -0
  115. package/dist/components/display/List/index.d.ts +2 -0
  116. package/dist/components/display/Marquee/Marquee.d.ts +46 -0
  117. package/dist/components/display/Marquee/Marquee.js +95 -0
  118. package/dist/components/display/Marquee/Marquee.js.map +1 -0
  119. package/dist/components/display/Marquee/Marquee.module.js +19 -0
  120. package/dist/components/display/Marquee/Marquee.module.js.map +1 -0
  121. package/dist/components/display/Marquee/index.d.ts +2 -0
  122. package/dist/components/display/Media/Media.d.ts +30 -0
  123. package/dist/components/display/Media/Media.js +47 -0
  124. package/dist/components/display/Media/Media.js.map +1 -0
  125. package/dist/components/display/Media/Media.module.js +12 -0
  126. package/dist/components/display/Media/Media.module.js.map +1 -0
  127. package/dist/components/display/Media/index.d.ts +2 -0
  128. package/dist/components/display/Meter/Meter.d.ts +32 -0
  129. package/dist/components/display/Meter/Meter.js +56 -0
  130. package/dist/components/display/Meter/Meter.js.map +1 -0
  131. package/dist/components/display/Meter/Meter.module.js +14 -0
  132. package/dist/components/display/Meter/Meter.module.js.map +1 -0
  133. package/dist/components/display/Meter/index.d.ts +4 -0
  134. package/dist/components/display/Meter/meterTone.d.ts +15 -0
  135. package/dist/components/display/Meter/meterTone.js +9 -0
  136. package/dist/components/display/Meter/meterTone.js.map +1 -0
  137. package/dist/components/display/Progress/Progress.d.ts +27 -0
  138. package/dist/components/display/Progress/Progress.js +45 -0
  139. package/dist/components/display/Progress/Progress.js.map +1 -0
  140. package/dist/components/display/Progress/Progress.module.js +14 -0
  141. package/dist/components/display/Progress/Progress.module.js.map +1 -0
  142. package/dist/components/display/Progress/index.d.ts +2 -0
  143. package/dist/components/display/Skeleton/Skeleton.d.ts +31 -0
  144. package/dist/components/display/Skeleton/Skeleton.js +60 -0
  145. package/dist/components/display/Skeleton/Skeleton.js.map +1 -0
  146. package/dist/components/display/Skeleton/Skeleton.module.js +12 -0
  147. package/dist/components/display/Skeleton/Skeleton.module.js.map +1 -0
  148. package/dist/components/display/Skeleton/index.d.ts +2 -0
  149. package/dist/components/display/Stamp/Stamp.d.ts +25 -0
  150. package/dist/components/display/Stamp/Stamp.js +21 -0
  151. package/dist/components/display/Stamp/Stamp.js.map +1 -0
  152. package/dist/components/display/Stamp/Stamp.module.js +6 -0
  153. package/dist/components/display/Stamp/Stamp.module.js.map +1 -0
  154. package/dist/components/display/Stamp/index.d.ts +2 -0
  155. package/dist/components/display/Stat/Stat.d.ts +40 -0
  156. package/dist/components/display/Stat/Stat.js +46 -0
  157. package/dist/components/display/Stat/Stat.js.map +1 -0
  158. package/dist/components/display/Stat/Stat.module.js +13 -0
  159. package/dist/components/display/Stat/Stat.module.js.map +1 -0
  160. package/dist/components/display/Stat/index.d.ts +2 -0
  161. package/dist/components/display/Table/Table.d.ts +64 -0
  162. package/dist/components/display/Table/Table.js +124 -0
  163. package/dist/components/display/Table/Table.js.map +1 -0
  164. package/dist/components/display/Table/Table.module.js +18 -0
  165. package/dist/components/display/Table/Table.module.js.map +1 -0
  166. package/dist/components/display/Table/index.d.ts +2 -0
  167. package/dist/components/display/Tag/Tag.d.ts +21 -0
  168. package/dist/components/display/Tag/Tag.js +36 -0
  169. package/dist/components/display/Tag/Tag.js.map +1 -0
  170. package/dist/components/display/Tag/Tag.module.js +10 -0
  171. package/dist/components/display/Tag/Tag.module.js.map +1 -0
  172. package/dist/components/display/Tag/index.d.ts +2 -0
  173. package/dist/components/feedback/Alert/Alert.d.ts +33 -0
  174. package/dist/components/feedback/Alert/Alert.js +62 -0
  175. package/dist/components/feedback/Alert/Alert.js.map +1 -0
  176. package/dist/components/feedback/Alert/Alert.module.js +14 -0
  177. package/dist/components/feedback/Alert/Alert.module.js.map +1 -0
  178. package/dist/components/feedback/Alert/index.d.ts +2 -0
  179. package/dist/components/feedback/LiveIndicator/LiveIndicator.d.ts +22 -0
  180. package/dist/components/feedback/LiveIndicator/LiveIndicator.js +27 -0
  181. package/dist/components/feedback/LiveIndicator/LiveIndicator.js.map +1 -0
  182. package/dist/components/feedback/LiveIndicator/LiveIndicator.module.js +10 -0
  183. package/dist/components/feedback/LiveIndicator/LiveIndicator.module.js.map +1 -0
  184. package/dist/components/feedback/LiveIndicator/index.d.ts +2 -0
  185. package/dist/components/feedback/RelativeTime/RelativeTime.d.ts +24 -0
  186. package/dist/components/feedback/RelativeTime/RelativeTime.js +38 -0
  187. package/dist/components/feedback/RelativeTime/RelativeTime.js.map +1 -0
  188. package/dist/components/feedback/RelativeTime/RelativeTime.module.js +6 -0
  189. package/dist/components/feedback/RelativeTime/RelativeTime.module.js.map +1 -0
  190. package/dist/components/feedback/RelativeTime/format.d.ts +10 -0
  191. package/dist/components/feedback/RelativeTime/format.js +57 -0
  192. package/dist/components/feedback/RelativeTime/format.js.map +1 -0
  193. package/dist/components/feedback/RelativeTime/index.d.ts +4 -0
  194. package/dist/components/feedback/Spinner/Spinner.d.ts +8 -0
  195. package/dist/components/feedback/Spinner/Spinner.js +25 -0
  196. package/dist/components/feedback/Spinner/Spinner.js.map +1 -0
  197. package/dist/components/feedback/Spinner/Spinner.module.js +10 -0
  198. package/dist/components/feedback/Spinner/Spinner.module.js.map +1 -0
  199. package/dist/components/feedback/Spinner/index.d.ts +2 -0
  200. package/dist/components/feedback/StatusDot/StatusDot.d.ts +13 -0
  201. package/dist/components/feedback/StatusDot/StatusDot.js +26 -0
  202. package/dist/components/feedback/StatusDot/StatusDot.js.map +1 -0
  203. package/dist/components/feedback/StatusDot/StatusDot.module.js +11 -0
  204. package/dist/components/feedback/StatusDot/StatusDot.module.js.map +1 -0
  205. package/dist/components/feedback/StatusDot/index.d.ts +2 -0
  206. package/dist/components/inputs/AmountField/AmountField.d.ts +11 -0
  207. package/dist/components/inputs/AmountField/AmountField.js +26 -0
  208. package/dist/components/inputs/AmountField/AmountField.js.map +1 -0
  209. package/dist/components/inputs/AmountField/index.d.ts +2 -0
  210. package/dist/components/inputs/AmountInput/AmountInput.d.ts +38 -0
  211. package/dist/components/inputs/AmountInput/AmountInput.js +99 -0
  212. package/dist/components/inputs/AmountInput/AmountInput.js.map +1 -0
  213. package/dist/components/inputs/AmountInput/amountFormat.d.ts +5 -0
  214. package/dist/components/inputs/AmountInput/amountFormat.js +15 -0
  215. package/dist/components/inputs/AmountInput/amountFormat.js.map +1 -0
  216. package/dist/components/inputs/AmountInput/index.d.ts +2 -0
  217. package/dist/components/inputs/Checkbox/Checkbox.d.ts +18 -0
  218. package/dist/components/inputs/Checkbox/Checkbox.js +42 -0
  219. package/dist/components/inputs/Checkbox/Checkbox.js.map +1 -0
  220. package/dist/components/inputs/Checkbox/Checkbox.module.js +12 -0
  221. package/dist/components/inputs/Checkbox/Checkbox.module.js.map +1 -0
  222. package/dist/components/inputs/Checkbox/index.d.ts +2 -0
  223. package/dist/components/inputs/CheckboxField/CheckboxField.d.ts +19 -0
  224. package/dist/components/inputs/CheckboxField/CheckboxField.js +69 -0
  225. package/dist/components/inputs/CheckboxField/CheckboxField.js.map +1 -0
  226. package/dist/components/inputs/CheckboxField/CheckboxField.module.js +12 -0
  227. package/dist/components/inputs/CheckboxField/CheckboxField.module.js.map +1 -0
  228. package/dist/components/inputs/CheckboxField/index.d.ts +2 -0
  229. package/dist/components/inputs/CheckboxGroup/CheckboxGroup.d.ts +43 -0
  230. package/dist/components/inputs/CheckboxGroup/CheckboxGroup.js +159 -0
  231. package/dist/components/inputs/CheckboxGroup/CheckboxGroup.js.map +1 -0
  232. package/dist/components/inputs/CheckboxGroup/CheckboxGroup.module.js +13 -0
  233. package/dist/components/inputs/CheckboxGroup/CheckboxGroup.module.js.map +1 -0
  234. package/dist/components/inputs/CheckboxGroup/choice.d.ts +33 -0
  235. package/dist/components/inputs/CheckboxGroup/choice.js +41 -0
  236. package/dist/components/inputs/CheckboxGroup/choice.js.map +1 -0
  237. package/dist/components/inputs/CheckboxGroup/index.d.ts +2 -0
  238. package/dist/components/inputs/CheckboxGroupField/CheckboxGroupField.d.ts +12 -0
  239. package/dist/components/inputs/CheckboxGroupField/CheckboxGroupField.js +24 -0
  240. package/dist/components/inputs/CheckboxGroupField/CheckboxGroupField.js.map +1 -0
  241. package/dist/components/inputs/CheckboxGroupField/index.d.ts +2 -0
  242. package/dist/components/inputs/ChipGroupField/ChipGroupField.d.ts +12 -0
  243. package/dist/components/inputs/ChipGroupField/ChipGroupField.js +24 -0
  244. package/dist/components/inputs/ChipGroupField/ChipGroupField.js.map +1 -0
  245. package/dist/components/inputs/ChipGroupField/index.d.ts +2 -0
  246. package/dist/components/inputs/ChoiceCards/ChoiceCards.d.ts +50 -0
  247. package/dist/components/inputs/ChoiceCards/ChoiceCards.js +130 -0
  248. package/dist/components/inputs/ChoiceCards/ChoiceCards.js.map +1 -0
  249. package/dist/components/inputs/ChoiceCards/ChoiceCards.module.js +15 -0
  250. package/dist/components/inputs/ChoiceCards/ChoiceCards.module.js.map +1 -0
  251. package/dist/components/inputs/ChoiceCards/index.d.ts +2 -0
  252. package/dist/components/inputs/ChoiceCardsField/ChoiceCardsField.d.ts +12 -0
  253. package/dist/components/inputs/ChoiceCardsField/ChoiceCardsField.js +24 -0
  254. package/dist/components/inputs/ChoiceCardsField/ChoiceCardsField.js.map +1 -0
  255. package/dist/components/inputs/ChoiceCardsField/index.d.ts +2 -0
  256. package/dist/components/inputs/ColorField/ColorField.d.ts +12 -0
  257. package/dist/components/inputs/ColorField/ColorField.js +26 -0
  258. package/dist/components/inputs/ColorField/ColorField.js.map +1 -0
  259. package/dist/components/inputs/ColorField/index.d.ts +2 -0
  260. package/dist/components/inputs/ColorInput/ColorInput.d.ts +30 -0
  261. package/dist/components/inputs/ColorInput/ColorInput.js +149 -0
  262. package/dist/components/inputs/ColorInput/ColorInput.js.map +1 -0
  263. package/dist/components/inputs/ColorInput/ColorInput.module.js +13 -0
  264. package/dist/components/inputs/ColorInput/ColorInput.module.js.map +1 -0
  265. package/dist/components/inputs/ColorInput/colorFormat.d.ts +2 -0
  266. package/dist/components/inputs/ColorInput/colorFormat.js +10 -0
  267. package/dist/components/inputs/ColorInput/colorFormat.js.map +1 -0
  268. package/dist/components/inputs/ColorInput/index.d.ts +2 -0
  269. package/dist/components/inputs/Combobox/Combobox.d.ts +74 -0
  270. package/dist/components/inputs/Combobox/Combobox.js +394 -0
  271. package/dist/components/inputs/Combobox/Combobox.js.map +1 -0
  272. package/dist/components/inputs/Combobox/Combobox.module.js +28 -0
  273. package/dist/components/inputs/Combobox/Combobox.module.js.map +1 -0
  274. package/dist/components/inputs/Combobox/index.d.ts +2 -0
  275. package/dist/components/inputs/Combobox/storyData.d.ts +7 -0
  276. package/dist/components/inputs/Combobox/useControllableState.d.ts +8 -0
  277. package/dist/components/inputs/Combobox/useControllableState.js +13 -0
  278. package/dist/components/inputs/Combobox/useControllableState.js.map +1 -0
  279. package/dist/components/inputs/ComboboxField/ComboboxField.d.ts +17 -0
  280. package/dist/components/inputs/ComboboxField/ComboboxField.js +26 -0
  281. package/dist/components/inputs/ComboboxField/ComboboxField.js.map +1 -0
  282. package/dist/components/inputs/ComboboxField/index.d.ts +2 -0
  283. package/dist/components/inputs/DateRangeField/DateRangeField.d.ts +37 -0
  284. package/dist/components/inputs/DateRangeField/DateRangeField.js +87 -0
  285. package/dist/components/inputs/DateRangeField/DateRangeField.js.map +1 -0
  286. package/dist/components/inputs/DateRangeField/DateRangeField.module.js +10 -0
  287. package/dist/components/inputs/DateRangeField/DateRangeField.module.js.map +1 -0
  288. package/dist/components/inputs/DateRangeField/index.d.ts +2 -0
  289. package/dist/components/inputs/Field/Field.d.ts +79 -0
  290. package/dist/components/inputs/Field/Field.js +100 -0
  291. package/dist/components/inputs/Field/Field.js.map +1 -0
  292. package/dist/components/inputs/Field/Field.module.js +12 -0
  293. package/dist/components/inputs/Field/Field.module.js.map +1 -0
  294. package/dist/components/inputs/Field/index.d.ts +4 -0
  295. package/dist/components/inputs/Fieldset/Fieldset.d.ts +48 -0
  296. package/dist/components/inputs/Fieldset/Fieldset.js +83 -0
  297. package/dist/components/inputs/Fieldset/Fieldset.js.map +1 -0
  298. package/dist/components/inputs/Fieldset/Fieldset.module.js +12 -0
  299. package/dist/components/inputs/Fieldset/Fieldset.module.js.map +1 -0
  300. package/dist/components/inputs/Fieldset/index.d.ts +2 -0
  301. package/dist/components/inputs/FileDrop/FileDrop.d.ts +60 -0
  302. package/dist/components/inputs/FileDrop/FileDrop.js +189 -0
  303. package/dist/components/inputs/FileDrop/FileDrop.js.map +1 -0
  304. package/dist/components/inputs/FileDrop/FileDrop.module.js +21 -0
  305. package/dist/components/inputs/FileDrop/FileDrop.module.js.map +1 -0
  306. package/dist/components/inputs/FileDrop/fileUtils.d.ts +11 -0
  307. package/dist/components/inputs/FileDrop/fileUtils.js +38 -0
  308. package/dist/components/inputs/FileDrop/fileUtils.js.map +1 -0
  309. package/dist/components/inputs/FileDrop/index.d.ts +2 -0
  310. package/dist/components/inputs/FileField/FileField.d.ts +12 -0
  311. package/dist/components/inputs/FileField/FileField.js +26 -0
  312. package/dist/components/inputs/FileField/FileField.js.map +1 -0
  313. package/dist/components/inputs/FileField/index.d.ts +2 -0
  314. package/dist/components/inputs/Input/Input.d.ts +25 -0
  315. package/dist/components/inputs/Input/Input.js +62 -0
  316. package/dist/components/inputs/Input/Input.js.map +1 -0
  317. package/dist/components/inputs/Input/Input.module.js +10 -0
  318. package/dist/components/inputs/Input/Input.module.js.map +1 -0
  319. package/dist/components/inputs/Input/index.d.ts +2 -0
  320. package/dist/components/inputs/NumberField/NumberField.d.ts +11 -0
  321. package/dist/components/inputs/NumberField/NumberField.js +26 -0
  322. package/dist/components/inputs/NumberField/NumberField.js.map +1 -0
  323. package/dist/components/inputs/NumberField/index.d.ts +2 -0
  324. package/dist/components/inputs/NumberInput/NumberInput.d.ts +35 -0
  325. package/dist/components/inputs/NumberInput/NumberInput.js +139 -0
  326. package/dist/components/inputs/NumberInput/NumberInput.js.map +1 -0
  327. package/dist/components/inputs/NumberInput/NumberInput.module.js +6 -0
  328. package/dist/components/inputs/NumberInput/NumberInput.module.js.map +1 -0
  329. package/dist/components/inputs/NumberInput/index.d.ts +2 -0
  330. package/dist/components/inputs/NumberInput/numberFormat.d.ts +24 -0
  331. package/dist/components/inputs/NumberInput/numberFormat.js +48 -0
  332. package/dist/components/inputs/NumberInput/numberFormat.js.map +1 -0
  333. package/dist/components/inputs/OneTimeCodeField/OneTimeCodeField.d.ts +12 -0
  334. package/dist/components/inputs/OneTimeCodeField/OneTimeCodeField.js +26 -0
  335. package/dist/components/inputs/OneTimeCodeField/OneTimeCodeField.js.map +1 -0
  336. package/dist/components/inputs/OneTimeCodeField/index.d.ts +2 -0
  337. package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.d.ts +35 -0
  338. package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.js +56 -0
  339. package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.js.map +1 -0
  340. package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.module.js +9 -0
  341. package/dist/components/inputs/OneTimeCodeInput/OneTimeCodeInput.module.js.map +1 -0
  342. package/dist/components/inputs/OneTimeCodeInput/index.d.ts +2 -0
  343. package/dist/components/inputs/PasswordField/PasswordField.d.ts +13 -0
  344. package/dist/components/inputs/PasswordField/PasswordField.js +29 -0
  345. package/dist/components/inputs/PasswordField/PasswordField.js.map +1 -0
  346. package/dist/components/inputs/PasswordField/index.d.ts +2 -0
  347. package/dist/components/inputs/PasswordInput/PasswordInput.d.ts +22 -0
  348. package/dist/components/inputs/PasswordInput/PasswordInput.js +75 -0
  349. package/dist/components/inputs/PasswordInput/PasswordInput.js.map +1 -0
  350. package/dist/components/inputs/PasswordInput/PasswordInput.module.js +6 -0
  351. package/dist/components/inputs/PasswordInput/PasswordInput.module.js.map +1 -0
  352. package/dist/components/inputs/PasswordInput/index.d.ts +2 -0
  353. package/dist/components/inputs/RadioGroup/RadioGroup.d.ts +19 -0
  354. package/dist/components/inputs/RadioGroup/RadioGroup.js +68 -0
  355. package/dist/components/inputs/RadioGroup/RadioGroup.js.map +1 -0
  356. package/dist/components/inputs/RadioGroup/RadioGroup.module.js +15 -0
  357. package/dist/components/inputs/RadioGroup/RadioGroup.module.js.map +1 -0
  358. package/dist/components/inputs/RadioGroup/index.d.ts +2 -0
  359. package/dist/components/inputs/RadioGroupField/RadioGroupField.d.ts +16 -0
  360. package/dist/components/inputs/RadioGroupField/RadioGroupField.js +33 -0
  361. package/dist/components/inputs/RadioGroupField/RadioGroupField.js.map +1 -0
  362. package/dist/components/inputs/RadioGroupField/index.d.ts +2 -0
  363. package/dist/components/inputs/RangeSlider/RangeSlider.d.ts +23 -0
  364. package/dist/components/inputs/RangeSlider/RangeSlider.js +63 -0
  365. package/dist/components/inputs/RangeSlider/RangeSlider.js.map +1 -0
  366. package/dist/components/inputs/RangeSlider/index.d.ts +2 -0
  367. package/dist/components/inputs/RangeSliderField/RangeSliderField.d.ts +12 -0
  368. package/dist/components/inputs/RangeSliderField/RangeSliderField.js +24 -0
  369. package/dist/components/inputs/RangeSliderField/RangeSliderField.js.map +1 -0
  370. package/dist/components/inputs/RangeSliderField/index.d.ts +2 -0
  371. package/dist/components/inputs/Rating/Rating.d.ts +31 -0
  372. package/dist/components/inputs/Rating/Rating.js +66 -0
  373. package/dist/components/inputs/Rating/Rating.js.map +1 -0
  374. package/dist/components/inputs/Rating/Rating.module.js +10 -0
  375. package/dist/components/inputs/Rating/Rating.module.js.map +1 -0
  376. package/dist/components/inputs/Rating/index.d.ts +2 -0
  377. package/dist/components/inputs/RatingField/RatingField.d.ts +12 -0
  378. package/dist/components/inputs/RatingField/RatingField.js +24 -0
  379. package/dist/components/inputs/RatingField/RatingField.js.map +1 -0
  380. package/dist/components/inputs/RatingField/index.d.ts +2 -0
  381. package/dist/components/inputs/SegmentedField/SegmentedField.d.ts +12 -0
  382. package/dist/components/inputs/SegmentedField/SegmentedField.js +24 -0
  383. package/dist/components/inputs/SegmentedField/SegmentedField.js.map +1 -0
  384. package/dist/components/inputs/SegmentedField/index.d.ts +2 -0
  385. package/dist/components/inputs/Select/Select.d.ts +66 -0
  386. package/dist/components/inputs/Select/Select.js +165 -0
  387. package/dist/components/inputs/Select/Select.js.map +1 -0
  388. package/dist/components/inputs/Select/Select.module.js +19 -0
  389. package/dist/components/inputs/Select/Select.module.js.map +1 -0
  390. package/dist/components/inputs/Select/index.d.ts +2 -0
  391. package/dist/components/inputs/SelectField/SelectField.d.ts +13 -0
  392. package/dist/components/inputs/SelectField/SelectField.js +26 -0
  393. package/dist/components/inputs/SelectField/SelectField.js.map +1 -0
  394. package/dist/components/inputs/SelectField/index.d.ts +2 -0
  395. package/dist/components/inputs/Slider/Slider.d.ts +40 -0
  396. package/dist/components/inputs/Slider/Slider.js +51 -0
  397. package/dist/components/inputs/Slider/Slider.js.map +1 -0
  398. package/dist/components/inputs/Slider/Slider.module.js +15 -0
  399. package/dist/components/inputs/Slider/Slider.module.js.map +1 -0
  400. package/dist/components/inputs/Slider/SliderBase.d.ts +37 -0
  401. package/dist/components/inputs/Slider/SliderBase.js +85 -0
  402. package/dist/components/inputs/Slider/SliderBase.js.map +1 -0
  403. package/dist/components/inputs/Slider/index.d.ts +2 -0
  404. package/dist/components/inputs/SliderField/SliderField.d.ts +12 -0
  405. package/dist/components/inputs/SliderField/SliderField.js +24 -0
  406. package/dist/components/inputs/SliderField/SliderField.js.map +1 -0
  407. package/dist/components/inputs/SliderField/index.d.ts +2 -0
  408. package/dist/components/inputs/Switch/Switch.d.ts +18 -0
  409. package/dist/components/inputs/Switch/Switch.js +46 -0
  410. package/dist/components/inputs/Switch/Switch.js.map +1 -0
  411. package/dist/components/inputs/Switch/Switch.module.js +11 -0
  412. package/dist/components/inputs/Switch/Switch.module.js.map +1 -0
  413. package/dist/components/inputs/Switch/index.d.ts +2 -0
  414. package/dist/components/inputs/SwitchField/SwitchField.d.ts +13 -0
  415. package/dist/components/inputs/SwitchField/SwitchField.js +73 -0
  416. package/dist/components/inputs/SwitchField/SwitchField.js.map +1 -0
  417. package/dist/components/inputs/SwitchField/SwitchField.module.js +12 -0
  418. package/dist/components/inputs/SwitchField/SwitchField.module.js.map +1 -0
  419. package/dist/components/inputs/SwitchField/index.d.ts +2 -0
  420. package/dist/components/inputs/TagsField/TagsField.d.ts +12 -0
  421. package/dist/components/inputs/TagsField/TagsField.js +26 -0
  422. package/dist/components/inputs/TagsField/TagsField.js.map +1 -0
  423. package/dist/components/inputs/TagsField/index.d.ts +2 -0
  424. package/dist/components/inputs/TagsInput/TagsInput.d.ts +35 -0
  425. package/dist/components/inputs/TagsInput/TagsInput.js +155 -0
  426. package/dist/components/inputs/TagsInput/TagsInput.js.map +1 -0
  427. package/dist/components/inputs/TagsInput/TagsInput.module.js +13 -0
  428. package/dist/components/inputs/TagsInput/TagsInput.module.js.map +1 -0
  429. package/dist/components/inputs/TagsInput/index.d.ts +2 -0
  430. package/dist/components/inputs/TextField/TextField.d.ts +18 -0
  431. package/dist/components/inputs/TextField/TextField.js +40 -0
  432. package/dist/components/inputs/TextField/TextField.js.map +1 -0
  433. package/dist/components/inputs/TextField/index.d.ts +2 -0
  434. package/dist/components/inputs/Textarea/Textarea.d.ts +20 -0
  435. package/dist/components/inputs/Textarea/Textarea.js +61 -0
  436. package/dist/components/inputs/Textarea/Textarea.js.map +1 -0
  437. package/dist/components/inputs/Textarea/Textarea.module.js +6 -0
  438. package/dist/components/inputs/Textarea/Textarea.module.js.map +1 -0
  439. package/dist/components/inputs/Textarea/index.d.ts +2 -0
  440. package/dist/components/inputs/TextareaField/TextareaField.d.ts +18 -0
  441. package/dist/components/inputs/TextareaField/TextareaField.js +40 -0
  442. package/dist/components/inputs/TextareaField/TextareaField.js.map +1 -0
  443. package/dist/components/inputs/TextareaField/index.d.ts +2 -0
  444. package/dist/components/inputs/internal/FieldContext.d.ts +60 -0
  445. package/dist/components/inputs/internal/FieldContext.js +32 -0
  446. package/dist/components/inputs/internal/FieldContext.js.map +1 -0
  447. package/dist/components/inputs/internal/control.module.js +6 -0
  448. package/dist/components/inputs/internal/control.module.js.map +1 -0
  449. package/dist/components/inputs/internal/errors.d.ts +5 -0
  450. package/dist/components/inputs/internal/errors.js +11 -0
  451. package/dist/components/inputs/internal/errors.js.map +1 -0
  452. package/dist/components/inputs/internal/fieldProps.d.ts +12 -0
  453. package/dist/components/inputs/internal/fieldProps.js +25 -0
  454. package/dist/components/inputs/internal/fieldProps.js.map +1 -0
  455. package/dist/components/inputs/internal/filterOptions.d.ts +23 -0
  456. package/dist/components/inputs/internal/filterOptions.js +28 -0
  457. package/dist/components/inputs/internal/filterOptions.js.map +1 -0
  458. package/dist/components/inputs/internal/messages.d.ts +40 -0
  459. package/dist/components/inputs/internal/messages.js +58 -0
  460. package/dist/components/inputs/internal/messages.js.map +1 -0
  461. package/dist/components/inputs/internal/messages.module.js +18 -0
  462. package/dist/components/inputs/internal/messages.module.js.map +1 -0
  463. package/dist/components/inputs/internal/refs.d.ts +7 -0
  464. package/dist/components/inputs/internal/refs.js +19 -0
  465. package/dist/components/inputs/internal/refs.js.map +1 -0
  466. package/dist/components/inputs/internal/storyData.d.ts +4 -0
  467. package/dist/components/inputs/internal/useLatest.d.ts +7 -0
  468. package/dist/components/inputs/internal/useLatest.js +13 -0
  469. package/dist/components/inputs/internal/useLatest.js.map +1 -0
  470. package/dist/components/layout/ActionBar/ActionBar.d.ts +30 -0
  471. package/dist/components/layout/ActionBar/ActionBar.js +25 -0
  472. package/dist/components/layout/ActionBar/ActionBar.js.map +1 -0
  473. package/dist/components/layout/ActionBar/ActionBar.module.js +6 -0
  474. package/dist/components/layout/ActionBar/ActionBar.module.js.map +1 -0
  475. package/dist/components/layout/ActionBar/index.d.ts +2 -0
  476. package/dist/components/layout/AppShell/AppShell.d.ts +33 -0
  477. package/dist/components/layout/AppShell/AppShell.js +70 -0
  478. package/dist/components/layout/AppShell/AppShell.js.map +1 -0
  479. package/dist/components/layout/AppShell/AppShell.module.js +14 -0
  480. package/dist/components/layout/AppShell/AppShell.module.js.map +1 -0
  481. package/dist/components/layout/AppShell/index.d.ts +2 -0
  482. package/dist/components/layout/AspectRatio/AspectRatio.d.ts +14 -0
  483. package/dist/components/layout/AspectRatio/AspectRatio.js +18 -0
  484. package/dist/components/layout/AspectRatio/AspectRatio.js.map +1 -0
  485. package/dist/components/layout/AspectRatio/AspectRatio.module.js +6 -0
  486. package/dist/components/layout/AspectRatio/AspectRatio.module.js.map +1 -0
  487. package/dist/components/layout/AspectRatio/index.d.ts +2 -0
  488. package/dist/components/layout/Box/Box.d.ts +29 -0
  489. package/dist/components/layout/Box/Box.js +26 -0
  490. package/dist/components/layout/Box/Box.js.map +1 -0
  491. package/dist/components/layout/Box/Box.module.js +6 -0
  492. package/dist/components/layout/Box/Box.module.js.map +1 -0
  493. package/dist/components/layout/Box/index.d.ts +2 -0
  494. package/dist/components/layout/Container/Container.d.ts +21 -0
  495. package/dist/components/layout/Container/Container.js +22 -0
  496. package/dist/components/layout/Container/Container.js.map +1 -0
  497. package/dist/components/layout/Container/Container.module.js +6 -0
  498. package/dist/components/layout/Container/Container.module.js.map +1 -0
  499. package/dist/components/layout/Container/index.d.ts +2 -0
  500. package/dist/components/layout/Divider/Divider.d.ts +28 -0
  501. package/dist/components/layout/Divider/Divider.js +35 -0
  502. package/dist/components/layout/Divider/Divider.js.map +1 -0
  503. package/dist/components/layout/Divider/Divider.module.js +9 -0
  504. package/dist/components/layout/Divider/Divider.module.js.map +1 -0
  505. package/dist/components/layout/Divider/index.d.ts +2 -0
  506. package/dist/components/layout/Grid/Grid.d.ts +50 -0
  507. package/dist/components/layout/Grid/Grid.js +35 -0
  508. package/dist/components/layout/Grid/Grid.js.map +1 -0
  509. package/dist/components/layout/Grid/Grid.module.js +9 -0
  510. package/dist/components/layout/Grid/Grid.module.js.map +1 -0
  511. package/dist/components/layout/Grid/index.d.ts +2 -0
  512. package/dist/components/layout/Inline/Inline.d.ts +24 -0
  513. package/dist/components/layout/Inline/Inline.js +25 -0
  514. package/dist/components/layout/Inline/Inline.js.map +1 -0
  515. package/dist/components/layout/Inline/Inline.module.js +6 -0
  516. package/dist/components/layout/Inline/Inline.module.js.map +1 -0
  517. package/dist/components/layout/Inline/index.d.ts +2 -0
  518. package/dist/components/layout/Section/Section.d.ts +30 -0
  519. package/dist/components/layout/Section/Section.js +25 -0
  520. package/dist/components/layout/Section/Section.js.map +1 -0
  521. package/dist/components/layout/Section/Section.module.js +6 -0
  522. package/dist/components/layout/Section/Section.module.js.map +1 -0
  523. package/dist/components/layout/Section/index.d.ts +2 -0
  524. package/dist/components/layout/Split/Split.d.ts +32 -0
  525. package/dist/components/layout/Split/Split.js +26 -0
  526. package/dist/components/layout/Split/Split.js.map +1 -0
  527. package/dist/components/layout/Split/Split.module.js +6 -0
  528. package/dist/components/layout/Split/Split.module.js.map +1 -0
  529. package/dist/components/layout/Split/index.d.ts +2 -0
  530. package/dist/components/layout/Stack/Stack.d.ts +21 -0
  531. package/dist/components/layout/Stack/Stack.js +25 -0
  532. package/dist/components/layout/Stack/Stack.js.map +1 -0
  533. package/dist/components/layout/Stack/Stack.module.js +6 -0
  534. package/dist/components/layout/Stack/Stack.module.js.map +1 -0
  535. package/dist/components/layout/Stack/index.d.ts +2 -0
  536. package/dist/components/layout/VisuallyHidden/VisuallyHidden.d.ts +20 -0
  537. package/dist/components/layout/VisuallyHidden/VisuallyHidden.js +17 -0
  538. package/dist/components/layout/VisuallyHidden/VisuallyHidden.js.map +1 -0
  539. package/dist/components/layout/VisuallyHidden/VisuallyHidden.module.js +6 -0
  540. package/dist/components/layout/VisuallyHidden/VisuallyHidden.module.js.map +1 -0
  541. package/dist/components/layout/VisuallyHidden/index.d.ts +2 -0
  542. package/dist/components/navigation/Accordion/Accordion.d.ts +35 -0
  543. package/dist/components/navigation/Accordion/Accordion.js +68 -0
  544. package/dist/components/navigation/Accordion/Accordion.js.map +1 -0
  545. package/dist/components/navigation/Accordion/Accordion.module.js +17 -0
  546. package/dist/components/navigation/Accordion/Accordion.module.js.map +1 -0
  547. package/dist/components/navigation/Accordion/index.d.ts +2 -0
  548. package/dist/components/navigation/BottomNav/BottomNav.d.ts +42 -0
  549. package/dist/components/navigation/BottomNav/BottomNav.js +67 -0
  550. package/dist/components/navigation/BottomNav/BottomNav.js.map +1 -0
  551. package/dist/components/navigation/BottomNav/BottomNav.module.js +16 -0
  552. package/dist/components/navigation/BottomNav/BottomNav.module.js.map +1 -0
  553. package/dist/components/navigation/BottomNav/index.d.ts +2 -0
  554. package/dist/components/navigation/NavLinks/NavLinks.d.ts +32 -0
  555. package/dist/components/navigation/NavLinks/NavLinks.js +57 -0
  556. package/dist/components/navigation/NavLinks/NavLinks.js.map +1 -0
  557. package/dist/components/navigation/NavLinks/NavLinks.module.js +11 -0
  558. package/dist/components/navigation/NavLinks/NavLinks.module.js.map +1 -0
  559. package/dist/components/navigation/NavLinks/index.d.ts +2 -0
  560. package/dist/components/navigation/Stepper/Stepper.d.ts +45 -0
  561. package/dist/components/navigation/Stepper/Stepper.js +93 -0
  562. package/dist/components/navigation/Stepper/Stepper.js.map +1 -0
  563. package/dist/components/navigation/Stepper/Stepper.module.js +19 -0
  564. package/dist/components/navigation/Stepper/Stepper.module.js.map +1 -0
  565. package/dist/components/navigation/Stepper/index.d.ts +2 -0
  566. package/dist/components/navigation/Tabs/Tabs.d.ts +31 -0
  567. package/dist/components/navigation/Tabs/Tabs.js +47 -0
  568. package/dist/components/navigation/Tabs/Tabs.js.map +1 -0
  569. package/dist/components/navigation/Tabs/Tabs.module.js +11 -0
  570. package/dist/components/navigation/Tabs/Tabs.module.js.map +1 -0
  571. package/dist/components/navigation/Tabs/index.d.ts +2 -0
  572. package/dist/components/overlays/Dialog/Dialog.d.ts +49 -0
  573. package/dist/components/overlays/Dialog/Dialog.js +97 -0
  574. package/dist/components/overlays/Dialog/Dialog.js.map +1 -0
  575. package/dist/components/overlays/Dialog/Dialog.module.js +17 -0
  576. package/dist/components/overlays/Dialog/Dialog.module.js.map +1 -0
  577. package/dist/components/overlays/Dialog/index.d.ts +2 -0
  578. package/dist/components/overlays/DropdownMenu/DropdownMenu.d.ts +62 -0
  579. package/dist/components/overlays/DropdownMenu/DropdownMenu.js +172 -0
  580. package/dist/components/overlays/DropdownMenu/DropdownMenu.js.map +1 -0
  581. package/dist/components/overlays/DropdownMenu/DropdownMenu.module.js +19 -0
  582. package/dist/components/overlays/DropdownMenu/DropdownMenu.module.js.map +1 -0
  583. package/dist/components/overlays/DropdownMenu/index.d.ts +2 -0
  584. package/dist/components/overlays/OverlayClose.d.ts +7 -0
  585. package/dist/components/overlays/OverlayClose.js +20 -0
  586. package/dist/components/overlays/OverlayClose.js.map +1 -0
  587. package/dist/components/overlays/OverlayClose.module.js +6 -0
  588. package/dist/components/overlays/OverlayClose.module.js.map +1 -0
  589. package/dist/components/overlays/Popover/Popover.d.ts +31 -0
  590. package/dist/components/overlays/Popover/Popover.js +75 -0
  591. package/dist/components/overlays/Popover/Popover.js.map +1 -0
  592. package/dist/components/overlays/Popover/Popover.module.js +13 -0
  593. package/dist/components/overlays/Popover/Popover.module.js.map +1 -0
  594. package/dist/components/overlays/Popover/index.d.ts +2 -0
  595. package/dist/components/overlays/Sheet/Sheet.d.ts +56 -0
  596. package/dist/components/overlays/Sheet/Sheet.js +105 -0
  597. package/dist/components/overlays/Sheet/Sheet.js.map +1 -0
  598. package/dist/components/overlays/Sheet/Sheet.module.js +20 -0
  599. package/dist/components/overlays/Sheet/Sheet.module.js.map +1 -0
  600. package/dist/components/overlays/Sheet/index.d.ts +2 -0
  601. package/dist/components/overlays/Tooltip/Tooltip.d.ts +35 -0
  602. package/dist/components/overlays/Tooltip/Tooltip.js +64 -0
  603. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -0
  604. package/dist/components/overlays/Tooltip/Tooltip.module.js +11 -0
  605. package/dist/components/overlays/Tooltip/Tooltip.module.js.map +1 -0
  606. package/dist/components/overlays/Tooltip/index.d.ts +2 -0
  607. package/dist/components/overlays/usePortalTheme.d.ts +44 -0
  608. package/dist/components/overlays/usePortalTheme.js +62 -0
  609. package/dist/components/overlays/usePortalTheme.js.map +1 -0
  610. package/dist/components/typography/Amount/Amount.d.ts +27 -0
  611. package/dist/components/typography/Amount/Amount.js +67 -0
  612. package/dist/components/typography/Amount/Amount.js.map +1 -0
  613. package/dist/components/typography/Amount/Amount.module.js +6 -0
  614. package/dist/components/typography/Amount/Amount.module.js.map +1 -0
  615. package/dist/components/typography/Amount/index.d.ts +2 -0
  616. package/dist/components/typography/Code/Code.d.ts +13 -0
  617. package/dist/components/typography/Code/Code.js +18 -0
  618. package/dist/components/typography/Code/Code.js.map +1 -0
  619. package/dist/components/typography/Code/Code.module.js +6 -0
  620. package/dist/components/typography/Code/Code.module.js.map +1 -0
  621. package/dist/components/typography/Code/index.d.ts +2 -0
  622. package/dist/components/typography/Heading/Heading.d.ts +34 -0
  623. package/dist/components/typography/Heading/Heading.js +46 -0
  624. package/dist/components/typography/Heading/Heading.js.map +1 -0
  625. package/dist/components/typography/Heading/Heading.module.js +6 -0
  626. package/dist/components/typography/Heading/Heading.module.js.map +1 -0
  627. package/dist/components/typography/Heading/index.d.ts +4 -0
  628. package/dist/components/typography/Heading/sizes.d.ts +4 -0
  629. package/dist/components/typography/Heading/sizes.js +13 -0
  630. package/dist/components/typography/Heading/sizes.js.map +1 -0
  631. package/dist/components/typography/Kbd/Kbd.d.ts +11 -0
  632. package/dist/components/typography/Kbd/Kbd.js +18 -0
  633. package/dist/components/typography/Kbd/Kbd.js.map +1 -0
  634. package/dist/components/typography/Kbd/Kbd.module.js +6 -0
  635. package/dist/components/typography/Kbd/Kbd.module.js.map +1 -0
  636. package/dist/components/typography/Kbd/index.d.ts +2 -0
  637. package/dist/components/typography/Link/Link.d.ts +26 -0
  638. package/dist/components/typography/Link/Link.js +32 -0
  639. package/dist/components/typography/Link/Link.js.map +1 -0
  640. package/dist/components/typography/Link/Link.module.js +11 -0
  641. package/dist/components/typography/Link/Link.module.js.map +1 -0
  642. package/dist/components/typography/Link/index.d.ts +2 -0
  643. package/dist/components/typography/Numeral/Numeral.d.ts +29 -0
  644. package/dist/components/typography/Numeral/Numeral.js +41 -0
  645. package/dist/components/typography/Numeral/Numeral.js.map +1 -0
  646. package/dist/components/typography/Numeral/Numeral.module.js +9 -0
  647. package/dist/components/typography/Numeral/Numeral.module.js.map +1 -0
  648. package/dist/components/typography/Numeral/format.d.ts +16 -0
  649. package/dist/components/typography/Numeral/format.js +30 -0
  650. package/dist/components/typography/Numeral/format.js.map +1 -0
  651. package/dist/components/typography/Numeral/index.d.ts +4 -0
  652. package/dist/components/typography/Prose/Prose.d.ts +16 -0
  653. package/dist/components/typography/Prose/Prose.js +17 -0
  654. package/dist/components/typography/Prose/Prose.js.map +1 -0
  655. package/dist/components/typography/Prose/Prose.module.js +6 -0
  656. package/dist/components/typography/Prose/Prose.module.js.map +1 -0
  657. package/dist/components/typography/Prose/index.d.ts +2 -0
  658. package/dist/components/typography/Quote/Quote.d.ts +20 -0
  659. package/dist/components/typography/Quote/Quote.js +34 -0
  660. package/dist/components/typography/Quote/Quote.js.map +1 -0
  661. package/dist/components/typography/Quote/Quote.module.js +11 -0
  662. package/dist/components/typography/Quote/Quote.module.js.map +1 -0
  663. package/dist/components/typography/Quote/index.d.ts +2 -0
  664. package/dist/components/typography/SectionHeader/SectionHeader.d.ts +33 -0
  665. package/dist/components/typography/SectionHeader/SectionHeader.js +42 -0
  666. package/dist/components/typography/SectionHeader/SectionHeader.js.map +1 -0
  667. package/dist/components/typography/SectionHeader/SectionHeader.module.js +13 -0
  668. package/dist/components/typography/SectionHeader/SectionHeader.module.js.map +1 -0
  669. package/dist/components/typography/SectionHeader/index.d.ts +2 -0
  670. package/dist/components/typography/Text/Text.d.ts +35 -0
  671. package/dist/components/typography/Text/Text.js +27 -0
  672. package/dist/components/typography/Text/Text.js.map +1 -0
  673. package/dist/components/typography/Text/Text.module.js +6 -0
  674. package/dist/components/typography/Text/Text.module.js.map +1 -0
  675. package/dist/components/typography/Text/index.d.ts +2 -0
  676. package/dist/icons/Icon.d.ts +14 -0
  677. package/dist/icons/Icon.js +30 -0
  678. package/dist/icons/Icon.js.map +1 -0
  679. package/dist/icons/Icon.module.js +6 -0
  680. package/dist/icons/Icon.module.js.map +1 -0
  681. package/dist/icons/icons.d.ts +26 -0
  682. package/dist/icons/icons.js +63 -0
  683. package/dist/icons/icons.js.map +1 -0
  684. package/dist/icons/index.d.ts +3 -0
  685. package/dist/index.d.ts +225 -0
  686. package/dist/index.js +117 -0
  687. package/dist/styles.css +2 -0
  688. package/dist/stylesheets.d.ts +10 -0
  689. package/dist/theme/ThemeProvider.d.ts +52 -0
  690. package/dist/theme/ThemeProvider.js +86 -0
  691. package/dist/theme/ThemeProvider.js.map +1 -0
  692. package/dist/theme/context.d.ts +20 -0
  693. package/dist/theme/context.js +19 -0
  694. package/dist/theme/context.js.map +1 -0
  695. package/dist/theme/index.d.ts +6 -0
  696. package/dist/theme/themes.d.ts +31 -0
  697. package/dist/theme/themes.js +36 -0
  698. package/dist/theme/themes.js.map +1 -0
  699. package/dist/themes/fiesta.css +1 -0
  700. package/dist/themes/ledger.css +1 -0
  701. package/dist/themes/monograph.css +1 -0
  702. package/dist/utils/cx.d.ts +5 -0
  703. package/dist/utils/cx.js +8 -0
  704. package/dist/utils/cx.js.map +1 -0
  705. package/dist/utils/heading.d.ts +13 -0
  706. package/dist/utils/heading.js +16 -0
  707. package/dist/utils/heading.js.map +1 -0
  708. package/dist/utils/index.d.ts +7 -0
  709. package/dist/utils/responsive.d.ts +28 -0
  710. package/dist/utils/responsive.js +40 -0
  711. package/dist/utils/responsive.js.map +1 -0
  712. package/dist/utils/tokens.d.ts +18 -0
  713. package/dist/utils/tokens.js +6 -0
  714. package/dist/utils/tokens.js.map +1 -0
  715. package/dist/utils/visibility.d.ts +14 -0
  716. package/dist/utils/visibility.js +21 -0
  717. package/dist/utils/visibility.js.map +1 -0
  718. package/dist/utils/visibility.module.js +16 -0
  719. package/dist/utils/visibility.module.js.map +1 -0
  720. package/package.json +91 -0
  721. package/skills/custom-theme/SKILL.md +293 -0
  722. package/skills/custom-theme/references/colour.md +55 -0
  723. package/skills/custom-theme/references/motion.md +39 -0
  724. package/skills/custom-theme/references/tokens.md +199 -0
  725. package/skills/custom-theme/references/type.md +61 -0
  726. package/skills/design-rules/SKILL.md +74 -0
  727. package/skills/layout-composition/SKILL.md +498 -0
  728. package/skills/layout-composition/references/action-bar.md +59 -0
  729. package/skills/layout-composition/references/app-shell.md +141 -0
  730. package/skills/layout-composition/references/aspect-ratio.md +49 -0
  731. package/skills/layout-composition/references/box.md +49 -0
  732. package/skills/layout-composition/references/checkout.md +124 -0
  733. package/skills/layout-composition/references/container.md +59 -0
  734. package/skills/layout-composition/references/dashboard.md +163 -0
  735. package/skills/layout-composition/references/divider.md +59 -0
  736. package/skills/layout-composition/references/settings.md +134 -0
  737. package/skills/layout-composition/references/visually-hidden.md +41 -0
  738. package/skills/setup-and-theming/SKILL.md +197 -0
  739. package/skills/setup-and-theming/references/fiesta.md +32 -0
  740. package/skills/setup-and-theming/references/ledger.md +32 -0
  741. package/skills/setup-and-theming/references/monograph.md +39 -0
  742. package/skills/setup-and-theming/references/paper.md +35 -0
@@ -0,0 +1,394 @@
1
+ import { cx as e } from "../../../utils/cx.js";
2
+ import { CheckIcon as t, ChevronDownIcon as n, CloseIcon as r } from "../../../icons/icons.js";
3
+ import { Spinner as i } from "../../feedback/Spinner/Spinner.js";
4
+ import { useMergedRefs as a } from "../internal/refs.js";
5
+ import { markFieldAware as o, useResolvedField as ee } from "../internal/FieldContext.js";
6
+ import te from "../internal/messages.module.js";
7
+ import ne from "../internal/control.module.js";
8
+ import { Tag as re, TagList as ie } from "../../display/Tag/Tag.js";
9
+ import { PortalAnchorContext as ae, usePortalTheme as oe } from "../../overlays/usePortalTheme.js";
10
+ import { filterOptions as s, foldText as se } from "../internal/filterOptions.js";
11
+ import { useControllableState as c } from "./useControllableState.js";
12
+ import l from "./Combobox.module.js";
13
+ import { forwardRef as u, useCallback as d, useEffect as f, useId as ce, useMemo as le, useRef as p, useState as m } from "react";
14
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
15
+ import { Popover as _ } from "radix-ui";
16
+ //#region src/components/inputs/Combobox/Combobox.tsx
17
+ function ue(e, t, n) {
18
+ let r = n ? s(e, t) : [...e], i = [], a = /* @__PURE__ */ new Map();
19
+ for (let e of r) {
20
+ let t = e.group === void 0 ? "" : `g:${e.group}`, n = a.get(t);
21
+ n || (n = {
22
+ key: t,
23
+ label: e.group,
24
+ options: []
25
+ }, a.set(t, n), i.push(n)), n.options.push(e);
26
+ }
27
+ return {
28
+ sections: i,
29
+ ordered: i.flatMap((e) => e.options)
30
+ };
31
+ }
32
+ var v = (e) => `Remove ${e}`;
33
+ function de(e) {
34
+ if (e.multiple === !0) {
35
+ let { multiple: t, value: n, defaultValue: r, onValueChange: i, maxSelected: a, removeLabel: o, ...ee } = e;
36
+ return [ee, {
37
+ multiple: t,
38
+ value: n,
39
+ defaultValue: r ?? [],
40
+ emit: (e) => i?.([...e]),
41
+ maxSelected: a,
42
+ removeLabel: o ?? v
43
+ }];
44
+ }
45
+ let { multiple: t, value: n, defaultValue: r, onValueChange: i, ...a } = e;
46
+ return [a, {
47
+ multiple: !!t,
48
+ value: n === void 0 ? void 0 : n === null ? [] : [n],
49
+ defaultValue: r == null ? [] : [r],
50
+ emit: (e) => i?.(e[0] ?? null),
51
+ maxSelected: void 0,
52
+ removeLabel: v
53
+ }];
54
+ }
55
+ function fe(e) {
56
+ let t = e?.closest("[data-theme]");
57
+ return t && t !== e?.ownerDocument.documentElement ? t : void 0;
58
+ }
59
+ function pe(e) {
60
+ return `${String(e)} ${e === 1 ? "option" : "options"} available`;
61
+ }
62
+ var me = u(function({ children: e, onInteractOutside: t }, n) {
63
+ let r = oe();
64
+ return /* @__PURE__ */ h(_.Content, {
65
+ ref: n,
66
+ className: l.popup,
67
+ role: void 0,
68
+ side: "bottom",
69
+ align: "start",
70
+ sideOffset: 6,
71
+ collisionPadding: 8,
72
+ onOpenAutoFocus: (e) => {
73
+ e.preventDefault();
74
+ },
75
+ onCloseAutoFocus: (e) => {
76
+ e.preventDefault();
77
+ },
78
+ onEscapeKeyDown: (e) => {
79
+ e.preventDefault();
80
+ },
81
+ onInteractOutside: t,
82
+ onMouseDown: (e) => {
83
+ e.preventDefault();
84
+ },
85
+ ...r,
86
+ children: e
87
+ });
88
+ }), he = o(u(function(o, oe) {
89
+ let [s, u] = de(o), { options: v, inputValue: he, defaultInputValue: ge, onInputValueChange: _e, filter: ve = "auto", loading: y = !1, loadingMessage: ye = "Loading…", emptyMessage: b = "No matches", open: be, defaultOpen: xe = !1, onOpenChange: Se, creatable: x = !1, clearable: Ce = !1, clearLabel: we = "Clear", size: Te = "md", invalid: Ee, id: De, disabled: Oe, required: ke, readOnly: Ae, name: S, form: je, placeholder: Me, className: Ne, style: Pe, onKeyDown: Fe, onBlur: Ie, onClick: Le, "aria-describedby": Re, "aria-invalid": ze, "aria-label": Be, "aria-labelledby": Ve, ...He } = s, { multiple: C, maxSelected: Ue, removeLabel: We } = u, w = ee({
90
+ id: De,
91
+ describedBy: Re,
92
+ invalid: Ee,
93
+ ariaInvalid: ze,
94
+ required: ke,
95
+ disabled: Oe,
96
+ readOnly: Ae
97
+ }), Ge = ce(), T = w.id ?? `${Ge}combobox`, Ke = `${T}-listbox`, qe = `${T}-status`, E = !w.disabled && !w.readOnly, D = p(null), O = p(null), Je = a(oe, D), k = p(/* @__PURE__ */ new Map());
98
+ for (let e of v) k.current.set(e.value, e.label);
99
+ let A = d((e) => v.find((t) => t.value === e)?.label ?? k.current.get(e) ?? e, [v]), [j, M] = c(u.value, u.defaultValue, u.emit), N = !C && j[0] !== void 0 ? A(j[0]) : "", [P, Ye] = c(he, ge ?? (C || u.defaultValue[0] === void 0 ? "" : A(u.defaultValue[0])), _e), Xe = p(P);
100
+ Xe.current = P;
101
+ let F = d((e) => {
102
+ e !== Xe.current && Ye(e);
103
+ }, [Ye]), [I, L] = m(!1), [R, Ze] = c(be, xe, Se), z = p(R);
104
+ z.current = R;
105
+ let B = d((e) => {
106
+ e !== z.current && Ze(e);
107
+ }, [Ze]), [Qe, V] = m(null);
108
+ f(() => {
109
+ !C && !I && F(N);
110
+ }, [
111
+ C,
112
+ I,
113
+ N,
114
+ F
115
+ ]);
116
+ let $e = ve === "auto" && (C || I), { sections: H, ordered: U } = le(() => ue(v, P, $e), [
117
+ v,
118
+ P,
119
+ $e
120
+ ]), et = le(() => new Map(v.map((e, t) => [e.value, t])), [v]), tt = (e) => `${T}-option-${String(et.get(e) ?? 0)}`, nt = C && Ue !== void 0 && j.length >= Ue, W = (e) => j.includes(e), G = (e) => !!e.disabled || nt && !W(e.value), K = U.filter((e) => !G(e)), q = P.trim(), rt = x && q !== "" && (C || I), it = !y && U.length === 0 && !rt, at = U.length > 0 || y || it, J = R && E && at, ot = J && !y && !x && q !== "" && (C || I), st = K.find((e) => e.value === Qe) ?? (ot ? K[0] : void 0), Y = J ? st : void 0, [ct, lt] = m(""), X = y ? "" : U.length === 0 ? typeof b == "string" ? b : "No matches" : pe(U.length);
121
+ f(() => {
122
+ if (!J || X === "") {
123
+ J || lt("");
124
+ return;
125
+ }
126
+ let e = setTimeout(() => {
127
+ lt(X);
128
+ }, 500);
129
+ return () => {
130
+ clearTimeout(e);
131
+ };
132
+ }, [J, X]);
133
+ let Z = Y ? tt(Y.value) : void 0;
134
+ f(() => {
135
+ Z && (D.current?.ownerDocument.getElementById(Z))?.scrollIntoView({ block: "nearest" });
136
+ }, [Z]);
137
+ let ut = (e) => {
138
+ if (E && !G(e)) {
139
+ if (k.current.set(e.value, e.label), C) {
140
+ let t = W(e.value) ? j.filter((t) => t !== e.value) : [...j, e.value];
141
+ M(t), F(""), L(!1), V(e.value);
142
+ } else M([e.value]), F(e.label), L(!1), V(null), B(!1);
143
+ }
144
+ }, Q = () => {
145
+ if (!x || q === "") return !1;
146
+ let e = se(q), t = v.find((t) => !t.disabled && se(t.label) === e), n = t?.value ?? q, r = t?.label ?? q;
147
+ return k.current.set(n, r), C ? (F(""), L(!1), W(n) || nt ? !1 : (M([...j, n]), !0)) : (L(!1), F(r), j[0] !== n && (M([n]), !0));
148
+ }, dt = (e) => {
149
+ E && M(j.filter((t) => t !== e));
150
+ }, ft = () => {
151
+ E && (M([]), F(""), L(!1), V(null), D.current?.focus());
152
+ }, pt = (e) => K.find((e) => W(e.value)) ?? (e ? K[K.length - 1] : K[0]), mt = (e) => {
153
+ if (K.length === 0) return;
154
+ let t = Y ? K.indexOf(Y) : -1, n = t === -1 ? e === 1 ? K[0] : K[K.length - 1] : K[(t + e + K.length) % K.length];
155
+ V(n?.value ?? null);
156
+ }, $ = (e) => {
157
+ E && (B(!0), e !== "keep" && V(pt(e === "last")?.value ?? null));
158
+ }, ht = (e) => {
159
+ let t = e.target.value;
160
+ F(t), L(!0), V(null), E && B(!0);
161
+ }, gt = (e) => {
162
+ if (Fe?.(e), !e.nativeEvent.isComposing) switch (e.key) {
163
+ case "ArrowDown":
164
+ e.preventDefault(), e.altKey ? $("keep") : J ? mt(1) : $("first");
165
+ return;
166
+ case "ArrowUp":
167
+ e.preventDefault(), e.altKey ? B(!1) : J ? mt(-1) : $("last");
168
+ return;
169
+ case "Home":
170
+ case "End":
171
+ if (!J || K.length === 0) return;
172
+ e.preventDefault(), V((e.key === "Home" ? K[0] : K[K.length - 1])?.value ?? null);
173
+ return;
174
+ case "Enter":
175
+ J && Y ? (e.preventDefault(), ut(Y)) : rt ? (e.preventDefault(), Q(), C || B(!1)) : J && e.preventDefault();
176
+ return;
177
+ case "Escape":
178
+ J ? (e.preventDefault(), B(!1)) : P !== "" && E && (e.preventDefault(), F(""), L(!C));
179
+ return;
180
+ case "Tab":
181
+ B(!1);
182
+ return;
183
+ case "Backspace":
184
+ C && P === "" && E && j.length > 0 && (e.preventDefault(), M(j.slice(0, -1)));
185
+ return;
186
+ }
187
+ }, _t = (e) => {
188
+ let t = e.relatedTarget;
189
+ t && O.current?.contains(t) || (E && (C ? Q() || F("") : I && (x && q !== "" ? Q() : q === "" ? (j.length > 0 && M([]), F("")) : F(N)), L(!1)), B(!1), V(null), Ie?.(e));
190
+ }, vt = (e) => {
191
+ let t = e.target;
192
+ t === D.current || t.closest("button, a, input") || (e.preventDefault(), D.current?.focus(), z.current ? B(!1) : $("keep"));
193
+ }, yt = (e) => {
194
+ Le?.(e), z.current || $("keep");
195
+ }, bt = (e) => {
196
+ let t = e.target;
197
+ t && O.current?.contains(t) && e.preventDefault();
198
+ }, xt = Ve ?? w.labelId, St = !C || j.length === 0, Ct = Ce && E && (j.length > 0 || P !== ""), wt = (e) => {
199
+ let n = W(e.value), r = G(e);
200
+ return /* @__PURE__ */ g("div", {
201
+ id: tt(e.value),
202
+ role: "option",
203
+ "aria-selected": n,
204
+ "aria-disabled": r || void 0,
205
+ className: l.option,
206
+ "data-active": Y?.value === e.value || void 0,
207
+ "data-selected": n || void 0,
208
+ "data-disabled": r || void 0,
209
+ onMouseDown: (e) => {
210
+ e.preventDefault();
211
+ },
212
+ onPointerMove: () => {
213
+ !r && Qe !== e.value && V(e.value);
214
+ },
215
+ onClick: () => {
216
+ ut(e);
217
+ },
218
+ children: [
219
+ C ? /* @__PURE__ */ h("span", {
220
+ className: l.box,
221
+ "aria-hidden": "true",
222
+ children: n ? /* @__PURE__ */ h(t, {}) : null
223
+ }) : null,
224
+ /* @__PURE__ */ g("span", {
225
+ className: l.optionText,
226
+ children: [/* @__PURE__ */ h("span", {
227
+ className: l.optionLabel,
228
+ children: e.label
229
+ }), e.description ? /* @__PURE__ */ h("span", {
230
+ className: l.optionDescription,
231
+ children: e.description
232
+ }) : null]
233
+ }),
234
+ !C && n ? /* @__PURE__ */ h(t, { className: l.check }) : null
235
+ ]
236
+ }, e.value);
237
+ };
238
+ return /* @__PURE__ */ h(_.Root, {
239
+ open: J,
240
+ onOpenChange: (e) => {
241
+ e || B(!1);
242
+ },
243
+ children: /* @__PURE__ */ g(ae.Provider, {
244
+ value: O,
245
+ children: [/* @__PURE__ */ h(_.Anchor, {
246
+ asChild: !0,
247
+ children: /* @__PURE__ */ g("div", {
248
+ ref: O,
249
+ className: e(ne.box, l.root, Ne),
250
+ style: Pe,
251
+ "data-size": Te,
252
+ "data-multiple": C || void 0,
253
+ "data-state": J ? "open" : "closed",
254
+ "data-invalid": w.invalid || void 0,
255
+ "data-disabled": w.disabled || void 0,
256
+ "data-readonly": w.readOnly || void 0,
257
+ onPointerDown: vt,
258
+ onBlur: _t,
259
+ children: [
260
+ /* @__PURE__ */ g("div", {
261
+ className: l.values,
262
+ children: [C && j.length > 0 ? /* @__PURE__ */ h(ie, {
263
+ className: l.chips,
264
+ children: j.map((e) => {
265
+ let t = A(e);
266
+ return /* @__PURE__ */ h(re, {
267
+ className: l.chip,
268
+ onRemove: E ? () => {
269
+ dt(e), D.current?.focus();
270
+ } : void 0,
271
+ removeLabel: We(t),
272
+ children: t
273
+ }, e);
274
+ })
275
+ }) : null, /* @__PURE__ */ h("input", {
276
+ ref: Je,
277
+ id: T,
278
+ type: "text",
279
+ role: "combobox",
280
+ className: l.input,
281
+ value: P,
282
+ placeholder: St ? Me : void 0,
283
+ autoComplete: "off",
284
+ autoCapitalize: "off",
285
+ autoCorrect: "off",
286
+ spellCheck: !1,
287
+ disabled: w.disabled,
288
+ readOnly: w.readOnly,
289
+ "aria-autocomplete": "list",
290
+ "aria-haspopup": "listbox",
291
+ "aria-expanded": J,
292
+ "aria-controls": Ke,
293
+ "aria-activedescendant": Z,
294
+ "aria-label": Be,
295
+ "aria-labelledby": Ve,
296
+ "aria-describedby": w.describedBy,
297
+ "aria-invalid": w.invalid || void 0,
298
+ "aria-required": w.required || void 0,
299
+ "aria-busy": w.busy || void 0,
300
+ ...He,
301
+ onChange: ht,
302
+ onKeyDown: gt,
303
+ onClick: yt
304
+ })]
305
+ }),
306
+ /* @__PURE__ */ g("span", {
307
+ className: l.trailing,
308
+ children: [
309
+ y ? /* @__PURE__ */ h(i, {
310
+ size: "sm",
311
+ label: null,
312
+ className: l.spinner
313
+ }) : null,
314
+ Ct ? /* @__PURE__ */ h("button", {
315
+ type: "button",
316
+ className: l.clear,
317
+ "aria-label": we,
318
+ onMouseDown: (e) => {
319
+ e.preventDefault();
320
+ },
321
+ onClick: ft,
322
+ children: /* @__PURE__ */ h(r, {})
323
+ }) : null,
324
+ /* @__PURE__ */ h(n, { className: l.chevron })
325
+ ]
326
+ }),
327
+ S === void 0 ? null : C ? j.map((e) => /* @__PURE__ */ h("input", {
328
+ type: "hidden",
329
+ name: S,
330
+ value: e,
331
+ form: je,
332
+ disabled: w.disabled || void 0
333
+ }, e)) : /* @__PURE__ */ h("input", {
334
+ type: "hidden",
335
+ name: S,
336
+ value: j[0] ?? "",
337
+ form: je,
338
+ disabled: w.disabled || void 0
339
+ }),
340
+ /* @__PURE__ */ h("div", {
341
+ id: qe,
342
+ role: "status",
343
+ "aria-live": "polite",
344
+ className: te.visuallyHidden,
345
+ children: ct
346
+ })
347
+ ]
348
+ })
349
+ }), /* @__PURE__ */ h(_.Portal, {
350
+ container: J ? fe(O.current) : void 0,
351
+ children: /* @__PURE__ */ g(me, {
352
+ onInteractOutside: bt,
353
+ children: [
354
+ /* @__PURE__ */ h("div", {
355
+ id: Ke,
356
+ role: "listbox",
357
+ "aria-labelledby": xt,
358
+ "aria-label": xt ? void 0 : Be,
359
+ "aria-multiselectable": C || void 0,
360
+ "aria-busy": y || void 0,
361
+ className: l.listbox,
362
+ children: H.map((e) => e.label === void 0 ? e.options.map(wt) : /* @__PURE__ */ g("div", {
363
+ role: "group",
364
+ "aria-labelledby": `${T}-group-${String(H.indexOf(e))}`,
365
+ className: l.group,
366
+ children: [/* @__PURE__ */ h("div", {
367
+ id: `${T}-group-${String(H.indexOf(e))}`,
368
+ role: "presentation",
369
+ className: l.groupLabel,
370
+ children: e.label
371
+ }), e.options.map(wt)]
372
+ }, e.key))
373
+ }),
374
+ y && U.length === 0 ? /* @__PURE__ */ g("div", {
375
+ className: l.message,
376
+ children: [/* @__PURE__ */ h(i, {
377
+ size: "sm",
378
+ label: null
379
+ }), /* @__PURE__ */ h("span", { children: ye })]
380
+ }) : null,
381
+ it ? /* @__PURE__ */ h("div", {
382
+ className: l.message,
383
+ children: b
384
+ }) : null
385
+ ]
386
+ })
387
+ })]
388
+ })
389
+ });
390
+ }));
391
+ //#endregion
392
+ export { he as Combobox };
393
+
394
+ //# sourceMappingURL=Combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.js","names":["PopoverPrimitive","styles","control","messageStyles","messages_module_default","control_module_default","Combobox_module_default","buildView","matched","shouldFilter","filterOptions","options","query","sections","byKey","option","key","section","defaultRemoveLabel","label","splitMode","props","base","defaultValue","onValueChange","next","removeLabel","multiple","value","themeScopeOf","scope","node","countMessage","count","ComboboxPopup","forwardRef","theme","usePortalTheme","Popover","Combobox","markFieldAware","mode","inputValueProp","openProp","invalidProp","idProp","disabledProp","requiredProp","readOnlyProp","describedByProp","ariaInvalid","ariaLabel","ariaLabelledBy","rest","field","useResolvedField","autoId","useId","inputId","listboxId","statusId","interactive","inputRef","useRef","boxRef","composedInputRef","useMergedRefs","ref","labelCache","labelOf","useCallback","values","setValues","useControllableState","selectedLabel","setQueryState","defaultInputValue","onInputValueChange","queryRef","setQuery","dirty","setDirty","useState","openState","setOpenState","defaultOpen","onOpenChange","openRef","setOpen","activeValue","setActiveValue","filter","useMemo","indexOf","index","optionId","atMax","maxSelected","isSelected","isDisabled","enabled","ordered","trimmedQuery","freeText","creatable","showEmpty","loading","hasPopupContent","expanded","autoHighlight","activeOption","active","announcement","setAnnouncement","countText","emptyMessage","timer","activeId","selectOption","commitText","folded","foldText","match","removeValue","v","clear","initialActive","fromEnd","move","delta","openList","highlight","handleChange","text","event","handleKeyDown","onKeyDown","handleBlur","onBlur","handleBoxPointerDown","target","handleInputClick","onClick","handleInteractOutside","listLabelledBy","showPlaceholder","canClear","clearable","renderOption","selected","disabled","CheckIcon","PortalAnchorContext","cx","className","size","TagList","Tag","placeholder","Spinner","clearLabel","CloseIcon","ChevronDownIcon","name","loadingMessage"],"sources":["../../../../src/components/inputs/Combobox/Combobox.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type FocusEvent,\n type FocusEventHandler,\n type InputHTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type PointerEvent,\n type ReactNode,\n} from 'react'\nimport { Popover as PopoverPrimitive } from 'radix-ui'\nimport { CheckIcon, ChevronDownIcon, CloseIcon } from '#icons'\nimport { cx } from '#utils/cx'\nimport type { Size } from '#utils/tokens'\nimport { Spinner } from '#components/feedback/Spinner'\nimport { Tag, TagList } from '#components/display/Tag'\nimport { PortalAnchorContext, usePortalTheme } from '#components/overlays/usePortalTheme'\nimport { markFieldAware, useResolvedField } from '#components/inputs/internal/FieldContext'\nimport { filterOptions, foldText } from '#components/inputs/internal/filterOptions'\nimport { useMergedRefs } from '#components/inputs/internal/refs'\nimport control from '#components/inputs/internal/control.module.css'\nimport messageStyles from '#components/inputs/internal/messages.module.css'\nimport { useControllableState } from './useControllableState'\nimport styles from './Combobox.module.css'\n\nexport interface ComboboxOption {\n value: string\n label: string\n /** A second, quieter line under the label. Also searched. */\n description?: string\n /** Extra search terms that aren't shown (\"USA\", \"Holland\"). An exact keyword ranks first. */\n keywords?: readonly string[]\n /** Heading the option is listed under. Groups appear in order of their first option. */\n group?: string\n disabled?: boolean\n}\n\nexport interface ComboboxBase extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'defaultValue' | 'onChange' | 'size' | 'type' | 'multiple' | 'onBlur'\n> {\n options: readonly ComboboxOption[]\n /** The text in the box (the query). Controlled. */\n inputValue?: string\n defaultInputValue?: string\n onInputValueChange?: (query: string) => void\n /**\n * `auto` (default) filters and ranks `options` by the query. `none` shows `options` as\n * given — for async search, where the loader has already filtered.\n */\n filter?: 'auto' | 'none'\n /** Options are being fetched: a spinner in the box and `loadingMessage` in an empty list. */\n loading?: boolean\n loadingMessage?: ReactNode\n /** Shown in the list when nothing matches. Default \"No matches\". */\n emptyMessage?: ReactNode\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n /**\n * Free text is allowed: whatever is typed becomes the value when committed (Enter, or\n * leaving the field). A typed label that matches an option picks that option instead.\n */\n creatable?: boolean\n /** Shows a clear button while there's a value. */\n clearable?: boolean\n /** Accessible name of the clear button. Default \"Clear\". */\n clearLabel?: string\n size?: Size\n /** Critical border + `aria-invalid`. Inside a `<Field error>` this is set for you. */\n invalid?: boolean\n /** Fires once focus leaves the whole control (input, chips, clear button, list). */\n onBlur?: FocusEventHandler<HTMLElement>\n}\n\nexport interface ComboboxSingleProps extends ComboboxBase {\n multiple?: false\n value?: string | null\n defaultValue?: string | null\n onValueChange?: (value: string | null) => void\n}\n\nexport interface ComboboxMultipleProps extends ComboboxBase {\n multiple: true\n value?: readonly string[]\n defaultValue?: readonly string[]\n onValueChange?: (value: string[]) => void\n /** Once this many are chosen, the rest of the list is disabled. */\n maxSelected?: number\n /** Accessible name of a chip's remove button. Default `Remove <label>`. */\n removeLabel?: (label: string) => string\n}\n\nexport type ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps\n\n/* ─── Pure helpers ────────────────────────────────────────────────────────── */\n\ninterface Section {\n key: string\n label?: string\n options: ComboboxOption[]\n}\n\n/** Visible options, in groups (ordered by each group's first/best option), and flattened. */\nfunction buildView(options: readonly ComboboxOption[], query: string, shouldFilter: boolean) {\n const matched = shouldFilter ? filterOptions(options, query) : [...options]\n const sections: Section[] = []\n const byKey = new Map<string, Section>()\n for (const option of matched) {\n const key = option.group === undefined ? '' : `g:${option.group}`\n let section = byKey.get(key)\n if (!section) {\n section = { key, label: option.group, options: [] }\n byKey.set(key, section)\n sections.push(section)\n }\n section.options.push(option)\n }\n return { sections, ordered: sections.flatMap((section) => section.options) }\n}\n\ninterface ModeProps {\n multiple: boolean\n value: readonly string[] | undefined\n defaultValue: readonly string[]\n emit: (next: readonly string[]) => void\n maxSelected: number | undefined\n removeLabel: (label: string) => string\n}\n\nconst defaultRemoveLabel = (label: string) => `Remove ${label}`\n\n/** Splits the single/multiple union into one normalised shape (values are always arrays). */\nfunction splitMode(props: ComboboxProps): [ComboboxBase, ModeProps] {\n if (props.multiple === true) {\n const { multiple, value, defaultValue, onValueChange, maxSelected, removeLabel, ...base } =\n props\n return [\n base,\n {\n multiple,\n value,\n defaultValue: defaultValue ?? [],\n emit: (next) => onValueChange?.([...next]),\n maxSelected,\n removeLabel: removeLabel ?? defaultRemoveLabel,\n },\n ]\n }\n const { multiple, value, defaultValue, onValueChange, ...base } = props\n return [\n base,\n {\n multiple: Boolean(multiple),\n value: value === undefined ? undefined : value === null ? [] : [value],\n defaultValue: defaultValue == null ? [] : [defaultValue],\n emit: (next) => onValueChange?.(next[0] ?? null),\n maxSelected: undefined,\n removeLabel: defaultRemoveLabel,\n },\n ]\n}\n\n/** The nearest theme scope below `<html>` — the portal target, so the list opens in that theme. */\nfunction themeScopeOf(node: HTMLElement | null): HTMLElement | undefined {\n const scope = node?.closest<HTMLElement>('[data-theme]')\n return scope && scope !== node?.ownerDocument.documentElement ? scope : undefined\n}\n\nfunction countMessage(count: number): string {\n return `${String(count)} ${count === 1 ? 'option' : 'options'} available`\n}\n\n/* ─── Popup (mounts on open, so it reads the theme at open time) ─────────── */\n\ninterface PopupProps {\n children: ReactNode\n onInteractOutside: (event: Event) => void\n}\n\n// forwardRef: Radix Presence hands the popup a ref (React 18 warns without it).\nconst ComboboxPopup = forwardRef<HTMLDivElement, PopupProps>(function ComboboxPopup(\n { children, onInteractOutside },\n ref,\n) {\n const theme = usePortalTheme()\n return (\n <PopoverPrimitive.Content\n ref={ref}\n className={styles.popup}\n // A wrapper, not a dialog: the listbox inside carries the semantics.\n role={undefined}\n side=\"bottom\"\n align=\"start\"\n sideOffset={6}\n collisionPadding={8}\n // Focus never leaves the input (ARIA combobox): no auto-focus in or back.\n onOpenAutoFocus={(event) => {\n event.preventDefault()\n }}\n onCloseAutoFocus={(event) => {\n event.preventDefault()\n }}\n // The input's own keydown handles Escape (close, then clear).\n onEscapeKeyDown={(event) => {\n event.preventDefault()\n }}\n onInteractOutside={onInteractOutside}\n // Clicks on padding / messages must not take focus from the input.\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n {...theme}\n >\n {children}\n </PopoverPrimitive.Content>\n )\n})\n\n/* ─── Combobox ────────────────────────────────────────────────────────────── */\n\n/**\n * Type to filter, pick from a list (ARIA 1.2 combobox with a listbox popup). Single or\n * `multiple` (chosen values become removable chips), `creatable` for free text, and\n * async-ready: pass `filter=\"none\"`, `loading` and the loader's results as `options`.\n * The ref and native input props go to the text input; `className`/`style` go to the box.\n *\n * <Combobox options={projects} placeholder=\"Search projects\" onValueChange={setProject} />\n * <Combobox multiple options={labels} maxSelected={3} />\n */\nexport const Combobox = markFieldAware(\n forwardRef<HTMLInputElement, ComboboxProps>(function Combobox(props, ref) {\n const [base, mode] = splitMode(props)\n const {\n options,\n inputValue: inputValueProp,\n defaultInputValue,\n onInputValueChange,\n filter = 'auto',\n loading = false,\n loadingMessage = 'Loading…',\n emptyMessage = 'No matches',\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n creatable = false,\n clearable = false,\n clearLabel = 'Clear',\n size = 'md',\n invalid: invalidProp,\n id: idProp,\n disabled: disabledProp,\n required: requiredProp,\n readOnly: readOnlyProp,\n name,\n form,\n placeholder,\n className,\n style,\n onKeyDown,\n onBlur,\n onClick,\n 'aria-describedby': describedByProp,\n 'aria-invalid': ariaInvalid,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = base\n const { multiple, maxSelected, removeLabel } = mode\n\n const field = useResolvedField({\n id: idProp,\n describedBy: describedByProp,\n invalid: invalidProp,\n ariaInvalid,\n required: requiredProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n })\n const autoId = useId()\n const inputId = field.id ?? `${autoId}combobox`\n const listboxId = `${inputId}-listbox`\n const statusId = `${inputId}-status`\n const interactive = !field.disabled && !field.readOnly\n\n const inputRef = useRef<HTMLInputElement>(null)\n const boxRef = useRef<HTMLDivElement>(null)\n const composedInputRef = useMergedRefs(ref, inputRef)\n\n /* Labels of chosen values survive the options changing (async results, creatable). */\n const labelCache = useRef(new Map<string, string>())\n for (const option of options) labelCache.current.set(option.value, option.label)\n const labelOf = useCallback(\n (value: string) =>\n options.find((option) => option.value === value)?.label ??\n labelCache.current.get(value) ??\n value,\n [options],\n )\n\n const [values, setValues] = useControllableState<readonly string[]>(\n mode.value,\n mode.defaultValue,\n mode.emit,\n )\n const selectedLabel = !multiple && values[0] !== undefined ? labelOf(values[0]) : ''\n\n const [query, setQueryState] = useControllableState<string>(\n inputValueProp,\n defaultInputValue ??\n (multiple || mode.defaultValue[0] === undefined ? '' : labelOf(mode.defaultValue[0])),\n onInputValueChange,\n )\n const queryRef = useRef(query)\n queryRef.current = query\n const setQuery = useCallback(\n (next: string) => {\n if (next !== queryRef.current) setQueryState(next)\n },\n [setQueryState],\n )\n /** The user has typed since the last pick (single: the text is a query, not the label). */\n const [dirty, setDirty] = useState(false)\n\n const [openState, setOpenState] = useControllableState<boolean>(\n openProp,\n defaultOpen,\n onOpenChange,\n )\n const openRef = useRef(openState)\n openRef.current = openState\n const setOpen = useCallback(\n (next: boolean) => {\n if (next !== openRef.current) setOpenState(next)\n },\n [setOpenState],\n )\n\n const [activeValue, setActiveValue] = useState<string | null>(null)\n\n // Single: show the chosen option's label whenever the user isn't mid-edit (covers\n // external value changes such as a form reset).\n useEffect(() => {\n if (!multiple && !dirty) setQuery(selectedLabel)\n }, [multiple, dirty, selectedLabel, setQuery])\n\n /* ─── Derived view ─── */\n const shouldFilter = filter === 'auto' && (multiple || dirty)\n const { sections, ordered } = useMemo(\n () => buildView(options, query, shouldFilter),\n [options, query, shouldFilter],\n )\n const indexOf = useMemo(\n () => new Map(options.map((option, index) => [option.value, index])),\n [options],\n )\n const optionId = (value: string) => `${inputId}-option-${String(indexOf.get(value) ?? 0)}`\n\n const atMax = multiple && maxSelected !== undefined && values.length >= maxSelected\n const isSelected = (value: string) => values.includes(value)\n const isDisabled = (option: ComboboxOption) =>\n Boolean(option.disabled) || (atMax && !isSelected(option.value))\n const enabled = ordered.filter((option) => !isDisabled(option))\n\n const trimmedQuery = query.trim()\n const freeText = creatable && trimmedQuery !== '' && (multiple || dirty)\n const showEmpty = !loading && ordered.length === 0 && !freeText\n const hasPopupContent = ordered.length > 0 || loading || showEmpty\n const expanded = openState && interactive && hasPopupContent\n\n // Non-creatable: typing highlights the best match, so Enter picks it. Not while loading:\n // the list still shows the previous query's results, and Enter must not commit one of them.\n const autoHighlight =\n expanded && !loading && !creatable && trimmedQuery !== '' && (multiple || dirty)\n const activeOption =\n enabled.find((option) => option.value === activeValue) ??\n (autoHighlight ? enabled[0] : undefined)\n const active = expanded ? activeOption : undefined\n\n /* ─── Live region: result count, debounced ─── */\n const [announcement, setAnnouncement] = useState('')\n const countText = loading\n ? ''\n : ordered.length === 0\n ? typeof emptyMessage === 'string'\n ? emptyMessage\n : 'No matches'\n : countMessage(ordered.length)\n useEffect(() => {\n if (!expanded || countText === '') {\n if (!expanded) setAnnouncement('')\n return\n }\n const timer = setTimeout(() => {\n setAnnouncement(countText)\n }, 500)\n return () => {\n clearTimeout(timer)\n }\n }, [expanded, countText])\n\n /* Keep the highlighted row in view. */\n const activeId = active ? optionId(active.value) : undefined\n useEffect(() => {\n if (!activeId) return\n const node = inputRef.current?.ownerDocument.getElementById(activeId)\n node?.scrollIntoView({ block: 'nearest' })\n }, [activeId])\n\n /* ─── Actions ─── */\n const selectOption = (option: ComboboxOption) => {\n if (!interactive || isDisabled(option)) return\n labelCache.current.set(option.value, option.label)\n if (multiple) {\n const next = isSelected(option.value)\n ? values.filter((value) => value !== option.value)\n : [...values, option.value]\n setValues(next)\n setQuery('')\n setDirty(false)\n setActiveValue(option.value)\n } else {\n setValues([option.value])\n setQuery(option.label)\n setDirty(false)\n setActiveValue(null)\n setOpen(false)\n }\n }\n\n /** Creatable: turn the typed text into a value. Returns whether anything changed. */\n const commitText = (): boolean => {\n if (!creatable || trimmedQuery === '') return false\n const folded = foldText(trimmedQuery)\n const match = options.find((option) => !option.disabled && foldText(option.label) === folded)\n const value = match?.value ?? trimmedQuery\n const label = match?.label ?? trimmedQuery\n labelCache.current.set(value, label)\n if (multiple) {\n setQuery('')\n setDirty(false)\n if (isSelected(value) || atMax) return false\n setValues([...values, value])\n return true\n }\n setDirty(false)\n setQuery(label)\n if (values[0] === value) return false\n setValues([value])\n return true\n }\n\n const removeValue = (value: string) => {\n if (!interactive) return\n setValues(values.filter((v) => v !== value))\n }\n\n const clear = () => {\n if (!interactive) return\n setValues([])\n setQuery('')\n setDirty(false)\n setActiveValue(null)\n inputRef.current?.focus()\n }\n\n /** First visible selected option, else the first/last enabled one. */\n const initialActive = (fromEnd: boolean) =>\n enabled.find((option) => isSelected(option.value)) ??\n (fromEnd ? enabled[enabled.length - 1] : enabled[0])\n\n const move = (delta: 1 | -1) => {\n if (enabled.length === 0) return\n const index = active ? enabled.indexOf(active) : -1\n const next =\n index === -1\n ? delta === 1\n ? enabled[0]\n : enabled[enabled.length - 1]\n : enabled[(index + delta + enabled.length) % enabled.length]\n setActiveValue(next?.value ?? null)\n }\n\n const openList = (highlight: 'first' | 'last' | 'keep') => {\n if (!interactive) return\n setOpen(true)\n if (highlight !== 'keep') setActiveValue(initialActive(highlight === 'last')?.value ?? null)\n }\n\n /* ─── Events ─── */\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const text = event.target.value\n setQuery(text)\n setDirty(true)\n setActiveValue(null)\n if (interactive) setOpen(true)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event)\n if (event.nativeEvent.isComposing) return\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (event.altKey) openList('keep')\n else if (expanded) move(1)\n else openList('first')\n return\n case 'ArrowUp':\n event.preventDefault()\n if (event.altKey) setOpen(false)\n else if (expanded) move(-1)\n else openList('last')\n return\n case 'Home':\n case 'End':\n if (!expanded || enabled.length === 0) return\n event.preventDefault()\n setActiveValue(\n (event.key === 'Home' ? enabled[0] : enabled[enabled.length - 1])?.value ?? null,\n )\n return\n case 'Enter':\n if (expanded && active) {\n event.preventDefault()\n selectOption(active)\n } else if (freeText) {\n event.preventDefault()\n commitText()\n if (!multiple) setOpen(false)\n } else if (expanded) {\n event.preventDefault()\n }\n return\n case 'Escape':\n if (expanded) {\n event.preventDefault()\n setOpen(false)\n } else if (query !== '' && interactive) {\n event.preventDefault()\n setQuery('')\n setDirty(!multiple)\n }\n return\n case 'Tab':\n setOpen(false)\n return\n case 'Backspace':\n if (multiple && query === '' && interactive && values.length > 0) {\n event.preventDefault()\n setValues(values.slice(0, -1))\n }\n return\n }\n }\n\n /** Focus left the whole control: settle the text, close, then tell the consumer. */\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n const next = event.relatedTarget as Node | null\n if (next && boxRef.current?.contains(next)) return\n if (interactive) {\n if (multiple) {\n if (!commitText()) setQuery('')\n } else if (dirty) {\n if (creatable && trimmedQuery !== '') commitText()\n else if (trimmedQuery === '') {\n if (values.length > 0) setValues([])\n setQuery('')\n } else setQuery(selectedLabel)\n }\n setDirty(false)\n }\n setOpen(false)\n setActiveValue(null)\n onBlur?.(event)\n }\n\n // Clicking the box's padding or chevron focuses the input and toggles the list.\n const handleBoxPointerDown = (event: PointerEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement\n if (target === inputRef.current || target.closest('button, a, input')) return\n event.preventDefault()\n inputRef.current?.focus()\n if (openRef.current) setOpen(false)\n else openList('keep')\n }\n\n const handleInputClick = (event: MouseEvent<HTMLInputElement>) => {\n onClick?.(event)\n if (!openRef.current) openList('keep')\n }\n\n const handleInteractOutside = (event: Event) => {\n const target = event.target as Node | null\n if (target && boxRef.current?.contains(target)) event.preventDefault()\n }\n\n /* ─── Render ─── */\n const listLabelledBy = ariaLabelledBy ?? field.labelId\n const showPlaceholder = !multiple || values.length === 0\n const canClear = clearable && interactive && (values.length > 0 || query !== '')\n\n const renderOption = (option: ComboboxOption) => {\n const selected = isSelected(option.value)\n const disabled = isDisabled(option)\n return (\n // The input owns focus and the keyboard (aria-activedescendant points here), so an\n // option is never focused itself and its click is the pointer path only.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/interactive-supports-focus\n <div\n key={option.value}\n id={optionId(option.value)}\n role=\"option\"\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n className={styles.option}\n data-active={active?.value === option.value || undefined}\n data-selected={selected || undefined}\n data-disabled={disabled || undefined}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onPointerMove={() => {\n if (!disabled && activeValue !== option.value) setActiveValue(option.value)\n }}\n onClick={() => {\n selectOption(option)\n }}\n >\n {multiple ? (\n <span className={styles.box} aria-hidden=\"true\">\n {selected ? <CheckIcon /> : null}\n </span>\n ) : null}\n <span className={styles.optionText}>\n <span className={styles.optionLabel}>{option.label}</span>\n {option.description ? (\n <span className={styles.optionDescription}>{option.description}</span>\n ) : null}\n </span>\n {!multiple && selected ? <CheckIcon className={styles.check} /> : null}\n </div>\n )\n }\n\n return (\n <PopoverPrimitive.Root\n open={expanded}\n onOpenChange={(next) => {\n if (!next) setOpen(false)\n }}\n >\n <PortalAnchorContext.Provider value={boxRef}>\n <PopoverPrimitive.Anchor asChild>\n <div\n ref={boxRef}\n className={cx(control.box, styles.root, className)}\n style={style}\n data-size={size}\n data-multiple={multiple || undefined}\n data-state={expanded ? 'open' : 'closed'}\n data-invalid={field.invalid || undefined}\n data-disabled={field.disabled || undefined}\n data-readonly={field.readOnly || undefined}\n onPointerDown={handleBoxPointerDown}\n onBlur={handleBlur}\n >\n <div className={styles.values}>\n {multiple && values.length > 0 ? (\n <TagList className={styles.chips}>\n {values.map((value) => {\n const label = labelOf(value)\n return (\n <Tag\n key={value}\n className={styles.chip}\n onRemove={\n interactive\n ? () => {\n removeValue(value)\n inputRef.current?.focus()\n }\n : undefined\n }\n removeLabel={removeLabel(label)}\n >\n {label}\n </Tag>\n )\n })}\n </TagList>\n ) : null}\n <input\n ref={composedInputRef}\n id={inputId}\n type=\"text\"\n role=\"combobox\"\n className={styles.input}\n value={query}\n placeholder={showPlaceholder ? placeholder : undefined}\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n disabled={field.disabled}\n readOnly={field.readOnly}\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded={expanded}\n aria-controls={listboxId}\n aria-activedescendant={activeId}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={field.describedBy}\n aria-invalid={field.invalid || undefined}\n aria-required={field.required || undefined}\n aria-busy={field.busy || undefined}\n {...rest}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onClick={handleInputClick}\n />\n </div>\n <span className={styles.trailing}>\n {loading ? <Spinner size=\"sm\" label={null} className={styles.spinner} /> : null}\n {canClear ? (\n <button\n type=\"button\"\n className={styles.clear}\n aria-label={clearLabel}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n onClick={clear}\n >\n <CloseIcon />\n </button>\n ) : null}\n <ChevronDownIcon className={styles.chevron} />\n </span>\n {name !== undefined ? (\n multiple ? (\n values.map((value) => (\n <input\n key={value}\n type=\"hidden\"\n name={name}\n value={value}\n form={form}\n disabled={field.disabled || undefined}\n />\n ))\n ) : (\n <input\n type=\"hidden\"\n name={name}\n value={values[0] ?? ''}\n form={form}\n disabled={field.disabled || undefined}\n />\n )\n ) : null}\n <div\n id={statusId}\n role=\"status\"\n aria-live=\"polite\"\n className={messageStyles.visuallyHidden}\n >\n {announcement}\n </div>\n </div>\n </PopoverPrimitive.Anchor>\n <PopoverPrimitive.Portal container={expanded ? themeScopeOf(boxRef.current) : undefined}>\n <ComboboxPopup onInteractOutside={handleInteractOutside}>\n <div\n id={listboxId}\n role=\"listbox\"\n aria-labelledby={listLabelledBy}\n aria-label={listLabelledBy ? undefined : ariaLabel}\n aria-multiselectable={multiple || undefined}\n aria-busy={loading || undefined}\n className={styles.listbox}\n >\n {sections.map((section) =>\n section.label === undefined ? (\n section.options.map(renderOption)\n ) : (\n <div\n key={section.key}\n role=\"group\"\n aria-labelledby={`${inputId}-group-${String(sections.indexOf(section))}`}\n className={styles.group}\n >\n <div\n id={`${inputId}-group-${String(sections.indexOf(section))}`}\n role=\"presentation\"\n className={styles.groupLabel}\n >\n {section.label}\n </div>\n {section.options.map(renderOption)}\n </div>\n ),\n )}\n </div>\n {loading && ordered.length === 0 ? (\n <div className={styles.message}>\n <Spinner size=\"sm\" label={null} />\n <span>{loadingMessage}</span>\n </div>\n ) : null}\n {showEmpty ? <div className={styles.message}>{emptyMessage}</div> : null}\n </ComboboxPopup>\n </PopoverPrimitive.Portal>\n </PortalAnchorContext.Provider>\n </PopoverPrimitive.Root>\n )\n }),\n)\n"],"mappings":";;;;;;;;;;;;;;;;AA+GA,SAASO,GAAU,GAAoC,GAAe,GAAuB;CAC3F,IAAMC,IAAUC,IAAeC,EAAcC,GAASC,CAAK,IAAI,CAAC,GAAGD,CAAO,GACpEE,IAAsB,CAAC,GACvBC,oBAAQ,IAAI,IAAqB;CACvC,KAAK,IAAMC,KAAUP,GAAS;EAC5B,IAAMQ,IAAMD,EAAO,UAAU,KAAA,IAAY,KAAK,KAAKA,EAAO,SACtDE,IAAUH,EAAM,IAAIE,CAAG;EAM3B,AALKC,MACH,IAAU;GAAE;GAAK,OAAOF,EAAO;GAAO,SAAS,CAAC;EAAE,GAClDD,EAAM,IAAIE,GAAKC,CAAO,GACtBJ,EAAS,KAAKI,CAAO,IAEvBA,EAAQ,QAAQ,KAAKF,CAAM;CAC7B;CACA,OAAO;EAAE;EAAU,SAASF,EAAS,SAAS,MAAYI,EAAQ,OAAO;CAAE;AAC7E;AAWA,IAAMC,KAAsB,MAAkB,UAAUC;AAGxD,SAASC,GAAU,GAAiD;CAClE,IAAIC,EAAM,aAAa,IAAM;EAC3B,IAAM,EAAE,aAAU,UAAO,iBAAc,kBAAe,gBAAa,gBAAa,GAAGC,OACjFD;EACF,OAAO,CACLC,IACA;GACE;GACA;GACA,cAAcC,KAAgB,CAAC;GAC/B,OAAO,MAASC,IAAgB,CAAC,GAAGC,CAAI,CAAC;GACzC;GACA,aAAaC,KAAeR;EAC9B,CACF;CACF;CACA,IAAM,EAAE,aAAU,UAAO,iBAAc,kBAAe,GAAGI,MAASD;CAClE,OAAO,CACLC,GACA;EACE,UAAU,EAAQK;EAClB,OAAOC,MAAU,KAAA,IAAY,KAAA,IAAYA,MAAU,OAAO,CAAC,IAAI,CAACA,CAAK;EACrE,cAAcL,KAAgB,OAAO,CAAC,IAAI,CAACA,CAAY;EACvD,OAAO,MAASC,IAAgBC,EAAK,MAAM,IAAI;EAC/C,aAAa,KAAA;EACb,aAAaP;CACf,CACF;AACF;AAGA,SAASW,GAAa,GAAmD;CACvE,IAAMC,IAAQC,GAAM,QAAqB,cAAc;CACvD,OAAOD,KAASA,MAAUC,GAAM,cAAc,kBAAkBD,IAAQ,KAAA;AAC1E;AAEA,SAASE,GAAa,GAAuB;CAC3C,OAAO,GAAG,OAAOC,CAAK,EAAE,GAAGA,MAAU,IAAI,WAAW,UAAU;AAChE;AAUA,IAAMC,KAAgBC,EAAuC,SAC3D,EAAE,aAAU,wBACZ,GACA;CACA,IAAMC,IAAQC,GAAe;CAC7B,OACE,kBAACrC,EAAiB,SAAlB;EACO;EACL,WAAWC,EAAO;EAElB,MAAM,KAAA;EACN,MAAK;EACL,OAAM;EACN,YAAY;EACZ,kBAAkB;EAElB,kBAAkB,MAAU;GAC1B,EAAM,eAAe;EACvB;EACA,mBAAmB,MAAU;GAC3B,EAAM,eAAe;EACvB;EAEA,kBAAkB,MAAU;GAC1B,EAAM,eAAe;EACvB;EACmB;EAEnB,cAAc,MAAU;GACtB,EAAM,eAAe;EACvB;EACA,GAAImC;EAEH;CACuB,CAAA;AAE9B,CAAC,GAaYG,KAAWC,EACtBL,EAA4C,SAAkB,GAAO,IAAK;CACxE,IAAM,CAACb,GAAMmB,KAAQrB,GAAUC,CAAK,GAC9B,EACJ,YACA,YAAYqB,IACZ,uBACA,wBACA,aAAS,QACT,aAAU,IACV,qBAAiB,YACjB,kBAAe,cACf,MAAMC,IACN,kBAAc,IACd,kBACA,eAAY,IACZ,gBAAY,IACZ,iBAAa,SACb,WAAO,MACP,SAASC,IACT,IAAIC,IACJ,UAAUC,IACV,UAAUC,IACV,UAAUC,IACV,SACA,UACA,iBACA,eACA,WACA,eACA,YACA,aACA,oBAAoBC,IACpB,gBAAgBC,IAChB,cAAcC,IACd,mBAAmBC,IACnB,GAAGC,OACD/B,GACE,EAAE,aAAU,iBAAa,oBAAgBmB,GAEzCa,IAAQC,GAAiB;EAC7B,IAAIV;EACJ,aAAaI;EACb,SAASL;EACT;EACA,UAAUG;EACV,UAAUD;EACV,UAAUE;CACZ,CAAC,GACKQ,KAASC,GAAM,GACfC,IAAUJ,EAAM,MAAM,GAAGE,GAAO,WAChCG,KAAY,GAAGD,EAAQ,WACvBE,KAAW,GAAGF,EAAQ,UACtBG,IAAc,CAACP,EAAM,YAAY,CAACA,EAAM,UAExCQ,IAAWC,EAAyB,IAAI,GACxCC,IAASD,EAAuB,IAAI,GACpCE,KAAmBC,EAAcC,IAAKL,CAAQ,GAG9CM,IAAaL,kBAAO,IAAI,IAAoB,CAAC;CACnD,KAAK,IAAMhD,KAAUJ,GAAS,EAAW,QAAQ,IAAII,EAAO,OAAOA,EAAO,KAAK;CAC/E,IAAMsD,IAAUC,GACb,MACC3D,EAAQ,MAAM,MAAWI,EAAO,UAAUa,CAAK,CAAC,EAAE,SAClDwC,EAAW,QAAQ,IAAIxC,CAAK,KAC5BA,GACF,CAACjB,CAAO,CACV,GAEM,CAAC4D,GAAQC,KAAaC,EAC1BhC,EAAK,OACLA,EAAK,cACLA,EAAK,IACP,GACMiC,IAAgB,CAAC/C,KAAY4C,EAAO,OAAO,KAAA,IAAYF,EAAQE,EAAO,EAAE,IAAI,IAE5E,CAAC3D,GAAO+D,MAAiBF,EAC7B/B,IACAkC,OACGjD,KAAYc,EAAK,aAAa,OAAO,KAAA,IAAY,KAAK4B,EAAQ5B,EAAK,aAAa,EAAE,IACrFoC,EACF,GACMC,KAAWf,EAAOnD,CAAK;CAC7B,GAAS,UAAUA;CACnB,IAAMmE,IAAWT,GACd,MAAiB;EAChB,AAAI7C,MAASqD,GAAS,WAASH,GAAclD,CAAI;CACnD,GACA,CAACkD,EAAa,CAChB,GAEM,CAACK,GAAOC,KAAYC,EAAS,EAAK,GAElC,CAACC,GAAWC,MAAgBX,EAChC9B,IACA0C,IACAC,EACF,GACMC,IAAUxB,EAAOoB,CAAS;CAChC,EAAQ,UAAUA;CAClB,IAAMK,IAAUlB,GACb,MAAkB;EACjB,AAAI7C,MAAS8D,EAAQ,WAASH,GAAa3D,CAAI;CACjD,GACA,CAAC2D,EAAY,CACf,GAEM,CAACK,IAAaC,KAAkBR,EAAwB,IAAI;CAIlE,QAAgB;EACd,AAAI,CAACvD,KAAY,CAACqD,KAAOD,EAASL,CAAa;CACjD,GAAG;EAAC/C;EAAUqD;EAAON;EAAeK;CAAQ,CAAC;CAG7C,IAAMtE,KAAekF,OAAW,WAAWhE,KAAYqD,IACjD,EAAE,aAAU,eAAYY,SACtBrF,GAAUI,GAASC,GAAOH,EAAY,GAC5C;EAACE;EAASC;EAAOH;CAAY,CAC/B,GACMoF,KAAUD,SACR,IAAI,IAAIjF,EAAQ,KAAK,GAAQ,MAAU,CAACI,EAAO,OAAO+E,CAAK,CAAC,CAAC,GACnE,CAACnF,CAAO,CACV,GACMoF,MAAY,MAAkB,GAAGrC,EAAQ,UAAU,OAAOmC,GAAQ,IAAIjE,CAAK,KAAK,CAAC,KAEjFoE,KAAQrE,KAAYsE,OAAgB,KAAA,KAAa1B,EAAO,UAAU0B,IAClEC,KAAc,MAAkB3B,EAAO,SAAS3C,CAAK,GACrDuE,KAAc,MAClB,EAAQpF,EAAO,YAAciF,MAAS,CAACE,EAAWnF,EAAO,KAAK,GAC1DqF,IAAUC,EAAQ,QAAQ,MAAW,CAACF,EAAWpF,CAAM,CAAC,GAExDuF,IAAe1F,EAAM,KAAK,GAC1B2F,KAAWC,KAAaF,MAAiB,OAAO3E,KAAYqD,IAC5DyB,KAAY,CAACC,KAAWL,EAAQ,WAAW,KAAK,CAACE,IACjDI,KAAkBN,EAAQ,SAAS,KAAKK,KAAWD,IACnDG,IAAWzB,KAAatB,KAAe8C,IAIvCE,KACJD,KAAY,CAACF,KAAW,CAACF,KAAaF,MAAiB,OAAO3E,KAAYqD,IACtE8B,KACJV,EAAQ,MAAM,MAAWrF,EAAO,UAAU0E,EAAW,MACpDoB,KAAgBT,EAAQ,KAAK,KAAA,IAC1BW,IAASH,IAAWE,KAAe,KAAA,GAGnC,CAACE,IAAcC,MAAmB/B,EAAS,EAAE,GAC7CgC,IAAYR,IACd,KACAL,EAAQ,WAAW,IACjB,OAAOc,KAAiB,WACtBA,IACA,eACFnF,GAAaqE,EAAQ,MAAM;CACjC,QAAgB;EACd,IAAI,CAACO,KAAYM,MAAc,IAAI;GACjC,AAAKN,KAAUK,GAAgB,EAAE;GACjC;EACF;EACA,IAAMG,IAAQ,iBAAiB;GAC7B,GAAgBF,CAAS;EAC3B,GAAG,GAAG;EACN,aAAa;GACX,aAAaE,CAAK;EACpB;CACF,GAAG,CAACR,GAAUM,CAAS,CAAC;CAGxB,IAAMG,IAAWN,IAAShB,GAASgB,EAAO,KAAK,IAAI,KAAA;CACnD,QAAgB;EACd,AAAKM,MACQvD,EAAS,SAAS,cAAc,eAAeuD,CAAQ,EAAA,EAC9D,eAAe,EAAE,OAAO,UAAU,CAAC;CAC3C,GAAG,CAACA,CAAQ,CAAC;CAGb,IAAMC,MAAgB,MAA2B;EAC/C,IAAKzD,KAAe,GAAW9C,CAAM,GAErC;OADAqD,EAAW,QAAQ,IAAIrD,EAAO,OAAOA,EAAO,KAAK,GAC7CY,GAAU;IACZ,IAAMF,IAAOyE,EAAWnF,EAAO,KAAK,IAChCwD,EAAO,QAAQ,MAAU3C,MAAUb,EAAO,KAAK,IAC/C,CAAC,GAAGwD,GAAQxD,EAAO,KAAK;IAI5B,AAHAyD,EAAU/C,CAAI,GACdsD,EAAS,EAAE,GACXE,EAAS,EAAK,GACdS,EAAe3E,EAAO,KAAK;GAC7B,OAKE,AAJAyD,EAAU,CAACzD,EAAO,KAAK,CAAC,GACxBgE,EAAShE,EAAO,KAAK,GACrBkE,EAAS,EAAK,GACdS,EAAe,IAAI,GACnBF,EAAQ,EAAK;EACf;CACF,GAGM+B,UAA4B;EAChC,IAAI,CAACf,KAAaF,MAAiB,IAAI,OAAO;EAC9C,IAAMkB,IAASC,GAASnB,CAAY,GAC9BoB,IAAQ/G,EAAQ,MAAM,MAAW,CAACI,EAAO,YAAY0G,GAAS1G,EAAO,KAAK,MAAMyG,CAAM,GACtF5F,IAAQ8F,GAAO,SAASpB,GACxBnF,IAAQuG,GAAO,SAASpB;EAa9B,OAZAlC,EAAW,QAAQ,IAAIxC,GAAOT,CAAK,GAC/BQ,KACFoD,EAAS,EAAE,GACXE,EAAS,EAAK,GACViB,EAAWtE,CAAK,KAAKoE,KAAc,MACvCxB,EAAU,CAAC,GAAGD,GAAQ3C,CAAK,CAAC,GACrB,QAETqD,EAAS,EAAK,GACdF,EAAS5D,CAAK,GACVoD,EAAO,OAAO3C,MAClB4C,EAAU,CAAC5C,CAAK,CAAC,GACV;CACT,GAEM+F,MAAe,MAAkB;EACrC,AAAK9D,KACLW,EAAUD,EAAO,QAAQ,MAAMqD,MAAMhG,CAAK,CAAC;CAC7C,GAEMiG,WAAc;EAClB,AAAKhE,MACLW,EAAU,CAAC,CAAC,GACZO,EAAS,EAAE,GACXE,EAAS,EAAK,GACdS,EAAe,IAAI,GACnB5B,EAAS,SAAS,MAAM;CAC1B,GAGMgE,MAAiB,MACrB1B,EAAQ,MAAM,MAAWF,EAAWnF,EAAO,KAAK,CAAC,MAChDgH,IAAU3B,EAAQA,EAAQ,SAAS,KAAKA,EAAQ,KAE7C4B,MAAQ,MAAkB;EAC9B,IAAI5B,EAAQ,WAAW,GAAG;EAC1B,IAAMN,IAAQiB,IAASX,EAAQ,QAAQW,CAAM,IAAI,IAC3CtF,IACJqE,MAAU,KACNmC,MAAU,IACR7B,EAAQ,KACRA,EAAQA,EAAQ,SAAS,KAC3BA,GAASN,IAAQmC,IAAQ7B,EAAQ,UAAUA,EAAQ;EACzD,EAAe3E,GAAM,SAAS,IAAI;CACpC,GAEMyG,KAAY,MAAyC;EACzD,AAAKrE,MACL2B,EAAQ,EAAI,GACR2C,MAAc,UAAQzC,EAAeoC,GAAcK,MAAc,MAAM,CAAC,EAAE,SAAS,IAAI;CAC7F,GAGMC,MAAgB,MAAyC;EAC7D,IAAMC,IAAOC,EAAM,OAAO;EAI1B,AAHAvD,EAASsD,CAAI,GACbpD,EAAS,EAAI,GACbS,EAAe,IAAI,GACf7B,KAAa2B,EAAQ,EAAI;CAC/B,GAEM+C,MAAiB,MAA2C;EAEhE,IADAC,KAAYF,CAAK,GACb,GAAM,YAAY,aACtB,QAAQA,EAAM,KAAd;GACE,KAAK;IAEH,AADAA,EAAM,eAAe,GACjBA,EAAM,SAAQJ,EAAS,MAAM,IACxBtB,IAAUoB,GAAK,CAAC,IACpBE,EAAS,OAAO;IACrB;GACF,KAAK;IAEH,AADAI,EAAM,eAAe,GACjBA,EAAM,SAAQ9C,EAAQ,EAAK,IACtBoB,IAAUoB,GAAK,EAAE,IACrBE,EAAS,MAAM;IACpB;GACF,KAAK;GACL,KAAK;IACH,IAAI,CAACtB,KAAYR,EAAQ,WAAW,GAAG;IAEvC,AADAkC,EAAM,eAAe,GACrB5C,GACG4C,EAAM,QAAQ,SAASlC,EAAQ,KAAKA,EAAQA,EAAQ,SAAS,GAAA,EAAK,SAAS,IAC9E;IACA;GACF,KAAK;IACH,AAAIQ,KAAYG,KACduB,EAAM,eAAe,GACrBhB,GAAaP,CAAM,KACVR,MACT+B,EAAM,eAAe,GACrBf,EAAW,GACN5F,KAAU6D,EAAQ,EAAK,KACnBoB,KACT0B,EAAM,eAAe;IAEvB;GACF,KAAK;IACH,AAAI1B,KACF0B,EAAM,eAAe,GACrB9C,EAAQ,EAAK,KACJ5E,MAAU,MAAMiD,MACzByE,EAAM,eAAe,GACrBvD,EAAS,EAAE,GACXE,EAAS,CAACtD,CAAQ;IAEpB;GACF,KAAK;IACH,EAAQ,EAAK;IACb;GACF,KAAK;IACH,AAAIA,KAAYf,MAAU,MAAMiD,KAAeU,EAAO,SAAS,MAC7D+D,EAAM,eAAe,GACrB9D,EAAUD,EAAO,MAAM,GAAG,EAAE,CAAC;IAE/B;EACJ;CACF,GAGMkE,MAAc,MAAsC;EACxD,IAAMhH,IAAO6G,EAAM;EACnB,AAAI7G,KAAQuC,EAAO,SAAS,SAASvC,CAAI,MACrCoC,MACElC,IACG4F,EAAW,KAAGxC,EAAS,EAAE,IACrBC,MACLwB,KAAaF,MAAiB,KAAIiB,EAAW,IACxCjB,MAAiB,MACpB/B,EAAO,SAAS,KAAGC,EAAU,CAAC,CAAC,GACnCO,EAAS,EAAE,KACNA,EAASL,CAAa,IAE/BO,EAAS,EAAK,IAEhBO,EAAQ,EAAK,GACbE,EAAe,IAAI,GACnBgD,KAASJ,CAAK;CAChB,GAGMK,MAAwB,MAAwC;EACpE,IAAMC,IAASN,EAAM;EACrB,AAAIM,MAAW9E,EAAS,WAAW8E,EAAO,QAAQ,kBAAkB,MACpEN,EAAM,eAAe,GACrBxE,EAAS,SAAS,MAAM,GACpByB,EAAQ,UAASC,EAAQ,EAAK,IAC7B0C,EAAS,MAAM;CACtB,GAEMW,MAAoB,MAAwC;EAEhE,AADAC,KAAUR,CAAK,GACV/C,EAAQ,WAAS2C,EAAS,MAAM;CACvC,GAEMa,MAAyB,MAAiB;EAC9C,IAAMH,IAASN,EAAM;EACrB,AAAIM,KAAU5E,EAAO,SAAS,SAAS4E,CAAM,KAAGN,EAAM,eAAe;CACvE,GAGMU,KAAiB5F,MAAkBE,EAAM,SACzC2F,KAAkB,CAACtH,KAAY4C,EAAO,WAAW,GACjD2E,KAAWC,MAAatF,MAAgBU,EAAO,SAAS,KAAK3D,MAAU,KAEvEwI,MAAgB,MAA2B;EAC/C,IAAMC,IAAWnD,EAAWnF,EAAO,KAAK,GAClCuI,IAAWnD,EAAWpF,CAAM;EAClC,OAIE,kBAAC,OAAD;GAEE,IAAIgF,GAAShF,EAAO,KAAK;GACzB,MAAK;GACL,iBAAesI;GACf,iBAAeC,KAAY,KAAA;GAC3B,WAAWrJ,EAAO;GAClB,eAAa8G,GAAQ,UAAUhG,EAAO,SAAS,KAAA;GAC/C,iBAAesI,KAAY,KAAA;GAC3B,iBAAeC,KAAY,KAAA;GAC3B,cAAc,MAAU;IACtB,EAAM,eAAe;GACvB;GACA,qBAAqB;IACnB,AAAI,CAACA,KAAY7D,OAAgB1E,EAAO,SAAO2E,EAAe3E,EAAO,KAAK;GAC5E;GACA,eAAe;IACb,GAAaA,CAAM;GACrB;GAlBF,UAAA;IAoBGY,IACC,kBAAC,QAAD;KAAM,WAAW1B,EAAO;KAAK,eAAY;KACtC,UAAAoJ,IAAW,kBAACE,GAAD,CAAY,CAAA,IAAI;IACxB,CAAA,IACJ;IACJ,kBAAC,QAAD;KAAM,WAAWtJ,EAAO;KAAxB,UAAA,CACE,kBAAC,QAAD;MAAM,WAAWA,EAAO;MAAc,UAAAc,EAAO;KAAY,CAAA,GACxDA,EAAO,cACN,kBAAC,QAAD;MAAM,WAAWd,EAAO;MAAoB,UAAAc,EAAO;KAAkB,CAAA,IACnE,IACA;;IACL,CAACY,KAAY0H,IAAW,kBAACE,GAAD,EAAW,WAAWtJ,EAAO,MAAQ,CAAA,IAAI;GAC/D;EA/BE,GAAAc,EAAO,KA+BT;CAET;CAEA,OACE,kBAACf,EAAiB,MAAlB;EACE,MAAM4G;EACN,eAAe,MAAS;GACtB,AAAKnF,KAAM+D,EAAQ,EAAK;EAC1B;EAEA,UAAA,kBAACgE,GAAoB,UAArB;GAA8B,OAAOxF;GAArC,UAAA,CACE,kBAAChE,EAAiB,QAAlB;IAAyB,SAAA;IACvB,UAAA,kBAAC,OAAD;KACE,KAAKgE;KACL,WAAWyF,EAAGvJ,GAAQ,KAAKD,EAAO,MAAMyJ,EAAS;KAC1C;KACP,aAAWC;KACX,iBAAehI,KAAY,KAAA;KAC3B,cAAYiF,IAAW,SAAS;KAChC,gBAActD,EAAM,WAAW,KAAA;KAC/B,iBAAeA,EAAM,YAAY,KAAA;KACjC,iBAAeA,EAAM,YAAY,KAAA;KACjC,eAAeqF;KACf,QAAQF;KAXV,UAAA;MAaE,kBAAC,OAAD;OAAK,WAAWxI,EAAO;OAAvB,UAAA,CACG0B,KAAY4C,EAAO,SAAS,IAC3B,kBAACqF,IAAD;QAAS,WAAW3J,EAAO;QACxB,UAAAsE,EAAO,KAAK,MAAU;SACrB,IAAMpD,IAAQkD,EAAQzC,CAAK;SAC3B,OACE,kBAACiI,IAAD;UAEE,WAAW5J,EAAO;UAClB,UACE4D,UACU;WAEJ,AADA8D,GAAY/F,CAAK,GACjBkC,EAAS,SAAS,MAAM;UAC1B,IACA,KAAA;UAEN,aAAapC,GAAYP,CAAK;UAE7B,UAAAA;SACE,GAbES,CAaF;QAET,CAAC;OACM,CAAA,IACP,MACJ,kBAAC,SAAD;QACE,KAAKqC;QACL,IAAIP;QACJ,MAAK;QACL,MAAK;QACL,WAAWzD,EAAO;QAClB,OAAOW;QACP,aAAaqI,KAAkBa,KAAc,KAAA;QAC7C,cAAa;QACb,gBAAe;QACf,aAAY;QACZ,YAAY;QACZ,UAAUxG,EAAM;QAChB,UAAUA,EAAM;QAChB,qBAAkB;QAClB,iBAAc;QACd,iBAAesD;QACf,iBAAejD;QACf,yBAAuB0D;QACvB,cAAYlE;QACZ,mBAAiBC;QACjB,oBAAkBE,EAAM;QACxB,gBAAcA,EAAM,WAAW,KAAA;QAC/B,iBAAeA,EAAM,YAAY,KAAA;QACjC,aAAWA,EAAM,QAAQ,KAAA;QACzB,GAAID;QACJ,UAAU+E;QACV,WAAWG;QACX,SAASM;OACV,CAAA,CACE;;MACL,kBAAC,QAAD;OAAM,WAAW5I,EAAO;OAAxB,UAAA;QACGyG,IAAU,kBAACqD,GAAD;SAAS,MAAK;SAAK,OAAO;SAAM,WAAW9J,EAAO;QAAU,CAAA,IAAI;QAC1EiJ,KACC,kBAAC,UAAD;SACE,MAAK;SACL,WAAWjJ,EAAO;SAClB,cAAY+J;SACZ,cAAc,MAAU;UACtB,EAAM,eAAe;SACvB;SACA,SAASnC;SAET,UAAA,kBAACoC,GAAD,CAAY,CAAA;QACN,CAAA,IACN;QACJ,kBAACC,GAAD,EAAiB,WAAWjK,EAAO,QAAU,CAAA;OACzC;;MACLkK,MAAS,KAAA,IAqBN,OApBFxI,IACE4C,EAAO,KAAK,MACV,kBAAC,SAAD;OAEE,MAAK;OACC;OACC;OACD;OACN,UAAUjB,EAAM,YAAY,KAAA;MAC7B,GANM1B,CAMN,CACF,IAED,kBAAC,SAAD;OACE,MAAK;OACC;OACN,OAAO2C,EAAO,MAAM;OACd;OACN,UAAUjB,EAAM,YAAY,KAAA;MAC7B,CAAA;MAGL,kBAAC,OAAD;OACE,IAAIM;OACJ,MAAK;OACL,aAAU;OACV,WAAWzD,GAAc;OAExB,UAAA6G;MACE,CAAA;KACF;;GACkB,CAAA,GACzB,kBAAChH,EAAiB,QAAlB;IAAyB,WAAW4G,IAAW/E,GAAamC,EAAO,OAAO,IAAI,KAAA;IAC5E,UAAA,kBAAC9B,IAAD;KAAe,mBAAmB6G;KAAlC,UAAA;MACE,kBAAC,OAAD;OACE,IAAIpF;OACJ,MAAK;OACL,mBAAiBqF;OACjB,cAAYA,KAAiB,KAAA,IAAY7F;OACzC,wBAAsBxB,KAAY,KAAA;OAClC,aAAW+E,KAAW,KAAA;OACtB,WAAWzG,EAAO;OAEjB,UAAAY,EAAS,KAAK,MACbI,EAAQ,UAAU,KAAA,IAChBA,EAAQ,QAAQ,IAAImI,EAAY,IAEhC,kBAAC,OAAD;QAEE,MAAK;QACL,mBAAiB,GAAG1F,EAAQ,SAAS,OAAO7C,EAAS,QAAQI,CAAO,CAAC;QACrE,WAAWhB,EAAO;QAJpB,UAAA,CAME,kBAAC,OAAD;SACE,IAAI,GAAGyD,EAAQ,SAAS,OAAO7C,EAAS,QAAQI,CAAO,CAAC;SACxD,MAAK;SACL,WAAWhB,EAAO;SAEjB,UAAAgB,EAAQ;QACN,CAAA,GACJA,EAAQ,QAAQ,IAAImI,EAAY,CAC9B;OAbE,GAAAnI,EAAQ,GAaV,CAET;MACG,CAAA;MACJyF,KAAWL,EAAQ,WAAW,IAC7B,kBAAC,OAAD;OAAK,WAAWpG,EAAO;OAAvB,UAAA,CACE,kBAAC8J,GAAD;QAAS,MAAK;QAAK,OAAO;OAAO,CAAA,GACjC,kBAAC,QAAD,EAAA,UAAOK,GAAqB,CAAA,CACzB;MACH,CAAA,IAAA;MACH3D,KAAY,kBAAC,OAAD;OAAK,WAAWxG,EAAO;OAAU,UAAAkH;MAAkB,CAAA,IAAI;KACvD;;GACQ,CAAA,CACG;;CACT,CAAA;AAE3B,CAAC,CACH"}
@@ -0,0 +1,28 @@
1
+ //#region src/components/inputs/Combobox/Combobox.module.css
2
+ var e = "kiln-Combobox__root", t = "kiln-Combobox__values", n = "kiln-Combobox__chips", r = "kiln-Combobox__chip", i = "kiln-Combobox__input", a = "kiln-Combobox__trailing", o = "kiln-Combobox__spinner", s = "kiln-Combobox__clear", c = "kiln-Combobox__chevron", l = "kiln-Combobox__popup", u = "kiln-Combobox__listbox", d = "kiln-Combobox__group", f = "kiln-Combobox__option", p = "kiln-Combobox__groupLabel", m = "kiln-Combobox__optionText", h = "kiln-Combobox__optionLabel", g = "kiln-Combobox__optionDescription", _ = "kiln-Combobox__box", v = "kiln-Combobox__check", y = "kiln-Combobox__message", b = {
3
+ root: e,
4
+ values: t,
5
+ chips: n,
6
+ chip: r,
7
+ input: i,
8
+ trailing: a,
9
+ spinner: o,
10
+ clear: s,
11
+ chevron: c,
12
+ popup: l,
13
+ "combobox-in": "kiln-Combobox__combobox-in",
14
+ listbox: u,
15
+ group: d,
16
+ option: f,
17
+ groupLabel: p,
18
+ optionText: m,
19
+ optionLabel: h,
20
+ optionDescription: g,
21
+ box: _,
22
+ check: v,
23
+ message: y
24
+ };
25
+ //#endregion
26
+ export { _ as box, v as check, c as chevron, r as chip, n as chips, s as clear, b as default, d as group, p as groupLabel, i as input, u as listbox, y as message, f as option, g as optionDescription, h as optionLabel, m as optionText, l as popup, e as root, o as spinner, a as trailing, t as values };
27
+
28
+ //# sourceMappingURL=Combobox.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.module.js","names":["root","values","chips","chip","input","trailing","spinner","clear","chevron","popup","listbox","group","option","groupLabel","optionText","optionLabel","optionDescription","box","check","message","Combobox_module_default"],"sources":["../../../../src/components/inputs/Combobox/Combobox.module.css"],"sourcesContent":["/*\n * The box (border, radius, sizes, states) comes from inputs/internal/control.module.css;\n * this file lays out the chips, the input and the trailing controls inside it, and the\n * floating list.\n *\n * Component tokens (themes may set any of these on [data-theme]):\n * --combobox-list-border default var(--color-line-strong)\n * --combobox-option-highlight default var(--color-surface-sunken) — keyboard/hover row\n * --combobox-option-check default var(--color-accent-text)\n */\n\n/* ── Box ── */\n.root {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n inline-size: 100%;\n padding-inline: var(--_px) calc(var(--_px) * 0.75);\n cursor: text;\n}\n.root[data-multiple] {\n padding-block: calc(var(--space-1) * 0.75);\n}\n.root:focus-within {\n outline: 2px solid var(--color-focus);\n outline-offset: 2px;\n}\n.root[data-disabled] {\n cursor: not-allowed;\n}\n\n.values {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-1);\n min-inline-size: 0;\n}\n\n.chips {\n display: contents;\n}\n\n.chip {\n max-inline-size: 100%;\n}\n\n.input {\n flex: 1;\n align-self: stretch;\n min-inline-size: 6ch;\n min-block-size: calc(var(--_h) - 2 * var(--border-width));\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n text-overflow: ellipsis;\n outline: none;\n}\n.root[data-multiple] .input {\n min-block-size: calc(var(--space-5) * 0.9);\n}\n.input:focus-visible {\n outline: none;\n}\n.input:disabled {\n cursor: not-allowed;\n}\n.input::placeholder {\n color: var(--color-ink-subtle);\n opacity: 1;\n}\n\n.trailing {\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: var(--space-1);\n color: var(--color-ink-muted);\n}\n\n.spinner {\n color: var(--color-ink-subtle);\n}\n\n.clear {\n position: relative;\n display: inline-grid;\n place-items: center;\n inline-size: 1.5em;\n block-size: 1.5em;\n padding: 0;\n border: 0;\n border-radius: var(--radius-chip);\n background: transparent;\n color: inherit;\n font-size: inherit;\n cursor: pointer;\n}\n.clear::after {\n content: '';\n position: absolute;\n inset: -0.25em;\n}\n.clear > svg {\n inline-size: 1.1em;\n block-size: 1.1em;\n}\n@media (hover: hover) {\n .clear:hover {\n color: var(--color-ink);\n background: var(--color-surface-sunken);\n }\n}\n.clear:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 1px;\n}\n\n.chevron {\n inline-size: 1.15em;\n block-size: 1.15em;\n transition: rotate var(--dur-2) var(--ease-spring);\n}\n.root[data-state='open'] .chevron {\n rotate: 180deg;\n}\n.root[data-disabled] .trailing {\n color: var(--color-ink-subtle);\n}\n\n/* ── Floating list ── */\n.popup {\n --_pad: var(--space-1);\n --_radius: var(--radius-surface);\n\n z-index: var(--z-popover);\n box-sizing: border-box;\n min-inline-size: var(--radix-popover-trigger-width);\n max-inline-size: min(28rem, calc(100vw - 2 * var(--space-4)));\n max-block-size: min(22rem, var(--radix-popover-content-available-height));\n overflow-y: auto;\n overscroll-behavior: contain;\n padding: var(--_pad);\n border: var(--border-width) solid var(--combobox-list-border, var(--color-line-strong));\n border-radius: var(--_radius);\n background-color: var(--color-surface-raised);\n color: var(--color-ink);\n box-shadow: var(--shadow-float);\n font-family: var(--font-text);\n font-size: var(--text-md);\n line-height: var(--leading-snug);\n scroll-padding-block: var(--_pad);\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.popup:focus {\n outline: none;\n}\n.popup[data-state='open'] {\n animation: combobox-in var(--dur-2) var(--ease-spring);\n}\n\n@keyframes combobox-in {\n from {\n opacity: 0;\n scale: 0.97;\n translate: 0 calc(var(--space-1) * -1);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .popup[data-state='open'] {\n animation: none;\n }\n .chevron {\n transition: none;\n }\n}\n\n.listbox:empty {\n display: none;\n}\n\n.group {\n display: block;\n}\n.group + .group,\n.option + .group {\n margin-block-start: var(--_pad);\n padding-block-start: var(--_pad);\n border-block-start: var(--border-width) solid var(--color-line);\n}\n\n.groupLabel {\n padding: var(--space-2) var(--space-3) var(--space-1);\n color: var(--color-ink-subtle);\n font-size: var(--text-xs);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n}\n\n/* Nested radius: the row sits inside the list's padding, so it's that much smaller. */\n.option {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n min-block-size: var(--control-sm);\n padding-block: var(--space-1);\n padding-inline: var(--space-3) var(--space-2);\n border-radius: max(2px, calc(var(--_radius) - var(--_pad)));\n cursor: default;\n user-select: none;\n}\n.option[data-active] {\n background-color: var(--combobox-option-highlight, var(--color-surface-sunken));\n}\n.option[data-selected] {\n font-weight: var(--label-weight);\n}\n.option[data-disabled] {\n color: var(--color-ink-subtle);\n opacity: 0.6;\n}\n\n.optionText {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-inline-size: 0;\n}\n\n.optionLabel {\n overflow-wrap: anywhere;\n}\n\n.optionDescription {\n color: var(--color-ink-muted);\n font-size: var(--text-sm);\n font-weight: normal;\n}\n\n/* Multiple: a checkbox-like square, filled when chosen. */\n.box {\n display: inline-grid;\n flex: none;\n place-items: center;\n inline-size: 1.1em;\n block-size: 1.1em;\n border: var(--border-width) solid var(--color-line-control);\n border-radius: var(--radius-chip);\n color: var(--color-accent-ink);\n}\n.option[data-selected] .box {\n border-color: var(--color-accent);\n background-color: var(--color-accent);\n}\n.box > svg {\n inline-size: 0.9em;\n block-size: 0.9em;\n}\n\n.check {\n flex: none;\n inline-size: 1.1em;\n block-size: 1.1em;\n color: var(--combobox-option-check, var(--color-accent-text));\n}\n\n.message {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n color: var(--color-ink-muted);\n font-size: var(--text-sm);\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { Combobox } from './Combobox.js';
2
+ export type { ComboboxBase, ComboboxMultipleProps, ComboboxOption, ComboboxProps, ComboboxSingleProps, } from './Combobox.js';
@@ -0,0 +1,7 @@
1
+ import type { ComboboxOption } from './Combobox.js';
2
+ /** Countries grouped by region (ISO 3166 alpha-3 values); keywords catch other names for the same country. */
3
+ export declare const countries: readonly ComboboxOption[];
4
+ /** Clients for the async story: the companies a small studio bills. */
5
+ export declare const clients: readonly ComboboxOption[];
6
+ /** Project labels for the multiple/creatable and Tags stories. */
7
+ export declare const projectLabels: readonly ComboboxOption[];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Controlled/uncontrolled state in one hook (Radix naming): when `value` is defined the
3
+ * caller owns it; otherwise it lives here, seeded from `defaultValue`. `setValue` always
4
+ * calls `onChange`, and only updates local state when uncontrolled.
5
+ *
6
+ * Shared by Combobox, TagsInput and FileDrop (internal — not exported from the package).
7
+ */
8
+ export declare function useControllableState<T>(value: T | undefined, defaultValue: T, onChange?: (next: T) => void): [T, (next: T) => void];
@@ -0,0 +1,13 @@
1
+ import { useLatest as e } from "../internal/useLatest.js";
2
+ import { useCallback as t, useState as n } from "react";
3
+ //#region src/components/inputs/Combobox/useControllableState.ts
4
+ function r(r, i, a) {
5
+ let [o, s] = n(i), c = r !== void 0, l = c ? r : o, u = e(a);
6
+ return [l, t((e) => {
7
+ c || s(e), u.current?.(e);
8
+ }, [c, u])];
9
+ }
10
+ //#endregion
11
+ export { r as useControllableState };
12
+
13
+ //# sourceMappingURL=useControllableState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControllableState.js","names":["useControllableState","internal","setInternal","useState","defaultValue","controlled","value","current","onChangeRef","useLatest","onChange","useCallback","next"],"sources":["../../../../src/components/inputs/Combobox/useControllableState.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\nimport { useLatest } from '#components/inputs/internal/useLatest'\n\n/**\n * Controlled/uncontrolled state in one hook (Radix naming): when `value` is defined the\n * caller owns it; otherwise it lives here, seeded from `defaultValue`. `setValue` always\n * calls `onChange`, and only updates local state when uncontrolled.\n *\n * Shared by Combobox, TagsInput and FileDrop (internal — not exported from the package).\n */\nexport function useControllableState<T>(\n value: T | undefined,\n defaultValue: T,\n onChange?: (next: T) => void,\n): [T, (next: T) => void] {\n const [internal, setInternal] = useState<T>(defaultValue)\n const controlled = value !== undefined\n const current = controlled ? value : internal\n\n // Keep the latest callback without re-creating the setter each render.\n const onChangeRef = useLatest(onChange)\n\n const setValue = useCallback(\n (next: T) => {\n if (!controlled) setInternal(next)\n onChangeRef.current?.(next)\n },\n [controlled, onChangeRef],\n )\n\n return [current, setValue]\n}\n"],"mappings":";;;AAUA,SAAgBA,EACd,GACA,GACA,GACwB;CACxB,IAAM,CAACC,GAAUC,KAAeC,EAAYC,CAAY,GAClDC,IAAaC,MAAU,KAAA,GACvBC,IAAUF,IAAaC,IAAQL,GAG/BO,IAAcC,EAAUC,CAAQ;CAUtC,OAAO,CAACH,GARSI,GACd,MAAY;EAEX,AADKN,KAAYH,EAAYU,CAAI,GACjCJ,EAAY,UAAUI,CAAI;CAC5B,GACA,CAACP,GAAYG,CAAW,CAGT,CAAQ;AAC3B"}
@@ -0,0 +1,17 @@
1
+ import { type FieldLabelProps } from '../Field/index.js';
2
+ import { type ComboboxMultipleProps, type ComboboxSingleProps } from '../Combobox/index.js';
3
+ type OwnProps<P> = Omit<P, 'invalid' | keyof FieldLabelProps>;
4
+ export type ComboboxFieldSingleProps = FieldLabelProps & OwnProps<ComboboxSingleProps>;
5
+ export type ComboboxFieldMultipleProps = FieldLabelProps & OwnProps<ComboboxMultipleProps>;
6
+ /** Single (`value: string | null`) or `multiple` (`value: readonly string[]`). */
7
+ export type ComboboxFieldProps = ComboboxFieldSingleProps | ComboboxFieldMultipleProps;
8
+ /**
9
+ * Label + Combobox + description + warning + error. Combobox props (`options`, `value`,
10
+ * `multiple`, `creatable`…) and the ref go to the text input; `className`/`style` go to
11
+ * the field wrapper. `onBlur` fires once focus leaves the whole control.
12
+ *
13
+ * <ComboboxField label="Country" options={countries} placeholder="Search countries" />
14
+ * <ComboboxField label="Labels" multiple creatable options={labels} maxSelected={5} />
15
+ */
16
+ export declare const ComboboxField: import("react").ForwardRefExoticComponent<ComboboxFieldProps & import("react").RefAttributes<HTMLInputElement>>;
17
+ export {};
@@ -0,0 +1,26 @@
1
+ import { Field as e } from "../Field/Field.js";
2
+ import { splitFieldLabelProps as t } from "../internal/fieldProps.js";
3
+ import { Combobox as n } from "../Combobox/Combobox.js";
4
+ import { forwardRef as r } from "react";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ //#region src/components/inputs/ComboboxField/ComboboxField.tsx
7
+ var a = r(function(r, a) {
8
+ let [o, s] = t(r), { id: c, disabled: l, className: u, style: d, ...f } = s;
9
+ return /* @__PURE__ */ i(e, {
10
+ ...o,
11
+ htmlFor: c,
12
+ disabled: l,
13
+ className: u,
14
+ style: d,
15
+ children: /* @__PURE__ */ i(n, {
16
+ ref: a,
17
+ id: c,
18
+ disabled: l,
19
+ ...f
20
+ })
21
+ });
22
+ });
23
+ //#endregion
24
+ export { a as ComboboxField };
25
+
26
+ //# sourceMappingURL=ComboboxField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxField.js","names":["ComboboxField","forwardRef","fieldProps","rest","splitFieldLabelProps","props","comboboxProps","Field","id","Combobox"],"sources":["../../../../src/components/inputs/ComboboxField/ComboboxField.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Field, type FieldLabelProps } from '#components/inputs/Field'\nimport {\n Combobox,\n type ComboboxMultipleProps,\n type ComboboxProps,\n type ComboboxSingleProps,\n} from '#components/inputs/Combobox'\nimport { splitFieldLabelProps } from '#components/inputs/internal/fieldProps'\n\ntype OwnProps<P> = Omit<P, 'invalid' | keyof FieldLabelProps>\n\nexport type ComboboxFieldSingleProps = FieldLabelProps & OwnProps<ComboboxSingleProps>\nexport type ComboboxFieldMultipleProps = FieldLabelProps & OwnProps<ComboboxMultipleProps>\n\n/** Single (`value: string | null`) or `multiple` (`value: readonly string[]`). */\nexport type ComboboxFieldProps = ComboboxFieldSingleProps | ComboboxFieldMultipleProps\n\n/**\n * Label + Combobox + description + warning + error. Combobox props (`options`, `value`,\n * `multiple`, `creatable`…) and the ref go to the text input; `className`/`style` go to\n * the field wrapper. `onBlur` fires once focus leaves the whole control.\n *\n * <ComboboxField label=\"Country\" options={countries} placeholder=\"Search countries\" />\n * <ComboboxField label=\"Labels\" multiple creatable options={labels} maxSelected={5} />\n */\nexport const ComboboxField = forwardRef<HTMLInputElement, ComboboxFieldProps>(\n function ComboboxField(props, ref) {\n const [fieldProps, rest] = splitFieldLabelProps(props)\n const { id, disabled, className, style, ...comboboxProps } = rest\n return (\n <Field {...fieldProps} htmlFor={id} disabled={disabled} className={className} style={style}>\n <Combobox ref={ref} id={id} disabled={disabled} {...(comboboxProps as ComboboxProps)} />\n </Field>\n )\n },\n)\n"],"mappings":";;;;;;AA0BA,IAAaA,IAAgBC,EAC3B,SAAuB,GAAO,GAAK;CACjC,IAAM,CAACC,GAAYC,KAAQC,EAAqBC,CAAK,GAC/C,EAAE,OAAI,aAAU,cAAW,UAAO,GAAGC,MAAkBH;CAC7D,OACE,kBAACI,GAAD;EAAO,GAAIL;EAAY,SAASM;EAAc;EAAqB;EAAkB;EACnF,UAAA,kBAACC,GAAD;GAAe;GAAS;GAAc;GAAU,GAAKH;EAAkC,CAAA;CAClF,CAAA;AAEX,CACF"}
@@ -0,0 +1,2 @@
1
+ export { ComboboxField } from './ComboboxField.js';
2
+ export type { ComboboxFieldMultipleProps, ComboboxFieldProps, ComboboxFieldSingleProps, } from './ComboboxField.js';