@refraction-ui/react 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/dist/{chunk-ZF3OHCGV.js → chunk-2Q6HHFAN.js} +1 -1
  2. package/dist/chunk-2Q6HHFAN.js.map +7 -0
  3. package/dist/{chunk-533MCMSU.js → chunk-3I3DYDHR.js} +2 -2
  4. package/dist/{chunk-H54FLNAF.js → chunk-63N4PZUJ.js} +2 -2
  5. package/dist/chunk-7P7EJ56S.js +7 -0
  6. package/dist/{chunk-Y2FNNAIL.js → chunk-EGVPAMQU.js} +2 -2
  7. package/dist/chunk-EGVPAMQU.js.map +1 -0
  8. package/dist/{chunk-WK2IIUFO.js → chunk-QDMLIDYN.js} +2 -2
  9. package/dist/{chunk-BOLFYVI6.js → chunk-QPCKJ2YR.js} +2 -2
  10. package/dist/{chunk-TOZBR4GL.js → chunk-RSWOLRIC.js} +4 -4
  11. package/dist/{chunk-TOZBR4GL.js.map → chunk-RSWOLRIC.js.map} +1 -1
  12. package/dist/{chunk-UNEM2TRI.js → chunk-SDAJVXD4.js} +2 -2
  13. package/dist/{chunk-VK3EQ34F.js → chunk-V24GDHUX.js} +2 -2
  14. package/dist/{chunk-XWP763SH.js → chunk-V727VZOE.js} +4 -2
  15. package/dist/{chunk-XWP763SH.js.map → chunk-V727VZOE.js.map} +2 -2
  16. package/dist/{chunk-AMK4VCBG.js → chunk-WYKPPK3W.js} +2 -2
  17. package/dist/{chunk-ONACRMG4.js → chunk-XMFNBOPO.js} +2 -2
  18. package/dist/{chunk-NKCWOPNX.js → chunk-Z5IHYNQD.js} +12 -8
  19. package/dist/chunk-Z5IHYNQD.js.map +7 -0
  20. package/dist/faro-engine-VIUXJAPH-FSARIABU.js +3 -0
  21. package/dist/{faro-engine-47HGRAQH-JKINJPMH.js.map → faro-engine-VIUXJAPH-FSARIABU.js.map} +1 -1
  22. package/dist/form.cjs.map +1 -1
  23. package/dist/form.js +1 -1
  24. package/dist/index.cjs +1305 -302
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +7 -0
  27. package/dist/index.d.ts +7 -0
  28. package/dist/index.js +7 -0
  29. package/dist/internal/action-list/index.d.ts +39 -0
  30. package/dist/internal/avatar/index.d.cts +4 -1
  31. package/dist/internal/avatar/index.d.ts +4 -1
  32. package/dist/internal/button/index.d.cts +2 -2
  33. package/dist/internal/button/index.d.ts +2 -2
  34. package/dist/internal/card/index.d.cts +5 -1
  35. package/dist/internal/card/index.d.ts +5 -1
  36. package/dist/internal/data-table/index.d.cts +48 -3
  37. package/dist/internal/data-table/index.d.ts +48 -3
  38. package/dist/internal/funnel-chart/index.d.ts +60 -0
  39. package/dist/internal/line-chart/index.d.ts +124 -0
  40. package/dist/internal/native-select/index.d.ts +21 -0
  41. package/dist/internal/page-header/index.d.ts +35 -0
  42. package/dist/internal/react-action-list/index.d.ts +28 -0
  43. package/dist/internal/react-avatar/index.d.cts +4 -2
  44. package/dist/internal/react-avatar/index.d.ts +4 -2
  45. package/dist/internal/react-card/index.d.cts +10 -4
  46. package/dist/internal/react-card/index.d.ts +10 -4
  47. package/dist/internal/react-command/index.d.cts +13 -2
  48. package/dist/internal/react-command/index.d.ts +13 -2
  49. package/dist/internal/react-data-table/index.d.cts +27 -9
  50. package/dist/internal/react-data-table/index.d.ts +27 -9
  51. package/dist/internal/react-dialog/index.d.cts +5 -0
  52. package/dist/internal/react-dialog/index.d.ts +5 -0
  53. package/dist/internal/react-dropdown-menu/index.d.cts +19 -1
  54. package/dist/internal/react-dropdown-menu/index.d.ts +19 -1
  55. package/dist/internal/react-funnel-chart/index.d.ts +28 -0
  56. package/dist/internal/react-line-chart/index.d.ts +38 -0
  57. package/dist/internal/react-native-select/index.d.ts +19 -0
  58. package/dist/internal/react-page-header/index.d.ts +23 -0
  59. package/dist/internal/react-select/index.d.cts +21 -3
  60. package/dist/internal/react-select/index.d.ts +21 -3
  61. package/dist/internal/react-stat-grid/index.d.ts +22 -11
  62. package/dist/internal/react-table/index.d.ts +39 -0
  63. package/dist/internal/select/index.d.cts +14 -1
  64. package/dist/internal/select/index.d.ts +14 -1
  65. package/dist/internal/shared/index.d.cts +6 -3
  66. package/dist/internal/shared/index.d.ts +6 -3
  67. package/dist/internal/stat-grid/index.d.ts +49 -7
  68. package/dist/internal/table/index.d.ts +46 -0
  69. package/dist/internal/tabs/index.d.cts +8 -1
  70. package/dist/internal/tabs/index.d.ts +8 -1
  71. package/dist/react-accordion.js +1 -1
  72. package/dist/react-action-list.js +74 -0
  73. package/dist/react-action-list.js.map +7 -0
  74. package/dist/react-ai.js +1 -1
  75. package/dist/react-analytics.js +16 -4
  76. package/dist/react-analytics.js.map +2 -2
  77. package/dist/react-animated-text.js +1 -1
  78. package/dist/react-app-shell.js +1 -1
  79. package/dist/react-audience-feature-card.js +1 -1
  80. package/dist/react-audio-room.js +1 -1
  81. package/dist/react-auth.js +1 -1
  82. package/dist/react-avatar-group.js +1 -1
  83. package/dist/react-avatar.js +13 -9
  84. package/dist/react-avatar.js.map +2 -2
  85. package/dist/react-badge.js +2 -2
  86. package/dist/react-badge.js.map +1 -1
  87. package/dist/react-bottom-nav.js +1 -1
  88. package/dist/react-brand-network-cell.js +1 -1
  89. package/dist/react-breadcrumbs.js +1 -1
  90. package/dist/react-browser-chrome-mock.js +1 -1
  91. package/dist/react-button.js +3 -3
  92. package/dist/react-calendar.js +1 -1
  93. package/dist/react-call-controls.js +1 -1
  94. package/dist/react-callout.js +8 -3
  95. package/dist/react-callout.js.map +2 -2
  96. package/dist/react-card-grid.js +1 -1
  97. package/dist/react-card.js +5 -5
  98. package/dist/react-card.js.map +2 -2
  99. package/dist/react-carousel.js +1 -1
  100. package/dist/react-charts.js +1 -1
  101. package/dist/react-checkbox.js +1 -1
  102. package/dist/react-checklist.js +1 -1
  103. package/dist/react-code-block.js +1 -1
  104. package/dist/react-code-editor.js +1 -1
  105. package/dist/react-collapsible.js +1 -1
  106. package/dist/react-combobox.js +1 -1
  107. package/dist/react-command-input.js +1 -1
  108. package/dist/react-command.js +115 -70
  109. package/dist/react-command.js.map +3 -3
  110. package/dist/react-composer.js +3 -3
  111. package/dist/react-content-protection.js +1 -1
  112. package/dist/react-conversation.js +5 -5
  113. package/dist/react-cookie-consent.js +1 -1
  114. package/dist/react-data-table.js +125 -114
  115. package/dist/react-data-table.js.map +2 -2
  116. package/dist/react-date-picker.js +1 -1
  117. package/dist/react-device-frame.js +1 -1
  118. package/dist/react-dialog.js +33 -9
  119. package/dist/react-dialog.js.map +2 -2
  120. package/dist/react-diff-viewer.js +1 -1
  121. package/dist/react-dropdown-menu.js +61 -8
  122. package/dist/react-dropdown-menu.js.map +3 -3
  123. package/dist/react-editor-status-bar.js +1 -1
  124. package/dist/react-editor-tabs.js +1 -1
  125. package/dist/react-emoji-picker.js +2 -2
  126. package/dist/react-empty-state.js +1 -1
  127. package/dist/react-feedback-dialog.js +2 -2
  128. package/dist/react-file-tree.js +1 -1
  129. package/dist/react-file-upload.js +1 -1
  130. package/dist/react-floating-reactions.js +1 -1
  131. package/dist/react-flow-editor.js +2 -2
  132. package/dist/react-footer.js +1 -1
  133. package/dist/react-funnel-chart.js +105 -0
  134. package/dist/react-funnel-chart.js.map +7 -0
  135. package/dist/react-graph-view.js +2 -2
  136. package/dist/react-infinite-canvas.js +2 -2
  137. package/dist/react-inline-editor.js +1 -1
  138. package/dist/react-input-group.js +1 -1
  139. package/dist/react-input.js +2 -2
  140. package/dist/react-install-prompt.js +1 -1
  141. package/dist/react-kanban-board.js +1 -1
  142. package/dist/react-keyboard-shortcut.js +2 -2
  143. package/dist/react-language-selector.js +1 -1
  144. package/dist/react-line-chart.js +280 -0
  145. package/dist/react-line-chart.js.map +7 -0
  146. package/dist/react-link-card.js +1 -1
  147. package/dist/react-live-captions.js +1 -1
  148. package/dist/react-live-cursors.js +1 -1
  149. package/dist/react-live-transcript.js +1 -1
  150. package/dist/react-location-selector.js +1 -1
  151. package/dist/react-logger.js +3 -3
  152. package/dist/react-markdown-renderer.js +2 -2
  153. package/dist/react-marquee-strip.js +1 -1
  154. package/dist/react-mascot.js +1 -1
  155. package/dist/react-mastery-bar.js +1 -1
  156. package/dist/react-mini-map.js +1 -1
  157. package/dist/react-mobile-nav.js +1 -1
  158. package/dist/react-native-select.js +52 -0
  159. package/dist/react-native-select.js.map +7 -0
  160. package/dist/react-navbar.js +1 -1
  161. package/dist/react-numbered-steps.js +1 -1
  162. package/dist/react-otp-input.js +1 -1
  163. package/dist/react-page-header.js +40 -0
  164. package/dist/react-page-header.js.map +7 -0
  165. package/dist/react-pagination.js +1 -1
  166. package/dist/react-password-input.js +2 -2
  167. package/dist/react-payment.js +1 -1
  168. package/dist/react-popover.js +1 -1
  169. package/dist/react-pre-call-lobby.js +1 -1
  170. package/dist/react-presence-indicator.js +1 -1
  171. package/dist/react-pricing-card.js +1 -1
  172. package/dist/react-progress-display.js +2 -2
  173. package/dist/react-progress-display.js.map +1 -1
  174. package/dist/react-radial-gauge.js +1 -1
  175. package/dist/react-radio.js +1 -1
  176. package/dist/react-rating-scale.js +1 -1
  177. package/dist/react-reaction-bar.js +1 -1
  178. package/dist/react-resizable-layout.js +1 -1
  179. package/dist/react-search-bar.js +1 -1
  180. package/dist/react-section-head.js +1 -1
  181. package/dist/react-segmented-control.js +1 -1
  182. package/dist/react-select.js +94 -20
  183. package/dist/react-select.js.map +3 -3
  184. package/dist/react-separator.js +1 -1
  185. package/dist/react-sheet.js +1 -1
  186. package/dist/react-sidebar.js +1 -1
  187. package/dist/react-skeleton.js +1 -1
  188. package/dist/react-skip-to-content.js +1 -1
  189. package/dist/react-slide-viewer.js +1 -1
  190. package/dist/react-slider.js +1 -1
  191. package/dist/react-slot-picker.js +1 -1
  192. package/dist/react-social-auth-button.js +3 -3
  193. package/dist/react-sortable-list.js +1 -1
  194. package/dist/react-stat-grid.js +91 -22
  195. package/dist/react-stat-grid.js.map +2 -2
  196. package/dist/react-status-indicator.js +1 -1
  197. package/dist/react-steps.js +1 -1
  198. package/dist/react-sticky-note.js +1 -1
  199. package/dist/react-switch.js +1 -1
  200. package/dist/react-table-of-contents.js +1 -1
  201. package/dist/react-table.js +148 -0
  202. package/dist/react-table.js.map +7 -0
  203. package/dist/react-tabs.js +84 -7
  204. package/dist/react-tabs.js.map +2 -2
  205. package/dist/react-terminal.js +1 -1
  206. package/dist/react-test-results.js +1 -1
  207. package/dist/react-textarea.js +3 -3
  208. package/dist/react-textarea.js.map +1 -1
  209. package/dist/react-thread-view.js +2 -2
  210. package/dist/react-timeline.js +1 -1
  211. package/dist/react-toast.js +1 -1
  212. package/dist/react-tooltip.js +1 -1
  213. package/dist/react-version-selector.js +1 -1
  214. package/dist/react-video-grid.js +2 -2
  215. package/dist/react-video-player.js +1 -1
  216. package/dist/react-video-tile.js +2 -2
  217. package/dist/react-voice-pill.js +1 -1
  218. package/dist/react-waveform.js +1 -1
  219. package/dist/react-wizard.js +1 -1
  220. package/dist/theme.js +1 -1
  221. package/package.json +7 -1
  222. package/dist/chunk-NKCWOPNX.js.map +0 -7
  223. package/dist/chunk-SDZ3LROZ.js +0 -7
  224. package/dist/chunk-Y2FNNAIL.js.map +0 -1
  225. package/dist/chunk-ZF3OHCGV.js.map +0 -7
  226. package/dist/faro-engine-47HGRAQH-JKINJPMH.js +0 -3
  227. /package/dist/{chunk-533MCMSU.js.map → chunk-3I3DYDHR.js.map} +0 -0
  228. /package/dist/{chunk-H54FLNAF.js.map → chunk-63N4PZUJ.js.map} +0 -0
  229. /package/dist/{chunk-SDZ3LROZ.js.map → chunk-7P7EJ56S.js.map} +0 -0
  230. /package/dist/{chunk-WK2IIUFO.js.map → chunk-QDMLIDYN.js.map} +0 -0
  231. /package/dist/{chunk-BOLFYVI6.js.map → chunk-QPCKJ2YR.js.map} +0 -0
  232. /package/dist/{chunk-UNEM2TRI.js.map → chunk-SDAJVXD4.js.map} +0 -0
  233. /package/dist/{chunk-VK3EQ34F.js.map → chunk-V24GDHUX.js.map} +0 -0
  234. /package/dist/{chunk-AMK4VCBG.js.map → chunk-WYKPPK3W.js.map} +0 -0
  235. /package/dist/{chunk-ONACRMG4.js.map → chunk-XMFNBOPO.js.map} +0 -0
