@nadicodeai/ui 12.1.111 → 12.1.114

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 (225) hide show
  1. package/AGENTS.md +11 -9
  2. package/README.md +3 -2
  3. package/dist/components/account-menu.d.ts +1 -1
  4. package/dist/components/account-menu.js +1 -1
  5. package/dist/components/action-menu.d.ts +2 -2
  6. package/dist/components/action-menu.js +2 -2
  7. package/dist/components/activity-feed.d.ts +1 -1
  8. package/dist/components/activity-feed.js +1 -1
  9. package/dist/components/agent-card.d.ts +5 -3
  10. package/dist/components/agent-card.d.ts.map +1 -1
  11. package/dist/components/agent-card.js +5 -3
  12. package/dist/components/agent-list-row.d.ts +2 -2
  13. package/dist/components/agent-list-row.js +2 -2
  14. package/dist/components/agent-orb.d.ts +31 -7
  15. package/dist/components/agent-orb.d.ts.map +1 -1
  16. package/dist/components/agent-orb.js +29 -5
  17. package/dist/components/agent-profile.d.ts +6 -2
  18. package/dist/components/agent-profile.d.ts.map +1 -1
  19. package/dist/components/agent-profile.js +6 -2
  20. package/dist/components/aspect-ratio.d.ts +7 -3
  21. package/dist/components/aspect-ratio.d.ts.map +1 -1
  22. package/dist/components/aspect-ratio.js +7 -3
  23. package/dist/components/avatar.d.ts +11 -5
  24. package/dist/components/avatar.d.ts.map +1 -1
  25. package/dist/components/avatar.js +11 -5
  26. package/dist/components/breadcrumb.d.ts +1 -1
  27. package/dist/components/breadcrumb.js +1 -1
  28. package/dist/components/button.d.ts +23 -10
  29. package/dist/components/button.d.ts.map +1 -1
  30. package/dist/components/button.js +23 -10
  31. package/dist/components/card-row.d.ts +4 -2
  32. package/dist/components/card-row.d.ts.map +1 -1
  33. package/dist/components/card-row.js +4 -2
  34. package/dist/components/card.d.ts +1 -1
  35. package/dist/components/card.js +1 -1
  36. package/dist/components/carousel.d.ts +9 -4
  37. package/dist/components/carousel.d.ts.map +1 -1
  38. package/dist/components/carousel.js +9 -4
  39. package/dist/components/catalog-drawer.d.ts +1 -1
  40. package/dist/components/catalog-drawer.js +1 -1
  41. package/dist/components/chart-card.d.ts +1 -1
  42. package/dist/components/chart-card.js +1 -1
  43. package/dist/components/checkbox.d.ts +2 -1
  44. package/dist/components/checkbox.d.ts.map +1 -1
  45. package/dist/components/checkbox.js +2 -1
  46. package/dist/components/choicebox.d.ts +9 -5
  47. package/dist/components/choicebox.d.ts.map +1 -1
  48. package/dist/components/choicebox.js +9 -5
  49. package/dist/components/clearable-input.d.ts +2 -1
  50. package/dist/components/clearable-input.d.ts.map +1 -1
  51. package/dist/components/clearable-input.js +2 -1
  52. package/dist/components/code-block.d.ts +13 -10
  53. package/dist/components/code-block.d.ts.map +1 -1
  54. package/dist/components/code-block.js +13 -10
  55. package/dist/components/collection-filters.d.ts +1 -1
  56. package/dist/components/collection-filters.js +1 -1
  57. package/dist/components/collection-search.d.ts +11 -7
  58. package/dist/components/collection-search.d.ts.map +1 -1
  59. package/dist/components/collection-search.js +11 -7
  60. package/dist/components/combobox.d.ts +4 -1
  61. package/dist/components/combobox.d.ts.map +1 -1
  62. package/dist/components/combobox.js +4 -1
  63. package/dist/components/command.d.ts +1 -1
  64. package/dist/components/command.js +1 -1
  65. package/dist/components/company-card.d.ts +28 -5
  66. package/dist/components/company-card.d.ts.map +1 -1
  67. package/dist/components/company-card.js +28 -5
  68. package/dist/components/confirm-dialog.d.ts +3 -2
  69. package/dist/components/confirm-dialog.d.ts.map +1 -1
  70. package/dist/components/confirm-dialog.js +2 -2
  71. package/dist/components/copy-button.d.ts +2 -2
  72. package/dist/components/copy-button.js +2 -2
  73. package/dist/components/data-table.d.ts +2 -2
  74. package/dist/components/data-table.js +2 -2
  75. package/dist/components/drawer.d.ts +4 -4
  76. package/dist/components/drawer.d.ts.map +1 -1
  77. package/dist/components/drawer.js +3 -3
  78. package/dist/components/dropdown-menu.d.ts +2 -2
  79. package/dist/components/dropdown-menu.js +2 -2
  80. package/dist/components/empty-state.d.ts +2 -2
  81. package/dist/components/empty-state.js +2 -2
  82. package/dist/components/field.d.ts +4 -0
  83. package/dist/components/field.d.ts.map +1 -1
  84. package/dist/components/field.js +4 -0
  85. package/dist/components/file-diff.d.ts +5 -2
  86. package/dist/components/file-diff.d.ts.map +1 -1
  87. package/dist/components/file-diff.js +5 -2
  88. package/dist/components/form-dialog.d.ts +1 -1
  89. package/dist/components/form-dialog.js +1 -1
  90. package/dist/components/form-drawer.d.ts +1 -1
  91. package/dist/components/form-drawer.js +1 -1
  92. package/dist/components/gauge.d.ts +9 -7
  93. package/dist/components/gauge.d.ts.map +1 -1
  94. package/dist/components/gauge.js +9 -7
  95. package/dist/components/hover-card.d.ts +5 -2
  96. package/dist/components/hover-card.d.ts.map +1 -1
  97. package/dist/components/hover-card.js +5 -2
  98. package/dist/components/identity-mark.d.ts +3 -3
  99. package/dist/components/identity-mark.js +3 -3
  100. package/dist/components/input-group.d.ts +1 -0
  101. package/dist/components/input-group.d.ts.map +1 -1
  102. package/dist/components/input-group.js +1 -0
  103. package/dist/components/input-otp.d.ts +5 -3
  104. package/dist/components/input-otp.d.ts.map +1 -1
  105. package/dist/components/input-otp.js +5 -3
  106. package/dist/components/input.d.ts +4 -2
  107. package/dist/components/input.d.ts.map +1 -1
  108. package/dist/components/input.js +4 -2
  109. package/dist/components/item.d.ts +1 -1
  110. package/dist/components/item.js +1 -1
  111. package/dist/components/kbd.d.ts +4 -2
  112. package/dist/components/kbd.d.ts.map +1 -1
  113. package/dist/components/kbd.js +4 -2
  114. package/dist/components/label.d.ts +8 -3
  115. package/dist/components/label.d.ts.map +1 -1
  116. package/dist/components/label.js +8 -3
  117. package/dist/components/load-more-button.d.ts +3 -2
  118. package/dist/components/load-more-button.d.ts.map +1 -1
  119. package/dist/components/load-more-button.js +3 -2
  120. package/dist/components/message-notice.d.ts +1 -1
  121. package/dist/components/message-notice.js +1 -1
  122. package/dist/components/multi-select.d.ts +6 -4
  123. package/dist/components/multi-select.d.ts.map +1 -1
  124. package/dist/components/multi-select.js +6 -4
  125. package/dist/components/notice-banner.d.ts +2 -2
  126. package/dist/components/notice-banner.js +2 -2
  127. package/dist/components/object-workspace.d.ts +3 -3
  128. package/dist/components/object-workspace.d.ts.map +1 -1
  129. package/dist/components/object-workspace.js +2 -2
  130. package/dist/components/pairing-code.d.ts +2 -2
  131. package/dist/components/pairing-code.js +2 -2
  132. package/dist/components/picture-label.d.ts +3 -2
  133. package/dist/components/picture-label.d.ts.map +1 -1
  134. package/dist/components/picture-label.js +3 -2
  135. package/dist/components/popover.d.ts +7 -3
  136. package/dist/components/popover.d.ts.map +1 -1
  137. package/dist/components/popover.js +7 -3
  138. package/dist/components/progress-checklist.d.ts +1 -1
  139. package/dist/components/progress-checklist.js +1 -1
  140. package/dist/components/progress.d.ts +4 -2
  141. package/dist/components/progress.d.ts.map +1 -1
  142. package/dist/components/progress.js +4 -2
  143. package/dist/components/qr-code.d.ts +5 -2
  144. package/dist/components/qr-code.d.ts.map +1 -1
  145. package/dist/components/qr-code.js +5 -2
  146. package/dist/components/radio-group.d.ts +8 -5
  147. package/dist/components/radio-group.d.ts.map +1 -1
  148. package/dist/components/radio-group.js +8 -5
  149. package/dist/components/record-identity.d.ts +1 -1
  150. package/dist/components/record-identity.js +1 -1
  151. package/dist/components/record-list.d.ts +2 -2
  152. package/dist/components/record-list.js +2 -2
  153. package/dist/components/record-sheet.d.ts +2 -2
  154. package/dist/components/record-sheet.js +2 -2
  155. package/dist/components/record-time.d.ts +1 -1
  156. package/dist/components/record-time.js +1 -1
  157. package/dist/components/resizable.d.ts +2 -2
  158. package/dist/components/resizable.js +2 -2
  159. package/dist/components/row-edit-form.d.ts +1 -1
  160. package/dist/components/row-edit-form.js +1 -1
  161. package/dist/components/run-timeline.d.ts +2 -2
  162. package/dist/components/run-timeline.js +2 -2
  163. package/dist/components/scroll-area.d.ts +5 -3
  164. package/dist/components/scroll-area.d.ts.map +1 -1
  165. package/dist/components/scroll-area.js +5 -3
  166. package/dist/components/segmented-control.d.ts +1 -1
  167. package/dist/components/segmented-control.js +1 -1
  168. package/dist/components/select.d.ts +5 -3
  169. package/dist/components/select.d.ts.map +1 -1
  170. package/dist/components/select.js +5 -3
  171. package/dist/components/separator.d.ts +4 -2
  172. package/dist/components/separator.d.ts.map +1 -1
  173. package/dist/components/separator.js +4 -2
  174. package/dist/components/settings-facts.d.ts +3 -2
  175. package/dist/components/settings-facts.d.ts.map +1 -1
  176. package/dist/components/settings-facts.js +3 -2
  177. package/dist/components/settings-section.d.ts +1 -1
  178. package/dist/components/settings-section.js +1 -1
  179. package/dist/components/sheet.d.ts +6 -3
  180. package/dist/components/sheet.d.ts.map +1 -1
  181. package/dist/components/sheet.js +6 -3
  182. package/dist/components/skeleton.d.ts +1 -1
  183. package/dist/components/skeleton.js +1 -1
  184. package/dist/components/slider.d.ts +2 -1
  185. package/dist/components/slider.d.ts.map +1 -1
  186. package/dist/components/slider.js +2 -1
  187. package/dist/components/snippet.d.ts +3 -1
  188. package/dist/components/snippet.d.ts.map +1 -1
  189. package/dist/components/snippet.js +3 -1
  190. package/dist/components/sonner.d.ts +2 -2
  191. package/dist/components/sonner.js +2 -2
  192. package/dist/components/status-badge.d.ts +5 -2
  193. package/dist/components/status-badge.d.ts.map +1 -1
  194. package/dist/components/status-badge.js +5 -2
  195. package/dist/components/status-dot.d.ts +2 -1
  196. package/dist/components/status-dot.d.ts.map +1 -1
  197. package/dist/components/status-dot.js +2 -1
  198. package/dist/components/switch.d.ts +7 -6
  199. package/dist/components/switch.d.ts.map +1 -1
  200. package/dist/components/switch.js +7 -6
  201. package/dist/components/table.d.ts +18 -11
  202. package/dist/components/table.d.ts.map +1 -1
  203. package/dist/components/table.js +18 -11
  204. package/dist/components/tabs.d.ts +19 -13
  205. package/dist/components/tabs.d.ts.map +1 -1
  206. package/dist/components/tabs.js +19 -13
  207. package/dist/components/text-link.d.ts +9 -4
  208. package/dist/components/text-link.d.ts.map +1 -1
  209. package/dist/components/text-link.js +9 -4
  210. package/dist/components/text-with-copy-button.d.ts +2 -2
  211. package/dist/components/text-with-copy-button.js +2 -2
  212. package/dist/components/textarea.d.ts +4 -3
  213. package/dist/components/textarea.d.ts.map +1 -1
  214. package/dist/components/textarea.js +4 -3
  215. package/dist/components/tooltip.d.ts +5 -3
  216. package/dist/components/tooltip.d.ts.map +1 -1
  217. package/dist/components/tooltip.js +5 -3
  218. package/dist/components/usage-meter.d.ts +2 -2
  219. package/dist/components/usage-meter.js +2 -2
  220. package/dist/components/waiting-line.d.ts +1 -1
  221. package/dist/components/waiting-line.js +1 -1
  222. package/dist/showcase/usage.generated.d.ts.map +1 -1
  223. package/dist/showcase/usage.generated.js +147 -147
  224. package/dist/styles/shadcn.tailwind.css +8 -0
  225. package/package.json +3 -3
