@divayth/brick-ui 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +15 -4
  2. package/dist/index.js +16 -14
  3. package/dist/styles.css +1 -1
  4. package/dist/ui/Autocomplete/Autocomplete.d.ts +2 -3
  5. package/dist/ui/Autocomplete/Autocomplete.d.ts.map +1 -1
  6. package/dist/ui/Autocomplete/Autocomplete.js +3 -3
  7. package/dist/ui/Date/DateInput.d.ts +3 -6
  8. package/dist/ui/Date/DateInput.d.ts.map +1 -1
  9. package/dist/ui/Date/DateInput.js +44 -48
  10. package/dist/ui/Input/Input.d.ts +4 -10
  11. package/dist/ui/Input/Input.d.ts.map +1 -1
  12. package/dist/ui/Input/Input.js +27 -29
  13. package/dist/ui/Input/Input.module.css.js +8 -6
  14. package/dist/ui/Select/Select.d.ts +3 -4
  15. package/dist/ui/Select/Select.d.ts.map +1 -1
  16. package/dist/ui/Select/Select.js +4 -142
  17. package/dist/ui/Select/Select.module.css.js +17 -21
  18. package/dist/ui/Select/Select.types.d.ts +34 -22
  19. package/dist/ui/Select/Select.types.d.ts.map +1 -1
  20. package/dist/ui/Select/SelectControl.d.ts +3 -0
  21. package/dist/ui/Select/SelectControl.d.ts.map +1 -0
  22. package/dist/ui/Select/SelectControl.js +150 -0
  23. package/dist/ui/Select/SelectOption.d.ts.map +1 -1
  24. package/dist/ui/Select/SelectOption.js +11 -10
  25. package/dist/ui/Select/SelectOption.module.css.js +9 -0
  26. package/dist/ui/Select/SelectOptions.d.ts.map +1 -1
  27. package/dist/ui/Select/SelectOptions.js +1 -1
  28. package/dist/ui/Select/SelectOptions.module.css.js +7 -0
  29. package/dist/ui/Select/SelectSearch.d.ts.map +1 -1
  30. package/dist/ui/Select/SelectSearch.js +22 -7
  31. package/dist/ui/Select/SelectSearch.module.css.js +10 -8
  32. package/dist/ui/Tabs/TabsList.js +5 -5
  33. package/dist/ui/Textarea/Textarea.d.ts +8 -0
  34. package/dist/ui/Textarea/Textarea.d.ts.map +1 -0
  35. package/dist/ui/Textarea/Textarea.js +77 -0
  36. package/dist/ui/index.d.ts +4 -2
  37. package/dist/ui/index.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -1,5 +1,4 @@
1
- import type { SelectProps, SelectBaseProps, SelectValue } from "./Select.types.js";
2
- export type { SelectOption, SelectProps, SelectValue, SelectControlProps } from "./Select.types.js";
3
- export declare const SelectBase: <T extends SelectValue, Multiple extends boolean = false>({ value, onChange, renderValue, onSearchChange, filterOptions, isLoading, multiple, searchable, options, label, disabled, placeholder, searchPlaceholder, error, withArrow, clearable, className, size, variant, }: SelectBaseProps<T, Multiple>) => import("react").JSX.Element;
4
- export declare const Select: <T extends SelectValue, Multiple extends boolean = false>(props: SelectProps<T, Multiple>) => import("react").JSX.Element;
1
+ import type { SelectProps, SelectValue } from "./Select.types.js";
2
+ export type { SelectProps, SelectValue } from "./Select.types.js";
3
+ export declare const Select: <T extends SelectValue>(props: SelectProps<T>) => import("react").JSX.Element;
5
4
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/Select.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAEV,WAAW,EACX,eAAe,EACf,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAOpG,eAAO,MAAM,UAAU,GACrB,CAAC,SAAS,WAAW,EACrB,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,oNAoBC,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,gCAwI9B,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,QAAQ,SAAS,OAAO,GAAG,KAAK,EAC5E,OAAO,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,gCAC6B,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/Select.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,gCAElE,CAAC"}
@@ -1,145 +1,7 @@
1
1
  "use client";