package/dist/index.d.cts CHANGED
@@ -1,3 +1,4 @@
1
+ export { cn, cva } from './internal/shared/index.cjs';
1
2
  export * from './internal/react-accordion/index.cjs';
2
3
  export * from './internal/react-ai/index.cjs';
3
4
  export * from './internal/react-animated-text/index.cjs';
@@ -124,3 +125,9 @@ export * from './internal/react-audience-feature-card/index.cjs';
124
125
  export * from './internal/react-sortable-list/index.cjs';
125
126
  export * from './internal/react-kanban-board/index.cjs';
126
127
  export * from './internal/react-slot-picker/index.cjs';
128
+ export * from './internal/react-action-list/index.cjs';
129
+ export * from './internal/react-funnel-chart/index.cjs';
130
+ export * from './internal/react-line-chart/index.cjs';
131
+ export * from './internal/react-page-header/index.cjs';
132
+ export * from './internal/react-table/index.cjs';
133
+ export * from './internal/react-native-select/index.cjs';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { cn, cva } from './internal/shared/index.js';
1
2
  export * from './internal/react-accordion/index.js';
2
3
  export * from './internal/react-ai/index.js';
3
4
  export * from './internal/react-animated-text/index.js';
@@ -124,3 +125,9 @@ export * from './internal/react-audience-feature-card/index.js';
124
125
  export * from './internal/react-sortable-list/index.js';
