@rfdtech/components 1.18.1 → 1.22.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 (118) hide show
  1. package/README.md +200 -61
  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/AppHeaderProfile.d.ts.map +1 -1
  13. package/dist/components/app-header/index.d.ts +2 -2
  14. package/dist/components/app-header/index.d.ts.map +1 -1
  15. package/dist/components/app-layout/AppLayout.d.ts +6 -0
  16. package/dist/components/app-layout/AppLayout.d.ts.map +1 -1
  17. package/dist/components/app-layout/AppLayoutInner.d.ts +1 -0
  18. package/dist/components/app-layout/AppLayoutInner.d.ts.map +1 -1
  19. package/dist/components/bulk-import-modal/BulkImportModal.d.ts +1 -1
  20. package/dist/components/bulk-import-modal/BulkImportModal.d.ts.map +1 -1
  21. package/dist/components/bulk-import-modal/constants.d.ts +8 -0
  22. package/dist/components/bulk-import-modal/constants.d.ts.map +1 -0
  23. package/dist/components/bulk-import-modal/hooks/useBulkImportFlow.d.ts.map +1 -1
  24. package/dist/components/bulk-import-modal/index.d.ts +5 -4
  25. package/dist/components/bulk-import-modal/index.d.ts.map +1 -1
  26. package/dist/components/bulk-import-modal/steps/SelectHeaderRowStep.d.ts.map +1 -1
  27. package/dist/components/bulk-import-modal/steps/UploadStep.d.ts +3 -1
  28. package/dist/components/bulk-import-modal/steps/UploadStep.d.ts.map +1 -1
  29. package/dist/components/bulk-import-modal/steps/ValidateDataStep.d.ts +7 -10
  30. package/dist/components/bulk-import-modal/steps/ValidateDataStep.d.ts.map +1 -1
  31. package/dist/components/bulk-import-modal/utils/mapRowsToRecords.d.ts +1 -0
  32. package/dist/components/bulk-import-modal/utils/mapRowsToRecords.d.ts.map +1 -1
  33. package/dist/components/bulk-import-modal/utils/parseSpreadsheetFile.d.ts +4 -0
  34. package/dist/components/bulk-import-modal/utils/parseSpreadsheetFile.d.ts.map +1 -1
  35. package/dist/components/bulk-import-modal/utils/validateMappedRows.d.ts +2 -1
  36. package/dist/components/bulk-import-modal/utils/validateMappedRows.d.ts.map +1 -1
  37. package/dist/components/bulk-import-modal/utils/validateRowsChunked.d.ts +11 -0
  38. package/dist/components/bulk-import-modal/utils/validateRowsChunked.d.ts.map +1 -0
  39. package/dist/components/command/Command.d.ts.map +1 -1
  40. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  41. package/dist/components/metric-card/MetricCard.d.ts.map +1 -1
  42. package/dist/components/metric-card/index.d.ts +1 -1
  43. package/dist/components/metric-card/index.d.ts.map +1 -1
  44. package/dist/components/modal/Modal.d.ts.map +1 -1
  45. package/dist/components/phone-number-input/PhoneNumberInput.d.ts.map +1 -1
  46. package/dist/components/sidebar/Sidebar.d.ts +2 -2
  47. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  48. package/dist/components/sidebar/index.d.ts.map +1 -1
  49. package/dist/components/stepper/Stepper.d.ts +12 -0
  50. package/dist/components/stepper/Stepper.d.ts.map +1 -0
  51. package/dist/components/stepper/Stepper.test.d.ts +2 -0
  52. package/dist/components/stepper/Stepper.test.d.ts.map +1 -0
  53. package/dist/components/stepper/StepperContext.d.ts +4 -0
  54. package/dist/components/stepper/StepperContext.d.ts.map +1 -0
  55. package/dist/components/stepper/index.d.ts +3 -0
  56. package/dist/components/stepper/index.d.ts.map +1 -0
  57. package/dist/components/table/ProgressModal.d.ts +13 -0
  58. package/dist/components/table/ProgressModal.d.ts.map +1 -0
  59. package/dist/components/table/Table.d.ts +4 -22
  60. package/dist/components/table/Table.d.ts.map +1 -1
  61. package/dist/components/table/TableHeader.d.ts +3 -10
  62. package/dist/components/table/TableHeader.d.ts.map +1 -1
  63. package/dist/components/table/TablePagination.d.ts.map +1 -1
  64. package/dist/components/table/index.d.ts +1 -1
  65. package/dist/components/table/index.d.ts.map +1 -1
  66. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  67. package/dist/components/tabs/hooks/useTabsLineIndicator.d.ts.map +1 -1
  68. package/dist/components/timeline/Timeline.d.ts +8 -0
  69. package/dist/components/timeline/Timeline.d.ts.map +1 -0
  70. package/dist/components/timeline/Timeline.test.d.ts +2 -0
  71. package/dist/components/timeline/Timeline.test.d.ts.map +1 -0
  72. package/dist/components/timeline/index.d.ts +3 -0
  73. package/dist/components/timeline/index.d.ts.map +1 -0
  74. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  75. package/dist/contexts/router-adapter-context.d.ts +27 -0
  76. package/dist/contexts/router-adapter-context.d.ts.map +1 -0
  77. package/dist/hooks/index.d.ts +1 -0
  78. package/dist/hooks/index.d.ts.map +1 -1
  79. package/dist/hooks/useComposedRefs.d.ts +14 -0
  80. package/dist/hooks/useComposedRefs.d.ts.map +1 -0
  81. package/dist/hooks/useTableFilter.d.ts.map +1 -1
  82. package/dist/hooks/useTablePagination.d.ts.map +1 -1
  83. package/dist/hooks/useTableState.d.ts +1 -1
  84. package/dist/hooks/useTableState.d.ts.map +1 -1
  85. package/dist/index.cjs +50 -33
  86. package/dist/index.css +1 -1
  87. package/dist/index.d.ts +3 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +14865 -10661
  90. package/dist/next-index.d.ts +44 -0
  91. package/dist/next-index.d.ts.map +1 -0
  92. package/dist/next.cjs +272 -0
  93. package/dist/next.css +1 -0
  94. package/dist/next.d.ts +29 -0
  95. package/dist/next.js +51481 -0
  96. package/dist/test/mocks/lottie-react.d.ts +2 -0
  97. package/dist/test/mocks/lottie-react.d.ts.map +1 -0
  98. package/dist/types/app-header.d.ts +23 -2
  99. package/dist/types/app-header.d.ts.map +1 -1
  100. package/dist/types/bulk-import-modal.d.ts +21 -18
  101. package/dist/types/bulk-import-modal.d.ts.map +1 -1
  102. package/dist/types/metric-card.d.ts +3 -0
  103. package/dist/types/metric-card.d.ts.map +1 -1
  104. package/dist/types/modal.d.ts +0 -1
  105. package/dist/types/modal.d.ts.map +1 -1
  106. package/dist/types/router-adapter.d.ts +46 -0
  107. package/dist/types/router-adapter.d.ts.map +1 -0
  108. package/dist/types/sidebar.d.ts +11 -0
  109. package/dist/types/sidebar.d.ts.map +1 -1
  110. package/dist/types/stepper.d.ts +45 -0
  111. package/dist/types/stepper.d.ts.map +1 -0
  112. package/dist/types/table.d.ts +85 -2
  113. package/dist/types/table.d.ts.map +1 -1
  114. package/dist/types/tabs.d.ts +1 -1
  115. package/dist/types/tabs.d.ts.map +1 -1
  116. package/dist/types/timeline.d.ts +52 -0
  117. package/dist/types/timeline.d.ts.map +1 -0
  118. package/package.json +40 -19
