sherick-ui 2.8.0 → 2.10.1

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 (284) hide show
  1. package/README.md +32 -0
  2. package/dist/cjs/components/Accordion.cjs +14 -26
  3. package/dist/cjs/components/Accordion.cjs.map +1 -1
  4. package/dist/cjs/components/Alert.cjs +64 -19
  5. package/dist/cjs/components/Alert.cjs.map +1 -1
  6. package/dist/cjs/components/AlertDialog.cjs +5 -3
  7. package/dist/cjs/components/AlertDialog.cjs.map +1 -1
  8. package/dist/cjs/components/Avatar.cjs +12 -3
  9. package/dist/cjs/components/Avatar.cjs.map +1 -1
  10. package/dist/cjs/components/Badge.cjs +5 -3
  11. package/dist/cjs/components/Badge.cjs.map +1 -1
  12. package/dist/cjs/components/Breadcrumb.cjs +8 -4
  13. package/dist/cjs/components/Breadcrumb.cjs.map +1 -1
  14. package/dist/cjs/components/Button.cjs +11 -4
  15. package/dist/cjs/components/Button.cjs.map +1 -1
  16. package/dist/cjs/components/Calendar.cjs +39 -4
  17. package/dist/cjs/components/Calendar.cjs.map +1 -1
  18. package/dist/cjs/components/Card.cjs +16 -4
  19. package/dist/cjs/components/Card.cjs.map +1 -1
  20. package/dist/cjs/components/Checkbox.cjs +15 -3
  21. package/dist/cjs/components/Checkbox.cjs.map +1 -1
  22. package/dist/cjs/components/CheckboxGroup.cjs +3 -2
  23. package/dist/cjs/components/CheckboxGroup.cjs.map +1 -1
  24. package/dist/cjs/components/Chip.cjs +53 -43
  25. package/dist/cjs/components/Chip.cjs.map +1 -1
  26. package/dist/cjs/components/ChipGroup.cjs +17 -0
  27. package/dist/cjs/components/ChipGroup.cjs.map +1 -1
  28. package/dist/cjs/components/Collapsible.cjs +1 -1
  29. package/dist/cjs/components/Collapsible.cjs.map +1 -1
  30. package/dist/cjs/components/Combobox.cjs +59 -15
  31. package/dist/cjs/components/Combobox.cjs.map +1 -1
  32. package/dist/cjs/components/Command.cjs +11 -5
  33. package/dist/cjs/components/Command.cjs.map +1 -1
  34. package/dist/cjs/components/CommandPalette.cjs +5 -2
  35. package/dist/cjs/components/CommandPalette.cjs.map +1 -1
  36. package/dist/cjs/components/DatePicker.cjs +6 -3
  37. package/dist/cjs/components/DatePicker.cjs.map +1 -1
  38. package/dist/cjs/components/DateRangePicker.cjs +3 -2
  39. package/dist/cjs/components/DateRangePicker.cjs.map +1 -1
  40. package/dist/cjs/components/DateTimePicker.cjs +1 -1
  41. package/dist/cjs/components/DateTimePicker.cjs.map +1 -1
  42. package/dist/cjs/components/Dialog.cjs +10 -3
  43. package/dist/cjs/components/Dialog.cjs.map +1 -1
  44. package/dist/cjs/components/DialogContent.cjs +5 -3
  45. package/dist/cjs/components/DialogContent.cjs.map +1 -1
  46. package/dist/cjs/components/DialogDescription.cjs +5 -3
  47. package/dist/cjs/components/DialogDescription.cjs.map +1 -1
  48. package/dist/cjs/components/DialogFooter.cjs +3 -3
  49. package/dist/cjs/components/DialogFooter.cjs.map +1 -1
  50. package/dist/cjs/components/DialogHeader.cjs +5 -3
  51. package/dist/cjs/components/DialogHeader.cjs.map +1 -1
  52. package/dist/cjs/components/DialogSurface.cjs +37 -15
  53. package/dist/cjs/components/DialogSurface.cjs.map +1 -1
  54. package/dist/cjs/components/DismissButton.cjs +24 -0
  55. package/dist/cjs/components/DismissButton.cjs.map +1 -0
  56. package/dist/cjs/components/Divider.cjs +3 -1
  57. package/dist/cjs/components/Divider.cjs.map +1 -1
  58. package/dist/cjs/components/Drawer.cjs +28 -15
  59. package/dist/cjs/components/Drawer.cjs.map +1 -1
  60. package/dist/cjs/components/Field.cjs +47 -2
  61. package/dist/cjs/components/Field.cjs.map +1 -1
  62. package/dist/cjs/components/FieldLabel.cjs +20 -0
  63. package/dist/cjs/components/FieldLabel.cjs.map +1 -0
  64. package/dist/cjs/components/FileUpload.cjs +19 -9
  65. package/dist/cjs/components/FileUpload.cjs.map +1 -1
  66. package/dist/cjs/components/IconButton.cjs +28 -3
  67. package/dist/cjs/components/IconButton.cjs.map +1 -1
  68. package/dist/cjs/components/Input.cjs +14 -5
  69. package/dist/cjs/components/Input.cjs.map +1 -1
  70. package/dist/cjs/components/Menu.cjs +18 -4
  71. package/dist/cjs/components/Menu.cjs.map +1 -1
  72. package/dist/cjs/components/NavGroup.cjs +7 -1
  73. package/dist/cjs/components/NavGroup.cjs.map +1 -1
  74. package/dist/cjs/components/NavItem.cjs +28 -3
  75. package/dist/cjs/components/NavItem.cjs.map +1 -1
  76. package/dist/cjs/components/NumberField.cjs +7 -6
  77. package/dist/cjs/components/NumberField.cjs.map +1 -1
  78. package/dist/cjs/components/Pagination.cjs +45 -10
  79. package/dist/cjs/components/Pagination.cjs.map +1 -1
  80. package/dist/cjs/components/Popover.cjs +17 -3
  81. package/dist/cjs/components/Popover.cjs.map +1 -1
  82. package/dist/cjs/components/Progress.cjs +5 -3
  83. package/dist/cjs/components/Progress.cjs.map +1 -1
  84. package/dist/cjs/components/RadioGroup.cjs +3 -2
  85. package/dist/cjs/components/RadioGroup.cjs.map +1 -1
  86. package/dist/cjs/components/Search.cjs +35 -14
  87. package/dist/cjs/components/Search.cjs.map +1 -1
  88. package/dist/cjs/components/SegmentedControl.cjs +2 -1
  89. package/dist/cjs/components/SegmentedControl.cjs.map +1 -1
  90. package/dist/cjs/components/Select.cjs +14 -4
  91. package/dist/cjs/components/Select.cjs.map +1 -1
  92. package/dist/cjs/components/Skeleton.cjs +5 -3
  93. package/dist/cjs/components/Skeleton.cjs.map +1 -1
  94. package/dist/cjs/components/Slider.cjs +1 -1
  95. package/dist/cjs/components/Slider.cjs.map +1 -1
  96. package/dist/cjs/components/Spinner.cjs +25 -14
  97. package/dist/cjs/components/Spinner.cjs.map +1 -1
  98. package/dist/cjs/components/StatusMark.cjs +43 -0
  99. package/dist/cjs/components/StatusMark.cjs.map +1 -0
  100. package/dist/cjs/components/Stepper.cjs +9 -6
  101. package/dist/cjs/components/Stepper.cjs.map +1 -1
  102. package/dist/cjs/components/Switch.cjs +20 -1
  103. package/dist/cjs/components/Switch.cjs.map +1 -1
  104. package/dist/cjs/components/Table.cjs +15 -7
  105. package/dist/cjs/components/Table.cjs.map +1 -1
  106. package/dist/cjs/components/Tabs.cjs +10 -3
  107. package/dist/cjs/components/Tabs.cjs.map +1 -1
  108. package/dist/cjs/components/Textarea.cjs +8 -4
  109. package/dist/cjs/components/Textarea.cjs.map +1 -1
  110. package/dist/cjs/components/Toast.cjs +47 -34
  111. package/dist/cjs/components/Toast.cjs.map +1 -1
  112. package/dist/cjs/components/ToggleGroup.cjs +14 -3
  113. package/dist/cjs/components/ToggleGroup.cjs.map +1 -1
  114. package/dist/cjs/components/Tooltip.cjs +16 -2
  115. package/dist/cjs/components/Tooltip.cjs.map +1 -1
  116. package/dist/cjs/components/TreeView.cjs +8 -4
  117. package/dist/cjs/components/TreeView.cjs.map +1 -1
  118. package/dist/cjs/components/choice-row.cjs +1 -1
  119. package/dist/cjs/components/choice-row.cjs.map +1 -1
  120. package/dist/cjs/components/date-family.cjs +16 -2
  121. package/dist/cjs/components/date-family.cjs.map +1 -1
  122. package/dist/cjs/components/date-field.cjs +5 -3
  123. package/dist/cjs/components/date-field.cjs.map +1 -1
  124. package/dist/cjs/components/edge-fade.cjs +80 -0
  125. package/dist/cjs/components/edge-fade.cjs.map +1 -0
  126. package/dist/cjs/components/scroll-region.cjs +56 -0
  127. package/dist/cjs/components/scroll-region.cjs.map +1 -0
  128. package/dist/cjs/components/time-panel.cjs +2 -2
  129. package/dist/cjs/components/time-panel.cjs.map +1 -1
  130. package/dist/cjs/components/ui.common.cjs +179 -71
  131. package/dist/cjs/components/ui.common.cjs.map +1 -1
  132. package/dist/cjs/components/ui.motion.cjs +46 -15
  133. package/dist/cjs/components/ui.motion.cjs.map +1 -1
  134. package/dist/cjs/dev.cjs +9 -0
  135. package/dist/cjs/dev.cjs.map +1 -1
  136. package/dist/cjs/index.cjs +1 -0
  137. package/dist/cjs/index.cjs.map +1 -1
  138. package/dist/esm/components/Accordion.js +16 -28
  139. package/dist/esm/components/Accordion.js.map +1 -1
  140. package/dist/esm/components/Alert.js +66 -22
  141. package/dist/esm/components/Alert.js.map +1 -1
  142. package/dist/esm/components/AlertDialog.js +6 -4
  143. package/dist/esm/components/AlertDialog.js.map +1 -1
  144. package/dist/esm/components/Avatar.js +14 -5
  145. package/dist/esm/components/Avatar.js.map +1 -1
  146. package/dist/esm/components/Badge.js +6 -4
  147. package/dist/esm/components/Badge.js.map +1 -1
  148. package/dist/esm/components/Breadcrumb.js +9 -5
  149. package/dist/esm/components/Breadcrumb.js.map +1 -1
  150. package/dist/esm/components/Button.js +11 -4
  151. package/dist/esm/components/Button.js.map +1 -1
  152. package/dist/esm/components/Calendar.js +43 -8
  153. package/dist/esm/components/Calendar.js.map +1 -1
  154. package/dist/esm/components/Card.js +17 -5
  155. package/dist/esm/components/Card.js.map +1 -1
  156. package/dist/esm/components/Checkbox.js +17 -5
  157. package/dist/esm/components/Checkbox.js.map +1 -1
  158. package/dist/esm/components/CheckboxGroup.js +4 -3
  159. package/dist/esm/components/CheckboxGroup.js.map +1 -1
  160. package/dist/esm/components/Chip.js +56 -46
  161. package/dist/esm/components/Chip.js.map +1 -1
  162. package/dist/esm/components/ChipGroup.js +18 -1
  163. package/dist/esm/components/ChipGroup.js.map +1 -1
  164. package/dist/esm/components/CodeBlock.js +58 -28
  165. package/dist/esm/components/CodeBlock.js.map +1 -1
  166. package/dist/esm/components/Collapsible.js +2 -2
  167. package/dist/esm/components/Collapsible.js.map +1 -1
  168. package/dist/esm/components/Combobox.js +63 -19
  169. package/dist/esm/components/Combobox.js.map +1 -1
  170. package/dist/esm/components/Command.js +12 -6
  171. package/dist/esm/components/Command.js.map +1 -1
  172. package/dist/esm/components/CommandPalette.js +7 -4
  173. package/dist/esm/components/CommandPalette.js.map +1 -1
  174. package/dist/esm/components/DatePicker.js +7 -4
  175. package/dist/esm/components/DatePicker.js.map +1 -1
  176. package/dist/esm/components/DateRangePicker.js +4 -3
  177. package/dist/esm/components/DateRangePicker.js.map +1 -1
  178. package/dist/esm/components/DateTimePicker.js +2 -2
  179. package/dist/esm/components/DateTimePicker.js.map +1 -1
  180. package/dist/esm/components/Dialog.js +12 -6
  181. package/dist/esm/components/Dialog.js.map +1 -1
  182. package/dist/esm/components/DialogContent.js +6 -4
  183. package/dist/esm/components/DialogContent.js.map +1 -1
  184. package/dist/esm/components/DialogDescription.js +6 -4
  185. package/dist/esm/components/DialogDescription.js.map +1 -1
  186. package/dist/esm/components/DialogFooter.js +3 -3
  187. package/dist/esm/components/DialogFooter.js.map +1 -1
  188. package/dist/esm/components/DialogHeader.js +5 -3
  189. package/dist/esm/components/DialogHeader.js.map +1 -1
  190. package/dist/esm/components/DialogSurface.js +38 -17
  191. package/dist/esm/components/DialogSurface.js.map +1 -1
  192. package/dist/esm/components/DismissButton.js +20 -0
  193. package/dist/esm/components/DismissButton.js.map +1 -0
  194. package/dist/esm/components/Divider.js +3 -1
  195. package/dist/esm/components/Divider.js.map +1 -1
  196. package/dist/esm/components/Drawer.js +31 -18
  197. package/dist/esm/components/Drawer.js.map +1 -1
  198. package/dist/esm/components/Field.js +49 -6
  199. package/dist/esm/components/Field.js.map +1 -1
  200. package/dist/esm/components/FieldLabel.js +15 -0
  201. package/dist/esm/components/FieldLabel.js.map +1 -0
  202. package/dist/esm/components/FileUpload.js +23 -13
  203. package/dist/esm/components/FileUpload.js.map +1 -1
  204. package/dist/esm/components/IconButton.js +31 -6
  205. package/dist/esm/components/IconButton.js.map +1 -1
  206. package/dist/esm/components/Input.js +15 -6
  207. package/dist/esm/components/Input.js.map +1 -1
  208. package/dist/esm/components/Markdown.js +10 -7
  209. package/dist/esm/components/Markdown.js.map +1 -1
  210. package/dist/esm/components/Menu.js +20 -6
  211. package/dist/esm/components/Menu.js.map +1 -1
  212. package/dist/esm/components/NavGroup.js +9 -3
  213. package/dist/esm/components/NavGroup.js.map +1 -1
  214. package/dist/esm/components/NavItem.js +30 -6
  215. package/dist/esm/components/NavItem.js.map +1 -1
  216. package/dist/esm/components/NumberField.js +8 -7
  217. package/dist/esm/components/NumberField.js.map +1 -1
  218. package/dist/esm/components/Pagination.js +47 -12
  219. package/dist/esm/components/Pagination.js.map +1 -1
  220. package/dist/esm/components/Popover.js +18 -4
  221. package/dist/esm/components/Popover.js.map +1 -1
  222. package/dist/esm/components/Progress.js +6 -4
  223. package/dist/esm/components/Progress.js.map +1 -1
  224. package/dist/esm/components/RadioGroup.js +4 -3
  225. package/dist/esm/components/RadioGroup.js.map +1 -1
  226. package/dist/esm/components/Search.js +36 -15
  227. package/dist/esm/components/Search.js.map +1 -1
  228. package/dist/esm/components/SegmentedControl.js +2 -1
  229. package/dist/esm/components/SegmentedControl.js.map +1 -1
  230. package/dist/esm/components/Select.js +16 -6
  231. package/dist/esm/components/Select.js.map +1 -1
  232. package/dist/esm/components/Skeleton.js +5 -3
  233. package/dist/esm/components/Skeleton.js.map +1 -1
  234. package/dist/esm/components/Slider.js +2 -2
  235. package/dist/esm/components/Slider.js.map +1 -1
  236. package/dist/esm/components/Spinner.js +25 -14
  237. package/dist/esm/components/Spinner.js.map +1 -1
  238. package/dist/esm/components/StatusMark.js +38 -0
  239. package/dist/esm/components/StatusMark.js.map +1 -0
  240. package/dist/esm/components/Stepper.js +10 -7
  241. package/dist/esm/components/Stepper.js.map +1 -1
  242. package/dist/esm/components/Switch.js +21 -2
  243. package/dist/esm/components/Switch.js.map +1 -1
  244. package/dist/esm/components/Table.js +16 -8
  245. package/dist/esm/components/Table.js.map +1 -1
  246. package/dist/esm/components/Tabs.js +11 -4
  247. package/dist/esm/components/Tabs.js.map +1 -1
  248. package/dist/esm/components/Textarea.js +9 -5
  249. package/dist/esm/components/Textarea.js.map +1 -1
  250. package/dist/esm/components/Toast.js +49 -36
  251. package/dist/esm/components/Toast.js.map +1 -1
  252. package/dist/esm/components/ToggleGroup.js +16 -5
  253. package/dist/esm/components/ToggleGroup.js.map +1 -1
  254. package/dist/esm/components/Tooltip.js +17 -4
  255. package/dist/esm/components/Tooltip.js.map +1 -1
  256. package/dist/esm/components/TreeView.js +9 -5
  257. package/dist/esm/components/TreeView.js.map +1 -1
  258. package/dist/esm/components/choice-row.js +1 -1
  259. package/dist/esm/components/choice-row.js.map +1 -1
  260. package/dist/esm/components/date-family.js +15 -3
  261. package/dist/esm/components/date-family.js.map +1 -1
  262. package/dist/esm/components/date-field.js +6 -4
  263. package/dist/esm/components/date-field.js.map +1 -1
  264. package/dist/esm/components/edge-fade.js +77 -0
  265. package/dist/esm/components/edge-fade.js.map +1 -0
  266. package/dist/esm/components/scroll-region.js +52 -0
  267. package/dist/esm/components/scroll-region.js.map +1 -0
  268. package/dist/esm/components/time-panel.js +2 -2
  269. package/dist/esm/components/time-panel.js.map +1 -1
  270. package/dist/esm/components/ui.common.js +175 -73
  271. package/dist/esm/components/ui.common.js.map +1 -1
  272. package/dist/esm/components/ui.motion.js +44 -16
  273. package/dist/esm/components/ui.motion.js.map +1 -1
  274. package/dist/esm/content.js +1 -1
  275. package/dist/esm/dev.js +2 -2
  276. package/dist/esm/index.js +1 -1
  277. package/dist/styles.css +341 -209
  278. package/dist/theme.css +15 -12
  279. package/dist/types/content.d.ts +13 -3
  280. package/dist/types/dev.d.cts +79 -29
  281. package/dist/types/dev.d.ts +79 -29
  282. package/dist/types/index.d.cts +512 -154
  283. package/dist/types/index.d.ts +512 -154
  284. package/package.json +1 -1
