@freightos/freightwind 1.0.0 → 1.1.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 (210) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/dist/cjs/components/alert.js +33 -16
  4. package/dist/cjs/components/avatar.js +53 -58
  5. package/dist/cjs/components/badge.js +42 -18
  6. package/dist/cjs/components/button.js +35 -24
  7. package/dist/cjs/components/checkbox.js +21 -3
  8. package/dist/cjs/components/chip.js +67 -9
  9. package/dist/cjs/components/message.js +38 -0
  10. package/dist/cjs/components/pop-confirm.js +86 -0
  11. package/dist/cjs/components/radio-button-group.js +31 -35
  12. package/dist/cjs/components/radio-group.js +2 -1
  13. package/dist/cjs/components/slider.js +14 -6
  14. package/dist/cjs/components/switch.js +29 -10
  15. package/dist/cjs/components/tooltip.js +40 -11
  16. package/dist/cjs/index.js +38 -84
  17. package/dist/cjs/lib/icon-utils.js +5 -0
  18. package/dist/cjs/{components/aspect-ratio.js → lib/use-stable-id.js} +7 -4
  19. package/dist/cjs/lib/utils.js +18 -1
  20. package/dist/esm/components/alert.js +34 -17
  21. package/dist/esm/components/avatar.js +53 -22
  22. package/dist/esm/components/badge.js +45 -19
  23. package/dist/esm/components/button.js +36 -25
  24. package/dist/esm/components/checkbox.js +22 -4
  25. package/dist/esm/components/chip.js +34 -9
  26. package/dist/esm/components/message.js +34 -0
  27. package/dist/esm/components/pop-confirm.js +51 -0
  28. package/dist/esm/components/radio-button-group.js +31 -33
  29. package/dist/esm/components/radio-group.js +2 -1
  30. package/dist/esm/components/slider.js +14 -6
  31. package/dist/esm/components/switch.js +30 -11
  32. package/dist/esm/components/tooltip.js +40 -7
  33. package/dist/esm/index.js +18 -66
  34. package/dist/esm/lib/icon-utils.js +1 -0
  35. package/dist/esm/lib/use-stable-id.js +6 -0
  36. package/dist/esm/lib/utils.js +18 -1
  37. package/dist/types/components/alert.d.ts +5 -5
  38. package/dist/types/components/avatar.d.ts +14 -19
  39. package/dist/types/components/badge.d.ts +22 -8
  40. package/dist/types/components/button.d.ts +15 -9
  41. package/dist/types/components/checkbox.d.ts +8 -2
  42. package/dist/types/components/chip.d.ts +14 -8
  43. package/dist/types/components/message.d.ts +14 -0
  44. package/dist/types/components/pop-confirm.d.ts +28 -0
  45. package/dist/types/components/radio-button-group.d.ts +19 -14
  46. package/dist/types/components/slider.d.ts +10 -2
  47. package/dist/types/components/switch.d.ts +7 -6
  48. package/dist/types/components/tooltip.d.ts +9 -6
  49. package/dist/types/index.d.ts +25 -61
  50. package/dist/types/lib/icon-utils.d.ts +1 -0
  51. package/dist/types/lib/use-stable-id.d.ts +1 -0
  52. package/package.json +62 -54
  53. package/tokens.css +387 -0
  54. package/dist/cjs/components/accordion.js +0 -57
  55. package/dist/cjs/components/breadcrumb.js +0 -65
  56. package/dist/cjs/components/calendar.js +0 -106
  57. package/dist/cjs/components/card.js +0 -59
  58. package/dist/cjs/components/chart.js +0 -176
  59. package/dist/cjs/components/collapsible.js +0 -43
  60. package/dist/cjs/components/command.js +0 -73
  61. package/dist/cjs/components/context-menu.js +0 -83
  62. package/dist/cjs/components/country-select.js +0 -155
  63. package/dist/cjs/components/date-picker.js +0 -59
  64. package/dist/cjs/components/date-range-picker.js +0 -59
  65. package/dist/cjs/components/date-time-picker.js +0 -106
  66. package/dist/cjs/components/dialog.js +0 -70
  67. package/dist/cjs/components/drawer.js +0 -68
  68. package/dist/cjs/components/dropdown-menu.js +0 -85
  69. package/dist/cjs/components/empty.js +0 -42
  70. package/dist/cjs/components/file-preview.js +0 -73
  71. package/dist/cjs/components/form.js +0 -106
  72. package/dist/cjs/components/inline-edit.js +0 -83
  73. package/dist/cjs/components/input-group.js +0 -70
  74. package/dist/cjs/components/input-otp.js +0 -58
  75. package/dist/cjs/components/input.js +0 -57
  76. package/dist/cjs/components/label.js +0 -45
  77. package/dist/cjs/components/menubar.js +0 -96
  78. package/dist/cjs/components/navigation-menu.js +0 -68
  79. package/dist/cjs/components/pagination.js +0 -65
  80. package/dist/cjs/components/phone-input.js +0 -218
  81. package/dist/cjs/components/popover.js +0 -49
  82. package/dist/cjs/components/progress.js +0 -43
  83. package/dist/cjs/components/resizable.js +0 -47
  84. package/dist/cjs/components/rich-text-editor.js +0 -152
  85. package/dist/cjs/components/route.js +0 -47
  86. package/dist/cjs/components/scroll-area.js +0 -48
  87. package/dist/cjs/components/select.js +0 -71
  88. package/dist/cjs/components/separator.js +0 -43
  89. package/dist/cjs/components/sheet.js +0 -245
  90. package/dist/cjs/components/skeleton.js +0 -8
  91. package/dist/cjs/components/sonner.js +0 -25
  92. package/dist/cjs/components/spinner.js +0 -25
  93. package/dist/cjs/components/stepper.js +0 -99
  94. package/dist/cjs/components/steps.js +0 -127
  95. package/dist/cjs/components/table.js +0 -66
  96. package/dist/cjs/components/tabs.js +0 -51
  97. package/dist/cjs/components/textarea.js +0 -44
  98. package/dist/cjs/components/time-picker.js +0 -110
  99. package/dist/cjs/components/toast.js +0 -75
  100. package/dist/cjs/components/toaster.js +0 -12
  101. package/dist/cjs/components/toggle-group.js +0 -58
  102. package/dist/cjs/components/toggle.js +0 -62
  103. package/dist/cjs/hooks/use-toast.js +0 -166
  104. package/dist/cjs/lib/countryUtils.js +0 -93
  105. package/dist/esm/components/accordion.js +0 -18
  106. package/dist/esm/components/aspect-ratio.js +0 -3
  107. package/dist/esm/components/breadcrumb.js +0 -23
  108. package/dist/esm/components/calendar.js +0 -70
  109. package/dist/esm/components/card.js +0 -18
  110. package/dist/esm/components/chart.js +0 -135
  111. package/dist/esm/components/collapsible.js +0 -5
  112. package/dist/esm/components/command.js +0 -29
  113. package/dist/esm/components/context-menu.js +0 -33
  114. package/dist/esm/components/country-select.js +0 -118
  115. package/dist/esm/components/date-picker.js +0 -23
  116. package/dist/esm/components/date-range-picker.js +0 -23
  117. package/dist/esm/components/date-time-picker.js +0 -70
  118. package/dist/esm/components/dialog.js +0 -24
  119. package/dist/esm/components/drawer.js +0 -23
  120. package/dist/esm/components/dropdown-menu.js +0 -35
  121. package/dist/esm/components/empty.js +0 -6
  122. package/dist/esm/components/file-preview.js +0 -69
  123. package/dist/esm/components/form.js +0 -63
  124. package/dist/esm/components/inline-edit.js +0 -47
  125. package/dist/esm/components/input-group.js +0 -63
  126. package/dist/esm/components/input-otp.js +0 -19
  127. package/dist/esm/components/input.js +0 -21
  128. package/dist/esm/components/label.js +0 -9
  129. package/dist/esm/components/menubar.js +0 -45
  130. package/dist/esm/components/navigation-menu.js +0 -24
  131. package/dist/esm/components/pagination.js +0 -23
  132. package/dist/esm/components/phone-input.js +0 -181
  133. package/dist/esm/components/popover.js +0 -10
  134. package/dist/esm/components/progress.js +0 -7
  135. package/dist/esm/components/resizable.js +0 -9
  136. package/dist/esm/components/rich-text-editor.js +0 -145
  137. package/dist/esm/components/route.js +0 -11
  138. package/dist/esm/components/scroll-area.js +0 -11
  139. package/dist/esm/components/select.js +0 -26
  140. package/dist/esm/components/separator.js +0 -7
  141. package/dist/esm/components/sheet.js +0 -197
  142. package/dist/esm/components/skeleton.js +0 -6
  143. package/dist/esm/components/sonner.js +0 -22
  144. package/dist/esm/components/spinner.js +0 -21
  145. package/dist/esm/components/stepper.js +0 -57
  146. package/dist/esm/components/steps.js +0 -80
  147. package/dist/esm/components/table.js +0 -22
  148. package/dist/esm/components/tabs.js +0 -12
  149. package/dist/esm/components/textarea.js +0 -8
  150. package/dist/esm/components/time-picker.js +0 -74
  151. package/dist/esm/components/toast.js +0 -33
  152. package/dist/esm/components/toaster.js +0 -9
  153. package/dist/esm/components/toggle-group.js +0 -21
  154. package/dist/esm/components/toggle.js +0 -25
  155. package/dist/esm/hooks/use-toast.js +0 -128
  156. package/dist/esm/lib/countryUtils.js +0 -87
  157. package/dist/styles.css +0 -152
  158. package/dist/types/components/accordion.d.ts +0 -11
  159. package/dist/types/components/aspect-ratio.d.ts +0 -3
  160. package/dist/types/components/breadcrumb.d.ts +0 -19
  161. package/dist/types/components/calendar.d.ts +0 -7
  162. package/dist/types/components/card.d.ts +0 -11
  163. package/dist/types/components/chart.d.ts +0 -66
  164. package/dist/types/components/collapsible.d.ts +0 -5
  165. package/dist/types/components/command.d.ts +0 -80
  166. package/dist/types/components/context-menu.d.ts +0 -27
  167. package/dist/types/components/country-select.d.ts +0 -17
  168. package/dist/types/components/date-picker.d.ts +0 -9
  169. package/dist/types/components/date-range-picker.d.ts +0 -10
  170. package/dist/types/components/date-time-picker.d.ts +0 -10
  171. package/dist/types/components/dialog.d.ts +0 -23
  172. package/dist/types/components/drawer.d.ts +0 -22
  173. package/dist/types/components/dropdown-menu.d.ts +0 -27
  174. package/dist/types/components/empty.d.ts +0 -6
  175. package/dist/types/components/file-preview.d.ts +0 -9
  176. package/dist/types/components/form.d.ts +0 -23
  177. package/dist/types/components/inline-edit.d.ts +0 -10
  178. package/dist/types/components/input-group.d.ts +0 -16
  179. package/dist/types/components/input-otp.d.ts +0 -34
  180. package/dist/types/components/input.d.ts +0 -9
  181. package/dist/types/components/label.d.ts +0 -5
  182. package/dist/types/components/menubar.d.ts +0 -28
  183. package/dist/types/components/navigation-menu.d.ts +0 -12
  184. package/dist/types/components/pagination.d.ts +0 -29
  185. package/dist/types/components/phone-input.d.ts +0 -20
  186. package/dist/types/components/popover.d.ts +0 -9
  187. package/dist/types/components/progress.d.ts +0 -4
  188. package/dist/types/components/resizable.d.ts +0 -23
  189. package/dist/types/components/rich-text-editor.d.ts +0 -8
  190. package/dist/types/components/route.d.ts +0 -10
  191. package/dist/types/components/scroll-area.d.ts +0 -5
  192. package/dist/types/components/select.d.ts +0 -13
  193. package/dist/types/components/separator.d.ts +0 -4
  194. package/dist/types/components/sheet.d.ts +0 -49
  195. package/dist/types/components/skeleton.d.ts +0 -2
  196. package/dist/types/components/sonner.d.ts +0 -4
  197. package/dist/types/components/spinner.d.ts +0 -8
  198. package/dist/types/components/stepper.d.ts +0 -17
  199. package/dist/types/components/steps.d.ts +0 -64
  200. package/dist/types/components/table.d.ts +0 -14
  201. package/dist/types/components/tabs.d.ts +0 -7
  202. package/dist/types/components/textarea.d.ts +0 -3
  203. package/dist/types/components/time-picker.d.ts +0 -10
  204. package/dist/types/components/toast.d.ts +0 -15
  205. package/dist/types/components/toaster.d.ts +0 -1
  206. package/dist/types/components/toggle-group.d.ts +0 -12
  207. package/dist/types/components/toggle.d.ts +0 -12
  208. package/dist/types/hooks/use-toast.d.ts +0 -44
  209. package/dist/types/lib/countryUtils.d.ts +0 -20
  210. package/tailwind-preset.js +0 -70
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from 'react';
3
- import { cn } from '../lib/utils';
4
- const Table = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { className: "relative w-full overflow-auto", children: _jsx("table", { ref: ref, className: cn('w-full caption-bottom text-sm', className), ...props }) })));
5
- Table.displayName = 'Table';
6
- const TableHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("thead", { ref: ref, className: cn('[&_tr]:border-b [&_tr]:border-fds-gray-20', className), ...props })));
7
- TableHeader.displayName = 'TableHeader';
8
- const TableBody = React.forwardRef(({ className, ...props }, ref) => (_jsx("tbody", { ref: ref, className: cn('[&_tr:last-child]:border-0', className), ...props })));
9
- TableBody.displayName = 'TableBody';
10
- const TableFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("tfoot", { ref: ref, className: cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className), ...props })));
11
- TableFooter.displayName = 'TableFooter';
12
- const TableRow = React.forwardRef(({ className, ...props }, ref) => (_jsx("tr", { ref: ref, className: cn('border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted', className), ...props })));
13
- TableRow.displayName = 'TableRow';
14
- const TableHead = React.forwardRef(({ className, ...props }, ref) => (_jsx("th", { ref: ref, className: cn('px-fds-md text-left align-middle font-fds-semibold text-foreground [&:has([role=checkbox])]:pr-0', className), ...props })));
15
- TableHead.displayName = 'TableHead';
16
- const TableCell = React.forwardRef(({ className, ...props }, ref) => (_jsx("td", { ref: ref, className: cn('px-4 align-middle [&:has([role=checkbox])]:pr-0', className), ...props })));
17
- TableCell.displayName = 'TableCell';
18
- const TableCaption = React.forwardRef(({ className, ...props }, ref) => (_jsx("caption", { ref: ref, className: cn('mt-4 text-sm text-muted-foreground', className), ...props })));
19
- TableCaption.displayName = 'TableCaption';
20
- const TableEmpty = React.forwardRef(({ className, colSpan, message = 'No data', ...props }, ref) => (_jsx("tr", { ref: ref, className: className, ...props, children: _jsx("td", { colSpan: colSpan, className: "text-center", children: _jsxs("div", { className: "flex flex-col items-center justify-center py-fds-xxl", children: [_jsx("svg", { width: "64", height: "41", viewBox: "0 0 64 41", xmlns: "http://www.w3.org/2000/svg", children: _jsxs("g", { transform: "translate(0 1)", fill: "none", fillRule: "evenodd", children: [_jsx("ellipse", { className: "fill-fds-gray-10 dark:fill-fds-gray-80", cx: "32", cy: "33", rx: "32", ry: "7" }), _jsxs("g", { fillRule: "nonzero", className: "stroke-fds-gray-30 dark:stroke-fds-gray-60", children: [_jsx("path", { d: "M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z" }), _jsx("path", { d: "M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z", className: "fill-fds-gray-5 dark:fill-fds-gray-90" })] })] }) }), _jsx("span", { className: "mt-fds-sm text-fds-sm text-fds-gray-50", children: message })] }) }) })));
21
- TableEmpty.displayName = 'TableEmpty';
22
- export { Table, TableBody, TableCaption, TableCell, TableEmpty, TableFooter, TableHead, TableHeader, TableRow, };
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from 'react';
3
- import * as TabsPrimitive from '@radix-ui/react-tabs';
4
- import { cn } from '../lib/utils';
5
- const Tabs = TabsPrimitive.Root;
6
- const TabsList = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, className: cn('inline-flex h-auto w-full items-center justify-start overflow-x-auto border-b border-fds-gray-20 dark:border-fds-gray-80', className), ...props })));
7
- TabsList.displayName = TabsPrimitive.List.displayName;
8
- const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Trigger, { ref: ref, className: cn('inline-flex items-center justify-center whitespace-nowrap border-b-2 border-transparent px-fds-lg py-fds-xs text-[16px] text-foreground transition-all focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50', 'hover:text-fds-gray-80 dark:hover:text-fds-gray-20', 'data-[state=active]:border-fds-blue data-[state=active]:text-fds-blue', 'dark:data-[state=active]:border-fds-blue-20 dark:data-[state=active]:text-fds-blue-20', className), ...props })));
9
- TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
10
- const TabsContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Content, { ref: ref, className: cn('mt-fds-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fds-blue focus-visible:ring-offset-2', className), ...props })));
11
- TabsContent.displayName = TabsPrimitive.Content.displayName;
12
- export { Tabs, TabsList, TabsTrigger, TabsContent };
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { cn } from "../lib/utils";
4
- const Textarea = React.forwardRef(({ className, ...props }, ref) => {
5
- return (_jsx("textarea", { className: cn("flex min-h-[80px] w-full rounded-md border border-input-border bg-input px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ref: ref, ...props }));
6
- });
7
- Textarea.displayName = "Textarea";
8
- export { Textarea };
@@ -1,74 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from 'react';
4
- import { IconClearCircledSolid, IconClock } from '@freightos/icons';
5
- import { cn } from '../lib/utils';
6
- import { Button } from './button';
7
- import { Popover, PopoverContent, PopoverTrigger, } from './popover';
8
- import { ScrollArea, ScrollBar, } from './scroll-area';
9
- export function TimePicker({ value, onChange, placeholder = 'Select time', disabled = false, className, use24Hour = true, }) {
10
- const [open, setOpen] = React.useState(false);
11
- const [isHovered, setIsHovered] = React.useState(false);
12
- const hours = use24Hour
13
- ? Array.from({ length: 24 }, (_, i) => i)
14
- : Array.from({ length: 12 }, (_, i) => i + 1);
15
- // Parse value to get hour and minute
16
- const parsedHour = value ? parseInt(value.split(':')[0], 10) : undefined;
17
- const parsedMinute = value ? parseInt(value.split(':')[1], 10) : undefined;
18
- const handleTimeChange = (type, val) => {
19
- const currentHour = parsedHour ?? 0;
20
- const currentMinute = parsedMinute ?? 0;
21
- let newHour = currentHour;
22
- let newMinute = currentMinute;
23
- if (type === 'hour') {
24
- if (use24Hour) {
25
- newHour = parseInt(val);
26
- }
27
- else {
28
- const isPM = currentHour >= 12;
29
- newHour = (parseInt(val) % 12) + (isPM ? 12 : 0);
30
- }
31
- }
32
- else if (type === 'minute') {
33
- newMinute = parseInt(val);
34
- }
35
- else if (type === 'ampm') {
36
- if (val === 'PM' && currentHour < 12) {
37
- newHour = currentHour + 12;
38
- }
39
- else if (val === 'AM' && currentHour >= 12) {
40
- newHour = currentHour - 12;
41
- }
42
- }
43
- const timeString = `${newHour.toString().padStart(2, '0')}:${newMinute.toString().padStart(2, '0')}`;
44
- onChange?.(timeString);
45
- };
46
- const handleClear = (e) => {
47
- e.stopPropagation();
48
- onChange?.(undefined);
49
- };
50
- const formatDisplayTime = (timeValue) => {
51
- if (!timeValue)
52
- return undefined;
53
- const [h, m] = timeValue.split(':').map(Number);
54
- if (use24Hour) {
55
- return `${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}`;
56
- }
57
- const hour12 = h % 12 || 12;
58
- const ampm = h >= 12 ? 'PM' : 'AM';
59
- return `${hour12}:${m.toString().padStart(2, '0')} ${ampm}`;
60
- };
61
- const showClearIcon = isHovered && value;
62
- return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { type: "button", disabled: disabled, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), className: cn('flex h-[32px] w-full items-center justify-between gap-2 rounded-fds-md border border-input-border bg-input py-2 pl-3 pr-2 text-sm transition-[color,box-shadow]', 'focus:outline-none focus:border-[#2075bd] focus:shadow-[0_0_0_2px_var(--fds-color-primary-blue-20)]', 'disabled:cursor-not-allowed disabled:opacity-50', open && 'border-[#2075bd] shadow-[0_0_0_2px_var(--fds-color-primary-blue-20)]', !value && 'text-muted-foreground', className), children: [_jsx("span", { className: "truncate", children: value ? formatDisplayTime(value) : placeholder }), showClearIcon ? (_jsx(IconClearCircledSolid, { size: 16, className: "shrink-0 cursor-pointer text-muted-foreground hover:text-foreground", onClick: handleClear })) : (_jsx(IconClock, { size: 16, className: "shrink-0 text-muted-foreground" }))] }) }), _jsx(PopoverContent, { className: "w-auto p-0", children: _jsxs("div", { className: "flex divide-x sm:h-[300px]", children: [_jsxs(ScrollArea, { className: "w-auto", children: [_jsx("div", { className: "flex flex-col p-2", children: hours.map((hour) => (_jsx(Button, { size: "small", htmlType: "button", type: parsedHour !== undefined &&
63
- (use24Hour
64
- ? parsedHour === hour
65
- : parsedHour % 12 === hour % 12)
66
- ? 'default'
67
- : 'text', className: "aspect-square shrink-0 sm:w-full", onClick: () => handleTimeChange('hour', hour.toString()), children: use24Hour ? hour.toString().padStart(2, '0') : hour }, hour))) }), _jsx(ScrollBar, { orientation: "horizontal", className: "sm:hidden" })] }), _jsxs(ScrollArea, { className: "w-auto", children: [_jsx("div", { className: "flex flex-col p-2", children: Array.from({ length: 12 }, (_, i) => i * 5).map((minute) => (_jsx(Button, { size: "small", htmlType: "button", type: parsedMinute !== undefined && parsedMinute === minute
68
- ? 'default'
69
- : 'text', className: "aspect-square shrink-0 sm:w-full", onClick: () => handleTimeChange('minute', minute.toString()), children: minute.toString().padStart(2, '0') }, minute))) }), _jsx(ScrollBar, { orientation: "horizontal", className: "sm:hidden" })] }), !use24Hour && (_jsx(ScrollArea, { className: "", children: _jsx("div", { className: "flex flex-col p-2", children: ['AM', 'PM'].map((ampm) => (_jsx(Button, { size: "small", htmlType: "button", type: parsedHour !== undefined &&
70
- ((ampm === 'AM' && parsedHour < 12) ||
71
- (ampm === 'PM' && parsedHour >= 12))
72
- ? 'default'
73
- : 'text', className: "aspect-square shrink-0 sm:w-full", onClick: () => handleTimeChange('ampm', ampm), children: ampm }, ampm))) }) }))] }) })] }));
74
- }
@@ -1,33 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import * as ToastPrimitives from "@radix-ui/react-toast";
4
- import { cva } from "class-variance-authority";
5
- import { X } from "lucide-react";
6
- import { cn } from "../lib/utils";
7
- const ToastProvider = ToastPrimitives.Provider;
8
- const ToastViewport = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Viewport, { ref: ref, className: cn("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]", className), ...props })));
9
- ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
10
- const toastVariants = cva("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full", {
11
- variants: {
12
- variant: {
13
- default: "border bg-background text-foreground",
14
- destructive: "destructive group border-destructive bg-destructive text-destructive-foreground",
15
- },
16
- },
17
- defaultVariants: {
18
- variant: "default",
19
- },
20
- });
21
- const Toast = React.forwardRef(({ className, variant, ...props }, ref) => {
22
- return (_jsx(ToastPrimitives.Root, { ref: ref, className: cn(toastVariants({ variant }), className), ...props }));
23
- });
24
- Toast.displayName = ToastPrimitives.Root.displayName;
25
- const ToastAction = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Action, { ref: ref, className: cn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive", className), ...props })));
26
- ToastAction.displayName = ToastPrimitives.Action.displayName;
27
- const ToastClose = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Close, { ref: ref, className: cn("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600", className), "toast-close": "", ...props, children: _jsx(X, { className: "h-4 w-4" }) })));
28
- ToastClose.displayName = ToastPrimitives.Close.displayName;
29
- const ToastTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Title, { ref: ref, className: cn("text-sm font-semibold", className), ...props })));
30
- ToastTitle.displayName = ToastPrimitives.Title.displayName;
31
- const ToastDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(ToastPrimitives.Description, { ref: ref, className: cn("text-sm opacity-90", className), ...props })));
32
- ToastDescription.displayName = ToastPrimitives.Description.displayName;
33
- export { ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, };
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useToast } from "../hooks/use-toast";
3
- import { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, } from "./toast";
4
- export function Toaster() {
5
- const { toasts } = useToast();
6
- return (_jsxs(ToastProvider, { children: [toasts.map(function ({ id, title, description, action, ...props }) {
7
- return (_jsxs(Toast, { ...props, children: [_jsxs("div", { className: "grid gap-1", children: [title && _jsx(ToastTitle, { children: title }), description && (_jsx(ToastDescription, { children: description }))] }), action, _jsx(ToastClose, {})] }, id));
8
- }), _jsx(ToastViewport, {})] }));
9
- }
@@ -1,21 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
5
- import { cn } from "../lib/utils";
6
- import { toggleVariants } from "./toggle";
7
- const ToggleGroupContext = React.createContext({
8
- size: "default",
9
- variant: "default",
10
- });
11
- const ToggleGroup = React.forwardRef(({ className, variant, size, children, ...props }, ref) => (_jsx(ToggleGroupPrimitive.Root, { ref: ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: _jsx(ToggleGroupContext.Provider, { value: { variant, size }, children: children }) })));
12
- ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
13
- const ToggleGroupItem = React.forwardRef(({ className, children, variant, size, ...props }, ref) => {
14
- const context = React.useContext(ToggleGroupContext);
15
- return (_jsx(ToggleGroupPrimitive.Item, { ref: ref, className: cn(toggleVariants({
16
- variant: context.variant || variant,
17
- size: context.size || size,
18
- }), className), ...props, children: children }));
19
- });
20
- ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
21
- export { ToggleGroup, ToggleGroupItem };
@@ -1,25 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import * as TogglePrimitive from "@radix-ui/react-toggle";
4
- import { cva } from "class-variance-authority";
5
- import { cn } from "../lib/utils";
6
- const toggleVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2", {
7
- variants: {
8
- variant: {
9
- default: "bg-transparent",
10
- outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",
11
- },
12
- size: {
13
- default: "h-10 px-3 min-w-10",
14
- sm: "h-9 px-2.5 min-w-9",
15
- lg: "h-11 px-5 min-w-11",
16
- },
17
- },
18
- defaultVariants: {
19
- variant: "default",
20
- size: "default",
21
- },
22
- });
23
- const Toggle = React.forwardRef(({ className, variant, size, ...props }, ref) => (_jsx(TogglePrimitive.Root, { ref: ref, className: cn(toggleVariants({ variant, size, className })), ...props })));
24
- Toggle.displayName = TogglePrimitive.Root.displayName;
25
- export { Toggle, toggleVariants };
@@ -1,128 +0,0 @@
1
- "use client";
2
- // Inspired by react-hot-toast library
3
- import * as React from "react";
4
- const TOAST_LIMIT = 1;
5
- const TOAST_REMOVE_DELAY = 1000000;
6
- const actionTypes = {
7
- ADD_TOAST: "ADD_TOAST",
8
- UPDATE_TOAST: "UPDATE_TOAST",
9
- DISMISS_TOAST: "DISMISS_TOAST",
10
- REMOVE_TOAST: "REMOVE_TOAST",
11
- };
12
- let count = 0;
13
- function genId() {
14
- count = (count + 1) % Number.MAX_SAFE_INTEGER;
15
- return count.toString();
16
- }
17
- const toastTimeouts = new Map();
18
- const addToRemoveQueue = (toastId) => {
19
- if (toastTimeouts.has(toastId)) {
20
- return;
21
- }
22
- const timeout = setTimeout(() => {
23
- toastTimeouts.delete(toastId);
24
- dispatch({
25
- type: "REMOVE_TOAST",
26
- toastId: toastId,
27
- });
28
- }, TOAST_REMOVE_DELAY);
29
- toastTimeouts.set(toastId, timeout);
30
- };
31
- export const reducer = (state, action) => {
32
- switch (action.type) {
33
- case "ADD_TOAST":
34
- return {
35
- ...state,
36
- toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),
37
- };
38
- case "UPDATE_TOAST":
39
- return {
40
- ...state,
41
- toasts: state.toasts.map((t) => t.id === action.toast.id ? { ...t, ...action.toast } : t),
42
- };
43
- case "DISMISS_TOAST": {
44
- const { toastId } = action;
45
- // ! Side effects ! - This could be extracted into a dismissToast() action,
46
- // but I'll keep it here for simplicity
47
- if (toastId) {
48
- addToRemoveQueue(toastId);
49
- }
50
- else {
51
- state.toasts.forEach((toast) => {
52
- addToRemoveQueue(toast.id);
53
- });
54
- }
55
- return {
56
- ...state,
57
- toasts: state.toasts.map((t) => t.id === toastId || toastId === undefined
58
- ? {
59
- ...t,
60
- open: false,
61
- }
62
- : t),
63
- };
64
- }
65
- case "REMOVE_TOAST":
66
- if (action.toastId === undefined) {
67
- return {
68
- ...state,
69
- toasts: [],
70
- };
71
- }
72
- return {
73
- ...state,
74
- toasts: state.toasts.filter((t) => t.id !== action.toastId),
75
- };
76
- }
77
- };
78
- const listeners = [];
79
- let memoryState = { toasts: [] };
80
- function dispatch(action) {
81
- memoryState = reducer(memoryState, action);
82
- listeners.forEach((listener) => {
83
- listener(memoryState);
84
- });
85
- }
86
- function toast({ ...props }) {
87
- const id = genId();
88
- const update = (props) => dispatch({
89
- type: "UPDATE_TOAST",
90
- toast: { ...props, id },
91
- });
92
- const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
93
- dispatch({
94
- type: "ADD_TOAST",
95
- toast: {
96
- ...props,
97
- id,
98
- open: true,
99
- onOpenChange: (open) => {
100
- if (!open)
101
- dismiss();
102
- },
103
- },
104
- });
105
- return {
106
- id: id,
107
- dismiss,
108
- update,
109
- };
110
- }
111
- function useToast() {
112
- const [state, setState] = React.useState(memoryState);
113
- React.useEffect(() => {
114
- listeners.push(setState);
115
- return () => {
116
- const index = listeners.indexOf(setState);
117
- if (index > -1) {
118
- listeners.splice(index, 1);
119
- }
120
- };
121
- }, [state]);
122
- return {
123
- ...state,
124
- toast,
125
- dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId }),
126
- };
127
- }
128
- export { useToast, toast };
@@ -1,87 +0,0 @@
1
- /**
2
- * Get flag image URL for country code (ISO 3166-1 alpha-2)
3
- * Uses Freightos festatic CDN for flag images
4
- * @param countryCode Two-letter country code (e.g., 'US', 'GB', 'FR')
5
- * @returns Flag image URL or empty string if invalid
6
- */
7
- export const getCountryFlag = (countryCode) => {
8
- if (!countryCode || countryCode.length !== 2)
9
- return '';
10
- const lowerCode = countryCode.toLowerCase();
11
- // Use Freightos festatic CDN for flag images
12
- return `https://festatic.freightos.com/flags/1x1/${lowerCode}.svg`;
13
- };
14
- /**
15
- * Get flag emoji for country code (ISO 3166-1 alpha-2)
16
- * Uses Unicode regional indicator symbols to display flag emojis
17
- */
18
- export const getCountryFlagEmoji = (countryCode) => {
19
- if (!countryCode || countryCode.length !== 2)
20
- return '';
21
- const upperCode = countryCode.toUpperCase();
22
- // Convert country code to regional indicator symbols (flag emoji)
23
- const codePoints = [...upperCode].map(char => 0x1F1E6 + char.charCodeAt(0) - 65);
24
- return String.fromCodePoint(...codePoints);
25
- };
26
- /**
27
- * Common country names mapping (ISO 3166-1 alpha-2 codes)
28
- */
29
- const COUNTRY_NAMES = {
30
- US: 'United States',
31
- GB: 'United Kingdom',
32
- CA: 'Canada',
33
- FR: 'France',
34
- DE: 'Germany',
35
- IT: 'Italy',
36
- ES: 'Spain',
37
- NL: 'Netherlands',
38
- BE: 'Belgium',
39
- CH: 'Switzerland',
40
- AT: 'Austria',
41
- SE: 'Sweden',
42
- NO: 'Norway',
43
- DK: 'Denmark',
44
- FI: 'Finland',
45
- PL: 'Poland',
46
- CZ: 'Czech Republic',
47
- IE: 'Ireland',
48
- PT: 'Portugal',
49
- GR: 'Greece',
50
- CN: 'China',
51
- JP: 'Japan',
52
- KR: 'South Korea',
53
- IN: 'India',
54
- AU: 'Australia',
55
- NZ: 'New Zealand',
56
- SG: 'Singapore',
57
- HK: 'Hong Kong',
58
- TW: 'Taiwan',
59
- TH: 'Thailand',
60
- MY: 'Malaysia',
61
- ID: 'Indonesia',
62
- PH: 'Philippines',
63
- VN: 'Vietnam',
64
- BR: 'Brazil',
65
- MX: 'Mexico',
66
- AR: 'Argentina',
67
- CL: 'Chile',
68
- CO: 'Colombia',
69
- PE: 'Peru',
70
- ZA: 'South Africa',
71
- EG: 'Egypt',
72
- IL: 'Israel',
73
- AE: 'United Arab Emirates',
74
- SA: 'Saudi Arabia',
75
- TR: 'Turkey',
76
- RU: 'Russia',
77
- UA: 'Ukraine',
78
- };
79
- /**
80
- * Get country information including flag, code, and name
81
- */
82
- export const getCountryInfo = (countryCode) => {
83
- const upperCode = countryCode?.toUpperCase() || '';
84
- const flag = getCountryFlag(upperCode);
85
- const name = COUNTRY_NAMES[upperCode] || upperCode;
86
- return { flag, code: upperCode, name };
87
- };
package/dist/styles.css DELETED
@@ -1,152 +0,0 @@
1
- /* FreightWind Design System - FDS Tokens */
2
- /* Auto-generated - do not edit manually */
3
-
4
- :root {
5
- /* Primary Blue */
6
- --fds-blue: #0066FF;
7
- --fds-blue-10: #E5F0FF;
8
- --fds-blue-20: #CCE0FF;
9
- --fds-blue-40: #4D94FF;
10
- --fds-blue-50: #0052CC;
11
-
12
- /* Semantic Colors */
13
- --fds-red: #DC2626;
14
- --fds-red-10: #FEE2E2;
15
- --fds-green: #16A34A;
16
- --fds-green-10: #DCFCE7;
17
- --fds-orange: #EA580C;
18
- --fds-orange-10: #FFEDD5;
19
- --fds-yellow: #CA8A04;
20
- --fds-yellow-10: #FEF9C3;
21
- --fds-purple: #9333EA;
22
- --fds-purple-10: #F3E8FF;
23
-
24
- /* Gray Scale */
25
- --fds-gray-10: #F8FAFC;
26
- --fds-gray-20: #F1F5F9;
27
- --fds-gray-30: #E2E8F0;
28
- --fds-gray-40: #CBD5E1;
29
- --fds-gray-50: #94A3B8;
30
- --fds-gray-60: #64748B;
31
- --fds-gray-70: #475569;
32
- --fds-gray-80: #334155;
33
- --fds-gray-90: #1E293B;
34
-
35
- /* Spacing */
36
- --fds-spacing-xs: 4px;
37
- --fds-spacing-sm: 8px;
38
- --fds-spacing-md: 12px;
39
- --fds-spacing-lg: 16px;
40
- --fds-spacing-xl: 24px;
41
- --fds-spacing-xxl: 32px;
42
- --fds-spacing-xxxl: 64px;
43
-
44
- /* Typography Sizes */
45
- --fds-text-xs: 10px;
46
- --fds-text-sm: 12px;
47
- --fds-text-base: 14px;
48
- --fds-text-h6: 16px;
49
- --fds-text-h5: 18px;
50
- --fds-text-h4: 20px;
51
- --fds-text-h3: 24px;
52
- --fds-text-h2: 32px;
53
- --fds-text-h1: 40px;
54
-
55
- /* Font Weights */
56
- --fds-font-regular: 400;
57
- --fds-font-medium: 500;
58
- --fds-font-semibold: 600;
59
- --fds-font-bold: 700;
60
-
61
- /* Border Radius */
62
- --fds-radius-sm: 2px;
63
- --fds-radius-md: 4px;
64
- --fds-radius-lg: 8px;
65
-
66
- /* Shadows */
67
- --fds-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
68
- --fds-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
69
- --fds-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
70
- }
71
-
72
- /* Tailwind-compatible utility classes */
73
- .bg-fds-blue { background-color: var(--fds-blue); }
74
- .bg-fds-blue-10 { background-color: var(--fds-blue-10); }
75
- .bg-fds-blue-20 { background-color: var(--fds-blue-20); }
76
- .bg-fds-blue-40 { background-color: var(--fds-blue-40); }
77
- .bg-fds-blue-50 { background-color: var(--fds-blue-50); }
78
-
79
- .bg-fds-red { background-color: var(--fds-red); }
80
- .bg-fds-red-10 { background-color: var(--fds-red-10); }
81
- .bg-fds-green { background-color: var(--fds-green); }
82
- .bg-fds-green-10 { background-color: var(--fds-green-10); }
83
- .bg-fds-orange { background-color: var(--fds-orange); }
84
- .bg-fds-orange-10 { background-color: var(--fds-orange-10); }
85
- .bg-fds-purple { background-color: var(--fds-purple); }
86
- .bg-fds-purple-10 { background-color: var(--fds-purple-10); }
87
-
88
- .bg-fds-gray-10 { background-color: var(--fds-gray-10); }
89
- .bg-fds-gray-20 { background-color: var(--fds-gray-20); }
90
- .bg-fds-gray-30 { background-color: var(--fds-gray-30); }
91
- .bg-fds-gray-40 { background-color: var(--fds-gray-40); }
92
- .bg-fds-gray-50 { background-color: var(--fds-gray-50); }
93
- .bg-fds-gray-60 { background-color: var(--fds-gray-60); }
94
- .bg-fds-gray-70 { background-color: var(--fds-gray-70); }
95
- .bg-fds-gray-80 { background-color: var(--fds-gray-80); }
96
- .bg-fds-gray-90 { background-color: var(--fds-gray-90); }
97
-
98
- .text-fds-blue { color: var(--fds-blue); }
99
- .text-fds-red { color: var(--fds-red); }
100
- .text-fds-green { color: var(--fds-green); }
101
- .text-fds-orange { color: var(--fds-orange); }
102
- .text-fds-purple { color: var(--fds-purple); }
103
-
104
- .text-fds-gray-50 { color: var(--fds-gray-50); }
105
- .text-fds-gray-60 { color: var(--fds-gray-60); }
106
- .text-fds-gray-70 { color: var(--fds-gray-70); }
107
-
108
- .border-fds-blue { border-color: var(--fds-blue); }
109
- .border-fds-gray-20 { border-color: var(--fds-gray-20); }
110
- .border-fds-gray-30 { border-color: var(--fds-gray-30); }
111
-
112
- .p-fds-xs { padding: var(--fds-spacing-xs); }
113
- .p-fds-sm { padding: var(--fds-spacing-sm); }
114
- .p-fds-md { padding: var(--fds-spacing-md); }
115
- .p-fds-lg { padding: var(--fds-spacing-lg); }
116
- .p-fds-xl { padding: var(--fds-spacing-xl); }
117
- .p-fds-xxl { padding: var(--fds-spacing-xxl); }
118
-
119
- .m-fds-xs { margin: var(--fds-spacing-xs); }
120
- .m-fds-sm { margin: var(--fds-spacing-sm); }
121
- .m-fds-md { margin: var(--fds-spacing-md); }
122
- .m-fds-lg { margin: var(--fds-spacing-lg); }
123
- .m-fds-xl { margin: var(--fds-spacing-xl); }
124
-
125
- .gap-fds-xs { gap: var(--fds-spacing-xs); }
126
- .gap-fds-sm { gap: var(--fds-spacing-sm); }
127
- .gap-fds-md { gap: var(--fds-spacing-md); }
128
- .gap-fds-lg { gap: var(--fds-spacing-lg); }
129
- .gap-fds-xl { gap: var(--fds-spacing-xl); }
130
-
131
- .text-fds-xs { font-size: var(--fds-text-xs); }
132
- .text-fds-sm { font-size: var(--fds-text-sm); }
133
- .text-fds-base { font-size: var(--fds-text-base); }
134
- .text-fds-h6 { font-size: var(--fds-text-h6); }
135
- .text-fds-h5 { font-size: var(--fds-text-h5); }
136
- .text-fds-h4 { font-size: var(--fds-text-h4); }
137
- .text-fds-h3 { font-size: var(--fds-text-h3); }
138
- .text-fds-h2 { font-size: var(--fds-text-h2); }
139
- .text-fds-h1 { font-size: var(--fds-text-h1); }
140
-
141
- .font-fds-regular { font-weight: var(--fds-font-regular); }
142
- .font-fds-medium { font-weight: var(--fds-font-medium); }
143
- .font-fds-semibold { font-weight: var(--fds-font-semibold); }
144
- .font-fds-bold { font-weight: var(--fds-font-bold); }
145
-
146
- .rounded-fds-sm { border-radius: var(--fds-radius-sm); }
147
- .rounded-fds-md { border-radius: var(--fds-radius-md); }
148
- .rounded-fds-lg { border-radius: var(--fds-radius-lg); }
149
-
150
- .shadow-fds-sm { box-shadow: var(--fds-shadow-sm); }
151
- .shadow-fds-md { box-shadow: var(--fds-shadow-md); }
152
- .shadow-fds-lg { box-shadow: var(--fds-shadow-lg); }
@@ -1,11 +0,0 @@
1
- import * as AccordionPrimitive from '@radix-ui/react-accordion';
2
- import * as React from 'react';
3
- declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
4
- declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
- interface AccordionTriggerProps extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {
6
- caretPosition?: 'start' | 'end';
7
- bottom?: React.ReactNode;
8
- }
9
- declare const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
10
- declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -1,3 +0,0 @@
1
- import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
2
- declare const AspectRatio: import("react").ForwardRefExoticComponent<AspectRatioPrimitive.AspectRatioProps & import("react").RefAttributes<HTMLDivElement>>;
3
- export { AspectRatio };
@@ -1,19 +0,0 @@
1
- import * as React from "react";
2
- declare const Breadcrumb: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
3
- separator?: React.ReactNode;
4
- } & React.RefAttributes<HTMLElement>>;
5
- declare const BreadcrumbList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
6
- declare const BreadcrumbItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
7
- declare const BreadcrumbLink: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
8
- asChild?: boolean;
9
- } & React.RefAttributes<HTMLAnchorElement>>;
10
- declare const BreadcrumbPage: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
- declare const BreadcrumbSeparator: {
12
- ({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
13
- displayName: string;
14
- };
15
- declare const BreadcrumbEllipsis: {
16
- ({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
17
- displayName: string;
18
- };
19
- export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
@@ -1,7 +0,0 @@
1
- import * as React from 'react';
2
- import { DayButton, DayPicker } from 'react-day-picker';
3
- declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
4
- buttonVariant?: 'default' | 'secondary' | 'tertiary' | 'text' | 'danger';
5
- }): import("react/jsx-runtime").JSX.Element;
6
- declare function CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>): import("react/jsx-runtime").JSX.Element;
7
- export { Calendar, CalendarDayButton };
@@ -1,11 +0,0 @@
1
- import * as React from 'react';
2
- declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
- declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
- declare const CardAction: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
5
- interface CardTitleProps extends React.HTMLAttributes<HTMLDivElement> {
6
- size?: 'small' | 'medium';
7
- }
8
- declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLDivElement>>;
9
- declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
10
- declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
11
- export { Card, CardAction, CardContent, CardFooter, CardHeader, CardTitle };