@rfdtech/components 1.21.0 → 2.0.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 (263) hide show
  1. package/README.md +244 -74
  2. package/dist/adapters/context-adapter.d.ts +18 -0
  3. package/dist/adapters/context-adapter.d.ts.map +1 -0
  4. package/dist/adapters/next-adapter.d.ts +23 -0
  5. package/dist/adapters/next-adapter.d.ts.map +1 -0
  6. package/dist/adapters/react-router-adapter.d.ts +9 -0
  7. package/dist/adapters/react-router-adapter.d.ts.map +1 -0
  8. package/dist/adapters/registry.d.ts +19 -0
  9. package/dist/adapters/registry.d.ts.map +1 -0
  10. package/dist/components/app-header/AppHeader.d.ts +3 -2
  11. package/dist/components/app-header/AppHeader.d.ts.map +1 -1
  12. package/dist/components/app-header/AppHeaderNotificationItem.d.ts +3 -0
  13. package/dist/components/app-header/AppHeaderNotificationItem.d.ts.map +1 -0
  14. package/dist/components/app-header/AppHeaderProfile.d.ts +5 -0
  15. package/dist/components/app-header/AppHeaderProfile.d.ts.map +1 -1
  16. package/dist/components/app-header/index.d.ts +4 -2
  17. package/dist/components/app-header/index.d.ts.map +1 -1
  18. package/dist/components/app-layout/AppLayout.d.ts +6 -0
  19. package/dist/components/app-layout/AppLayout.d.ts.map +1 -1
  20. package/dist/components/app-layout/AppLayoutInner.d.ts +1 -0
  21. package/dist/components/app-layout/AppLayoutInner.d.ts.map +1 -1
  22. package/dist/components/app-switcher/AppIconTile.d.ts +10 -0
  23. package/dist/components/app-switcher/AppIconTile.d.ts.map +1 -0
  24. package/dist/components/app-switcher/AppSwitcher.d.ts +1 -1
  25. package/dist/components/app-switcher/AppSwitcher.d.ts.map +1 -1
  26. package/dist/components/app-switcher/AppSwitcherItem.d.ts.map +1 -1
  27. package/dist/components/app-switcher/IconPatterns.d.ts +8 -0
  28. package/dist/components/app-switcher/IconPatterns.d.ts.map +1 -0
  29. package/dist/components/app-switcher/SystemAppIcon.d.ts.map +1 -1
  30. package/dist/components/app-switcher/index.d.ts +2 -0
  31. package/dist/components/app-switcher/index.d.ts.map +1 -1
  32. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  33. package/dist/components/bulk-import-modal/BulkImportModal.d.ts.map +1 -1
  34. package/dist/components/bulk-import-modal/steps/ValidateDataStep.d.ts.map +1 -1
  35. package/dist/components/button/Button.d.ts +1 -1
  36. package/dist/components/button/Button.d.ts.map +1 -1
  37. package/dist/components/button/Spinner.d.ts.map +1 -1
  38. package/dist/components/combobox/Combobox.d.ts +4 -0
  39. package/dist/components/combobox/Combobox.d.ts.map +1 -0
  40. package/dist/components/combobox/Combobox.test.d.ts +2 -0
  41. package/dist/components/combobox/Combobox.test.d.ts.map +1 -0
  42. package/dist/components/combobox/index.d.ts +3 -0
  43. package/dist/components/combobox/index.d.ts.map +1 -0
  44. package/dist/components/country-selector/CountrySelector.d.ts +7 -0
  45. package/dist/components/country-selector/CountrySelector.d.ts.map +1 -1
  46. package/dist/components/country-selector/index.d.ts +1 -0
  47. package/dist/components/country-selector/index.d.ts.map +1 -1
  48. package/dist/components/date-range-selector/DateRangeSelector.d.ts +2 -2
  49. package/dist/components/date-range-selector/DateRangeSelector.d.ts.map +1 -1
  50. package/dist/components/date-range-selector/index.d.ts +1 -1
  51. package/dist/components/date-range-selector/index.d.ts.map +1 -1
  52. package/dist/components/date-selector/DateSelector.d.ts.map +1 -1
  53. package/dist/components/dropdown/Dropdown.d.ts +1 -1
  54. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  55. package/dist/components/export-button/ExportButton.d.ts +3 -0
  56. package/dist/components/export-button/ExportButton.d.ts.map +1 -0
  57. package/dist/components/export-button/ExportButton.test.d.ts +2 -0
  58. package/dist/components/export-button/ExportButton.test.d.ts.map +1 -0
  59. package/dist/components/export-button/index.d.ts +3 -0
  60. package/dist/components/export-button/index.d.ts.map +1 -0
  61. package/dist/components/launchpad/Launchpad.d.ts +4 -0
  62. package/dist/components/launchpad/Launchpad.d.ts.map +1 -0
  63. package/dist/components/launchpad/Launchpad.test.d.ts +2 -0
  64. package/dist/components/launchpad/Launchpad.test.d.ts.map +1 -0
  65. package/dist/components/launchpad/LaunchpadGridIcon.d.ts +2 -0
  66. package/dist/components/launchpad/LaunchpadGridIcon.d.ts.map +1 -0
  67. package/dist/components/launchpad/LaunchpadIconTile.d.ts +10 -0
  68. package/dist/components/launchpad/LaunchpadIconTile.d.ts.map +1 -0
  69. package/dist/components/launchpad/LaunchpadItem.d.ts +8 -0
  70. package/dist/components/launchpad/LaunchpadItem.d.ts.map +1 -0
  71. package/dist/components/launchpad/LaunchpadOverlays.d.ts +3 -0
  72. package/dist/components/launchpad/LaunchpadOverlays.d.ts.map +1 -0
  73. package/dist/components/launchpad/SystemLaunchpadIcon.d.ts +5 -0
  74. package/dist/components/launchpad/SystemLaunchpadIcon.d.ts.map +1 -0
  75. package/dist/components/launchpad/hooks/useLaunchpad.d.ts +3 -0
  76. package/dist/components/launchpad/hooks/useLaunchpad.d.ts.map +1 -0
  77. package/dist/components/launchpad/index.d.ts +10 -0
  78. package/dist/components/launchpad/index.d.ts.map +1 -0
  79. package/dist/components/metric-card/MetricCard.d.ts.map +1 -1
  80. package/dist/components/metric-card/index.d.ts +1 -1
  81. package/dist/components/metric-card/index.d.ts.map +1 -1
  82. package/dist/components/network-operator/NetworkOperator.d.ts +4 -0
  83. package/dist/components/network-operator/NetworkOperator.d.ts.map +1 -1
  84. package/dist/components/network-operator/index.d.ts +1 -0
  85. package/dist/components/network-operator/index.d.ts.map +1 -1
  86. package/dist/components/notice/Notice.d.ts +4 -0
  87. package/dist/components/notice/Notice.d.ts.map +1 -0
  88. package/dist/components/notice/Notice.test.d.ts +2 -0
  89. package/dist/components/notice/Notice.test.d.ts.map +1 -0
  90. package/dist/components/notice/index.d.ts +3 -0
  91. package/dist/components/notice/index.d.ts.map +1 -0
  92. package/dist/components/phone-number-input/PhoneNumberInput.d.ts.map +1 -1
  93. package/dist/components/popup/Popup.d.ts +15 -0
  94. package/dist/components/popup/Popup.d.ts.map +1 -0
  95. package/dist/components/popup/Popup.test.d.ts +2 -0
  96. package/dist/components/popup/Popup.test.d.ts.map +1 -0
  97. package/dist/components/popup/index.d.ts +3 -0
  98. package/dist/components/popup/index.d.ts.map +1 -0
  99. package/dist/components/profile-popover/ProfilePopover.d.ts +4 -0
  100. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -0
  101. package/dist/components/profile-popover/ProfilePopover.test.d.ts +2 -0
  102. package/dist/components/profile-popover/ProfilePopover.test.d.ts.map +1 -0
  103. package/dist/components/profile-popover/index.d.ts +3 -0
  104. package/dist/components/profile-popover/index.d.ts.map +1 -0
  105. package/dist/components/role-select/RoleSelect.d.ts +4 -0
  106. package/dist/components/role-select/RoleSelect.d.ts.map +1 -0
  107. package/dist/components/role-select/RoleSelect.test.d.ts +2 -0
  108. package/dist/components/role-select/RoleSelect.test.d.ts.map +1 -0
  109. package/dist/components/role-select/index.d.ts +3 -0
  110. package/dist/components/role-select/index.d.ts.map +1 -0
  111. package/dist/components/section-header/SectionHeader.d.ts +7 -0
  112. package/dist/components/section-header/SectionHeader.d.ts.map +1 -0
  113. package/dist/components/section-header/SectionHeader.test.d.ts +2 -0
  114. package/dist/components/section-header/SectionHeader.test.d.ts.map +1 -0
  115. package/dist/components/section-header/index.d.ts +3 -0
  116. package/dist/components/section-header/index.d.ts.map +1 -0
  117. package/dist/components/sidebar/Sidebar.d.ts +3 -3
  118. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  119. package/dist/components/sidebar/SidebarContext.d.ts +6 -0
  120. package/dist/components/sidebar/SidebarContext.d.ts.map +1 -1
  121. package/dist/components/sidebar/index.d.ts +1 -1
  122. package/dist/components/sidebar/index.d.ts.map +1 -1
  123. package/dist/components/stepper/Stepper.d.ts +12 -0
  124. package/dist/components/stepper/Stepper.d.ts.map +1 -0
  125. package/dist/components/stepper/Stepper.test.d.ts +2 -0
  126. package/dist/components/stepper/Stepper.test.d.ts.map +1 -0
  127. package/dist/components/stepper/StepperContext.d.ts +4 -0
  128. package/dist/components/stepper/StepperContext.d.ts.map +1 -0
  129. package/dist/components/stepper/index.d.ts +3 -0
  130. package/dist/components/stepper/index.d.ts.map +1 -0
  131. package/dist/components/switch/Switch.d.ts +4 -0
  132. package/dist/components/switch/Switch.d.ts.map +1 -0
  133. package/dist/components/switch/Switch.test.d.ts +2 -0
  134. package/dist/components/switch/Switch.test.d.ts.map +1 -0
  135. package/dist/components/switch/index.d.ts +3 -0
  136. package/dist/components/switch/index.d.ts.map +1 -0
  137. package/dist/components/table/Table.d.ts +3 -6
  138. package/dist/components/table/Table.d.ts.map +1 -1
  139. package/dist/components/table/TableHeader.d.ts +3 -10
  140. package/dist/components/table/TableHeader.d.ts.map +1 -1
  141. package/dist/components/table/TablePagination.d.ts.map +1 -1
  142. package/dist/components/table/index.d.ts +1 -1
  143. package/dist/components/table/index.d.ts.map +1 -1
  144. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  145. package/dist/components/tabs/hooks/useTabsLineIndicator.d.ts.map +1 -1
  146. package/dist/components/theme/ThemeProvider.d.ts.map +1 -1
  147. package/dist/components/theme/cletTheme.d.ts +11 -0
  148. package/dist/components/theme/cletTheme.d.ts.map +1 -0
  149. package/dist/components/theme/cletTheme.test-d.d.ts +2 -0
  150. package/dist/components/theme/cletTheme.test-d.d.ts.map +1 -0
  151. package/dist/components/theme/cletTheme.test.d.ts +2 -0
  152. package/dist/components/theme/cletTheme.test.d.ts.map +1 -0
  153. package/dist/components/theme/index.d.ts +3 -1
  154. package/dist/components/theme/index.d.ts.map +1 -1
  155. package/dist/components/timeline/Timeline.d.ts +8 -0
  156. package/dist/components/timeline/Timeline.d.ts.map +1 -0
  157. package/dist/components/timeline/Timeline.test.d.ts +2 -0
  158. package/dist/components/timeline/Timeline.test.d.ts.map +1 -0
  159. package/dist/components/timeline/index.d.ts +3 -0
  160. package/dist/components/timeline/index.d.ts.map +1 -0
  161. package/dist/components/upload-field/UploadField.d.ts +5 -0
  162. package/dist/components/upload-field/UploadField.d.ts.map +1 -1
  163. package/dist/components/upload-field/index.d.ts +2 -2
  164. package/dist/components/upload-field/index.d.ts.map +1 -1
  165. package/dist/contexts/router-adapter-context.d.ts +27 -0
  166. package/dist/contexts/router-adapter-context.d.ts.map +1 -0
  167. package/dist/generated/components.theme.d.ts +313 -0
  168. package/dist/generated/components.theme.d.ts.map +1 -0
  169. package/dist/hooks/index.d.ts +1 -0
  170. package/dist/hooks/index.d.ts.map +1 -1
  171. package/dist/hooks/useHasMounted.d.ts +10 -0
  172. package/dist/hooks/useHasMounted.d.ts.map +1 -0
  173. package/dist/hooks/useTableFilter.d.ts.map +1 -1
  174. package/dist/hooks/useTablePagination.d.ts.map +1 -1
  175. package/dist/hooks/useTableState.d.ts +1 -1
  176. package/dist/hooks/useTableState.d.ts.map +1 -1
  177. package/dist/index.cjs +85 -55
  178. package/dist/index.css +1 -1
  179. package/dist/index.d.ts +15 -1
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +19423 -31378
  182. package/dist/mcp/cli.js +75 -0
  183. package/dist/mcp/docs.js +122 -0
  184. package/dist/mcp/generated/components.json +3593 -0
  185. package/dist/mcp/generated/examples.json +1233 -0
  186. package/dist/mcp/generated/index.meta.json +252 -0
  187. package/dist/mcp/generated/rules.json +629 -0
  188. package/dist/mcp/generated/search.json +1618 -0
  189. package/dist/mcp/generated/tokens.json +1022 -0
  190. package/dist/mcp/index.js +337 -0
  191. package/dist/mcp/indexer.js +370 -0
  192. package/dist/mcp/installers/claude.js +37 -0
  193. package/dist/mcp/installers/codex.js +24 -0
  194. package/dist/mcp/installers/cursor.js +33 -0
  195. package/dist/mcp/installers/doctor.js +36 -0
  196. package/dist/mcp/installers/opencode.js +36 -0
  197. package/dist/mcp/installers/setup.js +34 -0
  198. package/dist/mcp/installers/util.js +41 -0
  199. package/dist/mcp/paths.js +63 -0
  200. package/dist/mcp/skill/SKILL.md +36 -0
  201. package/dist/mcp/skill/image-to-components.md +49 -0
  202. package/dist/next-index.d.ts +44 -0
  203. package/dist/next-index.d.ts.map +1 -0
  204. package/dist/next.cjs +282 -0
  205. package/dist/next.css +1 -0
  206. package/dist/next.d.ts +29 -0
  207. package/dist/next.js +37774 -0
  208. package/dist/types/app-header.d.ts +70 -10
  209. package/dist/types/app-header.d.ts.map +1 -1
  210. package/dist/types/app-switcher.d.ts +10 -1
  211. package/dist/types/app-switcher.d.ts.map +1 -1
  212. package/dist/types/avatar.d.ts +9 -0
  213. package/dist/types/avatar.d.ts.map +1 -1
  214. package/dist/types/combobox.d.ts +43 -0
  215. package/dist/types/combobox.d.ts.map +1 -0
  216. package/dist/types/country-selector.d.ts +4 -0
  217. package/dist/types/country-selector.d.ts.map +1 -1
  218. package/dist/types/date-range-selector.d.ts +11 -0
  219. package/dist/types/date-range-selector.d.ts.map +1 -1
  220. package/dist/types/dropdown.d.ts +8 -0
  221. package/dist/types/dropdown.d.ts.map +1 -1
  222. package/dist/types/export-button.d.ts +24 -0
  223. package/dist/types/export-button.d.ts.map +1 -0
  224. package/dist/types/launchpad.d.ts +79 -0
  225. package/dist/types/launchpad.d.ts.map +1 -0
  226. package/dist/types/metric-card.d.ts +7 -0
  227. package/dist/types/metric-card.d.ts.map +1 -1
  228. package/dist/types/network-operator.d.ts +8 -0
  229. package/dist/types/network-operator.d.ts.map +1 -1
  230. package/dist/types/notice.d.ts +24 -0
  231. package/dist/types/notice.d.ts.map +1 -0
  232. package/dist/types/popup.d.ts +43 -0
  233. package/dist/types/popup.d.ts.map +1 -0
  234. package/dist/types/profile-popover.d.ts +97 -0
  235. package/dist/types/profile-popover.d.ts.map +1 -0
  236. package/dist/types/role-select.d.ts +28 -0
  237. package/dist/types/role-select.d.ts.map +1 -0
  238. package/dist/types/router-adapter.d.ts +46 -0
  239. package/dist/types/router-adapter.d.ts.map +1 -0
  240. package/dist/types/section-header.d.ts +26 -0
  241. package/dist/types/section-header.d.ts.map +1 -0
  242. package/dist/types/sidebar.d.ts +16 -0
  243. package/dist/types/sidebar.d.ts.map +1 -1
  244. package/dist/types/stepper.d.ts +45 -0
  245. package/dist/types/stepper.d.ts.map +1 -0
  246. package/dist/types/switch.d.ts +24 -0
  247. package/dist/types/switch.d.ts.map +1 -0
  248. package/dist/types/table.d.ts +90 -1
  249. package/dist/types/table.d.ts.map +1 -1
  250. package/dist/types/tabs.d.ts +1 -1
  251. package/dist/types/tabs.d.ts.map +1 -1
  252. package/dist/types/theme.d.ts +28 -8
  253. package/dist/types/theme.d.ts.map +1 -1
  254. package/dist/types/timeline.d.ts +52 -0
  255. package/dist/types/timeline.d.ts.map +1 -0
  256. package/dist/types/upload-field.d.ts +23 -0
  257. package/dist/types/upload-field.d.ts.map +1 -1
  258. package/dist/utils/export.d.ts +15 -0
  259. package/dist/utils/export.d.ts.map +1 -0
  260. package/dist/utils/stringToColor.d.ts +25 -0
  261. package/dist/utils/stringToColor.d.ts.map +1 -1
  262. package/package.json +43 -7
  263. package/scripts/postinstall.mjs +40 -0