package/dist/theme.css CHANGED
@@ -88,12 +88,12 @@
88
88
  --sui-primary-strong: 0.720 0.160 292;
89
89
  --sui-primary-soft: 0.300 0.075 292;
90
90
  --sui-primary-selected: 0.375 0.105 292;
91
- --sui-danger-soft: 0.290 0.060 25;
92
- --sui-danger-selected: 0.360 0.085 25;
93
- --sui-warning-soft: 0.300 0.050 75;
94
- --sui-warning-selected: 0.370 0.070 75;
95
- --sui-success-soft: 0.290 0.050 160;
96
- --sui-success-selected: 0.360 0.070 160;
91
+ --sui-danger-soft: 0.260 0.040 25;
92
+ --sui-danger-selected: 0.330 0.062 25;
93
+ --sui-warning-soft: 0.260 0.040 75;
94
+ --sui-warning-selected: 0.330 0.060 75;
95
+ --sui-success-soft: 0.260 0.040 160;
96
+ --sui-success-selected: 0.330 0.060 160;
97
97
  --sui-accent: 0.80 0.08 215;
98
98
  --sui-danger: 0.775 0.130 25;
99
99
  --sui-warning: 0.830 0.120 80;
@@ -159,12 +159,12 @@
159
159
  --sui-primary-strong: 0.720 0.160 292;
