@rfdtech/components 1.8.0 → 1.14.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 (158) hide show
  1. package/README.md +260 -0
  2. package/dist/components/app-header/AppHeader.d.ts +5 -0
  3. package/dist/components/app-header/AppHeader.d.ts.map +1 -0
  4. package/dist/components/app-header/AppHeader.test.d.ts +2 -0
  5. package/dist/components/app-header/AppHeader.test.d.ts.map +1 -0
  6. package/dist/components/app-header/AppHeaderNotifications.d.ts +3 -0
  7. package/dist/components/app-header/AppHeaderNotifications.d.ts.map +1 -0
  8. package/dist/components/app-header/AppHeaderProfile.d.ts +3 -0
  9. package/dist/components/app-header/AppHeaderProfile.d.ts.map +1 -0
  10. package/dist/components/app-header/AppHeaderSearch.d.ts +4 -0
  11. package/dist/components/app-header/AppHeaderSearch.d.ts.map +1 -0
  12. package/dist/components/app-header/index.d.ts +6 -0
  13. package/dist/components/app-header/index.d.ts.map +1 -0
  14. package/dist/components/app-layout/AppBody.d.ts +7 -0
  15. package/dist/components/app-layout/AppBody.d.ts.map +1 -0
  16. package/dist/components/app-layout/AppLayout.d.ts +8 -0
  17. package/dist/components/app-layout/AppLayout.d.ts.map +1 -0
  18. package/dist/components/app-layout/AppLayout.test.d.ts +2 -0
  19. package/dist/components/app-layout/AppLayout.test.d.ts.map +1 -0
  20. package/dist/components/app-layout/AppSidebar.d.ts +8 -0
  21. package/dist/components/app-layout/AppSidebar.d.ts.map +1 -0
  22. package/dist/components/app-layout/index.d.ts +7 -0
  23. package/dist/components/app-layout/index.d.ts.map +1 -0
  24. package/dist/components/bulk-import-modal/BulkImportModal.d.ts.map +1 -1
  25. package/dist/components/bulk-import-modal/hooks/useBulkImportFlow.d.ts.map +1 -1
  26. package/dist/components/bulk-import-modal/steps/MatchColumnsStep.d.ts.map +1 -1
  27. package/dist/components/bulk-import-modal/steps/ValidateDataStep.d.ts.map +1 -1
  28. package/dist/components/card/Card.d.ts +4 -0
  29. package/dist/components/card/Card.d.ts.map +1 -0
  30. package/dist/components/card/Card.test.d.ts +2 -0
  31. package/dist/components/card/Card.test.d.ts.map +1 -0
  32. package/dist/components/card/index.d.ts +3 -0
  33. package/dist/components/card/index.d.ts.map +1 -0
  34. package/dist/components/command/Command.d.ts.map +1 -1
  35. package/dist/components/country-selector/CountrySelector.d.ts +4 -0
  36. package/dist/components/country-selector/CountrySelector.d.ts.map +1 -0
  37. package/dist/components/country-selector/CountrySelector.test.d.ts +2 -0
  38. package/dist/components/country-selector/CountrySelector.test.d.ts.map +1 -0
  39. package/dist/components/country-selector/index.d.ts +3 -0
  40. package/dist/components/country-selector/index.d.ts.map +1 -0
  41. package/dist/components/date-range-selector/DateRangeSelector.d.ts +5 -0
  42. package/dist/components/date-range-selector/DateRangeSelector.d.ts.map +1 -0
  43. package/dist/components/date-range-selector/DateRangeSelector.test.d.ts +2 -0
  44. package/dist/components/date-range-selector/DateRangeSelector.test.d.ts.map +1 -0
  45. package/dist/components/date-range-selector/index.d.ts +3 -0
  46. package/dist/components/date-range-selector/index.d.ts.map +1 -0
  47. package/dist/components/date-selector/DateSelector.d.ts +4 -0
  48. package/dist/components/date-selector/DateSelector.d.ts.map +1 -0
  49. package/dist/components/date-selector/DateSelector.test.d.ts +2 -0
  50. package/dist/components/date-selector/DateSelector.test.d.ts.map +1 -0
  51. package/dist/components/date-selector/index.d.ts +3 -0
  52. package/dist/components/date-selector/index.d.ts.map +1 -0
  53. package/dist/components/dialog/Dialog.d.ts +4 -1
  54. package/dist/components/dialog/Dialog.d.ts.map +1 -1
  55. package/dist/components/dialog/index.d.ts +2 -2
  56. package/dist/components/dialog/index.d.ts.map +1 -1
  57. package/dist/components/dropdown/Dropdown.d.ts +1 -1
  58. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  59. package/dist/components/metric-card/MetricCard.d.ts +4 -0
  60. package/dist/components/metric-card/MetricCard.d.ts.map +1 -0
  61. package/dist/components/metric-card/MetricCard.test.d.ts +2 -0
  62. package/dist/components/metric-card/MetricCard.test.d.ts.map +1 -0
  63. package/dist/components/metric-card/index.d.ts +3 -0
  64. package/dist/components/metric-card/index.d.ts.map +1 -0
  65. package/dist/components/network-operator/NetworkOperator.d.ts +4 -0
  66. package/dist/components/network-operator/NetworkOperator.d.ts.map +1 -0
  67. package/dist/components/network-operator/NetworkOperator.test.d.ts +2 -0
  68. package/dist/components/network-operator/NetworkOperator.test.d.ts.map +1 -0
  69. package/dist/components/network-operator/index.d.ts +3 -0
  70. package/dist/components/network-operator/index.d.ts.map +1 -0
  71. package/dist/components/otp-input/OtpInput.d.ts +4 -0
  72. package/dist/components/otp-input/OtpInput.d.ts.map +1 -0
  73. package/dist/components/otp-input/OtpInput.test.d.ts +2 -0
  74. package/dist/components/otp-input/OtpInput.test.d.ts.map +1 -0
  75. package/dist/components/otp-input/index.d.ts +3 -0
  76. package/dist/components/otp-input/index.d.ts.map +1 -0
  77. package/dist/components/phone-number-input/PhoneNumberInput.d.ts +4 -0
  78. package/dist/components/phone-number-input/PhoneNumberInput.d.ts.map +1 -0
  79. package/dist/components/phone-number-input/PhoneNumberInput.test.d.ts +2 -0
  80. package/dist/components/phone-number-input/PhoneNumberInput.test.d.ts.map +1 -0
  81. package/dist/components/phone-number-input/index.d.ts +3 -0
  82. package/dist/components/phone-number-input/index.d.ts.map +1 -0
  83. package/dist/components/sidebar/Sidebar.d.ts +2 -1
  84. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  85. package/dist/components/sidebar/index.d.ts +2 -2
  86. package/dist/components/sidebar/index.d.ts.map +1 -1
  87. package/dist/components/table/Table.d.ts +26 -0
  88. package/dist/components/table/Table.d.ts.map +1 -0
  89. package/dist/components/table/Table.test.d.ts +2 -0
  90. package/dist/components/table/Table.test.d.ts.map +1 -0
  91. package/dist/components/table/TableBulkActions.d.ts +3 -0
  92. package/dist/components/table/TableBulkActions.d.ts.map +1 -0
  93. package/dist/components/table/TableContext.d.ts +6 -0
  94. package/dist/components/table/TableContext.d.ts.map +1 -0
  95. package/dist/components/table/TableHeader.d.ts +10 -0
  96. package/dist/components/table/TableHeader.d.ts.map +1 -0
  97. package/dist/components/table/TablePagination.d.ts +4 -0
  98. package/dist/components/table/TablePagination.d.ts.map +1 -0
  99. package/dist/components/table/index.d.ts +6 -0
  100. package/dist/components/table/index.d.ts.map +1 -0
  101. package/dist/components/upload-field/UploadField.d.ts +4 -0
  102. package/dist/components/upload-field/UploadField.d.ts.map +1 -0
  103. package/dist/components/upload-field/UploadField.test.d.ts +2 -0
  104. package/dist/components/upload-field/UploadField.test.d.ts.map +1 -0
  105. package/dist/components/upload-field/index.d.ts +3 -0
  106. package/dist/components/upload-field/index.d.ts.map +1 -0
  107. package/dist/hooks/index.d.ts +7 -0
  108. package/dist/hooks/index.d.ts.map +1 -1
  109. package/dist/hooks/useDebounce.d.ts +2 -0
  110. package/dist/hooks/useDebounce.d.ts.map +1 -0
  111. package/dist/hooks/useTableFilter.d.ts +19 -0
  112. package/dist/hooks/useTableFilter.d.ts.map +1 -0
  113. package/dist/hooks/useTablePagination.d.ts +20 -0
  114. package/dist/hooks/useTablePagination.d.ts.map +1 -0
  115. package/dist/hooks/useTablePagination.test.d.ts +2 -0
  116. package/dist/hooks/useTablePagination.test.d.ts.map +1 -0
  117. package/dist/hooks/useTableState.d.ts +38 -0
  118. package/dist/hooks/useTableState.d.ts.map +1 -0
  119. package/dist/hooks/useTableState.test.d.ts +2 -0
  120. package/dist/hooks/useTableState.test.d.ts.map +1 -0
  121. package/dist/index.cjs +130 -49
  122. package/dist/index.css +1 -1
  123. package/dist/index.d.ts +12 -0
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +14446 -10039
  126. package/dist/types/app-header.d.ts +58 -0
  127. package/dist/types/app-header.d.ts.map +1 -0
  128. package/dist/types/bulk-import-modal.d.ts +1 -0
  129. package/dist/types/bulk-import-modal.d.ts.map +1 -1
  130. package/dist/types/card.d.ts +12 -0
  131. package/dist/types/card.d.ts.map +1 -0
  132. package/dist/types/country-selector.d.ts +21 -0
  133. package/dist/types/country-selector.d.ts.map +1 -0
  134. package/dist/types/date-range-selector.d.ts +34 -0
  135. package/dist/types/date-range-selector.d.ts.map +1 -0
  136. package/dist/types/date-selector.d.ts +37 -0
  137. package/dist/types/date-selector.d.ts.map +1 -0
  138. package/dist/types/dialog.d.ts +19 -0
  139. package/dist/types/dialog.d.ts.map +1 -1
  140. package/dist/types/dropdown.d.ts +1 -0
  141. package/dist/types/dropdown.d.ts.map +1 -1
  142. package/dist/types/metric-card.d.ts +27 -0
  143. package/dist/types/metric-card.d.ts.map +1 -0
  144. package/dist/types/network-operator.d.ts +25 -0
  145. package/dist/types/network-operator.d.ts.map +1 -0
  146. package/dist/types/otp-input.d.ts +16 -0
  147. package/dist/types/otp-input.d.ts.map +1 -0
  148. package/dist/types/phone-number-input.d.ts +17 -0
  149. package/dist/types/phone-number-input.d.ts.map +1 -0
  150. package/dist/types/sidebar.d.ts +7 -0
  151. package/dist/types/sidebar.d.ts.map +1 -1
  152. package/dist/types/table.d.ts +109 -0
  153. package/dist/types/table.d.ts.map +1 -0
  154. package/dist/types/upload-field.d.ts +25 -0
  155. package/dist/types/upload-field.d.ts.map +1 -0
  156. package/dist/utils/countries.d.ts +764 -0
  157. package/dist/utils/countries.d.ts.map +1 -0
  158. package/package.json +1 -1