2
- import { jsx as r, jsxs as I } from "react/jsx-runtime";
3
- import { useId as G, useRef as H, useState as F } from "react";
4
- import { clsx as P } from "clsx";
5
- import { ChevronDown as J, X as K } from "lucide-react";
6
- import { useProvider as M } from "../../app/Provider.js";
7
- import { SelectSearch as Q } from "./SelectSearch.js";
8
- import { SelectOptions as U } from "./SelectOptions.js";
9
- import { Field as p } from "../Field/Field.js";
10
- import { Flex as W } from "../Flex/Flex.js";
11
- import { IconButton as Y } from "../IconButton/IconButton.js";
12
- import { Popover as N } from "../Popover/Popover.js";
13
- import t from "./Select.module.css.js";
14
- const z = { sm: 16, md: 20, lg: 24 }, ee = { sm: "xs", md: "sm", lg: "md" }, re = ({
15
- value: s,
16
- onChange: k,
17
- renderValue: B,
18
- onSearchChange: b,
19
- filterOptions: L = !1,
20
- isLoading: Z = !1,
21
- multiple: l,
22
- searchable: g = !1,
23
- options: R = [],
24
- label: f,
25
- disabled: a,
26
- placeholder: u,
27
- searchPlaceholder: _,
28
- error: c,
29
- withArrow: q = !0,
30
- clearable: j = !0,
31
- className: D,
32
- size: h = "md",
33
- variant: T = "filled"
34
- }) => {
35
- const { messages: A } = M(), i = G(), v = H(null), [n, V] = F(!1), [E, O] = F(""), m = Array.isArray(s) ? s : [s], o = R.filter((e) => m.includes(e.value)), $ = o.map(({ label: e, value: y }) => e ?? y).join(", "), x = o.length ? B?.(s) : void 0, S = (e) => k?.(e), d = (e) => {
36
- V(e), O(""), b?.("");
37
- }, w = {
38
- id: i,
39
- className: t.trigger,
40
- disabled: a,
41
- "aria-expanded": n && !a,
42
- "aria-controls": `${i}-options`,
43
- "aria-invalid": !!c,
44
- "aria-describedby": c ? `${i}-error` : void 0
45
- }, X = (e) => {
46
- if (l) {
47
- const y = m.includes(e.value) ? m.filter((C) => C !== e.value) : [...m.filter((C) => C !== void 0), e.value];
48
- S(y);
49
- } else
50
- S(e.value);
51
- d(!!l), v.current?.querySelector("input, button")?.focus();
52
- };
53
- return /* @__PURE__ */ r(N.Root, { open: n && !a, onOpenChange: d, children: /* @__PURE__ */ I(p.Root, { className: D, children: [
54
- f && /* @__PURE__ */ r(p.Label, { htmlFor: i, label: f }),
55
- /* @__PURE__ */ r(p.Control, { size: h, children: /* @__PURE__ */ r(N.Anchor, { children: /* @__PURE__ */ I(
56
- W,
57
- {
58
- ref: v,
59
- gap: "sm",
60
- alignItems: "center",
61
- justifyContent: "between",
62
- className: P(t.select, t[T], {
63
- [t.error]: c,
64
- [t.disabled]: a
65
- }),
66
- children: [
67
- g ? /* @__PURE__ */ r(
68
- Q,
69
- {
70
- size: h,
71
- value: n ? E : $,
72
- displayValue: x,
73
- placeholder: n ? _ ?? A.search : u,
74
- "aria-label": f ?? u,
75
- open: n && !a,
76
- onClick: () => {
77
- n || d(!0);
78
- },
79
- onChange: (e) => {
80
- n || d(!0), O(e.target.value), b?.(e.target.value);
81
- },
82
- ...w
83
- }
84
- ) : /* @__PURE__ */ r(N.Trigger, { children: /* @__PURE__ */ I("button", { type: "button", "aria-haspopup": "listbox", ...w, children: [
85
- !l && x == null && o[0]?.icon,
86
- /* @__PURE__ */ r(
87
- "span",
88
- {
89
- className: P(
90
- t.value,
91
- !o.length && t.placeholder
92
- ),
93
- children: o.length ? x ?? $ : u
94
- }
95
- ),
96
- q && !(o.length && j) && /* @__PURE__ */ r(
97
- J,
98
- {
99
- size: z[h],
100
- className: t.arrow,
101
- "aria-hidden": !0
102
- }
103
- )
104
- ] }) }),
105
- j && (g || o.length > 0) && /* @__PURE__ */ r(
106
- Y,
107
- {
108
- size: ee[h],
109
- color: "secondary",
110
- className: o.length ? void 0 : "invisible",
111
- disabled: a || !o.length,
112
- "aria-hidden": !o.length || void 0,
113
- "aria-label": A.clear,
114
- onClick: () => {
115
- S(l ? [] : void 0), d(!1);
116
- },
117
- children: /* @__PURE__ */ r(K, {})
118
- }
119
- ),
120
- /* @__PURE__ */ r(
121
- U,
122
- {
123
- id: `${i}-options`,
124
- "aria-label": f ?? u,
125
- options: R,
126
- values: m,
127
- search: E,
128
- filterOptions: L,
129
- isLoading: Z,
130
- multiple: l,
131
- searchable: g,
132
- anchorRef: v,
133
- onSelect: X
134
- }
135
- )
136
- ]
137
- }
138
- ) }) }),
139
- c && /* @__PURE__ */ r(p.Error, { id: `${i}-error`, error: c })
140
- ] }) });
141
- }, he = (s) => /* @__PURE__ */ r(re, { ...s, searchable: !1 });
2
+ import { jsx as o } from "react/jsx-runtime";
3
+ import { SelectControl as r } from "./SelectControl.js";
4
+ const c = (e) => /* @__PURE__ */ o(r, { ...e, searchable: !1 });
142
5
  export {
143
- he as Select,
144
- re as SelectBase
6
+ c as Select
145
7
  };
