@spear-ai/spectral 1.3.43 → 1.3.44

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 (93) hide show
  1. package/dist/.js +142 -110
  2. package/dist/Alert.js +17 -12
  3. package/dist/Avatar.d.ts +2 -0
  4. package/dist/Avatar.js +1 -0
  5. package/dist/Button.js +24 -30
  6. package/dist/Dialog/DialogBase.d.ts +5 -5
  7. package/dist/Dialog/DialogBase.js +87 -86
  8. package/dist/Icons/CheckCircleIcon.d.ts +3 -0
  9. package/dist/Icons/CheckCircleIcon.js +29 -0
  10. package/dist/Icons/CheckSquareIcon.d.ts +3 -0
  11. package/dist/Icons/CheckSquareIcon.js +29 -0
  12. package/dist/Icons/ChevronDownIcon.d.ts +3 -0
  13. package/dist/Icons/ChevronDownIcon.js +28 -0
  14. package/dist/Icons/ChevronUpIcon.d.ts +3 -0
  15. package/dist/Icons/ChevronUpIcon.js +28 -0
  16. package/dist/Icons/{CheckIcon.d.ts → ErrorIcon.d.ts} +2 -2
  17. package/dist/Icons/ErrorIcon.js +30 -0
  18. package/dist/Icons/LoaderIcon.d.ts +3 -0
  19. package/dist/Icons/LoaderIcon.js +53 -0
  20. package/dist/Icons/index.d.ts +6 -1
  21. package/dist/Icons.js +82 -72
  22. package/dist/Input/InputUtils.d.ts +15 -0
  23. package/dist/Input/InputUtils.js +54 -0
  24. package/dist/Input.d.ts +24 -0
  25. package/dist/Input.js +170 -0
  26. package/dist/MultiSelect/MultiSelectBase.d.ts +34 -0
  27. package/dist/MultiSelect/MultiSelectBase.js +321 -0
  28. package/dist/MultiSelect/MutiSelect.d.ts +15 -0
  29. package/dist/MultiSelect/MutiSelect.js +30 -0
  30. package/dist/Popover.d.ts +1 -1
  31. package/dist/Popover.js +61 -59
  32. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +18 -17
  33. package/dist/Select/SelectBase.d.ts +26 -0
  34. package/dist/Select/SelectBase.js +233 -0
  35. package/dist/Select.d.ts +50 -0
  36. package/dist/Select.js +136 -0
  37. package/dist/Textarea/TextareaUtils.d.ts +19 -0
  38. package/dist/Textarea/TextareaUtils.js +54 -0
  39. package/dist/Textarea.d.ts +17 -0
  40. package/dist/Textarea.js +160 -0
  41. package/dist/chevron-down-UbkgS76q.js +19 -0
  42. package/dist/components/Avatar/Avatar.d.ts +2 -0
  43. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  44. package/dist/components/Dialog/DialogBase.d.ts +5 -5
  45. package/dist/components/Dialog/DialogBase.d.ts.map +1 -1
  46. package/dist/components/Icons/CheckCircleIcon.d.ts +3 -0
  47. package/dist/components/Icons/CheckCircleIcon.d.ts.map +1 -0
  48. package/dist/components/Icons/CheckSquareIcon.d.ts +3 -0
  49. package/dist/components/Icons/CheckSquareIcon.d.ts.map +1 -0
  50. package/dist/components/Icons/ChevronDownIcon.d.ts +3 -0
  51. package/dist/components/Icons/ChevronDownIcon.d.ts.map +1 -0
  52. package/dist/components/Icons/ChevronUpIcon.d.ts +3 -0
  53. package/dist/components/Icons/ChevronUpIcon.d.ts.map +1 -0
  54. package/dist/components/Icons/{CheckIcon.d.ts → ErrorIcon.d.ts} +2 -2
  55. package/dist/components/Icons/ErrorIcon.d.ts.map +1 -0
  56. package/dist/components/Icons/LoaderIcon.d.ts +3 -0
  57. package/dist/components/Icons/LoaderIcon.d.ts.map +1 -0
  58. package/dist/components/Icons/index.d.ts +6 -1
  59. package/dist/components/Icons/index.d.ts.map +1 -1
  60. package/dist/components/Input/Input.d.ts +24 -0
  61. package/dist/components/Input/Input.d.ts.map +1 -0
  62. package/dist/components/Input/InputUtils.d.ts +15 -0
  63. package/dist/components/Input/InputUtils.d.ts.map +1 -0
  64. package/dist/components/MultiSelect/MultiSelectBase.d.ts +34 -0
  65. package/dist/components/MultiSelect/MultiSelectBase.d.ts.map +1 -0
  66. package/dist/components/MultiSelect/MutiSelect.d.ts +15 -0
  67. package/dist/components/MultiSelect/MutiSelect.d.ts.map +1 -0
  68. package/dist/components/Popover/Popover.d.ts +1 -1
  69. package/dist/components/Popover/Popover.d.ts.map +1 -1
  70. package/dist/components/RadioButtonGroup/RadioButtonGroupBase.d.ts.map +1 -1
  71. package/dist/components/Select/Select.d.ts +50 -0
  72. package/dist/components/Select/Select.d.ts.map +1 -0
  73. package/dist/components/Select/SelectBase.d.ts +26 -0
  74. package/dist/components/Select/SelectBase.d.ts.map +1 -0
  75. package/dist/components/Textarea/Textarea.d.ts +17 -0
  76. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  77. package/dist/components/Textarea/TextareaUtils.d.ts +19 -0
  78. package/dist/components/Textarea/TextareaUtils.d.ts.map +1 -0
  79. package/dist/features/LabelingTools.js +8 -3
  80. package/dist/features/SensorMetadata.js +12 -7
  81. package/dist/features/SettingsPopover.js +18 -13
  82. package/dist/index.d.ts +2 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/loader-circle-CvdzOiQ_.js +11 -0
  85. package/dist/styles/base-colors.css +33 -33
  86. package/dist/styles/main.css +1 -1
  87. package/dist/utils/formFieldUtils.d.ts +70 -0
  88. package/dist/utils/formFieldUtils.d.ts.map +1 -0
  89. package/dist/utils/formFieldUtils.js +178 -0
  90. package/dist/x-BBpi7a_7.js +14 -0
  91. package/package.json +1 -1
  92. package/dist/Icons/CheckIcon.js +0 -29
  93. package/dist/components/Icons/CheckIcon.d.ts.map +0 -1