package/README.md CHANGED
@@ -92,6 +92,65 @@ openWith({ userId: "42" });
92
92
  Exports: `useSearchParamOverlay`, `useDialogSearchParam`, `useModalSearchParam`, `createSearchParamAdapter`, `createBrowserSearchParamAdapter`, `readOverlayData`, `writeOverlayData`, `clearOverlayData`, `getDataPrefix`. Types: `SearchParamOverlayState`, `SearchParamOverlayData`, `SearchParamAdapter`, `UseSearchParamOverlayOptions`, `UseSearchParamOverlayReturn`.
93
93
 
94
94
 
95
+ ## AppHeader
96
+
97
+ 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.
98
+
99
+ See the [AppHeader](/docs/app-header) docs page for props and exported types.
100
+
101
+ ```tsx
102
+ import {
103
+ AppHeader,
104
+ AppHeaderActions,
105
+ AppHeaderSearch,
106
+ AppHeaderNotifications,
107
+ AppHeaderProfile,
108
+ AppSwitcher,
109
+ } from "@rfdtech/components";
110
+
111
+ <AppHeader>
112
+ <AppHeaderSearch onSearch={setQuery} data={results} />
113
+ <AppHeaderActions>
114
+ <AppSwitcher apps={apps} />
115
+ <AppHeaderNotifications loading={loading}>
116
+ {notifications.map((n) => (
117
+ <div key={n.id} className="gsl-notif-popover__item">
118
+ <div className="gsl-notif-popover__body-text">{n.text}</div>
119
+ <div className="gsl-notif-popover__body-time">{n.time}</div>
120
+ </div>
121
+ ))}
122
+ </AppHeaderNotifications>
123
+ <AppHeaderProfile user={{ name: "Kwame", role: "Admin", initials: "KA" }} variant="basic">
124
+ <button className="gsl-profile-popover__action">Settings</button>
125
+ </AppHeaderProfile>
126
+ </AppHeaderActions>
127
+ </AppHeader>
128
+ ```
129
+
130
+ Props: `AppHeader` — `className`, `children`. `AppHeaderActions` — `className`, `children`. Exported types: `AppHeaderProps`, `AppHeaderActionsProps`, `AppHeaderSearchProps`, `AppHeaderSearchDataGroup`, `AppHeaderSearchItem`, `AppHeaderNotificationsProps`, `AppHeaderProfileProps`, `AppUser`.
131
+
132
+
133
+ ## AppLayout
134
+
135
+ 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.
136
+
137
+ ```tsx
138
+ import { AppLayout, AppSidebar, AppBody } from "@rfdtech/components";
139
+
140
+ <AppLayout>
141
+ <AppHeader>
142
+ <AppHeaderActions>
143
+ <AppSwitcher apps={apps} />
144
+ </AppHeaderActions>
145
+ </AppHeader>
146
+ <AppSidebar>{/* sidebar */}</AppSidebar>
147
+ <AppBody>{/* page */}</AppBody>
148
+ </AppLayout>
149
+ ```
150
+
151
+ Props: `AppLayout` — `children`, `className`. `AppSidebar` — `children`, `className`. `AppBody` — `children`, `className`. Exported types: `AppLayoutProps`, `AppSidebarProps`, `AppBodyProps`.
152
+
153
+
95
154
  ## AppSwitcher
