@freightos/freightwind 1.0.0 → 1.1.1
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.
- package/LICENSE +21 -0
- package/README.md +28 -0
- package/dist/cjs/components/alert.js +33 -16
- package/dist/cjs/components/avatar.js +53 -58
- package/dist/cjs/components/badge.js +42 -18
- package/dist/cjs/components/button.js +35 -24
- package/dist/cjs/components/checkbox.js +21 -3
- package/dist/cjs/components/chip.js +67 -9
- package/dist/cjs/components/message.js +38 -0
- package/dist/cjs/components/pop-confirm.js +86 -0
- package/dist/cjs/components/radio-button-group.js +31 -35
- package/dist/cjs/components/radio-group.js +2 -1
- package/dist/cjs/components/slider.js +14 -6
- package/dist/cjs/components/switch.js +29 -10
- package/dist/cjs/components/tooltip.js +40 -11
- package/dist/cjs/index.js +38 -84
- package/dist/cjs/lib/icon-utils.js +5 -0
- package/dist/cjs/{components/aspect-ratio.js → lib/use-stable-id.js} +7 -4
- package/dist/cjs/lib/utils.js +18 -1
- package/dist/esm/components/alert.js +34 -17
- package/dist/esm/components/avatar.js +53 -22
- package/dist/esm/components/badge.js +45 -19
- package/dist/esm/components/button.js +36 -25
- package/dist/esm/components/checkbox.js +22 -4
- package/dist/esm/components/chip.js +34 -9
- package/dist/esm/components/message.js +34 -0
- package/dist/esm/components/pop-confirm.js +51 -0
- package/dist/esm/components/radio-button-group.js +31 -33
- package/dist/esm/components/radio-group.js +2 -1
- package/dist/esm/components/slider.js +14 -6
- package/dist/esm/components/switch.js +30 -11
- package/dist/esm/components/tooltip.js +40 -7
- package/dist/esm/index.js +18 -66
- package/dist/esm/lib/icon-utils.js +1 -0
- package/dist/esm/lib/use-stable-id.js +6 -0
- package/dist/esm/lib/utils.js +18 -1
- package/dist/types/components/alert.d.ts +5 -5
- package/dist/types/components/avatar.d.ts +14 -19
- package/dist/types/components/badge.d.ts +22 -8
- package/dist/types/components/button.d.ts +15 -9
- package/dist/types/components/checkbox.d.ts +8 -2
- package/dist/types/components/chip.d.ts +14 -8
- package/dist/types/components/message.d.ts +14 -0
- package/dist/types/components/pop-confirm.d.ts +28 -0
- package/dist/types/components/radio-button-group.d.ts +19 -14
- package/dist/types/components/slider.d.ts +10 -2
- package/dist/types/components/switch.d.ts +7 -6
- package/dist/types/components/tooltip.d.ts +9 -6
- package/dist/types/index.d.ts +25 -61
- package/dist/types/lib/icon-utils.d.ts +1 -0
- package/dist/types/lib/use-stable-id.d.ts +1 -0
- package/guidelines/Guidelines.md +54 -0
- package/guidelines/design-tokens/colors.md +81 -0
- package/guidelines/design-tokens/spacing.md +45 -0
- package/guidelines/design-tokens/typography.md +50 -0
- package/guidelines/overview-components.md +252 -0
- package/guidelines/overview-icons.md +52 -0
- package/package.json +63 -54
- package/tokens.css +409 -0
- package/dist/cjs/components/accordion.js +0 -57
- package/dist/cjs/components/breadcrumb.js +0 -65
- package/dist/cjs/components/calendar.js +0 -106
- package/dist/cjs/components/card.js +0 -59
- package/dist/cjs/components/chart.js +0 -176
- package/dist/cjs/components/collapsible.js +0 -43
- package/dist/cjs/components/command.js +0 -73
- package/dist/cjs/components/context-menu.js +0 -83
- package/dist/cjs/components/country-select.js +0 -155
- package/dist/cjs/components/date-picker.js +0 -59
- package/dist/cjs/components/date-range-picker.js +0 -59
- package/dist/cjs/components/date-time-picker.js +0 -106
- package/dist/cjs/components/dialog.js +0 -70
- package/dist/cjs/components/drawer.js +0 -68
- package/dist/cjs/components/dropdown-menu.js +0 -85
- package/dist/cjs/components/empty.js +0 -42
- package/dist/cjs/components/file-preview.js +0 -73
- package/dist/cjs/components/form.js +0 -106
- package/dist/cjs/components/inline-edit.js +0 -83
- package/dist/cjs/components/input-group.js +0 -70
- package/dist/cjs/components/input-otp.js +0 -58
- package/dist/cjs/components/input.js +0 -57
- package/dist/cjs/components/label.js +0 -45
- package/dist/cjs/components/menubar.js +0 -96
- package/dist/cjs/components/navigation-menu.js +0 -68
- package/dist/cjs/components/pagination.js +0 -65
- package/dist/cjs/components/phone-input.js +0 -218
- package/dist/cjs/components/popover.js +0 -49
- package/dist/cjs/components/progress.js +0 -43
- package/dist/cjs/components/resizable.js +0 -47
- package/dist/cjs/components/rich-text-editor.js +0 -152
- package/dist/cjs/components/route.js +0 -47
- package/dist/cjs/components/scroll-area.js +0 -48
- package/dist/cjs/components/select.js +0 -71
- package/dist/cjs/components/separator.js +0 -43
- package/dist/cjs/components/sheet.js +0 -245
- package/dist/cjs/components/skeleton.js +0 -8
- package/dist/cjs/components/sonner.js +0 -25
- package/dist/cjs/components/spinner.js +0 -25
- package/dist/cjs/components/stepper.js +0 -99
- package/dist/cjs/components/steps.js +0 -127
- package/dist/cjs/components/table.js +0 -66
- package/dist/cjs/components/tabs.js +0 -51
- package/dist/cjs/components/textarea.js +0 -44
- package/dist/cjs/components/time-picker.js +0 -110
- package/dist/cjs/components/toast.js +0 -75
- package/dist/cjs/components/toaster.js +0 -12
- package/dist/cjs/components/toggle-group.js +0 -58
- package/dist/cjs/components/toggle.js +0 -62
- package/dist/cjs/hooks/use-toast.js +0 -166
- package/dist/cjs/lib/countryUtils.js +0 -93
- package/dist/esm/components/accordion.js +0 -18
- package/dist/esm/components/aspect-ratio.js +0 -3
- package/dist/esm/components/breadcrumb.js +0 -23
- package/dist/esm/components/calendar.js +0 -70
- package/dist/esm/components/card.js +0 -18
- package/dist/esm/components/chart.js +0 -135
- package/dist/esm/components/collapsible.js +0 -5
- package/dist/esm/components/command.js +0 -29
- package/dist/esm/components/context-menu.js +0 -33
- package/dist/esm/components/country-select.js +0 -118
- package/dist/esm/components/date-picker.js +0 -23
- package/dist/esm/components/date-range-picker.js +0 -23
- package/dist/esm/components/date-time-picker.js +0 -70
- package/dist/esm/components/dialog.js +0 -24
- package/dist/esm/components/drawer.js +0 -23
- package/dist/esm/components/dropdown-menu.js +0 -35
- package/dist/esm/components/empty.js +0 -6
- package/dist/esm/components/file-preview.js +0 -69
- package/dist/esm/components/form.js +0 -63
- package/dist/esm/components/inline-edit.js +0 -47
- package/dist/esm/components/input-group.js +0 -63
- package/dist/esm/components/input-otp.js +0 -19
- package/dist/esm/components/input.js +0 -21
- package/dist/esm/components/label.js +0 -9
- package/dist/esm/components/menubar.js +0 -45
- package/dist/esm/components/navigation-menu.js +0 -24
- package/dist/esm/components/pagination.js +0 -23
- package/dist/esm/components/phone-input.js +0 -181
- package/dist/esm/components/popover.js +0 -10
- package/dist/esm/components/progress.js +0 -7
- package/dist/esm/components/resizable.js +0 -9
- package/dist/esm/components/rich-text-editor.js +0 -145
- package/dist/esm/components/route.js +0 -11
- package/dist/esm/components/scroll-area.js +0 -11
- package/dist/esm/components/select.js +0 -26
- package/dist/esm/components/separator.js +0 -7
- package/dist/esm/components/sheet.js +0 -197
- package/dist/esm/components/skeleton.js +0 -6
- package/dist/esm/components/sonner.js +0 -22
- package/dist/esm/components/spinner.js +0 -21
- package/dist/esm/components/stepper.js +0 -57
- package/dist/esm/components/steps.js +0 -80
- package/dist/esm/components/table.js +0 -22
- package/dist/esm/components/tabs.js +0 -12
- package/dist/esm/components/textarea.js +0 -8
- package/dist/esm/components/time-picker.js +0 -74
- package/dist/esm/components/toast.js +0 -33
- package/dist/esm/components/toaster.js +0 -9
- package/dist/esm/components/toggle-group.js +0 -21
- package/dist/esm/components/toggle.js +0 -25
- package/dist/esm/hooks/use-toast.js +0 -128
- package/dist/esm/lib/countryUtils.js +0 -87
- package/dist/styles.css +0 -152
- package/dist/types/components/accordion.d.ts +0 -11
- package/dist/types/components/aspect-ratio.d.ts +0 -3
- package/dist/types/components/breadcrumb.d.ts +0 -19
- package/dist/types/components/calendar.d.ts +0 -7
- package/dist/types/components/card.d.ts +0 -11
- package/dist/types/components/chart.d.ts +0 -66
- package/dist/types/components/collapsible.d.ts +0 -5
- package/dist/types/components/command.d.ts +0 -80
- package/dist/types/components/context-menu.d.ts +0 -27
- package/dist/types/components/country-select.d.ts +0 -17
- package/dist/types/components/date-picker.d.ts +0 -9
- package/dist/types/components/date-range-picker.d.ts +0 -10
- package/dist/types/components/date-time-picker.d.ts +0 -10
- package/dist/types/components/dialog.d.ts +0 -23
- package/dist/types/components/drawer.d.ts +0 -22
- package/dist/types/components/dropdown-menu.d.ts +0 -27
- package/dist/types/components/empty.d.ts +0 -6
- package/dist/types/components/file-preview.d.ts +0 -9
- package/dist/types/components/form.d.ts +0 -23
- package/dist/types/components/inline-edit.d.ts +0 -10
- package/dist/types/components/input-group.d.ts +0 -16
- package/dist/types/components/input-otp.d.ts +0 -34
- package/dist/types/components/input.d.ts +0 -9
- package/dist/types/components/label.d.ts +0 -5
- package/dist/types/components/menubar.d.ts +0 -28
- package/dist/types/components/navigation-menu.d.ts +0 -12
- package/dist/types/components/pagination.d.ts +0 -29
- package/dist/types/components/phone-input.d.ts +0 -20
- package/dist/types/components/popover.d.ts +0 -9
- package/dist/types/components/progress.d.ts +0 -4
- package/dist/types/components/resizable.d.ts +0 -23
- package/dist/types/components/rich-text-editor.d.ts +0 -8
- package/dist/types/components/route.d.ts +0 -10
- package/dist/types/components/scroll-area.d.ts +0 -5
- package/dist/types/components/select.d.ts +0 -13
- package/dist/types/components/separator.d.ts +0 -4
- package/dist/types/components/sheet.d.ts +0 -49
- package/dist/types/components/skeleton.d.ts +0 -2
- package/dist/types/components/sonner.d.ts +0 -4
- package/dist/types/components/spinner.d.ts +0 -8
- package/dist/types/components/stepper.d.ts +0 -17
- package/dist/types/components/steps.d.ts +0 -64
- package/dist/types/components/table.d.ts +0 -14
- package/dist/types/components/tabs.d.ts +0 -7
- package/dist/types/components/textarea.d.ts +0 -3
- package/dist/types/components/time-picker.d.ts +0 -10
- package/dist/types/components/toast.d.ts +0 -15
- package/dist/types/components/toaster.d.ts +0 -1
- package/dist/types/components/toggle-group.d.ts +0 -12
- package/dist/types/components/toggle.d.ts +0 -12
- package/dist/types/hooks/use-toast.d.ts +0 -44
- package/dist/types/lib/countryUtils.d.ts +0 -20
- package/tailwind-preset.js +0 -70
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
'use client';
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.DatePicker = DatePicker;
|
|
38
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
-
const React = __importStar(require("react"));
|
|
40
|
-
const lucide_react_1 = require("lucide-react");
|
|
41
|
-
const icons_1 = require("@freightos/icons");
|
|
42
|
-
const date_fns_1 = require("date-fns");
|
|
43
|
-
const utils_1 = require("../lib/utils");
|
|
44
|
-
const calendar_1 = require("./calendar");
|
|
45
|
-
const popover_1 = require("./popover");
|
|
46
|
-
function DatePicker({ value, onChange, placeholder = 'Pick a date', disabled = false, className, }) {
|
|
47
|
-
const [open, setOpen] = React.useState(false);
|
|
48
|
-
const [isHovered, setIsHovered] = React.useState(false);
|
|
49
|
-
const handleSelect = (date) => {
|
|
50
|
-
onChange?.(date);
|
|
51
|
-
setOpen(false);
|
|
52
|
-
};
|
|
53
|
-
const handleClear = (e) => {
|
|
54
|
-
e.stopPropagation();
|
|
55
|
-
onChange?.(undefined);
|
|
56
|
-
};
|
|
57
|
-
const showClearIcon = isHovered && value;
|
|
58
|
-
return ((0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: setOpen, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)("button", { type: "button", disabled: disabled, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), className: (0, utils_1.cn)('flex h-[var(--fds-size-xl)] w-full items-center justify-between gap-3 rounded-[var(--fds-border-radius-md)] border border-input-border bg-input py-1 pl-3 pr-2 text-sm', 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-50', !value && 'text-muted-foreground', className), children: [(0, jsx_runtime_1.jsx)("span", { className: "truncate", children: value ? (0, date_fns_1.format)(value, 'dd/MM/yyyy') : placeholder }), showClearIcon ? ((0, jsx_runtime_1.jsx)(icons_1.IconClearCircledSolid, { size: 16, className: "shrink-0 cursor-pointer text-muted-foreground hover:text-foreground", onClick: handleClear })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon, { className: "h-4 w-4 shrink-0 text-muted-foreground" }))] }) }), (0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { className: "w-auto p-0", align: "start", children: (0, jsx_runtime_1.jsx)(calendar_1.Calendar, { mode: "single", selected: value, onSelect: handleSelect }) })] }));
|
|
59
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
'use client';
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.DateRangePicker = DateRangePicker;
|
|
38
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
-
const React = __importStar(require("react"));
|
|
40
|
-
const lucide_react_1 = require("lucide-react");
|
|
41
|
-
const icons_1 = require("@freightos/icons");
|
|
42
|
-
const date_fns_1 = require("date-fns");
|
|
43
|
-
const utils_1 = require("../lib/utils");
|
|
44
|
-
const calendar_1 = require("./calendar");
|
|
45
|
-
const popover_1 = require("./popover");
|
|
46
|
-
function DateRangePicker({ value, onChange, placeholder = 'Start date - End date', disabled = false, className, }) {
|
|
47
|
-
const [open, setOpen] = React.useState(false);
|
|
48
|
-
const [isHovered, setIsHovered] = React.useState(false);
|
|
49
|
-
const handleSelect = (range) => {
|
|
50
|
-
onChange?.(range);
|
|
51
|
-
};
|
|
52
|
-
const handleClear = (e) => {
|
|
53
|
-
e.stopPropagation();
|
|
54
|
-
onChange?.(undefined);
|
|
55
|
-
};
|
|
56
|
-
const hasValue = value?.from;
|
|
57
|
-
const showClearIcon = isHovered && hasValue;
|
|
58
|
-
return ((0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: setOpen, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)("button", { type: "button", disabled: disabled, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), className: (0, utils_1.cn)('flex h-[var(--fds-size-xl)] w-full items-center justify-between gap-3 rounded-[var(--fds-border-radius-md)] border border-input-border bg-input py-1 pl-3 pr-2 text-sm', 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-50', !hasValue && 'text-muted-foreground', className), children: [(0, jsx_runtime_1.jsx)("span", { className: "truncate", children: value?.from ? (value.to ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, date_fns_1.format)(value.from, 'dd/MM/yyyy'), " - ", (0, date_fns_1.format)(value.to, 'dd/MM/yyyy')] })) : ((0, date_fns_1.format)(value.from, 'dd/MM/yyyy'))) : (placeholder) }), showClearIcon ? ((0, jsx_runtime_1.jsx)(icons_1.IconClearCircledSolid, { size: 16, className: "shrink-0 cursor-pointer text-muted-foreground hover:text-foreground", onClick: handleClear })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon, { className: "h-4 w-4 shrink-0 text-muted-foreground" }))] }) }), (0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { className: "w-auto p-0", align: "end", children: (0, jsx_runtime_1.jsx)(calendar_1.Calendar, { mode: "range", defaultMonth: value?.from, selected: value, onSelect: handleSelect, numberOfMonths: 2, showOutsideDays: false }) })] }));
|
|
59
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
'use client';
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.DateTimePicker = DateTimePicker;
|
|
38
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
-
const React = __importStar(require("react"));
|
|
40
|
-
const lucide_react_1 = require("lucide-react");
|
|
41
|
-
const icons_1 = require("@freightos/icons");
|
|
42
|
-
const date_fns_1 = require("date-fns");
|
|
43
|
-
const utils_1 = require("../lib/utils");
|
|
44
|
-
const button_1 = require("./button");
|
|
45
|
-
const calendar_1 = require("./calendar");
|
|
46
|
-
const popover_1 = require("./popover");
|
|
47
|
-
const scroll_area_1 = require("./scroll-area");
|
|
48
|
-
function DateTimePicker({ value, onChange, placeholder = 'Pick date and time', disabled = false, className, use24Hour = false, }) {
|
|
49
|
-
const [open, setOpen] = React.useState(false);
|
|
50
|
-
const [isHovered, setIsHovered] = React.useState(false);
|
|
51
|
-
const hours = use24Hour
|
|
52
|
-
? Array.from({ length: 24 }, (_, i) => i)
|
|
53
|
-
: Array.from({ length: 12 }, (_, i) => i + 1);
|
|
54
|
-
const handleDateSelect = (selectedDate) => {
|
|
55
|
-
if (selectedDate) {
|
|
56
|
-
const newDate = new Date(selectedDate);
|
|
57
|
-
if (value) {
|
|
58
|
-
newDate.setHours(value.getHours());
|
|
59
|
-
newDate.setMinutes(value.getMinutes());
|
|
60
|
-
}
|
|
61
|
-
onChange?.(newDate);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
const handleTimeChange = (type, val) => {
|
|
65
|
-
const newDate = value ? new Date(value) : new Date();
|
|
66
|
-
if (type === 'hour') {
|
|
67
|
-
if (use24Hour) {
|
|
68
|
-
newDate.setHours(parseInt(val));
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
newDate.setHours((parseInt(val) % 12) + (newDate.getHours() >= 12 ? 12 : 0));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else if (type === 'minute') {
|
|
75
|
-
newDate.setMinutes(parseInt(val));
|
|
76
|
-
}
|
|
77
|
-
else if (type === 'ampm') {
|
|
78
|
-
const currentHours = newDate.getHours();
|
|
79
|
-
if (val === 'PM' && currentHours < 12) {
|
|
80
|
-
newDate.setHours(currentHours + 12);
|
|
81
|
-
}
|
|
82
|
-
else if (val === 'AM' && currentHours >= 12) {
|
|
83
|
-
newDate.setHours(currentHours - 12);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
onChange?.(newDate);
|
|
87
|
-
};
|
|
88
|
-
const handleClear = (e) => {
|
|
89
|
-
e.stopPropagation();
|
|
90
|
-
onChange?.(undefined);
|
|
91
|
-
};
|
|
92
|
-
const formatString = use24Hour ? 'dd/MM/yyyy HH:mm' : 'dd/MM/yyyy hh:mm aa';
|
|
93
|
-
const showClearIcon = isHovered && value;
|
|
94
|
-
return ((0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: setOpen, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)("button", { type: "button", disabled: disabled, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), className: (0, utils_1.cn)('flex h-[var(--fds-size-xl)] w-full items-center justify-between gap-3 rounded-[var(--fds-border-radius-md)] border border-input-border bg-input py-1 pl-3 pr-2 text-sm', 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-50', !value && 'text-muted-foreground', className), children: [(0, jsx_runtime_1.jsx)("span", { className: "truncate", children: value ? (0, date_fns_1.format)(value, formatString) : placeholder }), showClearIcon ? ((0, jsx_runtime_1.jsx)(icons_1.IconClearCircledSolid, { size: 16, className: "shrink-0 cursor-pointer text-muted-foreground hover:text-foreground", onClick: handleClear })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon, { className: "h-4 w-4 shrink-0 text-muted-foreground" }))] }) }), (0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { className: "w-auto p-0", children: (0, jsx_runtime_1.jsxs)("div", { className: "sm:flex", children: [(0, jsx_runtime_1.jsx)(calendar_1.Calendar, { mode: "single", selected: value, onSelect: handleDateSelect }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col divide-y sm:h-[300px] sm:flex-row sm:divide-x sm:divide-y-0", children: [(0, jsx_runtime_1.jsxs)(scroll_area_1.ScrollArea, { className: "w-64 sm:w-auto", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex p-2 sm:flex-col", children: hours.map((hour) => ((0, jsx_runtime_1.jsx)(button_1.Button, { size: "small", htmlType: "button", type: value &&
|
|
95
|
-
(use24Hour
|
|
96
|
-
? value.getHours() === hour
|
|
97
|
-
: value.getHours() % 12 === hour % 12)
|
|
98
|
-
? 'default'
|
|
99
|
-
: 'text', className: "aspect-square shrink-0 sm:w-full", onClick: () => handleTimeChange('hour', hour.toString()), children: use24Hour ? hour.toString().padStart(2, '0') : hour }, hour))) }), (0, jsx_runtime_1.jsx)(scroll_area_1.ScrollBar, { orientation: "horizontal", className: "sm:hidden" })] }), (0, jsx_runtime_1.jsxs)(scroll_area_1.ScrollArea, { className: "w-64 sm:w-auto", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex p-2 sm:flex-col", children: Array.from({ length: 12 }, (_, i) => i * 5).map((minute) => ((0, jsx_runtime_1.jsx)(button_1.Button, { size: "small", htmlType: "button", type: value && value.getMinutes() === minute
|
|
100
|
-
? 'default'
|
|
101
|
-
: 'text', className: "aspect-square shrink-0 sm:w-full", onClick: () => handleTimeChange('minute', minute.toString()), children: minute.toString().padStart(2, '0') }, minute))) }), (0, jsx_runtime_1.jsx)(scroll_area_1.ScrollBar, { orientation: "horizontal", className: "sm:hidden" })] }), !use24Hour && ((0, jsx_runtime_1.jsx)(scroll_area_1.ScrollArea, { className: "", children: (0, jsx_runtime_1.jsx)("div", { className: "flex p-2 sm:flex-col", children: ['AM', 'PM'].map((ampm) => ((0, jsx_runtime_1.jsx)(button_1.Button, { size: "small", htmlType: "button", type: value &&
|
|
102
|
-
((ampm === 'AM' && value.getHours() < 12) ||
|
|
103
|
-
(ampm === 'PM' && value.getHours() >= 12))
|
|
104
|
-
? 'default'
|
|
105
|
-
: 'text', className: "aspect-square shrink-0 sm:w-full", onClick: () => handleTimeChange('ampm', ampm), children: ampm }, ampm))) }) }))] })] }) })] }));
|
|
106
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.DialogTrigger = exports.DialogTitle = exports.DialogPortal = exports.DialogOverlay = exports.DialogHeader = exports.DialogFooter = exports.DialogDescription = exports.DialogContent = exports.DialogClose = exports.DialogBody = exports.Dialog = void 0;
|
|
37
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
-
const DialogPrimitive = __importStar(require("@radix-ui/react-dialog"));
|
|
39
|
-
const React = __importStar(require("react"));
|
|
40
|
-
const utils_1 = require("../lib/utils");
|
|
41
|
-
const icons_1 = require("@freightos/icons");
|
|
42
|
-
const Dialog = DialogPrimitive.Root;
|
|
43
|
-
exports.Dialog = Dialog;
|
|
44
|
-
const DialogTrigger = DialogPrimitive.Trigger;
|
|
45
|
-
exports.DialogTrigger = DialogTrigger;
|
|
46
|
-
const DialogPortal = DialogPrimitive.Portal;
|
|
47
|
-
exports.DialogPortal = DialogPortal;
|
|
48
|
-
const DialogClose = DialogPrimitive.Close;
|
|
49
|
-
exports.DialogClose = DialogClose;
|
|
50
|
-
const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DialogPrimitive.Overlay, { ref: ref, className: (0, utils_1.cn)('fixed inset-0 z-[9999] bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props })));
|
|
51
|
-
exports.DialogOverlay = DialogOverlay;
|
|
52
|
-
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
53
|
-
const DialogContent = React.forwardRef(({ className, children, closable = true, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(DialogPortal, { children: [(0, jsx_runtime_1.jsx)(DialogOverlay, {}), (0, jsx_runtime_1.jsxs)(DialogPrimitive.Content, { ref: ref, className: (0, utils_1.cn)('fixed left-[50%] top-[50%] z-[9999] flex w-full max-w-lg translate-x-[-50%] translate-y-[-50%] flex-col bg-card shadow-lg duration-150 ease-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg', className), ...props, children: [children, closable && ((0, jsx_runtime_1.jsx)(DialogPrimitive.Close, { asChild: true, children: (0, jsx_runtime_1.jsxs)("button", { className: "hover:text-fds-gray-90 absolute end-fds-xl top-fds-lg text-fds-gray-60 dark:text-fds-gray-40 dark:hover:text-fds-gray-10", children: [(0, jsx_runtime_1.jsx)(icons_1.IconClose, { size: 24 }), (0, jsx_runtime_1.jsx)("span", { className: "sr-only", children: "Close" })] }) }))] })] })));
|
|
54
|
-
exports.DialogContent = DialogContent;
|
|
55
|
-
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
56
|
-
const DialogHeader = ({ className, ...props }) => ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('flex flex-col space-y-1.5 border-b px-fds-xl py-fds-lg text-center sm:text-left', className), ...props }));
|
|
57
|
-
exports.DialogHeader = DialogHeader;
|
|
58
|
-
DialogHeader.displayName = 'DialogHeader';
|
|
59
|
-
const DialogBody = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: (0, utils_1.cn)('flex-1 overflow-y-auto p-6', className), ...props })));
|
|
60
|
-
exports.DialogBody = DialogBody;
|
|
61
|
-
DialogBody.displayName = 'DialogBody';
|
|
62
|
-
const DialogFooter = ({ className, ...props }) => ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('flex flex-col-reverse border-t p-6 sm:flex-row sm:justify-end sm:space-x-2', className), ...props }));
|
|
63
|
-
exports.DialogFooter = DialogFooter;
|
|
64
|
-
DialogFooter.displayName = 'DialogFooter';
|
|
65
|
-
const DialogTitle = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DialogPrimitive.Title, { ref: ref, className: (0, utils_1.cn)('text-lg font-semibold leading-none tracking-tight', className), ...props })));
|
|
66
|
-
exports.DialogTitle = DialogTitle;
|
|
67
|
-
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
68
|
-
const DialogDescription = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DialogPrimitive.Description, { ref: ref, className: (0, utils_1.cn)('text-sm text-muted-foreground', className), ...props })));
|
|
69
|
-
exports.DialogDescription = DialogDescription;
|
|
70
|
-
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
'use client';
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.DrawerDescription = exports.DrawerTitle = exports.DrawerFooter = exports.DrawerHeader = exports.DrawerContent = exports.DrawerClose = exports.DrawerTrigger = exports.DrawerOverlay = exports.DrawerPortal = exports.Drawer = void 0;
|
|
38
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
-
const React = __importStar(require("react"));
|
|
40
|
-
const vaul_1 = require("vaul");
|
|
41
|
-
const utils_1 = require("../lib/utils");
|
|
42
|
-
const Drawer = ({ shouldScaleBackground = true, ...props }) => ((0, jsx_runtime_1.jsx)(vaul_1.Drawer.Root, { shouldScaleBackground: shouldScaleBackground, ...props }));
|
|
43
|
-
exports.Drawer = Drawer;
|
|
44
|
-
Drawer.displayName = 'Drawer';
|
|
45
|
-
const DrawerTrigger = vaul_1.Drawer.Trigger;
|
|
46
|
-
exports.DrawerTrigger = DrawerTrigger;
|
|
47
|
-
const DrawerPortal = vaul_1.Drawer.Portal;
|
|
48
|
-
exports.DrawerPortal = DrawerPortal;
|
|
49
|
-
const DrawerClose = vaul_1.Drawer.Close;
|
|
50
|
-
exports.DrawerClose = DrawerClose;
|
|
51
|
-
const DrawerOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(vaul_1.Drawer.Overlay, { ref: ref, className: (0, utils_1.cn)('fixed inset-0 z-50 bg-black/80', className), ...props })));
|
|
52
|
-
exports.DrawerOverlay = DrawerOverlay;
|
|
53
|
-
DrawerOverlay.displayName = vaul_1.Drawer.Overlay.displayName;
|
|
54
|
-
const DrawerContent = React.forwardRef(({ className, children, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(DrawerPortal, { children: [(0, jsx_runtime_1.jsx)(DrawerOverlay, {}), (0, jsx_runtime_1.jsxs)(vaul_1.Drawer.Content, { ref: ref, className: (0, utils_1.cn)('fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background', className), ...props, children: [(0, jsx_runtime_1.jsx)("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }), children] })] })));
|
|
55
|
-
exports.DrawerContent = DrawerContent;
|
|
56
|
-
DrawerContent.displayName = 'DrawerContent';
|
|
57
|
-
const DrawerHeader = ({ className, ...props }) => ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('grid gap-1.5 p-4 text-center sm:text-left', className), ...props }));
|
|
58
|
-
exports.DrawerHeader = DrawerHeader;
|
|
59
|
-
DrawerHeader.displayName = 'DrawerHeader';
|
|
60
|
-
const DrawerFooter = ({ className, ...props }) => ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('mt-auto flex flex-col gap-2 p-4', className), ...props }));
|
|
61
|
-
exports.DrawerFooter = DrawerFooter;
|
|
62
|
-
DrawerFooter.displayName = 'DrawerFooter';
|
|
63
|
-
const DrawerTitle = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(vaul_1.Drawer.Title, { ref: ref, className: (0, utils_1.cn)('text-lg font-semibold leading-none tracking-tight', className), ...props })));
|
|
64
|
-
exports.DrawerTitle = DrawerTitle;
|
|
65
|
-
DrawerTitle.displayName = vaul_1.Drawer.Title.displayName;
|
|
66
|
-
const DrawerDescription = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(vaul_1.Drawer.Description, { ref: ref, className: (0, utils_1.cn)('text-sm text-muted-foreground', className), ...props })));
|
|
67
|
-
exports.DrawerDescription = DrawerDescription;
|
|
68
|
-
DrawerDescription.displayName = vaul_1.Drawer.Description.displayName;
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.DropdownMenuTrigger = exports.DropdownMenuSubTrigger = exports.DropdownMenuSubContent = exports.DropdownMenuSub = exports.DropdownMenuShortcut = exports.DropdownMenuSeparator = exports.DropdownMenuRadioItem = exports.DropdownMenuRadioGroup = exports.DropdownMenuPortal = exports.DropdownMenuLabel = exports.DropdownMenuItem = exports.DropdownMenuGroup = exports.DropdownMenuContent = exports.DropdownMenuCheckboxItem = exports.DropdownMenu = void 0;
|
|
37
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
-
const DropdownMenuPrimitive = __importStar(require("@radix-ui/react-dropdown-menu"));
|
|
39
|
-
const lucide_react_1 = require("lucide-react");
|
|
40
|
-
const React = __importStar(require("react"));
|
|
41
|
-
const utils_1 = require("../lib/utils");
|
|
42
|
-
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
43
|
-
exports.DropdownMenu = DropdownMenu;
|
|
44
|
-
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
45
|
-
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
46
|
-
const DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
47
|
-
exports.DropdownMenuGroup = DropdownMenuGroup;
|
|
48
|
-
const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
49
|
-
exports.DropdownMenuPortal = DropdownMenuPortal;
|
|
50
|
-
const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
51
|
-
exports.DropdownMenuSub = DropdownMenuSub;
|
|
52
|
-
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
53
|
-
exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
|
|
54
|
-
const DropdownMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.SubTrigger, { ref: ref, className: (0, utils_1.cn)('flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', inset && 'pl-8', className), ...props, children: [children, (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRight, { className: "ml-auto" })] })));
|
|
55
|
-
exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
|
|
56
|
-
DropdownMenuSubTrigger.displayName =
|
|
57
|
-
DropdownMenuPrimitive.SubTrigger.displayName;
|
|
58
|
-
const DropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.SubContent, { ref: ref, className: (0, utils_1.cn)('z-50 min-w-[8rem] origin-[--radix-dropdown-menu-content-transform-origin] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className), ...props })));
|
|
59
|
-
exports.DropdownMenuSubContent = DropdownMenuSubContent;
|
|
60
|
-
DropdownMenuSubContent.displayName =
|
|
61
|
-
DropdownMenuPrimitive.SubContent.displayName;
|
|
62
|
-
const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: (0, utils_1.cn)('z-[1010] max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] origin-[--radix-dropdown-menu-content-transform-origin] overflow-y-auto overflow-x-hidden rounded-md bg-popover py-1 text-popover-foreground shadow-fds-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className), ...props }) })));
|
|
63
|
-
exports.DropdownMenuContent = DropdownMenuContent;
|
|
64
|
-
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
65
|
-
const DropdownMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Item, { ref: ref, className: (0, utils_1.cn)('relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-fds-xs text-sm outline-none transition-colors hover:bg-fds-blue-10 focus:bg-fds-blue-10 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', inset && 'pl-8', className), ...props })));
|
|
66
|
-
exports.DropdownMenuItem = DropdownMenuItem;
|
|
67
|
-
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
68
|
-
const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.CheckboxItem, { ref: ref, className: (0, utils_1.cn)('relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), checked: checked, ...props, children: [(0, jsx_runtime_1.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { className: "h-4 w-4" }) }) }), children] })));
|
|
69
|
-
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
70
|
-
DropdownMenuCheckboxItem.displayName =
|
|
71
|
-
DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
72
|
-
const DropdownMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.RadioItem, { ref: ref, className: (0, utils_1.cn)('relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), ...props, children: [(0, jsx_runtime_1.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Circle, { className: "h-2 w-2 fill-current" }) }) }), children] })));
|
|
73
|
-
exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
|
|
74
|
-
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
75
|
-
const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Label, { ref: ref, className: (0, utils_1.cn)('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className), ...props })));
|
|
76
|
-
exports.DropdownMenuLabel = DropdownMenuLabel;
|
|
77
|
-
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
78
|
-
const DropdownMenuSeparator = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Separator, { ref: ref, className: (0, utils_1.cn)('-mx-1 my-1 h-px bg-muted', className), ...props })));
|
|
79
|
-
exports.DropdownMenuSeparator = DropdownMenuSeparator;
|
|
80
|
-
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
81
|
-
const DropdownMenuShortcut = ({ className, ...props }) => {
|
|
82
|
-
return ((0, jsx_runtime_1.jsx)("span", { className: (0, utils_1.cn)('ml-auto text-xs tracking-widest opacity-60', className), ...props }));
|
|
83
|
-
};
|
|
84
|
-
exports.DropdownMenuShortcut = DropdownMenuShortcut;
|
|
85
|
-
DropdownMenuShortcut.displayName = 'DropdownMenuShortcut';
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.Empty = void 0;
|
|
37
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
-
const React = __importStar(require("react"));
|
|
39
|
-
const utils_1 = require("../lib/utils");
|
|
40
|
-
const Empty = React.forwardRef(({ className, message = 'No data', ...props }, ref) => ((0, jsx_runtime_1.jsxs)("div", { ref: ref, className: (0, utils_1.cn)('flex flex-col items-center justify-center py-fds-xl', className), ...props, children: [(0, jsx_runtime_1.jsx)("svg", { width: "64", height: "41", viewBox: "0 0 64 41", xmlns: "http://www.w3.org/2000/svg", children: (0, jsx_runtime_1.jsxs)("g", { transform: "translate(0 1)", fill: "none", fillRule: "evenodd", children: [(0, jsx_runtime_1.jsx)("ellipse", { className: "fill-fds-gray-10 dark:fill-fds-gray-80", cx: "32", cy: "33", rx: "32", ry: "7" }), (0, jsx_runtime_1.jsxs)("g", { fillRule: "nonzero", className: "stroke-fds-gray-30 dark:stroke-fds-gray-60", children: [(0, jsx_runtime_1.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" }), (0, jsx_runtime_1.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" })] })] }) }), (0, jsx_runtime_1.jsx)("span", { className: "mt-fds-sm text-fds-sm text-fds-gray-50", children: message })] })));
|
|
41
|
-
exports.Empty = Empty;
|
|
42
|
-
Empty.displayName = 'Empty';
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.FilePreview = void 0;
|
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
const button_1 = require("./button");
|
|
7
|
-
const dialog_1 = require("./dialog");
|
|
8
|
-
const icons_1 = require("@freightos/icons");
|
|
9
|
-
const IMAGE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg', '.bmp'];
|
|
10
|
-
function isImageFile(fileName) {
|
|
11
|
-
const lowerName = fileName.toLowerCase();
|
|
12
|
-
return IMAGE_EXTENSIONS.some(ext => lowerName.endsWith(ext));
|
|
13
|
-
}
|
|
14
|
-
const FilePreview = ({ fileName, fileUrl, open, onOpenChange, }) => {
|
|
15
|
-
const isImage = isImageFile(fileName);
|
|
16
|
-
const handlePrint = () => {
|
|
17
|
-
if (isImage) {
|
|
18
|
-
// For images, create a printable HTML page
|
|
19
|
-
const printWindow = window.open('', '_blank');
|
|
20
|
-
if (printWindow) {
|
|
21
|
-
printWindow.document.write(`
|
|
22
|
-
<!DOCTYPE html>
|
|
23
|
-
<html>
|
|
24
|
-
<head>
|
|
25
|
-
<title>${fileName}</title>
|
|
26
|
-
<style>
|
|
27
|
-
body { margin: 0; display: flex; justify-content: center; align-items: center; min-height: 100vh; }
|
|
28
|
-
img { max-width: 100%; max-height: 100vh; object-fit: contain; }
|
|
29
|
-
@media print { body { margin: 0; } img { max-width: 100%; max-height: 100%; } }
|
|
30
|
-
</style>
|
|
31
|
-
</head>
|
|
32
|
-
<body>
|
|
33
|
-
<img src="${fileUrl}" alt="${fileName}" onload="window.print(); window.close();" />
|
|
34
|
-
</body>
|
|
35
|
-
</html>
|
|
36
|
-
`);
|
|
37
|
-
printWindow.document.close();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
// For PDFs and other documents
|
|
42
|
-
const printWindow = window.open(fileUrl, '_blank');
|
|
43
|
-
if (printWindow) {
|
|
44
|
-
printWindow.onload = () => {
|
|
45
|
-
printWindow.print();
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
const handleDownload = async () => {
|
|
51
|
-
try {
|
|
52
|
-
const response = await fetch(fileUrl);
|
|
53
|
-
const blob = await response.blob();
|
|
54
|
-
const url = window.URL.createObjectURL(blob);
|
|
55
|
-
const link = document.createElement('a');
|
|
56
|
-
link.href = url;
|
|
57
|
-
link.download = fileName;
|
|
58
|
-
document.body.appendChild(link);
|
|
59
|
-
link.click();
|
|
60
|
-
document.body.removeChild(link);
|
|
61
|
-
window.URL.revokeObjectURL(url);
|
|
62
|
-
onOpenChange(false);
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
console.error('Download failed:', error);
|
|
66
|
-
// Fallback: open in new tab
|
|
67
|
-
window.open(fileUrl, '_blank');
|
|
68
|
-
onOpenChange(false);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
return ((0, jsx_runtime_1.jsx)(dialog_1.Dialog, { open: open, onOpenChange: onOpenChange, children: (0, jsx_runtime_1.jsxs)(dialog_1.DialogContent, { className: "h-[90vh] max-w-4xl", children: [(0, jsx_runtime_1.jsx)(dialog_1.DialogHeader, { children: (0, jsx_runtime_1.jsx)(dialog_1.DialogTitle, { children: fileName }) }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-1 items-center justify-center overflow-auto p-fds-xl", children: isImage ? ((0, jsx_runtime_1.jsx)("img", { src: fileUrl, alt: fileName, className: "max-h-full max-w-full object-contain" })) : ((0, jsx_runtime_1.jsx)("iframe", { src: fileUrl, title: fileName, className: "h-full w-full border-0" })) }), (0, jsx_runtime_1.jsxs)(dialog_1.DialogFooter, { className: "flex justify-end gap-2 py-fds-lg", children: [(0, jsx_runtime_1.jsxs)(button_1.Button, { type: "secondary", size: "medium", onClick: handlePrint, children: [(0, jsx_runtime_1.jsx)(icons_1.IconPrint, {}), "Print"] }), (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "default", size: "medium", onClick: handleDownload, children: [(0, jsx_runtime_1.jsx)(icons_1.IconDownload, {}), "Download"] })] })] }) }));
|
|
72
|
-
};
|
|
73
|
-
exports.FilePreview = FilePreview;
|