package/dist/Icons.js CHANGED
@@ -1,78 +1,88 @@
1
1
  import { AnnotationsIcon as e } from "./Icons/AnnotationsIcon.js";
2
2
  import { CalendarIcon as t } from "./Icons/CalendarIcon.js";
3
- import { CheckIcon as m } from "./Icons/CheckIcon.js";
4
- import { ClockIcon as p } from "./Icons/ClockIcon.js";
5
- import { CloseCircleIcon as x } from "./Icons/CloseCircleIcon.js";
6
- import { CloseIcon as a } from "./Icons/CloseIcon.js";
7
- import { DashboardIcon as i } from "./Icons/DashboardIcon.js";
8
- import { DeleteIcon as L } from "./Icons/DeleteIcon.js";
9
- import { DurationIcon as y } from "./Icons/DurationIcon.js";
10
- import { EraserIcon as u } from "./Icons/EraserIcon.js";
11
- import { EyeClosedIcon as T } from "./Icons/EyeClosedIcon.js";
12
- import { EyeClosedIcon2 as D } from "./Icons/EyeClosedIcon2.js";
13
- import { EyeOpenIcon as Z } from "./Icons/EyeOpenIcon.js";
14
- import { GoToFirstIcon as k } from "./Icons/GoToFirstIcon.js";
15
- import { GoToLastIcon as G } from "./Icons/GoToLastIcon.js";
16
- import { HarmonicCursorsIcon as S } from "./Icons/HarmonicCursorsIcon.js";
17
- import { InfoIcon as v } from "./Icons/InfoIcon.js";
18
- import { LabelIcon as F } from "./Icons/LabelIcon.js";
19
- import { LassoIcon as M } from "./Icons/LassoIcon.js";
20
- import { LineToolIcon as V } from "./Icons/LineToolIcon.js";
21
- import { LiveViewIcon as X } from "./Icons/LiveViewIcon.js";
22
- import { LocationIcon as j } from "./Icons/LocationIcon.js";
23
- import { LogoutIcon as z } from "./Icons/LogoutIcon.js";
24
- import { MetadataIcon as J } from "./Icons/MetadataIcon.js";
25
- import { OntologyIcon as N } from "./Icons/OntologyIcon.js";
26
- import { PanelIcon as _ } from "./Icons/PanelIcon.js";
27
- import { PlayIcon as oo } from "./Icons/PlayIcon.js";
28
- import { PlusIcon as eo } from "./Icons/PlusIcon.js";
29
- import { ResetIcon as to } from "./Icons/ResetIcon.js";
30
- import { ScissorsIcon as mo } from "./Icons/ScissorsIcon.js";
31
- import { SettingsIcon as po } from "./Icons/SettingsIcon.js";
32
- import { TrashIcon as xo } from "./Icons/TrashIcon.js";
33
- import { UndoIcon as ao } from "./Icons/UndoIcon.js";
34
- import { UserIcon as io } from "./Icons/UserIcon.js";
35
- import { WarningIcon as Lo } from "./Icons/WarningIcon.js";
36
- import { ZoomAllIcon as go } from "./Icons/ZoomAllIcon.js";
37
- import { ZoomXIcon as Eo } from "./Icons/ZoomXIcon.js";
38
- import { ZoomYIcon as ho } from "./Icons/ZoomYIcon.js";
3
+ import { CheckCircleIcon as m } from "./Icons/CheckCircleIcon.js";
4
+ import { CheckSquareIcon as f } from "./Icons/CheckSquareIcon.js";
5
+ import { ChevronDownIcon as x } from "./Icons/ChevronDownIcon.js";
6
+ import { ChevronUpIcon as s } from "./Icons/ChevronUpIcon.js";
7
+ import { ClockIcon as i } from "./Icons/ClockIcon.js";
8
+ import { CloseCircleIcon as L } from "./Icons/CloseCircleIcon.js";
9
+ import { CloseIcon as h } from "./Icons/CloseIcon.js";
10
+ import { DashboardIcon as y } from "./Icons/DashboardIcon.js";
11
+ import { DeleteIcon as g } from "./Icons/DeleteIcon.js";
12
+ import { DurationIcon as T } from "./Icons/DurationIcon.js";
13
+ import { EraserIcon as v } from "./Icons/EraserIcon.js";
14
+ import { ErrorIcon as S } from "./Icons/ErrorIcon.js";
15
+ import { EyeClosedIcon as Z } from "./Icons/EyeClosedIcon.js";
16
+ import { EyeClosedIcon2 as w } from "./Icons/EyeClosedIcon2.js";
17
+ import { EyeOpenIcon as G } from "./Icons/EyeOpenIcon.js";
18
+ import { GoToFirstIcon as q } from "./Icons/GoToFirstIcon.js";
19
+ import { GoToLastIcon as H } from "./Icons/GoToLastIcon.js";
20
+ import { HarmonicCursorsIcon as R } from "./Icons/HarmonicCursorsIcon.js";
21
+ import { InfoIcon as W } from "./Icons/InfoIcon.js";
22
+ import { LabelIcon as Y } from "./Icons/LabelIcon.js";
23
+ import { LassoIcon as z } from "./Icons/LassoIcon.js";
24
+ import { LineToolIcon as J } from "./Icons/LineToolIcon.js";
25
+ import { LiveViewIcon as N } from "./Icons/LiveViewIcon.js";
26
+ import { LoaderIcon as _ } from "./Icons/LoaderIcon.js";
27
+ import { LocationIcon as oo } from "./Icons/LocationIcon.js";
28
+ import { LogoutIcon as eo } from "./Icons/LogoutIcon.js";
29
+ import { MetadataIcon as to } from "./Icons/MetadataIcon.js";
30
+ import { OntologyIcon as mo } from "./Icons/OntologyIcon.js";
31
+ import { PanelIcon as fo } from "./Icons/PanelIcon.js";
32
+ import { PlayIcon as xo } from "./Icons/PlayIcon.js";
33
+ import { PlusIcon as so } from "./Icons/PlusIcon.js";
34
+ import { ResetIcon as io } from "./Icons/ResetIcon.js";
35
+ import { ScissorsIcon as Lo } from "./Icons/ScissorsIcon.js";
36
+ import { SettingsIcon as uo } from "./Icons/SettingsIcon.js";
37
+ import { TrashIcon as Eo } from "./Icons/TrashIcon.js";
38
+ import { UndoIcon as Do } from "./Icons/UndoIcon.js";
39
+ import { UserIcon as ko } from "./Icons/UserIcon.js";
40
+ import { WarningIcon as Po } from "./Icons/WarningIcon.js";
41
+ import { ZoomAllIcon as Uo } from "./Icons/ZoomAllIcon.js";
42
+ import { ZoomXIcon as bo } from "./Icons/ZoomXIcon.js";
43
+ import { ZoomYIcon as Ao } from "./Icons/ZoomYIcon.js";
39
44
  export {
40
45
  e as AnnotationsIcon,
41
46
  t as CalendarIcon,
42
- m as CheckIcon,
43
- p as ClockIcon,
44
- x as CloseCircleIcon,
45
- a as CloseIcon,
46
- i as DashboardIcon,
47
- L as DeleteIcon,
48
- y as DurationIcon,
49
- u as EraserIcon,
50
- T as EyeClosedIcon,
51
- D as EyeClosedIcon2,
52
- Z as EyeOpenIcon,
53
- k as GoToFirstIcon,
54
- G as GoToLastIcon,
55
- S as HarmonicCursorsIcon,
56
- v as InfoIcon,
57
- F as LabelIcon,
58
- M as LassoIcon,
59
- V as LineToolIcon,
60
- X as LiveViewIcon,
61
- j as LocationIcon,
62
- z as LogoutIcon,
63
- J as MetadataIcon,
64
- N as OntologyIcon,
65
- _ as PanelIcon,
66
- oo as PlayIcon,
67
- eo as PlusIcon,
68
- to as ResetIcon,
69
- mo as ScissorsIcon,
70
- po as SettingsIcon,
71
- xo as TrashIcon,
72
- ao as UndoIcon,
73
- io as UserIcon,
74
- Lo as WarningIcon,
75
- go as ZoomAllIcon,
76
- Eo as ZoomXIcon,
77
- ho as ZoomYIcon
47
+ m as CheckCircleIcon,
48
+ f as CheckSquareIcon,
49
+ x as ChevronDownIcon,
50
+ s as ChevronUpIcon,
51
+ i as ClockIcon,
52
+ L as CloseCircleIcon,
53
+ h as CloseIcon,
54
+ y as DashboardIcon,
55
+ g as DeleteIcon,
56
+ T as DurationIcon,
57
+ v as EraserIcon,
58
+ S as ErrorIcon,
59
+ Z as EyeClosedIcon,
60
+ w as EyeClosedIcon2,
61
+ G as EyeOpenIcon,
62
+ q as GoToFirstIcon,
63
+ H as GoToLastIcon,
64
+ R as HarmonicCursorsIcon,
65
+ W as InfoIcon,
66
+ Y as LabelIcon,
67
+ z as LassoIcon,
68
+ J as LineToolIcon,
69
+ N as LiveViewIcon,
70
+ _ as LoaderIcon,
71
+ oo as LocationIcon,
72
+ eo as LogoutIcon,
73
+ to as MetadataIcon,
74
+ mo as OntologyIcon,
75
+ fo as PanelIcon,
76
+ xo as PlayIcon,
77
+ so as PlusIcon,
78
+ io as ResetIcon,
79
+ Lo as ScissorsIcon,
80
+ uo as SettingsIcon,
81
+ Eo as TrashIcon,
82
+ Do as UndoIcon,
83
+ ko as UserIcon,
84
+ Po as WarningIcon,
85
+ Uo as ZoomAllIcon,
86
+ bo as ZoomXIcon,
87
+ Ao as ZoomYIcon
78
88
  };