package/README.md CHANGED
@@ -8,33 +8,153 @@ Requires React 18+ and a bundler that processes CSS (Vite, Webpack, etc.).
8
8
 
9
9
  See [CHANGELOG.md](./CHANGELOG.md) for release history.
10
10
 
11
- ## Styles
11
+ ## Getting Started
12
12
 
13
- Component styles load automatically when you import from `@rfdtech/components` (the JS bundle includes `import './index.css'`). For reliable styling in production, add this once in your app entry (`main.tsx` or `App.tsx`):
13
+ ### 1. Install
14
+
15
+ ```bash
16
+ npm install @rfdtech/components
17
+ ```
18
+
19
+ Requires React 18+. npm 7+ auto-installs `react` and `react-dom` as peer dependencies. Radix UI and other runtime packages are dependencies of `@rfdtech/components`.
20
+
21
+ ### 2. Import CSS
22
+
23
+ Add this once to your app entry (`main.tsx` or `App.tsx`):
14
24
 
15
25
  ```ts
16
26
  import "@rfdtech/components/style.css";
17
27
  ```
18
28
 
19
- After upgrading the package, clear Vite's dependency cache if styles look stale: `rm -rf node_modules/.vite`.
29
+ Components load CSS automatically from the JS bundle (the JS bundle includes `import './index.css'`), but the explicit import above ensures reliable production styling. After upgrading, clear Vite's dependency cache if styles look stale: `rm -rf node_modules/.vite`. alright
20
30
 
21
- ## Shared theming
22
-
23
- Wrap your app in `ThemeProvider` for light, dark, and system themes. Design tokens live in [`src/styles/theme.css`](src/styles/theme.css) and apply to `.gsl-theme`, `document.documentElement`, and all components (including portaled modals and popovers).
31
+ ### 3. Wrap with ThemeProvider
24
32
 
25
33
  ```tsx
26
34
  import { ThemeProvider } from "@rfdtech/components";
27
- import "@rfdtech/components/style.css";
28
35
 
29
36
  <ThemeProvider defaultTheme="system">
30
37
  <App />
31
38
  </ThemeProvider>
32
39
  ```
33
40
 