96
155
 
97
156
  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.
@@ -348,6 +407,21 @@ import { Button } from "@rfdtech/components";
348
407
  Props: `variant`, `size`, `loading`, `loadingLabel`, `classNames`, and standard `button` attributes. Exported types: `ButtonProps`, `ButtonClassNames`, `ButtonVariant`, `ButtonSize`.
349
408
 
350
409
 
410
+ ## Card
411
+
412
+ 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.
413
+
414
+ ```tsx
415
+ import { Card } from "@rfdtech/components";
416
+
417
+ <Card header="Profile">
418
+ <p>Content goes here.</p>
419
+ </Card>
420
+ ```
421
+
422
+ Props: `header`, `children`, `classNames`, `className`, plus standard `div` attributes. Exported types: `CardProps`, `CardClassNames`.
423
+
424
+
351
425
  ## Checkbox
352
426
 
353
427
  Accessible checkbox with optional label and part-level `classNames`. See the [Checkbox](/docs/checkbox) docs page for props and exported types.
@@ -371,6 +445,57 @@ import { Checkbox } from "@rfdtech/components";
371
445
  Props: `checked`, `defaultChecked`, `onCheckedChange`, `label`, `disabled`, `required`, `name`, `value`, `id`, `aria-label`, `classNames`, `className`. Exported types: `CheckboxProps`, `CheckboxClassNames`.
