@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 @@
1
+ {"version":3,"file":"TagsInput.js","names":["control","styles","control_module_default","TagsInput_module_default","DEFAULT_DELIMITERS","KEY_DELIMITERS","defaultRemoveLabel","tag","escapeRegExp","text","splitter","parts","delimiters","d","TagsInput","markFieldAware","forwardRef","valueProp","invalidProp","idProp","disabledProp","requiredProp","readOnlyProp","describedByProp","ariaInvalid","rest","field","useResolvedField","interactive","inputRef","useRef","rootRef","composedRef","useMergedRefs","ref","tags","setTags","useControllableState","defaultValue","onValueChange","next","draft","setDraft","useState","split","clean","normalise","commit","raw","candidates","onReject","allowDuplicates","maxTags","commitDraft","removeAt","i","index","handleChange","event","last","handleKeyDown","onKeyDown","handlePaste","onPaste","input","start","end","combined","cx","className","size","target","onBlur","leading","TagList","Tag","removeLabel","htmlSize","placeholder","inputMode","numeric","trailing","name"],"sources":["../../../../src/components/inputs/TagsInput/TagsInput.tsx"],"sourcesContent":["import {\n forwardRef,\n useRef,\n useState,\n type ChangeEvent,\n type ClipboardEvent,\n type FocusEvent,\n type FocusEventHandler,\n type KeyboardEvent,\n type PointerEvent,\n} from 'react'\nimport { cx } from '#utils/cx'\nimport { Tag, TagList } from '#components/display/Tag'\nimport type { InputProps } from '#components/inputs/Input'\nimport { useControllableState } from '#components/inputs/Combobox/useControllableState'\nimport { markFieldAware, useResolvedField } from '#components/inputs/internal/FieldContext'\nimport { useMergedRefs } from '#components/inputs/internal/refs'\nimport control from '#components/inputs/internal/control.module.css'\nimport styles from './TagsInput.module.css'\n\nexport type TagsRejectReason = 'duplicate' | 'max' | 'empty'\n\nexport interface TagsInputProps extends Omit<\n InputProps,\n 'value' | 'defaultValue' | 'onChange' | 'type' | 'onBlur'\n> {\n value?: readonly string[]\n defaultValue?: readonly string[]\n onValueChange?: (tags: string[]) => void\n /**\n * What ends a tag: single characters (`','`, `';'`, `' '`) and/or the keys `'Enter'` and\n * `'Tab'`. Character delimiters also split pasted text; `'Enter'` makes pasted line\n * breaks split too. Default `[',', 'Enter']`.\n */\n delimiters?: readonly string[]\n /** Further tags are rejected (`onReject(tag, 'max')`) once there are this many. */\n maxTags?: number\n /** Default `false`: a tag already in the list is rejected (`'duplicate'`). */\n allowDuplicates?: boolean\n /** `trim` (default) trims whitespace; `lowercase` trims and lower-cases; `none` keeps the text as typed. */\n normalise?: 'none' | 'trim' | 'lowercase'\n /** A typed tag wasn't added. */\n onReject?: (tag: string, reason: TagsRejectReason) => void\n /** Accessible name of a chip's remove button. Default `Remove <tag>`. */\n removeLabel?: (tag: string) => string\n /** Fires once focus leaves the whole control (input and chip buttons). */\n onBlur?: FocusEventHandler<HTMLElement>\n}\n\nconst DEFAULT_DELIMITERS: readonly string[] = [',', 'Enter']\nconst KEY_DELIMITERS = new Set(['Enter', 'Tab'])\nconst defaultRemoveLabel = (tag: string) => `Remove ${tag}`\n\nfunction escapeRegExp(text: string): string {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n}\n\n/** Splits text on the character delimiters (and line breaks when Enter is a delimiter). */\nfunction splitter(delimiters: readonly string[]): RegExp | null {\n const parts = delimiters.filter((d) => !KEY_DELIMITERS.has(d)).map(escapeRegExp)\n if (delimiters.includes('Enter')) parts.push('\\\\r?\\\\n')\n return parts.length > 0 ? new RegExp(parts.join('|')) : null\n}\n\n/**\n * Free-form tags in one box: type and press Enter (or a comma) to add, Backspace on an\n * empty box removes the last, each chip has a remove button. Paste splits on the\n * delimiters. The ref and native input props go to the text input; `className`/`style`\n * go to the box. With `name`, each tag is submitted as its own hidden input.\n *\n * <TagsInput placeholder=\"Add a label\" defaultValue={['Design']} maxTags={8} />\n */\nexport const TagsInput = markFieldAware(\n forwardRef<HTMLInputElement, TagsInputProps>(function TagsInput(\n {\n value: valueProp,\n defaultValue,\n onValueChange,\n delimiters = DEFAULT_DELIMITERS,\n maxTags,\n allowDuplicates = false,\n normalise = 'trim',\n onReject,\n removeLabel = defaultRemoveLabel,\n size = 'md',\n leading,\n trailing,\n invalid: invalidProp,\n numeric = false,\n htmlSize,\n id: idProp,\n disabled: disabledProp,\n required: requiredProp,\n readOnly: readOnlyProp,\n inputMode,\n name,\n form,\n placeholder,\n className,\n style,\n onKeyDown,\n onPaste,\n onBlur,\n 'aria-describedby': describedByProp,\n 'aria-invalid': ariaInvalid,\n ...rest\n },\n ref,\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 interactive = !field.disabled && !field.readOnly\n const inputRef = useRef<HTMLInputElement>(null)\n const rootRef = useRef<HTMLDivElement>(null)\n const composedRef = useMergedRefs(ref, inputRef)\n\n const [tags, setTags] = useControllableState<readonly string[]>(\n valueProp,\n defaultValue ?? [],\n (next) => onValueChange?.([...next]),\n )\n const [draft, setDraft] = useState('')\n const split = splitter(delimiters)\n\n const clean = (text: string) =>\n normalise === 'none'\n ? text\n : normalise === 'lowercase'\n ? text.trim().toLowerCase()\n : text.trim()\n\n /** Adds every candidate it can, reporting the rest. Returns whether anything was added. */\n const commit = (candidates: readonly string[]): boolean => {\n if (!interactive) return false\n const next = [...tags]\n for (const raw of candidates) {\n const tag = clean(raw)\n if (tag.trim() === '') {\n if (raw !== '') onReject?.(raw, 'empty')\n continue\n }\n if (!allowDuplicates && next.includes(tag)) {\n onReject?.(tag, 'duplicate')\n continue\n }\n if (maxTags !== undefined && next.length >= maxTags) {\n onReject?.(tag, 'max')\n continue\n }\n next.push(tag)\n }\n if (next.length === tags.length) return false\n setTags(next)\n return true\n }\n\n const commitDraft = () => {\n if (draft === '') return\n commit([draft])\n setDraft('')\n }\n\n const removeAt = (index: number) => {\n if (!interactive) return\n setTags(tags.filter((_, i) => i !== index))\n }\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const text = event.target.value\n // Typed (or IME/mobile-inserted) delimiter characters end a tag.\n if (split?.test(text)) {\n const parts = text.split(split)\n const last = parts.pop() ?? ''\n commit(parts)\n setDraft(last)\n return\n }\n setDraft(text)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event)\n if (event.defaultPrevented || event.nativeEvent.isComposing) return\n const isDelimiter =\n delimiters.includes(event.key) && (KEY_DELIMITERS.has(event.key) || event.key.length === 1)\n if (isDelimiter && interactive) {\n if (event.key === 'Tab') {\n // Tab still moves focus; only a non-empty draft becomes a tag.\n commitDraft()\n return\n }\n if (draft === '' && event.key === 'Enter') return // let Enter submit the form\n event.preventDefault()\n commitDraft()\n return\n }\n if (event.key === 'Backspace' && draft === '' && interactive && tags.length > 0) {\n event.preventDefault()\n removeAt(tags.length - 1)\n }\n }\n\n const handlePaste = (event: ClipboardEvent<HTMLInputElement>) => {\n onPaste?.(event)\n if (event.defaultPrevented || !interactive || !split) return\n const text = event.clipboardData.getData('text')\n if (!split.test(text)) return\n event.preventDefault()\n const input = event.currentTarget\n const start = input.selectionStart ?? draft.length\n const end = input.selectionEnd ?? draft.length\n const combined = draft.slice(0, start) + text + draft.slice(end)\n commit(combined.split(split))\n setDraft('')\n }\n\n /** Focus left the whole control: a half-typed tag is kept, not lost. */\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n const next = event.relatedTarget as Node | null\n if (next && rootRef.current?.contains(next)) return\n commitDraft()\n onBlur?.(event)\n }\n\n // Clicking the box's padding focuses the input, like one native control.\n const handlePointerDown = (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 }\n\n return (\n <div\n ref={rootRef}\n className={cx(control.box, styles.root, className)}\n style={style}\n data-size={size}\n data-invalid={field.invalid || undefined}\n data-disabled={field.disabled || undefined}\n data-readonly={field.readOnly || undefined}\n onPointerDown={handlePointerDown}\n onBlur={handleBlur}\n >\n {leading != null ? (\n <span className={styles.adornment} data-slot=\"leading\">\n {leading}\n </span>\n ) : null}\n <div className={styles.values}>\n {tags.length > 0 ? (\n <TagList className={styles.chips}>\n {tags.map((tag, index) => (\n <Tag\n // Duplicates are allowed when asked for, so the index is part of the key.\n key={`${String(index)}:${tag}`}\n className={styles.chip}\n onRemove={\n interactive\n ? () => {\n removeAt(index)\n inputRef.current?.focus()\n }\n : undefined\n }\n removeLabel={removeLabel(tag)}\n >\n {tag}\n </Tag>\n ))}\n </TagList>\n ) : null}\n <input\n ref={composedRef}\n id={field.id}\n type=\"text\"\n className={styles.input}\n value={draft}\n size={htmlSize}\n placeholder={tags.length === 0 ? placeholder : undefined}\n disabled={field.disabled}\n readOnly={field.readOnly}\n inputMode={inputMode ?? (numeric ? 'decimal' : undefined)}\n enterKeyHint=\"enter\"\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 onPaste={handlePaste}\n />\n </div>\n {trailing != null ? (\n <span className={styles.adornment} data-slot=\"trailing\">\n {trailing}\n </span>\n ) : null}\n {name !== undefined\n ? tags.map((tag, index) => (\n <input\n key={`${String(index)}:${tag}`}\n type=\"hidden\"\n name={name}\n value={tag}\n form={form}\n disabled={field.disabled || undefined}\n />\n ))\n : null}\n </div>\n )\n }),\n)\n"],"mappings":";;;;;;;;;;AAiDA,IAAMI,KAAwC,CAAC,KAAK,OAAO,GACrDC,oBAAiB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,GACzCC,MAAsB,MAAgB,UAAUC;AAEtD,SAASC,EAAa,GAAsB;CAC1C,OAAOC,EAAK,QAAQ,uBAAuB,MAAM;AACnD;AAGA,SAASC,EAAS,GAA8C;CAC9D,IAAMC,IAAQC,EAAW,QAAQ,MAAM,CAACP,EAAe,IAAIQ,CAAC,CAAC,CAAC,CAAC,IAAIL,CAAY;CAE/E,OADII,EAAW,SAAS,OAAO,KAAGD,EAAM,KAAK,SAAS,GAC/CA,EAAM,SAAS,IAAI,IAAI,OAAOA,EAAM,KAAK,GAAG,CAAC,IAAI;AAC1D;AAUA,IAAaG,IAAYC,EACvBC,EAA6C,SAC3C,EACE,OAAOC,GACP,iBACA,kBACA,gBAAab,IACb,YACA,qBAAkB,IAClB,eAAY,QACZ,aACA,iBAAcE,IACd,UAAO,MACP,YACA,aACA,SAASY,IACT,cAAU,IACV,cACA,IAAIC,IACJ,UAAUC,IACV,UAAUC,GACV,UAAUC,GACV,cACA,SACA,SACA,gBACA,cACA,UACA,cACA,YACA,WACA,oBAAoBC,GACpB,gBAAgBC,GAChB,GAAGC,KAEL,GACA;CACA,IAAMC,IAAQC,EAAiB;EAC7B,IAAIR;EACJ,aAAaI;EACb,SAASL;EACT;EACA,UAAUG;EACV,UAAUD;EACV,UAAUE;CACZ,CAAC,GACKM,IAAc,CAACF,EAAM,YAAY,CAACA,EAAM,UACxCG,IAAWC,EAAyB,IAAI,GACxCC,IAAUD,EAAuB,IAAI,GACrCE,IAAcC,EAAcC,GAAKL,CAAQ,GAEzC,CAACM,GAAMC,KAAWC,EACtBpB,GACAqB,KAAgB,CAAC,IAChB,MAASC,IAAgB,CAAC,GAAGC,CAAI,CAAC,CACrC,GACM,CAACC,GAAOC,KAAYC,EAAS,EAAE,GAC/BC,IAAQlC,EAASE,CAAU,GAE3BiC,MAAS,MACbC,MAAc,SACVrC,IACAqC,MAAc,cACZrC,EAAK,KAAK,CAAC,CAAC,YAAY,IACxBA,EAAK,KAAK,GAGZsC,KAAU,MAA2C;EACzD,IAAI,CAACnB,GAAa,OAAO;EACzB,IAAMY,IAAO,CAAC,GAAGL,CAAI;EACrB,KAAK,IAAMa,KAAOC,GAAY;GAC5B,IAAM1C,IAAMsC,GAAMG,CAAG;GACrB,IAAIzC,EAAI,KAAK,MAAM,IAAI;IACrB,AAAIyC,MAAQ,MAAIE,IAAWF,GAAK,OAAO;IACvC;GACF;GACA,IAAI,CAACG,KAAmBX,EAAK,SAASjC,CAAG,GAAG;IAC1C,IAAWA,GAAK,WAAW;IAC3B;GACF;GACA,IAAI6C,MAAY,KAAA,KAAaZ,EAAK,UAAUY,GAAS;IACnD,IAAW7C,GAAK,KAAK;IACrB;GACF;GACA,EAAK,KAAKA,CAAG;EACf;EAGA,OAFIiC,EAAK,WAAWL,EAAK,WACzBC,EAAQI,CAAI,GACL;CACT,GAEMa,UAAoB;EACxB,AAAIZ,MAAU,OACdM,EAAO,CAACN,CAAK,CAAC,GACdC,EAAS,EAAE;CACb,GAEMY,KAAY,MAAkB;EAClC,AAAK1B,KACLQ,EAAQD,EAAK,QAAQ,GAAG,MAAMoB,MAAMC,CAAK,CAAC;CAC5C,GAEMC,MAAgB,MAAyC;EAC7D,IAAMhD,IAAOiD,EAAM,OAAO;EAE1B,IAAId,GAAO,KAAKnC,CAAI,GAAG;GACrB,IAAME,IAAQF,EAAK,MAAMmC,CAAK,GACxBe,IAAOhD,EAAM,IAAI,KAAK;GAE5B,AADAoC,EAAOpC,CAAK,GACZ+B,EAASiB,CAAI;GACb;EACF;EACA,EAASlD,CAAI;CACf,GAEMmD,MAAiB,MAA2C;EAEhE,IADAC,IAAYH,CAAK,GACb,IAAM,oBAAoBA,EAAM,YAAY,cAGhD;OADE9C,EAAW,SAAS8C,EAAM,GAAG,MAAMrD,EAAe,IAAIqD,EAAM,GAAG,KAAKA,EAAM,IAAI,WAAW,MACxE9B,GAAa;IAC9B,IAAI8B,EAAM,QAAQ,OAAO;KAEvB,EAAY;KACZ;IACF;IACA,IAAIjB,MAAU,MAAMiB,EAAM,QAAQ,SAAS;IAE3C,AADAA,EAAM,eAAe,GACrBL,EAAY;IACZ;GACF;GACA,AAAIK,EAAM,QAAQ,eAAejB,MAAU,MAAMb,KAAeO,EAAK,SAAS,MAC5EuB,EAAM,eAAe,GACrBJ,EAASnB,EAAK,SAAS,CAAC;EAH1B;CAKF,GAEM2B,MAAe,MAA4C;EAE/D,IADAC,IAAUL,CAAK,GACXA,EAAM,oBAAoB,CAAC9B,KAAe,CAACgB,GAAO;EACtD,IAAMnC,IAAOiD,EAAM,cAAc,QAAQ,MAAM;EAC/C,IAAI,CAACd,EAAM,KAAKnC,CAAI,GAAG;EACvB,EAAM,eAAe;EACrB,IAAMuD,IAAQN,EAAM,eACdO,IAAQD,EAAM,kBAAkBvB,EAAM,QACtCyB,IAAMF,EAAM,gBAAgBvB,EAAM,QAClC0B,IAAW1B,EAAM,MAAM,GAAGwB,CAAK,IAAIxD,IAAOgC,EAAM,MAAMyB,CAAG;EAE/D,AADAnB,EAAOoB,EAAS,MAAMvB,CAAK,CAAC,GAC5BF,EAAS,EAAE;CACb;CAkBA,OACE,kBAAC,OAAD;EACE,KAAKX;EACL,WAAWqC,EAAGpE,EAAQ,KAAKC,EAAO,MAAMoE,CAAS;EAC1C;EACP,aAAWC;EACX,gBAAc5C,EAAM,WAAW,KAAA;EAC/B,iBAAeA,EAAM,YAAY,KAAA;EACjC,iBAAeA,EAAM,YAAY,KAAA;EACjC,gBAhBuB,MAAwC;GACjE,IAAM6C,IAASb,EAAM;GACrB,AAAIa,MAAW1C,EAAS,WAAW0C,EAAO,QAAQ,kBAAkB,MACpEb,EAAM,eAAe,GACrB7B,EAAS,SAAS,MAAM;EAC1B;EAYI,SAzBgB,MAAsC;GACxD,IAAMW,IAAOkB,EAAM;GACnB,AAAIlB,KAAQT,EAAQ,SAAS,SAASS,CAAI,MAC1Ca,EAAY,GACZmB,IAASd,CAAK;EAChB;EAWE,UAAA;GAWGe,KAAW,OAIR,OAHF,kBAAC,QAAD;IAAM,WAAWxE,EAAO;IAAW,aAAU;IAC1C,UAAAwE;GACG,CAAA;GAER,kBAAC,OAAD;IAAK,WAAWxE,EAAO;IAAvB,UAAA,CACGkC,EAAK,SAAS,IACb,kBAACuC,GAAD;KAAS,WAAWzE,EAAO;KACxB,UAAAkC,EAAK,KAAK,GAAK,MACd,kBAACwC,GAAD;MAGE,WAAW1E,EAAO;MAClB,UACE2B,UACU;OAEJ,AADA0B,EAASE,CAAK,GACd3B,EAAS,SAAS,MAAM;MAC1B,IACA,KAAA;MAEN,aAAa+C,EAAYrE,CAAG;MAE3B,UAAAA;KACE,GAbE,GAAG,OAAOiD,CAAK,EAAE,GAAGjD,GAatB,CACN;IACM,CAAA,IACP,MACJ,kBAAC,SAAD;KACE,KAAKyB;KACL,IAAIN,EAAM;KACV,MAAK;KACL,WAAWzB,EAAO;KAClB,OAAOwC;KACP,MAAMoC;KACN,aAAa1C,EAAK,WAAW,IAAI2C,IAAc,KAAA;KAC/C,UAAUpD,EAAM;KAChB,UAAUA,EAAM;KAChB,WAAWqD,MAAcC,KAAU,YAAY,KAAA;KAC/C,cAAa;KACb,oBAAkBtD,EAAM;KACxB,gBAAcA,EAAM,WAAW,KAAA;KAC/B,iBAAeA,EAAM,YAAY,KAAA;KACjC,aAAWA,EAAM,QAAQ,KAAA;KACzB,GAAID;KACJ,UAAUgC;KACV,WAAWG;KACX,SAASE;IACV,CAAA,CACE;;GACJmB,KAAY,OAIT,OAHF,kBAAC,QAAD;IAAM,WAAWhF,EAAO;IAAW,aAAU;IAC1C,UAAAgF;GACG,CAAA;GAEPC,MAAS,KAAA,IAWN,OAVA/C,EAAK,KAAK,GAAK,MACb,kBAAC,SAAD;IAEE,MAAK;IACC;IACN,OAAO5B;IACD;IACN,UAAUmB,EAAM,YAAY,KAAA;GAC7B,GANM,GAAG,OAAO8B,CAAK,EAAE,GAAGjD,GAM1B,CACF;EAEF;;AAET,CAAC,CACH"}
@@ -0,0 +1,13 @@
1
+ //#region src/components/inputs/TagsInput/TagsInput.module.css
2
+ var e = "kiln-TagsInput__root", t = "kiln-TagsInput__values", n = "kiln-TagsInput__chips", r = "kiln-TagsInput__chip", i = "kiln-TagsInput__input", a = "kiln-TagsInput__adornment", o = {
3
+ root: e,
4
+ values: t,
5
+ chips: n,
6
+ chip: r,
7
+ input: i,
8
+ adornment: a
9
+ };
10
+ //#endregion
11
+ export { a as adornment, r as chip, n as chips, o as default, i as input, e as root, t as values };
12
+
13
+ //# sourceMappingURL=TagsInput.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagsInput.module.js","names":["root","values","chips","chip","input","adornment","TagsInput_module_default"],"sources":["../../../../src/components/inputs/TagsInput/TagsInput.module.css"],"sourcesContent":["/*\n * The box (border, radius, sizes, states) comes from inputs/internal/control.module.css;\n * this file lays out the chips and the text input inside it. Chips are `Tag`s, so they\n * follow `--tag-radius`.\n */\n.root {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n inline-size: 100%;\n padding-block: calc(var(--space-1) * 0.75);\n padding-inline: var(--_px);\n cursor: text;\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 min-inline-size: 8ch;\n min-block-size: calc(var(--space-5) * 0.9);\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n outline: none;\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.adornment {\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: var(--space-1);\n color: var(--color-ink-subtle);\n font-size: 0.875em;\n white-space: nowrap;\n user-select: none;\n}\n.adornment > svg {\n inline-size: 1.15em;\n block-size: 1.15em;\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { TagsInput } from './TagsInput.js';
2
+ export type { TagsInputProps, TagsRejectReason } from './TagsInput.js';
@@ -0,0 +1,18 @@
1
+ import { type FieldLabelProps } from '../Field/index.js';
2
+ import { type InputProps } from '../Input/index.js';
3
+ export interface TextFieldProps extends FieldLabelProps, Omit<InputProps, 'invalid'> {
4
+ /** Called with the new string on every change (alongside the native `onChange`). */
5
+ onValueChange?: (value: string) => void;
6
+ /**
7
+ * Shows a "12 / 280" character counter under the field (needs `maxLength`). Announced
8
+ * politely only once the remaining count is within 10% of the limit.
9
+ */
10
+ showCount?: boolean;
11
+ }
12
+ /**
13
+ * Label + Input + description + error in one. Input props (`value`, `type`, `leading`,
14
+ * `numeric`…) and the ref go to the input; `className`/`style` go to the field wrapper.
15
+ *
16
+ * <TextField label="Amount" numeric leading="$" trailing="AUD" error={errors.amount} />
17
+ */
18
+ export declare const TextField: import("react").ForwardRefExoticComponent<TextFieldProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,40 @@
1
+ import { FieldCount as e } from "../internal/messages.js";
2
+ import { Field as t } from "../Field/Field.js";
3
+ import { Input as n } from "../Input/Input.js";
4
+ import { splitFieldLabelProps as r } from "../internal/fieldProps.js";
5
+ import { forwardRef as i, useId as a, useState as o } from "react";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ //#region src/components/inputs/TextField/TextField.tsx
8
+ var l = i(function(i, l) {
9
+ let [u, d] = r(i), { id: f, disabled: p, className: m, style: h, onChange: g, onValueChange: _, showCount: v, maxLength: y, ...b } = d, x = a(), S = `${f ?? `${x}control`}-count`, [C, w] = o(() => typeof b.defaultValue == "string" ? b.defaultValue : ""), T = typeof b.value == "string" ? b.value : C, E = (e) => {
10
+ w(e.target.value), g?.(e), _?.(e.target.value);
11
+ }, D = v === !0 && y != null, O = y == null ? 0 : y - T.length, k = y != null && O <= Math.ceil(y * .1);
12
+ return /* @__PURE__ */ c(t, {
13
+ ...u,
14
+ htmlFor: f,
15
+ disabled: p,
16
+ className: m,
17
+ style: h,
18
+ children: [/* @__PURE__ */ s(n, {
19
+ ref: l,
20
+ id: f,
21
+ disabled: p,
22
+ maxLength: y,
23
+ onChange: E,
24
+ "aria-describedby": D ? S : void 0,
25
+ ...b
26
+ }), D ? /* @__PURE__ */ c(e, {
27
+ id: S,
28
+ live: k,
29
+ children: [
30
+ T.length,
31
+ " / ",
32
+ y
33
+ ]
34
+ }) : null]
35
+ });
36
+ });
37
+ //#endregion
38
+ export { l as TextField };
39
+
40
+ //# sourceMappingURL=TextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.js","names":["TextField","forwardRef","fieldProps","rest","splitFieldLabelProps","props","inputRest","autoId","useId","countId","id","internalValue","setInternalValue","useState","currentValue","handleChange","event","onChange","onValueChange","showCounter","showCount","maxLength","remaining","nearLimit","Field","Input","FieldCount"],"sources":["../../../../src/components/inputs/TextField/TextField.tsx"],"sourcesContent":["import { forwardRef, useId, useState, type ChangeEvent } from 'react'\nimport { Field, type FieldLabelProps } from '#components/inputs/Field'\nimport { Input, type InputProps } from '#components/inputs/Input'\nimport { splitFieldLabelProps } from '#components/inputs/internal/fieldProps'\nimport { FieldCount } from '#components/inputs/internal/messages'\n\nexport interface TextFieldProps extends FieldLabelProps, Omit<InputProps, 'invalid'> {\n /** Called with the new string on every change (alongside the native `onChange`). */\n onValueChange?: (value: string) => void\n /**\n * Shows a \"12 / 280\" character counter under the field (needs `maxLength`). Announced\n * politely only once the remaining count is within 10% of the limit.\n */\n showCount?: boolean\n}\n\n/**\n * Label + Input + description + error in one. Input props (`value`, `type`, `leading`,\n * `numeric`…) and the ref go to the input; `className`/`style` go to the field wrapper.\n *\n * <TextField label=\"Amount\" numeric leading=\"$\" trailing=\"AUD\" error={errors.amount} />\n */\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField(props, ref) {\n const [fieldProps, rest] = splitFieldLabelProps(props)\n const {\n id,\n disabled,\n className,\n style,\n onChange,\n onValueChange,\n showCount,\n maxLength,\n ...inputRest\n } = rest\n const autoId = useId()\n const controlId = id ?? `${autoId}control`\n const countId = `${controlId}-count`\n\n const [internalValue, setInternalValue] = useState(() =>\n typeof inputRest.defaultValue === 'string' ? inputRest.defaultValue : '',\n )\n const currentValue = typeof inputRest.value === 'string' ? inputRest.value : internalValue\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalValue(event.target.value)\n onChange?.(event)\n onValueChange?.(event.target.value)\n }\n\n const showCounter = showCount === true && maxLength != null\n const remaining = maxLength != null ? maxLength - currentValue.length : 0\n const nearLimit = maxLength != null && remaining <= Math.ceil(maxLength * 0.1)\n\n return (\n <Field {...fieldProps} htmlFor={id} disabled={disabled} className={className} style={style}>\n <Input\n ref={ref}\n id={id}\n disabled={disabled}\n maxLength={maxLength}\n onChange={handleChange}\n aria-describedby={showCounter ? countId : undefined}\n {...inputRest}\n />\n {showCounter ? (\n <FieldCount id={countId} live={nearLimit}>\n {currentValue.length} / {maxLength}\n </FieldCount>\n ) : null}\n </Field>\n )\n },\n)\n"],"mappings":";;;;;;;AAsBA,IAAaA,IAAYC,EACvB,SAAmB,GAAO,GAAK;CAC7B,IAAM,CAACC,GAAYC,KAAQC,EAAqBC,CAAK,GAC/C,EACJ,OACA,aACA,cACA,UACA,aACA,kBACA,cACA,cACA,GAAGC,MACDH,GACEI,IAASC,EAAM,GAEfC,IAAU,GADEC,KAAM,GAAGH,EAAO,SACL,SAEvB,CAACI,GAAeC,KAAoBC,QACxC,OAAOP,EAAU,gBAAiB,WAAWA,EAAU,eAAe,EACxE,GACMQ,IAAe,OAAOR,EAAU,SAAU,WAAWA,EAAU,QAAQK,GAEvEI,KAAgB,MAAyC;EAG7D,AAFAH,EAAiBI,EAAM,OAAO,KAAK,GACnCC,IAAWD,CAAK,GAChBE,IAAgBF,EAAM,OAAO,KAAK;CACpC,GAEMG,IAAcC,MAAc,MAAQC,KAAa,MACjDC,IAAYD,KAAa,OAAyC,IAAlCA,IAAYP,EAAa,QACzDS,IAAYF,KAAa,QAAQC,KAAa,KAAK,KAAKD,IAAY,EAAG;CAE7E,OACE,kBAACG,GAAD;EAAO,GAAItB;EAAY,SAASQ;EAAc;EAAqB;EAAkB;EAArF,UAAA,CACE,kBAACe,GAAD;GACO;GACD;GACM;GACC;GACX,UAAUV;GACV,oBAAkBI,IAAcV,IAAU,KAAA;GAC1C,GAAIH;EACL,CAAA,GACAa,IACC,kBAACO,GAAD;GAAY,IAAIjB;GAAS,MAAMc;GAA/B,UAAA;IACGT,EAAa;IAAO;IAAIO;GACf;EACV,CAAA,IAAA,IACC;;AAEX,CACF"}
@@ -0,0 +1,2 @@
1
+ export { TextField } from './TextField.js';
2
+ export type { TextFieldProps } from './TextField.js';
@@ -0,0 +1,20 @@
1
+ import { type TextareaHTMLAttributes } from 'react';
2
+ import type { Size } from '../../../utils/tokens.js';
3
+ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
4
+ size?: Size;
5
+ /** Critical border + `aria-invalid`. Inside a `<Field error>` this is set for you. */
6
+ invalid?: boolean;
7
+ /**
8
+ * Grow with the content instead of scrolling. `rows` becomes the minimum height and
9
+ * `maxRows` the cap. Uses CSS `field-sizing: content`, with a small script fallback.
10
+ */
11
+ autoResize?: boolean;
12
+ /** With `autoResize`: stop growing after this many rows and scroll instead. */
13
+ maxRows?: number;
14
+ }
15
+ /**
16
+ * Multi-line text. Same box, states and focus ring as `Input`.
17
+ *
18
+ * <Textarea autoResize rows={2} maxRows={8} />
19
+ */
20
+ export declare const Textarea: import("react").ForwardRefExoticComponent<TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
@@ -0,0 +1,61 @@
1
+ import { cx as e } from "../../../utils/cx.js";
2
+ import { mergeStyles as t } from "../../../utils/responsive.js";
3
+ import { useMergedRefs as n } from "../internal/refs.js";
4
+ import { markFieldAware as r, useResolvedField as i } from "../internal/FieldContext.js";
5
+ import a from "../internal/control.module.js";
6
+ import o from "./Textarea.module.js";
7
+ import { forwardRef as s, useEffect as c, useRef as l } from "react";
8
+ import { jsx as u } from "react/jsx-runtime";
9
+ //#region src/components/inputs/Textarea/Textarea.tsx
10
+ function d() {
11
+ return typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("field-sizing", "content");
12
+ }
13
+ var f = r(s(function({ size: r = "md", invalid: s, autoResize: f = !1, rows: p = 3, maxRows: m, id: h, disabled: g, required: _, readOnly: v, className: y, style: b, "aria-describedby": x, "aria-invalid": S, ...C }, w) {
14
+ let T = l(null), E = n(w, T), D = i({
15
+ id: h,
16
+ describedBy: x,
17
+ invalid: s,
18
+ ariaInvalid: S,
19
+ disabled: g,
20
+ readOnly: v
21
+ });
22
+ return c(() => {
23
+ let e = T.current;
24
+ if (!f || !e || d()) return;
25
+ let t = () => {
26
+ e.style.height = "auto";
27
+ let t = e.offsetHeight - e.clientHeight;
28
+ e.style.height = `${String(e.scrollHeight + t)}px`;
29
+ };
30
+ return t(), e.addEventListener("input", t), () => {
31
+ e.removeEventListener("input", t);
32
+ };
33
+ }, [f, C.value]), /* @__PURE__ */ u("textarea", {
34
+ ref: E,
35
+ id: D.id,
36
+ rows: p,
37
+ className: e(a.box, o.textarea, y),
38
+ style: t(f ? {
39
+ "--_rows": p,
40
+ "--_max-rows": m
41
+ } : void 0, b),
42
+ "data-size": r,
43
+ "data-auto-resize": f || void 0,
44
+ "data-max-rows": f && m ? "" : void 0,
45
+ "data-invalid": D.invalid || void 0,
46
+ "data-disabled": D.disabled || void 0,
47
+ "data-readonly": D.readOnly || void 0,
48
+ disabled: D.disabled,
49
+ readOnly: D.readOnly,
50
+ required: _ ?? D.required,
51
+ "aria-describedby": D.describedBy,
52
+ "aria-invalid": D.invalid || void 0,
53
+ "aria-required": D.required || void 0,
54
+ "aria-busy": D.busy || void 0,
55
+ ...C
56
+ });
57
+ }));
58
+ //#endregion
59
+ export { f as Textarea };
60
+
61
+ //# sourceMappingURL=Textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.js","names":["control","styles","control_module_default","Textarea_module_default","supportsFieldSizing","Textarea","markFieldAware","forwardRef","invalidProp","idProp","disabledProp","requiredProp","describedByProp","ariaInvalid","rest","innerRef","useRef","composedRef","useMergedRefs","ref","field","useResolvedField","useEffect","el","autoResize","fit","border","cx","className","mergeStyles","rows","maxRows","style","size"],"sources":["../../../../src/components/inputs/Textarea/Textarea.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useRef,\n type CSSProperties,\n type TextareaHTMLAttributes,\n} from 'react'\nimport { cx } from '#utils/cx'\nimport { mergeStyles } from '#utils/responsive'\nimport type { Size } from '#utils/tokens'\nimport { markFieldAware, useResolvedField } from '#components/inputs/internal/FieldContext'\nimport { useMergedRefs } from '#components/inputs/internal/refs'\nimport control from '#components/inputs/internal/control.module.css'\nimport styles from './Textarea.module.css'\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n size?: Size\n /** Critical border + `aria-invalid`. Inside a `<Field error>` this is set for you. */\n invalid?: boolean\n /**\n * Grow with the content instead of scrolling. `rows` becomes the minimum height and\n * `maxRows` the cap. Uses CSS `field-sizing: content`, with a small script fallback.\n */\n autoResize?: boolean\n /** With `autoResize`: stop growing after this many rows and scroll instead. */\n maxRows?: number\n}\n\nfunction supportsFieldSizing(): boolean {\n return (\n typeof CSS !== 'undefined' &&\n typeof CSS.supports === 'function' &&\n CSS.supports('field-sizing', 'content')\n )\n}\n\n/**\n * Multi-line text. Same box, states and focus ring as `Input`.\n *\n * <Textarea autoResize rows={2} maxRows={8} />\n */\nexport const Textarea = markFieldAware(\n forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(\n {\n size = 'md',\n invalid: invalidProp,\n autoResize = false,\n rows = 3,\n maxRows,\n id: idProp,\n disabled: disabledProp,\n required: requiredProp,\n readOnly,\n className,\n style,\n 'aria-describedby': describedByProp,\n 'aria-invalid': ariaInvalid,\n ...rest\n },\n ref,\n ) {\n const innerRef = useRef<HTMLTextAreaElement>(null)\n const composedRef = useMergedRefs(ref, innerRef)\n const field = useResolvedField({\n id: idProp,\n describedBy: describedByProp,\n invalid: invalidProp,\n ariaInvalid,\n disabled: disabledProp,\n readOnly,\n })\n\n // Fallback for browsers without field-sizing: size to scrollHeight on every input.\n useEffect(() => {\n const el = innerRef.current\n if (!autoResize || !el || supportsFieldSizing()) return\n const fit = () => {\n el.style.height = 'auto'\n const border = el.offsetHeight - el.clientHeight\n el.style.height = `${String(el.scrollHeight + border)}px`\n }\n fit()\n el.addEventListener('input', fit)\n return () => {\n el.removeEventListener('input', fit)\n }\n }, [autoResize, rest.value])\n\n return (\n <textarea\n ref={composedRef}\n id={field.id}\n rows={rows}\n className={cx(control.box, styles.textarea, className)}\n style={mergeStyles(\n autoResize ? ({ '--_rows': rows, '--_max-rows': maxRows } as CSSProperties) : undefined,\n style,\n )}\n data-size={size}\n data-auto-resize={autoResize || undefined}\n data-max-rows={autoResize && maxRows ? '' : undefined}\n data-invalid={field.invalid || undefined}\n data-disabled={field.disabled || undefined}\n data-readonly={field.readOnly || undefined}\n disabled={field.disabled}\n readOnly={field.readOnly}\n required={requiredProp ?? field.required}\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 />\n )\n }),\n)\n"],"mappings":";;;;;;;;;AA4BA,SAASI,IAA+B;CACtC,OACE,OAAO,MAAQ,OACf,OAAO,IAAI,YAAa,cACxB,IAAI,SAAS,gBAAgB,SAAS;AAE1C;AAOA,IAAaC,IAAWC,EACtBC,EAA+C,SAC7C,EACE,UAAO,MACP,SAASC,GACT,gBAAa,IACb,UAAO,GACP,YACA,IAAIC,GACJ,UAAUC,GACV,UAAUC,GACV,aACA,cACA,UACA,oBAAoBC,GACpB,gBAAgBC,GAChB,GAAGC,KAEL,GACA;CACA,IAAMC,IAAWC,EAA4B,IAAI,GAC3CC,IAAcC,EAAcC,GAAKJ,CAAQ,GACzCK,IAAQC,EAAiB;EAC7B,IAAIZ;EACJ,aAAaG;EACb,SAASJ;EACT;EACA,UAAUE;EACV;CACF,CAAC;CAkBD,OAfAY,QAAgB;EACd,IAAMC,IAAKR,EAAS;EACpB,IAAI,CAACS,KAAc,CAACD,KAAMnB,EAAoB,GAAG;EACjD,IAAMqB,UAAY;GAChB,EAAG,MAAM,SAAS;GAClB,IAAMC,IAASH,EAAG,eAAeA,EAAG;GACpC,EAAG,MAAM,SAAS,GAAG,OAAOA,EAAG,eAAeG,CAAM,EAAE;EACxD;EAGA,OAFAD,EAAI,GACJF,EAAG,iBAAiB,SAASE,CAAG,SACnB;GACX,EAAG,oBAAoB,SAASA,CAAG;EACrC;CACF,GAAG,CAACD,GAAYV,EAAK,KAAK,CAAC,GAGzB,kBAAC,YAAD;EACE,KAAKG;EACL,IAAIG,EAAM;EACJ;EACN,WAAWO,EAAG3B,EAAQ,KAAKC,EAAO,UAAU2B,CAAS;EACrD,OAAOC,EACLL,IAAc;GAAE,WAAWM;GAAM,eAAeC;EAAQ,IAAsB,KAAA,GAC9EC,CACF;EACA,aAAWC;EACX,oBAAkBT,KAAc,KAAA;EAChC,iBAAeA,KAAcO,IAAU,KAAK,KAAA;EAC5C,gBAAcX,EAAM,WAAW,KAAA;EAC/B,iBAAeA,EAAM,YAAY,KAAA;EACjC,iBAAeA,EAAM,YAAY,KAAA;EACjC,UAAUA,EAAM;EAChB,UAAUA,EAAM;EAChB,UAAUT,KAAgBS,EAAM;EAChC,oBAAkBA,EAAM;EACxB,gBAAcA,EAAM,WAAW,KAAA;EAC/B,iBAAeA,EAAM,YAAY,KAAA;EACjC,aAAWA,EAAM,QAAQ,KAAA;EACzB,GAAIN;CACL,CAAA;AAEL,CAAC,CACH"}
@@ -0,0 +1,6 @@
1
+ //#region src/components/inputs/Textarea/Textarea.module.css
2
+ var e = "kiln-Textarea__textarea", t = { textarea: e };
3
+ //#endregion
4
+ export { t as default, e as textarea };
5
+
6
+ //# sourceMappingURL=Textarea.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.module.js","names":["textarea","Textarea_module_default"],"sources":["../../../../src/components/inputs/Textarea/Textarea.module.css"],"sourcesContent":["/*\n * Box, states and focus come from inputs/internal/control.module.css.\n * Private vars --_rows / --_max-rows are written inline by the component for autoResize.\n */\n.textarea {\n --_rows: 3; /* overridden inline when autoResize */\n --_py: var(--space-2);\n\n display: block;\n inline-size: 100%;\n padding: var(--_py) var(--_px);\n resize: vertical;\n line-height: var(--leading-body);\n}\n.textarea::placeholder {\n color: var(--color-ink-subtle);\n opacity: 1;\n}\n.textarea:disabled {\n resize: none;\n}\n\n.textarea[data-auto-resize] {\n field-sizing: content;\n resize: none;\n min-block-size: calc(var(--_rows) * 1lh + 2 * var(--_py) + 2 * var(--border-width));\n overflow-y: auto;\n}\n.textarea[data-auto-resize][data-max-rows] {\n max-block-size: calc(var(--_max-rows) * 1lh + 2 * var(--_py) + 2 * var(--border-width));\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { Textarea } from './Textarea.js';
2
+ export type { TextareaProps } from './Textarea.js';
@@ -0,0 +1,18 @@
1
+ import { type FieldLabelProps } from '../Field/index.js';
2
+ import { type TextareaProps } from '../Textarea/index.js';
3
+ export interface TextareaFieldProps extends FieldLabelProps, Omit<TextareaProps, 'invalid'> {
4
+ /** Called with the new string on every change (alongside the native `onChange`). */
5
+ onValueChange?: (value: string) => void;
6
+ /**
7
+ * Shows a "12 / 280" character counter under the field (needs `maxLength`). Announced
8
+ * politely only once the remaining count is within 10% of the limit.
9
+ */
10
+ showCount?: boolean;
11
+ }
12
+ /**
13
+ * Label + Textarea + description + error. Textarea props and the ref go to the
14
+ * `<textarea>`; `className`/`style` go to the field wrapper.
15
+ *
16
+ * <TextareaField label="Notes" autoResize rows={2} optional />
17
+ */
18
+ export declare const TextareaField: import("react").ForwardRefExoticComponent<TextareaFieldProps & import("react").RefAttributes<HTMLTextAreaElement>>;
@@ -0,0 +1,40 @@
1
+ import { FieldCount as e } from "../internal/messages.js";
2
+ import { Field as t } from "../Field/Field.js";
3
+ import { Textarea as n } from "../Textarea/Textarea.js";
4
+ import { splitFieldLabelProps as r } from "../internal/fieldProps.js";
5
+ import { forwardRef as i, useId as a, useState as o } from "react";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ //#region src/components/inputs/TextareaField/TextareaField.tsx
8
+ var l = i(function(i, l) {
9
+ let [u, d] = r(i), { id: f, disabled: p, className: m, style: h, onChange: g, onValueChange: _, showCount: v, maxLength: y, ...b } = d, x = a(), S = `${f ?? `${x}control`}-count`, [C, w] = o(() => typeof b.defaultValue == "string" ? b.defaultValue : ""), T = typeof b.value == "string" ? b.value : C, E = (e) => {
10
+ w(e.target.value), g?.(e), _?.(e.target.value);
11
+ }, D = v === !0 && y != null, O = y == null ? 0 : y - T.length, k = y != null && O <= Math.ceil(y * .1);
12
+ return /* @__PURE__ */ c(t, {
13
+ ...u,
14
+ htmlFor: f,
15
+ disabled: p,
16
+ className: m,
17
+ style: h,
18
+ children: [/* @__PURE__ */ s(n, {
19
+ ref: l,
20
+ id: f,
21
+ disabled: p,
22
+ maxLength: y,
23
+ onChange: E,
24
+ "aria-describedby": D ? S : void 0,
25
+ ...b
26
+ }), D ? /* @__PURE__ */ c(e, {
27
+ id: S,
28
+ live: k,
29
+ children: [
30
+ T.length,
31
+ " / ",
32
+ y
33
+ ]
34
+ }) : null]
35
+ });
36
+ });
37
+ //#endregion
38
+ export { l as TextareaField };
39
+
40
+ //# sourceMappingURL=TextareaField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextareaField.js","names":["TextareaField","forwardRef","fieldProps","rest","splitFieldLabelProps","props","textareaRest","autoId","useId","countId","id","internalValue","setInternalValue","useState","currentValue","handleChange","event","onChange","onValueChange","showCounter","showCount","maxLength","remaining","nearLimit","Field","Textarea","FieldCount"],"sources":["../../../../src/components/inputs/TextareaField/TextareaField.tsx"],"sourcesContent":["import { forwardRef, useId, useState, type ChangeEvent } from 'react'\nimport { Field, type FieldLabelProps } from '#components/inputs/Field'\nimport { Textarea, type TextareaProps } from '#components/inputs/Textarea'\nimport { splitFieldLabelProps } from '#components/inputs/internal/fieldProps'\nimport { FieldCount } from '#components/inputs/internal/messages'\n\nexport interface TextareaFieldProps extends FieldLabelProps, Omit<TextareaProps, 'invalid'> {\n /** Called with the new string on every change (alongside the native `onChange`). */\n onValueChange?: (value: string) => void\n /**\n * Shows a \"12 / 280\" character counter under the field (needs `maxLength`). Announced\n * politely only once the remaining count is within 10% of the limit.\n */\n showCount?: boolean\n}\n\n/**\n * Label + Textarea + description + error. Textarea props and the ref go to the\n * `<textarea>`; `className`/`style` go to the field wrapper.\n *\n * <TextareaField label=\"Notes\" autoResize rows={2} optional />\n */\nexport const TextareaField = forwardRef<HTMLTextAreaElement, TextareaFieldProps>(\n function TextareaField(props, ref) {\n const [fieldProps, rest] = splitFieldLabelProps(props)\n const {\n id,\n disabled,\n className,\n style,\n onChange,\n onValueChange,\n showCount,\n maxLength,\n ...textareaRest\n } = rest\n const autoId = useId()\n const controlId = id ?? `${autoId}control`\n const countId = `${controlId}-count`\n\n const [internalValue, setInternalValue] = useState(() =>\n typeof textareaRest.defaultValue === 'string' ? textareaRest.defaultValue : '',\n )\n const currentValue = typeof textareaRest.value === 'string' ? textareaRest.value : internalValue\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n setInternalValue(event.target.value)\n onChange?.(event)\n onValueChange?.(event.target.value)\n }\n\n const showCounter = showCount === true && maxLength != null\n const remaining = maxLength != null ? maxLength - currentValue.length : 0\n const nearLimit = maxLength != null && remaining <= Math.ceil(maxLength * 0.1)\n\n return (\n <Field {...fieldProps} htmlFor={id} disabled={disabled} className={className} style={style}>\n <Textarea\n ref={ref}\n id={id}\n disabled={disabled}\n maxLength={maxLength}\n onChange={handleChange}\n aria-describedby={showCounter ? countId : undefined}\n {...textareaRest}\n />\n {showCounter ? (\n <FieldCount id={countId} live={nearLimit}>\n {currentValue.length} / {maxLength}\n </FieldCount>\n ) : null}\n </Field>\n )\n },\n)\n"],"mappings":";;;;;;;AAsBA,IAAaA,IAAgBC,EAC3B,SAAuB,GAAO,GAAK;CACjC,IAAM,CAACC,GAAYC,KAAQC,EAAqBC,CAAK,GAC/C,EACJ,OACA,aACA,cACA,UACA,aACA,kBACA,cACA,cACA,GAAGC,MACDH,GACEI,IAASC,EAAM,GAEfC,IAAU,GADEC,KAAM,GAAGH,EAAO,SACL,SAEvB,CAACI,GAAeC,KAAoBC,QACxC,OAAOP,EAAa,gBAAiB,WAAWA,EAAa,eAAe,EAC9E,GACMQ,IAAe,OAAOR,EAAa,SAAU,WAAWA,EAAa,QAAQK,GAE7EI,KAAgB,MAA4C;EAGhE,AAFAH,EAAiBI,EAAM,OAAO,KAAK,GACnCC,IAAWD,CAAK,GAChBE,IAAgBF,EAAM,OAAO,KAAK;CACpC,GAEMG,IAAcC,MAAc,MAAQC,KAAa,MACjDC,IAAYD,KAAa,OAAyC,IAAlCA,IAAYP,EAAa,QACzDS,IAAYF,KAAa,QAAQC,KAAa,KAAK,KAAKD,IAAY,EAAG;CAE7E,OACE,kBAACG,GAAD;EAAO,GAAItB;EAAY,SAASQ;EAAc;EAAqB;EAAkB;EAArF,UAAA,CACE,kBAACe,GAAD;GACO;GACD;GACM;GACC;GACX,UAAUV;GACV,oBAAkBI,IAAcV,IAAU,KAAA;GAC1C,GAAIH;EACL,CAAA,GACAa,IACC,kBAACO,GAAD;GAAY,IAAIjB;GAAS,MAAMc;GAA/B,UAAA;IACGT,EAAa;IAAO;IAAIO;GACf;EACV,CAAA,IAAA,IACC;;AAEX,CACF"}
@@ -0,0 +1,2 @@
1
+ export { TextareaField } from './TextareaField.js';
2
+ export type { TextareaFieldProps } from './TextareaField.js';
@@ -0,0 +1,60 @@
1
+ /** What a `<Field>` hands to the control rendered inside it. */
2
+ export interface FieldControlContext {
3
+ /** Id the label points at (`htmlFor`). */
4
+ id: string;
5
+ /** Id of the visible label, for controls that are labelled by reference (groups). */
6
+ labelId: string;
7
+ /** Space-separated ids of the description and error messages currently rendered. */
8
+ describedBy?: string;
9
+ invalid: boolean;
10
+ required: boolean;
11
+ disabled: boolean;
12
+ /** Focusable but not editable; controls set `readOnly`/`aria-readonly` and ignore changes. */
13
+ readOnly: boolean;
14
+ /** `validating` on the surrounding `<Field>`/`<Fieldset>` — controls set `aria-busy`. */
15
+ busy: boolean;
16
+ /** Id of the warning message, when the surrounding `<Field>` is currently showing one. */
17
+ warningId?: string;
18
+ /**
19
+ * `true` when the surrounding wrapper is a `<Fieldset>`: its `<legend>` already names the
20
+ * group, so a group-role control inside (RadioGroup, CheckboxGroup, ChoiceCards, ChipGroup)
21
+ * must not also point `aria-labelledby` at it, or the name is announced twice.
22
+ */
23
+ fieldset?: boolean;
24
+ }
25
+ export declare const FieldContext: import("react").Context<FieldControlContext | null>;
26
+ /**
27
+ * Read the wiring of the surrounding `<Field>`, or `null` outside one. Library controls
28
+ * (Input, Textarea, Select, Checkbox, Switch, RadioGroup) call this themselves; use it to
29
+ * make your own control Field-aware.
30
+ */
31
+ export declare function useFieldControl(): FieldControlContext | null;
32
+ /**
33
+ * Tag a component that reads `useFieldControl()` itself, so `<Field>` passes it wiring
34
+ * through context only and doesn't also clone `id`/`aria-*` onto it.
35
+ */
36
+ export declare function markFieldAware<T extends object>(component: T): T;
37
+ export declare function isFieldAware(type: unknown): boolean;
38
+ interface OwnControlProps {
39
+ id?: string;
40
+ describedBy?: string;
41
+ invalid?: boolean;
42
+ ariaInvalid?: boolean | 'true' | 'false' | 'grammar' | 'spelling';
43
+ required?: boolean;
44
+ disabled?: boolean;
45
+ readOnly?: boolean;
46
+ }
47
+ /** Merge a control's own props over the Field context. Own props win; describedby ids join. */
48
+ export declare function useResolvedField(own: OwnControlProps): {
49
+ id: string | undefined;
50
+ describedBy: string | undefined;
51
+ invalid: boolean;
52
+ required: boolean;
53
+ disabled: boolean;
54
+ readOnly: boolean;
55
+ busy: boolean;
56
+ labelId: string | undefined;
57
+ /** `labelId` for a group-role control: `undefined` inside a Fieldset (the legend names it). */
58
+ groupLabelId: string | undefined;
59
+ };
60
+ export {};
@@ -0,0 +1,32 @@
1
+ import { joinIds as e } from "./refs.js";
2
+ import { createContext as t, useContext as n } from "react";
3
+ //#region src/components/inputs/internal/FieldContext.ts
4
+ var r = t(null);
5
+ function i() {
6
+ return n(r);
7
+ }
8
+ var a = Symbol.for("@mitcsutt/kiln-ui/field-aware");
9
+ function o(e) {
10
+ return Object.assign(e, { [a]: !0 });
11
+ }
12
+ function s(e) {
13
+ return (typeof e == "object" || typeof e == "function") && e !== null && a in e;
14
+ }
15
+ function c(t) {
16
+ let n = i(), r = t.ariaInvalid === !0 || t.ariaInvalid === "true" || void 0;
17
+ return {
18
+ id: t.id ?? n?.id,
19
+ describedBy: e(n?.describedBy, t.describedBy),
20
+ invalid: t.invalid ?? r ?? n?.invalid ?? !1,
21
+ required: t.required ?? n?.required ?? !1,
22
+ disabled: t.disabled ?? n?.disabled ?? !1,
23
+ readOnly: t.readOnly ?? n?.readOnly ?? !1,
24
+ busy: n?.busy ?? !1,
25
+ labelId: n?.labelId,
26
+ groupLabelId: n?.fieldset ? void 0 : n?.labelId
27
+ };
28
+ }
29
+ //#endregion
30
+ export { r as FieldContext, s as isFieldAware, o as markFieldAware, i as useFieldControl, c as useResolvedField };
31
+
32
+ //# sourceMappingURL=FieldContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldContext.js","names":["FieldContext","createContext","useFieldControl","useContext","FIELD_AWARE","markFieldAware","component","isFieldAware","type","useResolvedField","ctx","ariaInvalid","own","joinIds"],"sources":["../../../../src/components/inputs/internal/FieldContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { joinIds } from './refs'\n\n/** What a `<Field>` hands to the control rendered inside it. */\nexport interface FieldControlContext {\n /** Id the label points at (`htmlFor`). */\n id: string\n /** Id of the visible label, for controls that are labelled by reference (groups). */\n labelId: string\n /** Space-separated ids of the description and error messages currently rendered. */\n describedBy?: string\n invalid: boolean\n required: boolean\n disabled: boolean\n /** Focusable but not editable; controls set `readOnly`/`aria-readonly` and ignore changes. */\n readOnly: boolean\n /** `validating` on the surrounding `<Field>`/`<Fieldset>` — controls set `aria-busy`. */\n busy: boolean\n /** Id of the warning message, when the surrounding `<Field>` is currently showing one. */\n warningId?: string\n /**\n * `true` when the surrounding wrapper is a `<Fieldset>`: its `<legend>` already names the\n * group, so a group-role control inside (RadioGroup, CheckboxGroup, ChoiceCards, ChipGroup)\n * must not also point `aria-labelledby` at it, or the name is announced twice.\n */\n fieldset?: boolean\n}\n\nexport const FieldContext = createContext<FieldControlContext | null>(null)\n\n/**\n * Read the wiring of the surrounding `<Field>`, or `null` outside one. Library controls\n * (Input, Textarea, Select, Checkbox, Switch, RadioGroup) call this themselves; use it to\n * make your own control Field-aware.\n */\nexport function useFieldControl(): FieldControlContext | null {\n return useContext(FieldContext)\n}\n\nconst FIELD_AWARE = Symbol.for('@mitcsutt/kiln-ui/field-aware')\n\n/**\n * Tag a component that reads `useFieldControl()` itself, so `<Field>` passes it wiring\n * through context only and doesn't also clone `id`/`aria-*` onto it.\n */\nexport function markFieldAware<T extends object>(component: T): T {\n return Object.assign(component, { [FIELD_AWARE]: true })\n}\n\nexport function isFieldAware(type: unknown): boolean {\n return (\n (typeof type === 'object' || typeof type === 'function') && type !== null && FIELD_AWARE in type\n )\n}\n\ninterface OwnControlProps {\n id?: string\n describedBy?: string\n invalid?: boolean\n ariaInvalid?: boolean | 'true' | 'false' | 'grammar' | 'spelling'\n required?: boolean\n disabled?: boolean\n readOnly?: boolean\n}\n\n/** Merge a control's own props over the Field context. Own props win; describedby ids join. */\nexport function useResolvedField(own: OwnControlProps) {\n const ctx = useFieldControl()\n const ariaInvalid = own.ariaInvalid === true || own.ariaInvalid === 'true' ? true : undefined\n return {\n id: own.id ?? ctx?.id,\n describedBy: joinIds(ctx?.describedBy, own.describedBy),\n invalid: own.invalid ?? ariaInvalid ?? ctx?.invalid ?? false,\n required: own.required ?? ctx?.required ?? false,\n disabled: own.disabled ?? ctx?.disabled ?? false,\n readOnly: own.readOnly ?? ctx?.readOnly ?? false,\n busy: ctx?.busy ?? false,\n labelId: ctx?.labelId,\n /** `labelId` for a group-role control: `undefined` inside a Fieldset (the legend names it). */\n groupLabelId: ctx?.fieldset ? undefined : ctx?.labelId,\n }\n}\n"],"mappings":";;;AA4BA,IAAaA,IAAeC,EAA0C,IAAI;AAO1E,SAAgBC,IAA8C;CAC5D,OAAOC,EAAWH,CAAY;AAChC;AAEA,IAAMI,IAAc,OAAO,IAAI,+BAA+B;AAM9D,SAAgBC,EAAiC,GAAiB;CAChE,OAAO,OAAO,OAAOC,GAAW,GAAGF,IAAc,GAAK,CAAC;AACzD;AAEA,SAAgBG,EAAa,GAAwB;CACnD,QACG,OAAOC,KAAS,YAAY,OAAOA,KAAS,eAAeA,MAAS,QAAQJ,KAAeI;AAEhG;AAaA,SAAgBC,EAAiB,GAAsB;CACrD,IAAMC,IAAMR,EAAgB,GACtBS,IAAcC,EAAI,gBAAgB,MAAQA,EAAI,gBAAgB,UAAgB,KAAA;CACpF,OAAO;EACL,IAAIA,EAAI,MAAMF,GAAK;EACnB,aAAaG,EAAQH,GAAK,aAAaE,EAAI,WAAW;EACtD,SAASA,EAAI,WAAWD,KAAeD,GAAK,WAAW;EACvD,UAAUE,EAAI,YAAYF,GAAK,YAAY;EAC3C,UAAUE,EAAI,YAAYF,GAAK,YAAY;EAC3C,UAAUE,EAAI,YAAYF,GAAK,YAAY;EAC3C,MAAMA,GAAK,QAAQ;EACnB,SAASA,GAAK;EAEd,cAAcA,GAAK,WAAW,KAAA,IAAYA,GAAK;CACjD;AACF"}
@@ -0,0 +1,6 @@
1
+ //#region src/components/inputs/internal/control.module.css
2
+ var e = "kiln-control__box", t = { box: e };
3
+ //#endregion
4
+ export { e as box, t as default };
5
+
6
+ //# sourceMappingURL=control.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.module.js","names":["box","control_module_default"],"sources":["../../../../src/components/inputs/internal/control.module.css"],"sourcesContent":["/*\n * The field box shared by Input, Textarea and Select's trigger, so all three share\n * one border, one radius and one set of states.\n *\n * Component tokens (themes may set any of these on [data-theme]):\n * --field-bg default var(--color-surface)\n * --field-border default var(--color-line-control) (≥ 3:1)\n * --field-radius default var(--radius-field)\n * --field-shadow default none\n *\n * Focus is the neutral ink ring, outside the border — it never tints the border.\n * Only validation (data-invalid) changes the border colour.\n */\n.box {\n --_h: var(--control-md);\n --_px: var(--space-3);\n --_fs: var(--text-md);\n --_border: var(--field-border, var(--color-line-control));\n\n position: relative;\n box-sizing: border-box;\n min-block-size: var(--_h);\n margin: 0;\n border: var(--border-width) solid var(--_border);\n border-radius: var(--field-radius, var(--radius-field));\n background-color: var(--field-bg, var(--color-surface));\n color: var(--color-ink);\n box-shadow: var(--field-shadow, none);\n font-family: var(--font-text);\n font-size: var(--_fs);\n line-height: var(--leading-snug);\n transition:\n border-color var(--dur-1) var(--ease-out),\n background-color var(--dur-1) var(--ease-out),\n outline-color var(--dur-1) var(--ease-out);\n}\n\n.box[data-size='sm'] {\n --_h: var(--control-sm);\n --_px: var(--space-2);\n --_fs: var(--text-sm);\n}\n.box[data-size='lg'] {\n --_h: var(--control-lg);\n --_px: var(--space-4);\n --_fs: var(--text-lg);\n}\n\n/* Hover firms the line toward ink (a no-op where the line already is ink). */\n@media (hover: hover) {\n .box:hover:not([data-disabled], [data-invalid]) {\n --_border: color-mix(\n in oklab,\n var(--field-border, var(--color-line-control)),\n var(--color-ink) 35%\n );\n }\n}\n\n.box:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 2px;\n}\n\n.box[data-invalid] {\n --_border: var(--tone-critical);\n}\n\n.box[data-readonly] {\n background-color: var(--color-surface-sunken);\n}\n\n.box[data-disabled] {\n --_border: var(--color-line);\n background-color: var(--color-surface-sunken);\n color: var(--color-ink-subtle);\n box-shadow: none;\n cursor: not-allowed;\n}\n"],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { ReactNode } from 'react';
2
+ /** `error` counts as invalid unless it is empty, `false` or nullish. */
3
+ export declare function hasError(error: ReactNode): boolean;
4
+ /** Whether there is a message to show (`error={true}` flags invalid without text). */
5
+ export declare function hasErrorMessage(error: ReactNode): boolean;
@@ -0,0 +1,11 @@
1
+ //#region src/components/inputs/internal/errors.ts
2
+ function e(e) {
3
+ return e != null && e !== !1 && e !== "";
4
+ }
5
+ function t(t) {
6
+ return e(t) && t !== !0;
7
+ }
8
+ //#endregion
9
+ export { e as hasError, t as hasErrorMessage };
10
+
11
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","names":["hasError","error","hasErrorMessage"],"sources":["../../../../src/components/inputs/internal/errors.ts"],"sourcesContent":["import type { ReactNode } from 'react'\n\n/** `error` counts as invalid unless it is empty, `false` or nullish. */\nexport function hasError(error: ReactNode): boolean {\n return error !== undefined && error !== null && error !== false && error !== ''\n}\n\n/** Whether there is a message to show (`error={true}` flags invalid without text). */\nexport function hasErrorMessage(error: ReactNode): boolean {\n return hasError(error) && error !== true\n}\n"],"mappings":";AAGA,SAAgBA,EAAS,GAA2B;CAClD,OAAOC,KAAiC,QAAQA,MAAU,MAASA,MAAU;AAC/E;AAGA,SAAgBC,EAAgB,GAA2B;CACzD,OAAOF,EAASC,CAAK,KAAKA,MAAU;AACtC"}
@@ -0,0 +1,12 @@
1
+ import type { FieldLabelProps } from '../Field/index.js';
2
+ /** Every key `FieldLabelProps` declares — kept in sync so `splitFieldLabelProps` never drifts. */
3
+ export declare const FIELD_LABEL_PROP_KEYS: readonly (keyof FieldLabelProps)[];
4
+ /**
5
+ * Splits a composed field's props into the `FieldLabelProps` it forwards to `<Field>`
6
+ * (or `<Fieldset>`) and everything else, which goes to the bare control. Every composed
7
+ * `*Field` uses this so a future `FieldLabelProps` addition reaches all of them for free.
8
+ *
9
+ * const [fieldProps, rest] = splitFieldLabelProps(props)
10
+ * <Field {...fieldProps}><Input {...rest} /></Field>
11
+ */
12
+ export declare function splitFieldLabelProps<P extends FieldLabelProps>(props: P): [FieldLabelProps, Omit<P, keyof FieldLabelProps>];
@@ -0,0 +1,25 @@
1
+ //#region src/components/inputs/internal/fieldProps.ts
2
+ var e = [
3
+ "label",
4
+ "description",
5
+ "hint",
6
+ "error",
7
+ "required",
8
+ "optional",
9
+ "labelHidden",
10
+ "warning",
11
+ "errorLive",
12
+ "errorHidden",
13
+ "validating",
14
+ "readOnly",
15
+ "layout"
16
+ ], t = new Set(e);
17
+ function n(e) {
18
+ let n = {}, r = {};
19
+ for (let i of Object.keys(e)) t.has(i) ? n[i] = e[i] : r[i] = e[i];
20
+ return [n, r];
21
+ }
22
+ //#endregion
23
+ export { e as FIELD_LABEL_PROP_KEYS, n as splitFieldLabelProps };
24
+
25
+ //# sourceMappingURL=fieldProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldProps.js","names":["FIELD_LABEL_PROP_KEYS","FIELD_LABEL_PROP_KEY_SET","splitFieldLabelProps","fieldProps","rest","key","props"],"sources":["../../../../src/components/inputs/internal/fieldProps.ts"],"sourcesContent":["import type { FieldLabelProps } from '#components/inputs/Field'\n\n/** Every key `FieldLabelProps` declares — kept in sync so `splitFieldLabelProps` never drifts. */\nexport const FIELD_LABEL_PROP_KEYS: readonly (keyof FieldLabelProps)[] = [\n 'label',\n 'description',\n 'hint',\n 'error',\n 'required',\n 'optional',\n 'labelHidden',\n 'warning',\n 'errorLive',\n 'errorHidden',\n 'validating',\n 'readOnly',\n 'layout',\n]\n\nconst FIELD_LABEL_PROP_KEY_SET = new Set<PropertyKey>(FIELD_LABEL_PROP_KEYS)\n\n/**\n * Splits a composed field's props into the `FieldLabelProps` it forwards to `<Field>`\n * (or `<Fieldset>`) and everything else, which goes to the bare control. Every composed\n * `*Field` uses this so a future `FieldLabelProps` addition reaches all of them for free.\n *\n * const [fieldProps, rest] = splitFieldLabelProps(props)\n * <Field {...fieldProps}><Input {...rest} /></Field>\n */\nexport function splitFieldLabelProps<P extends FieldLabelProps>(\n props: P,\n): [FieldLabelProps, Omit<P, keyof FieldLabelProps>] {\n const fieldProps: Partial<Record<keyof FieldLabelProps, unknown>> = {}\n const rest: Partial<Record<keyof P, unknown>> = {}\n for (const key of Object.keys(props) as (keyof P)[]) {\n if (FIELD_LABEL_PROP_KEY_SET.has(key))\n fieldProps[key as unknown as keyof FieldLabelProps] = props[key]\n else rest[key] = props[key]\n }\n return [fieldProps as FieldLabelProps, rest as Omit<P, keyof FieldLabelProps>]\n}\n"],"mappings":";AAGA,IAAaA,IAA4D;CACvE;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEMC,IAA2B,IAAI,IAAiBD,CAAqB;AAU3E,SAAgBE,EACd,GACmD;CACnD,IAAMC,IAA8D,CAAC,GAC/DC,IAA0C,CAAC;CACjD,KAAK,IAAMC,KAAO,OAAO,KAAKC,CAAK,GACjC,AAAIL,EAAyB,IAAII,CAAG,IAClC,EAAWA,KAA2CC,EAAMD,KACzD,EAAKA,KAAOC,EAAMD;CAEzB,OAAO,CAACF,GAA+BC,CAAsC;AAC/E"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Option filtering for type-to-search controls (Combobox). Not exported from the package.
3
+ *
4
+ * Matching is case-insensitive and diacritic-folded ("cote" finds "Côte d'Ivoire",
5
+ * "curacao" finds "Curaçao"). Results are ranked, and stable within a rank:
6
+ * 0 — exact: the label or a keyword equals the query ("USA" → United States)
7
+ * 1 — prefix: the label, a word in it, or a keyword starts with the query
8
+ * 2 — substring: the label, a keyword or the description contains the query
9
+ */
10
+ export interface FilterableOption {
11
+ label: string;
12
+ keywords?: readonly string[];
13
+ description?: string;
14
+ }
15
+ /** Lower-case, strip accents, collapse whitespace. */
16
+ export declare function foldText(text: string): string;
17
+ /** Rank of one option for an already-folded, non-empty query (lower is better; 3 = no match). */
18
+ export declare function rankOption(option: FilterableOption, foldedQuery: string): number;
19
+ /**
20
+ * The options matching `query`, best first. An empty (or whitespace) query returns every
21
+ * option in its original order.
22
+ */
23
+ export declare function filterOptions<O extends FilterableOption>(options: readonly O[], query: string): O[];
@@ -0,0 +1,28 @@
1
+ //#region src/components/inputs/internal/filterOptions.ts
2
+ function e(e) {
3
+ return e.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase().replace(/\s+/g, " ").trim();
4
+ }
5
+ function t(e) {
6
+ return e.split(/[\s\-–—'’/().,]+/).filter(Boolean);
7
+ }
8
+ function n(n, r) {
9
+ let i = e(n.label), a = (n.keywords ?? []).map(e);
10
+ return i === r || a.includes(r) ? 0 : i.startsWith(r) || t(i).some((e) => e.startsWith(r)) || a.some((e) => e.startsWith(r)) ? 1 : i.includes(r) || a.some((e) => e.includes(r)) || n.description !== void 0 && e(n.description).includes(r) ? 2 : 3;
11
+ }
12
+ function r(t, r) {
13
+ let i = e(r);
14
+ if (i === "") return [...t];
15
+ let a = [];
16
+ return t.forEach((e, t) => {
17
+ let r = n(e, i);
18
+ r < 3 && a.push({
19
+ option: e,
20
+ rank: r,
21
+ index: t
22
+ });
23
+ }), a.sort((e, t) => e.rank - t.rank || e.index - t.index), a.map((e) => e.option);
24
+ }
25
+ //#endregion
26
+ export { r as filterOptions, e as foldText, n as rankOption };
27
+
28
+ //# sourceMappingURL=filterOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterOptions.js","names":["foldText","text","words","folded","rankOption","label","option","keywords","foldedQuery","word","keyword","filterOptions","query","options","ranked","rank","a","b","entry"],"sources":["../../../../src/components/inputs/internal/filterOptions.ts"],"sourcesContent":["/**\n * Option filtering for type-to-search controls (Combobox). Not exported from the package.\n *\n * Matching is case-insensitive and diacritic-folded (\"cote\" finds \"Côte d'Ivoire\",\n * \"curacao\" finds \"Curaçao\"). Results are ranked, and stable within a rank:\n * 0 — exact: the label or a keyword equals the query (\"USA\" → United States)\n * 1 — prefix: the label, a word in it, or a keyword starts with the query\n * 2 — substring: the label, a keyword or the description contains the query\n */\n\nexport interface FilterableOption {\n label: string\n keywords?: readonly string[]\n description?: string\n}\n\n/** Lower-case, strip accents, collapse whitespace. */\nexport function foldText(text: string): string {\n return text\n .normalize('NFD')\n .replace(/\\p{Diacritic}/gu, '')\n .toLowerCase()\n .replace(/\\s+/g, ' ')\n .trim()\n}\n\nconst EXACT = 0\nconst PREFIX = 1\nconst SUBSTRING = 2\nconst NO_MATCH = 3\n\nfunction words(folded: string): string[] {\n return folded.split(/[\\s\\-–—'’/().,]+/).filter(Boolean)\n}\n\n/** Rank of one option for an already-folded, non-empty query (lower is better; 3 = no match). */\nexport function rankOption(option: FilterableOption, foldedQuery: string): number {\n const label = foldText(option.label)\n const keywords = (option.keywords ?? []).map(foldText)\n if (label === foldedQuery || keywords.includes(foldedQuery)) return EXACT\n if (\n label.startsWith(foldedQuery) ||\n words(label).some((word) => word.startsWith(foldedQuery)) ||\n keywords.some((keyword) => keyword.startsWith(foldedQuery))\n ) {\n return PREFIX\n }\n if (\n label.includes(foldedQuery) ||\n keywords.some((keyword) => keyword.includes(foldedQuery)) ||\n (option.description !== undefined && foldText(option.description).includes(foldedQuery))\n ) {\n return SUBSTRING\n }\n return NO_MATCH\n}\n\n/**\n * The options matching `query`, best first. An empty (or whitespace) query returns every\n * option in its original order.\n */\nexport function filterOptions<O extends FilterableOption>(\n options: readonly O[],\n query: string,\n): O[] {\n const folded = foldText(query)\n if (folded === '') return [...options]\n const ranked: { option: O; rank: number; index: number }[] = []\n options.forEach((option, index) => {\n const rank = rankOption(option, folded)\n if (rank < NO_MATCH) ranked.push({ option, rank, index })\n })\n ranked.sort((a, b) => a.rank - b.rank || a.index - b.index)\n return ranked.map((entry) => entry.option)\n}\n"],"mappings":";AAiBA,SAAgBA,EAAS,GAAsB;CAC7C,OAAOC,EACJ,UAAU,KAAK,CAAC,CAChB,QAAQ,mBAAmB,EAAE,CAAC,CAC9B,YAAY,CAAC,CACb,QAAQ,QAAQ,GAAG,CAAC,CACpB,KAAK;AACV;AAOA,SAASC,EAAM,GAA0B;CACvC,OAAOC,EAAO,MAAM,kBAAkB,CAAC,CAAC,OAAO,OAAO;AACxD;AAGA,SAAgBC,EAAW,GAA0B,GAA6B;CAChF,IAAMC,IAAQL,EAASM,EAAO,KAAK,GAC7BC,KAAYD,EAAO,YAAY,CAAC,EAAA,CAAG,IAAIN,CAAQ;CAgBrD,OAfIK,MAAUG,KAAeD,EAAS,SAASC,CAAW,IAAU,IAElEH,EAAM,WAAWG,CAAW,KAC5BN,EAAMG,CAAK,CAAC,CAAC,MAAM,MAASI,EAAK,WAAWD,CAAW,CAAC,KACxDD,EAAS,MAAM,MAAYG,EAAQ,WAAWF,CAAW,CAAC,IAEnD,IAGPH,EAAM,SAASG,CAAW,KAC1BD,EAAS,MAAM,MAAYG,EAAQ,SAASF,CAAW,CAAC,KACvDF,EAAO,gBAAgB,KAAA,KAAaN,EAASM,EAAO,WAAW,CAAC,CAAC,SAASE,CAAW,IAE/E,IAEF;AACT;AAMA,SAAgBG,EACd,GACA,GACK;CACL,IAAMR,IAASH,EAASY,CAAK;CAC7B,IAAIT,MAAW,IAAI,OAAO,CAAC,GAAGU,CAAO;CACrC,IAAMC,IAAuD,CAAC;CAM9D,OALAD,EAAQ,SAAS,GAAQ,MAAU;EACjC,IAAME,IAAOX,EAAWE,GAAQH,CAAM;EACtC,AAAIY,IAAO,KAAUD,EAAO,KAAK;GAAE;GAAQ;GAAM;EAAM,CAAC;CAC1D,CAAC,GACDA,EAAO,MAAM,GAAG,MAAME,EAAE,OAAOC,EAAE,QAAQD,EAAE,QAAQC,EAAE,KAAK,GACnDH,EAAO,KAAK,MAAUI,EAAM,MAAM;AAC3C"}