125
126
  export * from './internal/react-kanban-board/index.js';
126
127
  export * from './internal/react-slot-picker/index.js';
128
+ export * from './internal/react-action-list/index.js';
129
+ export * from './internal/react-funnel-chart/index.js';
130
+ export * from './internal/react-line-chart/index.js';
131
+ export * from './internal/react-page-header/index.js';
132
+ export * from './internal/react-table/index.js';
133
+ export * from './internal/react-native-select/index.js';
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ export { cn, cva } from '@refraction-ui/shared';
2
3
  export * from './react-accordion.js';
3
4
  export * from './react-ai.js';
4
5
  export * from './react-animated-text.js';
@@ -125,3 +126,9 @@ export * from './react-audience-feature-card.js';
125
126
  export * from './react-sortable-list.js';
126
127
  export * from './react-kanban-board.js';
127
128
  export * from './react-slot-picker.js';
129
+ export * from './react-action-list.js';
130
+ export * from './react-funnel-chart.js';
131
+ export * from './react-line-chart.js';
132
+ export * from './react-page-header.js';
133
+ export * from './react-table.js';
134
+ export * from './react-native-select.js';
@@ -0,0 +1,39 @@
1
+ /** Row padding. */
2
+ type ActionListDensity = 'default' | 'compact';
3
+ interface ActionListItemProps {
4
+ disabled?: boolean;
5
+ density?: ActionListDensity;
6
+ }
7
+ interface ActionListItemAPI {
8
+ /** ARIA attributes for the row button. */
9
+ ariaProps: Record<string, string | number | boolean>;
10
+ /** Data attributes for styling hooks. */
11
+ dataAttributes: Record<string, string>;
12
+ }
13
+ /**
14
+ * Build the framework-agnostic props for one ActionList row. Each row is ONE
15
+ * action (open, select, go to) rendered as a native button, so it is reachable
16
+ * by Tab and activated by Enter / Space — unlike a clickable table row.
17
+ */
18
+ declare function createActionListItem(props?: ActionListItemProps): ActionListItemAPI;
19
+
20
+ /** The list: rows separated by hairlines, no bullets. */
21
+ declare const actionListClass = "m-0 flex list-none flex-col divide-y divide-border-subtle p-0";
22
+ /** A row button: full width, whole row is the hit target. */
23
+ declare const actionListItemVariants: (props?: ({
24
+ density?: "default" | "compact" | undefined;
25
+ } & {
26
+ className?: string;
27
+ }) | undefined) => string;
28
+ /** Leading text column (title, description, meta). */
29
+ declare const actionListItemBodyClass = "flex min-w-0 flex-1 flex-col gap-0.5";
30
+ /** Primary line. */
31
+ declare const actionListItemTitleClass = "break-words font-semibold text-foreground";
32
+ /** Supporting line under the title. */
33
+ declare const actionListItemDescriptionClass = "break-words text-xs text-muted-foreground";
34
+ /** Tertiary line (owner, tags, ids). */
35
+ declare const actionListItemMetaClass = "break-words text-xs text-muted-foreground";
36
+ /** Trailing column (dates, sizes, counts). */
37
+ declare const actionListItemTrailingClass = "flex flex-none items-center gap-4 text-xs tabular-nums text-muted-foreground";
38
+
39
+ export { type ActionListDensity, type ActionListItemAPI, type ActionListItemProps, actionListClass, actionListItemBodyClass, actionListItemDescriptionClass, actionListItemMetaClass, actionListItemTitleClass, actionListItemTrailingClass, actionListItemVariants, createActionListItem };
@@ -1,6 +1,8 @@
1
1
  import { AccessibilityProps, TokenContract } from '../shared/index.cjs';