372
446
 
373
447
 
448
+ ## CountrySelector
449
+
450
+ 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.
451
+
452
+ ```tsx
453
+ import { CountrySelector } from "@rfdtech/components";
454
+
455
+ <CountrySelector onChange={(code) => console.log(code)} />
456
+
457
+ <CountrySelector defaultValue="US" />
458
+ ```
459
+
460
+ Props: `value`, `defaultValue`, `onChange`, `placeholder`, `invalid`, `disabled`, `classNames`, `className`. Exported types: `CountrySelectorProps`, `CountrySelectorClassNames`.
461
+
462
+
463
+ ## DateRangeSelector
464
+
465
+ 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.
466
+
467
+ ```tsx
468
+ import { DateRangeSelector } from "@rfdtech/components";
469
+
470
+ <DateRangeSelector onChange={(range) => console.log(range)} />
471
+
472
+ <DateRangeSelector
473
+ defaultValue={{ start: new Date(2026, 5, 1), end: new Date(2026, 5, 18) }}
474
+ />
475
+ ```
476
+
477
+ Props: `value`, `defaultValue`, `onChange`, `placeholder`, `formatOptions`, `invalid`, `disabled`, `min`, `max`, `classNames`, `className`. Exported types: `DateRangeSelectorProps`, `DateRangeSelectorClassNames`, `DateRangeValue`.
478
+
479
+
480
+ ## DateSelector
481
+
482
+ 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.
483
+
484
+ ```tsx
485
+ import { DateSelector } from "@rfdtech/components";
486
+
487
+ <DateSelector onChange={(date) => console.log(date)} />
488
+
489
+ <DateSelector
490
+ placeholder="Pick a date"
491
+ min={new Date(2025, 0, 1)}
492
+ max={new Date(2026, 11, 31)}
493
+ />
494
+ ```
495
+
496
+ Props: `value`, `defaultValue`, `onChange`, `placeholder`, `formatOptions`, `invalid`, `disabled`, `min`, `max`, `classNames`, `className`. Exported types: `DateSelectorProps`, `DateSelectorClassNames`.
497
+
498
+
374
499
  ## Command
375
500
 
376
501
  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.
@@ -607,6 +732,27 @@ import { Draggable, DraggableHandle } from "@rfdtech/components";
607
732
  Exports: `Draggable`, `DraggableHandle`, `useDraggable`, `clampPosition`. Types: `DraggableProps`, `DraggableHandleProps`, `DraggablePosition`, `DraggableBounds`, `DraggableAxis`, `UseDraggableOptions`, `UseDraggableReturn`.
608
733
 
609
734
 
735
+ ## MetricCard
736
+
737
+ 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.
738
+
739
+ See the [MetricCard](/docs/metric-card) docs page for props and exported types.
740
+
741
+ ```tsx
742
+ import { MetricCard } from "@rfdtech/components";
743
+
744
+ <MetricCard
745
+ label="Revenue"
746
+ value="$128.4k"
747
+ trend="up"
748
+ trendValue="+12.5%"
749
+ description="Total revenue this quarter"
750
+ />
751
+ ```
752
+
753
+ Props: `label`, `value`, `icon`, `description`, `trend`, `trendValue`, `variant`, `color`, `classNames`, `className`, plus standard `div` attributes. Exported types: `MetricCardProps`, `MetricCardClassNames`, `MetricCardVariant`, `MetricTrend`.
754
+
755
+
610
756
  ## Modal
611
757
 
612
758
  Compound modal primitives for near full-viewport overlays with header, body, and footer slots. See the [Modal](/docs/modal) docs page for props and exported types.
@@ -653,6 +799,51 @@ const { open, onOpenChange, openWith } = useModalSearchParam("review-changes");
653
799
  Props: `Modal` — `open`, `defaultOpen`, `onOpenChange`. `ModalContent` — `showCloseButton`, `classNames`, `className`. Layout parts (`ModalHeader`, `ModalBody`, `ModalFooter`) support part-level `classNames`. Exported types: `ModalOverlayProps`, `ModalContentProps`, `ModalHeaderProps`, `ModalTitleProps`, `ModalDescriptionProps`, `ModalBodyProps`, `ModalFooterProps`, and related `*ClassNames` interfaces.
654
800
 
655
801
 