@@ -0,0 +1,15 @@
1
+ import { RefObject } from 'react';
2
+ export declare const usePrefixWidth: (prefix?: string) => {
3
+ prefixWidth: number;
4
+ prefixRef: RefObject<HTMLSpanElement | null>;
5
+ };
6
+ export declare const usePasswordVisibility: () => {
7
+ isVisible: boolean;
8
+ toggleVisibility: () => void;
9
+ inputType: "text" | "password";
10
+ };
11
+ export declare const useClearOnFocus: (clearOnFocus: boolean, onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void) => {
12
+ hasBeenFocused: boolean;
13
+ handleFocus: (e: React.FocusEvent<HTMLInputElement>, originalOnFocus?: (e: React.FocusEvent<HTMLInputElement>) => void) => void;
14
+ };
15
+ //# sourceMappingURL=InputUtils.d.ts.map
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { useState as u, useCallback as f, useRef as l, useLayoutEffect as d } from "react";
3
+ const h = (t) => {
4
+ const [r, s] = u(0), e = l(null);
5
+ return d(() => {
6
+ if (t && e.current) {
7
+ const n = () => {
8
+ e.current && s(e.current.offsetWidth + 2);
9
+ };
10
+ n();
11
+ const i = new ResizeObserver(n);
12
+ return i.observe(e.current), () => {
13
+ i.disconnect();
14
+ };
15
+ } else
16
+ s(0);
17
+ }, [t]), { prefixWidth: r, prefixRef: e };
18
+ }, p = () => {
19
+ const [t, r] = u(!1), s = f(() => {
20
+ r((e) => !e);
21
+ }, []);
22
+ return {
23
+ isVisible: t,
24
+ toggleVisibility: s,
25
+ inputType: t ? "text" : "password"
26
+ };
27
+ }, v = (t, r) => {
28
+ const [s, e] = u(!1), n = f(
29
+ (i, o) => {
30
+ if (t && !s) {
31
+ const c = i.target;
32
+ if (c.value = "", e(!0), r) {
33
+ const a = {
34
+ ...i,
35
+ target: c,
36
+ currentTarget: c
37
+ };
38
+ r(a);
39
+ }
40
+ }
41
+ o && o(i);
42
+ },
43
+ [t, s, r]
44
+ );
45
+ return {
46
+ hasBeenFocused: s,
47
+ handleFocus: n
48
+ };
49
+ };
50
+ export {
51
+ v as useClearOnFocus,
52
+ p as usePasswordVisibility,
53
+ h as usePrefixWidth
54
+ };
@@ -0,0 +1,24 @@
1
+ import { BaseFormFieldProps } from '../../utils/formFieldUtils';
2
+ import { FocusEvent, InputHTMLAttributes } from 'react';
3
+ export type InputType = 'text' | 'email' | 'url' | 'tel' | 'password' | 'number' | 'date' | 'datetime-local';
4
+ export type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'id'> & BaseFormFieldProps & {
5
+ className?: string;
6
+ clearOnFocus?: boolean;
7
+ onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
8
+ onFocus?: (e: FocusEvent<HTMLInputElement>) => void;
9
+ prefix?: string;
10
+ showClearButton?: boolean;
11
+ type?: InputType;
12
+ value?: string;
13
+ };
14
+ export declare const Input: import('react').ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "id"> & BaseFormFieldProps & {
15
+ className?: string;
16
+ clearOnFocus?: boolean;
17
+ onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
18
+ onFocus?: (e: FocusEvent<HTMLInputElement>) => void;
19
+ prefix?: string;
20
+ showClearButton?: boolean;
21
+ type?: InputType;
22
+ value?: string;
23
+ } & import('react').RefAttributes<HTMLInputElement>>;
24
+ //# sourceMappingURL=Input.d.ts.map
package/dist/Input.js ADDED
@@ -0,0 +1,170 @@
1
+ "use client";
2
+ import "./styles/main.css";
3
+ import { jsx as t, jsxs as I } from "react/jsx-runtime";
4
+ import { usePasswordVisibility as Q, usePrefixWidth as U, useClearOnFocus as X } from "./Input/InputUtils.js";
5
+ import "./Icons/AnnotationsIcon.js";
6
+ import "./Icons/CalendarIcon.js";
7
+ import { CheckCircleIcon as Y } from "./Icons/CheckCircleIcon.js";
8
+ import "./Icons/CheckSquareIcon.js";
9
+ import "./Icons/ChevronDownIcon.js";
10
+ import "./Icons/ChevronUpIcon.js";
11
+ import "./Icons/ClockIcon.js";
12
+ import { CloseCircleIcon as Z } from "./Icons/CloseCircleIcon.js";
13
+ import "./Icons/CloseIcon.js";
14
+ import "./Icons/DashboardIcon.js";
15
+ import "./Icons/DeleteIcon.js";
16
+ import "./Icons/DurationIcon.js";
17
+ import "./Icons/EraserIcon.js";
18
+ import { ErrorIcon as _ } from "./Icons/ErrorIcon.js";
19
+ import { EyeClosedIcon as q } from "./Icons/EyeClosedIcon.js";
20
+ import "./Icons/EyeClosedIcon2.js";
21
+ import { EyeOpenIcon as tt } from "./Icons/EyeOpenIcon.js";
22
+ import "./Icons/GoToFirstIcon.js";
23
+ import "./Icons/GoToLastIcon.js";
24
+ import "./Icons/HarmonicCursorsIcon.js";
25
+ import "./Icons/InfoIcon.js";
26
+ import "./Icons/LabelIcon.js";
27
+ import "./Icons/LassoIcon.js";
28
+ import "./Icons/LineToolIcon.js";
29
+ import "./Icons/LiveViewIcon.js";
30
+ import { LoaderIcon as et } from "./Icons/LoaderIcon.js";
31
+ import "./Icons/LocationIcon.js";
32
+ import "./Icons/LogoutIcon.js";
33
+ import "./Icons/MetadataIcon.js";
34
+ import "./Icons/OntologyIcon.js";
35
+ import "./Icons/PanelIcon.js";
36
+ import "./Icons/PlayIcon.js";
37
+ import "./Icons/PlusIcon.js";
38
+ import "./Icons/ResetIcon.js";
39
+ import "./Icons/ScissorsIcon.js";
40
+ import "./Icons/SettingsIcon.js";
41
+ import "./Icons/TrashIcon.js";
42
+ import "./Icons/UndoIcon.js";
43
+ import "./Icons/UserIcon.js";
44
+ import "./Icons/WarningIcon.js";
45
+ import "./Icons/ZoomAllIcon.js";
46
+ import "./Icons/ZoomXIcon.js";
47
+ import "./Icons/ZoomYIcon.js";
48
+ import { useFormFieldId as rt, getAriaProps as ot, getInputClasses as it, useFormFieldState as st, getFormFieldCSSProperties as at, ErrorMessage as nt } from "./utils/formFieldUtils.js";
49
+ import { c as N } from "./twUtils-CRiPKpXj.js";
50
+ import { forwardRef as pt, useRef as lt, useCallback as m } from "react";
51
+ const ct = (p) => ({
52
+ email: "email",
53
+ password: "current-password",
54
+ tel: "tel",
55
+ url: "url",
56
+ text: "off",
57
+ number: "off",
58
+ date: "off",
59
+ "datetime-local": "off"
60
+ })[p] || "off", mt = pt(
61
+ ({
62
+ className: p,
63
+ clearOnFocus: d = !1,
64
+ disabled: F,
65
+ errorMessage: u,
66
+ id: E,
67
+ label: i,
68
+ name: f,
69
+ onBlur: h,
70
+ onChange: b,
71
+ onFocus: C,
72
+ prefix: a,
73
+ showClearButton: z = !1,
74
+ state: e = "default",
75
+ type: n = "text",
76
+ value: g = "",
77
+ required: x,
78
+ "aria-label": P,
79
+ "aria-describedby": R,
80
+ ...$
81
+ }, k) => {
82
+ const l = rt(E, f), w = `${l}-error`, { isDisabled: S, isLoading: V, isInvalid: M } = st(F, e), O = ot(e, x, w, R), j = lt(null), r = k || j, { isVisible: c, toggleVisibility: A, inputType: B } = Q(), { prefixWidth: H, prefixRef: L } = U(a), { handleFocus: y } = X(d, b), W = m(
83
+ (o) => {
84
+ h?.(o);
85
+ },
86
+ [h]
87
+ ), D = m(
88
+ (o) => {
89
+ y(o, C);
90
+ },
91
+ [y, C]
92
+ ), T = m(() => {
93
+ r.current && (r.current.value = "", r.current.dispatchEvent(new Event("input", { bubbles: !0 })), r.current.focus());
94
+ }, [r]), v = z && g.length > 0, G = () => {
95
+ const o = "absolute right-4 top-1/2 -translate-y-1/2 text-input-icon hover:text-input-icon--hover focus:outline-none cursor-pointer", s = {
96
+ password: () => /* @__PURE__ */ t(
97
+ "button",
98
+ {
99
+ className: o,
100
+ type: "button",
101
+ onClick: A,
102
+ "aria-label": c ? `Hide ${i}` : `Show ${i}`,
103
+ "aria-pressed": c,
104
+ "aria-controls": l,
105
+ "data-testid": "input-password-toggle",
106
+ children: c ? /* @__PURE__ */ t(q, { size: 22 }) : /* @__PURE__ */ t(tt, { size: 22 })
107
+ }
108
+ ),
109
+ clear: () => /* @__PURE__ */ t(
110
+ "button",
111
+ {
112
+ className: o,
113
+ type: "button",
114
+ onClick: T,
115
+ "aria-label": `Clear ${i}`,
116
+ "data-testid": "input-clear-button",
117
+ children: /* @__PURE__ */ t(Z, { size: 24 })
118
+ }
119
+ ),
120
+ loading: () => /* @__PURE__ */ t("div", { className: "absolute top-1/2 right-4 -translate-y-1/2", "data-testid": "input-loading-icon", children: /* @__PURE__ */ t(et, { size: 24 }) }),
121
+ error: () => /* @__PURE__ */ t("div", { className: "text-danger-400 absolute top-1/2 right-4 -translate-y-1/2", "data-testid": "input-error-icon", children: /* @__PURE__ */ t(_, { size: 24 }) }),
122
+ success: () => /* @__PURE__ */ t("div", { className: "text-success-400 absolute top-1/2 right-4 -translate-y-1/2", "data-testid": "input-success-icon", children: /* @__PURE__ */ t(Y, { size: 24 }) })
123
+ };
124
+ return n === "password" ? s.password() : v ? s.clear() : V ? s.loading() : e === "success" ? s.success() : e === "error" ? s.error() : null;
125
+ }, J = N(
126
+ it(e, p),
127
+ "[text-indent:var(--prefix-width)]",
128
+ v && "pr-10"
129
+ ), K = N(
130
+ "pointer-events-none absolute inset-y-0 left-4 flex items-center text-base text-input-text-prefix opacity-100 peer-disabled:opacity-50"
131
+ );
132
+ return /* @__PURE__ */ t("div", { className: "w-full space-y-1.5", "data-testid": "input-root", children: /* @__PURE__ */ I("div", { className: "relative", "data-testid": "input-wrapper", children: [
133
+ /* @__PURE__ */ I("div", { className: "relative", children: [
134
+ a && /* @__PURE__ */ t("span", { ref: L, className: K, children: a }),
135
+ /* @__PURE__ */ t(
136
+ "input",
137
+ {
138
+ id: l,
139
+ name: f,
140
+ ref: r,
141
+ type: n === "password" ? B : n,
142
+ value: g,
143
+ disabled: S,
144
+ required: x,
145
+ autoComplete: ct(n),
146
+ className: J,
147
+ onChange: b,
148
+ onFocus: D,
149
+ onBlur: W,
150
+ placeholder: i,
151
+ ...O,
152
+ ...$,
153
+ "data-testid": "input-input",
154
+ "data-state": e,
155
+ style: at({
156
+ "--prefix-width": a ? `${H}px` : "0px"
157
+ }),
158
+ "aria-label": P || i
159
+ }
160
+ ),
161
+ G()
162
+ ] }),
163
+ M && u && /* @__PURE__ */ t(nt, { id: w, message: u })
164
+ ] }) });
165
+ }
166
+ );
167
+ mt.displayName = "Input";
168
+ export {
169
+ mt as Input
170
+ };
@@ -0,0 +1,34 @@
1
+ import { ButtonHTMLAttributes } from 'react';
2
+ export type MultiSelectState = 'default' | 'error' | 'disabled' | 'loading';
3
+ export interface MultiSelectOption {
4
+ label: string;
5
+ value: string;
6
+ group?: string;
7
+ disabled?: boolean;
8
+ }
9
+ export interface MultiSelectBaseProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onChange'> {
10
+ value: string[];
11
+ onChange: (value: string[]) => void;
12
+ options: MultiSelectOption[];
13
+ placeholder?: string;
14
+ maxCount?: number;
15
+ state?: MultiSelectState;
16
+ errorMessage?: string;
17
+ emptyMessage?: string;
18
+ loadingMessage?: string;
19
+ searchPlaceholder?: string;
20
+ selectAllLabel?: string;
21
+ clearAllLabel?: string;
22
+ sortAlphabetically?: boolean;
23
+ showSelectAll?: boolean;
24
+ showClearAll?: boolean;
25
+ showSearch?: boolean;
26
+ closeOnSelect?: boolean;
27
+ name?: string;
28
+ id?: string;
29
+ label?: string;
30
+ 'aria-label'?: string;
31
+ 'aria-describedby'?: string;
32
+ }
33
+ export declare const MultiSelectBase: import('react').ForwardRefExoticComponent<MultiSelectBaseProps & import('react').RefAttributes<HTMLButtonElement>>;
34
+ //# sourceMappingURL=MultiSelectBase.d.ts.map