@yuno-payments/dashboard-design-system 0.0.166 → 0.0.170
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 +0 -16
- package/dist/components/atoms/accordion/accordion.d.ts +0 -66
- package/dist/components/atoms/alert/alert.d.ts +1 -26
- package/dist/components/atoms/alert/alert.js +8 -9
- package/dist/components/atoms/avatar/avatar-group.d.ts +0 -28
- package/dist/components/atoms/avatar/avatar.d.ts +0 -25
- package/dist/components/atoms/avatar/avatar.js +9 -9
- package/dist/components/atoms/badge/badge.d.ts +2 -30
- package/dist/components/atoms/badge/badge.js +11 -27
- package/dist/components/atoms/button/button.d.ts +0 -44
- package/dist/components/atoms/card/card.d.ts +3 -137
- package/dist/components/atoms/card/card.js +28 -56
- package/dist/components/atoms/checkbox/checkbox.d.ts +2 -38
- package/dist/components/atoms/checkbox/checkbox.js +27 -61
- package/dist/components/atoms/combobox/combobox.d.ts +0 -18
- package/dist/components/atoms/combobox/combobox.js +41 -41
- package/dist/components/atoms/combobox/types.d.ts +1 -90
- package/dist/components/atoms/currency-field/currency-field.d.ts +0 -38
- package/dist/components/atoms/currency-field/currency-field.js +19 -22
- package/dist/components/atoms/date-picker/date-picker.d.ts +0 -15
- package/dist/components/atoms/date-range-picker/date-range-picker.d.ts +0 -15
- package/dist/components/atoms/dots-menu/dots-menu.d.ts +0 -16
- package/dist/components/atoms/dots-menu/dots-menu.js +8 -8
- package/dist/components/atoms/dots-menu/dots-menu.types.d.ts +0 -52
- package/dist/components/atoms/dropdown-menu/dropdown-menu.d.ts +0 -50
- package/dist/components/atoms/field/field.d.ts +0 -55
- package/dist/components/atoms/field/field.js +46 -53
- package/dist/components/atoms/filter/filter-date-range.d.ts +2 -12
- package/dist/components/atoms/filter/filter-date-range.js +168 -203
- package/dist/components/atoms/filter/filter.d.ts +0 -6
- package/dist/components/atoms/filter/filter.js +76 -91
- package/dist/components/atoms/filter/index.d.ts +1 -1
- package/dist/components/atoms/filter-dropdown/filter-dropdown.d.ts +2 -208
- package/dist/components/atoms/filter-dropdown/filter-dropdown.js +160 -214
- package/dist/components/atoms/icon/icon-list.d.ts +0 -5
- package/dist/components/atoms/icon/icon-list.js +384 -394
- package/dist/components/atoms/icon/icon.d.ts +0 -29
- package/dist/components/atoms/index.d.ts +2 -3
- package/dist/components/atoms/label/index.d.ts +1 -1
- package/dist/components/atoms/link/link.d.ts +0 -20
- 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 +0 -16
- package/dist/components/atoms/multi-values-field/multi-values-field.js +87 -109
- package/dist/components/atoms/multi-values-field/multi-values-field.types.d.ts +0 -81
- package/dist/components/atoms/otp-field/otp-field.d.ts +0 -32
- package/dist/components/atoms/password-field/password-field.d.ts +0 -23
- package/dist/components/atoms/password-field/password-field.js +1 -1
- package/dist/components/atoms/progress/progress.d.ts +0 -15
- package/dist/components/atoms/protected-field/protected-field.d.ts +0 -10
- package/dist/components/atoms/protected-field/protected-field.types.d.ts +0 -14
- package/dist/components/atoms/radio-group/radio-group-option.js +11 -11
- package/dist/components/atoms/radio-group/radio-group.d.ts +1 -50
- package/dist/components/atoms/radio-group/radio-group.js +12 -13
- package/dist/components/atoms/search-field/search-field.d.ts +0 -14
- package/dist/components/atoms/search-field/search-field.js +17 -17
- package/dist/components/atoms/search-field/search-field.types.d.ts +0 -57
- package/dist/components/atoms/select/index.d.ts +0 -2
- package/dist/components/atoms/select/select.d.ts +1 -83
- package/dist/components/atoms/select/select.js +21 -21
- package/dist/components/atoms/separator/separator.d.ts +0 -17
- package/dist/components/atoms/skeleton/index.d.ts +0 -9
- package/dist/components/atoms/switch/switch.d.ts +2 -56
- package/dist/components/atoms/switch/switch.js +32 -64
- package/dist/components/atoms/tabs/index.d.ts +0 -16
- package/dist/components/atoms/textarea/textarea.d.ts +0 -32
- package/dist/components/atoms/textarea/textarea.js +1 -1
- package/dist/components/atoms/time-picker/time-picker.d.ts +2 -73
- package/dist/components/atoms/time-picker/time-picker.js +3 -218
- package/dist/components/atoms/toaster/index.d.ts +0 -15
- package/dist/components/atoms/toggle-group/toggle-group.d.ts +1 -26
- package/dist/components/atoms/toggle-group/toggle-group.js +14 -15
- package/dist/components/atoms/tooltip/tooltip.d.ts +2 -53
- package/dist/components/atoms/typography/typography.d.ts +0 -18
- package/dist/components/molecules/breadcrumb/breadcrumb.d.ts +0 -50
- package/dist/components/molecules/breadcrumb/breadcrumb.js +17 -17
- package/dist/components/molecules/dialog-content/dialog-content.d.ts +0 -16
- package/dist/components/molecules/dialog-footer/dialog-footer.d.ts +0 -20
- package/dist/components/molecules/dialog-header/dialog-header.d.ts +0 -31
- package/dist/components/molecules/empty/empty-icon.js +6 -6
- package/dist/components/molecules/empty/empty.d.ts +1 -16
- package/dist/components/molecules/empty/empty.js +34 -37
- package/dist/components/molecules/highlight-banner/highlight-banner.d.ts +0 -17
- package/dist/components/molecules/pagination/pagination.d.ts +0 -49
- package/dist/components/organisms/data-table/components/cells/data-table-list-cell.d.ts +0 -41
- 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 +0 -18
- 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 +0 -18
- package/dist/components/organisms/data-table/components/data-table-header.d.ts +0 -12
- 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 +0 -24
- package/dist/components/organisms/data-table/components/states/data-table-loading.js +6 -6
- package/dist/components/organisms/data-table/data-table.d.ts +3 -115
- package/dist/components/organisms/data-table/data-table.js +104 -131
- package/dist/components/organisms/data-table/data-table.types.d.ts +24 -23
- package/dist/components/organisms/data-table/hooks/use-data-table-columns.js +41 -57
- package/dist/components/organisms/data-table/hooks/use-data-table-state.d.ts +2 -7
- package/dist/components/organisms/data-table/hooks/use-data-table-state.js +46 -80
- package/dist/components/organisms/data-table/utils/data-table-constants.d.ts +2 -8
- package/dist/components/organisms/data-table/utils/data-table-constants.js +10 -16
- package/dist/components/organisms/data-table/utils/data-table-styles.d.ts +0 -1652
- package/dist/components/organisms/data-table/utils/data-table-styles.js +14 -29
- package/dist/components/organisms/dialog/dialog.d.ts +1 -67
- package/dist/components/organisms/dialog/dialog.js +61 -78
- package/dist/components/organisms/index.d.ts +0 -2
- package/dist/components/organisms/sheet/sheet.d.ts +0 -69
- package/dist/components/organisms/sheet/sheet.js +33 -34
- package/dist/index.css +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +162 -173
- 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 +1 -26
- package/dist/vendor/shadcn/sonner.js +8 -12
- package/dist/vendor/shadcn/table.js +30 -30
- package/dist/vendor/shadcn/textarea.js +9 -9
- package/dist/vendor/shadcn/time-picker.d.ts +2 -1
- package/dist/vendor/shadcn/time-picker.js +23 -17
- package/dist/vendor/shadcn/toggle.js +13 -13
- package/dist/vendor/shadcn/tooltip.js +15 -25
- package/package.json +1 -1
- package/dist/components/atoms/icon/aida-logo.d.ts +0 -3
- package/dist/components/atoms/icon/aida-logo.js +0 -64
- package/dist/components/atoms/label/label.d.ts +0 -11
- package/dist/components/atoms/label/label.js +0 -28
- package/dist/components/atoms/loading/index.d.ts +0 -1
- package/dist/components/atoms/loading/loading.d.ts +0 -39
- package/dist/components/atoms/loading/loading.js +0 -37
- package/dist/components/atoms/select/search-select.d.ts +0 -22
- package/dist/components/atoms/select/search-select.js +0 -201
- package/dist/components/organisms/tutorial/index.d.ts +0 -2
- package/dist/components/organisms/tutorial/tutorial.d.ts +0 -16
- package/dist/components/organisms/tutorial/tutorial.js +0 -114
- package/dist/components/organisms/tutorial/tutorial.types.d.ts +0 -15
- package/dist/hooks/index.d.ts +0 -3
- package/dist/hooks/use-body-scroll-lock.d.ts +0 -13
- package/dist/hooks/use-escape-key.d.ts +0 -14
- package/dist/hooks/use-media-query.d.ts +0 -20
- package/dist/hooks/use-media-query.js +0 -21
- package/dist/lib/notification-alert.d.ts +0 -42
- package/dist/lib/notification-alert.js +0 -75
- package/dist/node_modules/@phosphor-icons/react/dist/csr/File.es.js +0 -8
- package/dist/node_modules/@phosphor-icons/react/dist/csr/Microphone.es.js +0 -8
- package/dist/node_modules/@phosphor-icons/react/dist/csr/Stop.es.js +0 -8
- package/dist/node_modules/@phosphor-icons/react/dist/csr/Table.es.js +0 -8
- package/dist/node_modules/@phosphor-icons/react/dist/defs/File.es.js +0 -30
- package/dist/node_modules/@phosphor-icons/react/dist/defs/Microphone.es.js +0 -36
- package/dist/node_modules/@phosphor-icons/react/dist/defs/Stop.es.js +0 -36
- package/dist/node_modules/@phosphor-icons/react/dist/defs/Table.es.js +0 -30
|
@@ -1,19 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Props for the ProtectedField component
|
|
3
|
-
*/
|
|
4
1
|
export interface ProtectedFieldProps {
|
|
5
|
-
/**
|
|
6
|
-
* Text to display (will be masked if protected)
|
|
7
|
-
* @default "Default Text"
|
|
8
|
-
*/
|
|
9
2
|
text?: string;
|
|
10
|
-
/**
|
|
11
|
-
* Whether to mask the text with asterisks
|
|
12
|
-
* @default true
|
|
13
|
-
*/
|
|
14
3
|
protect?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Additional CSS classes
|
|
17
|
-
*/
|
|
18
4
|
className?: string;
|
|
19
5
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { j as r } from "../../../_virtual/jsx-runtime.js";
|
|
2
2
|
import { RadioGroupItem as d } from "../../../vendor/shadcn/radio-group.js";
|
|
3
|
-
import { cn as
|
|
4
|
-
import { Label as
|
|
5
|
-
const
|
|
3
|
+
import { cn as l } from "../../../lib/utils.js";
|
|
4
|
+
import { Label as a } from "../../../vendor/shadcn/label.js";
|
|
5
|
+
const u = ({
|
|
6
6
|
option: e,
|
|
7
7
|
radioId: s,
|
|
8
8
|
isInlineLayout: t = !1
|
|
@@ -17,39 +17,39 @@ const o = ({
|
|
|
17
17
|
value: e.value,
|
|
18
18
|
id: s,
|
|
19
19
|
disabled: e.disabled,
|
|
20
|
-
className: "size-3.5 data-[state=unchecked]:bg-
|
|
20
|
+
className: "size-3.5 data-[state=unchecked]:bg-white border-border cursor-pointer"
|
|
21
21
|
}
|
|
22
22
|
),
|
|
23
23
|
t ? /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
24
24
|
/* @__PURE__ */ r.jsx(
|
|
25
|
-
|
|
25
|
+
a,
|
|
26
26
|
{
|
|
27
27
|
htmlFor: s,
|
|
28
|
-
className:
|
|
28
|
+
className: l(
|
|
29
29
|
"cursor-pointer",
|
|
30
30
|
e.disabled && "text-muted-foreground"
|
|
31
31
|
),
|
|
32
32
|
children: e.label
|
|
33
33
|
}
|
|
34
34
|
),
|
|
35
|
-
e.description && /* @__PURE__ */ r.jsx("p", { className: "text-sm text-
|
|
35
|
+
e.description && /* @__PURE__ */ r.jsx("p", { className: "text-sm text-neutral-500 ml-auto", children: e.description })
|
|
36
36
|
] }) : /* @__PURE__ */ r.jsxs("div", { className: "flex flex-col gap-1.5 flex-1", children: [
|
|
37
37
|
/* @__PURE__ */ r.jsx(
|
|
38
|
-
|
|
38
|
+
a,
|
|
39
39
|
{
|
|
40
40
|
htmlFor: s,
|
|
41
|
-
className:
|
|
41
|
+
className: l(
|
|
42
42
|
"cursor-pointer",
|
|
43
43
|
e.disabled && "text-muted-foreground"
|
|
44
44
|
),
|
|
45
45
|
children: e.label
|
|
46
46
|
}
|
|
47
47
|
),
|
|
48
|
-
e.description && /* @__PURE__ */ r.jsx("p", { className: "text-sm text-
|
|
48
|
+
e.description && /* @__PURE__ */ r.jsx("p", { className: "text-sm text-neutral-500", children: e.description })
|
|
49
49
|
] })
|
|
50
50
|
]
|
|
51
51
|
}
|
|
52
52
|
);
|
|
53
53
|
export {
|
|
54
|
-
|
|
54
|
+
u as RadioGroupOption
|
|
55
55
|
};
|
|
@@ -1,64 +1,15 @@
|
|
|
1
1
|
import { ComponentProps } from 'react';
|
|
2
2
|
import { RadioGroup as ShadcnRadioGroup } from '../../../vendor/shadcn/radio-group';
|
|
3
|
-
/**
|
|
4
|
-
* Represents a single radio option
|
|
5
|
-
*/
|
|
6
3
|
interface RadioOption {
|
|
7
|
-
/**
|
|
8
|
-
* Unique value for this option
|
|
9
|
-
*/
|
|
10
4
|
value: string;
|
|
11
|
-
/**
|
|
12
|
-
* Display label for the option
|
|
13
|
-
*/
|
|
14
5
|
label: string;
|
|
15
|
-
/**
|
|
16
|
-
* Optional description text
|
|
17
|
-
*/
|
|
18
6
|
description?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Whether this option is disabled
|
|
21
|
-
*/
|
|
22
7
|
disabled?: boolean;
|
|
23
8
|
}
|
|
24
|
-
|
|
25
|
-
* Props for the RadioGroup component
|
|
26
|
-
*/
|
|
27
|
-
interface RadioGroupProps extends Omit<ComponentProps<typeof ShadcnRadioGroup>, "children" | "onValueChange"> {
|
|
28
|
-
/**
|
|
29
|
-
* Array of radio options to display
|
|
30
|
-
*/
|
|
9
|
+
interface RadioGroupProps extends Omit<ComponentProps<typeof ShadcnRadioGroup>, "children"> {
|
|
31
10
|
options: RadioOption[];
|
|
32
|
-
/**
|
|
33
|
-
* Layout direction of radio buttons
|
|
34
|
-
* @default "vertical"
|
|
35
|
-
*/
|
|
36
11
|
orientation?: "vertical" | "horizontal";
|
|
37
|
-
/**
|
|
38
|
-
* Visual layout style
|
|
39
|
-
* @default "stacked"
|
|
40
|
-
*/
|
|
41
12
|
layout?: "stacked" | "inline";
|
|
42
|
-
/**
|
|
43
|
-
* Callback fired when selection changes
|
|
44
|
-
*/
|
|
45
|
-
onChange?: (value: string) => void;
|
|
46
13
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Radio button group for single-selection from multiple options.
|
|
49
|
-
* Supports vertical/horizontal layouts and inline/stacked styles.
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* ```tsx
|
|
53
|
-
* <RadioGroup
|
|
54
|
-
* name="plan"
|
|
55
|
-
* options={[
|
|
56
|
-
* { value: 'free', label: 'Free Plan', description: '$0/month' },
|
|
57
|
-
* { value: 'pro', label: 'Pro Plan', description: '$10/month' }
|
|
58
|
-
* ]}
|
|
59
|
-
* onChange={(value) => console.log(value)}
|
|
60
|
-
* />
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
14
|
declare const RadioGroup: import('react').ForwardRefExoticComponent<Omit<RadioGroupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
64
15
|
export { RadioGroup, type RadioGroupProps, type RadioOption };
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import { j as r } from "../../../_virtual/jsx-runtime.js";
|
|
2
2
|
import { forwardRef as d } from "react";
|
|
3
3
|
import { RadioGroup as f } from "../../../vendor/shadcn/radio-group.js";
|
|
4
|
-
import { RadioGroupOption as
|
|
5
|
-
const
|
|
6
|
-
({ options: a, name:
|
|
7
|
-
const
|
|
4
|
+
import { RadioGroupOption as u } from "./radio-group-option.js";
|
|
5
|
+
const x = d(
|
|
6
|
+
({ options: a, name: i, orientation: e = "vertical", layout: t = "stacked", ...l }, s) => {
|
|
7
|
+
const n = t === "inline", p = e === "horizontal";
|
|
8
8
|
return /* @__PURE__ */ r.jsx(
|
|
9
9
|
f,
|
|
10
10
|
{
|
|
11
11
|
ref: s,
|
|
12
|
-
className:
|
|
13
|
-
|
|
14
|
-
...n,
|
|
12
|
+
className: p ? "flex flex-row flex-wrap gap-6" : "flex flex-col gap-3",
|
|
13
|
+
...l,
|
|
15
14
|
children: a.map((o) => {
|
|
16
|
-
const
|
|
15
|
+
const m = `${i}-${o.value}`;
|
|
17
16
|
return /* @__PURE__ */ r.jsx(
|
|
18
|
-
|
|
17
|
+
u,
|
|
19
18
|
{
|
|
20
19
|
option: o,
|
|
21
|
-
radioId:
|
|
22
|
-
isInlineLayout:
|
|
20
|
+
radioId: m,
|
|
21
|
+
isInlineLayout: n
|
|
23
22
|
},
|
|
24
23
|
o.value
|
|
25
24
|
);
|
|
@@ -28,7 +27,7 @@ const c = d(
|
|
|
28
27
|
);
|
|
29
28
|
}
|
|
30
29
|
);
|
|
31
|
-
|
|
30
|
+
x.displayName = "RadioGroup";
|
|
32
31
|
export {
|
|
33
|
-
|
|
32
|
+
x as RadioGroup
|
|
34
33
|
};
|
|
@@ -1,17 +1,3 @@
|
|
|
1
1
|
import { SearchFieldProps } from './search-field.types';
|
|
2
|
-
/**
|
|
3
|
-
* Search input field with history dropdown and persistence support.
|
|
4
|
-
* Features search-on-change, history storage, and keyboard navigation.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```tsx
|
|
8
|
-
* <SearchField
|
|
9
|
-
* label="Search products"
|
|
10
|
-
* onSearch={(query) => handleSearch(query)}
|
|
11
|
-
* persistKey="product-search"
|
|
12
|
-
* searchOnChange={false}
|
|
13
|
-
* />
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
2
|
declare const SearchField: import('react').ForwardRefExoticComponent<SearchFieldProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
17
3
|
export { SearchField };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { j as t } from "../../../_virtual/jsx-runtime.js";
|
|
2
|
-
import { forwardRef as U, useId as Y, useState as
|
|
2
|
+
import { forwardRef as U, useId as Y, useState as l, useRef as V, useEffect as z } from "react";
|
|
3
3
|
import { cn as r } from "../../../lib/utils.js";
|
|
4
4
|
import { Input as Z } from "../../../vendor/shadcn/input.js";
|
|
5
|
-
import { Icon as w } from "../icon/icon.js";
|
|
6
5
|
import { cva as D } from "../../../node_modules/class-variance-authority/dist/index.js";
|
|
7
|
-
import { Label as K } from "
|
|
6
|
+
import { Label as K } from "../../../vendor/shadcn/label.js";
|
|
7
|
+
import { Icon as w } from "../icon/icon.js";
|
|
8
8
|
const P = D("flex gap-2 w-full", {
|
|
9
9
|
variants: {
|
|
10
10
|
layout: {
|
|
@@ -28,7 +28,7 @@ const P = D("flex gap-2 w-full", {
|
|
|
28
28
|
}), te = U(
|
|
29
29
|
({
|
|
30
30
|
placeholder: F = "Search...",
|
|
31
|
-
onSearch:
|
|
31
|
+
onSearch: n,
|
|
32
32
|
limitSearch: y = 10,
|
|
33
33
|
persistKey: c = "",
|
|
34
34
|
value: m = "",
|
|
@@ -43,15 +43,15 @@ const P = D("flex gap-2 w-full", {
|
|
|
43
43
|
inputProps: h,
|
|
44
44
|
...E
|
|
45
45
|
}, i) => {
|
|
46
|
-
const M = Y(), u = O || h?.id || M, b = !!a, [o, d] =
|
|
46
|
+
const M = Y(), u = O || h?.id || M, b = !!a, [o, d] = l(m), [f, R] = l(() => {
|
|
47
47
|
if (c) {
|
|
48
48
|
const e = localStorage.getItem(`${c}_searchfield`);
|
|
49
49
|
return e ? JSON.parse(e) : [];
|
|
50
50
|
}
|
|
51
51
|
return [];
|
|
52
|
-
}), [C, L] =
|
|
52
|
+
}), [C, L] = l([]), [B, v] = l(!1), [J, I] = l(!1), g = V(null), _ = V(null), G = (e) => {
|
|
53
53
|
const s = e.target.value;
|
|
54
|
-
d(s), (s === "" || H) &&
|
|
54
|
+
d(s), (s === "" || H) && n(s);
|
|
55
55
|
}, W = (e) => {
|
|
56
56
|
e.key === "Enter" && o !== "" && S();
|
|
57
57
|
}, S = () => {
|
|
@@ -65,11 +65,11 @@ const P = D("flex gap-2 w-full", {
|
|
|
65
65
|
R(k), c && localStorage.setItem(
|
|
66
66
|
`${c}_searchfield`,
|
|
67
67
|
JSON.stringify(k)
|
|
68
|
-
),
|
|
68
|
+
), n(o);
|
|
69
69
|
}, X = () => {
|
|
70
|
-
d(""),
|
|
70
|
+
d(""), n(""), g.current?.focus();
|
|
71
71
|
}, q = (e) => {
|
|
72
|
-
d(e),
|
|
72
|
+
d(e), n(e), v(!1), g.current?.focus();
|
|
73
73
|
}, A = () => {
|
|
74
74
|
v(!0);
|
|
75
75
|
}, Q = () => {
|
|
@@ -105,16 +105,16 @@ const P = D("flex gap-2 w-full", {
|
|
|
105
105
|
placeholder: F,
|
|
106
106
|
disabled: x,
|
|
107
107
|
autoComplete: "off",
|
|
108
|
-
"aria-invalid": b,
|
|
109
|
-
"aria-describedby": p || a ? `${u}-description` : void 0,
|
|
110
|
-
...E,
|
|
111
|
-
...h,
|
|
112
|
-
id: u,
|
|
113
108
|
className: r(
|
|
114
109
|
b && "border-destructive focus-visible:border-destructive",
|
|
115
110
|
"!px-9",
|
|
116
111
|
h?.className
|
|
117
|
-
)
|
|
112
|
+
),
|
|
113
|
+
"aria-invalid": b,
|
|
114
|
+
"aria-describedby": p || a ? `${u}-description` : void 0,
|
|
115
|
+
...E,
|
|
116
|
+
...h,
|
|
117
|
+
id: u
|
|
118
118
|
}
|
|
119
119
|
),
|
|
120
120
|
/* @__PURE__ */ t.jsx(
|
|
@@ -124,7 +124,7 @@ const P = D("flex gap-2 w-full", {
|
|
|
124
124
|
size: "sm",
|
|
125
125
|
onClick: S,
|
|
126
126
|
className: r(
|
|
127
|
-
"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground
|
|
127
|
+
"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground",
|
|
128
128
|
!x && "cursor-pointer hover:text-foreground transition-colors"
|
|
129
129
|
)
|
|
130
130
|
}
|
|
@@ -1,77 +1,20 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
/**
|
|
3
|
-
* Represents a search history value
|
|
4
|
-
*/
|
|
5
2
|
export interface SearchValue {
|
|
6
|
-
/**
|
|
7
|
-
* Display label for the search value
|
|
8
|
-
*/
|
|
9
3
|
label: string;
|
|
10
|
-
/**
|
|
11
|
-
* Actual value of the search
|
|
12
|
-
*/
|
|
13
4
|
value: string;
|
|
14
|
-
/**
|
|
15
|
-
* Whether this value is currently selected
|
|
16
|
-
*/
|
|
17
5
|
isSelected?: boolean;
|
|
18
6
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Props for the SearchField component
|
|
21
|
-
*/
|
|
22
7
|
export interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "className"> {
|
|
23
|
-
/**
|
|
24
|
-
* Placeholder text for the input
|
|
25
|
-
* @default "Search..."
|
|
26
|
-
*/
|
|
27
8
|
placeholder?: string;
|
|
28
|
-
/**
|
|
29
|
-
* Callback fired when search is triggered
|
|
30
|
-
*/
|
|
31
9
|
onSearch: (value: string) => void;
|
|
32
|
-
/**
|
|
33
|
-
* Maximum number of search history items to store
|
|
34
|
-
* @default 10
|
|
35
|
-
*/
|
|
36
10
|
limitSearch?: number;
|
|
37
|
-
/**
|
|
38
|
-
* Key for persisting search history in localStorage
|
|
39
|
-
* @default ""
|
|
40
|
-
*/
|
|
41
11
|
persistKey?: string;
|
|
42
|
-
/**
|
|
43
|
-
* Controlled value of the input
|
|
44
|
-
* @default ""
|
|
45
|
-
*/
|
|
46
12
|
value?: string;
|
|
47
|
-
/**
|
|
48
|
-
* Whether to trigger search on every change or only on Enter
|
|
49
|
-
* @default true
|
|
50
|
-
*/
|
|
51
13
|
searchOnChange?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Label text displayed above the input
|
|
54
|
-
*/
|
|
55
14
|
label?: string;
|
|
56
|
-
/**
|
|
57
|
-
* Helper text displayed below the input
|
|
58
|
-
*/
|
|
59
15
|
description?: string;
|
|
60
|
-
/**
|
|
61
|
-
* Error message displayed below the input
|
|
62
|
-
*/
|
|
63
16
|
error?: string;
|
|
64
|
-
/**
|
|
65
|
-
* Layout orientation
|
|
66
|
-
* @default "vertical"
|
|
67
|
-
*/
|
|
68
17
|
layout?: "vertical" | "horizontal";
|
|
69
|
-
/**
|
|
70
|
-
* Additional CSS classes for the wrapper
|
|
71
|
-
*/
|
|
72
18
|
className?: string;
|
|
73
|
-
/**
|
|
74
|
-
* Additional props to pass to the input element
|
|
75
|
-
*/
|
|
76
19
|
inputProps?: InputHTMLAttributes<HTMLInputElement>;
|
|
77
20
|
}
|
|
@@ -1,110 +1,28 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Represents a single option in the select dropdown
|
|
4
|
-
*/
|
|
5
2
|
export interface SelectOption {
|
|
6
|
-
/**
|
|
7
|
-
* Unique value for this option
|
|
8
|
-
*/
|
|
9
3
|
value: string;
|
|
10
|
-
/**
|
|
11
|
-
* Display label for this option
|
|
12
|
-
*/
|
|
13
4
|
label: string;
|
|
14
|
-
/**
|
|
15
|
-
* Optional icon to display before the label
|
|
16
|
-
*/
|
|
17
5
|
icon?: React.ReactNode;
|
|
18
6
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Represents a group of options in the select dropdown
|
|
21
|
-
*/
|
|
22
7
|
export interface SelectOptionGroup {
|
|
23
|
-
/**
|
|
24
|
-
* Optional label for the group
|
|
25
|
-
*/
|
|
26
8
|
label?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Array of options in this group
|
|
29
|
-
*/
|
|
30
9
|
options: SelectOption[];
|
|
31
10
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Props for the Select component
|
|
34
|
-
*/
|
|
35
11
|
export interface SelectProps {
|
|
36
|
-
/**
|
|
37
|
-
* Label text displayed above the select
|
|
38
|
-
*/
|
|
39
12
|
label?: string;
|
|
40
|
-
/**
|
|
41
|
-
* Helper text displayed below the select
|
|
42
|
-
*/
|
|
43
13
|
description?: string;
|
|
44
|
-
/**
|
|
45
|
-
* Error message displayed below the select
|
|
46
|
-
*/
|
|
47
14
|
error?: string;
|
|
48
|
-
/**
|
|
49
|
-
* Whether to show "(Optional)" next to the label
|
|
50
|
-
* @default false
|
|
51
|
-
*/
|
|
52
15
|
optional?: boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Placeholder text shown when no option is selected
|
|
55
|
-
* @default "Select an option"
|
|
56
|
-
*/
|
|
57
16
|
placeholder?: string;
|
|
58
|
-
/**
|
|
59
|
-
* Controlled value of the select
|
|
60
|
-
*/
|
|
61
17
|
value?: string;
|
|
62
|
-
/**
|
|
63
|
-
* Default value for uncontrolled mode
|
|
64
|
-
*/
|
|
65
18
|
defaultValue?: string;
|
|
66
|
-
|
|
67
|
-
* Callback fired when the selected value changes
|
|
68
|
-
*/
|
|
69
|
-
onChange?: (value: string) => void;
|
|
70
|
-
/**
|
|
71
|
-
* Whether the select is disabled
|
|
72
|
-
* @default false
|
|
73
|
-
*/
|
|
19
|
+
onValueChange?: (value: string) => void;
|
|
74
20
|
disabled?: boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Array of options (use either options or groups, not both)
|
|
77
|
-
*/
|
|
78
21
|
options?: SelectOption[];
|
|
79
|
-
/**
|
|
80
|
-
* Array of grouped options (use either options or groups, not both)
|
|
81
|
-
*/
|
|
82
22
|
groups?: SelectOptionGroup[];
|
|
83
|
-
/**
|
|
84
|
-
* Additional CSS classes for the container
|
|
85
|
-
*/
|
|
86
23
|
className?: string;
|
|
87
|
-
/**
|
|
88
|
-
* HTML id attribute for the select element
|
|
89
|
-
*/
|
|
90
24
|
id?: string;
|
|
91
25
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Select dropdown component with label, description, error handling, and grouped options support.
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```tsx
|
|
97
|
-
* <Select
|
|
98
|
-
* label="Country"
|
|
99
|
-
* placeholder="Select a country"
|
|
100
|
-
* options={[
|
|
101
|
-
* { value: 'us', label: 'United States' },
|
|
102
|
-
* { value: 'mx', label: 'Mexico' }
|
|
103
|
-
* ]}
|
|
104
|
-
* onChange={(value) => console.log(value)}
|
|
105
|
-
* />
|
|
106
|
-
* ```
|
|
107
|
-
*/
|
|
108
26
|
declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLButtonElement>>;
|
|
109
27
|
export { Select };
|
|
110
28
|
export type { SelectProps };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { j as e } from "../../../_virtual/jsx-runtime.js";
|
|
2
2
|
import * as y from "react";
|
|
3
3
|
import { cn as c } from "../../../lib/utils.js";
|
|
4
|
-
import { Select as w, SelectTrigger as
|
|
5
|
-
import { Label as
|
|
6
|
-
import { Typography as
|
|
7
|
-
const
|
|
4
|
+
import { Select as w, SelectTrigger as G, SelectValue as L, SelectContent as O, SelectGroup as R, SelectLabel as T, SelectItem as d } from "../../../vendor/shadcn/select.js";
|
|
5
|
+
import { Label as C } from "../../../vendor/shadcn/label.js";
|
|
6
|
+
import { Typography as r } from "../typography/typography.js";
|
|
7
|
+
const E = y.forwardRef(
|
|
8
8
|
({
|
|
9
|
-
label:
|
|
10
|
-
description:
|
|
9
|
+
label: m,
|
|
10
|
+
description: n,
|
|
11
11
|
error: a,
|
|
12
12
|
optional: j = !1,
|
|
13
13
|
placeholder: f = "Select an option",
|
|
14
14
|
value: u,
|
|
15
15
|
defaultValue: o,
|
|
16
|
-
|
|
16
|
+
onValueChange: p,
|
|
17
17
|
disabled: t = !1,
|
|
18
18
|
options: i = [],
|
|
19
19
|
groups: x = [],
|
|
@@ -22,19 +22,19 @@ const V = y.forwardRef(
|
|
|
22
22
|
}, N) => {
|
|
23
23
|
const S = x.length > 0, b = i.length > 0;
|
|
24
24
|
return /* @__PURE__ */ e.jsxs("div", { className: c("w-full", v), children: [
|
|
25
|
-
|
|
26
|
-
/* @__PURE__ */ e.jsx(
|
|
27
|
-
j && /* @__PURE__ */ e.jsx(
|
|
25
|
+
m && /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-1 mb-2", children: [
|
|
26
|
+
/* @__PURE__ */ e.jsx(C, { htmlFor: h, className: c(t && "opacity-50"), children: m }),
|
|
27
|
+
j && /* @__PURE__ */ e.jsx(r, { variant: "sm", className: "text-muted-foreground", children: "(Optional)" })
|
|
28
28
|
] }),
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
n && !a && /* @__PURE__ */ e.jsx(
|
|
30
|
+
r,
|
|
31
31
|
{
|
|
32
32
|
variant: "sm",
|
|
33
33
|
className: c(
|
|
34
34
|
"text-muted-foreground mb-2",
|
|
35
35
|
t && "opacity-50"
|
|
36
36
|
),
|
|
37
|
-
children:
|
|
37
|
+
children: n
|
|
38
38
|
}
|
|
39
39
|
),
|
|
40
40
|
/* @__PURE__ */ e.jsxs(
|
|
@@ -46,18 +46,18 @@ const V = y.forwardRef(
|
|
|
46
46
|
disabled: t,
|
|
47
47
|
children: [
|
|
48
48
|
/* @__PURE__ */ e.jsx(
|
|
49
|
-
|
|
49
|
+
G,
|
|
50
50
|
{
|
|
51
51
|
ref: N,
|
|
52
52
|
id: h,
|
|
53
53
|
className: c(a && "border-destructive"),
|
|
54
|
-
children: /* @__PURE__ */ e.jsx(
|
|
54
|
+
children: /* @__PURE__ */ e.jsx(L, { placeholder: f })
|
|
55
55
|
}
|
|
56
56
|
),
|
|
57
|
-
/* @__PURE__ */ e.jsx(
|
|
57
|
+
/* @__PURE__ */ e.jsx(O, { children: S ? (
|
|
58
58
|
// Render grouped options
|
|
59
|
-
x.map((l, g) => /* @__PURE__ */ e.jsxs(
|
|
60
|
-
l.label && /* @__PURE__ */ e.jsx(
|
|
59
|
+
x.map((l, g) => /* @__PURE__ */ e.jsxs(R, { children: [
|
|
60
|
+
l.label && /* @__PURE__ */ e.jsx(T, { children: l.label }),
|
|
61
61
|
l.options.map((s) => /* @__PURE__ */ e.jsxs(d, { value: s.value, children: [
|
|
62
62
|
s.icon && /* @__PURE__ */ e.jsx("span", { className: "mr-2 inline-flex items-center", children: s.icon }),
|
|
63
63
|
s.label
|
|
@@ -73,11 +73,11 @@ const V = y.forwardRef(
|
|
|
73
73
|
]
|
|
74
74
|
}
|
|
75
75
|
),
|
|
76
|
-
a && /* @__PURE__ */ e.jsx(
|
|
76
|
+
a && /* @__PURE__ */ e.jsx(r, { variant: "sm", className: "text-destructive mt-2", children: a })
|
|
77
77
|
] });
|
|
78
78
|
}
|
|
79
79
|
);
|
|
80
|
-
|
|
80
|
+
E.displayName = "Select";
|
|
81
81
|
export {
|
|
82
|
-
|
|
82
|
+
E as Select
|
|
83
83
|
};
|
|
@@ -4,26 +4,9 @@ declare const dividerVariants: (props?: ({
|
|
|
4
4
|
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
5
5
|
spacing?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
6
6
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
-
/**
|
|
8
|
-
* Props for the Separator component
|
|
9
|
-
*/
|
|
10
7
|
interface SeparatorProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof dividerVariants> {
|
|
11
|
-
/**
|
|
12
|
-
* Orientation of the separator
|
|
13
|
-
* @default "horizontal"
|
|
14
|
-
*/
|
|
15
8
|
orientation?: "horizontal" | "vertical";
|
|
16
9
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Visual separator line for dividing content sections.
|
|
19
|
-
* Supports horizontal/vertical orientations and spacing variants.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```tsx
|
|
23
|
-
* <Separator />
|
|
24
|
-
* <Separator orientation="vertical" spacing="md" />
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
10
|
declare const Separator: {
|
|
28
11
|
({ className, orientation, spacing, ...props }: SeparatorProps): import("react/jsx-runtime").JSX.Element;
|
|
29
12
|
displayName: string;
|
|
@@ -1,10 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skeleton loader component for displaying placeholder content during loading states.
|
|
3
|
-
*
|
|
4
|
-
* @example
|
|
5
|
-
* ```tsx
|
|
6
|
-
* <Skeleton className="h-4 w-[250px]" />
|
|
7
|
-
* <Skeleton className="h-12 w-12 rounded-full" />
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
1
|
export { Skeleton } from '../../../vendor/shadcn/skeleton';
|