802
+ ## NetworkOperator
803
+
804
+ 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.
805
+
806
+ ```tsx
807
+ import { NetworkOperator } from "@rfdtech/components";
808
+
809
+ <NetworkOperator onChange={(value) => console.log(value)} />
810
+
811
+ <NetworkOperator defaultValue="mtn" />
812
+ ```
813
+
814
+ Props: `value`, `defaultValue`, `onChange`, `options`, `placeholder`, `invalid`, `disabled`, `classNames`, `className`. Exported types: `NetworkOperatorProps`, `NetworkOperatorOption`, `NetworkOperatorClassNames`.
815
+
816
+
817
+ ## OtpInput
818
+
819
+ 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.
820
+
821
+ ```tsx
822
+ import { OtpInput } from "@rfdtech/components";
823
+
824
+ <OtpInput onChange={(val) => console.log(val)} />
825
+
826
+ <OtpInput length={4} onComplete={(val) => console.log("Done:", val)} />
827
+ ```
828
+
829
+ Props: `length`, `value`, `onChange`, `onComplete`, `invalid`, `disabled`, `name`, `classNames`, `className`. Exported types: `OtpInputProps`, `OtpInputClassNames`.
830
+
831
+
832
+ ## PhoneNumberInput
833
+
834
+ 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.
835
+
836
+ ```tsx
837
+ import { PhoneNumberInput } from "@rfdtech/components";
838
+
839
+ <PhoneNumberInput defaultCountry="GH" onChange={(val) => console.log(val)} />
840
+
841
+ <PhoneNumberInput value="+2332054321022" />
842
+ ```
843
+
844
+ Props: `value`, `defaultValue`, `onChange`, `invalid`, `disabled`, `classNames`, `className`. Exported types: `PhoneNumberInputProps`, `PhoneNumberInputClassNames`.
845
+
846
+
656
847
  ## Popover
657
848
 
658
849
  Compound popover primitives for floating panels. See the [Popover](/docs/popover) docs page for props and exported types.
@@ -837,6 +1028,54 @@ const [items, setItems] = useState(["alpha", "beta", "gamma"]);
837
1028
  Exports: `Sortable`, `SortableList`, `SortableItem`, `SortableHandle`, `reorderItems`. Types: `SortableProps`, `SortableListProps`, `SortableItemProps`, `SortableHandleProps`, `SortableId`, `SortableStrategy`, `SortableClassNames`.
838
1029
 
839
1030
 
1031
+ ## Table
1032
+
1033
+ Compound table with URL-driven search, pagination, filter, sort, row selection, bulk actions, and loading skeletons. See the [Table](/docs/table) docs page for props and exported types.
1034
+
1035
+ ```tsx
1036
+ import { useState } from "react";
1037
+ import {
1038
+ Table,
1039
+ TableHeader,
1040
+ TableSearch,
1041
+ TableContent,
1042
+ TableBulkActions,
1043
+ TableFooter,
1044
+ TablePagination,
1045
+ } from "@rfdtech/components";
1046
+
1047
+ const [selected, setSelected] = useState<Set<string | number>>(new Set());
1048
+
1049
+ <Table paramPrefix="users">
1050
+ <TableHeader>
1051
+ <TableSearch placeholder="Search users..." />
1052
+ </TableHeader>
1053
+ <TableContent
1054
+ selectable
1055
+ selectedIds={selected}
1056
+ onSelectionChange={setSelected}
1057
+ columns={[
1058
+ { id: "name", header: "Name", accessorKey: "name", sortable: true },
1059
+ { id: "email", header: "Email", accessorKey: "email", sortable: true },
1060
+ ]}
1061
+ data={users}
1062
+ rowKey={(u) => u.id}
1063
+ />
1064
+ <TableBulkActions
1065
+ selectedIds={selected}
1066
+ actions={[
1067
+ { id: "delete", label: "Delete", icon: <Trash2 size={14} />, onClick: (ids) => handleDelete(ids), destructive: true },
1068
+ ]}
1069
+ />
1070
+ <TableFooter>
1071
+ <TablePagination totalPages={5} totalItems={50} />
1072
+ </TableFooter>
1073
+ </Table>
1074
+ ```
1075
+
1076
+ 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`.
1077
+
1078
+
840
1079
  ## Tabs
841
1080
 
842
1081
  Compound tabs primitives for switching between related panels. See the [Tabs](/docs/tabs) docs page for props and exported types.
@@ -883,6 +1122,27 @@ toast({
883
1122
  Exports: `ToastProvider`, `Toaster`, `useToast`. Types: `ToastOptions`, `ToastVariant`, `ToastProviderProps`, `ToasterProps`, `UseToastReturn`, `ToastClassNames`, `ToastAction`, `ToastReturn`.
884
1123
 
885
1124
 
1125
+ ## UploadField
1126
+
1127
+ 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.
1128
+
1129
+ ```tsx
1130
+ import { UploadField } from "@rfdtech/components";
1131
+
1132
+ <UploadField
1133
+ accept=".csv"
1134
+ maxSize={10 * 1024 * 1024}
1135
+ onChange={(file) => console.log(file)}
1136
+ />
1137
+
1138
+ <UploadField accept="image/*" maxSize={5 * 1024 * 1024} />
1139
+ ```
1140
+
1141
+ Props: `accept`, `multiple`, `maxSize`, `value`, `onChange`, `invalid`, `disabled`, `name`, `classNames`, `className`. Exported types: `UploadFieldProps`, `UploadFieldClassNames`.
1142
+
1143
+ Props: `accept`, `multiple`, `maxSize`, `value`, `onChange`, `invalid`, `disabled`, `placeholder`, `classNames`, `className`. Exported types: `UploadFieldProps`, `UploadFieldClassNames`.
1144
+
1145
+
886
1146
  ## Development
887
1147
 
888
1148
  ```bash
