@yuno-payments/dashboard-design-system 0.0.170 → 0.0.172
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/dist/components/atoms/access-denied-alert/access-denied-alert.d.ts +16 -0
- package/dist/components/atoms/accordion/accordion.d.ts +66 -0
- package/dist/components/atoms/alert/alert.d.ts +26 -1
- package/dist/components/atoms/alert/alert.js +9 -8
- package/dist/components/atoms/avatar/avatar-group.d.ts +28 -0
- package/dist/components/atoms/avatar/avatar.d.ts +25 -0
- package/dist/components/atoms/avatar/avatar.js +9 -9
- package/dist/components/atoms/badge/badge.d.ts +30 -2
- package/dist/components/atoms/badge/badge.js +27 -11
- package/dist/components/atoms/button/button.d.ts +44 -0
- package/dist/components/atoms/card/card.d.ts +137 -3
- package/dist/components/atoms/card/card.js +56 -28
- package/dist/components/atoms/checkbox/checkbox.d.ts +38 -2
- package/dist/components/atoms/checkbox/checkbox.js +61 -27
- package/dist/components/atoms/combobox/combobox.d.ts +18 -0
- package/dist/components/atoms/combobox/combobox.js +41 -41
- package/dist/components/atoms/combobox/types.d.ts +90 -1
- package/dist/components/atoms/currency-field/currency-field.d.ts +38 -0
- package/dist/components/atoms/currency-field/currency-field.js +22 -19
- package/dist/components/atoms/date-picker/date-picker.d.ts +15 -0
- package/dist/components/atoms/date-range-picker/date-range-picker.d.ts +15 -0
- package/dist/components/atoms/dots-menu/dots-menu.d.ts +16 -0
- package/dist/components/atoms/dots-menu/dots-menu.js +8 -8
- package/dist/components/atoms/dots-menu/dots-menu.types.d.ts +52 -0
- package/dist/components/atoms/dropdown-menu/dropdown-menu.d.ts +50 -0
- package/dist/components/atoms/field/field.d.ts +55 -0
- package/dist/components/atoms/field/field.js +53 -46
- package/dist/components/atoms/filter/filter-date-range.d.ts +12 -2
- package/dist/components/atoms/filter/filter-date-range.js +203 -168
- package/dist/components/atoms/filter/filter.d.ts +6 -0
- package/dist/components/atoms/filter/filter.js +91 -76
- package/dist/components/atoms/filter/index.d.ts +1 -1
- package/dist/components/atoms/filter-dropdown/filter-dropdown.d.ts +208 -2
- package/dist/components/atoms/filter-dropdown/filter-dropdown.js +214 -160
- package/dist/components/atoms/icon/aida-logo.d.ts +3 -0
- package/dist/components/atoms/icon/aida-logo.js +64 -0
- package/dist/components/atoms/icon/icon-list.d.ts +5 -0
- package/dist/components/atoms/icon/icon-list.js +394 -384
- package/dist/components/atoms/icon/icon.d.ts +29 -0
- package/dist/components/atoms/index.d.ts +3 -2
- package/dist/components/atoms/label/index.d.ts +1 -1
- package/dist/components/atoms/label/label.d.ts +11 -0
- package/dist/components/atoms/label/label.js +28 -0
- package/dist/components/atoms/link/link.d.ts +20 -0
- package/dist/components/atoms/loading/index.d.ts +1 -0
- package/dist/components/atoms/loading/loading.d.ts +39 -0
- package/dist/components/atoms/loading/loading.js +37 -0
- package/dist/components/atoms/multi-select/multi-select.d.ts +1 -1
- package/dist/components/atoms/multi-select/multi-select.js +6 -6
- package/dist/components/atoms/multi-values-field/multi-values-field.d.ts +16 -0
- package/dist/components/atoms/multi-values-field/multi-values-field.js +109 -87
- package/dist/components/atoms/multi-values-field/multi-values-field.types.d.ts +81 -0
- package/dist/components/atoms/otp-field/otp-field.d.ts +32 -0
- package/dist/components/atoms/password-field/password-field.d.ts +23 -0
- package/dist/components/atoms/password-field/password-field.js +1 -1
- package/dist/components/atoms/progress/progress.d.ts +15 -0
- package/dist/components/atoms/protected-field/protected-field.d.ts +10 -0
- package/dist/components/atoms/protected-field/protected-field.types.d.ts +14 -0
- package/dist/components/atoms/radio-group/radio-group-option.js +11 -11
- package/dist/components/atoms/radio-group/radio-group.d.ts +50 -1
- package/dist/components/atoms/radio-group/radio-group.js +13 -12
- package/dist/components/atoms/search-field/search-field.d.ts +14 -0
- package/dist/components/atoms/search-field/search-field.js +17 -17
- package/dist/components/atoms/search-field/search-field.types.d.ts +57 -0
- package/dist/components/atoms/select/index.d.ts +2 -0
- package/dist/components/atoms/select/search-select.d.ts +22 -0
- package/dist/components/atoms/select/search-select.js +201 -0
- package/dist/components/atoms/select/select.d.ts +83 -1
- package/dist/components/atoms/select/select.js +21 -21
- package/dist/components/atoms/separator/separator.d.ts +17 -0
- package/dist/components/atoms/skeleton/index.d.ts +9 -0
- package/dist/components/atoms/switch/switch.d.ts +56 -2
- package/dist/components/atoms/switch/switch.js +64 -32
- package/dist/components/atoms/tabs/index.d.ts +16 -0
- package/dist/components/atoms/textarea/textarea.d.ts +32 -0
- package/dist/components/atoms/textarea/textarea.js +1 -1
- package/dist/components/atoms/time-picker/time-picker.d.ts +73 -2
- package/dist/components/atoms/time-picker/time-picker.js +218 -3
- package/dist/components/atoms/toaster/index.d.ts +15 -0
- package/dist/components/atoms/toggle-group/toggle-group.d.ts +26 -1
- package/dist/components/atoms/toggle-group/toggle-group.js +15 -14
- package/dist/components/atoms/tooltip/tooltip.d.ts +53 -2
- package/dist/components/atoms/typography/typography.d.ts +18 -0
- package/dist/components/molecules/breadcrumb/breadcrumb.d.ts +50 -0
- package/dist/components/molecules/breadcrumb/breadcrumb.js +17 -17
- package/dist/components/molecules/dialog-content/dialog-content.d.ts +16 -0
- package/dist/components/molecules/dialog-footer/dialog-footer.d.ts +20 -0
- package/dist/components/molecules/dialog-header/dialog-header.d.ts +31 -0
- package/dist/components/molecules/empty/empty-icon.js +6 -6
- package/dist/components/molecules/empty/empty.d.ts +16 -1
- package/dist/components/molecules/empty/empty.js +37 -34
- package/dist/components/molecules/highlight-banner/highlight-banner.d.ts +17 -0
- package/dist/components/molecules/pagination/pagination.d.ts +49 -0
- package/dist/components/organisms/data-table/components/cells/data-table-list-cell.d.ts +41 -0
- package/dist/components/organisms/data-table/components/column-header/data-table-column-header-content.js +1 -1
- package/dist/components/organisms/data-table/components/column-header/data-table-column-header-menu.js +18 -18
- package/dist/components/organisms/data-table/components/column-header/data-table-column-header.d.ts +18 -0
- package/dist/components/organisms/data-table/components/column-header/data-table-column-header.js +10 -10
- package/dist/components/organisms/data-table/components/data-table-body.d.ts +18 -0
- package/dist/components/organisms/data-table/components/data-table-header.d.ts +12 -0
- package/dist/components/organisms/data-table/components/data-table-header.js +7 -7
- package/dist/components/organisms/data-table/components/states/data-table-loading.d.ts +24 -0
- package/dist/components/organisms/data-table/components/states/data-table-loading.js +6 -6
- package/dist/components/organisms/data-table/data-table.d.ts +133 -4
- package/dist/components/organisms/data-table/data-table.js +132 -100
- package/dist/components/organisms/data-table/data-table.types.d.ts +35 -26
- package/dist/components/organisms/data-table/hooks/use-data-table-columns.js +57 -41
- package/dist/components/organisms/data-table/hooks/use-data-table-state.d.ts +8 -2
- package/dist/components/organisms/data-table/hooks/use-data-table-state.js +82 -47
- package/dist/components/organisms/data-table/utils/data-table-constants.d.ts +8 -2
- package/dist/components/organisms/data-table/utils/data-table-constants.js +16 -10
- package/dist/components/organisms/data-table/utils/data-table-styles.d.ts +1652 -0
- package/dist/components/organisms/data-table/utils/data-table-styles.js +29 -14
- package/dist/components/organisms/dialog/dialog.d.ts +67 -1
- package/dist/components/organisms/dialog/dialog.js +78 -61
- package/dist/components/organisms/index.d.ts +2 -0
- package/dist/components/organisms/sheet/sheet.d.ts +69 -0
- package/dist/components/organisms/sheet/sheet.js +34 -33
- package/dist/components/organisms/tutorial/index.d.ts +2 -0
- package/dist/components/organisms/tutorial/tutorial.d.ts +16 -0
- package/dist/components/organisms/tutorial/tutorial.js +114 -0
- package/dist/components/organisms/tutorial/tutorial.types.d.ts +15 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/use-body-scroll-lock.d.ts +13 -0
- package/dist/hooks/use-escape-key.d.ts +14 -0
- package/dist/hooks/use-media-query.d.ts +20 -0
- package/dist/hooks/use-media-query.js +21 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +173 -162
- package/dist/lib/notification-alert.d.ts +42 -0
- package/dist/lib/notification-alert.js +75 -0
- package/dist/node_modules/@phosphor-icons/react/dist/csr/File.es.js +8 -0
- package/dist/node_modules/@phosphor-icons/react/dist/csr/Microphone.es.js +8 -0
- package/dist/node_modules/@phosphor-icons/react/dist/csr/Stop.es.js +8 -0
- package/dist/node_modules/@phosphor-icons/react/dist/csr/Table.es.js +8 -0
- package/dist/node_modules/@phosphor-icons/react/dist/defs/File.es.js +30 -0
- package/dist/node_modules/@phosphor-icons/react/dist/defs/Microphone.es.js +36 -0
- package/dist/node_modules/@phosphor-icons/react/dist/defs/Stop.es.js +36 -0
- package/dist/node_modules/@phosphor-icons/react/dist/defs/Table.es.js +30 -0
- package/dist/vendor/shadcn/avatar.js +19 -19
- package/dist/vendor/shadcn/badge.js +15 -15
- package/dist/vendor/shadcn/card.js +7 -7
- package/dist/vendor/shadcn/date-picker.d.ts +2 -2
- package/dist/vendor/shadcn/date-picker.js +1 -1
- package/dist/vendor/shadcn/date-range-picker.d.ts +2 -2
- package/dist/vendor/shadcn/date-range-picker.js +1 -1
- package/dist/vendor/shadcn/dialog.js +2 -2
- package/dist/vendor/shadcn/input-group.js +17 -17
- package/dist/vendor/shadcn/input.js +7 -7
- package/dist/vendor/shadcn/popover.js +1 -1
- package/dist/vendor/shadcn/select.js +2 -2
- package/dist/vendor/shadcn/sonner.d.ts +26 -1
- package/dist/vendor/shadcn/sonner.js +12 -8
- package/dist/vendor/shadcn/table.js +30 -30
- package/dist/vendor/shadcn/textarea.js +9 -9
- package/dist/vendor/shadcn/time-picker.d.ts +1 -2
- package/dist/vendor/shadcn/time-picker.js +17 -23
- package/dist/vendor/shadcn/toggle.js +13 -13
- package/dist/vendor/shadcn/tooltip.js +25 -15
- package/package.json +1 -1
|
@@ -3,12 +3,44 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
3
3
|
declare const textareaWrapperVariants: (props?: ({
|
|
4
4
|
layout?: "horizontal" | "vertical" | null | undefined;
|
|
5
5
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Props for the Textarea component
|
|
8
|
+
*/
|
|
6
9
|
export interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, "className">, VariantProps<typeof textareaWrapperVariants> {
|
|
10
|
+
/**
|
|
11
|
+
* Label text displayed above or next to the textarea
|
|
12
|
+
*/
|
|
7
13
|
label?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Helper text displayed below the textarea
|
|
16
|
+
*/
|
|
8
17
|
description?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Error message displayed below the textarea (overrides description)
|
|
20
|
+
*/
|
|
9
21
|
error?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS classes for the container
|
|
24
|
+
*/
|
|
10
25
|
className?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Additional props to pass to the textarea element
|
|
28
|
+
*/
|
|
11
29
|
textareaProps?: TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
12
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Multiline text input component with label, description, and error handling.
|
|
33
|
+
* Supports vertical and horizontal layouts.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* <Textarea
|
|
38
|
+
* label="Comments"
|
|
39
|
+
* placeholder="Enter your comments..."
|
|
40
|
+
* description="Max 500 characters"
|
|
41
|
+
* rows={4}
|
|
42
|
+
* />
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
13
45
|
declare const Textarea: import('react').ForwardRefExoticComponent<TextareaProps & import('react').RefAttributes<HTMLTextAreaElement>>;
|
|
14
46
|
export { Textarea };
|
|
@@ -3,7 +3,7 @@ import { forwardRef as p, useId as h } from "react";
|
|
|
3
3
|
import { cva as d } from "../../../node_modules/class-variance-authority/dist/index.js";
|
|
4
4
|
import { Textarea as j } from "../../../vendor/shadcn/textarea.js";
|
|
5
5
|
import { cn as s } from "../../../lib/utils.js";
|
|
6
|
-
import { Label as N } from "
|
|
6
|
+
import { Label as N } from "../label/label.js";
|
|
7
7
|
const b = d("flex gap-2 w-full", {
|
|
8
8
|
variants: {
|
|
9
9
|
layout: {
|
|
@@ -1,4 +1,75 @@
|
|
|
1
1
|
import { TimePickerProps as TimePickerPrimitiveProps } from '../../../vendor/shadcn/time-picker';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Props for the TimePicker component
|
|
5
|
+
*/
|
|
6
|
+
export interface TimePickerProps extends Omit<TimePickerPrimitiveProps, "onChange"> {
|
|
7
|
+
/**
|
|
8
|
+
* Label text displayed above the input
|
|
9
|
+
*/
|
|
10
|
+
label?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Error message displayed below the input
|
|
13
|
+
*/
|
|
14
|
+
error?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Helper text displayed below the input
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Layout orientation
|
|
21
|
+
* @default "vertical"
|
|
22
|
+
*/
|
|
23
|
+
orientation?: "vertical" | "horizontal" | "responsive";
|
|
24
|
+
/**
|
|
25
|
+
* Callback fired when the time value changes
|
|
26
|
+
*/
|
|
27
|
+
onChange?: (value: string) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Picker mode
|
|
30
|
+
* - "native": HTML5 native input (default)
|
|
31
|
+
* - "dropdown": Custom dropdown with columns
|
|
32
|
+
* @default "native"
|
|
33
|
+
*/
|
|
34
|
+
mode?: "native" | "dropdown";
|
|
35
|
+
/**
|
|
36
|
+
* Minute intervals (only for mode="dropdown")
|
|
37
|
+
* 0 = all minutes, 15 = every 15 minutes, etc.
|
|
38
|
+
* @default 0
|
|
39
|
+
*/
|
|
40
|
+
divisorMinutes?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Width of the picker (only for mode="dropdown")
|
|
43
|
+
* @default 140
|
|
44
|
+
*/
|
|
45
|
+
width?: number | string;
|
|
46
|
+
/**
|
|
47
|
+
* Use 24-hour format (military time) instead of 12-hour with AM/PM
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
use24Hour?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Time input picker with label, description, and error handling.
|
|
54
|
+
* Supports two modes: native HTML5 input or custom dropdown.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```tsx
|
|
58
|
+
* // Native mode (default)
|
|
59
|
+
* <TimePicker
|
|
60
|
+
* label="Select time"
|
|
61
|
+
* value={time}
|
|
62
|
+
* onChange={(value) => setTime(value)}
|
|
63
|
+
* />
|
|
64
|
+
*
|
|
65
|
+
* // Dropdown mode with 15-minute intervals
|
|
66
|
+
* <TimePicker
|
|
67
|
+
* mode="dropdown"
|
|
68
|
+
* divisorMinutes={15}
|
|
69
|
+
* value={time}
|
|
70
|
+
* onChange={(value) => setTime(value)}
|
|
71
|
+
* />
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
declare const TimePicker: React.ForwardRefExoticComponent<TimePickerProps & React.RefAttributes<HTMLInputElement>>;
|
|
4
75
|
export { TimePicker };
|
|
@@ -1,5 +1,220 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { j as r } from "../../../_virtual/jsx-runtime.js";
|
|
2
|
+
import * as G from "react";
|
|
3
|
+
import { useId as J, useState as $, useRef as C, useEffect as E } from "react";
|
|
4
|
+
import { cn as c } from "../../../lib/utils.js";
|
|
5
|
+
import { Icon as K } from "../icon/icon.js";
|
|
6
|
+
import { TimePicker as Q } from "../../../vendor/shadcn/time-picker.js";
|
|
7
|
+
import { Field as R, FieldLabel as T, FieldDescription as O, FieldError as _ } from "../../../vendor/shadcn/field.js";
|
|
8
|
+
const X = Array.from({ length: 12 }, (e, n) => n + 1), Y = Array.from({ length: 24 }, (e, n) => n), Z = ["AM", "PM"], H = (e) => {
|
|
9
|
+
if (e === 0)
|
|
10
|
+
return Array.from({ length: 60 }, (o, i) => i);
|
|
11
|
+
const n = 60 / e;
|
|
12
|
+
return Array.from({ length: n }, (o, i) => i * e);
|
|
13
|
+
}, d = (e) => e.toString().padStart(2, "0"), ee = (e) => {
|
|
14
|
+
const n = e >= 12 ? "PM" : "AM";
|
|
15
|
+
return { hour: e === 0 ? 12 : e > 12 ? e - 12 : e, meridiem: n };
|
|
16
|
+
}, te = (e, n) => e === 12 ? n === "AM" ? 0 : 12 : n === "PM" ? e + 12 : e, re = G.forwardRef(
|
|
17
|
+
({
|
|
18
|
+
className: e,
|
|
19
|
+
label: n,
|
|
20
|
+
error: o,
|
|
21
|
+
description: i,
|
|
22
|
+
orientation: x = "vertical",
|
|
23
|
+
id: m,
|
|
24
|
+
onChange: f,
|
|
25
|
+
mode: y = "native",
|
|
26
|
+
divisorMinutes: j = 0,
|
|
27
|
+
width: s = 140,
|
|
28
|
+
value: l,
|
|
29
|
+
disabled: p,
|
|
30
|
+
use24Hour: w = !1,
|
|
31
|
+
...h
|
|
32
|
+
}, P) => {
|
|
33
|
+
const S = J(), u = m || S, v = !!o;
|
|
34
|
+
if (y === "native") {
|
|
35
|
+
const k = /* @__PURE__ */ r.jsx(
|
|
36
|
+
Q,
|
|
37
|
+
{
|
|
38
|
+
ref: P,
|
|
39
|
+
id: u,
|
|
40
|
+
value: l,
|
|
41
|
+
disabled: p,
|
|
42
|
+
className: c(
|
|
43
|
+
v && "border-destructive focus-visible:border-destructive",
|
|
44
|
+
!(n || o || i) && e
|
|
45
|
+
),
|
|
46
|
+
"aria-invalid": v ? !0 : void 0,
|
|
47
|
+
"aria-describedby": i || o ? `${u}-description` : void 0,
|
|
48
|
+
...h,
|
|
49
|
+
onChange: (a) => {
|
|
50
|
+
f?.(a.target.value);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
return n || o || i ? /* @__PURE__ */ r.jsxs(
|
|
55
|
+
R,
|
|
56
|
+
{
|
|
57
|
+
orientation: x,
|
|
58
|
+
"data-invalid": v,
|
|
59
|
+
className: c("w-full", e),
|
|
60
|
+
children: [
|
|
61
|
+
n && /* @__PURE__ */ r.jsx(T, { htmlFor: u, children: n }),
|
|
62
|
+
/* @__PURE__ */ r.jsxs("div", { className: "flex flex-col gap-2 flex-1", children: [
|
|
63
|
+
k,
|
|
64
|
+
i && !o && /* @__PURE__ */ r.jsx(O, { id: `${u}-description`, children: i }),
|
|
65
|
+
o && /* @__PURE__ */ r.jsx(_, { id: `${u}-description`, children: o })
|
|
66
|
+
] })
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
) : k;
|
|
70
|
+
}
|
|
71
|
+
return /* @__PURE__ */ r.jsx(
|
|
72
|
+
ne,
|
|
73
|
+
{
|
|
74
|
+
value: l || (w ? "00:00" : "12:00"),
|
|
75
|
+
onChange: f,
|
|
76
|
+
divisorMinutes: j,
|
|
77
|
+
width: s,
|
|
78
|
+
label: n,
|
|
79
|
+
error: o,
|
|
80
|
+
description: i,
|
|
81
|
+
disabled: p,
|
|
82
|
+
className: e,
|
|
83
|
+
use24Hour: w
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
re.displayName = "TimePicker";
|
|
89
|
+
const ne = ({
|
|
90
|
+
value: e,
|
|
91
|
+
onChange: n,
|
|
92
|
+
divisorMinutes: o,
|
|
93
|
+
width: i,
|
|
94
|
+
label: x,
|
|
95
|
+
error: m,
|
|
96
|
+
description: f,
|
|
97
|
+
disabled: y,
|
|
98
|
+
className: j,
|
|
99
|
+
use24Hour: s = !1
|
|
100
|
+
}) => {
|
|
101
|
+
const [l, p] = $(!1), w = C(null), h = C(null), P = (t) => {
|
|
102
|
+
const [g, B] = t.split(":"), N = parseInt(g, 10) || 0, A = parseInt(B, 10) || 0;
|
|
103
|
+
if (s)
|
|
104
|
+
return { hour24: N, minute: A, hour: N, meridiem: "AM" };
|
|
105
|
+
const { hour: W, meridiem: q } = ee(N);
|
|
106
|
+
return { hour24: N, minute: A, hour: W, meridiem: q };
|
|
107
|
+
}, { hour: S, hour24: u, minute: v, meridiem: k } = P(e), [a, D] = $(s ? u : S), [b, F] = $(v), [M, L] = $(k), U = H(o);
|
|
108
|
+
E(() => {
|
|
109
|
+
let t;
|
|
110
|
+
s ? t = a : t = te(a, M);
|
|
111
|
+
const g = `${d(t)}:${d(b)}`;
|
|
112
|
+
n?.(g);
|
|
113
|
+
}, [a, b, M, n, s]), E(() => {
|
|
114
|
+
const t = (g) => {
|
|
115
|
+
h.current && !h.current.contains(g.target) && p(!1);
|
|
116
|
+
};
|
|
117
|
+
if (l)
|
|
118
|
+
return document.addEventListener("mousedown", t), () => document.removeEventListener("mousedown", t);
|
|
119
|
+
}, [l]);
|
|
120
|
+
const V = s ? `${d(a)}:${d(b)}` : `${d(a)}:${d(b)} ${M}`, z = s ? Y : X, I = /* @__PURE__ */ r.jsxs(
|
|
121
|
+
"div",
|
|
122
|
+
{
|
|
123
|
+
ref: h,
|
|
124
|
+
className: c("relative inline-block", j),
|
|
125
|
+
style: { width: typeof i == "number" ? `${i}px` : i },
|
|
126
|
+
children: [
|
|
127
|
+
/* @__PURE__ */ r.jsxs(
|
|
128
|
+
"button",
|
|
129
|
+
{
|
|
130
|
+
type: "button",
|
|
131
|
+
disabled: y,
|
|
132
|
+
onClick: () => !y && p(!l),
|
|
133
|
+
className: c(
|
|
134
|
+
"flex items-center justify-between w-full h-9 px-3 py-2",
|
|
135
|
+
"text-sm rounded-md border border-input bg-background",
|
|
136
|
+
"hover:bg-accent hover:text-accent-foreground",
|
|
137
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
138
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
139
|
+
m && "border-destructive"
|
|
140
|
+
),
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ r.jsx("span", { children: V }),
|
|
143
|
+
/* @__PURE__ */ r.jsx(
|
|
144
|
+
K,
|
|
145
|
+
{
|
|
146
|
+
name: l ? "CaretUp" : "CaretDown",
|
|
147
|
+
size: "sm",
|
|
148
|
+
className: "ml-2"
|
|
149
|
+
}
|
|
150
|
+
)
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
l && /* @__PURE__ */ r.jsxs(
|
|
155
|
+
"div",
|
|
156
|
+
{
|
|
157
|
+
ref: w,
|
|
158
|
+
className: c(
|
|
159
|
+
"absolute z-50 mt-1 bg-popover border border-border rounded-md shadow-lg",
|
|
160
|
+
"flex divide-x divide-border"
|
|
161
|
+
),
|
|
162
|
+
style: { width: "fit-content", minWidth: s ? "140px" : "200px" },
|
|
163
|
+
children: [
|
|
164
|
+
/* @__PURE__ */ r.jsx("div", { className: "flex flex-col overflow-y-auto max-h-[200px] min-w-[60px]", children: z.map((t) => /* @__PURE__ */ r.jsx(
|
|
165
|
+
"button",
|
|
166
|
+
{
|
|
167
|
+
type: "button",
|
|
168
|
+
onClick: () => D(t),
|
|
169
|
+
className: c(
|
|
170
|
+
"px-3 py-2 text-sm text-left hover:bg-accent",
|
|
171
|
+
a === t && "bg-primary text-primary-foreground hover:bg-primary"
|
|
172
|
+
),
|
|
173
|
+
children: d(t)
|
|
174
|
+
},
|
|
175
|
+
t
|
|
176
|
+
)) }),
|
|
177
|
+
/* @__PURE__ */ r.jsx("div", { className: "flex flex-col overflow-y-auto max-h-[200px] min-w-[60px]", children: U.map((t) => /* @__PURE__ */ r.jsx(
|
|
178
|
+
"button",
|
|
179
|
+
{
|
|
180
|
+
type: "button",
|
|
181
|
+
onClick: () => F(t),
|
|
182
|
+
className: c(
|
|
183
|
+
"px-3 py-2 text-sm text-left hover:bg-accent",
|
|
184
|
+
b === t && "bg-primary text-primary-foreground hover:bg-primary"
|
|
185
|
+
),
|
|
186
|
+
children: d(t)
|
|
187
|
+
},
|
|
188
|
+
t
|
|
189
|
+
)) }),
|
|
190
|
+
!s && /* @__PURE__ */ r.jsx("div", { className: "flex flex-col min-w-[60px]", children: Z.map((t) => /* @__PURE__ */ r.jsx(
|
|
191
|
+
"button",
|
|
192
|
+
{
|
|
193
|
+
type: "button",
|
|
194
|
+
onClick: () => L(t),
|
|
195
|
+
className: c(
|
|
196
|
+
"px-3 py-2 text-sm text-left hover:bg-accent",
|
|
197
|
+
M === t && "bg-primary text-primary-foreground hover:bg-primary"
|
|
198
|
+
),
|
|
199
|
+
children: t
|
|
200
|
+
},
|
|
201
|
+
t
|
|
202
|
+
)) })
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
)
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
return x || m || f ? /* @__PURE__ */ r.jsxs(R, { orientation: "vertical", className: c("w-full", j), children: [
|
|
210
|
+
x && /* @__PURE__ */ r.jsx(T, { children: x }),
|
|
211
|
+
/* @__PURE__ */ r.jsxs("div", { className: "flex flex-col gap-2 flex-1", children: [
|
|
212
|
+
I,
|
|
213
|
+
f && !m && /* @__PURE__ */ r.jsx(O, { children: f }),
|
|
214
|
+
m && /* @__PURE__ */ r.jsx(_, { children: m })
|
|
215
|
+
] })
|
|
216
|
+
] }) : I;
|
|
217
|
+
};
|
|
3
218
|
export {
|
|
4
|
-
|
|
219
|
+
re as TimePicker
|
|
5
220
|
};
|
|
@@ -1 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Toast notification container component (based on Sonner).
|
|
3
|
+
* Place once at root level to enable toast notifications globally.
|
|
4
|
+
* Use with toast() function from sonner.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* // In root layout:
|
|
9
|
+
* <Toaster />
|
|
10
|
+
*
|
|
11
|
+
* // Anywhere in app:
|
|
12
|
+
* import { toast } from 'sonner';
|
|
13
|
+
* toast.success('Operation successful!');
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
1
16
|
export { Toaster } from '../../../vendor/shadcn/sonner';
|
|
@@ -2,10 +2,35 @@ import { ToggleGroup as ShadcnToggleGroup, ToggleGroupItem as ShadcnToggleGroupI
|
|
|
2
2
|
import { VariantProps } from 'class-variance-authority';
|
|
3
3
|
import { toggleVariants } from '../../../vendor/shadcn/toggle';
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Props for the ToggleGroup component
|
|
7
|
+
*/
|
|
8
|
+
export interface ToggleGroupProps extends Omit<React.ComponentPropsWithoutRef<typeof ShadcnToggleGroup>, "onValueChange">, VariantProps<typeof toggleVariants> {
|
|
9
|
+
/**
|
|
10
|
+
* Callback fired when the selected value changes
|
|
11
|
+
*/
|
|
12
|
+
onChange?: (value: string) => void;
|
|
6
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Props for the ToggleGroupItem component
|
|
16
|
+
*/
|
|
7
17
|
export interface ToggleGroupItemProps extends React.ComponentPropsWithoutRef<typeof ShadcnToggleGroupItem>, VariantProps<typeof toggleVariants> {
|
|
8
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Group of toggle buttons for single or multiple selection.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <ToggleGroup type="single" value={selected} onChange={setSelected}>
|
|
25
|
+
* <ToggleGroupItem value="left">Left</ToggleGroupItem>
|
|
26
|
+
* <ToggleGroupItem value="center">Center</ToggleGroupItem>
|
|
27
|
+
* <ToggleGroupItem value="right">Right</ToggleGroupItem>
|
|
28
|
+
* </ToggleGroup>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
9
31
|
declare const ToggleGroup: React.ForwardRefExoticComponent<ToggleGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
/**
|
|
33
|
+
* Individual toggle button within a ToggleGroup
|
|
34
|
+
*/
|
|
10
35
|
declare const ToggleGroupItem: React.ForwardRefExoticComponent<ToggleGroupItemProps & React.RefAttributes<HTMLButtonElement>>;
|
|
11
36
|
export { ToggleGroup, ToggleGroupItem };
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import * as
|
|
3
|
-
import { ToggleGroup as
|
|
1
|
+
import { j as p } from "../../../_virtual/jsx-runtime.js";
|
|
2
|
+
import * as s from "react";
|
|
3
|
+
import { ToggleGroup as u, ToggleGroupItem as f } from "../../../vendor/shadcn/toggle-group.js";
|
|
4
4
|
import { cn as t } from "../../../lib/utils.js";
|
|
5
|
-
const
|
|
6
|
-
|
|
5
|
+
const n = s.forwardRef(({ className: o, variant: r, size: e, children: a, onChange: g, ...m }, l) => /* @__PURE__ */ p.jsx(
|
|
6
|
+
u,
|
|
7
7
|
{
|
|
8
|
-
ref:
|
|
8
|
+
ref: l,
|
|
9
9
|
className: t(o),
|
|
10
10
|
variant: r,
|
|
11
11
|
size: e,
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
onValueChange: g,
|
|
13
|
+
...m,
|
|
14
|
+
children: a
|
|
14
15
|
}
|
|
15
16
|
));
|
|
16
|
-
|
|
17
|
-
const G =
|
|
18
|
-
|
|
17
|
+
n.displayName = "ToggleGroup";
|
|
18
|
+
const G = s.forwardRef(({ className: o, variant: r, size: e, children: a, ...g }, m) => /* @__PURE__ */ p.jsx(
|
|
19
|
+
f,
|
|
19
20
|
{
|
|
20
|
-
ref:
|
|
21
|
+
ref: m,
|
|
21
22
|
className: t(o),
|
|
22
23
|
variant: r,
|
|
23
24
|
size: e,
|
|
24
25
|
...g,
|
|
25
|
-
children:
|
|
26
|
+
children: a
|
|
26
27
|
}
|
|
27
28
|
));
|
|
28
29
|
G.displayName = "ToggleGroupItem";
|
|
29
30
|
export {
|
|
30
|
-
|
|
31
|
+
n as ToggleGroup,
|
|
31
32
|
G as ToggleGroupItem
|
|
32
33
|
};
|
|
@@ -1,15 +1,66 @@
|
|
|
1
|
-
import { ComponentProps } from 'react';
|
|
1
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
2
2
|
import { Tooltip as ShadcnTooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../vendor/shadcn/tooltip';
|
|
3
3
|
type ShadcnTooltipRootProps = ComponentProps<typeof ShadcnTooltip>;
|
|
4
4
|
type TooltipContentProps = ComponentProps<typeof TooltipContent>;
|
|
5
5
|
type TooltipProviderProps = ComponentProps<typeof TooltipProvider>;
|
|
6
6
|
type TooltipTriggerProps = ComponentProps<typeof TooltipTrigger>;
|
|
7
|
+
/**
|
|
8
|
+
* Props for the Tooltip component
|
|
9
|
+
*/
|
|
7
10
|
interface TooltipProps extends ShadcnTooltipRootProps {
|
|
8
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Content to display in the tooltip
|
|
13
|
+
* Can be a string, JSX element, or any React node
|
|
14
|
+
*/
|
|
15
|
+
content: ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Additional props for the tooltip content
|
|
18
|
+
*/
|
|
9
19
|
contentProps?: TooltipContentProps;
|
|
20
|
+
/**
|
|
21
|
+
* Additional props for the tooltip provider
|
|
22
|
+
*/
|
|
10
23
|
providerProps?: TooltipProviderProps;
|
|
24
|
+
/**
|
|
25
|
+
* Additional props for the tooltip trigger
|
|
26
|
+
*/
|
|
11
27
|
triggerProps?: TooltipTriggerProps;
|
|
28
|
+
/**
|
|
29
|
+
* Whether to show the tooltip
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
12
32
|
show?: boolean;
|
|
13
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Tooltip component for displaying helpful content on hover or focus.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Simple text tooltip
|
|
40
|
+
* <Tooltip content="Click to edit">
|
|
41
|
+
* <Button>Edit</Button>
|
|
42
|
+
* </Tooltip>
|
|
43
|
+
*
|
|
44
|
+
* // Conditional tooltip
|
|
45
|
+
* <Tooltip content="Info" show={showTooltip}>
|
|
46
|
+
* <Icon name="Info" />
|
|
47
|
+
* </Tooltip>
|
|
48
|
+
*
|
|
49
|
+
* // ReactNode content with formatting
|
|
50
|
+
* <Tooltip content={<div><strong>Bold</strong> and <em>italic</em> text</div>}>
|
|
51
|
+
* <Button>Rich Content</Button>
|
|
52
|
+
* </Tooltip>
|
|
53
|
+
*
|
|
54
|
+
* // Complex JSX content
|
|
55
|
+
* <Tooltip content={
|
|
56
|
+
* <div className="space-y-1">
|
|
57
|
+
* <Typography variant="sm" weight="semibold">Title</Typography>
|
|
58
|
+
* <Typography variant="sm">Description here</Typography>
|
|
59
|
+
* </div>
|
|
60
|
+
* }>
|
|
61
|
+
* <Icon name="Info" />
|
|
62
|
+
* </Tooltip>
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
14
65
|
declare const Tooltip: import('react').ForwardRefExoticComponent<TooltipProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
15
66
|
export { Tooltip, TooltipProvider, type TooltipProps, type TooltipProviderProps, };
|
|
@@ -4,8 +4,26 @@ declare const typographyVariants: (props?: ({
|
|
|
4
4
|
variant?: "blockquote" | "h1" | "h2" | "h3" | "h4" | "p" | "list" | "muted" | "xs" | "sm" | "lg" | "xl" | "lead" | null | undefined;
|
|
5
5
|
weight?: "bold" | "regular" | "semibold" | null | undefined;
|
|
6
6
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Props for the Typography component
|
|
9
|
+
*/
|
|
7
10
|
export interface TypographyProps extends HTMLAttributes<HTMLElement>, VariantProps<typeof typographyVariants> {
|
|
11
|
+
/**
|
|
12
|
+
* HTML element to render (overrides the default element for the variant)
|
|
13
|
+
* @example "div", "span", "h1", "p"
|
|
14
|
+
*/
|
|
8
15
|
as?: keyof JSX.IntrinsicElements;
|
|
9
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Flexible typography component with predefined text styles and semantic HTML elements.
|
|
19
|
+
* Automatically renders the appropriate HTML element based on the variant.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <Typography variant="h1">Page Title</Typography>
|
|
24
|
+
* <Typography variant="muted">Helper text</Typography>
|
|
25
|
+
* <Typography as="span" variant="lg">Custom span with lg style</Typography>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
10
28
|
declare const Typography: import('react').ForwardRefExoticComponent<TypographyProps & import('react').RefAttributes<HTMLElement>>;
|
|
11
29
|
export { Typography };
|
|
@@ -1,17 +1,67 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a single breadcrumb item
|
|
4
|
+
*/
|
|
2
5
|
interface BreadcrumbItemData {
|
|
6
|
+
/**
|
|
7
|
+
* Display text for the breadcrumb item
|
|
8
|
+
*/
|
|
3
9
|
label: string;
|
|
10
|
+
/**
|
|
11
|
+
* URL to navigate to when the breadcrumb is clicked
|
|
12
|
+
*/
|
|
4
13
|
href?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Optional dropdown menu items for this breadcrumb
|
|
16
|
+
*/
|
|
5
17
|
dropdown?: Array<{
|
|
18
|
+
/**
|
|
19
|
+
* Display text for dropdown item
|
|
20
|
+
*/
|
|
6
21
|
label: string;
|
|
22
|
+
/**
|
|
23
|
+
* URL for dropdown item
|
|
24
|
+
*/
|
|
7
25
|
href: string;
|
|
8
26
|
}>;
|
|
9
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Props for the Breadcrumb component
|
|
30
|
+
*/
|
|
10
31
|
interface BreadcrumbProps {
|
|
32
|
+
/**
|
|
33
|
+
* Array of breadcrumb items to display
|
|
34
|
+
*/
|
|
11
35
|
items: BreadcrumbItemData[];
|
|
36
|
+
/**
|
|
37
|
+
* Custom separator element between breadcrumb items
|
|
38
|
+
*/
|
|
12
39
|
separator?: ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Maximum number of items before collapsing with ellipsis
|
|
42
|
+
* @default 0 (no collapsing)
|
|
43
|
+
*/
|
|
13
44
|
maxItems?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Additional CSS classes
|
|
47
|
+
*/
|
|
14
48
|
className?: string;
|
|
15
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Navigation breadcrumb component with support for collapsing and dropdown menus.
|
|
52
|
+
* Automatically collapses middle items when maxItems is exceeded.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```tsx
|
|
56
|
+
* <Breadcrumb
|
|
57
|
+
* items={[
|
|
58
|
+
* { label: 'Home', href: '/' },
|
|
59
|
+
* { label: 'Products', href: '/products' },
|
|
60
|
+
* { label: 'Item Detail' }
|
|
61
|
+
* ]}
|
|
62
|
+
* maxItems={3}
|
|
63
|
+
* />
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
16
66
|
declare const Breadcrumb: import('react').ForwardRefExoticComponent<BreadcrumbProps & import('react').RefAttributes<HTMLElement>>;
|
|
17
67
|
export { Breadcrumb, type BreadcrumbProps, type BreadcrumbItemData };
|