160
160
  --sui-primary-soft: 0.300 0.075 292;
161
161
  --sui-primary-selected: 0.375 0.105 292;
162
- --sui-danger-soft: 0.290 0.060 25;
163
- --sui-danger-selected: 0.360 0.085 25;
164
- --sui-warning-soft: 0.300 0.050 75;
165
- --sui-warning-selected: 0.370 0.070 75;
166
- --sui-success-soft: 0.290 0.050 160;
167
- --sui-success-selected: 0.360 0.070 160;
162
+ --sui-danger-soft: 0.260 0.040 25;
163
+ --sui-danger-selected: 0.330 0.062 25;
164
+ --sui-warning-soft: 0.260 0.040 75;
165
+ --sui-warning-selected: 0.330 0.060 75;
166
+ --sui-success-soft: 0.260 0.040 160;
167
+ --sui-success-selected: 0.330 0.060 160;
168
168
  --sui-accent: 0.80 0.08 215;
169
169
  --sui-danger: 0.775 0.130 25;
170
170
  --sui-warning: 0.830 0.120 80;
@@ -227,6 +227,9 @@
227
227
  --sui-duration-activity: 1400ms;
228
228
  --sui-duration-spin: 1000ms;
229
229
  --sui-duration-pulse: 2000ms;
230
+ --sui-duration-breathe: 2000ms;
231
+ --sui-duration-utility: 100ms;
232
+ --sui-duration-utility-exit: 80ms;
230
233
  --sui-ease-pulse: cubic-bezier(0.4, 0, 0.6, 1);
231
234
  --sui-ease-press: cubic-bezier(0.4, 0, 0.2, 1);
232
235
  --sui-ease-release: cubic-bezier(0.16, 1, 0.3, 1);
@@ -1,17 +1,27 @@
1
1
  import React, { ReactNode } from 'react';
2
2
 