@@ -1,12 +1,31 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
1
+ import type { HTMLAttributes, ReactElement, ReactNode } from "react";
2
+ import type { RoleSelect } from "../components/role-select/RoleSelect";
3
+ import type { RoleSelectProps } from "./role-select";
4
+ import type { AppUser } from "./profile-popover";
2
5
  export interface AppHeaderProps extends HTMLAttributes<HTMLDivElement> {
3
6
  className?: string;
4
7
  children?: ReactNode;
8
+ /**
9
+ * Visual style. "default" = subtle rounded panel surface.
10
+ * "plain" = square edges (no border radius), primary background, on-primary text.
11
+ */
12
+ variant?: "default" | "plain";
5
13
  }
6
14
  export interface AppHeaderActionsProps {
7
15
  className?: string;
8
16
  children?: ReactNode;
9
17
  }
18
+ export interface AppHeaderBrandingProps {
19
+ className?: string;
20
+ /** Inline logo node (e.g. an <img> or icon). */
21
+ logo?: ReactNode;
22
+ /** Main title text, rendered bold. */
23
+ title?: ReactNode;
24
+ /** Secondary text, rendered larger but not bold. */
25
+ subtitle?: ReactNode;
26
+ /** Custom content, overrides title/subtitle rendering. */
27
+ children?: ReactNode;
28
+ }
10
29
  export interface AppHeaderSearchItem {
11
30
  value: string;
12
31
  /** Rendered content — string or custom JSX. */
@@ -41,18 +60,59 @@ export interface AppHeaderNotificationsProps {
41
60
  /** Accessible label for the loading state */
42
61
  loadingLabel?: string;
43
62
  }
44
- export interface AppUser {
45
- name: string;
46
- role: string;
47
- email?: string;
48
- avatar?: string;
49
- initials: string;
63
+ export interface AppHeaderNotificationItemClassNames {
64
+ root?: string;
65
+ dot?: string;
66
+ body?: string;
67
+ text?: string;
68
+ time?: string;
69
+ }
70
+ export interface AppHeaderNotificationItemProps extends Omit<HTMLAttributes<HTMLDivElement>, "onClick"> {
71
+ /** Notification message content */
72
+ text: ReactNode;
73
+ /** Relative/formatted time string (e.g. "2m ago") */
74
+ time?: ReactNode;
75
+ /** Shows a leading unread dot. Read items get a subtle background instead (default false) */
76
+ unread?: boolean;
77
+ /** Called when the row is clicked (also fires on Enter/Space when set, since the row becomes keyboard-focusable) */
78
+ onClick?: () => void;
79
+ classNames?: AppHeaderNotificationItemClassNames;
80
+ className?: string;
50
81
  }
82
+ /**
83
+ * @deprecated Use `ProfilePopover` directly (pass `user`/`variant` for the same trigger).
84
+ * `AppHeaderProfile` is kept as a thin wrapper for backward compatibility and receives no
85
+ * further features, but it isn't going away — see the [migration guide](/docs/migration-v2).
86
+ */
51
87
  export interface AppHeaderProfileProps {
52
88
  user: AppUser;
53
- children?: ReactNode;
89
+ /** Extra composable content rendered below "Help & Support" — only a `RoleSelect` element is accepted */
90
+ children?: ReactElement<RoleSelectProps, typeof RoleSelect>;
54
91
  className?: string;
55
- /** Render variant. "full" shows large avatar + email + carded actions. "basic" shows compact inline avatar + name/role + flat actions. */
56
- variant?: "full" | "basic";
92
+ /**
93
+ * Render variant for the header trigger row.
94
+ * "full" shows avatar + name/role + chevron.
95
+ * "avatar" shows only the avatar (no name/role/chevron).
96
+ * Both open the same `ProfilePopover` menu on click.
97
+ */
98
+ variant?: "full" | "avatar";
99
+ /**
100
+ * @deprecated No longer rendered. `ProfilePopover`'s header now always shows a built-in
101
+ * light/dark theme toggle when a `ThemeProvider` is present, and nothing when it isn't —
102
+ * this prop is accepted for backward compatibility but has no effect.
103
+ */
104
+ headerAction?: ReactNode;
105
+ /** Show shimmering skeleton placeholders instead of the avatar/name/role, in both the trigger and the opened popover */
106
+ loading?: boolean;
107
+ /** Accessible label announced while loading (default: "Loading profile") */
108
+ loadingLabel?: string;
109
+ /** Called when "My Profile" is clicked */
110
+ onProfileClick?: () => void;
111
+ /** Called when "Account Settings" is clicked */
112
+ onSettingsClick?: () => void;
113
+ /** Called when "Help & Support" is clicked */
114
+ onHelpClick?: () => void;
115
+ /** Called when "Sign Out" is clicked */
116
+ onSignOut?: () => void;
57
117
  }
58
118
  //# sourceMappingURL=app-header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-header.d.ts","sourceRoot":"","sources":["../../src/types/app-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvD,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAID,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,IAAI,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAClC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAID,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0IAA0I;IAC1I,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B"}
1
+ {"version":3,"file":"app-header.d.ts","sourceRoot":"","sources":["../../src/types/app-header.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import type { CSSProperties, ReactNode } from "react";
1
+ import type { CSSProperties, ReactElement, ReactNode } from "react";
2
+ import type { RoleSelect } from "../components/role-select/RoleSelect";
3
+ import type { RoleSelectProps } from "./role-select";
2
4
  export interface AppItem {
3
5
  /** Unique identifier for the app */
4
6
  id: string;
@@ -30,6 +32,8 @@ export interface AppSwitcherProps {
30
32
  onAppSelect?: (app: AppItem) => void;
31
33
  /** Number of columns in the grid (default: 3) */
32
34
  columns?: number;
35
+ /** Maximum number of apps rendered in the grid (default: 6) */
36
+ maxItems?: number;
33
37
  /** Accessible label for the trigger button */
34
38
  triggerLabel?: string;
35
39
  /** Custom trigger element (replaces default 9-dot icon) */
@@ -38,6 +42,11 @@ export interface AppSwitcherProps {
38
42
  title?: string;
39
43
  /** Footer content (e.g. "More from Google" link) */
40
44
  footer?: ReactNode;
45
+ /**
46
+ * Extra composable content rendered below the grid — only a
47
+ * `RoleSelect` element is accepted (e.g. a "switch role" control).
48
+ */
49
+ children?: ReactElement<RoleSelectProps, typeof RoleSelect>;
41
50
  /** Additional CSS class for the root container */
42
51
  className?: string;
43
52
  /** Inline styles for the root container */
@@ -1 +1 @@
1
- {"version":3,"file":"app-switcher.d.ts","sourceRoot":"","sources":["../../src/types/app-switcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,qCAAqC;IACrC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,QAAQ,CAAC;IACrD,yDAAyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAClD"}
1
+ {"version":3,"file":"app-switcher.d.ts","sourceRoot":"","sources":["../../src/types/app-switcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,OAAO;IACtB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,qCAAqC;IACrC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,EAAE,OAAO,UAAU,CAAC,CAAC;IAC5D,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,QAAQ,CAAC;IACrD,yDAAyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAClD"}
@@ -12,6 +12,15 @@ export interface AvatarProps extends Omit<HTMLAttributes<HTMLDivElement>, "child
12
12
  src?: string;
13
13
  /** Preset size or arbitrary pixel value (e.g. 48). */
14
14
  size?: AvatarSize | number;
15
+ /** CSS background override for the initials fallback (e.g. `var(--clet-primary)`). Defaults to a per-name gradient. */
16
+ background?: string;
17
+ /**
18
+ * Name of a CSS custom property (e.g. `--clet-profile-avatar-bg`) that can
19
+ * override the background when set by a consumer. Falls back to the
20
+ * per-name gradient when the property is unset. Ignored if `background`
21
+ * is also provided.
22
+ */
23
+ backgroundVar?: string;
15
24
  classNames?: AvatarClassNames;
16
25
  className?: string;
17
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/types/avatar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACnF,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/types/avatar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACnF,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,uHAAuH;IACvH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,43 @@
1
+ import type { ReactNode } from "react";
2
+ export interface ComboboxOption {
3
+ value: string;
4
+ label: string;
5
+ disabled?: boolean;
6
+ /** Leading icon/adornment rendered before the label (e.g. a star). */
7
+ icon?: ReactNode;
8
+ }
9
+ export interface ComboboxClassNames {
10
+ root?: string;
11
+ trigger?: string;
12
+ content?: string;
13
+ input?: string;
14
+ list?: string;
15
+ item?: string;
16
+ itemIcon?: string;
17
+ itemCheck?: string;
18
+ empty?: string;
19
+ }
20
+ interface ComboboxBaseProps {
21
+ options: ComboboxOption[];
22
+ placeholder?: string;
23
+ searchPlaceholder?: string;
24
+ disabled?: boolean;
25
+ invalid?: boolean;
26
+ clearable?: boolean;
27
+ emptyMessage?: ReactNode;
28
+ "aria-label"?: string;
29
+ classNames?: ComboboxClassNames;
30
+ className?: string;
31
+ name?: string;
32
+ }
33
+ export type ComboboxProps = (ComboboxBaseProps & {
34
+ multiple?: false;
35
+ value: string | null;
36
+ onValueChange: (value: string | null) => void;
37
+ }) | (ComboboxBaseProps & {
38
+ multiple: true;
39
+ value: string[];
40
+ onValueChange: (value: string[]) => void;
41
+ });
42
+ export {};
43
+ //# sourceMappingURL=combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../src/types/combobox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GACrB,CAAC,iBAAiB,GAAG;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C,CAAC,GACF,CAAC,iBAAiB,GAAG;IACnB,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC1C,CAAC,CAAC"}
@@ -8,6 +8,10 @@ export interface CountrySelectorClassNames {
8
8
  option?: string;
9
9
  search?: string;
10
10
  }
11
+ /**
12
+ * @deprecated `CountrySelector` is deprecated in favor of `Combobox` (country selection)
13
+ * or `PhoneNumberInput`'s own country picker (phone numbers) — see the migration guide.
14
+ */
11
15
  export interface CountrySelectorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
12
16
  invalid?: boolean;
13
17
  disabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"country-selector.d.ts","sourceRoot":"","sources":["../../src/types/country-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"country-selector.d.ts","sourceRoot":"","sources":["../../src/types/country-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -13,11 +13,20 @@ export interface DateRangeSelectorClassNames {
13
13
  calendarFooter?: string;
14
14
  applyButton?: string;
15
15
  cancelButton?: string;
16
+ presets?: string;
17
+ presetItem?: string;
18
+ rangeSummary?: string;
16
19
  }
17
20
  export interface DateRangeValue {
18
21
  start: Date | null;
19
22
  end: Date | null;
20
23
  }
24
+ export interface DateRangePreset {
25
+ /** Rail label, e.g. "Today", "Last 7 days", "All time". */
26
+ label: string;
27
+ /** Computed on click — evaluated lazily so "Today"-relative presets stay accurate. */
28
+ getRange: () => DateRangeValue;
29
+ }
21
30
  export interface DateRangeSelectorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "value" | "defaultValue"> {
22
31
  value?: DateRangeValue;
23
32
  defaultValue?: DateRangeValue;
@@ -28,6 +37,8 @@ export interface DateRangeSelectorProps extends Omit<HTMLAttributes<HTMLDivEleme
28
37
  disabled?: boolean;
29
38
  min?: Date;
30
39
  max?: Date;
40
+ /** Optional left-rail quick-select presets (Today, Last 7 days, ...). Also shows a "Range: ..." summary in the footer when set. */
41
+ presets?: DateRangePreset[];
31
42
  classNames?: DateRangeSelectorClassNames;
32
43
  className?: string;
33
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-selector.d.ts","sourceRoot":"","sources":["../../src/types/date-range-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;IACzH,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"date-range-selector.d.ts","sourceRoot":"","sources":["../../src/types/date-range-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,QAAQ,EAAE,MAAM,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;IACzH,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,mIAAmI;IACnI,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -23,5 +23,13 @@ export interface DropdownProps {
23
23
  formatOption?: (option: DropdownOption | null, state: "selected" | "idle" | "empty") => ReactNode;
24
24
  classNames?: DropdownClassNames;
25
25
  className?: string;
26
+ /**
27
+ * Native form field name. When set, Dropdown participates in native
28
+ * `<form>`/`FormData` submission like a real input — no separate hidden
29
+ * input needed.
30
+ */
31
+ name?: string;
32
+ required?: boolean;
33
+ form?: string;
26
34
  }
27
35
  //# sourceMappingURL=dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../src/types/dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC;IAClG,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../src/types/dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC;IAClG,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,24 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ButtonProps } from "./button";
3
+ import type { ExportColumn } from "../utils/export";
4
+ export type { ExportColumn };
5
+ export type ExportFormat = "csv" | "xlsx" | "pdf";
6
+ export interface ExportButtonClassNames {
7
+ trigger?: string;
8
+ menu?: string;
9
+ menuItem?: string;
10
+ }
11
+ export interface ExportButtonProps<T = unknown> extends Omit<ButtonProps, "children" | "classNames"> {
12
+ data: T[];
13
+ columns: ExportColumn<T>[];
14
+ title: string;
15
+ filename?: string;
16
+ filtersDescription?: string;
17
+ formats?: ExportFormat[];
18
+ label?: ReactNode;
19
+ align?: "start" | "center" | "end";
20
+ side?: "top" | "right" | "bottom" | "left";
21
+ sideOffset?: number;
22
+ classNames?: ExportButtonClassNames;
23
+ }
24
+ //# sourceMappingURL=export-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-button.d.ts","sourceRoot":"","sources":["../../src/types/export-button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAC5C,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC;IACpD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC"}
@@ -0,0 +1,79 @@
1
+ import type { CSSProperties, ReactElement, ReactNode } from "react";
2
+ import type { RoleSelect } from "../components/role-select/RoleSelect";
3
+ import type { RoleSelectProps } from "./role-select";
4
+ import type { LaunchpadIconTile, LaunchpadIconTileProps } from "../components/launchpad/LaunchpadIconTile";
5
+ import type { SystemLaunchpadIcon, SystemLaunchpadIconProps } from "../components/launchpad/SystemLaunchpadIcon";
6
+ export interface LaunchpadApp {
7
+ /** Unique identifier for the app */
8
+ id: string;
9
+ /** Display name shown below the icon */
10
+ name: string;
11
+ /**
12
+ * Icon tile — must be a `SystemLaunchpadIcon` (auto-generated initials
13
+ * tile) or a `LaunchpadIconTile` (custom glyph on the same tile system).
14
+ * This is a closed set on purpose: every app's icon renders on the shared
15
+ * 9-gradient / 9-overlay tile system, so a raw image URL, emoji, or
16
+ * arbitrary node can't be used to opt an app out of the design system's
17
+ * visual language.
18
+ */
19
+ icon: ReactElement<LaunchpadIconTileProps, typeof LaunchpadIconTile> | ReactElement<SystemLaunchpadIconProps, typeof SystemLaunchpadIcon>;
20
+ /** URL to navigate to when the app is selected */
21
+ href?: string;
22
+ /** Custom click handler (called before navigation if href is set) */
23
+ onClick?: (app: LaunchpadApp) => void;
24
+ /** Whether the app is disabled */
25
+ disabled?: boolean;
26
+ /** Optional badge text (e.g. "New") */
27
+ badge?: string;
28
+ }
29
+ export interface LaunchpadProps {
30
+ /**
31
+ * Apps to display. The popover grid is capped at 9 (see design note on
32
+ * the component); the built-in expand button opens a modal showing every
33
+ * app in `apps`, uncapped.
34
+ */
35
+ apps: LaunchpadApp[];
36
+ /** Shows a loading state (spinner only) in the panel instead of the grid */
37
+ loading?: boolean;
38
+ /** Controlled open state */
39
+ open?: boolean;
40
+ /** Callback when open state changes */
41
+ onOpenChange?: (open: boolean) => void;
42
+ /** Called when an app is selected (from the grid or the "See all" expanded view) */
43
+ onAppSelect?: (app: LaunchpadApp) => void;
44
+ /**
45
+ * Role switcher rendered below the grid, outside the scrollable/masked
46
+ * grid area and separated from it by a divider. Required — only a
47
+ * `RoleSelect` element is accepted, and passing none is a type error.
48
+ */
49
+ children: ReactElement<RoleSelectProps, typeof RoleSelect>;
50
+ /**
51
+ * Custom trigger element — replaces the default square 9-dot icon.
52
+ * Whatever you pass is still wrapped with the "Open Launchpad" tooltip
53
+ * and accessible name.
54
+ */
55
+ trigger?: ReactNode;
56
+ /** Additional CSS class for the root container */
57
+ className?: string;
58
+ /** Inline styles for the root container */
59
+ style?: CSSProperties;
60
+ /**
61
+ * Shows the decorative brand strip along the bottom of the expanded
62
+ * "See all" modal.
63
+ * @default true
64
+ */
65
+ showBrandStrip?: boolean;
66
+ }
67
+ export interface UseLaunchpadOptions {
68
+ open?: boolean;
69
+ onOpenChange?: (open: boolean) => void;
70
+ }
71
+ export interface UseLaunchpadReturn {
72
+ open: boolean;
73
+ setOpen: (open: boolean) => void;
74
+ toggle: () => void;
75
+ close: () => void;
76
+ triggerRef: React.RefObject<HTMLButtonElement | null>;
77
+ panelRef: React.RefObject<HTMLDivElement | null>;
78
+ }
79
+ //# sourceMappingURL=launchpad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../src/types/launchpad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAC3G,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEjH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,IAAI,EACA,YAAY,CAAC,sBAAsB,EAAE,OAAO,iBAAiB,CAAC,GAC9D,YAAY,CAAC,wBAAwB,EAAE,OAAO,mBAAmB,CAAC,CAAC;IACvE,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACtC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,oFAAoF;IACpF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,EAAE,YAAY,CAAC,eAAe,EAAE,OAAO,UAAU,CAAC,CAAC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAClD"}
@@ -1,5 +1,6 @@
1
1
  import type { HTMLAttributes, ReactNode } from "react";
2
2
  export type MetricTrend = "up" | "down" | "neutral";
3
+ export type MetricCardVariant = "default" | "outline";
3
4
  export interface MetricCardClassNames {
4
5
  root?: string;
5
6
  icon?: string;
@@ -17,6 +18,8 @@ export interface MetricCardProps extends HTMLAttributes<HTMLDivElement> {
17
18
  icon?: ReactNode;
18
19
  /** Subtitle or description below the value */
19
20
  description?: string;
21
+ /** Visual variant. "outline" renders a no-fill, bordered card with chevron trend icons and no +/- prefix */
22
+ variant?: MetricCardVariant;
20
23
  /** Direction of the trend indicator */
21
24
  trend?: MetricTrend;
22
25
  /** Formatted trend text (e.g. "+12.5%") */
@@ -25,6 +28,10 @@ export interface MetricCardProps extends HTMLAttributes<HTMLDivElement> {
25
28
  animate?: boolean;
26
29
  /** Duration of the count-up animation in ms (default: 1500) */
27
30
  animationDuration?: number;
31
+ /** Show shimmering skeleton placeholders instead of the label/value/description content */
32
+ loading?: boolean;
33
+ /** Accessible label announced while loading (default: "Loading metric") */
34
+ loadingLabel?: string;
28
35
  classNames?: MetricCardClassNames;
29
36
  className?: string;
30
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metric-card.d.ts","sourceRoot":"","sources":["../../src/types/metric-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,kDAAkD;IAClD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"metric-card.d.ts","sourceRoot":"","sources":["../../src/types/metric-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,kDAAkD;IAClD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4GAA4G;IAC5G,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,uCAAuC;IACvC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -1,4 +1,8 @@
1
1
  import type { HTMLAttributes } from "react";
2
+ /**
3
+ * @deprecated `NetworkOperator` is deprecated in favor of `Combobox` (build an
4
+ * operator list with `options`) — see the migration guide.
5
+ */
2
6
  export interface NetworkOperatorOption {
3
7
  value: string;
4
8
  label: string;
@@ -11,6 +15,10 @@ export interface NetworkOperatorClassNames {
11
15
  option?: string;
12
16
  image?: string;
13
17
  }
18
+ /**
19
+ * @deprecated `NetworkOperator` is deprecated in favor of `Combobox` (build an
20
+ * operator list with `options`) — see the migration guide.
21
+ */
14
22
  export interface NetworkOperatorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
15
23
  invalid?: boolean;
16
24
  disabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"network-operator.d.ts","sourceRoot":"","sources":["../../src/types/network-operator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"network-operator.d.ts","sourceRoot":"","sources":["../../src/types/network-operator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,24 @@
1
+ import type { CSSProperties, HTMLAttributes, ReactNode } from "react";
2
+ export type NoticeVariant = "default" | "info" | "success" | "warning" | "error";
3
+ export interface NoticeClassNames {
4
+ root?: string;
5
+ icon?: string;
6
+ header?: string;
7
+ title?: string;
8
+ body?: string;
9
+ }
10
+ export interface NoticeProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
11
+ variant?: NoticeVariant;
12
+ /** Custom accent color, overriding the variant's token-driven color. Any valid CSS color. */
13
+ color?: CSSProperties["color"];
14
+ title?: ReactNode;
15
+ icon?: ReactNode;
16
+ /** Thick colored left border accent. */
17
+ leftBorder?: boolean;
18
+ /** Dashed outer border instead of a solid one. */
19
+ dashed?: boolean;
20
+ classNames?: NoticeClassNames;
21
+ className?: string;
22
+ children?: ReactNode;
23
+ }
24
+ //# sourceMappingURL=notice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notice.d.ts","sourceRoot":"","sources":["../../src/types/notice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACrD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,43 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import type * as PopoverPrimitive from "@radix-ui/react-popover";
3
+ export interface PopupContentClassNames {
4
+ content?: string;
5
+ close?: string;
6
+ }
7
+ export interface PopupContentProps extends PopoverPrimitive.PopoverContentProps {
8
+ classNames?: PopupContentClassNames;
9
+ showCloseButton?: boolean;
10
+ }
11
+ export interface PopupHeaderClassNames {
12
+ header?: string;
13
+ }
14
+ export interface PopupHeaderProps extends HTMLAttributes<HTMLDivElement> {
15
+ classNames?: PopupHeaderClassNames;
16
+ }
17
+ export interface PopupTitleClassNames {
18
+ title?: string;
19
+ }
20
+ export interface PopupTitleProps extends HTMLAttributes<HTMLHeadingElement> {
21
+ classNames?: PopupTitleClassNames;
22
+ }
23
+ export interface PopupDescriptionClassNames {
24
+ description?: string;
25
+ }
26
+ export interface PopupDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
27
+ classNames?: PopupDescriptionClassNames;
28
+ }
29
+ export interface PopupBodyClassNames {
30
+ body?: string;
31
+ }
32
+ export interface PopupBodyProps extends HTMLAttributes<HTMLDivElement> {
33
+ classNames?: PopupBodyClassNames;
34
+ }
35
+ export type PopupFooterLayout = "row" | "stack";
36
+ export interface PopupFooterClassNames {
37
+ footer?: string;
38
+ }
39
+ export interface PopupFooterProps extends HTMLAttributes<HTMLDivElement> {
40
+ layout?: PopupFooterLayout;
41
+ classNames?: PopupFooterClassNames;
42
+ }
43
+ //# sourceMappingURL=popup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../src/types/popup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBACf,SAAQ,gBAAgB,CAAC,mBAAmB;IAC5C,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACzE,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBACf,SAAQ,cAAc,CAAC,oBAAoB,CAAC;IAC5C,UAAU,CAAC,EAAE,0BAA0B,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC"}