@@ -1,27 +1,23 @@
1
- const e = "_select_cn0kb_2", c = "_disabled_cn0kb_14", _ = "_error_cn0kb_14", o = "_outlined_cn0kb_18", n = "_filled_cn0kb_22", r = "_trigger_cn0kb_31", l = "_value_cn0kb_61", t = "_arrow_cn0kb_69", d = "_placeholder_cn0kb_74", s = "_dropdown_cn0kb_95", a = "_active_cn0kb_131", i = {
1
+ const e = "_select_1h59j_2", _ = "_disabled_1h59j_14", l = "_error_1h59j_14", r = "_outlined_1h59j_18", o = "_filled_1h59j_22", t = "_trigger_1h59j_31", s = "_value_1h59j_54", c = "_arrow_1h59j_62", d = "_placeholder_1h59j_67", a = {
2
2
  select: e,
3
- disabled: c,
4
- error: _,
5
- outlined: o,
6
- filled: n,
7
- trigger: r,
8
- value: l,
9
- arrow: t,
10
- placeholder: d,
11
- dropdown: s,
12
- active: a
3
+ disabled: _,
4
+ error: l,
5
+ outlined: r,
6
+ filled: o,
7
+ trigger: t,
8
+ value: s,
9
+ arrow: c,
10
+ placeholder: d
13
11
  };
14
12
  export {
15
- a as active,
16
- t as arrow,
17
- i as default,
18
- c as disabled,
19
- s as dropdown,
20
- _ as error,
21
- n as filled,
22
- o as outlined,
13
+ c as arrow,
14
+ a as default,
15
+ _ as disabled,
16
+ l as error,
17
+ o as filled,
18
+ r as outlined,
23
19
  d as placeholder,
24
20
  e as select,
25
- r as trigger,
26
- l as value
21
+ t as trigger,
22
+ s as value
27
23
  };
@@ -1,20 +1,17 @@
1
1
  import type { ReactNode, RefObject } from "react";
2
2
  import type { ControlSize } from "../Field/Field.js";
3
3
  import type { InputProps } from "../Input/Input.js";
4
- export interface SelectSearchProps extends Extract<InputProps, {
5
- multiline?: false;
6
- }> {
4
+ export interface SelectSearchProps extends InputProps {
7
5
  open: boolean;
8
6
  displayValue?: ReactNode;
9
7
  }
8
+ export type SelectValue = string | number | boolean | undefined;
10
9
  export interface SelectOption<T = SelectValue> {
11
10
  value: T;
12
11
  label?: string;
13
12
  icon?: ReactNode;
14
13
  }
15
- export type SelectValue = string | number | boolean | undefined;
16
- export type Selection<T, Multiple extends boolean> = Multiple extends true ? T[] : T | undefined;
17
- export interface SelectControlProps {
14
+ export interface SelectCommonProps<T = SelectValue> {
18
15
  size?: ControlSize;
19
16
  disabled?: boolean;
20
17
  placeholder?: string;
@@ -24,29 +21,37 @@ export interface SelectControlProps {
24
21
  clearable?: boolean;
25
22
  className?: string;
26
23
  variant?: "filled" | "outlined";
27
- }
28
- export interface SelectProps<T extends SelectValue = SelectValue, Multiple extends boolean = false> extends SelectControlProps {
29
24
  options: readonly SelectOption<T>[];
30
- value?: Selection<NoInfer<T>, Multiple>;
31
- onChange?: (value: Selection<NoInfer<T>, Multiple>) => void;
32
- renderValue?: (value: Selection<NoInfer<T>, Multiple>) => ReactNode;
33
- multiple?: Multiple;
34
25
  isLoading?: boolean;
35
26
  }
36
- export interface AutocompleteProps<T extends SelectValue = SelectValue, Multiple extends boolean = false> extends SelectProps<T, Multiple> {
27
+ type ClearableSelection<T> = {
28
+ clearable?: false;
29
+ onChange?: (value: NoInfer<T>) => void;
30
+ } | {
31
+ clearable: true;
32
+ onChange?: (value: NoInfer<T> | undefined) => void;
33
+ };
34
+ type SingleSelection<T> = {
35
+ multiple?: false;
36
+ value?: NoInfer<T>;
37
+ renderValue?: (value: NoInfer<T>) => ReactNode;
38
+ };
39
+ type MultipleSelection<T> = {
40
+ multiple: true;
41
+ value?: NoInfer<T>[];
42
+ renderValue?: (value: NoInfer<T>[]) => ReactNode;
43
+ onChange?: (value: NoInfer<T>[]) => void;
44
+ };
45
+ type SelectSelection<T> = (SingleSelection<T> & ClearableSelection<T>) | MultipleSelection<T>;
46
+ export type SelectProps<T extends SelectValue = SelectValue> = SelectCommonProps<T> & SelectSelection<T>;
47
+ export type AutocompleteProps<T extends SelectValue = SelectValue> = SelectProps<T> & {
37
48
  onSearchChange?: (search: string) => void;
38
49
  searchPlaceholder?: string;
39
50
  filterOptions?: boolean;
40
- }
41
- export interface SelectBaseProps<T extends SelectValue, Multiple extends boolean> extends AutocompleteProps<T, Multiple> {
51
+ };
52
+ export type SelectControlProps<T extends SelectValue> = AutocompleteProps<T> & {
42
53
  searchable?: boolean;
43
- }
44
- export interface SelectOptionProps<T> {
45
- item: SelectOption<T>;
46
- checked: boolean;
47
- multiple?: boolean;
48
- onSelect: (item: SelectOption<T>) => void;
49
- }
54
+ };
50
55
  export interface SelectOptionsProps<T> {
51
56
  id: string;
52
57
  "aria-label"?: string;
@@ -60,4 +65,11 @@ export interface SelectOptionsProps<T> {
60
65
  anchorRef: RefObject<HTMLDivElement | null>;
61
66
  onSelect: (item: SelectOption<T>) => void;
62
67
  }
68
+ export interface SelectOptionProps<T> {
69
+ item: SelectOption<T>;
70
+ checked: boolean;
71
+ multiple?: boolean;
72
+ onSelect: (item: SelectOption<T>) => void;
73
+ }
74
+ export {};
63
75
  //# sourceMappingURL=Select.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/Select.types.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/Select.types.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SelectControlProps, SelectValue } from "./Select.types.js";
2
+ export declare const SelectControl: <T extends SelectValue>({ value, onChange, renderValue, onSearchChange, filterOptions, isLoading, multiple, searchable, options, label, disabled, placeholder, searchPlaceholder, error, withArrow, clearable, className, size, variant, }: SelectControlProps<T>) => import("react").JSX.Element;
3
+ //# sourceMappingURL=SelectControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectControl.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/SelectControl.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAEV,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAO3B,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EAAE,oNAoBlD,kBAAkB,CAAC,CAAC,CAAC,gCA6IvB,CAAC"}
@@ -0,0 +1,150 @@
1
+ "use client";
2
+ import { jsx as o, jsxs as N } from "react/jsx-runtime";
3
+ import { useId as G, useRef as H, useState as k } from "react";
4
+ import { clsx as A } from "clsx";
5
+ import { ChevronDown as J, X as K } from "lucide-react";
6
+ import { useProvider as M } from "../../app/Provider.js";
7
+ import { SelectSearch as Q } from "./SelectSearch.js";
8
+ import { SelectOptions as U } from "./SelectOptions.js";
9
+ import { Field as v } from "../Field/Field.js";
10
+ import { Flex as V } from "../Flex/Flex.js";
11
+ import { IconButton as W } from "../IconButton/IconButton.js";
12
+ import { Popover as R } from "../Popover/Popover.js";
13
+ import r from "./Select.module.css.js";
14
+ const Y = { sm: 16, md: 20, lg: 24 }, z = { sm: "xs", md: "sm", lg: "md" }, de = ({
15
+ value: l,
16
+ onChange: u,
17
+ renderValue: j,
18
+ onSearchChange: E,
19
+ filterOptions: L = !1,
20
+ isLoading: Z = !1,
21
+ multiple: i,
22
+ searchable: x = !1,
23
+ options: O = [],
24
+ label: h,
25
+ disabled: c,
26
+ placeholder: p,
27
+ searchPlaceholder: _,
28
+ error: f,
29
+ withArrow: q = !0,
30
+ clearable: S,
31
+ className: B,
32
+ size: g = "md",
33
+ variant: D = "filled"
34
+ }) => {
35
+ const { messages: $ } = M(), a = G(), y = H(null), [s, T] = k(!1), [b, w] = k("");
36
+ let n = [];
37
+ i ? n = l ?? [] : l !== void 0 && (n = [l]);
38
+ const t = O.filter((e) => n.includes(e.value)), F = t.map(({ label: e, value: C }) => e ?? C).join(", ");
39
+ let m;
40
+ t.length && (i ? m = j?.(l ?? []) : l !== void 0 && (m = j?.(l)));
41
+ const d = (e) => {
42
+ T(e), w(""), E?.("");
43
+ }, P = {
44
+ id: a,
45
+ className: r.trigger,
46
+ disabled: c,
47
+ "aria-expanded": s && !c,
48
+ "aria-controls": `${a}-options`,
49
+ "aria-invalid": !!f,
50
+ "aria-describedby": f ? `${a}-error` : void 0
51
+ }, X = (e) => {
52
+ if (i) {
53
+ const C = n.includes(e.value) ? n.filter((I) => I !== e.value) : [...n.filter((I) => I !== void 0), e.value];
54
+ u?.(C);
55
+ } else
56
+ u?.(e.value);
57
+ d(!!i), y.current?.querySelector("input, button")?.focus();
58
+ };
59
+ return /* @__PURE__ */ o(R.Root, { open: s && !c, onOpenChange: d, children: /* @__PURE__ */ N(v.Root, { className: B, children: [
60
+ h && /* @__PURE__ */ o(v.Label, { htmlFor: a, label: h }),
61
+ /* @__PURE__ */ o(v.Control, { size: g, children: /* @__PURE__ */ o(R.Anchor, { children: /* @__PURE__ */ N(
62
+ V,
63
+ {
64
+ ref: y,
65
+ gap: "sm",
66
+ alignItems: "center",
67
+ justifyContent: "between",
68
+ className: A(r.select, r[D], {
69
+ [r.error]: f,
70
+ [r.disabled]: c
71
+ }),
72
+ children: [
73
+ x ? /* @__PURE__ */ o(
74
+ Q,
75
+ {
76
+ size: g,
77
+ value: s ? b : F,
78
+ displayValue: m,
79
+ placeholder: s ? _ ?? $.search : p,
80
+ "aria-label": h ?? p,
81
+ open: s && !c,
82
+ onClick: () => {
83
+ s || d(!0);
84
+ },
85
+ onChange: (e) => {
86
+ s || d(!0), w(e.target.value), E?.(e.target.value);
87
+ },
88
+ ...P
89
+ }
90
+ ) : /* @__PURE__ */ o(R.Trigger, { children: /* @__PURE__ */ N("button", { type: "button", "aria-haspopup": "listbox", ...P, children: [
91
+ !i && m == null && t[0]?.icon,
92
+ /* @__PURE__ */ o(
93
+ "span",
94
+ {
95
+ className: A(
96
+ r.value,
97
+ !t.length && r.placeholder
98
+ ),
99
+ children: t.length ? m ?? F : p
100
+ }
101
+ ),
102
+ q && !(t.length && S) && /* @__PURE__ */ o(
103
+ J,
104
+ {
105
+ size: Y[g],
106
+ className: r.arrow,
107
+ "aria-hidden": !0
108
+ }
109
+ )
110
+ ] }) }),
111
+ S && (x || t.length > 0) && /* @__PURE__ */ o(
112
+ W,
113
+ {
114
+ size: z[g],
115
+ color: "secondary",
116
+ className: t.length ? void 0 : "invisible",
117
+ disabled: c || !t.length,
118
+ "aria-hidden": !t.length || void 0,
119
+ "aria-label": $.clear,
120
+ onClick: () => {
121
+ i ? u?.([]) : S && u?.(void 0), d(!1);
122
+ },
123
+ children: /* @__PURE__ */ o(K, {})
124
+ }
125
+ ),
126
+ /* @__PURE__ */ o(
127
+ U,
128
+ {
129
+ id: `${a}-options`,
130
+ "aria-label": h ?? p,
131
+ options: O,
132
+ values: n,
133
+ search: b,
134
+ filterOptions: L,
135
+ isLoading: Z,
136
+ multiple: i,
137
+ searchable: x,
138
+ anchorRef: y,
139
+ onSelect: X
140
+ }
141
+ )
142
+ ]
143
+ }
144
+ ) }) }),
145
+ f && /* @__PURE__ */ o(v.Error, { id: `${a}-error`, error: f })
146
+ ] }) });
147
+ };
148
+ export {
149
+ de as SelectControl
150
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectOption.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/SelectOption.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGxE,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,wCAKjD,iBAAiB,CAAC,CAAC,CAAC,gCAoBtB,CAAC"}
1
+ {"version":3,"file":"SelectOption.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/SelectOption.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIxE,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,wCAKjD,iBAAiB,CAAC,CAAC,CAAC,gCAoBtB,CAAC"}
@@ -1,28 +1,29 @@
1
1
  "use client";
2
- import { jsx as a, jsxs as e } from "react/jsx-runtime";
3
- import { Checkbox as s } from "../Checkbox/Checkbox.js";
4
- import { Flex as i } from "../Flex/Flex.js";
5
- import c from "./Select.module.css.js";
6
- const x = ({
2
+ import { jsx as s, jsxs as e } from "react/jsx-runtime";
3
+ import { Checkbox as i } from "../Checkbox/Checkbox.js";
4
+ import { Flex as p } from "../Flex/Flex.js";
5
+ import c from "clsx";
6
+ import a from "./SelectOption.module.css.js";
7
+ const g = ({
7
8
  item: o,
8
9
  checked: r,
9
10
  multiple: n,
10
11
  onSelect: t
11
- }) => /* @__PURE__ */ a(
12
+ }) => /* @__PURE__ */ s(
12
13
  n ? "label" : "button",
13
14
  {
14
15
  role: "option",
15
16
  "aria-selected": r,
16
17
  type: n ? void 0 : "button",
17
- className: r ? c.active : void 0,
18
+ className: c(a.option, r && a.active),
18
19
  onClick: n ? void 0 : () => t(o),
19
- children: /* @__PURE__ */ e(i, { alignItems: "center", gap: "sm", children: [
20
- n && /* @__PURE__ */ a(s, { checked: r, onChange: () => t(o) }),
20
+ children: /* @__PURE__ */ e(p, { alignItems: "center", gap: "sm", children: [
21
+ n && /* @__PURE__ */ s(i, { checked: r, onChange: () => t(o) }),
21
22
  o.icon,
22
23
  o.label ?? String(o.value ?? "")
23
24
  ] })
24
25
  }
25
26
  );
26
27
  export {
27
- x as SelectOption
28
+ g as SelectOption
28
29
  };
@@ -0,0 +1,9 @@
1
+ const t = "_option_1jot6_2", o = "_active_1jot6_18", c = {
2
+ option: t,
3
+ active: o
4
+ };
5
+ export {
6
+ o as active,
7
+ c as default,
8
+ t as option
9
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectOptions.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/SelectOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzE,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EAAE,4GAWlD,kBAAkB,CAAC,CAAC,CAAC,gCAoDvB,CAAC"}
1
+ {"version":3,"file":"SelectOptions.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/SelectOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzE,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EAAE,4GAWlD,kBAAkB,CAAC,CAAC,CAAC,gCA2DvB,CAAC"}
@@ -6,7 +6,7 @@ import { Flex as S } from "../Flex/Flex.js";
6
6
  import { Popover as C } from "../Popover/Popover.js";
7
7
  import { Text as O } from "../Text/Text.js";
8
8
  import { SelectOption as h } from "./SelectOption.js";
9
- import y from "./Select.module.css.js";
9
+ import y from "./SelectOptions.module.css.js";
10
10
  const z = ({
11
11
  options: c,
12
12
  values: r,
@@ -0,0 +1,7 @@
1
+ const o = "_dropdown_3l0fl_2", d = {
2
+ dropdown: o
3
+ };
4
+ export {
5
+ d as default,
6
+ o as dropdown
7
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectSearch.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/SelectSearch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,eAAO,MAAM,YAAY,GAAI,iDAAiD,iBAAiB,gCAuB9F,CAAC"}
1
+ {"version":3,"file":"SelectSearch.d.ts","sourceRoot":"","sources":["../../../src/ui/Select/SelectSearch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,eAAO,MAAM,YAAY,GAAI,iDAM1B,iBAAiB,gCA4BnB,CAAC"}
@@ -1,11 +1,17 @@
1
- import { jsxs as c, jsx as l } from "react/jsx-runtime";
2
- import { clsx as i } from "clsx";
3
- import { Flex as m } from "../Flex/Flex.js";
1
+ import { jsxs as i, jsx as l } from "react/jsx-runtime";
2
+ import { clsx as c } from "clsx";
3
+ import { Flex as n } from "../Flex/Flex.js";
4
4
  import { Input as p } from "../Input/Input.js";
5
5
  import o from "./SelectSearch.module.css.js";
6
- const g = ({ id: e, open: r, displayValue: t, className: n, ...s }) => {
6
+ const g = ({
7
+ id: e,
8
+ open: r,
9
+ displayValue: t,
10
+ className: m,
11
+ ...s
12
+ }) => {
7
13
  const a = !r && t != null;
8
- return /* @__PURE__ */ c(m, { gap: "none", className: o.root, children: [
14
+ return /* @__PURE__ */ i(n, { gap: "none", className: o.root, children: [
9
15
  /* @__PURE__ */ l(
10
16
  p,
11
17
  {
@@ -16,11 +22,20 @@ const g = ({ id: e, open: r, displayValue: t, className: n, ...s }) => {
16
22
  autoComplete: "off",
17
23
  "aria-controls": `${e}-options`,
18
24
  "aria-autocomplete": "list",
19
- className: i(n, a && o.hiddenValue),
25
+ className: c(o.input, m, a && o.hiddenValue),
20
26
  ...s
21
27
  }
22
28
  ),
23
- a && /* @__PURE__ */ l(m, { alignItems: "center", gap: "none", className: o.value, "aria-hidden": "true", children: t })
29
+ a && /* @__PURE__ */ l(
30
+ n,
31
+ {
32
+ alignItems: "center",
33
+ gap: "none",
34
+ className: o.value,
35
+ "aria-hidden": "true",
36
+ children: t
37
+ }
38
+ )
24
39
  ] });
25
40
  };
26
41
  export {
@@ -1,11 +1,13 @@
1
- const e = "_root_1l343_1", l = "_hiddenValue_1l343_7", o = "_value_1l343_13", t = {
2
- root: e,
3
- hiddenValue: l,
4
- value: o
1
+ const c = "_root_29ccb_1", t = "_input_29ccb_7", o = "_hiddenValue_29ccb_14", _ = "_value_29ccb_20", e = {
2
+ root: c,
3
+ input: t,
4
+ hiddenValue: o,
5
+ value: _
5
6
  };
6
7
  export {
7
- t as default,
8
- l as hiddenValue,
9
- e as root,
10
- o as value
8
+ e as default,
9
+ o as hiddenValue,
10
+ t as input,
11
+ c as root,
12
+ _ as value
11
13
  };