3
+ interface InlineCodeProps {
4
+ className?: string;
5
+ children?: ReactNode;
6
+ }
7
+ declare const InlineCode: ({ className, children }: InlineCodeProps) => React.JSX.Element;
3
8
  interface CodeBlockProps {
9
+ /** @deprecated Render `InlineCode` for code inside a sentence. This is kept for one minor and maps to it. */
4
10
  inline?: boolean;
5
11
  className?: string;
6
12
  children?: ReactNode;
7
13
  language?: string;
14
+ /** The copy action's label. */
15
+ copyLabel?: string;
16
+ /** The copy action's label once the code is on the clipboard. */
17
+ copiedLabel?: string;
8
18
  }
9
- declare const CodeBlock: ({ inline, className, language, children }: CodeBlockProps) => React.JSX.Element;
19
+ declare const CodeBlock: ({ inline, className, language, copyLabel, copiedLabel, children, }: CodeBlockProps) => React.JSX.Element;
10
20
 
11
21
  interface MarkdownProps {
12
22
  children: string;
13
23
  }
14
24
  declare const Markdown: ({ children }: MarkdownProps) => React.JSX.Element;
15
25
 
16
- export { CodeBlock, Markdown };
17
- export type { CodeBlockProps, MarkdownProps };
26
+ export { CodeBlock, InlineCode, Markdown };
27
+ export type { CodeBlockProps, InlineCodeProps, MarkdownProps };
@@ -1,16 +1,17 @@
1
1
  import { ClassValue } from 'clsx';
2
2
 
3
- declare const focusRing = "focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-sherick-focus focus-visible:outline-offset-[3px]";
4
- declare const focusRingInset = "focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-sherick-focus";
3
+ declare const focusRing = "focus:[outline-style:none] focus-visible:outline focus-visible:outline-2 focus-visible:outline-sherick-focus focus-visible:outline-offset-[3px]";
4
+ declare const focusRingInset = "focus:[outline-style:none] focus-visible:[outline-style:none] focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-sherick-focus forced-colors:focus-visible:outline forced-colors:focus-visible:outline-2 forced-colors:focus-visible:outline-offset-[-2px]";
5
5
  declare const parentFocusRingInset = "[:focus-visible>&]:ring-2 [:focus-visible>&]:ring-inset [:focus-visible>&]:ring-sherick-focus";
6
- declare const focusRingHeld = "focus:outline-none focus:outline focus:outline-2 focus:outline-sherick-focus focus:outline-offset-[3px] data-[popup-open]:outline data-[popup-open]:outline-2 data-[popup-open]:outline-sherick-focus data-[popup-open]:outline-offset-[3px]";
6
+ declare const focusRingHeld = "focus:outline focus:outline-2 focus:outline-sherick-focus focus:outline-offset-[3px] data-[popup-open]:outline data-[popup-open]:outline-2 data-[popup-open]:outline-sherick-focus data-[popup-open]:outline-offset-[3px]";
7
7
  declare const focusRingWithin = "has-[:focus-visible]:outline has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-sherick-focus has-[:focus-visible]:outline-offset-[3px]";
8
8
  declare const focusRingDrag = "data-[dragging]:outline data-[dragging]:outline-2 data-[dragging]:outline-sherick-focus data-[dragging]:outline-offset-[3px]";
9
9
  declare const groupFocusRing = "group-focus-visible:outline group-focus-visible:outline-2 group-focus-visible:outline-sherick-focus group-focus-visible:outline-offset-[3px]";