@@ -29,7 +29,7 @@ type TabsProps = Omit<TabsPrimitive.Root.Props, "value" | "defaultValue" | "onVa
29
29
  * @family Navigation
30
30
  * @when "Use Tabs to switch between sibling views inside a single page (`Overview`, `Logs`, `Settings`)." (https://vercel.com/geist/tabs)
31
31
  * "Cap a Tabs row at 5–7 entries on desktop and 3–4 on mobile. Past that, consolidate or move secondary views behind a `Menu`." (https://vercel.com/geist/tabs)
32
- * Ours: the cap is 7 on a desktop and 4 on a phone.
32
+ * Ours: the cap is 7 on a desktop and 4 on a phone, for a row of line tabs.
33
33
  * @instead "For navigation between unrelated pages, use a sub-menu, not Tabs." (https://vercel.com/geist/tabs) "Tabs imply the views share scope, URL parent, and data model." (https://vercel.com/geist/tabs)
34
34
  * Ours: views with their own URL are `TabsNav`. A choice that changes a value is a `RadioGroup` or
35
35
  * `ToggleGroup`. A stable destination belongs in the `Sidebar`.
@@ -37,19 +37,22 @@ type TabsProps = Omit<TabsPrimitive.Root.Props, "value" | "defaultValue" | "onVa
37
37
  * "Reflect the active tab in the URL (query param or path) so deep-links and refresh restore state." (https://vercel.com/geist/tabs)
38
38
  * "Disable individual tabs only for permission or empty-state reasons; pair the disabled tab with a `tooltip` that names the constraint." (https://vercel.com/geist/tabs)
39
39
  * Ours: the `tooltip` is `disabledReason`, shown on hover and focus and kept as the tab's
40
- * description. One treatment among siblings, chosen through `variant`, never a page border: `line`
41
- * (50 px, a 2 px ink underline over the row's 1 px rule) for a page's collections, `default` (a
42
- * 32 px pill on the selection fill) for an object's sections. The page owns the chosen tab: `value`
43
- * and `onValueChange` are required. There is no sliding underline. Colour is neutral only: the
40
+ * description; a tab is disabled only for a permission or an empty state, and `disabled` requires
41
+ * its `disabledReason`. One treatment among siblings, chosen through `variant`, never a page border:
42
+ * `line` (50 px high with 2 px sides, `body-sm` at 400, 24 px between tabs, a 2 px ink underline over
43
+ * the full-width row's 1 px rule) for a page's collections, `default` (a 32 px pill with 12 px
44
+ * sides, `label-sm` at 400, no gap between tabs, on the selection fill) for an object's sections.
45
+ * On a coarse or non-hover input a tab is at least 44 px high and wide, as a touch target.
46
+ * The page owns the chosen tab: `value` and `onValueChange` are required. There is no sliding underline. Colour is neutral only: the
44
47
  * chosen tab is ink, the rest are muted until hover, and a disabled tab is never dimmed: in `line`
45
48
  * it reads as an unchosen one, in `default` it sits on the selection fill with muted text, both
46
49
  * with a not-allowed cursor.
47
50
  * @words "`tabs[].title` is Title Case, 1–2 words, and names the destination noun (`Overview`, `Logs`, `Settings`). Verbs belong on buttons; `View Logs` is wrong on a tab." (https://vercel.com/geist/tabs)
48
51
  * "`tabs[].tooltip` is sentence case and explains the constraint (`Only visible to project owners.`), not the tab’s purpose." (https://vercel.com/geist/tabs)
49
52
  * "Don’t append a count to the title (`Logs (12)`); use a badge slot instead and drop the badge at zero." (https://vercel.com/geist/tabs)
50
- * Ours: the title is sentence case (*Overview*, *Installations*), not Title Case. There is no badge
51
- * slot: a count belongs to the list's footer. A reason is *Only owners see billing*. Italian
52
- * (*Installazioni*) scrolls, never wraps or truncates.
53
+ * Ours: the title is a noun with no icon, in sentence case (*Overview*, *Installations*), not Title
54
+ * Case. There is no badge slot: a count belongs to the list's footer. A reason is *Only owners see
55
+ * billing*. Italian (*Installazioni*) scrolls, never wraps or truncates.
53
56
  * @access "Keep Left/Right arrows moving focus across tabs and Enter/Space activating; don’t hijack with global shortcuts." (https://vercel.com/geist/tabs)
54
57
  * "Label the tablist with `aria-label` when no visible heading sits above it (`aria-label="Sections"`)." (https://vercel.com/geist/tabs)
55
58
  * "Maintain a visible focus ring on the active tab; don’t suppress focus styles for visual polish." (https://vercel.com/geist/tabs)
@@ -74,10 +77,12 @@ declare function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props)
74
77
  * An object's ancestry is the `Breadcrumb`.
75
78
  * @behaviour "Reflect the active tab in the URL (query param or path) so deep-links and refresh restore state." (https://vercel.com/geist/tabs)
76
79
  * Ours: each view is its own URL, so a link carries it. Overflow scrolls sideways and brings the
77
- * current link into view, and the row fades out over 32 px at each end where links stand beyond it. The current link takes the selection fill, or in `line` an ink underline
78
- * over the row's 1 px rule; the other links are muted until hover, with no hue. Sizes and spacing
79
- * follow `Tabs`. The sub-pages of one object stand as the filled-pill row in a `band` under the top
80
- * bar, as Vercel draws a deployment's tabs: the band is this component's, with `above` for the
80
+ * current link into view, and the row fades out over 32 px at each end where links stand beyond it.
81
+ * The current link takes the selection fill, or in `line` a 2 px ink underline over the row's 1 px
82
+ * rule; the other links are muted until hover, with no hue. Sizes and spacing follow `Tabs`. The
83
+ * row holds at most 7 links; in a `band`, which a phone scrolls sideways instead of holding
84
+ * fewer, that is 7 at every width, as an Agent's six views do, and a `line` row follows the 7 and 4 cap of `Tabs`. The sub-pages of one object stand as the filled-pill row in a
85
+ * `band` under the top bar, as Vercel draws a deployment's tabs: the band is this component's, with `above` for the
81
86
  * object's identity, so no page draws the border, the fill or the gutters around the row. The band
82
87
  * keeps the page's own column and gutter, and the first link's words start at the page title's edge,
83
88
  * its fill reaching into the gutter as Vercel's tabs do. The
@@ -85,7 +90,8 @@ declare function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props)
85
90
  * @words "`tabs[].title` is Title Case, 1–2 words, and names the destination noun (`Overview`, `Logs`, `Settings`). Verbs belong on buttons; `View Logs` is wrong on a tab." (https://vercel.com/geist/tabs)
86
91
  * "Don’t append a count to the title (`Logs (12)`); use a badge slot instead and drop the badge at zero." (https://vercel.com/geist/tabs)
87
92
  * Ours: the title is sentence case (*Overview*, *Installations*), not Title Case. There is no badge
88
- * slot: a count belongs to the list's footer. Italian scrolls, never wraps or truncates.
93
+ * slot: a count belongs to the list's footer. A link has no icon. Italian scrolls, never wraps or
94
+ * truncates.
89
95
  * @access "Label the tablist with `aria-label` when no visible heading sits above it (`aria-label="Sections"`)." (https://vercel.com/geist/tabs)
90
96
  * "Maintain a visible focus ring on the active tab; don’t suppress focus styles for visual polish." (https://vercel.com/geist/tabs)
91
97
  * Ours: a `nav` of links named by `aria-label` or `aria-labelledby`, which the type requires, with
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import { cn } from "../lib/utils.js";
13
13
  * @family Navigation
14
14
  * @when "Use Tabs to switch between sibling views inside a single page (`Overview`, `Logs`, `Settings`)." (https://vercel.com/geist/tabs)
15
15
  * "Cap a Tabs row at 5–7 entries on desktop and 3–4 on mobile. Past that, consolidate or move secondary views behind a `Menu`." (https://vercel.com/geist/tabs)
16
- * Ours: the cap is 7 on a desktop and 4 on a phone.
16
+ * Ours: the cap is 7 on a desktop and 4 on a phone, for a row of line tabs.
17
17
  * @instead "For navigation between unrelated pages, use a sub-menu, not Tabs." (https://vercel.com/geist/tabs) "Tabs imply the views share scope, URL parent, and data model." (https://vercel.com/geist/tabs)
18
18
  * Ours: views with their own URL are `TabsNav`. A choice that changes a value is a `RadioGroup` or
19
19
  * `ToggleGroup`. A stable destination belongs in the `Sidebar`.
@@ -21,19 +21,22 @@ import { cn } from "../lib/utils.js";
21
21
  * "Reflect the active tab in the URL (query param or path) so deep-links and refresh restore state." (https://vercel.com/geist/tabs)
22
22
  * "Disable individual tabs only for permission or empty-state reasons; pair the disabled tab with a `tooltip` that names the constraint." (https://vercel.com/geist/tabs)
23
23
  * Ours: the `tooltip` is `disabledReason`, shown on hover and focus and kept as the tab's
24
- * description. One treatment among siblings, chosen through `variant`, never a page border: `line`
25
- * (50 px, a 2 px ink underline over the row's 1 px rule) for a page's collections, `default` (a
26
- * 32 px pill on the selection fill) for an object's sections. The page owns the chosen tab: `value`
27
- * and `onValueChange` are required. There is no sliding underline. Colour is neutral only: the
24
+ * description; a tab is disabled only for a permission or an empty state, and `disabled` requires
25
+ * its `disabledReason`. One treatment among siblings, chosen through `variant`, never a page border:
26
+ * `line` (50 px high with 2 px sides, `body-sm` at 400, 24 px between tabs, a 2 px ink underline over
27
+ * the full-width row's 1 px rule) for a page's collections, `default` (a 32 px pill with 12 px
28
+ * sides, `label-sm` at 400, no gap between tabs, on the selection fill) for an object's sections.
29
+ * On a coarse or non-hover input a tab is at least 44 px high and wide, as a touch target.
30
+ * The page owns the chosen tab: `value` and `onValueChange` are required. There is no sliding underline. Colour is neutral only: the
28
31
  * chosen tab is ink, the rest are muted until hover, and a disabled tab is never dimmed: in `line`
29
32
  * it reads as an unchosen one, in `default` it sits on the selection fill with muted text, both
30
33
  * with a not-allowed cursor.
31
34
  * @words "`tabs[].title` is Title Case, 1–2 words, and names the destination noun (`Overview`, `Logs`, `Settings`). Verbs belong on buttons; `View Logs` is wrong on a tab." (https://vercel.com/geist/tabs)
32
35
  * "`tabs[].tooltip` is sentence case and explains the constraint (`Only visible to project owners.`), not the tab’s purpose." (https://vercel.com/geist/tabs)
33
36
  * "Don’t append a count to the title (`Logs (12)`); use a badge slot instead and drop the badge at zero." (https://vercel.com/geist/tabs)
34
- * Ours: the title is sentence case (*Overview*, *Installations*), not Title Case. There is no badge
35
- * slot: a count belongs to the list's footer. A reason is *Only owners see billing*. Italian
36
- * (*Installazioni*) scrolls, never wraps or truncates.
37
+ * Ours: the title is a noun with no icon, in sentence case (*Overview*, *Installations*), not Title
38
+ * Case. There is no badge slot: a count belongs to the list's footer. A reason is *Only owners see
39
+ * billing*. Italian (*Installazioni*) scrolls, never wraps or truncates.
37
40
  * @access "Keep Left/Right arrows moving focus across tabs and Enter/Space activating; don’t hijack with global shortcuts." (https://vercel.com/geist/tabs)
38
41
  * "Label the tablist with `aria-label` when no visible heading sits above it (`aria-label="Sections"`)." (https://vercel.com/geist/tabs)
39
42
  * "Maintain a visible focus ring on the active tab; don’t suppress focus styles for visual polish." (https://vercel.com/geist/tabs)
@@ -93,10 +96,12 @@ const HIDDEN_FADE = {
93
96
  * An object's ancestry is the `Breadcrumb`.
94
97
  * @behaviour "Reflect the active tab in the URL (query param or path) so deep-links and refresh restore state." (https://vercel.com/geist/tabs)
95
98
  * Ours: each view is its own URL, so a link carries it. Overflow scrolls sideways and brings the
96
- * current link into view, and the row fades out over 32 px at each end where links stand beyond it. The current link takes the selection fill, or in `line` an ink underline
97
- * over the row's 1 px rule; the other links are muted until hover, with no hue. Sizes and spacing
98
- * follow `Tabs`. The sub-pages of one object stand as the filled-pill row in a `band` under the top
99
- * bar, as Vercel draws a deployment's tabs: the band is this component's, with `above` for the
99
+ * current link into view, and the row fades out over 32 px at each end where links stand beyond it.
100
+ * The current link takes the selection fill, or in `line` a 2 px ink underline over the row's 1 px
101
+ * rule; the other links are muted until hover, with no hue. Sizes and spacing follow `Tabs`. The
102
+ * row holds at most 7 links; in a `band`, which a phone scrolls sideways instead of holding
103
+ * fewer, that is 7 at every width, as an Agent's six views do, and a `line` row follows the 7 and 4 cap of `Tabs`. The sub-pages of one object stand as the filled-pill row in a
104
+ * `band` under the top bar, as Vercel draws a deployment's tabs: the band is this component's, with `above` for the
100
105
  * object's identity, so no page draws the border, the fill or the gutters around the row. The band
101
106
  * keeps the page's own column and gutter, and the first link's words start at the page title's edge,
102
107
  * its fill reaching into the gutter as Vercel's tabs do. The
@@ -104,7 +109,8 @@ const HIDDEN_FADE = {
104
109
  * @words "`tabs[].title` is Title Case, 1–2 words, and names the destination noun (`Overview`, `Logs`, `Settings`). Verbs belong on buttons; `View Logs` is wrong on a tab." (https://vercel.com/geist/tabs)
105
110
  * "Don’t append a count to the title (`Logs (12)`); use a badge slot instead and drop the badge at zero." (https://vercel.com/geist/tabs)
106
111
  * Ours: the title is sentence case (*Overview*, *Installations*), not Title Case. There is no badge
107
- * slot: a count belongs to the list's footer. Italian scrolls, never wraps or truncates.
112
+ * slot: a count belongs to the list's footer. A link has no icon. Italian scrolls, never wraps or
113
+ * truncates.
108
114
  * @access "Label the tablist with `aria-label` when no visible heading sits above it (`aria-label="Sections"`)." (https://vercel.com/geist/tabs)
109
115
  * "Maintain a visible focus ring on the active tab; don’t suppress focus styles for visual polish." (https://vercel.com/geist/tabs)
110
116
  * Ours: a `nav` of links named by `aria-label` or `aria-labelledby`, which the type requires, with
@@ -4,13 +4,18 @@ import { type VariantProps } from "class-variance-authority";
4
4
  * for a muted way out.
5
5
  *
6
6
  * @family Navigation
7
- * @when A link inside a sentence (`inline`, blue and underlined), a link that stands alone as text
8
- * (`plain`), or a muted secondary way to somewhere such as a footer's *Learn more* (`quiet`).
7
+ * @when A link inside a sentence, or offered alone as a section's way on (`inline`, blue and
8
+ * underlined at rest); a link that is itself the value, such as a record's name or a fact (`plain`);
9
+ * a secondary way out beside the content, such as a card header's *See everything*, which takes the
10
+ * same blue treatment as `inline`; or a muted way to somewhere such as a footer's *Learn more*
11
+ * (`quiet`).
9
12
  * @instead A command is a `Button`; a destination drawn as a button is a link with
10
13
  * `buttonVariants`. Going to a record from its row is the record's name in `RecordIdentity`.
14
+ * Breadcrumb and back navigation are not text links: they keep their own quieter navigation
15
+ * treatment.
11
16
  * @behaviour Classes only: the caller renders the real anchor or router link. `inline` thickens its
12
- * underline on hover; `plain` and `quiet` underline on hover. Paint changes ride the shared paint
13
- * transition. Colour: only `inline` takes the link blue, as Vercel puts blue on links and nowhere
17
+ * underline on hover; `plain` and `quiet` underline on hover. The underline sits 4 px under the text
18
+ * in every kind. Paint changes ride the shared paint transition. Colour: only `inline` takes the link blue, as Vercel puts blue on links and nowhere
14
19
  * else in running text; `plain` keeps the colour of the text around it, and `quiet` is muted and
15
20
  * turns ink on hover, which is how a card footer's or a list note's *Learn more* reads. A link that
16
21
  * leaves the product ends in the arrow icon after its text, which `quiet` sizes.
@@ -1 +1 @@
1
- {"version":3,"file":"text-link.d.ts","sourceRoot":"","sources":["../../src/components/text-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,gBAAgB;;8EAYpB,CAAC;AAEH,KAAK,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"text-link.d.ts","sourceRoot":"","sources":["../../src/components/text-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,QAAA,MAAM,gBAAgB;;8EAYpB,CAAC;AAEH,KAAK,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,CAAC"}
@@ -4,13 +4,18 @@ import { cva } from "class-variance-authority";
4
4
  * for a muted way out.
5
5
  *
6
6
  * @family Navigation
7
- * @when A link inside a sentence (`inline`, blue and underlined), a link that stands alone as text
8
- * (`plain`), or a muted secondary way to somewhere such as a footer's *Learn more* (`quiet`).
7
+ * @when A link inside a sentence, or offered alone as a section's way on (`inline`, blue and
8
+ * underlined at rest); a link that is itself the value, such as a record's name or a fact (`plain`);
9
+ * a secondary way out beside the content, such as a card header's *See everything*, which takes the
10
+ * same blue treatment as `inline`; or a muted way to somewhere such as a footer's *Learn more*
11
+ * (`quiet`).
9
12
  * @instead A command is a `Button`; a destination drawn as a button is a link with
10
13
  * `buttonVariants`. Going to a record from its row is the record's name in `RecordIdentity`.
14
+ * Breadcrumb and back navigation are not text links: they keep their own quieter navigation
15
+ * treatment.
11
16
  * @behaviour Classes only: the caller renders the real anchor or router link. `inline` thickens its
12
- * underline on hover; `plain` and `quiet` underline on hover. Paint changes ride the shared paint
13
- * transition. Colour: only `inline` takes the link blue, as Vercel puts blue on links and nowhere
17
+ * underline on hover; `plain` and `quiet` underline on hover. The underline sits 4 px under the text
18
+ * in every kind. Paint changes ride the shared paint transition. Colour: only `inline` takes the link blue, as Vercel puts blue on links and nowhere
14
19
  * else in running text; `plain` keeps the colour of the text around it, and `quiet` is muted and
15
20
  * turns ink on hover, which is how a card footer's or a list note's *Learn more* reads. A link that
16
21
  * leaves the product ends in the arrow icon after its text, which `quiet` sizes.
@@ -12,8 +12,8 @@ type TextWithCopyButtonProps = {
12
12
  * server address.
13
13
  * @instead Several lines are a `CodeBlock`; a command is a `Snippet`. A value that needs no copying
14
14
  * is plain text. The button alone, beside text that is not the value, is `CopyButton`.
15
- * @behaviour Shows the value in the body type, with a 24 px `CopyButton` whose 16 px mark sits 6 px
16
- * after it. The value is slightly softer than the full text colour and the mark softer still;
15
+ * @behaviour Shows the exact `value`, which is also what is copied, in the body type, with a 24 px
16
+ * `CopyButton` whose 16 px mark sits 6 px after it. The value is slightly softer than the full text colour and the mark softer still;
17
17
  * hovering either takes both to the full text colour, with no fill, border or shadow. Only the
18
18
  * button copies: the value stays selectable, so a copy the clipboard refuses can be done by hand. A
19
19
  * value too long for its row wraps at any character; `ellipsis` instead cuts it in the middle in
@@ -13,8 +13,8 @@ const BUTTON_WITHOUT_FILL = "[&_[data-slot=button]]:hover:bg-transparent [&_[dat
13
13
  * server address.
14
14
  * @instead Several lines are a `CodeBlock`; a command is a `Snippet`. A value that needs no copying
15
15
  * is plain text. The button alone, beside text that is not the value, is `CopyButton`.
16
- * @behaviour Shows the value in the body type, with a 24 px `CopyButton` whose 16 px mark sits 6 px
17
- * after it. The value is slightly softer than the full text colour and the mark softer still;
16
+ * @behaviour Shows the exact `value`, which is also what is copied, in the body type, with a 24 px
17
+ * `CopyButton` whose 16 px mark sits 6 px after it. The value is slightly softer than the full text colour and the mark softer still;
18
18
  * hovering either takes both to the full text colour, with no fill, border or shadow. Only the
19
19
  * button copies: the value stays selectable, so a copy the clipboard refuses can be done by hand. A
20
20
  * value too long for its row wraps at any character; `ellipsis` instead cuts it in the middle in
@@ -19,9 +19,10 @@ type TextareaProps = Omit<React.ComponentProps<"textarea">, "size"> & {
19
19
  * @behaviour Same ring, halo, hover, disabled and error as `Input`; the red of an error sits on the
20
20
  * ring, the halo and the message only, and holds while the box has focus. It grows with its content
21
21
  * (`field-sizing: content`) from a roomy 100 px minimum with a 10 px by 12 px inset; `lg` takes
22
- * larger type and the larger corner, `sm` is the default's size. Read-only keeps the plain fill: it
23
- * does not look disabled. `label` and `error` draw the `Field` parts around the box, and a string
24
- * `label` requires `id`, as on `Input`; a box with no name does not compile. "Set a generous
22
+ * 16 px type at every width (the others drop to 14 px from `md` up) and the larger corner, `sm` is
23
+ * the default's size. Read-only keeps the plain fill: it does not look disabled. `label` and `error`
24
+ * draw the `Field` parts around the box (in a settings section, `SettingsField` does it), and a
25
+ * string `label` requires `id`, as on `Input`; a box with no name does not compile. "Set a generous
25
26
  * default `rows` and grow only when the surface has vertical room; don’t let the field push primary
26
27
  * actions below the fold." (https://vercel.com/geist/textarea) Ours: there is no resize handle and
27
28
  * `rows` does not set the height. Nothing caps the growth, so a form keeps its footer's primary
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAqB7F,KAAK,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG;IACpE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,iBAAS,QAAQ,CAAC,EAChB,KAAK,EACL,WAAW,EACX,KAAK,EACL,IAAgB,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,qBAef;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAqB7F,KAAK,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG;IACpE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,iBAAS,QAAQ,CAAC,EAChB,KAAK,EACL,WAAW,EACX,KAAK,EACL,IAAgB,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,qBAef;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -29,9 +29,10 @@ const textareaVariants = cva([
29
29
  * @behaviour Same ring, halo, hover, disabled and error as `Input`; the red of an error sits on the
30
30
  * ring, the halo and the message only, and holds while the box has focus. It grows with its content
31
31
  * (`field-sizing: content`) from a roomy 100 px minimum with a 10 px by 12 px inset; `lg` takes
32
- * larger type and the larger corner, `sm` is the default's size. Read-only keeps the plain fill: it
33
- * does not look disabled. `label` and `error` draw the `Field` parts around the box, and a string
34
- * `label` requires `id`, as on `Input`; a box with no name does not compile. "Set a generous
32
+ * 16 px type at every width (the others drop to 14 px from `md` up) and the larger corner, `sm` is
33
+ * the default's size. Read-only keeps the plain fill: it does not look disabled. `label` and `error`
34
+ * draw the `Field` parts around the box (in a settings section, `SettingsField` does it), and a
35
+ * string `label` requires `id`, as on `Input`; a box with no name does not compile. "Set a generous
35
36
  * default `rows` and grow only when the surface has vertical room; don’t let the field push primary
36
37
  * actions below the fold." (https://vercel.com/geist/textarea) Ours: there is no resize handle and
37
38
  * `rows` does not set the height. Nothing caps the growth, so a form keeps its footer's primary
@@ -10,7 +10,8 @@ declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.
10
10
  * (https://vercel.com/geist/tooltip)
11
11
  * "Use lifecycle Tooltips (`Alpha`, `Experimental`, `Beta`, `Early Access`) to name the limits that
12
12
  * apply: API stability, SLA, support, pricing, retention." (https://vercel.com/geist/tooltip)
13
- * Ours: a shortcut is shown in a tooltip only when one is bound.
13
+ * Ours: the parts are `TooltipProvider`, `Tooltip`, `TooltipTrigger` and `TooltipContent`. A shortcut
14
+ * is shown in a tooltip only when one is bound.
14
15
  * @instead "For an entity preview with metadata rows (avatar, identifier, 2–4 facts, optional
15
16
  * action), use `Context Card`." "For long-form content or actions that need persistence, route to a
16
17
  * `Drawer` or page navigation." (https://vercel.com/geist/tooltip)
@@ -24,8 +25,9 @@ declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.
24
25
  * (https://vercel.com/geist/tooltip)
25
26
  * Ours: the pointer wait is 150 ms and keyboard focus opens it at once; `delay={0}` on the trigger
26
27
  * or a `TooltipProvider` removes the wait. Above by default, 10 px from the trigger, at most 250 px
27
- * wide, 13 px text balanced over its lines. Never interactive. `arrow={false}` drops the stem;
28
- * `centerText={false}` left-aligns a tooltip that wraps. `TooltipContent` requires its text as
28
+ * wide, 13 px text balanced over its lines. Never interactive. `arrow={false}` drops the stem (Geist's
29
+ * `tip={false}`); `centerText={false}` left-aligns a tooltip that wraps (Geist's `center={false}`).
30
+ * Geist's coloured `type` is not provided. `TooltipContent` requires its text as
29
31
  * children. Colour: one inverted neutral, the page's ink as the fill and its surface as the
30
32
  * text, with a stem of the same fill and no hue, in both themes; a shortcut is a `Kbd` after the
31
33
  * text, drawn 20 px high.
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAIrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQjE,iBAAS,eAAe,CAAC,EAAE,KAAqB,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,+BAM5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,+BAEzD;AAED,iBAAS,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,+BAS1E;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAY,EACZ,UAAe,EACf,KAAgB,EAChB,WAAe,EACf,KAAY,EACZ,UAAiB,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG;IACzF,uEAAuE;IACvE,QAAQ,EAAE,cAAc,CAAC;IACzB,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,+BA8BF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAIrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQjE,iBAAS,eAAe,CAAC,EAAE,KAAqB,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,+BAM5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,+BAEzD;AAED,iBAAS,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,+BAS1E;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAY,EACZ,UAAe,EACf,KAAgB,EAChB,WAAe,EACf,KAAY,EACZ,UAAiB,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG;IACzF,uEAAuE;IACvE,QAAQ,EAAE,cAAc,CAAC;IACzB,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,+BA8BF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -19,7 +19,8 @@ function TooltipProvider({ delay = TOOLTIP_DELAY, ...props }) {
19
19
  * (https://vercel.com/geist/tooltip)
20
20
  * "Use lifecycle Tooltips (`Alpha`, `Experimental`, `Beta`, `Early Access`) to name the limits that
21
21
  * apply: API stability, SLA, support, pricing, retention." (https://vercel.com/geist/tooltip)
22
- * Ours: a shortcut is shown in a tooltip only when one is bound.
22
+ * Ours: the parts are `TooltipProvider`, `Tooltip`, `TooltipTrigger` and `TooltipContent`. A shortcut
23
+ * is shown in a tooltip only when one is bound.
23
24
  * @instead "For an entity preview with metadata rows (avatar, identifier, 2–4 facts, optional
24
25
  * action), use `Context Card`." "For long-form content or actions that need persistence, route to a
25
26
  * `Drawer` or page navigation." (https://vercel.com/geist/tooltip)
@@ -33,8 +34,9 @@ function TooltipProvider({ delay = TOOLTIP_DELAY, ...props }) {
33
34
  * (https://vercel.com/geist/tooltip)
34
35
  * Ours: the pointer wait is 150 ms and keyboard focus opens it at once; `delay={0}` on the trigger
35
36
  * or a `TooltipProvider` removes the wait. Above by default, 10 px from the trigger, at most 250 px
36
- * wide, 13 px text balanced over its lines. Never interactive. `arrow={false}` drops the stem;
37
- * `centerText={false}` left-aligns a tooltip that wraps. `TooltipContent` requires its text as
37
+ * wide, 13 px text balanced over its lines. Never interactive. `arrow={false}` drops the stem (Geist's
38
+ * `tip={false}`); `centerText={false}` left-aligns a tooltip that wraps (Geist's `center={false}`).
39
+ * Geist's coloured `type` is not provided. `TooltipContent` requires its text as
38
40
  * children. Colour: one inverted neutral, the page's ink as the fill and its surface as the
39
41
  * text, with a stem of the same fill and no hue, in both themes; a shortcut is a `Kbd` after the
40
42
  * text, drawn 20 px high.
@@ -3,8 +3,8 @@ import * as React from "react";
3
3
  * Consumption against an allowance in a dense spot.
4
4
  *
5
5
  * @family Data
6
- * @when `UsageMeter`: consumption against an allowance in a dense spot, such as a run's tokens and
7
- * cost.
6
+ * @when `UsageMeter`: consumption against an allowance in a dense spot, such as tokens,
7
+ * cost, latency or run count, with the figure printed.
8
8
  * @instead A known amount against a real maximum with its label is `Progress`. An unknown wait is
9
9
  * the waiting line, never a bar with an invented percentage. A single figure is a `KpiCard`.
10
10
  * @behaviour The fill moves only when the reading changes, on `transition`; still under reduced
@@ -5,8 +5,8 @@ import { cn } from "../lib/utils.js";
5
5
  * Consumption against an allowance in a dense spot.
6
6
  *
7
7
  * @family Data
8
- * @when `UsageMeter`: consumption against an allowance in a dense spot, such as a run's tokens and
9
- * cost.
8
+ * @when `UsageMeter`: consumption against an allowance in a dense spot, such as tokens,
9
+ * cost, latency or run count, with the figure printed.
10
10
  * @instead A known amount against a real maximum with its label is `Progress`. An unknown wait is
11
11
  * the waiting line, never a bar with an invented percentage. A single figure is a `KpiCard`.
12
12
  * @behaviour The fill moves only when the reading changes, on `transition`; still under reduced
@@ -22,7 +22,7 @@ type WaitingLineProps = Omit<React.ComponentProps<"div">, "children"> & ({
22
22
  * A page load is `Skeleton`. An Agent working is her orb and a sentence.
23
23
  * @behaviour Takes its 2 px from the start and stays empty until 1 s, so its arrival moves nothing.
24
24
  * No track colour; the segment is ink, never info blue, crossing at 32% width. Under reduced motion
25
- * it breathes.
25
+ * it breathes in opacity, across the whole track, instead of travelling.
26
26
  * @words None of its own. The control beside it carries the pending word; a standalone line takes a
27
27
  * `label` naming the work: *Connecting Telegram*.
28
28
  * @access With a label: `role="status"`, announced once after the second. `decorative` when the
@@ -18,7 +18,7 @@ const WAITING_LINE_DELAY_MS = 1000;
18
18
  * A page load is `Skeleton`. An Agent working is her orb and a sentence.
19
19
  * @behaviour Takes its 2 px from the start and stays empty until 1 s, so its arrival moves nothing.
20
20
  * No track colour; the segment is ink, never info blue, crossing at 32% width. Under reduced motion
21
- * it breathes.
21
+ * it breathes in opacity, across the whole track, instead of travelling.
22
22
  * @words None of its own. The control beside it carries the pending word; a standalone line takes a
23
23
  * `label` naming the work: *Connecting Telegram*.
24
24
  * @access With a label: `role="status"`, announced once after the second. `decorative` when the
@@ -1 +1 @@
1
- {"version":3,"file":"usage.generated.d.ts","sourceRoot":"","sources":["../../src/showcase/usage.generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.generated.d.ts","sourceRoot":"","sources":["../../src/showcase/usage.generated.ts"],"names":[],"mappings":"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"}