2
2
 
3
3
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ /** Outline of the avatar. */
5
+ type AvatarShape = 'circle' | 'square';
4
6
  type AvatarLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';
5
7
  interface AvatarProps {
6
8
  src?: string;
@@ -35,6 +37,7 @@ declare function createAvatar(props?: AvatarProps): AvatarAPI;
35
37
 
36
38
  declare const avatarTokens: TokenContract;
37
39
  declare const avatarVariants: (props?: ({
40
+ shape?: "circle" | "square" | undefined;
38
41
  size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
39
42
  } & {
40
43
  className?: string;
@@ -50,4 +53,4 @@ declare const avatarFallbackVariants: (props?: ({
50
53
  className?: string;
51
54
  }) | undefined) => string;
52
55
 
53
- export { type AvatarAPI, type AvatarLoadingStatus, type AvatarProps, type AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, createAvatar, getInitials };
56
+ export { type AvatarAPI, type AvatarLoadingStatus, type AvatarProps, type AvatarShape, type AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, createAvatar, getInitials };
@@ -1,6 +1,8 @@
1
1
  import { AccessibilityProps, TokenContract } from '../shared/index.js';
2
2
 
3
3
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ /** Outline of the avatar. */
5
+ type AvatarShape = 'circle' | 'square';
4
6
  type AvatarLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';
5
7
  interface AvatarProps {
6
8
  src?: string;
@@ -35,6 +37,7 @@ declare function createAvatar(props?: AvatarProps): AvatarAPI;
35
37
 
36
38
  declare const avatarTokens: TokenContract;
37
39
  declare const avatarVariants: (props?: ({
40
+ shape?: "circle" | "square" | undefined;
38
41
  size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
39
42
  } & {
40
43
  className?: string;
@@ -50,4 +53,4 @@ declare const avatarFallbackVariants: (props?: ({
50
53
  className?: string;
51
54
  }) | undefined) => string;
52
55
 
53
- export { type AvatarAPI, type AvatarLoadingStatus, type AvatarProps, type AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, createAvatar, getInitials };
56
+ export { type AvatarAPI, type AvatarLoadingStatus, type AvatarProps, type AvatarShape, type AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, createAvatar, getInitials };
@@ -10,7 +10,7 @@ type ButtonVariant = 'default' | 'primary' | 'destructive' | 'outline' | 'second
10
10
  declare const BUTTON_VARIANT_ALIASES: Partial<Record<ButtonVariant, ButtonVariant>>;
11
11
  /** Resolve an alias to its canonical variant. Pass-through for unknown/undefined. */
12
12
  declare function resolveButtonVariant(variant: ButtonVariant | undefined): ButtonVariant | undefined;
13
- type ButtonSize = 'xs' | 'sm' | 'default' | 'lg' | 'icon';
13
+ type ButtonSize = 'xs' | 'sm' | 'default' | 'lg' | 'icon' | 'icon-sm' | 'icon-xs';
14
14
  interface ButtonProps {
15
15
  variant?: ButtonVariant;
16
16
  size?: ButtonSize;
@@ -35,7 +35,7 @@ declare function getButtonType(props: ButtonProps): string;
35
35
  declare const buttonTokens: TokenContract;
36
36
  declare const buttonVariants: (props?: ({
37
37
  variant?: "default" | "primary" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "soft" | "tertiary" | undefined;
38
- size?: "default" | "xs" | "sm" | "lg" | "icon" | undefined;
38
+ size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-sm" | "icon-xs" | undefined;
39
39
  } & {
40
40
  className?: string;
41
41
  }) | undefined) => string;
@@ -10,7 +10,7 @@ type ButtonVariant = 'default' | 'primary' | 'destructive' | 'outline' | 'second
10
10
  declare const BUTTON_VARIANT_ALIASES: Partial<Record<ButtonVariant, ButtonVariant>>;
11
11
  /** Resolve an alias to its canonical variant. Pass-through for unknown/undefined. */
12
12
  declare function resolveButtonVariant(variant: ButtonVariant | undefined): ButtonVariant | undefined;
13
- type ButtonSize = 'xs' | 'sm' | 'default' | 'lg' | 'icon';
13
+ type ButtonSize = 'xs' | 'sm' | 'default' | 'lg' | 'icon' | 'icon-sm' | 'icon-xs';
14
14
  interface ButtonProps {
15
15
  variant?: ButtonVariant;
16
16
  size?: ButtonSize;
@@ -35,7 +35,7 @@ declare function getButtonType(props: ButtonProps): string;
35
35
  declare const buttonTokens: TokenContract;
36
36
  declare const buttonVariants: (props?: ({
37
37
  variant?: "default" | "primary" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "soft" | "tertiary" | undefined;
38
- size?: "default" | "xs" | "sm" | "lg" | "icon" | undefined;
38
+ size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-sm" | "icon-xs" | undefined;
39
39
  } & {
40
40
  className?: string;
41
41
  }) | undefined) => string;
@@ -7,6 +7,10 @@ import { AccessibilityProps, TokenContract } from '../shared/index.cjs';
7
7
  * - `tertiary` — a tinted second-brand-accent card.
8
8
  */
9
9
  type CardVariant = 'default' | 'subtle' | 'tertiary';
10
+ /** Built-in inner padding of the Card container. */
11
+ type CardPadding = 'none' | 'default' | 'compact';
12
+ /** Heading element for CardTitle. */
13
+ type CardTitleLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
10
14
  interface CardProps {
11
15
  /** Optional accessible role override */
12
16
  role?: string;
@@ -67,4 +71,4 @@ declare const cardFooterVariants: (props?: ({
67
71
  className?: string;
68
72
  }) | undefined) => string;
69
73
 
70
- export { type CardAPI, type CardProps, type CardVariant, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, createCard, createCardContent, createCardDescription, createCardFooter, createCardHeader, createCardTitle };
74
+ export { type CardAPI, type CardPadding, type CardProps, type CardTitleLevel, type CardVariant, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, createCard, createCardContent, createCardDescription, createCardFooter, createCardHeader, createCardTitle };
@@ -7,6 +7,10 @@ import { AccessibilityProps, TokenContract } from '../shared/index.js';
7
7
  * - `tertiary` — a tinted second-brand-accent card.
8
8
  */
9
9
  type CardVariant = 'default' | 'subtle' | 'tertiary';
10
+ /** Built-in inner padding of the Card container. */
11
+ type CardPadding = 'none' | 'default' | 'compact';
12
+ /** Heading element for CardTitle. */
13
+ type CardTitleLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
10
14
  interface CardProps {
11
15
  /** Optional accessible role override */
12
16
  role?: string;
@@ -67,4 +71,4 @@ declare const cardFooterVariants: (props?: ({
67
71
  className?: string;
68
72
  }) | undefined) => string;
69
73
 
70
- export { type CardAPI, type CardProps, type CardVariant, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, createCard, createCardContent, createCardDescription, createCardFooter, createCardHeader, createCardTitle };
74
+ export { type CardAPI, type CardPadding, type CardProps, type CardTitleLevel, type CardVariant, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, createCard, createCardContent, createCardDescription, createCardFooter, createCardHeader, createCardTitle };
@@ -5,14 +5,47 @@ interface ColumnDef<T = Record<string, unknown>> {
5
5
  id: string;
6
6
  /** Column header text */
7
7
  header: string;
8
- /** Accessor function to get cell value from row */
9
- accessor: (row: T) => unknown;
8
+ /**
9
+ * Value of this column for a row. Drives sorting, filtering and — when no
10
+ * `cell` renderer is given — the rendered text. Optional for display-only
11
+ * columns that set `cell`.
12
+ */
13
+ accessor?: (row: T) => unknown;
14
+ /**
15
+ * Custom cell renderer. Framework adapters narrow the return type (React:
16
+ * `ReactNode`). When omitted the cell renders `String(accessor(row))`.
17
+ */
18
+ cell?: (row: T, index: number) => unknown;
19
+ /** Horizontal alignment of header and cells. Defaults to `start`. */
20
+ align?: DataTableAlign;
21
+ /** Numeric column: tabular figures, no wrapping, aligned to `end` unless `align` says otherwise. */
22
+ numeric?: boolean;
23
+ /** Extra class for this column's data cells. */
24
+ className?: string;
25
+ /** Extra class for this column's header cell. */
26
+ headerClassName?: string;
10
27
  /** Whether this column is sortable */
11
28
  sortable?: boolean;
12
29
  /** Whether this column is filterable */
13
30
  filterable?: boolean;
14
31
  }
15
32
  type SortDirection = 'asc' | 'desc';
33
+ /** Horizontal alignment of a column (logical, RTL-safe). */
34
+ type DataTableAlign = 'start' | 'center' | 'end';
35
+ /** A column's effective alignment: explicit `align`, else `end` for numeric columns. */
36
+ declare function resolveColumnAlign(col: {
37
+ align?: DataTableAlign;
38
+ numeric?: boolean;
39
+ }): DataTableAlign;
40
+ /** The raw value of a column for a row (`undefined` without an accessor). */
41
+ declare function getColumnValue<T>(col: {
42
+ accessor?: (row: T) => unknown;
43
+ }, row: T): unknown;
44
+ /**
45
+ * Stable React/DOM key for a row: `getRowKey` when given, else the row's
46
+ * index. Prefer a `getRowKey` — index keys break row state on sort/filter.
47
+ */
48
+ declare function resolveRowKey<T>(row: T, index: number, getRowKey?: (row: T, index: number) => string | number): string | number;
16
49
  interface DataTableProps<T = Record<string, unknown>> {
17
50
  /** Column definitions */
18
51
  columns: ColumnDef<T>[];
@@ -69,5 +102,17 @@ declare const rowVariants: (props?: ({
69
102
  } & {
70
103
  className?: string;
71
104
  }) | undefined) => string;
105
+ /** Logical text alignment per column alignment. */
106
+ declare const dataTableAlignClass: {
107
+ readonly start: "text-start";
108
+ readonly center: "text-center";
109
+ readonly end: "text-end";
110
+ };
111
+ /** Numeric cells: tabular figures, no wrapping. */
112
+ declare const dataTableNumericClass = "tabular-nums whitespace-nowrap";
113
+ /** Button inside a sortable header: the keyboard-reachable sort control. */
114
+ declare const dataTableSortButtonClass = "inline-flex items-center gap-1 rounded-sm font-inherit text-inherit focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
115
+ /** Rows with a row action: pointer + keyboard focus ring. */
116
+ declare const dataTableActionRowClass = "cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring";
72
117
 
73
- export { type ColumnDef, type DataTableAPI, type DataTableProps, type DataTableState, type SortDirection, cellVariants, createDataTable, headerVariants, rowVariants, tableVariants };
118
+ export { type ColumnDef, type DataTableAPI, type DataTableAlign, type DataTableProps, type DataTableState, type SortDirection, cellVariants, createDataTable, dataTableActionRowClass, dataTableAlignClass, dataTableNumericClass, dataTableSortButtonClass, getColumnValue, headerVariants, resolveColumnAlign, resolveRowKey, rowVariants, tableVariants };
@@ -5,14 +5,47 @@ interface ColumnDef<T = Record<string, unknown>> {
5
5
  id: string;
6
6
  /** Column header text */
7
7
  header: string;
8
- /** Accessor function to get cell value from row */
9
- accessor: (row: T) => unknown;
8
+ /**
9
+ * Value of this column for a row. Drives sorting, filtering and — when no
10
+ * `cell` renderer is given — the rendered text. Optional for display-only
11
+ * columns that set `cell`.
12
+ */
13
+ accessor?: (row: T) => unknown;
14
+ /**
15
+ * Custom cell renderer. Framework adapters narrow the return type (React:
16
+ * `ReactNode`). When omitted the cell renders `String(accessor(row))`.
17
+ */
18
+ cell?: (row: T, index: number) => unknown;
19
+ /** Horizontal alignment of header and cells. Defaults to `start`. */
20
+ align?: DataTableAlign;
21
+ /** Numeric column: tabular figures, no wrapping, aligned to `end` unless `align` says otherwise. */
22
+ numeric?: boolean;
23
+ /** Extra class for this column's data cells. */
24
+ className?: string;
25
+ /** Extra class for this column's header cell. */
26
+ headerClassName?: string;
10
27
  /** Whether this column is sortable */
11
28
  sortable?: boolean;
12
29
  /** Whether this column is filterable */
13
30
  filterable?: boolean;
14
31
  }
15
32
  type SortDirection = 'asc' | 'desc';
33
+ /** Horizontal alignment of a column (logical, RTL-safe). */
34
+ type DataTableAlign = 'start' | 'center' | 'end';
35
+ /** A column's effective alignment: explicit `align`, else `end` for numeric columns. */
36
+ declare function resolveColumnAlign(col: {
37
+ align?: DataTableAlign;
38
+ numeric?: boolean;
39
+ }): DataTableAlign;
40
+ /** The raw value of a column for a row (`undefined` without an accessor). */
41
+ declare function getColumnValue<T>(col: {
42
+ accessor?: (row: T) => unknown;
43
+ }, row: T): unknown;
44
+ /**
45
+ * Stable React/DOM key for a row: `getRowKey` when given, else the row's
46
+ * index. Prefer a `getRowKey` — index keys break row state on sort/filter.
47
+ */
48
+ declare function resolveRowKey<T>(row: T, index: number, getRowKey?: (row: T, index: number) => string | number): string | number;
16
49
  interface DataTableProps<T = Record<string, unknown>> {
17
50
  /** Column definitions */
18
51
  columns: ColumnDef<T>[];
@@ -69,5 +102,17 @@ declare const rowVariants: (props?: ({
69
102
  } & {
70
103
  className?: string;
71
104
  }) | undefined) => string;
105
+ /** Logical text alignment per column alignment. */
106
+ declare const dataTableAlignClass: {
107
+ readonly start: "text-start";
108
+ readonly center: "text-center";
109
+ readonly end: "text-end";
110
+ };
111
+ /** Numeric cells: tabular figures, no wrapping. */
112
+ declare const dataTableNumericClass = "tabular-nums whitespace-nowrap";
113
+ /** Button inside a sortable header: the keyboard-reachable sort control. */
114
+ declare const dataTableSortButtonClass = "inline-flex items-center gap-1 rounded-sm font-inherit text-inherit focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
115
+ /** Rows with a row action: pointer + keyboard focus ring. */
116
+ declare const dataTableActionRowClass = "cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring";
72
117
 
73
- export { type ColumnDef, type DataTableAPI, type DataTableProps, type DataTableState, type SortDirection, cellVariants, createDataTable, headerVariants, rowVariants, tableVariants };
118
+ export { type ColumnDef, type DataTableAPI, type DataTableAlign, type DataTableProps, type DataTableState, type SortDirection, cellVariants, createDataTable, dataTableActionRowClass, dataTableAlignClass, dataTableNumericClass, dataTableSortButtonClass, getColumnValue, headerVariants, resolveColumnAlign, resolveRowKey, rowVariants, tableVariants };
@@ -0,0 +1,60 @@
1
+ interface FunnelChartStep {
2
+ /** Stable key. */
3
+ id: string;
4
+ /** Step name. */
5
+ label: string;
6
+ /** Secondary line under the label. */
7
+ description?: string;
8
+ /** Count at this step. */
9
+ value: number;
10
+ }
11
+ interface FunnelChartTransition {
12
+ /** Percent (0–100) of this step that reached the next one. */
13
+ conversion: number;
14
+ /** Absolute count lost between this step and the next. */
15
+ dropped: number;
16
+ }
17
+ interface FunnelChartRow {
18
+ step: FunnelChartStep;
19
+ /** Percent (0–100) of the first step's value. */
20
+ shareOfTop: number;
21
+ /** Width the bar draws at, in percent — never below `minBarPercent`. */
22
+ barPercent: number;
23
+ /** Transition to the following step; absent on the last step. */
24
+ next?: FunnelChartTransition;
25
+ }
26
+ /** Smallest bar width in percent, so a tiny step stays visible. */
27
+ declare const DEFAULT_FUNNEL_MIN_BAR_PERCENT = 6;
28
+ /**
29
+ * Derive every row of a stepped conversion funnel: each step's share of the top
30
+ * step, the bar width it draws at, and between two steps the continue-rate and
31
+ * how many were lost. Pure and deterministic.
32
+ */
33
+ declare function computeFunnel(steps: FunnelChartStep[], minBarPercent?: number): FunnelChartRow[];
34
+ /** Default copy + number formatting; every one is overridable by a prop. */
35
+ declare const funnelChartDefaults: {
36
+ formatValue: (value: number) => string;
37
+ formatPercent: (percent: number) => string;
38
+ shareLabel: (share: string) => string;
39
+ conversionLabel: (percent: string) => string;
40
+ droppedLabel: (count: string) => string;
41
+ };
42
+
43
+ /** Token-class styles for FunnelChart; no colour literals. */
44
+ declare const funnelChartClasses: {
45
+ readonly root: "m-0 grid list-none p-0";
46
+ readonly bar: "relative flex items-center gap-3 overflow-hidden rounded-lg border border-border bg-background px-3.5 py-3";
47
+ readonly fill: "absolute inset-y-0 left-0 border-r-2 border-primary bg-accent";
48
+ readonly chevron: "relative shrink-0 text-primary";
49
+ readonly text: "relative grid min-w-0 flex-1";
50
+ readonly label: "text-[13px] font-bold text-foreground";
51
+ readonly description: "text-[11px] text-muted-foreground";
52
+ readonly figure: "relative grid text-right";
53
+ readonly value: "text-[15px] font-bold tabular-nums text-foreground";
54
+ readonly share: "text-[10.5px] text-muted-foreground";
55
+ readonly transition: "flex items-center gap-2 py-1.5 pl-[18px] text-[11px] text-muted-foreground";
56
+ readonly conversion: "font-semibold text-success";
57
+ readonly dropped: "font-semibold text-destructive";
58
+ };
59
+
60
+ export { DEFAULT_FUNNEL_MIN_BAR_PERCENT, type FunnelChartRow, type FunnelChartStep, type FunnelChartTransition, computeFunnel, funnelChartClasses, funnelChartDefaults };
@@ -0,0 +1,124 @@
1
+ interface LineChartSeries {
2
+ /** Stable key for the series. */
3
+ id: string;
4
+ /** Legend / tooltip name. */
5
+ name: string;
6
+ /**
7
+ * Any CSS colour (a token `hsl(var(--…))` or a data colour). Defaults to the
8
+ * theme's chart palette (`--chart-1` … `--chart-5`) by series position.
9
+ */
10
+ color?: string;
11
+ /** One value per label, in label order. */
12
+ data: number[];
13
+ }
14
+ interface LineChartPadding {
15
+ top: number;
16
+ right: number;
17
+ bottom: number;
18
+ left: number;
19
+ }
20
+ interface LineChartOptions {
21
+ series: LineChartSeries[];
22
+ labels: string[];
23
+ /** viewBox width — the SVG scales to its container's width. */
24
+ width: number;
25
+ /** viewBox height. */
26
+ height: number;
27
+ padding?: Partial<LineChartPadding>;
28
+ /** Target number of gridline intervals on the y-axis (the nice scale may use fewer). */
29
+ tickCount?: number;
30
+ /** Headroom multiplier above the largest value. */
31
+ headroom?: number;
32
+ /**
33
+ * Show every n-th x label (the last label is always shown). Defaults to
34
+ * thinning so labels are at least ~48 viewBox units apart.
35
+ */
36
+ labelEvery?: number;
37
+ }
38
+ interface LineChartTick {
39
+ value: number;
40
+ y: number;
41
+ }
42
+ interface LineChartXLabel {
43
+ index: number;
44
+ label: string;
45
+ x: number;
46
+ }
47
+ interface LineChartPath {
48
+ id: string;
49
+ /** Resolved stroke colour. */
50
+ color: string;
51
+ /** The stroke path. */
52
+ line: string;
53
+ /** The line closed down to the zero baseline, for an area fill. */
54
+ area: string;
55
+ }
56
+ interface LineChartColumn {
57
+ index: number;
58
+ x: number;
59
+ width: number;
60
+ }
61
+ interface LineChartGeometry {
62
+ width: number;
63
+ height: number;
64
+ padding: LineChartPadding;
65
+ /** Top of the shared y-scale. */
66
+ max: number;
67
+ ticks: LineChartTick[];
68
+ xLabels: LineChartXLabel[];
69
+ paths: LineChartPath[];
70
+ /** One hover/focus column per category. */
71
+ columns: LineChartColumn[];
72
+ x: (index: number) => number;
73
+ y: (value: number) => number;
74
+ /** Top and bottom of the plot area, for a crosshair. */
75
+ plotTop: number;
76
+ plotBottom: number;
77
+ }
78
+ declare const DEFAULT_LINE_CHART_PADDING: LineChartPadding;
79
+ declare const DEFAULT_LINE_CHART_WIDTH = 760;
80
+ declare const DEFAULT_LINE_CHART_HEIGHT = 230;
81
+ /** The theme chart colour for the series at `index` (wraps around). */
82
+ declare function lineChartColor(index: number): string;
83
+ /**
84
+ * A "nice" y-scale: a 1-2-5 × 10^k step so there are at most `tickCount`
85
+ * intervals up to `rawMax`, and the max rounded up to a whole step. Tick
86
+ * values are therefore round numbers by construction (0, 2000, 4000, …) —
87
+ * never 5999.9999 — so any tick formatter prints clean labels.
88
+ */
89
+ declare function niceScale(rawMax: number, tickCount: number): {
90
+ max: number;
91
+ step: number;
92
+ ticks: number[];
93
+ };
94
+ /**
95
+ * Pure geometry for a responsive multi-series line chart. Every series shares
96
+ * ONE y-scale (zero baseline to the largest value plus headroom), so series are
97
+ * comparable. Coordinates are in viewBox units; the SVG scales to its container.
98
+ */
99
+ declare function computeLineChart(options: LineChartOptions): LineChartGeometry;
100
+ /** Where a tooltip for `index` sits horizontally, as a percent of the chart width. */
101
+ declare function tooltipLeftPercent(geometry: LineChartGeometry, index: number): number;
102
+ /**
103
+ * The category index a keyboard key moves to from `current` (null = nothing
104
+ * active yet). Returns `current` unchanged for keys the chart doesn't handle.
105
+ */
106
+ declare function nextLineChartIndex(current: number | null, key: string, count: number): number | null;
107
+
108
+ /** Token-class styles for LineChart; no colour literals. */
109
+ declare const lineChartClasses: {
110
+ readonly root: "relative";
111
+ readonly svg: "block w-full rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
112
+ readonly gridline: "stroke-border";
113
+ readonly axis: "fill-muted-foreground text-[9px]";
114
+ readonly crosshair: "stroke-border";
115
+ readonly marker: "stroke-card";
116
+ readonly tooltip: "pointer-events-none absolute z-10 -translate-x-1/2 whitespace-nowrap rounded-md bg-tertiary px-2.5 py-2 text-[11px] text-tertiary-foreground shadow-lg";
117
+ readonly tooltipLabel: "mb-1 opacity-60";
118
+ readonly tooltipRow: "flex justify-between gap-2";
119
+ readonly legend: "mt-2.5 flex flex-wrap gap-3.5";
120
+ readonly legendItem: "inline-flex items-center gap-1.5 text-[11px] text-muted-foreground";
121
+ readonly legendSwatch: "h-[3px] w-2.5 rounded-sm";
122
+ };
123
+
124
+ export { DEFAULT_LINE_CHART_HEIGHT, DEFAULT_LINE_CHART_PADDING, DEFAULT_LINE_CHART_WIDTH, type LineChartColumn, type LineChartGeometry, type LineChartOptions, type LineChartPadding, type LineChartPath, type LineChartSeries, type LineChartTick, type LineChartXLabel, computeLineChart, lineChartClasses, lineChartColor, nextLineChartIndex, niceScale, tooltipLeftPercent };
@@ -0,0 +1,21 @@
1
+ /** Visual size of a NativeSelect. */
2
+ type NativeSelectSize = 'sm' | 'default' | 'lg';
3
+ /** The chevron's path (a down chevron), so adapters ship no icon dependency. */
4
+ declare const nativeSelectChevronPath = "m6 9 6 6 6-6";
5
+
6
+ /** Wrapper that positions the chevron over the select. */
7
+ declare const nativeSelectWrapperClass = "relative inline-flex min-w-0 items-center";
8
+ /**
9
+ * The `<select>`: the platform's own listbox (mobile pickers, type-to-select,
10
+ * form submission, `change` events) with the input look. Size-owned utilities
11
+ * live only in the size variants so `size` always wins.
12
+ */
13
+ declare const nativeSelectVariants: (props?: ({
14
+ size?: "sm" | "default" | "lg" | undefined;
15
+ } & {
16
+ className?: string;
17
+ }) | undefined) => string;
18
+ /** The chevron: decorative, and never eats the click meant for the select. */
19
+ declare const nativeSelectIconClass = "pointer-events-none absolute right-2.5 h-4 w-4 shrink-0 text-muted-foreground";
20
+
21
+ export { type NativeSelectSize, nativeSelectChevronPath, nativeSelectIconClass, nativeSelectVariants, nativeSelectWrapperClass };
@@ -0,0 +1,35 @@
1
+ /** Heading element used for the page title. */
2
+ type PageHeaderTitleLevel = 'h1' | 'h2' | 'h3';
3
+ interface PageHeaderProps {
4
+ /** Whether an actions slot will be rendered. */
5
+ hasActions?: boolean;
6
+ }
7
+ interface PageHeaderAPI {
8
+ /** Data attributes for styling hooks. */
9
+ dataAttributes: Record<string, string>;
10
+ }
11
+ /**
12
+ * Build the framework-agnostic data attributes for a PageHeader — the heading
13
+ * cluster at the top of an application page (kicker, title, description and a
14
+ * trailing actions row). Unlike SectionHead (a centred marketing heading) it is
15
+ * sized for dense app chrome and never centres.
16
+ */
17
+ declare function createPageHeader(props?: PageHeaderProps): PageHeaderAPI;
18
+
19
+ /**
20
+ * Root: text cluster on the leading edge, actions on the trailing edge; wraps
21
+ * on narrow screens. Carries no outer margin — the page layout spaces it.
22
+ */
23
+ declare const pageHeaderClass = "flex flex-wrap items-start justify-between gap-4";
24
+ /** Text cluster (kicker, title, description). */
25
+ declare const pageHeaderTextClass = "flex min-w-0 flex-1 flex-col gap-1";
26
+ /** Small uppercase eyebrow above the title. */
27
+ declare const pageHeaderKickerClass = "break-words text-[11px] uppercase tracking-wider text-muted-foreground";
28
+ /** Title — app-sized, not a marketing display size. */
29
+ declare const pageHeaderTitleClass = "break-words text-xl font-semibold text-foreground";
30
+ /** Supporting copy under the title, capped at a readable measure. */
31
+ declare const pageHeaderDescriptionClass = "max-w-prose text-sm text-muted-foreground";
32
+ /** Trailing actions row. */
33
+ declare const pageHeaderActionsClass = "flex flex-none flex-wrap items-center gap-2";
34
+
35
+ export { type PageHeaderAPI, type PageHeaderProps, type PageHeaderTitleLevel, createPageHeader, pageHeaderActionsClass, pageHeaderClass, pageHeaderDescriptionClass, pageHeaderKickerClass, pageHeaderTextClass, pageHeaderTitleClass };
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { ActionListDensity } from '../action-list/index.js';
3
+ export { ActionListDensity } from '../action-list/index.js';
4
+
5
+ interface ActionListProps extends React.HTMLAttributes<HTMLUListElement> {
6
+ }
7
+ /** ActionList — a vertical list whose rows are each one action. Renders a `<ul>`. */
8
+ declare const ActionList: React.ForwardRefExoticComponent<ActionListProps & React.RefAttributes<HTMLUListElement>>;
9
+ interface ActionListItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'title' | 'type'> {
10
+ /** Primary line (required). */
11
+ title: React.ReactNode;
12
+ /** Optional supporting line under the title. */
13
+ description?: React.ReactNode;
14
+ /** Optional tertiary line (owner, tags, ids). */
15
+ meta?: React.ReactNode;
16
+ /** Optional trailing column (dates, sizes, counts). */
17
+ trailing?: React.ReactNode;
18
+ /** Row padding. Defaults to `default`. */
19
+ density?: ActionListDensity;
20
+ }
21
+ /**
22
+ * ActionListItem — one row: an `<li>` holding a full-width native button with
23
+ * a title, optional supporting lines and a trailing column. The ref and all
24
+ * button props go to the button.
25
+ */
26
+ declare const ActionListItem: React.ForwardRefExoticComponent<ActionListItemProps & React.RefAttributes<HTMLButtonElement>>;
27
+
28
+ export { ActionList, ActionListItem, type ActionListItemProps, type ActionListProps };
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
- import { AvatarSize } from '../avatar/index.cjs';
3
- export { AvatarAPI, AvatarLoadingStatus, AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, getInitials } from '../avatar/index.cjs';
2
+ import { AvatarSize, AvatarShape } from '../avatar/index.cjs';
3
+ export { AvatarAPI, AvatarLoadingStatus, AvatarShape, AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, getInitials } from '../avatar/index.cjs';
4
4
 
5
5
  interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {
6
6
  size?: AvatarSize;
7
+ /** `circle` (default) or `square` (rounded corners) — e.g. for teams and organisations. */
8
+ shape?: AvatarShape;
7
9
  }
8
10
  /**
9
11
  * Avatar -- circular image with fallback support.
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
- import { AvatarSize } from '../avatar/index.js';
3
- export { AvatarAPI, AvatarLoadingStatus, AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, getInitials } from '../avatar/index.js';
2
+ import { AvatarSize, AvatarShape } from '../avatar/index.js';
3
+ export { AvatarAPI, AvatarLoadingStatus, AvatarShape, AvatarSize, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, getInitials } from '../avatar/index.js';
4
4
 
5
5
  interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {
6
6
  size?: AvatarSize;
7
+ /** `circle` (default) or `square` (rounded corners) — e.g. for teams and organisations. */
8
+ shape?: AvatarShape;
7
9
  }
8
10
  /**
9
11
  * Avatar -- circular image with fallback support.