10
+ declare const forcedBoundary = "forced-colors:outline forced-colors:outline-1 forced-colors:outline-offset-[-1px]";
10
11
  declare const elevation: {
11
12
  readonly flat: "shadow-sherick-flat";
12
- readonly raised: "shadow-sherick-raised";
13
- readonly floating: "shadow-sherick-floating";
13
+ readonly raised: string;
14
+ readonly floating: string;
14
15
  readonly control: "shadow-sherick-control";
15
16
  readonly recessed: "shadow-sherick-recessed";
16
17
  readonly well: "shadow-sherick-well";
@@ -45,14 +46,16 @@ declare const edge: {
45
46
  };
46
47
  declare const state: {
47
48
  readonly recess: "active:shadow-sherick-recessed";
48
- readonly disabled: "cursor-not-allowed opacity-45";
49
- readonly effectiveDisabled: "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-45 disabled:cursor-not-allowed disabled:opacity-45";
50
- readonly disabledRow: "has-[[data-disabled]]:cursor-not-allowed has-[[data-disabled]]:opacity-45";
49
+ readonly disabled: "cursor-not-allowed opacity-45 aria-disabled:cursor-not-allowed aria-disabled:opacity-45";
50
+ readonly busy: "aria-busy:cursor-progress aria-busy:opacity-100";
51
+ readonly effectiveDisabled: "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-45 aria-disabled:cursor-not-allowed aria-disabled:opacity-45 disabled:cursor-not-allowed disabled:opacity-45";
52
+ readonly disabledRow: "has-[[data-disabled]]:cursor-not-allowed has-[[data-disabled]]:opacity-45 has-[[aria-disabled=true]]:cursor-not-allowed has-[[aria-disabled=true]]:opacity-45";
51
53
  readonly disabledDescendant: "cursor-not-allowed";
52
54
  readonly disabledPart: string;
53
55
  readonly engaged: "group-[:not([data-disabled])]:hover:scale-110 group-[:not([data-disabled])]:hover:bg-sherick-primary-strong group-[:not([data-disabled])]:hover:text-sherick-on-primary data-[dragging]:scale-110 data-[dragging]:bg-sherick-primary-strong data-[dragging]:text-sherick-on-primary";
54
56
  readonly enabled: "cursor-pointer";
55
57
  readonly text: "cursor-text";
58
+ readonly quietInk: "text-sherick-ink-muted hover:text-sherick-ink focus-visible:text-sherick-ink";
56
59
  readonly rowHover: "hover:bg-sherick-ink/[0.05]";
57
60
  readonly field: {
58
61
  readonly hover: "hover:bg-sherick-tray-deep";
@@ -88,9 +91,9 @@ declare const material: {
88
91
  readonly control: "bg-sherick-surface-high text-sherick-ink placeholder:text-sherick-ink-muted";
89
92
  readonly controlError: "bg-sherick-danger-soft text-sherick-ink placeholder:text-sherick-danger";
90
93
  readonly handle: "bg-sherick-ink-muted text-sherick-canvas";
91
- readonly acrylic: "bg-sherick-surface-float/[var(--sui-glass-fill)] bg-[image:var(--sui-glass-gradient)] text-sherick-ink backdrop-blur-[var(--sui-glass-blur)] backdrop-saturate-[var(--sui-glass-saturation)] backdrop-brightness-[var(--sui-glass-brightness)]";
92
- readonly acrylicDense: "bg-sherick-surface-float/[var(--sui-glass-dense-fill)] bg-[image:var(--sui-glass-gradient-dense)] text-sherick-ink backdrop-blur-[var(--sui-glass-dense-blur)] backdrop-saturate-[var(--sui-glass-dense-saturation)] backdrop-brightness-[var(--sui-glass-dense-brightness)]";
93
- readonly acrylicHero: "bg-sherick-surface-overlay/[var(--sui-overlay-fill)] bg-[image:var(--sui-glass-hero-gradient)] text-sherick-ink backdrop-blur-[var(--sui-glass-hero-blur)] backdrop-saturate-[var(--sui-glass-hero-saturation)] backdrop-brightness-[var(--sui-glass-hero-brightness)]";
94
+ readonly acrylic: "bg-sherick-surface-float/[var(--sui-glass-fill)] bg-[image:var(--sui-glass-gradient)] text-sherick-ink";
95
+ readonly acrylicDense: "bg-sherick-surface-float/[var(--sui-glass-dense-fill)] bg-[image:var(--sui-glass-gradient-dense)] text-sherick-ink";
96
+ readonly acrylicHero: "bg-sherick-surface-overlay/[var(--sui-overlay-fill)] bg-[image:var(--sui-glass-hero-gradient)] text-sherick-ink";
94
97
  };
95
98
  declare const mediaCanvas = "bg-sherick-media";
96
99
  declare const matteInset = "bg-sherick-surface-high/[0.35] text-sherick-ink";
@@ -100,11 +103,13 @@ declare const type: {
100
103
  readonly normal: "text-[0.9375rem] leading-[1.375rem]";
101
104
  readonly prominent: "text-lg";
102
105
  };
103
- readonly supporting: "text-[0.8125rem] leading-5";
104
- readonly caption: "text-xs leading-4";
105
- readonly title: "text-[0.9375rem] leading-[1.375rem] font-semibold tracking-[-0.011em]";
106
- readonly heading: "text-xl leading-7 font-semibold tracking-[-0.02em]";
107
- readonly numeric: "tabular-nums";
106
+ readonly label: "text-sm leading-5 font-medium";
107
+ readonly body: "text-sm leading-6 text-pretty";
108
+ readonly supporting: "text-[0.8125rem] leading-5 text-pretty";
109
+ readonly caption: "text-xs leading-4 text-pretty";
110
+ readonly title: "text-base leading-6 font-semibold tracking-[-0.011em] text-balance";
111
+ readonly heading: "text-xl leading-7 font-semibold tracking-[-0.02em] text-balance";
112
+ readonly numeric: "text-sm leading-5 tabular-nums";
108
113
  };
109
114
  declare const density: {
110
115
  readonly compact: string;
@@ -119,6 +124,10 @@ declare const iconSlot: {
119
124
  readonly normal: "inline-flex size-5 shrink-0 items-center justify-center [&>svg]:size-5";
120
125
  readonly prominent: "inline-flex size-6 shrink-0 items-center justify-center [&>svg]:size-6";
121
126
  };
127
+ declare const iconStroke: {
128
+ readonly glyph: "[&_*]:[vector-effect:non-scaling-stroke] [&_*]:[stroke-width:1.5px]";
129
+ readonly mark: "[&_*]:[vector-effect:non-scaling-stroke] [&_*]:[stroke-width:1.75px]";
130
+ };
122
131
  declare const stacking: {
123
132
  readonly float: "z-50";
124
133
  readonly notification: "z-[60]";
@@ -142,13 +151,19 @@ declare const detail: {
142
151
  /** The same tone as a block, for a gutter or a rail with thickness. */
143
152
  readonly fill: "bg-sherick-detail";
144
153
  };
154
+ declare const headingRhythm: {
155
+ readonly title: "mt-1";
156
+ readonly heading: "mt-2";
157
+ };
145
158
  declare const list: {
146
159
  readonly sheet: "max-w-[var(--available-width)] max-h-[var(--available-height)] overflow-y-auto";
160
+ readonly commandIcon: "inline-flex size-4 shrink-0 items-center justify-center [&>svg]:size-4";
147
161
  readonly option: string;
148
162
  readonly groupLabel: string;
149
163
  readonly command: string;
150
164
  };
151
165
  declare const disclosure: {
166
+ readonly chevron: "inline-flex size-5 shrink-0 items-center justify-center [&>svg]:size-5";
152
167
  readonly trigger: string;
153
168
  readonly panel: string;
154
169
  };
@@ -196,7 +211,10 @@ declare const tone: {
196
211
  success: string;
197
212
  };
198
213
  };
199
- declare const currentDestination = "bg-sherick-primary-soft text-sherick-ink font-medium";
214
+ declare const currentDestination: {
215
+ readonly row: "bg-sherick-primary-soft text-sherick-ink font-medium";
216
+ readonly inTrack: "bg-sherick-primary-selected text-sherick-primary font-semibold";
217
+ };
200
218
  declare const puck = "bg-sherick-puck";
201
219
  declare const selectableRowSurface: string;
202
220
  declare const selectableRowSupporting = "group-has-[[data-checked]]:text-sherick-ink";
@@ -235,6 +253,9 @@ declare const recipeAlphas: {
235
253
  readonly neutralSoft: number;
236
254
  readonly neutralRest: number;
237
255
  };
256
+ readonly code: {
257
+ readonly well: number;
258
+ };
238
259
  readonly field: {
239
260
  readonly quiet: number;
240
261
  readonly card: number;
@@ -246,11 +267,17 @@ declare const recipeAlphas: {
246
267
  readonly error: number;
247
268
  };
248
269
  };
249
- declare const fieldLayout = "flex min-w-0 w-full flex-col [overflow-wrap:anywhere]";
270
+ declare const fieldLayout = "flex min-w-0 w-full flex-col gap-2 [overflow-wrap:anywhere] [&>label+p]:-mt-1";
271
+ declare const fieldLabel: string;
250
272
  declare const fieldMessage: {
251
273
  readonly description: string;
252
274
  readonly error: string;
253
275
  };
276
+ declare const codeWell: "bg-sherick-surface-high/[0.72] text-sherick-ink";
277
+ declare const richText: {
278
+ readonly quoteRule: "border-sherick-primary/[0.45]";
279
+ readonly linkUnderline: "decoration-sherick-primary/[0.35] hover:decoration-sherick-primary";
280
+ };
254
281
 
255
282
  type MotionIntent = "feedback" | "tactile" | "arrive" | "orient" | "relocate" | "direct" | "disclose" | "presence" | "activity";
256
283
  /** Non-spatial feedback: hover, focus, field tone, a highlighted row, a filled surface.
@@ -305,27 +332,50 @@ declare const motionDirect = "transition-[inset-inline-start,width,height,backgr
305
332
  declare const motionPresenceAnchored: string;
306
333
  /** A tooltip: the same side-aware model and the same grow as an anchored popup, deliberately
307
334
  * lighter — it settles on the local timing rather than the overlay timing, and it never
308
- * bounces. */
335
+ * bounces. A tooltip that Base opens during its warm-up (`data-instant`, because another tooltip
336
+ * was just closed) takes no timing at all: the next hint is already where the reader moved to. */
309
337
  declare const motionPresenceTooltip: string;
338
+ /** The utility tier: a small surface a reader opened from the keyboard, or a menu they asked for.
339
+ * It is opacity only — no travel, no scale and no scrim ramp — on the short utility timing, so the
340
+ * surface is there as soon as the key that opened it has been answered. */
341
+ declare const motionPresenceUtility: string;
310
342
  /** A modal surface: anchored to the viewport rather than to a trigger, so it has no side
311
343
  * to grow from. A large surface never bounces; it fades, rises a little and settles, and its
312
344
  * scale stays restrained because a plane this big grows visibly even from a few percent. */
313
345
  declare const motionPresenceModal: string;
314
- /** The plane behind a surface that owns the viewport. Opacity only: a blur or a filter is
315
- * never animated, so the plane can never animate the page behind it. */
316
- declare const motionPresenceScrim = "transition-opacity duration-overlay ease-release data-[starting-style]:opacity-0 data-[ending-style]:opacity-0 data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit";
346
+ /** The plane behind a surface that owns the viewport. Only its tint fades, and the tint is the
347
+ * `::before` layer `overlay.scrim` paints: the element itself carries the backdrop blur, and a
348
+ * presence recipe never animates a node that carries `backdrop-filter`, because every frame of
349
+ * such an animation re-blurs the page behind it. The blur therefore arrives with the plane, and
350
+ * the tint fades in front of it. */
351
+ declare const motionPresenceScrim: string;
352
+ /** The scrim of a utility surface. A surface the reader opened from the keyboard answers on the
353
+ * utility timing, and its plane fades on that same timing, so the backdrop is not slower than the
354
+ * surface it sits behind. */
355
+ declare const motionPresenceScrimUtility: string;
317
356
  /** Continuous activity is a distinct intent, not an exception to interaction motion: it
318
- * reports work rather than answering an event, and it has no entrance of its own. */
319
- declare const motionActivitySpin = "animate-spin motion-reduce:animate-none";
320
- declare const motionActivityPulse = "animate-pulse motion-reduce:animate-none";
357
+ * reports work rather than answering an event, and it has no entrance of its own.
358
+ *
359
+ * Reduced motion removes the *travel* of an activity loop — the rotation, the sweep — and keeps
360
+ * the loop as an opacity change. A spinner that simply stopped reads as finished, and a user who
361
+ * asked for less motion still needs to know the work is running. The reduced form is therefore
362
+ * a slow breathe for the spinner and a softer pulse for a skeleton, both on the authored pace. */
363
+ declare const motionActivitySpin = "animate-spin motion-reduce:animate-sherick-breathe";
364
+ declare const motionActivityPulse = "animate-pulse motion-reduce:animate-sherick-soft-pulse";
365
+ /** The reduced form of an indeterminate bar. The sweep is removed — its travel is the thing reduced
366
+ * motion takes away — and the fill is held at the full width of its track, where its opacity
367
+ * breathes on the same slow loop the spinner takes. A progress part that owns this class sets its
368
+ * fill to the whole track under `motion-reduce`, so the reader still sees a bar that is busy.
369
+ * Exported separately so `Progress` can pair it with its own width rule. */
370
+ declare const motionActivityIndeterminateReduced = "motion-reduce:animate-sherick-breathe";
321
371
  /** The indeterminate half of a progress bar. A task with no known value cannot report a
322
372
  * position, so it reports *work* instead: the fill sweeps across its own track on the one loop
323
373
  * that is paced, because a loop that reports rather than answers cannot arrive. The travel is a
324
374
  * composited transform rather than a laid-out edge, and an endless loop must never sit on the
325
375
  * layout path; the direction is a value the recipe flips with the writing direction, because a
326
- * transform is physical and the sweep follows the page. Under reduced motion the loop stops and
327
- * the fill rests where it starts: a static status glyph, exactly as the spin and the pulse rest. */
328
- declare const motionActivityIndeterminate = "animate-sherick-indeterminate [[dir=rtl]_&]:[--sui-indeterminate-direction:-1] motion-reduce:animate-none";
376
+ * transform is physical and the sweep follows the page. Under reduced motion the sweep gives way
377
+ * to the opacity breathe above, so the bar keeps saying that work is running without moving. */
378
+ declare const motionActivityIndeterminate: string;
329
379
  /** The state layer is a composited overlay, so its own opacity is the only thing that
330
380
  * moves. Shared here because four interaction states across the library ride it. */
331
381
  /** A row in a collection moves its highlight rather than fading it: a highlight is where the reader
@@ -348,5 +398,5 @@ declare const motionPresenceToast: string;
348
398
  */
349
399
  declare const cn: (...inputs: ClassValue[]) => string;
350
400
 
351
- export { cn, currentDestination, density, detail, disclosure, edge, edgeTone, elevation, fieldLayout, fieldMessage, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, groupFocusRing, hitArea, iconSlot, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionRelocate, motionRelocateLong, motionRim, motionRowLayer, motionStateLayer, motionTactile, motionTactileField, motionTactileWide, overlay, parentFocusRingInset, puck, recessedTop, recipeAlphas, rim, selectable, selectableRowSupporting, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone, type };
401
+ export { cn, codeWell, currentDestination, density, detail, disclosure, edge, edgeTone, elevation, fieldLabel, fieldLayout, fieldMessage, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, forcedBoundary, groupFocusRing, headingRhythm, hitArea, iconSlot, iconStroke, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityIndeterminateReduced, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceScrimUtility, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionPresenceUtility, motionRelocate, motionRelocateLong, motionRim, motionRowLayer, motionStateLayer, motionTactile, motionTactileField, motionTactileWide, overlay, parentFocusRingInset, puck, recessedTop, recipeAlphas, richText, rim, selectable, selectableRowSupporting, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone, type };
352
402
  export type { MotionIntent };
@@ -1,16 +1,17 @@
1
1
  import { ClassValue } from 'clsx';
2
2
 
3
- declare const focusRing = "focus:outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-sherick-focus focus-visible:outline-offset-[3px]";
4
- declare const focusRingInset = "focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-sherick-focus";
3
+ declare const focusRing = "focus:[outline-style:none] focus-visible:outline focus-visible:outline-2 focus-visible:outline-sherick-focus focus-visible:outline-offset-[3px]";
4
+ declare const focusRingInset = "focus:[outline-style:none] focus-visible:[outline-style:none] focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-sherick-focus forced-colors:focus-visible:outline forced-colors:focus-visible:outline-2 forced-colors:focus-visible:outline-offset-[-2px]";
5
5
  declare const parentFocusRingInset = "[:focus-visible>&]:ring-2 [:focus-visible>&]:ring-inset [:focus-visible>&]:ring-sherick-focus";
6
- declare const focusRingHeld = "focus:outline-none focus:outline focus:outline-2 focus:outline-sherick-focus focus:outline-offset-[3px] data-[popup-open]:outline data-[popup-open]:outline-2 data-[popup-open]:outline-sherick-focus data-[popup-open]:outline-offset-[3px]";
6
+ declare const focusRingHeld = "focus:outline focus:outline-2 focus:outline-sherick-focus focus:outline-offset-[3px] data-[popup-open]:outline data-[popup-open]:outline-2 data-[popup-open]:outline-sherick-focus data-[popup-open]:outline-offset-[3px]";
7
7
  declare const focusRingWithin = "has-[:focus-visible]:outline has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-sherick-focus has-[:focus-visible]:outline-offset-[3px]";
8
8
  declare const focusRingDrag = "data-[dragging]:outline data-[dragging]:outline-2 data-[dragging]:outline-sherick-focus data-[dragging]:outline-offset-[3px]";
9
9
  declare const groupFocusRing = "group-focus-visible:outline group-focus-visible:outline-2 group-focus-visible:outline-sherick-focus group-focus-visible:outline-offset-[3px]";
10
+ declare const forcedBoundary = "forced-colors:outline forced-colors:outline-1 forced-colors:outline-offset-[-1px]";
10
11
  declare const elevation: {
11
12
  readonly flat: "shadow-sherick-flat";
12
- readonly raised: "shadow-sherick-raised";
13
- readonly floating: "shadow-sherick-floating";
13
+ readonly raised: string;
14
+ readonly floating: string;
14
15
  readonly control: "shadow-sherick-control";
15
16
  readonly recessed: "shadow-sherick-recessed";
16
17
  readonly well: "shadow-sherick-well";
@@ -45,14 +46,16 @@ declare const edge: {
45
46
  };
46
47
  declare const state: {
47
48
  readonly recess: "active:shadow-sherick-recessed";
48
- readonly disabled: "cursor-not-allowed opacity-45";
49
- readonly effectiveDisabled: "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-45 disabled:cursor-not-allowed disabled:opacity-45";
50
- readonly disabledRow: "has-[[data-disabled]]:cursor-not-allowed has-[[data-disabled]]:opacity-45";
49
+ readonly disabled: "cursor-not-allowed opacity-45 aria-disabled:cursor-not-allowed aria-disabled:opacity-45";
50
+ readonly busy: "aria-busy:cursor-progress aria-busy:opacity-100";
51
+ readonly effectiveDisabled: "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-45 aria-disabled:cursor-not-allowed aria-disabled:opacity-45 disabled:cursor-not-allowed disabled:opacity-45";
52
+ readonly disabledRow: "has-[[data-disabled]]:cursor-not-allowed has-[[data-disabled]]:opacity-45 has-[[aria-disabled=true]]:cursor-not-allowed has-[[aria-disabled=true]]:opacity-45";
51
53
  readonly disabledDescendant: "cursor-not-allowed";
52
54
  readonly disabledPart: string;
53
55
  readonly engaged: "group-[:not([data-disabled])]:hover:scale-110 group-[:not([data-disabled])]:hover:bg-sherick-primary-strong group-[:not([data-disabled])]:hover:text-sherick-on-primary data-[dragging]:scale-110 data-[dragging]:bg-sherick-primary-strong data-[dragging]:text-sherick-on-primary";
54
56
  readonly enabled: "cursor-pointer";
55
57
  readonly text: "cursor-text";
58
+ readonly quietInk: "text-sherick-ink-muted hover:text-sherick-ink focus-visible:text-sherick-ink";
56
59
  readonly rowHover: "hover:bg-sherick-ink/[0.05]";
57
60
  readonly field: {
58
61
  readonly hover: "hover:bg-sherick-tray-deep";
@@ -88,9 +91,9 @@ declare const material: {
88
91
  readonly control: "bg-sherick-surface-high text-sherick-ink placeholder:text-sherick-ink-muted";
89
92
  readonly controlError: "bg-sherick-danger-soft text-sherick-ink placeholder:text-sherick-danger";
90
93
  readonly handle: "bg-sherick-ink-muted text-sherick-canvas";
91
- readonly acrylic: "bg-sherick-surface-float/[var(--sui-glass-fill)] bg-[image:var(--sui-glass-gradient)] text-sherick-ink backdrop-blur-[var(--sui-glass-blur)] backdrop-saturate-[var(--sui-glass-saturation)] backdrop-brightness-[var(--sui-glass-brightness)]";
92
- readonly acrylicDense: "bg-sherick-surface-float/[var(--sui-glass-dense-fill)] bg-[image:var(--sui-glass-gradient-dense)] text-sherick-ink backdrop-blur-[var(--sui-glass-dense-blur)] backdrop-saturate-[var(--sui-glass-dense-saturation)] backdrop-brightness-[var(--sui-glass-dense-brightness)]";
93
- readonly acrylicHero: "bg-sherick-surface-overlay/[var(--sui-overlay-fill)] bg-[image:var(--sui-glass-hero-gradient)] text-sherick-ink backdrop-blur-[var(--sui-glass-hero-blur)] backdrop-saturate-[var(--sui-glass-hero-saturation)] backdrop-brightness-[var(--sui-glass-hero-brightness)]";
94
+ readonly acrylic: "bg-sherick-surface-float/[var(--sui-glass-fill)] bg-[image:var(--sui-glass-gradient)] text-sherick-ink";
95
+ readonly acrylicDense: "bg-sherick-surface-float/[var(--sui-glass-dense-fill)] bg-[image:var(--sui-glass-gradient-dense)] text-sherick-ink";
96
+ readonly acrylicHero: "bg-sherick-surface-overlay/[var(--sui-overlay-fill)] bg-[image:var(--sui-glass-hero-gradient)] text-sherick-ink";
94
97
  };
95
98
  declare const mediaCanvas = "bg-sherick-media";
96
99
  declare const matteInset = "bg-sherick-surface-high/[0.35] text-sherick-ink";
@@ -100,11 +103,13 @@ declare const type: {
100
103
  readonly normal: "text-[0.9375rem] leading-[1.375rem]";
101
104
  readonly prominent: "text-lg";
102
105
  };
103
- readonly supporting: "text-[0.8125rem] leading-5";
104
- readonly caption: "text-xs leading-4";
105
- readonly title: "text-[0.9375rem] leading-[1.375rem] font-semibold tracking-[-0.011em]";
106
- readonly heading: "text-xl leading-7 font-semibold tracking-[-0.02em]";
107
- readonly numeric: "tabular-nums";
106
+ readonly label: "text-sm leading-5 font-medium";
107
+ readonly body: "text-sm leading-6 text-pretty";
108
+ readonly supporting: "text-[0.8125rem] leading-5 text-pretty";
109
+ readonly caption: "text-xs leading-4 text-pretty";
110
+ readonly title: "text-base leading-6 font-semibold tracking-[-0.011em] text-balance";
111
+ readonly heading: "text-xl leading-7 font-semibold tracking-[-0.02em] text-balance";
112
+ readonly numeric: "text-sm leading-5 tabular-nums";
108
113
  };
109
114
  declare const density: {
110
115
  readonly compact: string;
@@ -119,6 +124,10 @@ declare const iconSlot: {
119
124
  readonly normal: "inline-flex size-5 shrink-0 items-center justify-center [&>svg]:size-5";
120
125
  readonly prominent: "inline-flex size-6 shrink-0 items-center justify-center [&>svg]:size-6";
121
126
  };
127
+ declare const iconStroke: {
128
+ readonly glyph: "[&_*]:[vector-effect:non-scaling-stroke] [&_*]:[stroke-width:1.5px]";
129
+ readonly mark: "[&_*]:[vector-effect:non-scaling-stroke] [&_*]:[stroke-width:1.75px]";
130
+ };
122
131
  declare const stacking: {
123
132
  readonly float: "z-50";
124
133
  readonly notification: "z-[60]";
@@ -142,13 +151,19 @@ declare const detail: {
142
151
  /** The same tone as a block, for a gutter or a rail with thickness. */
143
152
  readonly fill: "bg-sherick-detail";
144
153
  };
154
+ declare const headingRhythm: {
155
+ readonly title: "mt-1";
156
+ readonly heading: "mt-2";
157
+ };
145
158
  declare const list: {
146
159
  readonly sheet: "max-w-[var(--available-width)] max-h-[var(--available-height)] overflow-y-auto";
160
+ readonly commandIcon: "inline-flex size-4 shrink-0 items-center justify-center [&>svg]:size-4";
147
161
  readonly option: string;
148
162
  readonly groupLabel: string;
149
163
  readonly command: string;
150
164
  };
151
165
  declare const disclosure: {
166
+ readonly chevron: "inline-flex size-5 shrink-0 items-center justify-center [&>svg]:size-5";
152
167
  readonly trigger: string;
153
168
  readonly panel: string;
154
169
  };
@@ -196,7 +211,10 @@ declare const tone: {
196
211
  success: string;
197
212
  };
198
213
  };
199
- declare const currentDestination = "bg-sherick-primary-soft text-sherick-ink font-medium";
214
+ declare const currentDestination: {
215
+ readonly row: "bg-sherick-primary-soft text-sherick-ink font-medium";
216
+ readonly inTrack: "bg-sherick-primary-selected text-sherick-primary font-semibold";
217
+ };
200
218
  declare const puck = "bg-sherick-puck";
201
219
  declare const selectableRowSurface: string;
202
220
  declare const selectableRowSupporting = "group-has-[[data-checked]]:text-sherick-ink";
@@ -235,6 +253,9 @@ declare const recipeAlphas: {
235
253
  readonly neutralSoft: number;
236
254
  readonly neutralRest: number;
237
255
  };
256
+ readonly code: {
257
+ readonly well: number;
258
+ };
238
259
  readonly field: {
239
260
  readonly quiet: number;
240
261
  readonly card: number;
@@ -246,11 +267,17 @@ declare const recipeAlphas: {
246
267
  readonly error: number;
247
268
  };
248
269
  };
249
- declare const fieldLayout = "flex min-w-0 w-full flex-col [overflow-wrap:anywhere]";
270
+ declare const fieldLayout = "flex min-w-0 w-full flex-col gap-2 [overflow-wrap:anywhere] [&>label+p]:-mt-1";
271
+ declare const fieldLabel: string;
250
272
  declare const fieldMessage: {
251
273
  readonly description: string;
252
274
  readonly error: string;
253
275
  };
276
+ declare const codeWell: "bg-sherick-surface-high/[0.72] text-sherick-ink";
277
+ declare const richText: {
278
+ readonly quoteRule: "border-sherick-primary/[0.45]";
279
+ readonly linkUnderline: "decoration-sherick-primary/[0.35] hover:decoration-sherick-primary";
280
+ };
254
281
 
255
282
  type MotionIntent = "feedback" | "tactile" | "arrive" | "orient" | "relocate" | "direct" | "disclose" | "presence" | "activity";
256
283
  /** Non-spatial feedback: hover, focus, field tone, a highlighted row, a filled surface.
@@ -305,27 +332,50 @@ declare const motionDirect = "transition-[inset-inline-start,width,height,backgr
305
332
  declare const motionPresenceAnchored: string;
306
333
  /** A tooltip: the same side-aware model and the same grow as an anchored popup, deliberately
307
334
  * lighter — it settles on the local timing rather than the overlay timing, and it never
308
- * bounces. */
335
+ * bounces. A tooltip that Base opens during its warm-up (`data-instant`, because another tooltip
336
+ * was just closed) takes no timing at all: the next hint is already where the reader moved to. */
309
337
  declare const motionPresenceTooltip: string;
338
+ /** The utility tier: a small surface a reader opened from the keyboard, or a menu they asked for.
339
+ * It is opacity only — no travel, no scale and no scrim ramp — on the short utility timing, so the
340
+ * surface is there as soon as the key that opened it has been answered. */
341
+ declare const motionPresenceUtility: string;
310
342
  /** A modal surface: anchored to the viewport rather than to a trigger, so it has no side
311
343
  * to grow from. A large surface never bounces; it fades, rises a little and settles, and its
312
344
  * scale stays restrained because a plane this big grows visibly even from a few percent. */
313
345
  declare const motionPresenceModal: string;
314
- /** The plane behind a surface that owns the viewport. Opacity only: a blur or a filter is
315
- * never animated, so the plane can never animate the page behind it. */
316
- declare const motionPresenceScrim = "transition-opacity duration-overlay ease-release data-[starting-style]:opacity-0 data-[ending-style]:opacity-0 data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit";
346
+ /** The plane behind a surface that owns the viewport. Only its tint fades, and the tint is the
347
+ * `::before` layer `overlay.scrim` paints: the element itself carries the backdrop blur, and a
348
+ * presence recipe never animates a node that carries `backdrop-filter`, because every frame of
349
+ * such an animation re-blurs the page behind it. The blur therefore arrives with the plane, and
350
+ * the tint fades in front of it. */
351
+ declare const motionPresenceScrim: string;
352
+ /** The scrim of a utility surface. A surface the reader opened from the keyboard answers on the
353
+ * utility timing, and its plane fades on that same timing, so the backdrop is not slower than the
354
+ * surface it sits behind. */
355
+ declare const motionPresenceScrimUtility: string;
317
356
  /** Continuous activity is a distinct intent, not an exception to interaction motion: it
318
- * reports work rather than answering an event, and it has no entrance of its own. */
319
- declare const motionActivitySpin = "animate-spin motion-reduce:animate-none";
320
- declare const motionActivityPulse = "animate-pulse motion-reduce:animate-none";
357
+ * reports work rather than answering an event, and it has no entrance of its own.
358
+ *
359
+ * Reduced motion removes the *travel* of an activity loop — the rotation, the sweep — and keeps
360
+ * the loop as an opacity change. A spinner that simply stopped reads as finished, and a user who
361
+ * asked for less motion still needs to know the work is running. The reduced form is therefore
362
+ * a slow breathe for the spinner and a softer pulse for a skeleton, both on the authored pace. */
363
+ declare const motionActivitySpin = "animate-spin motion-reduce:animate-sherick-breathe";
364
+ declare const motionActivityPulse = "animate-pulse motion-reduce:animate-sherick-soft-pulse";
365
+ /** The reduced form of an indeterminate bar. The sweep is removed — its travel is the thing reduced
366
+ * motion takes away — and the fill is held at the full width of its track, where its opacity
367
+ * breathes on the same slow loop the spinner takes. A progress part that owns this class sets its
368
+ * fill to the whole track under `motion-reduce`, so the reader still sees a bar that is busy.
369
+ * Exported separately so `Progress` can pair it with its own width rule. */
370
+ declare const motionActivityIndeterminateReduced = "motion-reduce:animate-sherick-breathe";
321
371
  /** The indeterminate half of a progress bar. A task with no known value cannot report a
322
372
  * position, so it reports *work* instead: the fill sweeps across its own track on the one loop
323
373
  * that is paced, because a loop that reports rather than answers cannot arrive. The travel is a
324
374
  * composited transform rather than a laid-out edge, and an endless loop must never sit on the
325
375
  * layout path; the direction is a value the recipe flips with the writing direction, because a
326
- * transform is physical and the sweep follows the page. Under reduced motion the loop stops and
327
- * the fill rests where it starts: a static status glyph, exactly as the spin and the pulse rest. */
328
- declare const motionActivityIndeterminate = "animate-sherick-indeterminate [[dir=rtl]_&]:[--sui-indeterminate-direction:-1] motion-reduce:animate-none";
376
+ * transform is physical and the sweep follows the page. Under reduced motion the sweep gives way
377
+ * to the opacity breathe above, so the bar keeps saying that work is running without moving. */
378
+ declare const motionActivityIndeterminate: string;
329
379
  /** The state layer is a composited overlay, so its own opacity is the only thing that
330
380
  * moves. Shared here because four interaction states across the library ride it. */
331
381
  /** A row in a collection moves its highlight rather than fading it: a highlight is where the reader
@@ -348,5 +398,5 @@ declare const motionPresenceToast: string;
348
398
  */
349
399
  declare const cn: (...inputs: ClassValue[]) => string;
350
400
 
351
- export { cn, currentDestination, density, detail, disclosure, edge, edgeTone, elevation, fieldLayout, fieldMessage, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, groupFocusRing, hitArea, iconSlot, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionRelocate, motionRelocateLong, motionRim, motionRowLayer, motionStateLayer, motionTactile, motionTactileField, motionTactileWide, overlay, parentFocusRingInset, puck, recessedTop, recipeAlphas, rim, selectable, selectableRowSupporting, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone, type };
401
+ export { cn, codeWell, currentDestination, density, detail, disclosure, edge, edgeTone, elevation, fieldLabel, fieldLayout, fieldMessage, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, forcedBoundary, groupFocusRing, headingRhythm, hitArea, iconSlot, iconStroke, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityIndeterminateReduced, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceScrimUtility, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionPresenceUtility, motionRelocate, motionRelocateLong, motionRim, motionRowLayer, motionStateLayer, motionTactile, motionTactileField, motionTactileWide, overlay, parentFocusRingInset, puck, recessedTop, recipeAlphas, richText, rim, selectable, selectableRowSupporting, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone, type };
352
402
  export type { MotionIntent };