34
- Use `useTheme()` to read or change the active theme at runtime. See the [Theme](/docs/theme) docs page for token reference and controlled mode.
41
+ Supports `"light"`, `"dark"`, and `"system"` (follows `prefers-color-scheme`). Use `useTheme()` to read or change the active theme at runtime. Design tokens apply to `.gsl-theme`, `document.documentElement`, and all components (including portaled modals and popovers).
42
+
43
+ ### 4. Tailwind v4 integration
44
+
45
+ If your project uses Tailwind v4, all `--gsl-*` design tokens are automatically available as utility classes. Import `style.css` after `tailwindcss` in your CSS entry:
46
+
47
+ ```css
48
+ /* app/src/index.css */
49
+ @import "tailwindcss";
50
+ @import "@rfdtech/components/style.css";
51
+ ```
52
+
53
+ The `@theme` block ships inside `style.css`. The consumer's Tailwind build processes it and generates these utility classes:
54
+
55
+ | Utility | Resolves to |
56
+ | --------- | ------------- |
57
+ | `bg-primary` / `text-primary` | `var(--gsl-primary)` |
58
+ | `bg-primary-foreground` / `text-primary-foreground` | `var(--gsl-on-primary)` |
59
+ | `bg-background` / `text-foreground` | `var(--gsl-page-bg)` / `var(--gsl-text)` |
60
+ | `bg-secondary` / `text-secondary-foreground` | `var(--gsl-surface-dark)` / `var(--gsl-text-secondary)` |
61
+ | `bg-muted` / `text-muted-foreground` | `var(--gsl-surface-subtle)` / `var(--gsl-text-secondary)` |
62
+ | `bg-accent` / `text-accent-foreground` | `var(--gsl-hover)` / `var(--gsl-text)` |
63
+ | `bg-destructive` / `text-destructive-foreground` | `var(--gsl-error)` / `var(--gsl-error-text)` |
64
+ | `bg-card` / `text-card-foreground` | `var(--gsl-bg)` / `var(--gsl-text)` |
65
+ | `bg-popover` / `text-popover-foreground` | `var(--gsl-bg)` / `var(--gsl-text)` |
66
+ | `border` / `input` / `ring` | `var(--gsl-border)` / `var(--gsl-border-strong)` / `var(--gsl-focus)` |
67
+ | `rounded-lg` | `var(--gsl-radius-base)` |
68
+ | `shadow-sm` / `shadow-md` / `shadow-lg` | `var(--gsl-shadow-sm)` / etc. |
69
+ | `font-sans` | `var(--gsl-font)` |
70
+
71
+ **Dark mode** supports both conventions: `<html class="dark">` (Tailwind default) and `<html data-gsl-theme="dark">`.
72
+
73
+ **Non-Tailwind consumers** are unaffected. Browsers silently ignore `@theme` as an unknown at-rule. All `--gsl-*` tokens continue to work as CSS custom properties.
74
+
75
+ ### 6. Next.js App Router
76
+
77
+ The library ships a `/next` subpath for Next.js App Router. All components and hooks work with Next.js by wrapping your app in `RouterAdapterProvider`:
78
+
79
+ ```tsx
80
+ // app/providers.tsx
81
+ "use client";
82
+ import { RouterAdapterProvider, useNextRouterAdapter } from "@rfdtech/components/next";
83
+
84
+ export function Providers({ children }) {
85
+ const adapter = useNextRouterAdapter();
86
+ return <RouterAdapterProvider value={adapter}>{children}</RouterAdapterProvider>;
87
+ }
88
+ ```
89
+
90
+ Then use components from `@rfdtech/components/next`:
91
+
92
+ ```tsx
93
+ import { useTableState, SidebarLink } from "@rfdtech/components/next";
94
+ ```
95
+
96
+ See the [RouterAdapter](/docs/router-adapter) docs page for full setup.
97
+
98
+ ### 7. Customize tokens
99
+
100
+ GSL components read `--gsl-*` CSS variables. Override any of them by
101
+ declaring a new value on the same selectors the library uses.
102
+
103
+ **Step 1 — Import the library CSS** so its defaults are loaded:
104
+
105
+ ```ts title="src/main.tsx"
106
+ import "@rfdtech/components/style.css";
107
+ ```
108
+
109
+ **Step 2 — Create a theme override file** and import it AFTER the
110
+ library CSS. CSS source order matters: later rules with the same
111
+ specificity win.
112
+
113
+ ```ts title="src/main.tsx"
114
+ import "@rfdtech/components/style.css";
115
+ import "./styles/theme.css"; // imported after
116
+ ```
117
+
118
+ **Step 3 — Override the tokens.** The library writes its defaults on
119
+ these selectors:
120
+
121
+ | Selector | When it matches |
122
+ |----------|-----------------|
123
+ | `:root` | No theme attribute is set (no `ThemeProvider` mounted) |
124
+ | `:root[data-gsl-theme="light"]` | Light mode on `<html>` — `ThemeProvider` writes the attribute here |
125
+ | `:root[data-gsl-theme="dark"]` | Dark mode on `<html>` |
126
+ | `.gsl-theme` | A consumer wrapper `<div class="gsl-theme">` |
127
+ | `.gsl-theme[data-gsl-theme="light"]` | Wrapper + light attribute |
128
+ | `.gsl-theme[data-gsl-theme="dark"]` | Wrapper + dark attribute |
129
+
130
+ A bare `:root { ... }` only matches the first row, so the library's
131
+ default keeps winning on rows 2–6 once `ThemeProvider` mounts. To
132
+ cover all of them, list every selector in one rule and hardcode the
133
+ values (don't chain `var(--something)` — just write the color):
134
+
135
+ ```css title="src/styles/theme.css"
136
+ :root,
137
+ :root[data-gsl-theme="light"],
138
+ .gsl-theme[data-gsl-theme="light"],
139
+ :root[data-gsl-theme="dark"],
140
+ .gsl-theme[data-gsl-theme="dark"] {
141
+ --gsl-primary: #1d4ed8;
142
+ --gsl-primary-light: #eff6ff;
143
+ --gsl-focus: #1d4ed8;
144
+ --gsl-on-primary: #ffffff;
145
+ }
146
+ ```
147
+
148
+ That one block overrides the primary color in light mode, dark mode,
149
+ and the unthemed fallback. The same shape works for any other
150
+ `--gsl-*` token — list every selector, hardcode the value.
151
+
152
+ ## Design tokens
153
+
154
+ Quick reference of commonly used tokens and their light-mode defaults:
35
155
 
36
156
  | Token | Light default | Use |
37
- |-------|---------------|-----|
157
+ | ------- | --------------- | ----- |
38
158
  | `--gsl-primary` | `#dc2626` | Buttons, focus rings, accents |
39
159
  | `--gsl-primary-light` | `#fef2f2` | Selected rows, hover fills |
40
160
  | `--gsl-bg` | `#ffffff` | Surfaces |
@@ -46,25 +166,9 @@ Use `useTheme()` to read or change the active theme at runtime. See the [Theme](
46
166
  | `--gsl-success` | `#16a34a` | Success states |
47
167
  | `--gsl-warning` | `#eab308` | Warnings |
48
168
 
49
- You can still override tokens on any ancestor without `ThemeProvider`:
50
-
51
- ```css
52
- .my-app {
53
- --gsl-primary: #1d4ed8;
54
- --gsl-primary-light: #eff6ff;
55
- }
56
- ```
57
-
58
169
  `BulkImportModal` also accepts legacy aliases (`--gsl-bulk-import-primary`, etc.) that map to the shared tokens.
59
170
 
60
- ## Install
61
-
62
- ```bash
63
- npm install @rfdtech/components
64
- ```
65
-
66
- Requires React 18+. npm 7+ auto-installs `react` and `react-dom` as peer dependencies. Radix UI and other runtime packages are included as dependencies of `@rfdtech/components`.
67
-
171
+ See the [Theme](/docs/theme) docs page for the full token reference (radius, shadows, z-index, fonts) and controlled mode.
68
172
 
69
173
  ## Hooks
70
174
 
@@ -91,7 +195,6 @@ openWith({ userId: "42" });
91
195
 
92
196
  Exports: `useSearchParamOverlay`, `useDialogSearchParam`, `useModalSearchParam`, `createSearchParamAdapter`, `createBrowserSearchParamAdapter`, `readOverlayData`, `writeOverlayData`, `clearOverlayData`, `getDataPrefix`. Types: `SearchParamOverlayState`, `SearchParamOverlayData`, `SearchParamAdapter`, `UseSearchParamOverlayOptions`, `UseSearchParamOverlayReturn`.
93
197
 
94
-
95
198
  ## AppHeader
96
199
 
97
200
  Compound header bar with `AppHeader`, `AppHeaderSearch`, `AppHeaderActions`, `AppHeaderNotifications`, and `AppHeaderProfile`. Nest search on the left and group switcher, notifications, and profile inside `AppHeaderActions` on the right.
@@ -129,7 +232,6 @@ import {
129
232
 
130
233
  Props: `AppHeader` — `className`, `children`. `AppHeaderActions` — `className`, `children`. Exported types: `AppHeaderProps`, `AppHeaderActionsProps`, `AppHeaderSearchProps`, `AppHeaderSearchDataGroup`, `AppHeaderSearchItem`, `AppHeaderNotificationsProps`, `AppHeaderProfileProps`, `AppUser`.
131
234
 
132
-
133
235
  ## AppLayout
134
236
 
135
237
  Application layout container that auto-positions `AppHeader`, `AppSidebar`, and `AppBody` by component type. Sidebar on the left, header sticky at the top, main content filling the rest. See the [AppLayout](/docs/app-layout) docs page for props and exported types.
@@ -150,7 +252,6 @@ import { AppLayout, AppSidebar, AppBody } from "@rfdtech/components";
150
252
 
151
253
  Props: `AppLayout` — `children`, `className`. `AppSidebar` — `children`, `className`. `AppBody` — `children`, `className`. Exported types: `AppLayoutProps`, `AppSidebarProps`, `AppBodyProps`.
152
254
 
153
-
154
255
  ## AppSwitcher
155
256
 
156
257
  Google Apps–style 9-dot launcher for switching between GSL systems. Drop it into your header to let users jump between products. Pass `apps` directly from your own data layer; use `loading` while data is being fetched.
@@ -176,7 +277,6 @@ Props: `apps`, `loading`, `loadingLabel`, `columns`, `open`, `onOpenChange`, `on
176
277
 
177
278
  Also exported: `AppSwitcherItem`, `GridIcon`, `SystemAppIcon`, `useAppSwitcher`.
178
279
 
179
-
180
280
  ## Badge
181
281
 
182
282
  Compact inline label for status, counts, and metadata with semantic color variants. See the [Badge](/docs/badge) docs page for props and exported types.
@@ -194,7 +294,6 @@ import { Badge } from "@rfdtech/components";
194
294
 
195
295
  Props: `variant`, `size`, `classNames`, `className`, and standard `span` attributes. Exported types: `BadgeProps`, `BadgeClassNames`, `BadgeVariant`, `BadgeSize`.
196
296
 
197
-
198
297
  ## Breadcrumb
199
298
 
200
299
  Compound breadcrumb primitives for hierarchical page trails. See the [Breadcrumb](/docs/breadcrumb) docs page for props and exported types.
@@ -224,7 +323,6 @@ import {
224
323
 
225
324
  Exported parts: `Breadcrumb`, `BreadcrumbList`, `BreadcrumbItem`, `BreadcrumbLink`, `BreadcrumbPage`, `BreadcrumbSeparator`, `BreadcrumbEllipsis`. Exported types: `BreadcrumbProps`, `BreadcrumbLinkProps`, `BreadcrumbPageProps`, and related `*ClassNames` interfaces.
226
325
 
227
-
228
326
  ## BulkImportModal
229
327
 
230
328
  Four-step modal wizard for importing spreadsheet data (.xlsx, .xls, .csv). Parsing and validation run entirely in the browser.
@@ -268,7 +366,7 @@ The first worksheet is used for multi-sheet workbooks. Discarded rows are exclud
268
366
  ### Props
269
367
 
270
368
  | Prop | Type | Default | Description |
271
- |------|------|---------|-------------|
369
+ | ------ | ------ | --------- | ------------- |
272
370
  | `open` | `boolean` | required | Controlled open state |
273
371
  | `onOpenChange` | `(open: boolean) => void` | required | Open state callback |
274
372
  | `fields` | `BulkImportField[]` | required | Target field schema for column matching |
@@ -379,7 +477,6 @@ To change the gutter size, override `--gsl-bulk-import-gutter` on `.gsl-bulk-imp
379
477
  }
380
478
  ```
381
479
 
382
-
383
480
  ## Button
384
481
 
385
482
  Shared button with primary, secondary, outline, and ghost variants, plus loading and disabled states. See the [Button](/docs/button) docs page for props and exported types.
@@ -407,7 +504,6 @@ import { Button } from "@rfdtech/components";
407
504
 
408
505
  Props: `variant`, `size`, `loading`, `loadingLabel`, `classNames`, and standard `button` attributes. Exported types: `ButtonProps`, `ButtonClassNames`, `ButtonVariant`, `ButtonSize`.
409
506
 
410
-
411
507
  ## Card
412
508
 
413
509
  Surface card wrapper with optional header and design tokens for padding and background. Uses `--gsl-surface-card` for background and `--gsl-card-padding` for inner spacing. See the [Card](/docs/card) docs page for props and exported types.
@@ -422,7 +518,6 @@ import { Card } from "@rfdtech/components";
422
518
 
423
519
  Props: `header`, `children`, `classNames`, `className`, plus standard `div` attributes. Exported types: `CardProps`, `CardClassNames`.
424
520
 
425
-
426
521
  ## Checkbox
427
522
 
428
523
  Accessible checkbox with optional label and part-level `classNames`. See the [Checkbox](/docs/checkbox) docs page for props and exported types.
@@ -445,7 +540,6 @@ import { Checkbox } from "@rfdtech/components";
445
540
 
446
541
  Props: `checked`, `defaultChecked`, `onCheckedChange`, `label`, `disabled`, `required`, `name`, `value`, `id`, `aria-label`, `classNames`, `className`. Exported types: `CheckboxProps`, `CheckboxClassNames`.
447
542
 
448
-
449
543
  ## CountrySelector
450
544
 
451
545
  Country selector dropdown with flag emoji, country name, search filtering, and keyboard navigation. Built on `@radix-ui/react-popover`. See the [CountrySelector](/docs/country-selector) docs page for props and exported types.
@@ -460,7 +554,6 @@ import { CountrySelector } from "@rfdtech/components";
460
554
 
461
555
  Props: `value`, `defaultValue`, `onChange`, `placeholder`, `invalid`, `disabled`, `classNames`, `className`. Exported types: `CountrySelectorProps`, `CountrySelectorClassNames`.
462
556
 
463
-
464
557
  ## DateRangeSelector
465
558
 
466
559
  Date range picker with a single trigger showing the selected range, a calendar popover for two-click range selection, and auto-swap to keep start before end. See the [DateRangeSelector](/docs/date-range-selector) docs page for props and exported types.
@@ -477,7 +570,6 @@ import { DateRangeSelector } from "@rfdtech/components";
477
570
 
478
571
  Props: `value`, `defaultValue`, `onChange`, `placeholder`, `formatOptions`, `invalid`, `disabled`, `min`, `max`, `classNames`, `className`. Exported types: `DateRangeSelectorProps`, `DateRangeSelectorClassNames`, `DateRangeValue`.
479
572
 
480
-
481
573
  ## DateSelector
482
574
 
483
575
  Date picker for choosing a single date from a calendar grid. Built on `@radix-ui/react-popover`. See the [DateSelector](/docs/date-selector) docs page for props and exported types.
@@ -496,7 +588,6 @@ import { DateSelector } from "@rfdtech/components";
496
588
 
497
589
  Props: `value`, `defaultValue`, `onChange`, `placeholder`, `formatOptions`, `invalid`, `disabled`, `min`, `max`, `classNames`, `className`. Exported types: `DateSelectorProps`, `DateSelectorClassNames`.
498
590
 
499
-
500
591
  ## Command
501
592
 
502
593
  Compound command menu primitives for searchable, keyboard-navigable action lists. Supports inline pickers and modal palettes via `CommandDialog`. See the [Command](/docs/command) docs page for props and exported types.
@@ -544,7 +635,6 @@ const { open, onOpenChange, openWith } = useDialogSearchParam("command-menu");
544
635
 
545
636
  Exports: `Command`, `CommandDialog`, `CommandInput`, `CommandList`, `CommandEmpty`, `CommandGroup`, `CommandItem`, `CommandSeparator`, `CommandLoading`, `CommandShortcut`, `useCommandShortcut`. Exported types: `CommandProps`, `CommandDialogProps`, `CommandItemProps`, `CommandShortcutProps`, `UseCommandShortcutOptions`, and related `*ClassNames` types.
546
637
 
547
-
548
638
  ## RadioGroup
549
639
 
550
640
  Single-choice radio group with optional labels and descriptions on each `Radio` item. Use `variant="card"` for bordered choice cards. See the [RadioGroup](/docs/radio-group) docs page for props and exported types.
@@ -568,7 +658,6 @@ import { Radio, RadioGroup } from "@rfdtech/components";
568
658
 
569
659
  Props: `RadioGroup` — `value`, `defaultValue`, `onValueChange`, `name`, `disabled`, `required`, `orientation`, `variant`, `classNames`, `className`, `children`. `Radio` — `value`, `label`, `description`, `disabled`, `id`, `aria-label`, `classNames`, `className`. Exported types: `RadioGroupProps`, `RadioProps`, `RadioGroupClassNames`, `RadioClassNames`, `RadioGroupVariant`.
570
660
 
571
-
572
661
  ## Dropdown
573
662
 
574
663
  Select-style dropdown for choosing one option from a list. See the [Dropdown](/docs/dropdown) docs page for props and exported types.
@@ -591,7 +680,6 @@ import { Dropdown } from "@rfdtech/components";
591
680
 
592
681
  Props: `value`, `onValueChange`, `options`, `placeholder`, `clearable`, `disabled`, `aria-label`, `classNames`, `className`. Exported types: `DropdownProps`, `DropdownOption`, `DropdownClassNames`.
593
682
 
594
-
595
683
  ## Form
596
684
 
597
685
  Field, Input, and Textarea primitives for accessible form layouts. See the [Form](/docs/form) docs page for props and exported types.
@@ -617,7 +705,6 @@ import {
617
705
 
618
706
  Exports: `Field`, `FieldLabel`, `FieldDescription`, `FieldError`, `FieldControl`, `Input`, `Textarea`. Types: `FieldProps`, `FieldClassNames`, `InputProps`, `TextareaProps`.
619
707
 
620
-
621
708
  ## FormField
622
709
 
623
710
  react-hook-form adapters with Zod validation support. See the [FormField](/docs/form-field) docs page for props and exported types.
@@ -674,7 +761,6 @@ const form = useForm<FormValues>({
674
761
 
675
762
  Exports: `Form`, `FormField`, `useFormField`. Types: `FormProps`, `FormFieldProps`, `UseFormFieldReturn`.
676
763
 
677
-
678
764
  ## Dialog
679
765
 
680
766
  Compound dialog primitives for modal overlays. See the [Dialog](/docs/dialog) docs page for props and exported types.
@@ -714,7 +800,6 @@ const { open, data, onOpenChange, openWith } = useDialogSearchParam<{
714
800
 
715
801
  Props: `Dialog` — `open`, `defaultOpen`, `onOpenChange`. `DialogContent` — `showCloseButton`, `classNames`, `className`. Styled parts also support part-level `classNames`. Exported types: `DialogOverlayProps`, `DialogContentProps`, `DialogTitleProps`, `DialogDescriptionProps`, and related `*ClassNames` interfaces.
716
802
 
717
-
718
803
  ## Draggable
719
804
 
720
805
  Repositionable panel primitive with optional handle and bounded pointer dragging. See the [Draggable](/docs/draggable) docs page for props and exported types.
@@ -732,7 +817,6 @@ import { Draggable, DraggableHandle } from "@rfdtech/components";
732
817
 
733
818
  Exports: `Draggable`, `DraggableHandle`, `useDraggable`, `clampPosition`. Types: `DraggableProps`, `DraggableHandleProps`, `DraggablePosition`, `DraggableBounds`, `DraggableAxis`, `UseDraggableOptions`, `UseDraggableReturn`.
734
819
 
735
-
736
820
  ## MetricCard
737
821
 
738
822
  Compact dashboard card for displaying a metric value, label, trend indicator, and optional icon or description. Variants (`default`, `primary`, `success`, `warning`, `error`) only affect the trend color — background and text stay neutral. Use the `color` prop for custom accent colors.
@@ -753,7 +837,6 @@ import { MetricCard } from "@rfdtech/components";
753
837
 
754
838
  Props: `label`, `value`, `icon`, `description`, `trend`, `trendValue`, `variant`, `color`, `classNames`, `className`, plus standard `div` attributes. Exported types: `MetricCardProps`, `MetricCardClassNames`, `MetricCardVariant`, `MetricTrend`.
755
839
 
756
-
757
840
  ## Modal
758
841
 
759
842
  Centered modal with four size variants (`sm`, `md`, `lg`, `xl`), popover-style border, and optional close-prevention. Size tokens are independently customizable via `--gsl-modal-max-width-*`. See the [Modal](/docs/modal) docs page for props and exported types.
@@ -797,7 +880,6 @@ const { open, onOpenChange, openWith } = useModalSearchParam("review-changes");
797
880
 
798
881
  Props: `Modal` — `open`, `defaultOpen`, `onOpenChange`. `ModalContent` — `showCloseButton`, `size`, `preventClose`, `preventCloseTitle`, `preventCloseDescription`, `onOpenChange`, `classNames`, `className`. Layout parts (`ModalHeader`, `ModalBody`, `ModalFooter`) support part-level `classNames`. Exported types: `ModalSize`, `ModalOverlayProps`, `ModalContentProps`, `ModalHeaderProps`, `ModalTitleProps`, `ModalDescriptionProps`, `ModalBodyProps`, `ModalFooterProps`, and related `*ClassNames` interfaces.
799
882
 
800
-
801
883
  ## NetworkOperator
802
884
 
803
885
  Network operator selector with operator image thumbnails (MTN, Vodafone, AirtelTigo, Glo), search filtering, and keyboard navigation. Built on `@radix-ui/react-popover`. See the [NetworkOperator](/docs/network-operator) docs page for props and exported types.
@@ -812,7 +894,6 @@ import { NetworkOperator } from "@rfdtech/components";
812
894
 
813
895
  Props: `value`, `defaultValue`, `onChange`, `options`, `placeholder`, `invalid`, `disabled`, `classNames`, `className`. Exported types: `NetworkOperatorProps`, `NetworkOperatorOption`, `NetworkOperatorClassNames`.
814
896
 
815
-
816
897
  ## OtpInput
817
898
 
818
899
  One-time password input with configurable digit length, paste support, keyboard navigation (arrow keys, backspace), auto-focus advancement, and `onComplete` callback. See the [OtpInput](/docs/otp-input) docs page for props and exported types.
@@ -827,7 +908,6 @@ import { OtpInput } from "@rfdtech/components";
827
908
 
828
909
  Props: `length`, `value`, `onChange`, `onComplete`, `invalid`, `disabled`, `name`, `classNames`, `className`. Exported types: `OtpInputProps`, `OtpInputClassNames`.
829
910
 
830
-
831
911
  ## PhoneNumberInput
832
912
 
833
913
  Phone number input with a country code selector (flag + dial code prefix) that auto-detects the country from the number prefix as the user types. Built on `@radix-ui/react-popover`. See the [PhoneNumberInput](/docs/phone-number-input) docs page for props and exported types.
@@ -842,7 +922,6 @@ import { PhoneNumberInput } from "@rfdtech/components";
842
922
 
843
923
  Props: `value`, `defaultValue`, `onChange`, `invalid`, `disabled`, `classNames`, `className`. Exported types: `PhoneNumberInputProps`, `PhoneNumberInputClassNames`.
844
924
 
845
-
846
925
  ## Popover
847
926
 
848
927
  Compound popover primitives for floating panels. See the [Popover](/docs/popover) docs page for props and exported types.
@@ -888,7 +967,6 @@ import {
888
967
 
889
968
  Exports: `Popover`, `PopoverTrigger`, `PopoverContent`, `PopoverPortal`, `PopoverAnchor`, `PopoverClose`. Exported types: `PopoverContentProps`, `PopoverContentClassNames`.
890
969
 
891
-
892
970
  ## ProgressBar
893
971
 
894
972
  Accessible progress indicator for task completion and loading states. See the [ProgressBar](/docs/progress-bar) docs page for props and exported types.
@@ -903,10 +981,22 @@ import { ProgressBar } from "@rfdtech/components";
903
981
 
904
982
  Props: `value`, `max`, `variant`, `size`, `indeterminate`, `label`, `showValue`, `classNames`, `className`, and standard `div` attributes. Exported types: `ProgressBarProps`, `ProgressBarClassNames`, `ProgressBarVariant`, `ProgressBarSize`.
905
983
 
984
+ ## RouterAdapter
985
+
986
+ Framework-agnostic router abstraction for Next.js and react-router compatibility.
987
+
988
+ Seven files that previously imported `react-router-dom` directly (`useTableFilter`, `useTablePagination`, `useTableState`, `TableSearch`, `TableFilter`, `TablePagination`, `SidebarLink`, `AppLayoutInner`) now consume `RouterAdapter` from context. The library ships two entry points:
989
+
990
+ - `@rfdtech/components` — default, backward compatible (react-router-dom)
991
+ - `@rfdtech/components/next` — Next.js App Router support via `<RouterAdapterProvider>`
992
+
993
+ See the [RouterAdapter](/docs/router-adapter) docs page for setup instructions.
994
+
995
+ Exports: `RouterAdapterProvider`, `setRouterAdapter`, `getRouterAdapter`. Types: `RouterAdapterValue`, `RouterSearchParams`, `RouterLinkComponent`.
906
996
 
907
997
  ## Sidebar
908
998
 
909
- Compound sidebar primitives for app shells and section navigation. Desktop uses a sticky card-style rail with optional collapse; mobile uses an offcanvas drawer with trigger and overlay. See the [Sidebar](/docs/sidebar) docs page for props and exported types.
999
+ Compound sidebar primitives for app shells and section navigation. Desktop uses a sticky card-style rail with optional collapse; mobile uses an offcanvas drawer with trigger and overlay. `SidebarGroup` supports a `collapsible` flag that turns the group label into a button toggle with an animated open/close for the group's content. See the [Sidebar](/docs/sidebar) docs page for props and exported types.
910
1000
 
911
1001
  ```tsx
912
1002
  import {
@@ -953,7 +1043,6 @@ import {
953
1043
 
954
1044
  Exports: `SidebarProvider`, `useSidebar`, `Sidebar`, `SidebarBadge`, `SidebarCollapse`, `SidebarTrigger`, `SidebarOverlay`, `SidebarHeader`, `SidebarContent`, `SidebarFooter`, `SidebarNav`, `SidebarGroup`, `SidebarGroupLabel`, `SidebarItem`, `SidebarLink`. Exported types: `SidebarProviderProps`, `SidebarProps`, `SidebarLinkProps`, `SidebarBadgeProps`, `SidebarCollapseProps`, and related `*ClassNames` types.
955
1045
 
956
-
957
1046
  ## Sheet
958
1047
 
959
1048
  Compound sheet primitives for edge-sliding panels. See the [Sheet](/docs/sheet) docs page for props and exported types.
@@ -996,7 +1085,6 @@ import {
996
1085
 
997
1086
  Props: `Sheet` — `open`, `defaultOpen`, `onOpenChange`. `SheetContent` — `side`, `showCloseButton`, `classNames`, `className`. Layout parts support part-level `classNames`. Exported types: `SheetSide`, `SheetOverlayProps`, `SheetContentProps`, `SheetHeaderProps`, `SheetTitleProps`, `SheetDescriptionProps`, `SheetBodyProps`, `SheetFooterProps`, and related `*ClassNames` interfaces.
998
1087
 
999
-
1000
1088
  ## Sortable
1001
1089
 
1002
1090
  Reorderable list primitive with optional drag handles and keyboard support. See the [Sortable](/docs/sortable) docs page for props and exported types.
@@ -1026,6 +1114,33 @@ const [items, setItems] = useState(["alpha", "beta", "gamma"]);
1026
1114
 
1027
1115
  Exports: `Sortable`, `SortableList`, `SortableItem`, `SortableHandle`, `reorderItems`. Types: `SortableProps`, `SortableListProps`, `SortableItemProps`, `SortableHandleProps`, `SortableId`, `SortableStrategy`, `SortableClassNames`.
1028
1116
 
1117
+ ## Stepper
1118
+
1119
+ Horizontal step indicator for multi-step flows. `Stepper` holds the active step value and derives each `Step`'s `complete` / `active` / `upcoming` state. Each step renders a numbered circle that flips to a check when done, with a connector line that fills between completed steps. Add a `StepLabel` for the step's text. See the [Stepper](/docs/stepper) docs page for props and exported types.
1120
+
1121
+ ```tsx
1122
+ import { useState } from "react";
1123
+ import { Step, StepLabel, Stepper } from "@rfdtech/components";
1124
+
1125
+ const [step, setStep] = useState(3);
1126
+
1127
+ <Stepper value={step} clickable onValueChange={setStep}>
1128
+ <Step value={1}>
1129
+ <StepLabel>Upload Document</StepLabel>
1130
+ </Step>
1131
+ <Step value={2}>
1132
+ <StepLabel>Select header row</StepLabel>
1133
+ </Step>
1134
+ <Step value={3}>
1135
+ <StepLabel>Match Columns</StepLabel>
1136
+ </Step>
1137
+ <Step value={4}>
1138
+ <StepLabel>Validate data</StepLabel>
1139
+ </Step>
1140
+ </Stepper>
1141
+ ```
1142
+
1143
+ Exports: `Stepper`, `Step`, `StepLabel`. Also available as `Stepper.Step`, `Stepper.StepLabel` for compound-style imports. Props: `Stepper` — `value`, `clickable`, `onValueChange`, `classNames`, `className`, `children`. `Step` — `value`, `disabled`, `classNames`, `className`, `children`. `StepLabel` — `classNames`, `className`, `children`. Exported types: `StepperProps`, `StepProps`, `StepLabelProps`, `StepperClassNames`, `StepClassNames`, `StepLabelClassNames`, `StepperContextValue`, `StepState`, `StepInternalProps`. Retheme via `--gsl-stepper-accent` (defaults to `--gsl-primary`) and related `--gsl-stepper-*` custom properties.
1029
1144
 
1030
1145
  ## Table
1031
1146
 
@@ -1074,7 +1189,6 @@ const [selected, setSelected] = useState<Set<string | number>>(new Set());
1074
1189
 
1075
1190
  Props: `paramPrefix`, `classNames`, `className`. Exports: `Table`, `TableHeader`, `TableSearch`, `TableFilter`, `TableContent`, `TableBulkActions`, `TableFooter`, `TablePagination`. Types: `TableProps`, `TableHeaderProps`, `TableContentProps`, `TableFooterProps`, `TableSearchProps`, `TableFilterProps`, `TableBulkActionsProps`, `TableBulkAction`, `TableBulkActionsClassNames`, `TableClassNames`, `PaginationControlsProps`, `TableColumn`.
1076
1191
 
1077
-
1078
1192
  ## Tabs
1079
1193
 
1080
1194
  Compound tabs primitives for switching between related panels. See the [Tabs](/docs/tabs) docs page for props and exported types.
@@ -1092,8 +1206,36 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@rfdtech/components";
1092
1206
  </Tabs>
1093
1207
  ```
1094
1208
 
1095
- Exports: `Tabs`, `TabsList`, `TabsTrigger`, `TabsContent`. Props: `Tabs` — `value`, `defaultValue`, `onValueChange`, `orientation`, `activationMode`, `variant`, `classNames`, `className`, `children`. `TabsTrigger` — `value`, `disabled`, `classNames`, `className`. Exported types: `TabsProps`, `TabsListProps`, `TabsTriggerProps`, `TabsContentProps`, `TabsVariant`, `TabsClassNames`, `TabsListClassNames`, `TabsTriggerClassNames`, `TabsContentClassNames`.
1209
+ Exports: `Tabs`, `TabsList`, `TabsTrigger`, `TabsContent`. Props: `Tabs` — `value`, `defaultValue`, `onValueChange`, `orientation`, `activationMode`, `variant` (`"default"`, `"line"`, `"pill"`), `classNames`, `className`, `children`. `TabsTrigger` — `value`, `disabled`, `classNames`, `className`. Exported types: `TabsProps`, `TabsListProps`, `TabsTriggerProps`, `TabsContentProps`, `TabsVariant`, `TabsClassNames`, `TabsListClassNames`, `TabsTriggerClassNames`, `TabsContentClassNames`.
1210
+
1211
+ ## Timeline
1096
1212
 
1213
+ Composable vertical timeline with `Timeline` and `TimelineItem` primitives. Dot color variants for past, current, warning, and error events with optional `color` override. Sub-components `TimelineTitle`, `TimelineData`, and `TimelineFooter` provide styled content slots. Connector animations with staggered draw-in. See the [Timeline](/docs/timeline) docs page for props and exported types.
1214
+
1215
+ ```tsx
1216
+ import {
1217
+ Timeline,
1218
+ TimelineData,
1219
+ TimelineFooter,
1220
+ TimelineItem,
1221
+ TimelineTitle,
1222
+ } from "@rfdtech/components";
1223
+ import { Check, AlertTriangle } from "lucide-react";
1224
+
1225
+ <Timeline>
1226
+ <TimelineItem status="complete" icon={<Check size={10} strokeWidth={3} />}>
1227
+ <TimelineTitle>Case reported</TimelineTitle>
1228
+ <TimelineData>12 Jun 2026</TimelineData>
1229
+ <TimelineFooter>HR Officer intake</TimelineFooter>
1230
+ </TimelineItem>
1231
+ <TimelineItem status="warning" icon={<AlertTriangle size={10} strokeWidth={3} />}>
1232
+ <TimelineTitle>Response overdue</TimelineTitle>
1233
+ <TimelineData>Since 3 Jul 2026</TimelineData>
1234
+ </TimelineItem>
1235
+ </Timeline>
1236
+ ```
1237
+
1238
+ Exports: `Timeline`, `TimelineItem`, `TimelineTitle`, `TimelineData`, `TimelineFooter`. Exported types: `TimelineProps`, `TimelineItemProps`, `TimelineTitleProps`, `TimelineDataProps`, `TimelineFooterProps`, `TimelineClassNames`, `TimelineItemClassNames`, `TimelineTitleClassNames`, `TimelineDataClassNames`, `TimelineFooterClassNames`, `TimelineItemMode`.
1097
1239
 
1098
1240
  ## Toast
1099
1241
 
@@ -1120,7 +1262,6 @@ toast({
1120
1262
 
1121
1263
  Exports: `ToastProvider`, `Toaster`, `useToast`. Types: `ToastOptions`, `ToastVariant`, `ToastProviderProps`, `ToasterProps`, `UseToastReturn`, `ToastClassNames`, `ToastAction`, `ToastReturn`.
1122
1264
 
1123
-
1124
1265
  ## Tooltip
1125
1266
 
1126
1267
  Pure-CSS hover tooltip with directional arrow (top, right, bottom, left). Used internally by SidebarLink on the collapsed icon rail. See the [Tooltip](/docs/tooltip) docs page for props and exported types.
@@ -1137,7 +1278,6 @@ import { Tooltip } from "@rfdtech/components";
1137
1278
 
1138
1279
  Props: `content`, `side`, `classNames`, `className`. Exported types: `TooltipProps`, `TooltipClassNames`.
1139
1280
 
1140
-
1141
1281
  ## UploadField
1142
1282
 
1143
1283
  File upload with dashed-border dropzone, cloud upload icon, auto-generated file type/size support text, file cards with type icons, and a primary action button. See the [UploadField](/docs/upload-field) docs page for props and exported types.
@@ -1158,7 +1298,6 @@ Props: `accept`, `multiple`, `maxSize`, `value`, `onChange`, `invalid`, `disable
1158
1298
 
1159
1299
  Props: `accept`, `multiple`, `maxSize`, `value`, `onChange`, `invalid`, `disabled`, `placeholder`, `classNames`, `className`. Exported types: `UploadFieldProps`, `UploadFieldClassNames`.
1160
1300
 
1161
-
1162
1301
  ## Development
1163
1302
 
1164
1303
  ```bash
@@ -0,0 +1,18 @@
1
+ import type { RouterAdapterValue } from "../types/router-adapter";
2
+ /**
3
+ * Router adapter that reads from `RouterAdapterContext` only.
4
+ * Throws if no provider is present.
5
+ *
6
+ * This adapter has zero dependency on `react-router-dom`.
7
+ * It is used by the `@rfdtech/components/next` entry point.
8
+ *
9
+ * Consumers must wrap their app in `<RouterAdapterProvider>`:
10
+ *
11
+ * ```tsx
12
+ * <RouterAdapterProvider value={adapter}>
13
+ * <App />
14
+ * </RouterAdapterProvider>
15
+ * ```
16
+ */
17
+ export declare function useContextRouterAdapter(): RouterAdapterValue;
18
+ //# sourceMappingURL=context-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/context-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,kBAAkB,CAY5D"}
@@ -0,0 +1,23 @@
1
+ import type { RouterAdapterValue } from "../types/router-adapter";
2
+ /**
3
+ * Create a `RouterAdapterValue` for Next.js App Router.
4
+ *
5
+ * Consumers import this hook and pass the result to `<RouterAdapterProvider>`:
6
+ *
7
+ * ```tsx
8
+ * // app/providers.tsx
9
+ * 'use client';
10
+ * import { RouterAdapterProvider, useNextRouterAdapter } from '@rfdtech/components/next';
11
+ *
12
+ * export function Providers({ children }) {
13
+ * const adapter = useNextRouterAdapter();
14
+ * return (
15
+ * <RouterAdapterProvider value={adapter}>
16
+ * {children}
17
+ * </RouterAdapterProvider>
18
+ * );
19
+ * }
20
+ * ```
21
+ */
22
+ export declare function useNextRouterAdapter(): RouterAdapterValue;
23
+ //# sourceMappingURL=next-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/next-adapter.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,kBAAkB,EAElB,MAAM,yBAAyB,CAAC;AAUjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,CA8CzD"}
@@ -0,0 +1,9 @@
1
+ import type { RouterAdapterValue } from "../types/router-adapter";
2
+ /**
3
+ * Default router adapter backed by react-router-dom's `useSearchParams`
4
+ * and `Link`. This is the standard adapter for Vite / react-router consumers.
5
+ *
6
+ * Injected into the registry by `src/index.ts`.
7
+ */
8
+ export declare function useReactRouterAdapter(): RouterAdapterValue;
9
+ //# sourceMappingURL=react-router-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-router-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/react-router-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAW1D"}
@@ -0,0 +1,19 @@
1
+ import type { RouterAdapterValue } from "../types/router-adapter";
2
+ /**
3
+ * Inject the router adapter factory. Called once by the entry point
4
+ * (`src/index.ts` or `src/next-index.ts`) at module load time.
5
+ *
6
+ * - Default entry injects `useReactRouterAdapter` (react-router-dom)
7
+ * - Next.js entry injects `useContextRouterAdapter` (context-only)
8
+ */
9
+ export declare function setRouterAdapter(fn: () => RouterAdapterValue): void;
10
+ /**
11
+ * Called by every hook/component that needs router primitives.
12
+ * Returns the search params + Link component for the current framework.
13
+ *
14
+ * This MUST be called at the top of a hook or component function
15
+ * (like any hook) — the returned adapter function internally
16
+ * calls hooks.
17
+ */
18
+ export declare function getRouterAdapter(): RouterAdapterValue;
19
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAWrD"}
@@ -1,5 +1,6 @@
1
- import type { AppHeaderProps, AppHeaderActionsProps } from "../../types/app-header";
1
+ import type { AppHeaderProps, AppHeaderActionsProps, AppHeaderBrandingProps } from "../../types/app-header";
2
2
  import "./styles/app-header.css";
3
- export declare const AppHeader: ({ className, children, ...props }: AppHeaderProps) => import("react").JSX.Element;
3
+ export declare const AppHeader: ({ className, children, variant, ...props }: AppHeaderProps) => import("react").JSX.Element;
4
4
  export declare const AppHeaderActions: ({ className, children, ...props }: AppHeaderActionsProps) => import("react").JSX.Element;
5
+ export declare const AppHeaderBranding: ({ className, logo, title, subtitle, children, }: AppHeaderBrandingProps) => import("react").JSX.Element;
5
6
  //# sourceMappingURL=AppHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpF,OAAO,yBAAyB,CAAC;AAEjC,eAAO,MAAM,SAAS,GAAI,mCAAmC,cAAc,gCAE1E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,mCAAmC,qBAAqB,gCAMxF,CAAC"}
1
+ {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,yBAAyB,CAAC;AAEjC,eAAO,MAAM,SAAS,GAAI,4CAKvB,cAAc,gCAahB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,mCAAmC,qBAAqB,gCAMxF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,iDAM/B,sBAAsB,gCAqBxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeaderProfile.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeaderProfile.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAMpE,eAAO,MAAM,gBAAgB,kHAgE3B,CAAC"}
1
+ {"version":3,"file":"AppHeaderProfile.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeaderProfile.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAMpE,eAAO,MAAM,gBAAgB,kHA4E3B,CAAC"}