@@ -0,0 +1,5 @@
1
+ import type { AppHeaderProps, AppHeaderActionsProps } from "../../types/app-header";
2
+ import "./styles/app-header.css";
3
+ export declare const AppHeader: import("react").ForwardRefExoticComponent<AppHeaderProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ export declare const AppHeaderActions: import("react").ForwardRefExoticComponent<AppHeaderActionsProps & import("react").RefAttributes<HTMLDivElement>>;
5
+ //# sourceMappingURL=AppHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpF,OAAO,yBAAyB,CAAC;AAEjC,eAAO,MAAM,SAAS,2GAQrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,kHAQ5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AppHeader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppHeader.test.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeader.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { AppHeaderNotificationsProps } from "../../types/app-header";
2
+ export declare const AppHeaderNotifications: import("react").ForwardRefExoticComponent<AppHeaderNotificationsProps & import("react").RefAttributes<HTMLButtonElement>>;
3
+ //# sourceMappingURL=AppHeaderNotifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppHeaderNotifications.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeaderNotifications.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAK1E,eAAO,MAAM,sBAAsB,2HA8ClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AppHeaderProfileProps } from "../../types/app-header";
2
+ export declare const AppHeaderProfile: import("react").ForwardRefExoticComponent<AppHeaderProfileProps & import("react").RefAttributes<HTMLDivElement>>;
3
+ //# sourceMappingURL=AppHeaderProfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppHeaderProfile.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeaderProfile.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAW,MAAM,wBAAwB,CAAC;AAK7E,eAAO,MAAM,gBAAgB,kHAmG3B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AppHeaderSearchProps } from "../../types/app-header";
2
+ import "./styles/app-header.css";
3
+ export declare const AppHeaderSearch: import("react").ForwardRefExoticComponent<AppHeaderSearchProps & import("react").RefAttributes<HTMLInputElement>>;
4
+ //# sourceMappingURL=AppHeaderSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppHeaderSearch.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/AppHeaderSearch.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,yBAAyB,CAAC;AAEjC,eAAO,MAAM,eAAe,mHAyE1B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { AppHeader, AppHeaderActions } from "./AppHeader";
2
+ export { AppHeaderSearch } from "./AppHeaderSearch";
3
+ export { AppHeaderNotifications } from "./AppHeaderNotifications";
4
+ export { AppHeaderProfile } from "./AppHeaderProfile";
5
+ export type { AppHeaderProps, AppHeaderActionsProps, AppHeaderSearchProps, AppHeaderSearchDataGroup, AppHeaderSearchItem, AppHeaderNotificationsProps, AppHeaderProfileProps, AppUser, } from "../../types/app-header";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/app-header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,OAAO,GACR,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type ReactNode } from "react";
2
+ export interface AppBodyProps {
3
+ children?: ReactNode;
4
+ className?: string;
5
+ }
6
+ export declare const AppBody: import("react").ForwardRefExoticComponent<AppBodyProps & import("react").RefAttributes<HTMLElement>>;
7
+ //# sourceMappingURL=AppBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppBody.d.ts","sourceRoot":"","sources":["../../../src/components/app-layout/AppBody.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,sGAQnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ReactNode } from "react";
2
+ import "./styles/app-layout.css";
3
+ export interface AppLayoutProps {
4
+ children?: ReactNode;
5
+ className?: string;
6
+ }
7
+ export declare const AppLayout: import("react").ForwardRefExoticComponent<AppLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
8
+ //# sourceMappingURL=AppLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppLayout.d.ts","sourceRoot":"","sources":["../../../src/components/app-layout/AppLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,2GA4BrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AppLayout.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppLayout.test.d.ts","sourceRoot":"","sources":["../../../src/components/app-layout/AppLayout.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { type ReactNode } from "react";
2
+ import "./styles/app-layout.css";
3
+ export interface AppSidebarProps {
4
+ children?: ReactNode;
5
+ className?: string;
6
+ }
7
+ export declare const AppSidebar: import("react").ForwardRefExoticComponent<AppSidebarProps & import("react").RefAttributes<HTMLElement>>;
8
+ //# sourceMappingURL=AppSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/app-layout/AppSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,yBAAyB,CAAC;AAEjC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,yGAQtB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { AppLayout } from "./AppLayout";
2
+ export type { AppLayoutProps } from "./AppLayout";
3
+ export { AppSidebar } from "./AppSidebar";
4
+ export type { AppSidebarProps } from "./AppSidebar";
5
+ export { AppBody } from "./AppBody";
6
+ export type { AppBodyProps } from "./AppBody";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/app-layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BulkImportModal.d.ts","sourceRoot":"","sources":["../../../src/components/bulk-import-modal/BulkImportModal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAO1E,OAAO,gCAAgC,CAAC;AAgCxC,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAqB,EACrB,gBAAwC,EACxC,uBAA+B,EAC/B,SAAS,GACV,EAAE,oBAAoB,+BA8RtB"}
1
+ {"version":3,"file":"BulkImportModal.d.ts","sourceRoot":"","sources":["../../../src/components/bulk-import-modal/BulkImportModal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAO1E,OAAO,gCAAgC,CAAC;AAgCxC,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAqB,EACrB,gBAAwC,EACxC,uBAA+B,EAC/B,SAAS,GACV,EAAE,oBAAoB,+BAkUtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBulkImportFlow.d.ts","sourceRoot":"","sources":["../../../../src/components/bulk-import-modal/hooks/useBulkImportFlow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAmB1C,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CAySzB"}
1
+ {"version":3,"file":"useBulkImportFlow.d.ts","sourceRoot":"","sources":["../../../../src/components/bulk-import-modal/hooks/useBulkImportFlow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAmB1C,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CAkTzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"MatchColumnsStep.d.ts","sourceRoot":"","sources":["../../../../src/components/bulk-import-modal/steps/MatchColumnsStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAG1C,UAAU,qBAAqB;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;IACxB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9E,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAwCD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,EAAE,qBAAqB,+BAwFvB"}
1
+ {"version":3,"file":"MatchColumnsStep.d.ts","sourceRoot":"","sources":["../../../../src/components/bulk-import-modal/steps/MatchColumnsStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAG1C,UAAU,qBAAqB;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;IACxB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9E,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAwCD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,EAAE,qBAAqB,+BAoFvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateDataStep.d.ts","sourceRoot":"","sources":["../../../../src/components/bulk-import-modal/steps/ValidateDataStep.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,UAAU,qBAAqB;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACrC,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5E;AAYD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,UAAU,EACV,MAAM,EACN,cAAc,EACd,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,GACjB,EAAE,qBAAqB,+BA8KvB"}
1
+ {"version":3,"file":"ValidateDataStep.d.ts","sourceRoot":"","sources":["../../../../src/components/bulk-import-modal/steps/ValidateDataStep.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,UAAU,qBAAqB;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACrC,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5E;AAYD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,UAAU,EACV,MAAM,EACN,cAAc,EACd,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,GACjB,EAAE,qBAAqB,+BAyKvB"}
@@ -0,0 +1,4 @@
1
+ import type { CardProps } from "../../types/card";
2
+ import "./styles/card.css";
3
+ export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/card/Card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,mBAAmB,CAAC;AAE3B,eAAO,MAAM,IAAI,sGAoBf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Card.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.test.d.ts","sourceRoot":"","sources":["../../../src/components/card/Card.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { Card } from "./Card";
2
+ export type { CardProps, CardClassNames } from "../../types/card";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../src/components/command/Command.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAqB1E,eAAO,MAAM,OAAO,yGAalB,CAAC;AAEH,eAAO,MAAM,aAAa,+GAmFzB,CAAC;AAEF,eAAO,MAAM,YAAY,gHAgDxB,CAAC;AAEF,eAAO,MAAM,WAAW,6GAYvB,CAAC;AAEF,eAAO,MAAM,YAAY,8GAYxB,CAAC;AAEF,eAAO,MAAM,YAAY,8GAmCxB,CAAC;AAEF,eAAO,MAAM,WAAW,6GAYvB,CAAC;AAEF,eAAO,MAAM,eAAe,8GAe3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,kHAe3B,CAAC;AAEH,eAAO,MAAM,cAAc,gHAY1B,CAAC"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../src/components/command/Command.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAqB1E,eAAO,MAAM,OAAO,yGAYnB,CAAC;AAEF,eAAO,MAAM,aAAa,+GAmFzB,CAAC;AAEF,eAAO,MAAM,YAAY,gHAyCxB,CAAC;AAEF,eAAO,MAAM,WAAW,6GAYvB,CAAC;AAEF,eAAO,MAAM,YAAY,8GAYxB,CAAC;AAEF,eAAO,MAAM,YAAY,8GAuCxB,CAAC;AAEF,eAAO,MAAM,WAAW,6GAYvB,CAAC;AAEF,eAAO,MAAM,eAAe,8GAW3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,kHAW3B,CAAC;AAEH,eAAO,MAAM,cAAc,gHAY1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CountrySelectorProps } from "../../types/country-selector";
2
+ import "./styles/country-selector.css";
3
+ export declare const CountrySelector: import("react").ForwardRefExoticComponent<CountrySelectorProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=CountrySelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountrySelector.d.ts","sourceRoot":"","sources":["../../../src/components/country-selector/CountrySelector.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,+BAA+B,CAAC;AAEvC,eAAO,MAAM,eAAe,iHAoI3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CountrySelector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountrySelector.test.d.ts","sourceRoot":"","sources":["../../../src/components/country-selector/CountrySelector.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { CountrySelector } from "./CountrySelector";
2
+ export type { CountrySelectorClassNames, CountrySelectorProps, } from "../../types/country-selector";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/country-selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { DateRangeSelectorProps, DateRangeValue } from "../../types/date-range-selector";
2
+ export type { DateRangeValue };
3
+ import "./styles/date-range-selector.css";
4
+ export declare const DateRangeSelector: import("react").ForwardRefExoticComponent<DateRangeSelectorProps & import("react").RefAttributes<HTMLDivElement>>;
5
+ //# sourceMappingURL=DateRangeSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateRangeSelector.d.ts","sourceRoot":"","sources":["../../../src/components/date-range-selector/DateRangeSelector.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,sBAAsB,EACtB,cAAc,EACf,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EAAE,cAAc,EAAE,CAAC;AAK/B,OAAO,kCAAkC,CAAC;AA8M1C,eAAO,MAAM,iBAAiB,mHAyR5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DateRangeSelector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateRangeSelector.test.d.ts","sourceRoot":"","sources":["../../../src/components/date-range-selector/DateRangeSelector.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { DateRangeSelector } from "./DateRangeSelector";
2
+ export type { DateRangeSelectorProps, DateRangeSelectorClassNames, DateRangeValue, } from "../../types/date-range-selector";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/date-range-selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,GACf,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DateSelectorProps } from "../../types/date-selector";
2
+ import "./styles/date-selector.css";
3
+ export declare const DateSelector: import("react").ForwardRefExoticComponent<DateSelectorProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=DateSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateSelector.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/DateSelector.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,4BAA4B,CAAC;AA6DpC,eAAO,MAAM,YAAY,8GA2QxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DateSelector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateSelector.test.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/DateSelector.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { DateSelector } from "./DateSelector";
2
+ export type { DateSelectorClassNames, DateSelectorProps, } from "../../types/date-selector";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/date-selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as DialogPrimitive from "@radix-ui/react-dialog";
2
- import type { DialogContentProps, DialogDescriptionProps, DialogOverlayProps, DialogTitleProps } from "../../types/dialog";
2
+ import type { DialogBodyProps, DialogContentProps, DialogDescriptionProps, DialogFooterProps, DialogHeaderProps, DialogOverlayProps, DialogTitleProps } from "../../types/dialog";
3
3
  import "./styles/dialog.css";
4
4
  export declare const Dialog: import("react").FC<DialogPrimitive.DialogProps>;
5
5
  export declare const DialogTrigger: import("react").ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -9,4 +9,7 @@ export declare const DialogOverlay: import("react").ForwardRefExoticComponent<Di
9
9
  export declare const DialogContent: import("react").ForwardRefExoticComponent<DialogContentProps & import("react").RefAttributes<HTMLDivElement>>;
10
10
  export declare const DialogTitle: import("react").ForwardRefExoticComponent<DialogTitleProps & import("react").RefAttributes<HTMLHeadingElement>>;
11
11
  export declare const DialogDescription: import("react").ForwardRefExoticComponent<DialogDescriptionProps & import("react").RefAttributes<HTMLParagraphElement>>;
12
+ export declare const DialogHeader: import("react").ForwardRefExoticComponent<DialogHeaderProps & import("react").RefAttributes<HTMLDivElement>>;
13
+ export declare const DialogBody: import("react").ForwardRefExoticComponent<DialogBodyProps & import("react").RefAttributes<HTMLDivElement>>;
14
+ export declare const DialogFooter: import("react").ForwardRefExoticComponent<DialogFooterProps & import("react").RefAttributes<HTMLDivElement>>;
12
15
  //# sourceMappingURL=Dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,qBAAqB,CAAC;AAE7B,eAAO,MAAM,MAAM,iDAAuB,CAAC;AAC3C,eAAO,MAAM,aAAa,kIAA0B,CAAC;AACrD,eAAO,MAAM,YAAY,uDAAyB,CAAC;AACnD,eAAO,MAAM,WAAW,gIAAwB,CAAC;AAEjD,eAAO,MAAM,aAAa,+GAUzB,CAAC;AAEF,eAAO,MAAM,aAAa,+GA8BzB,CAAC;AAEF,eAAO,MAAM,WAAW,iHAUvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,yHAe5B,CAAC"}
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,qBAAqB,CAAC;AAE7B,eAAO,MAAM,MAAM,iDAAuB,CAAC;AAC3C,eAAO,MAAM,aAAa,kIAA0B,CAAC;AACrD,eAAO,MAAM,YAAY,uDAAyB,CAAC;AACnD,eAAO,MAAM,WAAW,gIAAwB,CAAC;AAEjD,eAAO,MAAM,aAAa,+GAUzB,CAAC;AAEF,eAAO,MAAM,aAAa,+GA8BzB,CAAC;AAEF,eAAO,MAAM,WAAW,iHAUvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,yHAe5B,CAAC;AAEH,eAAO,MAAM,YAAY,8GAYxB,CAAC;AAEF,eAAO,MAAM,UAAU,4GAYtB,CAAC;AAEF,eAAO,MAAM,YAAY,8GAYxB,CAAC"}
@@ -1,3 +1,3 @@
1
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, } from "./Dialog";
2
- export type { DialogContentClassNames, DialogContentProps, DialogDescriptionClassNames, DialogDescriptionProps, DialogOverlayClassNames, DialogOverlayProps, DialogTitleClassNames, DialogTitleProps, } from "../../types/dialog";
1
+ export { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, } from "./Dialog";
2
+ export type { DialogBodyClassNames, DialogBodyProps, DialogContentClassNames, DialogContentProps, DialogDescriptionClassNames, DialogDescriptionProps, DialogFooterClassNames, DialogFooterProps, DialogHeaderClassNames, DialogHeaderProps, DialogOverlayClassNames, DialogOverlayProps, DialogTitleClassNames, DialogTitleProps, } from "../../types/dialog";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}