@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":"SegmentedControl.js","names":["styles","SegmentedControl_module_default","IconOnlyContext","createContext","SegmentedControlItem","forwardRef","rest","iconOnly","useContext","ToggleGroup","cx","className","icon","breakpointAttrs","value","name","toAttr","attrs","base","bp","BREAKPOINTS","v","childValues","values","Children","children","isValidElement","child","SegmentedControlRoot","valueProp","invalidProp","readOnlyProp","disabledProp","idProp","describedByProp","ariaInvalid","labelledByProp","field","useResolvedField","handleBlur","useFocusLeave","onBlur","options","o","uncontrolled","setUncontrolled","useState","defaultValue","handleChange","useCallback","next","onValueChange","index","vars","size","fullWidth","mergeStyles","style","SegmentedControl","markFieldAware"],"sources":["../../../../src/components/actions/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useState,\n type ComponentPropsWithoutRef,\n type CSSProperties,\n type ReactNode,\n} from 'react'\nimport { ToggleGroup } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport { BREAKPOINTS, mergeStyles, type Responsive } from '#utils/responsive'\nimport type { Size } from '#utils/tokens'\nimport { markFieldAware, useResolvedField } from '#components/inputs/internal/FieldContext'\nimport { useFocusLeave } from '#components/inputs/CheckboxGroup/choice'\nimport styles from './SegmentedControl.module.css'\n\nexport interface SegmentedControlOption {\n value: string\n label: string\n icon?: ReactNode\n disabled?: boolean\n}\n\ntype RootPrimitiveProps = Omit<\n ComponentPropsWithoutRef<typeof ToggleGroup.Root>,\n 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'children' | 'asChild'\n>\n\nexport interface SegmentedControlProps extends RootPrimitiveProps {\n /** Segments as data. Alternatively pass `SegmentedControl.Item` children. */\n options?: readonly SegmentedControlOption[]\n children?: ReactNode\n /** Controlled selected value. */\n value?: string\n /** Initial value when uncontrolled. Defaults to the first segment. */\n defaultValue?: string\n onValueChange?: (value: string) => void\n /** Control size. Responsive: `{ base: 'lg', md: 'md' }` for a bigger touch target on phones. */\n size?: Responsive<Size>\n /**\n * Stretch to the container's width. Segments are always equal widths. Responsive:\n * `{ base: true, md: false }` fills a phone screen and sits inline from `md` up.\n */\n fullWidth?: Responsive<boolean>\n /** Show only icons; labels become each segment's accessible name. */\n iconOnly?: boolean\n /** Emits a hidden input with the selected value, for native form submission. */\n name?: string\n /** Critical edge + `aria-invalid`. Inside a `<Field error>` this is set for you. */\n invalid?: boolean\n /** Focusable but not editable: sets `aria-readonly` and ignores selection changes. */\n readOnly?: boolean\n}\n\nexport interface SegmentedControlItemProps extends Omit<\n ComponentPropsWithoutRef<typeof ToggleGroup.Item>,\n 'children'\n> {\n value: string\n /** Visible label (or accessible name when the control is `iconOnly`). */\n children: ReactNode\n icon?: ReactNode\n}\n\nconst IconOnlyContext = createContext(false)\n\nconst SegmentedControlItem = forwardRef<HTMLButtonElement, SegmentedControlItemProps>(\n function SegmentedControlItem({ icon, className, children, ...rest }, ref) {\n const iconOnly = useContext(IconOnlyContext)\n return (\n <ToggleGroup.Item ref={ref} className={cx(styles.item, className)} {...rest}>\n {icon ? (\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <span className={iconOnly ? styles.srOnly : styles.label}>{children}</span>\n </ToggleGroup.Item>\n )\n },\n)\n\n/**\n * Per-breakpoint data attributes: the base value on `data-<name>`, and each explicitly\n * set larger breakpoint on `data-<name>-<bp>`. CSS applies them in mobile-first media\n * queries, so a later breakpoint overrides an earlier one.\n */\nfunction breakpointAttrs<T extends string | boolean>(\n name: string,\n value: Responsive<T>,\n toAttr: (v: T) => string | undefined,\n): Record<string, string | undefined> {\n if (typeof value !== 'object') return { [`data-${name}`]: toAttr(value) }\n const attrs: Record<string, string | undefined> = {}\n const base = value.base\n attrs[`data-${name}`] = base === undefined ? undefined : toAttr(base)\n for (const bp of BREAKPOINTS) {\n const v = value[bp]\n if (bp !== 'base' && v !== undefined) attrs[`data-${name}-${bp}`] = String(v)\n }\n return attrs\n}\n\nfunction childValues(children: ReactNode): string[] {\n const values: string[] = []\n Children.forEach(children, (child) => {\n if (isValidElement<{ value?: unknown }>(child) && typeof child.props.value === 'string') {\n values.push(child.props.value)\n }\n })\n return values\n}\n\n/**\n * Single-select segmented control: pick one of 2–5 peer views or periods\n * (Month / Quarter / Year · Board / Table / Timeline). One segment is always selected —\n * clicking the current one does nothing.\n *\n * Radix ToggleGroup underneath: segments are `role=\"radio\"` inside a `radiogroup`,\n * arrow keys move focus (roving tabindex), Space/Enter selects. Give the group a name\n * with `aria-label`.\n *\n * Segments are equal widths, so the selection indicator is pure CSS — it slides by\n * index with no measuring, and renders correctly on the server.\n *\n * Field-aware: inside a `<Field>` it is labelled by the Field's label and picks up its\n * description, error, `disabled`, `readOnly` and `validating` (see `SegmentedField`).\n * `onBlur` fires once, when focus leaves the whole control.\n */\nconst SegmentedControlRoot = forwardRef<HTMLDivElement, SegmentedControlProps>(\n function SegmentedControl(\n {\n options,\n children,\n value: valueProp,\n defaultValue,\n onValueChange,\n size = 'md',\n fullWidth = false,\n iconOnly = false,\n name,\n invalid: invalidProp,\n readOnly: readOnlyProp,\n disabled: disabledProp,\n id: idProp,\n onBlur,\n className,\n style,\n 'aria-describedby': describedByProp,\n 'aria-invalid': ariaInvalid,\n 'aria-labelledby': labelledByProp,\n ...rest\n },\n ref,\n ) {\n const field = useResolvedField({\n id: idProp,\n describedBy: describedByProp,\n invalid: invalidProp,\n ariaInvalid,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n })\n const handleBlur = useFocusLeave(onBlur)\n const values = options ? options.map((o) => o.value) : childValues(children)\n const [uncontrolled, setUncontrolled] = useState<string | undefined>(defaultValue ?? values[0])\n const value = valueProp ?? uncontrolled\n\n const handleChange = useCallback(\n (next: string) => {\n // ToggleGroup lets you deselect the pressed item; a segmented control can't.\n if (!next || field.readOnly) return\n if (valueProp === undefined) setUncontrolled(next)\n onValueChange?.(next)\n },\n [valueProp, onValueChange, field.readOnly],\n )\n\n const index = value === undefined ? -1 : values.indexOf(value)\n const vars = {\n '--_count': Math.max(values.length, 1),\n '--_index': Math.max(index, 0),\n } as CSSProperties\n\n return (\n <IconOnlyContext.Provider value={iconOnly}>\n <ToggleGroup.Root\n ref={ref}\n type=\"single\"\n role=\"radiogroup\"\n value={value ?? ''}\n onValueChange={handleChange}\n id={field.id}\n disabled={field.disabled}\n aria-labelledby={labelledByProp ?? (rest['aria-label'] ? undefined : field.labelId)}\n aria-describedby={field.describedBy}\n aria-invalid={field.invalid || undefined}\n aria-required={field.required || undefined}\n aria-readonly={field.readOnly || undefined}\n aria-busy={field.busy || undefined}\n data-invalid={field.invalid || undefined}\n data-readonly={field.readOnly || undefined}\n onBlur={handleBlur}\n className={cx(styles.root, className)}\n {...breakpointAttrs('size', size, String)}\n {...breakpointAttrs('full-width', fullWidth, (v) => (v ? '' : undefined))}\n data-icon-only={iconOnly || undefined}\n style={mergeStyles(vars, style)}\n {...rest}\n >\n {index >= 0 ? <span className={styles.indicator} aria-hidden=\"true\" /> : null}\n {options\n ? options.map((o) => (\n <SegmentedControlItem\n key={o.value}\n value={o.value}\n icon={o.icon}\n disabled={o.disabled}\n >\n {o.label}\n </SegmentedControlItem>\n ))\n : children}\n {name && value ? (\n <input type=\"hidden\" name={name} value={value} disabled={field.disabled || undefined} />\n ) : null}\n </ToggleGroup.Root>\n </IconOnlyContext.Provider>\n )\n },\n)\n\nexport const SegmentedControl = markFieldAware(\n Object.assign(SegmentedControlRoot, { Item: SegmentedControlItem }),\n)\n"],"mappings":";;;;;;;;;AAoEA,IAAME,IAAkBC,EAAc,EAAK,GAErCC,IAAuBC,EAC3B,SAA8B,EAAE,SAAM,cAAW,aAAU,GAAGC,KAAQ,GAAK;CACzE,IAAMC,IAAWC,EAAWN,CAAe;CAC3C,OACE,kBAACO,EAAY,MAAb;EAAuB;EAAK,WAAWC,EAAGV,EAAO,MAAMW,CAAS;EAAG,GAAIL;EAAvE,UAAA,CACGM,IACC,kBAAC,QAAD;GAAM,WAAWZ,EAAO;GAAM,eAAY;GACvC,UAAAY;EACG,CAAA,IACJ,MACJ,kBAAC,QAAD;GAAM,WAAWL,IAAWP,EAAO,SAASA,EAAO;GAAQ;EAAe,CAAA,CAC1D;;AAEtB,CACF;AAOA,SAASa,EACP,GACA,GACA,GACoC;CACpC,IAAI,OAAOC,KAAU,UAAU,OAAO,GAAG,QAAQC,MAASC,EAAOF,CAAK,EAAE;CACxE,IAAMG,IAA4C,CAAC,GAC7CC,IAAOJ,EAAM;CACnB,EAAM,QAAQC,OAAUG,MAAS,KAAA,IAAY,KAAA,IAAYF,EAAOE,CAAI;CACpE,KAAK,IAAMC,KAAMC,GAAa;EAC5B,IAAMC,IAAIP,EAAMK;EAChB,AAAIA,MAAO,UAAUE,MAAM,KAAA,MAAW,EAAM,QAAQN,EAAK,GAAGI,OAAQ,OAAOE,CAAC;CAC9E;CACA,OAAOJ;AACT;AAEA,SAASK,EAAY,GAA+B;CAClD,IAAMC,IAAmB,CAAC;CAM1B,OALAC,EAAS,QAAQC,IAAW,MAAU;EACpC,AAAIC,EAAoCC,CAAK,KAAK,OAAOA,EAAM,MAAM,SAAU,YAC7EJ,EAAO,KAAKI,EAAM,MAAM,KAAK;CAEjC,CAAC,GACMJ;AACT;AAkBA,IAAMK,IAAuBvB,EAC3B,SACE,EACE,YACA,aACA,OAAOwB,GACP,iBACA,kBACA,UAAO,MACP,eAAY,IACZ,cAAW,IACX,SACA,SAASC,GACT,UAAUC,GACV,UAAUC,GACV,IAAIC,GACJ,WACA,cACA,UACA,oBAAoBC,GACpB,gBAAgBC,GAChB,mBAAmBC,GACnB,GAAG9B,KAEL,GACA;CACA,IAAM+B,IAAQC,EAAiB;EAC7B,IAAIL;EACJ,aAAaC;EACb,SAASJ;EACT;EACA,UAAUE;EACV,UAAUD;CACZ,CAAC,GACKQ,IAAaC,EAAcC,CAAM,GACjClB,IAASmB,IAAUA,EAAQ,KAAK,MAAMC,EAAE,KAAK,IAAIrB,EAAYG,CAAQ,GACrE,CAACmB,GAAcC,KAAmBC,EAA6BC,KAAgBxB,EAAO,EAAE,GACxFT,IAAQe,KAAae,GAErBI,IAAeC,GAClB,MAAiB;EAEhB,AAAKC,KAAQ,GAAM,aACfrB,MAAc,KAAA,KAAWgB,EAAgBK,CAAI,GACjDC,IAAgBD,CAAI;CACtB,GACA;EAACrB;EAAWsB;EAAed,EAAM;CAAQ,CAC3C,GAEMe,IAAQtC,MAAU,KAAA,IAAY,KAAKS,EAAO,QAAQT,CAAK,GACvDuC,IAAO;EACX,YAAY,KAAK,IAAI9B,EAAO,QAAQ,CAAC;EACrC,YAAY,KAAK,IAAI6B,GAAO,CAAC;CAC/B;CAEA,OACE,kBAAClD,EAAgB,UAAjB;EAA0B,OAAOK;EAC/B,UAAA,kBAACE,EAAY,MAAb;GACO;GACL,MAAK;GACL,MAAK;GACL,OAAOK,KAAS;GAChB,eAAekC;GACf,IAAIX,EAAM;GACV,UAAUA,EAAM;GAChB,mBAAiBD,MAAmB9B,EAAK,gBAAgB,KAAA,IAAY+B,EAAM;GAC3E,oBAAkBA,EAAM;GACxB,gBAAcA,EAAM,WAAW,KAAA;GAC/B,iBAAeA,EAAM,YAAY,KAAA;GACjC,iBAAeA,EAAM,YAAY,KAAA;GACjC,aAAWA,EAAM,QAAQ,KAAA;GACzB,gBAAcA,EAAM,WAAW,KAAA;GAC/B,iBAAeA,EAAM,YAAY,KAAA;GACjC,QAAQE;GACR,WAAW7B,EAAGV,EAAO,MAAMW,CAAS;GACpC,GAAIE,EAAgB,QAAQyC,GAAM,MAAM;GACxC,GAAIzC,EAAgB,cAAc0C,IAAY,MAAOlC,IAAI,KAAK,KAAA,CAAU;GACxE,kBAAgBd,KAAY,KAAA;GAC5B,OAAOiD,EAAYH,GAAMI,CAAK;GAC9B,GAAInD;GAtBN,UAAA;IAwBG8C,KAAS,IAAI,kBAAC,QAAD;KAAM,WAAWpD,EAAO;KAAW,eAAY;IAAQ,CAAA,IAAI;IACxE0C,IACGA,EAAQ,KAAK,MACX,kBAACtC,GAAD;KAEE,OAAOuC,EAAE;KACT,MAAMA,EAAE;KACR,UAAUA,EAAE;KAEX,UAAAA,EAAE;IACiB,GANfA,EAAE,KAMa,CACvB,IACDlB;IACHV,KAAQD,IACP,kBAAC,SAAD;KAAO,MAAK;KAAe;KAAa;KAAO,UAAUuB,EAAM,YAAY,KAAA;IAAY,CAAA,IACrF;GACY;;CACM,CAAA;AAE9B,CACF,GAEaqB,IAAmBC,EAC9B,OAAO,OAAO/B,GAAsB,EAAE,MAAMxB,EAAqB,CAAC,CACpE"}
@@ -0,0 +1,13 @@
1
+ //#region src/components/actions/SegmentedControl/SegmentedControl.module.css
2
+ var e = "kiln-SegmentedControl__root", t = "kiln-SegmentedControl__item", n = "kiln-SegmentedControl__indicator", r = "kiln-SegmentedControl__icon", i = "kiln-SegmentedControl__label", a = "kiln-SegmentedControl__srOnly", o = {
3
+ root: e,
4
+ item: t,
5
+ indicator: n,
6
+ icon: r,
7
+ label: i,
8
+ srOnly: a
9
+ };
10
+ //#endregion
11
+ export { o as default, r as icon, n as indicator, t as item, i as label, e as root, a as srOnly };
12
+
13
+ //# sourceMappingURL=SegmentedControl.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.module.js","names":["root","item","indicator","icon","label","srOnly","SegmentedControl_module_default"],"sources":["../../../../src/components/actions/SegmentedControl/SegmentedControl.module.css"],"sourcesContent":["/*\n * Component tokens:\n * --segmented-radius default var(--radius-action)\n * --segmented-track default var(--color-surface-sunken)\n * --segmented-indicator default var(--color-surface-raised)\n * --segmented-indicator-line default var(--color-line-strong)\n * --segmented-indicator-shadow default var(--shadow-active) (flat except Fiesta)\n * --segmented-line default var(--color-line) — the track's edge\n *\n * Invalid (inside a `<Field error>`) turns the track's edge critical — the only change.\n *\n * Geometry: every segment is 1fr of an inline grid, so the indicator is exactly\n * (track − padding) / count wide and slides by --_index × its own width. --_count and\n * --_index are written inline by the component on this element.\n */\n.root {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n --_pad: calc(var(--space-1) * 0.75);\n --_r: var(--segmented-radius, var(--radius-action));\n\n position: relative;\n isolation: isolate;\n display: inline-grid;\n grid-auto-flow: column;\n grid-auto-columns: 1fr;\n max-inline-size: 100%;\n min-block-size: var(--_h);\n padding: var(--_pad);\n border: var(--border-width) solid var(--segmented-line, var(--color-line));\n border-radius: var(--_r);\n background: var(--segmented-track, var(--color-surface-sunken));\n vertical-align: middle;\n}\n\n.root[data-size='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n}\n.root[data-size='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n}\n\n.root[data-invalid] {\n border-color: var(--tone-critical);\n}\n\n.root[data-readonly] .item {\n cursor: default;\n}\n\n.root[data-full-width] {\n display: grid;\n inline-size: 100%;\n}\n\n/*\n * Responsive size / fullWidth: `data-size-<bp>` and `data-full-width-<bp>` are only\n * written for breakpoints the consumer set; mobile-first order lets each override the last.\n */\n@media (min-width: 40em) {\n .root[data-size-sm='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-sm='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-sm='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-sm='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-sm='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n@media (min-width: 48em) {\n .root[data-size-md='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-md='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-md='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-md='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-md='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n@media (min-width: 64em) {\n .root[data-size-lg='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-lg='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-lg='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-lg='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-lg='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n@media (min-width: 80em) {\n .root[data-size-xl='sm'] {\n --_h: var(--control-sm);\n --_fs: var(--text-xs);\n --_px: var(--space-3);\n --_icon: 1rem;\n }\n .root[data-size-xl='md'] {\n --_h: var(--control-md);\n --_fs: var(--text-sm);\n --_px: var(--space-4);\n --_icon: 1.25rem;\n }\n .root[data-size-xl='lg'] {\n --_h: var(--control-lg);\n --_fs: var(--text-md);\n --_px: var(--space-5);\n --_icon: 1.25rem;\n }\n .root[data-full-width-xl='true'] {\n display: grid;\n inline-size: 100%;\n }\n .root[data-full-width-xl='false'] {\n display: inline-grid;\n inline-size: auto;\n }\n}\n\n/* Icon-only segments are square at every size (after the responsive sizes so it wins). */\n.root[data-icon-only] {\n --_px: 0px;\n}\n\n.indicator {\n position: absolute;\n z-index: -1;\n inset-block: var(--_pad);\n inset-inline-start: var(--_pad);\n inline-size: calc((100% - 2 * var(--_pad)) / var(--_count));\n border: var(--border-width) solid var(--segmented-indicator-line, var(--color-line-strong));\n border-radius: max(calc(var(--_r) - var(--_pad)), 2px);\n background: var(--segmented-indicator, var(--color-surface-raised));\n box-shadow: var(--segmented-indicator-shadow, var(--shadow-active));\n translate: calc(var(--_index) * 100%) 0;\n transition: translate var(--dur-3) var(--ease-spring);\n}\n[dir='rtl'] .indicator {\n translate: calc(var(--_index) * -100%) 0;\n}\n\n.item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.45em;\n min-inline-size: calc(var(--_h) - 2 * var(--_pad));\n padding-inline: var(--_px);\n padding-block: 0;\n border: 0;\n border-radius: max(calc(var(--_r) - var(--_pad)), 2px);\n background: transparent;\n color: var(--color-ink-muted);\n font-family: var(--font-text);\n font-size: var(--_fs);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n line-height: 1;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n transition: color var(--dur-2) var(--ease-out);\n}\n\n@media (hover: hover) {\n .item:hover:not(:disabled) {\n color: var(--color-ink);\n }\n}\n\n.item[data-state='on'] {\n color: var(--color-ink);\n cursor: default;\n}\n\n.item:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 1px;\n}\n\n.item:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n\n.icon {\n display: inline-flex;\n font-size: 1.2em;\n}\n.root[data-icon-only] .icon {\n font-size: var(--_icon);\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.srOnly {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .indicator {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { SegmentedControl } from './SegmentedControl.js';
2
+ export type { SegmentedControlProps, SegmentedControlItemProps, SegmentedControlOption, } from './SegmentedControl.js';
@@ -0,0 +1,19 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import { Toggle } from 'radix-ui';
3
+ export type ToggleChipSize = 'sm' | 'md';
4
+ export interface ToggleChipProps extends ComponentPropsWithoutRef<typeof Toggle.Root> {
5
+ size?: ToggleChipSize;
6
+ /** A leading glyph. Keep it meaningful — one icon per row at most. */
7
+ icon?: ReactNode;
8
+ /** How many items the filter matches. Rendered in tabular figures after the label. */
9
+ count?: number;
10
+ }
11
+ /**
12
+ * A pressable filter chip — an on/off switch that reads as a word ("Mine", "Overdue
13
+ * only"). Built on Radix Toggle, so it is a real `<button aria-pressed>`; use
14
+ * `pressed`/`onPressedChange` (controlled) or `defaultPressed`.
15
+ *
16
+ * Pressed chips take the accent's soft fill. Where the theme has a hard press shadow
17
+ * (Fiesta), resting chips stand proud and pressed chips sit flat — literally pushed in.
18
+ */
19
+ export declare const ToggleChip: import("react").ForwardRefExoticComponent<ToggleChipProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,34 @@
1
+ import { cx as e } from "../../../utils/cx.js";
2
+ import t from "./chip.module.js";
3
+ import { forwardRef as n } from "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { Toggle as a } from "radix-ui";
6
+ //#region src/components/actions/ToggleChip/ToggleChip.tsx
7
+ var o = n(function({ size: n = "md", icon: o, count: s, className: c, children: l, type: u, ...d }, f) {
8
+ return /* @__PURE__ */ i(a.Root, {
9
+ ref: f,
10
+ type: u ?? "button",
11
+ className: e(t.chip, c),
12
+ "data-size": n,
13
+ ...d,
14
+ children: [
15
+ o ? /* @__PURE__ */ r("span", {
16
+ className: t.icon,
17
+ "aria-hidden": "true",
18
+ children: o
19
+ }) : null,
20
+ /* @__PURE__ */ r("span", {
21
+ className: t.label,
22
+ children: l
23
+ }),
24
+ s === void 0 ? null : /* @__PURE__ */ r("span", {
25
+ className: t.count,
26
+ children: s
27
+ })
28
+ ]
29
+ });
30
+ });
31
+ //#endregion
32
+ export { o as ToggleChip };
33
+
34
+ //# sourceMappingURL=ToggleChip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleChip.js","names":["styles","chip_module_default","ToggleChip","forwardRef","rest","Toggle","type","cx","className","size","icon","count"],"sources":["../../../../src/components/actions/ToggleChip/ToggleChip.tsx"],"sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react'\nimport { Toggle } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport styles from './chip.module.css'\n\nexport type ToggleChipSize = 'sm' | 'md'\n\nexport interface ToggleChipProps extends ComponentPropsWithoutRef<typeof Toggle.Root> {\n size?: ToggleChipSize\n /** A leading glyph. Keep it meaningful — one icon per row at most. */\n icon?: ReactNode\n /** How many items the filter matches. Rendered in tabular figures after the label. */\n count?: number\n}\n\n/**\n * A pressable filter chip — an on/off switch that reads as a word (\"Mine\", \"Overdue\n * only\"). Built on Radix Toggle, so it is a real `<button aria-pressed>`; use\n * `pressed`/`onPressedChange` (controlled) or `defaultPressed`.\n *\n * Pressed chips take the accent's soft fill. Where the theme has a hard press shadow\n * (Fiesta), resting chips stand proud and pressed chips sit flat — literally pushed in.\n */\nexport const ToggleChip = forwardRef<HTMLButtonElement, ToggleChipProps>(function ToggleChip(\n { size = 'md', icon, count, className, children, type, ...rest },\n ref,\n) {\n return (\n <Toggle.Root\n ref={ref}\n type={type ?? 'button'}\n className={cx(styles.chip, className)}\n data-size={size}\n {...rest}\n >\n {icon ? (\n <span className={styles.icon} aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <span className={styles.label}>{children}</span>\n {count !== undefined ? <span className={styles.count}>{count}</span> : null}\n </Toggle.Root>\n )\n})\n"],"mappings":";;;;;;AAuBA,IAAaE,IAAaC,EAA+C,SACvE,EAAE,UAAO,MAAM,SAAM,UAAO,cAAW,aAAU,SAAM,GAAGC,KAC1D,GACA;CACA,OACE,kBAACC,EAAO,MAAR;EACO;EACL,MAAMC,KAAQ;EACd,WAAWC,EAAGP,EAAO,MAAMQ,CAAS;EACpC,aAAWC;EACX,GAAIL;EALN,UAAA;GAOGM,IACC,kBAAC,QAAD;IAAM,WAAWV,EAAO;IAAM,eAAY;IACvC,UAAAU;GACG,CAAA,IACJ;GACJ,kBAAC,QAAD;IAAM,WAAWV,EAAO;IAAQ;GAAe,CAAA;GAC9CW,MAAU,KAAA,IAA4D,OAAhD,kBAAC,QAAD;IAAM,WAAWX,EAAO;IAAQ,UAAAW;GAAY,CAAA;EACxD;;AAEjB,CAAC"}
@@ -0,0 +1,10 @@
1
+ //#region src/components/actions/ToggleChip/chip.module.css
2
+ var e = "kiln-chip__chip", t = "kiln-chip__icon", n = "kiln-chip__count", r = {
3
+ chip: e,
4
+ icon: t,
5
+ count: n
6
+ };
7
+ //#endregion
8
+ export { e as chip, n as count, r as default, t as icon };
9
+
10
+ //# sourceMappingURL=chip.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip.module.js","names":["chip","icon","count","chip_module_default"],"sources":["../../../../src/components/actions/ToggleChip/chip.module.css"],"sourcesContent":["/*\n * The chip look, shared by ToggleChip (Radix Toggle) and ChipGroup's items (Radix\n * ToggleGroup items) — both expose `data-state=\"on|off\"`, so one module styles both.\n * Internal: import it only from those two components.\n *\n * Component tokens:\n * --chip-radius default var(--radius-chip)\n * --chip-shadow resting shadow; default var(--shadow-active) (flat except Fiesta)\n * --chip-pressed-bg default var(--color-accent-soft)\n * --chip-pressed-ink default var(--color-accent-text)\n * --chip-pressed-line default var(--color-accent)\n */\n.chip {\n --_h: var(--control-sm);\n --_px: var(--space-3);\n --_fs: var(--text-sm);\n --_bg: transparent;\n --_ink: var(--color-ink-muted);\n --_line: var(--color-line-strong);\n --_shadow: var(--chip-shadow, var(--shadow-active));\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n min-block-size: var(--_h);\n padding-inline: var(--_px);\n padding-block: 0;\n border: var(--border-width) solid var(--_line);\n border-radius: var(--chip-radius, var(--radius-chip));\n background: var(--_bg);\n color: var(--_ink);\n box-shadow: var(--_shadow);\n font-family: var(--font-text);\n font-size: var(--_fs);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n line-height: 1;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n transition:\n background-color var(--dur-1) var(--ease-out),\n border-color var(--dur-1) var(--ease-out),\n color var(--dur-1) var(--ease-out),\n box-shadow var(--dur-1) var(--ease-out),\n translate var(--dur-2) var(--ease-spring);\n}\n\n/* Grow the hit area to a comfortable touch target without changing the visual size. */\n.chip::after {\n content: '';\n position: absolute;\n inset-inline: 0;\n inset-block: min(0px, calc((var(--_h) - var(--control-lg)) / 2));\n}\n\n.chip[data-size='sm'] {\n --_h: calc(var(--control-sm) * 0.8125);\n --_px: var(--space-2);\n --_fs: var(--text-xs);\n}\n\n@media (hover: hover) {\n .chip:hover:not(:disabled) {\n --_ink: var(--color-ink);\n --_line: var(--color-ink-subtle);\n }\n}\n\n.chip[data-state='on'] {\n --_bg: var(--chip-pressed-bg, var(--color-accent-soft));\n --_ink: var(--chip-pressed-ink, var(--color-accent-text));\n --_line: var(--chip-pressed-line, var(--color-accent));\n --_shadow: none;\n\n translate: var(--active-shift) var(--active-shift);\n}\n@media (hover: hover) {\n .chip[data-state='on']:hover:not(:disabled) {\n --_ink: var(--chip-pressed-ink, var(--color-accent-text));\n --_line: var(--chip-pressed-line, var(--color-accent));\n }\n}\n\n/* In an invalid ChipGroup the resting chips take the critical edge; pressed ones keep theirs. */\n.chip[data-invalid]:not([data-state='on']) {\n --_line: var(--tone-critical);\n}\n\n.chip:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 2px;\n}\n\n.chip:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n box-shadow: none;\n}\n\n.icon {\n display: inline-flex;\n font-size: 1.15em;\n margin-inline-start: -0.15em;\n}\n\n.count {\n display: inline-grid;\n place-items: center;\n min-inline-size: 1.6em;\n padding-inline: 0.35em;\n margin-inline-end: -0.35em;\n block-size: 1.6em;\n border-radius: var(--chip-radius, var(--radius-chip));\n background: var(--color-surface-sunken);\n color: var(--color-ink-muted);\n font-family: var(--font-numeric);\n font-stretch: var(--numeric-stretch);\n font-variant-numeric: tabular-nums lining-nums;\n font-size: 0.85em;\n font-weight: var(--label-weight);\n letter-spacing: 0;\n transition:\n background-color var(--dur-1) var(--ease-out),\n color var(--dur-1) var(--ease-out);\n}\n.chip[data-state='on'] .count {\n background: var(--chip-pressed-line, var(--color-accent));\n color: var(--color-accent-ink);\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { ToggleChip } from './ToggleChip.js';
2
+ export type { ToggleChipProps, ToggleChipSize } from './ToggleChip.js';
@@ -0,0 +1,27 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import type { AvatarColor, AvatarSize } from './avatarUtils.js';
3
+ export interface AvatarProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
4
+ /** Image URL. While loading, or if it fails, the initials fallback shows. */
5
+ src?: string;
6
+ /** Accessible name. Defaults to `name`. Pass `""` when a visible label sits beside it. */
7
+ alt?: string;
8
+ /** Person or thing. Drives the initials and the fallback colour. */
9
+ name: string;
10
+ /** Default `md`, or the enclosing `AvatarGroup`'s size. */
11
+ size?: AvatarSize;
12
+ /** Override the name-derived fallback colour (e.g. a member's assigned colour). */
13
+ color?: AvatarColor;
14
+ /** A highlight ring — marks "you" in a leaderboard or roster. */
15
+ ring?: boolean;
16
+ /**
17
+ * Replace the derived initials — a company's short code ("NWS"), a logo's letters. Up to three
18
+ * characters; three are set smaller so they fit the frame.
19
+ */
20
+ initials?: string;
21
+ }
22
+ /**
23
+ * A person or entity. Image with an initials fallback on a deterministic categorical
24
+ * colour. Shape comes from `--radius-avatar` (rounded square in Monograph/Ledger, round in
25
+ * Fiesta).
26
+ */
27
+ export declare const Avatar: import("react").ForwardRefExoticComponent<AvatarProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,39 @@
1
+ import { cx as e } from "../../../utils/cx.js";
2
+ import { AvatarSizeContext as t } from "./AvatarContext.js";
3
+ import { avatarColor as n, getInitials as r } from "./avatarUtils.js";
4
+ import i from "./Avatar.module.js";
5
+ import { forwardRef as a, useContext as o } from "react";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ import { Avatar as l } from "radix-ui";
8
+ //#region src/components/display/Avatar/Avatar.tsx
9
+ var u = a(function({ src: a, alt: u, name: d, size: f, color: p, ring: m = !1, initials: h, className: g, ..._ }, v) {
10
+ let y = o(t), b = u ?? d, x = b === "", S = h?.trim() ? h.trim().toLocaleUpperCase() : r(d), C = Array.from(S).length;
11
+ return /* @__PURE__ */ c(l.Root, {
12
+ ref: v,
13
+ className: e(i.avatar, g),
14
+ "data-size": f ?? y ?? "md",
15
+ "data-color": p ?? n(d),
16
+ "data-ring": m || void 0,
17
+ ..._,
18
+ children: [a ? /* @__PURE__ */ s(l.Image, {
19
+ className: i.image,
20
+ src: a,
21
+ alt: b
22
+ }) : null, /* @__PURE__ */ s(l.Fallback, {
23
+ className: i.fallback,
24
+ role: x ? void 0 : "img",
25
+ "aria-label": x ? void 0 : b,
26
+ "aria-hidden": x || void 0,
27
+ delayMs: a ? 300 : void 0,
28
+ "data-glyphs": C > 2 ? "many" : void 0,
29
+ children: /* @__PURE__ */ s("span", {
30
+ "aria-hidden": "true",
31
+ children: S
32
+ })
33
+ })]
34
+ });
35
+ });
36
+ //#endregion
37
+ export { u as Avatar };
38
+
39
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","names":["Avatar","AvatarPrimitive","styles","Avatar_module_default","Avatar$1","forwardRef","rest","groupSize","useContext","AvatarSizeContext","label","alt","name","decorative","text","initials","getInitials","glyphs","Avatar","cx","className","size","color","avatarColor","ring","src"],"sources":["../../../../src/components/display/Avatar/Avatar.tsx"],"sourcesContent":["import { forwardRef, useContext, type HTMLAttributes } from 'react'\nimport { Avatar as AvatarPrimitive } from 'radix-ui'\nimport { cx } from '#utils/cx'\nimport { AvatarSizeContext } from './AvatarContext'\nimport { avatarColor, getInitials } from './avatarUtils'\nimport type { AvatarColor, AvatarSize } from './avatarUtils'\nimport styles from './Avatar.module.css'\n\nexport interface AvatarProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {\n /** Image URL. While loading, or if it fails, the initials fallback shows. */\n src?: string\n /** Accessible name. Defaults to `name`. Pass `\"\"` when a visible label sits beside it. */\n alt?: string\n /** Person or thing. Drives the initials and the fallback colour. */\n name: string\n /** Default `md`, or the enclosing `AvatarGroup`'s size. */\n size?: AvatarSize\n /** Override the name-derived fallback colour (e.g. a member's assigned colour). */\n color?: AvatarColor\n /** A highlight ring — marks \"you\" in a leaderboard or roster. */\n ring?: boolean\n /**\n * Replace the derived initials — a company's short code (\"NWS\"), a logo's letters. Up to three\n * characters; three are set smaller so they fit the frame.\n */\n initials?: string\n}\n\n/**\n * A person or entity. Image with an initials fallback on a deterministic categorical\n * colour. Shape comes from `--radius-avatar` (rounded square in Monograph/Ledger, round in\n * Fiesta).\n */\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(function Avatar(\n { src, alt, name, size, color, ring = false, initials, className, ...rest },\n ref,\n) {\n const groupSize = useContext(AvatarSizeContext)\n const label = alt ?? name\n const decorative = label === ''\n const text = initials?.trim() ? initials.trim().toLocaleUpperCase() : getInitials(name)\n const glyphs = Array.from(text).length\n return (\n <AvatarPrimitive.Root\n ref={ref}\n className={cx(styles.avatar, className)}\n data-size={size ?? groupSize ?? 'md'}\n data-color={color ?? avatarColor(name)}\n data-ring={ring || undefined}\n {...rest}\n >\n {src ? <AvatarPrimitive.Image className={styles.image} src={src} alt={label} /> : null}\n <AvatarPrimitive.Fallback\n className={styles.fallback}\n role={decorative ? undefined : 'img'}\n aria-label={decorative ? undefined : label}\n aria-hidden={decorative || undefined}\n delayMs={src ? 300 : undefined}\n data-glyphs={glyphs > 2 ? 'many' : undefined}\n >\n <span aria-hidden=\"true\">{text}</span>\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n )\n})\n"],"mappings":";;;;;;;;AAiCA,IAAaA,IAASK,EAAyC,SAC7D,EAAE,QAAK,QAAK,SAAM,SAAM,UAAO,UAAO,IAAO,aAAU,cAAW,GAAGC,KACrE,GACA;CACA,IAAMC,IAAYC,EAAWC,CAAiB,GACxCC,IAAQC,KAAOC,GACfC,IAAaH,MAAU,IACvBI,IAAOC,GAAU,KAAK,IAAIA,EAAS,KAAK,CAAC,CAAC,kBAAkB,IAAIC,EAAYJ,CAAI,GAChFK,IAAS,MAAM,KAAKH,CAAI,CAAC,CAAC;CAChC,OACE,kBAACb,EAAgB,MAAjB;EACO;EACL,WAAWkB,EAAGjB,EAAO,QAAQkB,CAAS;EACtC,aAAWC,KAAQd,KAAa;EAChC,cAAYe,KAASC,EAAYX,CAAI;EACrC,aAAWY,KAAQ,KAAA;EACnB,GAAIlB;EANN,UAAA,CAQGmB,IAAM,kBAACxB,EAAgB,OAAjB;GAAuB,WAAWC,EAAO;GAAY;GAAK,KAAKQ;EAAQ,CAAA,IAAI,MAClF,kBAACT,EAAgB,UAAjB;GACE,WAAWC,EAAO;GAClB,MAAMW,IAAa,KAAA,IAAY;GAC/B,cAAYA,IAAa,KAAA,IAAYH;GACrC,eAAaG,KAAc,KAAA;GAC3B,SAASY,IAAM,MAAM,KAAA;GACrB,eAAaR,IAAS,IAAI,SAAS,KAAA;GAEnC,UAAA,kBAAC,QAAD;IAAM,eAAY;IAAQ,UAAAH;GAAW,CAAA;EACb,CAAA,CACN;;AAE1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ //#region src/components/display/Avatar/Avatar.module.css
2
+ var e = "kiln-Avatar__avatar", t = "kiln-Avatar__image", n = "kiln-Avatar__fallback", r = {
3
+ avatar: e,
4
+ image: t,
5
+ fallback: n
6
+ };
7
+ //#endregion
8
+ export { e as avatar, r as default, n as fallback, t as image };
9
+
10
+ //# sourceMappingURL=Avatar.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.module.js","names":["avatar","image","fallback","Avatar_module_default"],"sources":["../../../../src/components/display/Avatar/Avatar.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --avatar-radius default var(--radius-avatar)\n * --avatar-edge default line-strong at 70% — inner keyline (ink in Fiesta)\n * --avatar-ring-color default var(--color-accent) — the \"you\" ring\n * --avatar-cutout default var(--color-canvas) — gap between ring/stack and avatar\n */\n.avatar {\n --_size: var(--control-md);\n --_bg: var(--color-cat-8);\n\n position: relative;\n display: inline-grid;\n flex: none;\n place-items: center;\n inline-size: var(--_size);\n block-size: var(--_size);\n border-radius: var(--avatar-radius, var(--radius-avatar));\n background: var(--_bg);\n color: var(--color-cat-ink);\n vertical-align: middle;\n user-select: none;\n}\n\n/* Inner keyline drawn over the image, so photos and fills share one edge. */\n.avatar::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 var(--border-width)\n var(--avatar-edge, color-mix(in oklch, var(--color-line-strong) 70%, transparent));\n pointer-events: none;\n}\n\n.avatar[data-size='xs'] {\n --_size: var(--space-5);\n}\n.avatar[data-size='sm'] {\n --_size: var(--control-sm);\n}\n.avatar[data-size='md'] {\n --_size: var(--control-md);\n}\n.avatar[data-size='lg'] {\n --_size: var(--control-lg);\n}\n.avatar[data-size='xl'] {\n --_size: var(--space-8);\n}\n\n.avatar[data-color='1'] {\n --_bg: var(--color-cat-1);\n}\n.avatar[data-color='2'] {\n --_bg: var(--color-cat-2);\n}\n.avatar[data-color='3'] {\n --_bg: var(--color-cat-3);\n}\n.avatar[data-color='4'] {\n --_bg: var(--color-cat-4);\n}\n.avatar[data-color='5'] {\n --_bg: var(--color-cat-5);\n}\n.avatar[data-color='6'] {\n --_bg: var(--color-cat-6);\n}\n.avatar[data-color='7'] {\n --_bg: var(--color-cat-7);\n}\n.avatar[data-color='8'] {\n --_bg: var(--color-cat-8);\n}\n\n/* \"You\": a cut-out gap, then the ring. */\n.avatar[data-ring] {\n box-shadow:\n 0 0 0 2px var(--avatar-cutout, var(--color-canvas)),\n 0 0 0 calc(2px + var(--border-width-strong) + 1px) var(--avatar-ring-color, var(--color-accent));\n}\n\n.image {\n grid-area: 1 / 1;\n inline-size: 100%;\n block-size: 100%;\n border-radius: inherit;\n object-fit: cover;\n}\n\n.fallback {\n grid-area: 1 / 1;\n display: grid;\n place-items: center;\n inline-size: 100%;\n block-size: 100%;\n border-radius: inherit;\n font-family: var(--heading-font);\n font-weight: var(--heading-weight);\n text-transform: var(--heading-transform);\n font-size: calc(var(--_size) * 0.38);\n letter-spacing: 0;\n line-height: 1;\n}\n.avatar[data-size='xs'] .fallback {\n font-size: calc(var(--_size) * 0.46);\n}\n/* Three-letter codes (\"NWS\", \"ACM\") shrink so they clear the frame and the keyline. */\n.fallback[data-glyphs='many'] {\n font-size: calc(var(--_size) * 0.3);\n letter-spacing: -0.02em;\n}\n.avatar[data-size='xs'] .fallback[data-glyphs='many'] {\n font-size: calc(var(--_size) * 0.34);\n}\n"],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { AvatarSize } from './avatarUtils.js';
2
+ /** Lets `AvatarGroup` size its children without repeating the prop. */
3
+ export declare const AvatarSizeContext: import("react").Context<AvatarSize | undefined>;
@@ -0,0 +1,7 @@
1
+ import { createContext as e } from "react";
2
+ //#region src/components/display/Avatar/AvatarContext.ts
3
+ var t = e(void 0);
4
+ //#endregion
5
+ export { t as AvatarSizeContext };
6
+
7
+ //# sourceMappingURL=AvatarContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarContext.js","names":["AvatarSizeContext","createContext"],"sources":["../../../../src/components/display/Avatar/AvatarContext.ts"],"sourcesContent":["import { createContext } from 'react'\nimport type { AvatarSize } from './avatarUtils'\n\n/** Lets `AvatarGroup` size its children without repeating the prop. */\nexport const AvatarSizeContext = createContext<AvatarSize | undefined>(undefined)\n"],"mappings":";;AAIA,IAAaA,IAAoBC,EAAsC,KAAA,CAAS"}
@@ -0,0 +1,10 @@
1
+ export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
+ /** Categorical colour slot → `--color-cat-N`. */
3
+ export type AvatarColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
4
+ /** Up to two initials: first + last word ("Ada Okafor" → "AO"), or one for a single name. */
5
+ export declare function getInitials(name: string): string;
6
+ /**
7
+ * Deterministic categorical colour for a name (FNV-1a + finaliser, case- and space-insensitive),
8
+ * so the same person gets the same colour on every screen and every render.
9
+ */
10
+ export declare function avatarColor(name: string): AvatarColor;
@@ -0,0 +1,14 @@
1
+ //#region src/components/display/Avatar/avatarUtils.ts
2
+ function e(e) {
3
+ let t = e.trim().split(/[\s-]+/u).filter(Boolean);
4
+ return t.length === 0 ? "" : ((Array.from(t[0] ?? "")[0] ?? "") + (t.length > 1 ? Array.from(t[t.length - 1] ?? "")[0] ?? "" : "")).toLocaleUpperCase();
5
+ }
6
+ function t(e) {
7
+ let t = e.trim().toLocaleLowerCase(), n = 2166136261;
8
+ for (let e = 0; e < t.length; e++) n ^= t.charCodeAt(e), n = Math.imul(n, 16777619);
9
+ return n ^= n >>> 16, n = Math.imul(n, 2246822507), n ^= n >>> 13, (n >>> 0) % 8 + 1;
10
+ }
11
+ //#endregion
12
+ export { t as avatarColor, e as getInitials };
13
+
14
+ //# sourceMappingURL=avatarUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatarUtils.js","names":["getInitials","words","name","avatarColor","key","hash","i"],"sources":["../../../../src/components/display/Avatar/avatarUtils.ts"],"sourcesContent":["export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n/** Categorical colour slot → `--color-cat-N`. */\nexport type AvatarColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8\n\n/** Up to two initials: first + last word (\"Ada Okafor\" → \"AO\"), or one for a single name. */\nexport function getInitials(name: string): string {\n const words = name\n .trim()\n .split(/[\\s-]+/u)\n .filter(Boolean)\n if (words.length === 0) return ''\n const first = Array.from(words[0] ?? '')[0] ?? ''\n const last = words.length > 1 ? (Array.from(words[words.length - 1] ?? '')[0] ?? '') : ''\n return (first + last).toLocaleUpperCase()\n}\n\n/**\n * Deterministic categorical colour for a name (FNV-1a + finaliser, case- and space-insensitive),\n * so the same person gets the same colour on every screen and every render.\n */\nexport function avatarColor(name: string): AvatarColor {\n const key = name.trim().toLocaleLowerCase()\n let hash = 0x811c9dc5\n for (let i = 0; i < key.length; i++) {\n hash ^= key.charCodeAt(i)\n hash = Math.imul(hash, 0x01000193)\n }\n // FNV's low bits barely mix, and `% 8` reads only those: 8 names landed on 3 colours.\n // A murmur3-style finaliser spreads the high bits down first.\n hash ^= hash >>> 16\n hash = Math.imul(hash, 0x85ebca6b)\n hash ^= hash >>> 13\n return (((hash >>> 0) % 8) + 1) as AvatarColor\n}\n"],"mappings":";AAKA,SAAgBA,EAAY,GAAsB;CAChD,IAAMC,IAAQC,EACX,KAAK,CAAC,CACN,MAAM,SAAS,CAAC,CAChB,OAAO,OAAO;CAIjB,OAHID,EAAM,WAAW,IAAU,OACjB,MAAM,KAAKA,EAAM,MAAM,EAAE,CAAC,CAAC,MAAM,OAClCA,EAAM,SAAS,IAAK,MAAM,KAAKA,EAAMA,EAAM,SAAS,MAAM,EAAE,CAAC,CAAC,MAAM,KAAM,IAAA,CACjE,kBAAkB;AAC1C;AAMA,SAAgBE,EAAY,GAA2B;CACrD,IAAMC,IAAMF,EAAK,KAAK,CAAC,CAAC,kBAAkB,GACtCG,IAAO;CACX,KAAK,IAAIC,IAAI,GAAGA,IAAIF,EAAI,QAAQ,KAE9B,AADA,KAAQA,EAAI,WAAWE,CAAC,GACxB,IAAO,KAAK,KAAKD,GAAM,QAAU;CAOnC,OAHA,KAAQA,MAAS,IACjB,IAAO,KAAK,KAAKA,GAAM,UAAU,GACjC,KAAQA,MAAS,KACPA,MAAS,KAAK,IAAK;AAC/B"}
@@ -0,0 +1,5 @@
1
+ export { Avatar } from './Avatar.js';
2
+ export type { AvatarProps } from './Avatar.js';
3
+ export { AvatarSizeContext } from './AvatarContext.js';
4
+ export { getInitials, avatarColor } from './avatarUtils.js';
5
+ export type { AvatarSize, AvatarColor } from './avatarUtils.js';
@@ -0,0 +1,16 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import { type AvatarSize } from '../Avatar/index.js';
3
+ export interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** Show at most this many avatars; the rest collapse into a "+N" count. */
5
+ max?: number;
6
+ /** Size for every avatar in the stack. Default `sm`. */
7
+ size?: AvatarSize;
8
+ /** Accessible name for the group, e.g. "Reacted: Noor, Kofi and 3 others". */
9
+ 'aria-label'?: string;
10
+ }
11
+ /**
12
+ * An overlapping stack of `Avatar`s — who reacted, who owns a project, who's in a group.
13
+ *
14
+ * <AvatarGroup max={4} aria-label="Members"><Avatar name="Noor" />…</AvatarGroup>
15
+ */
16
+ export declare const AvatarGroup: import("react").ForwardRefExoticComponent<AvatarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,33 @@
1
+ import { cx as e } from "../../../utils/cx.js";
2
+ import { AvatarSizeContext as t } from "../Avatar/AvatarContext.js";
3
+ import n from "./AvatarGroup.module.js";
4
+ import { Children as r, forwardRef as i, isValidElement as a } from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ //#region src/components/display/AvatarGroup/AvatarGroup.tsx
7
+ var c = i(function({ max: i, size: c = "sm", className: l, children: u, ...d }, f) {
8
+ let p = r.toArray(u).filter(a), m = i !== void 0 && i >= 0 && p.length > i ? i : p.length, h = p.length - m;
9
+ return /* @__PURE__ */ o(t.Provider, {
10
+ value: c,
11
+ children: /* @__PURE__ */ s("div", {
12
+ ref: f,
13
+ role: "group",
14
+ className: e(n.group, l),
15
+ "data-size": c,
16
+ ...d,
17
+ children: [p.slice(0, m), h > 0 ? /* @__PURE__ */ o("span", {
18
+ className: n.more,
19
+ "data-size": c,
20
+ role: "img",
21
+ "aria-label": `${String(h)} more`,
22
+ children: /* @__PURE__ */ s("span", {
23
+ "aria-hidden": "true",
24
+ children: ["+", h]
25
+ })
26
+ }) : null]
27
+ })
28
+ });
29
+ });
30
+ //#endregion
31
+ export { c as AvatarGroup };
32
+
33
+ //# sourceMappingURL=AvatarGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroup.js","names":["styles","AvatarGroup_module_default","AvatarGroup","forwardRef","rest","items","Children","children","isValidElement","limit","max","overflow","AvatarSizeContext","size","cx","className"],"sources":["../../../../src/components/display/AvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import { Children, forwardRef, isValidElement, type HTMLAttributes } from 'react'\nimport { cx } from '#utils/cx'\nimport { AvatarSizeContext, type AvatarSize } from '#components/display/Avatar'\nimport styles from './AvatarGroup.module.css'\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Show at most this many avatars; the rest collapse into a \"+N\" count. */\n max?: number\n /** Size for every avatar in the stack. Default `sm`. */\n size?: AvatarSize\n /** Accessible name for the group, e.g. \"Reacted: Noor, Kofi and 3 others\". */\n 'aria-label'?: string\n}\n\n/**\n * An overlapping stack of `Avatar`s — who reacted, who owns a project, who's in a group.\n *\n * <AvatarGroup max={4} aria-label=\"Members\"><Avatar name=\"Noor\" />…</AvatarGroup>\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(function AvatarGroup(\n { max, size = 'sm', className, children, ...rest },\n ref,\n) {\n const items = Children.toArray(children).filter(isValidElement)\n const limit = max !== undefined && max >= 0 && items.length > max ? max : items.length\n const overflow = items.length - limit\n return (\n <AvatarSizeContext.Provider value={size}>\n <div\n ref={ref}\n role=\"group\"\n className={cx(styles.group, className)}\n data-size={size}\n {...rest}\n >\n {items.slice(0, limit)}\n {overflow > 0 ? (\n <span\n className={styles.more}\n data-size={size}\n role=\"img\"\n aria-label={`${String(overflow)} more`}\n >\n <span aria-hidden=\"true\">+{overflow}</span>\n </span>\n ) : null}\n </div>\n </AvatarSizeContext.Provider>\n )\n})\n"],"mappings":";;;;;;AAmBA,IAAaE,IAAcC,EAA6C,SACtE,EAAE,QAAK,UAAO,MAAM,cAAW,aAAU,GAAGC,KAC5C,GACA;CACA,IAAMC,IAAQC,EAAS,QAAQC,CAAQ,CAAC,CAAC,OAAOC,CAAc,GACxDC,IAAQC,MAAQ,KAAA,KAAaA,KAAO,KAAKL,EAAM,SAASK,IAAMA,IAAML,EAAM,QAC1EM,IAAWN,EAAM,SAASI;CAChC,OACE,kBAACG,EAAkB,UAAnB;EAA4B,OAAOC;EACjC,UAAA,kBAAC,OAAD;GACO;GACL,MAAK;GACL,WAAWC,EAAGd,EAAO,OAAOe,CAAS;GACrC,aAAWF;GACX,GAAIT;GALN,UAAA,CAOGC,EAAM,MAAM,GAAGI,CAAK,GACpBE,IAAW,IACV,kBAAC,QAAD;IACE,WAAWX,EAAO;IAClB,aAAWa;IACX,MAAK;IACL,cAAY,GAAG,OAAOF,CAAQ,EAAE;IAEhC,UAAA,kBAAC,QAAD;KAAM,eAAY;KAAlB,UAAA,CAAyB,KAAEA,CAAe;;GACtC,CAAA,IACJ,IACD;;CACqB,CAAA;AAEhC,CAAC"}
@@ -0,0 +1,9 @@
1
+ //#region src/components/display/AvatarGroup/AvatarGroup.module.css
2
+ var e = "kiln-AvatarGroup__group", t = "kiln-AvatarGroup__more", n = {
3
+ group: e,
4
+ more: t
5
+ };
6
+ //#endregion
7
+ export { n as default, e as group, t as more };
8
+
9
+ //# sourceMappingURL=AvatarGroup.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroup.module.js","names":["group","more","AvatarGroup_module_default"],"sources":["../../../../src/components/display/AvatarGroup/AvatarGroup.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --avatar-cutout default var(--color-canvas) — the gap drawn around each stacked avatar\n * --avatar-overlap default 0.14 (0.05 at xs/sm) — fraction of an avatar hidden under\n * its neighbour. Each avatar also loses the 2px cutout ring drawn by the\n * next one, so small stacks overlap less or their initials get clipped.\n *\n * Sizes mirror Avatar's so the \"+N\" chip matches the stack.\n */\n.group {\n --_size: var(--control-sm);\n --_overlap: var(--avatar-overlap, 0.14);\n\n display: inline-flex;\n align-items: center;\n isolation: isolate;\n vertical-align: middle;\n}\n.group[data-size='xs'] {\n --_size: var(--space-5);\n --_overlap: var(--avatar-overlap, 0.05);\n}\n.group[data-size='sm'] {\n --_size: var(--control-sm);\n --_overlap: var(--avatar-overlap, 0.05);\n}\n.group[data-size='md'] {\n --_size: var(--control-md);\n}\n.group[data-size='lg'] {\n --_size: var(--control-lg);\n}\n.group[data-size='xl'] {\n --_size: var(--space-8);\n}\n\n.group > * {\n box-shadow: 0 0 0 2px var(--avatar-cutout, var(--color-canvas));\n}\n.group > * + * {\n margin-inline-start: calc(var(--_size) * var(--_overlap) * -1);\n}\n\n.more {\n --_size: var(--control-sm);\n\n display: inline-grid;\n flex: none;\n place-items: center;\n inline-size: var(--_size);\n block-size: var(--_size);\n border-radius: var(--avatar-radius, var(--radius-avatar));\n background: var(--color-surface-sunken);\n color: var(--color-ink-muted);\n font-family: var(--font-numeric);\n font-stretch: var(--numeric-stretch);\n font-weight: var(--label-weight);\n font-variant-numeric: tabular-nums lining-nums;\n font-size: calc(var(--_size) * 0.36);\n line-height: 1;\n outline: var(--border-width) solid var(--color-line);\n outline-offset: calc(var(--border-width) * -1);\n}\n.more[data-size='xs'] {\n --_size: var(--space-5);\n}\n.more[data-size='md'] {\n --_size: var(--control-md);\n}\n.more[data-size='lg'] {\n --_size: var(--control-lg);\n}\n.more[data-size='xl'] {\n --_size: var(--space-8);\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { AvatarGroup } from './AvatarGroup.js';
2
+ export type { AvatarGroupProps } from './AvatarGroup.js';
@@ -0,0 +1,18 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import type { Tone } from '../../../utils/tokens.js';
3
+ export type BadgeVariant = 'soft' | 'solid' | 'outline';
4
+ export type BadgeSize = 'sm' | 'md';
5
+ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
6
+ /** Status colour. `neutral` for plain counts and labels. Default `neutral`. */
7
+ tone?: Tone;
8
+ /** `soft` (default) for most status; `solid` for the one that must be seen; `outline` for quiet. */
9
+ variant?: BadgeVariant;
10
+ size?: BadgeSize;
11
+ /** Leading status dot in the tone colour. Decorative — the label carries the meaning. */
12
+ dot?: boolean;
13
+ }
14
+ /**
15
+ * A short status or count: "Live", "Over quota", "3 new", "Overdue".
16
+ * Metadata and categories are Tags; a Badge says what *state* something is in.
17
+ */
18
+ export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,23 @@
1
+ import { cx as e } from "../../../utils/cx.js";
2
+ import t from "./Badge.module.js";
3
+ import { forwardRef as n } from "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ //#region src/components/display/Badge/Badge.tsx
6
+ var a = n(function({ tone: n = "neutral", variant: a = "soft", size: o = "sm", dot: s = !1, className: c, children: l, ...u }, d) {
7
+ return /* @__PURE__ */ i("span", {
8
+ ref: d,
9
+ className: e(t.badge, c),
10
+ "data-tone": n,
11
+ "data-variant": a,
12
+ "data-size": o,
13
+ ...u,
14
+ children: [s ? /* @__PURE__ */ r("span", {
15
+ className: t.dot,
16
+ "aria-hidden": "true"
17
+ }) : null, l]
18
+ });
19
+ });
20
+ //#endregion
21
+ export { a as Badge };
22
+
23
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","names":["styles","Badge_module_default","Badge","forwardRef","rest","cx","className","tone","variant","size","dot","children"],"sources":["../../../../src/components/display/Badge/Badge.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\nimport { cx } from '#utils/cx'\nimport type { Tone } from '#utils/tokens'\nimport styles from './Badge.module.css'\n\nexport type BadgeVariant = 'soft' | 'solid' | 'outline'\nexport type BadgeSize = 'sm' | 'md'\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n /** Status colour. `neutral` for plain counts and labels. Default `neutral`. */\n tone?: Tone\n /** `soft` (default) for most status; `solid` for the one that must be seen; `outline` for quiet. */\n variant?: BadgeVariant\n size?: BadgeSize\n /** Leading status dot in the tone colour. Decorative — the label carries the meaning. */\n dot?: boolean\n}\n\n/**\n * A short status or count: \"Live\", \"Over quota\", \"3 new\", \"Overdue\".\n * Metadata and categories are Tags; a Badge says what *state* something is in.\n */\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\n { tone = 'neutral', variant = 'soft', size = 'sm', dot = false, className, children, ...rest },\n ref,\n) {\n return (\n <span\n ref={ref}\n className={cx(styles.badge, className)}\n data-tone={tone}\n data-variant={variant}\n data-size={size}\n {...rest}\n >\n {dot ? <span className={styles.dot} aria-hidden=\"true\" /> : null}\n {children}\n </span>\n )\n})\n"],"mappings":";;;;;AAsBA,IAAaE,IAAQC,EAAwC,SAC3D,EAAE,UAAO,WAAW,aAAU,QAAQ,UAAO,MAAM,SAAM,IAAO,cAAW,aAAU,GAAGC,KACxF,GACA;CACA,OACE,kBAAC,QAAD;EACO;EACL,WAAWC,EAAGL,EAAO,OAAOM,CAAS;EACrC,aAAWC;EACX,gBAAcC;EACd,aAAWC;EACX,GAAIL;EANN,UAAA,CAQGM,IAAM,kBAAC,QAAD;GAAM,WAAWV,EAAO;GAAK,eAAY;EAAQ,CAAA,IAAI,MAC3DW,CACG;;AAEV,CAAC"}
@@ -0,0 +1,9 @@
1
+ //#region src/components/display/Badge/Badge.module.css
2
+ var e = "kiln-Badge__badge", t = "kiln-Badge__dot", n = {
3
+ badge: e,
4
+ dot: t
5
+ };
6
+ //#endregion
7
+ export { e as badge, n as default, t as dot };
8
+
9
+ //# sourceMappingURL=Badge.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.module.js","names":["badge","dot","Badge_module_default"],"sources":["../../../../src/components/display/Badge/Badge.module.css"],"sourcesContent":["/*\n * Component tokens (themes may set any of these on [data-theme]):\n * --badge-radius default var(--radius-chip)\n * --badge-weight default var(--label-weight)\n */\n.badge {\n --_c: var(--color-surface-inverse);\n --_c-ink: var(--color-ink-inverse);\n --_c-text: var(--color-ink-muted);\n --_c-soft: var(--color-surface-sunken);\n --_bg: var(--_c-soft);\n --_ink: var(--_c-text);\n --_border: transparent;\n --_h: calc(var(--space-5) * 0.9);\n --_px: var(--space-2);\n --_fs: var(--text-xs);\n\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: 0.4em;\n min-block-size: var(--_h);\n padding-inline: var(--_px);\n border: var(--border-width) solid var(--_border);\n border-radius: var(--badge-radius, var(--radius-chip));\n background: var(--_bg);\n color: var(--_ink);\n font-family: var(--font-text);\n font-size: var(--_fs);\n font-weight: var(--badge-weight, var(--label-weight));\n letter-spacing: var(--label-tracking);\n text-transform: var(--label-transform);\n font-variant-numeric: tabular-nums lining-nums;\n line-height: 1;\n white-space: nowrap;\n vertical-align: middle;\n}\n\n.badge[data-size='md'] {\n --_h: calc(var(--space-5) * 1.1);\n --_px: calc(var(--space-2) * 1.25);\n --_fs: var(--text-sm);\n}\n\n.badge[data-tone='accent'] {\n --_c: var(--color-accent);\n --_c-ink: var(--color-accent-ink);\n --_c-text: var(--color-accent-text);\n --_c-soft: var(--color-accent-soft);\n}\n.badge[data-tone='positive'] {\n --_c: var(--tone-positive);\n --_c-ink: var(--tone-positive-ink);\n --_c-text: var(--tone-positive-text);\n --_c-soft: var(--tone-positive-soft);\n}\n.badge[data-tone='caution'] {\n --_c: var(--tone-caution);\n --_c-ink: var(--tone-caution-ink);\n --_c-text: var(--tone-caution-text);\n --_c-soft: var(--tone-caution-soft);\n}\n.badge[data-tone='critical'] {\n --_c: var(--tone-critical);\n --_c-ink: var(--tone-critical-ink);\n --_c-text: var(--tone-critical-text);\n --_c-soft: var(--tone-critical-soft);\n}\n.badge[data-tone='info'] {\n --_c: var(--tone-info);\n --_c-ink: var(--tone-info-ink);\n --_c-text: var(--tone-info-text);\n --_c-soft: var(--tone-info-soft);\n}\n\n.badge[data-variant='solid'] {\n --_bg: var(--_c);\n --_ink: var(--_c-ink);\n --_border: var(--badge-solid-border, var(--_c));\n}\n.badge[data-variant='outline'] {\n --_bg: transparent;\n --_ink: var(--_c-text);\n --_border: currentColor;\n}\n.badge[data-tone='neutral'][data-variant='outline'] {\n --_border: var(--color-line-strong);\n}\n\n.dot {\n --_dot: 0.5em;\n\n flex: none;\n inline-size: var(--_dot);\n block-size: var(--_dot);\n border-radius: 50%;\n background: var(--_c);\n}\n.badge[data-tone='neutral'] .dot {\n background: var(--color-ink-subtle);\n}\n.badge[data-variant='solid'] .dot {\n background: currentColor;\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { Badge } from './Badge.js';
2
+ export type { BadgeProps, BadgeVariant, BadgeSize } from './Badge.js';
@@ -0,0 +1,46 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import { type Responsive } from '../../../utils/responsive.js';
3
+ import { type Space } from '../../../utils/tokens.js';
4
+ export type CardVariant = 'plain' | 'outline' | 'raised';
5
+ export type CardTitleLevel = 2 | 3 | 4 | 5 | 6;
6
+ export type CardMediaRatio = '1/1' | '4/3' | '3/2' | '16/9' | '21/9';
7
+ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
8
+ /**
9
+ * Edge treatment. `outline` (default) is a hairline; `plain` is a fill with no edge;
10
+ * `raised` stands on `--shadow-surface` (nothing extra in Monograph/Ledger, the print
11
+ * offset in Fiesta).
12
+ */
13
+ variant?: CardVariant;
14
+ /** Inner padding as a space step. Responsive. Default `5`. */
15
+ padding?: Responsive<Space>;
16
+ /** Hover/press affordance for cards that *are* the action. Implied by `asChild`. */
17
+ interactive?: boolean;
18
+ /**
19
+ * Render the single child element as the card — usually a link, so the whole card is
20
+ * one target: `<Card asChild><a href="/projects/atlas">…</a></Card>`. Don't nest other
21
+ * links or buttons inside a linked card.
22
+ */
23
+ asChild?: boolean;
24
+ }
25
+ export interface CardMediaProps extends HTMLAttributes<HTMLDivElement> {
26
+ /** Crop the media to a fixed ratio (the child img/video is fitted with `cover`). */
27
+ ratio?: CardMediaRatio;
28
+ /**
29
+ * Sit inside the padding instead of bleeding to the edges. The corner radius is then
30
+ * the nested radius (outer − padding).
31
+ */
32
+ inset?: boolean;
33
+ }
34
+ export interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {
35
+ /** Heading element, to fit the page outline. Visual size doesn't change. Default `3`. */
36
+ level?: CardTitleLevel;
37
+ }
38
+ export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLDivElement>> & {
39
+ Media: import("react").ForwardRefExoticComponent<CardMediaProps & import("react").RefAttributes<HTMLDivElement>>;
40
+ Header: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
41
+ Title: import("react").ForwardRefExoticComponent<CardTitleProps & import("react").RefAttributes<HTMLHeadingElement>>;
42
+ Description: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & import("react").RefAttributes<HTMLParagraphElement>>;
43
+ Body: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
44
+ Footer: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
45
+ Meta: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
46
+ };
@@ -0,0 +1,78 @@
1
+ import { cx as e } from "../../../utils/cx.js";
2
+ import { mergeStyles as t, responsiveVars as n } from "../../../utils/responsive.js";
3
+ import { space as r } from "../../../utils/tokens.js";
4
+ import { headingTag as i } from "../../../utils/heading.js";
5
+ import a from "./Card.module.js";
6
+ import { forwardRef as o } from "react";
7
+ import { jsx as s } from "react/jsx-runtime";
8
+ import { Slot as c } from "radix-ui";
9
+ //#region src/components/display/Card/Card.tsx
10
+ var l = o(function({ variant: i = "outline", padding: o, interactive: l = !1, asChild: u = !1, className: d, style: f, ...p }, m) {
11
+ let h = u ? c.Root : "div";
12
+ return /* @__PURE__ */ s(h, {
13
+ ref: m,
14
+ className: e(a.card, d),
15
+ "data-kiln-component": "",
16
+ "data-variant": i,
17
+ "data-interactive": l || u || void 0,
18
+ style: t(n("card-padding", o, r), f),
19
+ ...p
20
+ });
21
+ }), u = o(function({ ratio: t, inset: n = !1, className: r, ...i }, o) {
22
+ return /* @__PURE__ */ s("div", {
23
+ ref: o,
24
+ className: e(a.media, r),
25
+ "data-ratio": t,
26
+ "data-inset": n || void 0,
27
+ ...i
28
+ });
29
+ }), d = o(function({ className: t, ...n }, r) {
30
+ return /* @__PURE__ */ s("div", {
31
+ ref: r,
32
+ className: e(a.header, t),
33
+ ...n
34
+ });
35
+ }), f = o(function({ level: t = 3, className: n, ...r }, o) {
36
+ let c = i(t);
37
+ return /* @__PURE__ */ s(c, {
38
+ ref: o,
39
+ className: e(a.title, n),
40
+ ...r
41
+ });
42
+ }), p = o(function({ className: t, ...n }, r) {
43
+ return /* @__PURE__ */ s("p", {
44
+ ref: r,
45
+ className: e(a.description, t),
46
+ ...n
47
+ });
48
+ }), m = o(function({ className: t, ...n }, r) {
49
+ return /* @__PURE__ */ s("div", {
50
+ ref: r,
51
+ className: e(a.body, t),
52
+ ...n
53
+ });
54
+ }), h = o(function({ className: t, ...n }, r) {
55
+ return /* @__PURE__ */ s("div", {
56
+ ref: r,
57
+ className: e(a.footer, t),
58
+ ...n
59
+ });
60
+ }), g = o(function({ className: t, ...n }, r) {
61
+ return /* @__PURE__ */ s("div", {
62
+ ref: r,
63
+ className: e(a.meta, t),
64
+ ...n
65
+ });
66
+ }), _ = Object.assign(l, {
67
+ Media: u,
68
+ Header: d,
69
+ Title: f,
70
+ Description: p,
71
+ Body: m,
72
+ Footer: h,
73
+ Meta: g
74
+ });
75
+ //#endregion
76
+ export { _ as Card };
77
+
78
+ //# sourceMappingURL=Card.js.map