@vkzstudio/muza-ui 1.0.28 → 1.0.30

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 (30) hide show
  1. package/dist/components/Calendar/Calendar.d.ts +3 -1
  2. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  3. package/dist/components/Calendar/Calendar.js +129 -120
  4. package/dist/components/Checkbox/Checkbox.d.ts +4 -0
  5. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  6. package/dist/components/Checkbox/Checkbox.js +46 -41
  7. package/dist/components/Checkbox/Checkbox.stories.d.ts +3 -0
  8. package/dist/components/Checkbox/Checkbox.stories.d.ts.map +1 -1
  9. package/dist/components/DatePicker/DatePicker.d.ts +2 -0
  10. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  11. package/dist/components/DatePicker/DatePicker.js +51 -49
  12. package/dist/components/DatePicker/DatePicker.stories.d.ts +1 -0
  13. package/dist/components/DatePicker/DatePicker.stories.d.ts.map +1 -1
  14. package/dist/components/FileUpload/FileItem.d.ts.map +1 -1
  15. package/dist/components/FileUpload/FileItem.js +79 -55
  16. package/dist/components/MultiSelect/MultiSelect.d.ts +2 -0
  17. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  18. package/dist/components/MultiSelect/MultiSelect.js +34 -32
  19. package/dist/components/Radio/Radio.d.ts +3 -1
  20. package/dist/components/Radio/Radio.d.ts.map +1 -1
  21. package/dist/components/Radio/Radio.js +10 -9
  22. package/dist/components/Radio/Radio.stories.d.ts +1 -0
  23. package/dist/components/Radio/Radio.stories.d.ts.map +1 -1
  24. package/dist/components/TextEditor/EditorToolbar.js +35 -35
  25. package/dist/components/TextEditor/TextEditor.js +10 -10
  26. package/dist/components/Textarea/Textarea.js +10 -10
  27. package/dist/muza-ui.css +1 -1
  28. package/dist/styles/token-colors.css +1 -10
  29. package/dist/styles/token-sizes.css +20 -0
  30. package/package.json +164 -164
@@ -1,22 +1,22 @@
1
- import { jsx as n, jsxs as tt } from "react/jsx-runtime";
2
- import { forwardRef as rt, useState as k, useRef as E, useEffect as ot } from "react";
3
- import { useIsDesktop as et } from "../../hooks/use-is-desktop.js";
4
- import { useIsMobile as it } from "../../hooks/use-is-mobile.js";
5
- import { Popover as ft, PopoverTrigger as pt, PopoverContent as ct } from "../Popover/Popover.js";
6
- import { getDateRange as nt } from "./utils/getDateRange.js";
7
- import { resolveOneDayRange as dt } from "./utils/resolveOneDayRange.js";
8
- import { Input as ut } from "../Input/Input.js";
9
- import { formatDate as bt } from "../Calendar/utils/formatDate.js";
10
- import { formatDateRange as st } from "../Calendar/utils/formatDateRange.js";
1
+ import { jsx as n, jsxs as rt } from "react/jsx-runtime";
2
+ import { forwardRef as ot, useState as k, useRef as E, useEffect as et } from "react";
3
+ import { useIsDesktop as it } from "../../hooks/use-is-desktop.js";
4
+ import { useIsMobile as ft } from "../../hooks/use-is-mobile.js";
5
+ import { Popover as pt, PopoverTrigger as ct, PopoverContent as nt } from "../Popover/Popover.js";
6
+ import { getDateRange as dt } from "./utils/getDateRange.js";
7
+ import { resolveOneDayRange as ut } from "./utils/resolveOneDayRange.js";
8
+ import { Input as bt } from "../Input/Input.js";
9
+ import { formatDate as st } from "../Calendar/utils/formatDate.js";
10
+ import { formatDateRange as xt } from "../Calendar/utils/formatDateRange.js";
11
11
  import { Calendar as Y } from "../Calendar/Calendar.js";
12
12
  import { cn as l } from "../../utils/cn.js";
13
- import { typographyVariants as xt } from "../Typography/Typography.js";
14
- import { CalendarBold as lt } from "@solar-icons/react-perf";
15
- const mt = rt(
13
+ import { typographyVariants as lt } from "../Typography/Typography.js";
14
+ import { CalendarBold as yt } from "@solar-icons/react-perf";
15
+ const vt = ot(
16
16
  ({
17
17
  alignCalendar: G,
18
- mode: m,
19
- allowedPresets: y,
18
+ mode: y,
19
+ allowedPresets: v,
20
20
  dateFormatter: H,
21
21
  value: e,
22
22
  defaultValue: b,
@@ -33,8 +33,8 @@ const mt = rt(
33
33
  side: U = "bottom",
34
34
  renderCustomTrigger: S,
35
35
  immediateCommit: f,
36
- allowOneDayRange: I,
37
- shouldResetToDefaultValue: M,
36
+ allowOneDayRange: B,
37
+ shouldResetToDefaultValue: I,
38
38
  required: x,
39
39
  disableRequiredAsterisk: W,
40
40
  numberOfMonths: X,
@@ -44,25 +44,26 @@ const mt = rt(
44
44
  showOutsideDays: V,
45
45
  hideBottomText: q,
46
46
  hideResetButton: w,
47
- ...O
48
- }, g) => {
49
- const a = et(), N = it(), [h, P] = k(!1), F = typeof s == "boolean" ? s : h, [j, p] = k(
47
+ hideBottomBar: O,
48
+ ...g
49
+ }, a) => {
50
+ const N = it(), h = ft(), [C, M] = k(!1), P = typeof s == "boolean" ? s : C, [F, p] = k(
50
51
  e ?? b
51
- ), [i, u] = k(e ?? b), z = E(!1), v = E(
52
+ ), [i, u] = k(e ?? b), j = E(!1), m = E(
52
53
  e ?? b
53
54
  );
54
- ot(() => {
55
- if (!z.current) {
56
- z.current = !0;
55
+ et(() => {
56
+ if (!j.current) {
57
+ j.current = !0;
57
58
  return;
58
59
  }
59
- p(e), u(e), F || (v.current = e);
60
+ p(e), u(e), P || (m.current = e);
60
61
  }, [e]);
61
- const C = y == null ? void 0 : y.map((t) => /* @__PURE__ */ n(
62
+ const tt = v == null ? void 0 : v.map((t) => /* @__PURE__ */ n(
62
63
  "button",
63
64
  {
64
65
  className: l(
65
- xt({
66
+ lt({
66
67
  variant: "cta",
67
68
  weight: "medium",
68
69
  size: "sm",
@@ -75,40 +76,41 @@ const mt = rt(
75
76
  o == null ? void 0 : o.leftPanelButton
76
77
  ),
77
78
  onClick: () => {
78
- const c = nt(t.type);
79
+ const c = dt(t.type);
79
80
  u(c), f && (p(c), r == null || r(c));
80
81
  },
81
82
  children: t.name
82
83
  },
83
84
  t.type
84
- )), D = H ?? (m === "single" ? bt : st), B = f ? e !== void 0 ? e : i : j, A = {
85
- ...O,
86
- numberOfMonths: X ?? (a ? 2 : 1),
85
+ )), D = H ?? (y === "single" ? st : xt), z = f ? e !== void 0 ? e : i : F, A = {
86
+ ...g,
87
+ numberOfMonths: X ?? (N ? 2 : 1),
87
88
  hideNavigation: Z,
88
89
  hideCaption: _,
89
90
  hideWeekdays: $,
90
91
  showOutsideDays: V,
91
92
  hideBottomText: q,
92
93
  hideResetButton: w,
94
+ hideBottomBar: f ? O : void 0,
93
95
  required: x,
94
96
  onReset: () => {
95
- const t = M ? b : f ? v.current : j;
97
+ const t = I ? b : f ? m.current : F;
96
98
  u(t), f && (p(t), r == null || r(t));
97
99
  },
98
100
  onConfirm: () => {
99
- f ? p(i) : (i !== void 0 || M || x === !1) && (p(i), r == null || r(i)), s === void 0 && P(!1), d == null || d(!1);
101
+ f ? p(i) : (i !== void 0 || I || x === !1) && (p(i), r == null || r(i)), s === void 0 && M(!1), d == null || d(!1);
100
102
  }
101
103
  };
102
- return /* @__PURE__ */ tt(
103
- ft,
104
+ return /* @__PURE__ */ rt(
105
+ pt,
104
106
  {
105
- open: F,
107
+ open: P,
106
108
  onOpenChange: (t) => {
107
- t && (v.current = e ?? i), s === void 0 && P(t), d == null || d(t);
109
+ t && (m.current = e ?? i), s === void 0 && M(t), d == null || d(t);
108
110
  },
109
111
  children: [
110
112
  /* @__PURE__ */ n(
111
- pt,
113
+ ct,
112
114
  {
113
115
  className: l(
114
116
  "group cursor-pointer rounded-full text-left outline-0",
@@ -116,10 +118,10 @@ const mt = rt(
116
118
  ),
117
119
  disabled: R,
118
120
  children: S ? S() : /* @__PURE__ */ n(
119
- ut,
121
+ bt,
120
122
  {
121
- ref: g,
122
- value: B ? D(B) : "",
123
+ ref: a,
124
+ value: z ? D(z) : "",
123
125
  placeholder: Q,
124
126
  error: J,
125
127
  disabled: R,
@@ -133,20 +135,20 @@ const mt = rt(
133
135
  o == null ? void 0 : o.input,
134
136
  "group-hover:border-comp-input-stroke-hover group-focus-visible:border-comp-input-stroke-focused"
135
137
  ),
136
- suffix: /* @__PURE__ */ n(lt, { className: "size-icon-medium text-icon-dark-secondary-def" })
138
+ suffix: /* @__PURE__ */ n(yt, { className: "size-icon-medium text-icon-dark-secondary-def" })
137
139
  }
138
140
  )
139
141
  }
140
142
  ),
141
143
  /* @__PURE__ */ n(
142
- ct,
144
+ nt,
143
145
  {
144
146
  className: l("flex w-auto p-0", o == null ? void 0 : o.popoverContent),
145
147
  align: G,
146
148
  side: U,
147
149
  avoidCollisions: T,
148
150
  onOpenAutoFocus: (t) => t.preventDefault(),
149
- children: m === "single" ? /* @__PURE__ */ n(
151
+ children: y === "single" ? /* @__PURE__ */ n(
150
152
  Y,
151
153
  {
152
154
  ...A,
@@ -162,17 +164,17 @@ const mt = rt(
162
164
  {
163
165
  ...A,
164
166
  mode: "range",
165
- min: I ? 1 : void 0,
167
+ min: B ? 1 : void 0,
166
168
  selected: i,
167
169
  onSelect: (t) => {
168
- const c = I ? dt(
170
+ const c = B ? ut(
169
171
  i,
170
172
  t,
171
173
  x
172
174
  ) : t;
173
175
  u(c), f && (p(c), r == null || r(c));
174
176
  },
175
- leftPanelChildren: m === "range" && !N && C,
177
+ leftPanelChildren: y === "range" && !h && tt,
176
178
  dateRangeFormatter: D
177
179
  }
178
180
  )
@@ -183,7 +185,7 @@ const mt = rt(
183
185
  );
184
186
  }
185
187
  );
186
- mt.displayName = "DatePicker";
188
+ vt.displayName = "DatePicker";
187
189
  export {
188
- mt as DatePicker
190
+ vt as DatePicker
189
191
  };
@@ -17,6 +17,7 @@ export declare const ResetButtonResetsToStoryDate: Story;
17
17
  export declare const Required: Story;
18
18
  export declare const SingleMonth: Story;
19
19
  export declare const ImmediateCommitRange: Story;
20
+ export declare const ImmediateCommitHiddenBottomBar: Story;
20
21
  export declare const AllowOneDayRange: Story;
21
22
  export declare const NotRequired: Story;
22
23
  export declare const MonthlyView: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.stories.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAKzC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CA2LjC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAA;AAExC,eAAO,MAAM,iBAAiB,EAAE,KAoC/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAsB9B,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,KAuBxC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KA0B7B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAwBtB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAwBnB,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,KAyBxC,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,KAmCzC,CAAA;AAED,eAAO,MAAM,qCAAqC,EAAE,KA8CnD,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,KAyB1C,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,KAyB1C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KA0BtB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAwBzB,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAkClC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAkC9B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAoCzB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAqCzB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KA6CxB,CAAA"}
1
+ {"version":3,"file":"DatePicker.stories.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAKzC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAiMjC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAA;AAExC,eAAO,MAAM,iBAAiB,EAAE,KAoC/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAsB9B,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,KAuBxC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KA0B7B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAwBtB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAwBnB,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,KAyBxC,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,KAmCzC,CAAA;AAED,eAAO,MAAM,qCAAqC,EAAE,KA8CnD,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,KAyB1C,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,KAyB1C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KA0BtB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAwBzB,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAkClC,CAAA;AAED,eAAO,MAAM,8BAA8B,EAAE,KAiC5C,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAkC9B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAoCzB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAqCzB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KA6CxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileItem.d.ts","sourceRoot":"","sources":["../../../src/components/FileUpload/FileItem.tsx"],"names":[],"mappings":"AA4CA,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;CAC/C;AAED,UAAU,iBAAkB,SAAQ,iBAAiB;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;CACX;AAED,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,MAAM,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,KAAK,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,CAAA;AA2DzD,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,4CA6L5C,CAAA"}
1
+ {"version":3,"file":"FileItem.d.ts","sourceRoot":"","sources":["../../../src/components/FileUpload/FileItem.tsx"],"names":[],"mappings":"AA6CA,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;CAC/C;AAED,UAAU,iBAAkB,SAAQ,iBAAiB;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;CACX;AAED,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,MAAM,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,KAAK,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,CAAA;AA0EzD,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,4CA8M5C,CAAA"}
@@ -1,21 +1,21 @@
1
- import { jsxs as p, jsx as i } from "react/jsx-runtime";
1
+ import { jsxs as b, jsx as t } from "react/jsx-runtime";
2
2
  import * as f from "react";
3
- import { cva as z } from "class-variance-authority";
4
- import { useMuzaTranslations as L } from "../../translations/TranslationContext.js";
3
+ import { cva as C } from "class-variance-authority";
4
+ import { useMuzaTranslations as O } from "../../translations/TranslationContext.js";
5
5
  import { cn as l } from "../../utils/cn.js";
6
- import { GalleryOutline as B, CloseCircleBold as C, DownloadMinimalisticBold as R, TrashBinTrashBold as j } from "@solar-icons/react-perf";
7
- import { Typography as b } from "../Typography/Typography.js";
8
- const E = (e, a, t) => {
9
- let r = null, o = null;
6
+ import { GalleryOutline as T, FileTextBold as B, CloseCircleBold as M, DownloadMinimalisticBold as I, TrashBinTrashBold as R } from "@solar-icons/react-perf";
7
+ import { Typography as x } from "../Typography/Typography.js";
8
+ const j = (e, a, i) => {
9
+ let n = null, o = null;
10
10
  try {
11
- r = URL.createObjectURL(e), o = document.createElement("a"), o.href = r, o.download = e.name, o.style.display = "none", document.body.appendChild(o), o.click();
11
+ n = URL.createObjectURL(e), o = document.createElement("a"), o.href = n, o.download = e.name, o.style.display = "none", document.body.appendChild(o), o.click();
12
12
  } catch (d) {
13
- const s = d instanceof Error ? d.message : t ?? "Download failed";
14
- console.error("Download failed:", d), a == null || a(s, e);
13
+ const c = d instanceof Error ? d.message : i ?? "Download failed";
14
+ console.error("Download failed:", d), a == null || a(c, e);
15
15
  } finally {
16
- o && document.body.contains(o) && document.body.removeChild(o), r && URL.revokeObjectURL(r);
16
+ o && document.body.contains(o) && document.body.removeChild(o), n && URL.revokeObjectURL(n);
17
17
  }
18
- }, O = z(
18
+ }, D = C(
19
19
  [
20
20
  "flex flex-1 items-center gap-sm rounded-full border transition-colors",
21
21
  "relative pr-comp-input-p-hor pl-comp-input-p-hor",
@@ -66,37 +66,50 @@ const E = (e, a, t) => {
66
66
  "bg-none cursor-pointer disabled:cursor-not-allowed",
67
67
  "text-comp-file-upload-icon-def-secondary",
68
68
  "disabled:text-comp-file-upload-icon-def-disabled"
69
- ]), I = /\.(jpe?g|png|gif|webp|svg|bmp|ico|avif|tiff?)$/i, G = (e) => {
69
+ ]), S = /\.(jpe?g|png|gif|webp|svg|bmp|ico|avif|tiff?)$/i, k = /\.(pdf|docx?|txt|rtf|odt|xlsx?|csv|pptx?|md|tex)$/i, U = [
70
+ "application/pdf",
71
+ "application/msword",
72
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
73
+ "text/plain",
74
+ "text/csv",
75
+ "text/markdown",
76
+ "application/rtf",
77
+ "application/vnd.oasis.opendocument.text",
78
+ "application/vnd.ms-excel",
79
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
80
+ "application/vnd.ms-powerpoint",
81
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation"
82
+ ], W = (e) => {
70
83
  const {
71
84
  uploaded: a,
72
- progress: t,
73
- size: r,
85
+ progress: i,
86
+ size: n,
74
87
  disabled: o,
75
88
  readOnly: d = !1,
76
- note: s,
77
- error: c,
78
- onDelete: x,
79
- onError: k
80
- } = e, m = L(), [g, y] = f.useState(!1), v = e.source === "file" ? e.file.name : e.name, w = e.source === "url" ? (e.type ?? "").startsWith("image/") || I.test(e.name) : e.file.type.startsWith("image/"), n = e.source === "file" ? e.file : e.url, U = f.useMemo(() => o ? "disabled" : c ? "error" : typeof t == "number" && t > 0 ? "loading" : "default", [o, c, t]), u = f.useMemo(() => {
81
- if (w)
82
- return typeof n == "string" ? n : URL.createObjectURL(n);
83
- }, [w, n]);
84
- return f.useEffect(() => y(!1), [n]), /* @__PURE__ */ p("li", { className: "flex flex-col gap-sm", children: [
85
- /* @__PURE__ */ p(
89
+ note: c,
90
+ error: s,
91
+ onDelete: g,
92
+ onError: z
93
+ } = e, m = O(), [v, y] = f.useState(!1), w = e.source === "file" ? e.file.name : e.name, p = e.source === "url" ? (e.type ?? "").startsWith("image/") || S.test(e.name) : e.file.type.startsWith("image/"), E = e.source === "url" ? U.includes(e.type ?? "") || k.test(e.name) : U.includes(e.file.type) || k.test(e.file.name), r = e.source === "file" ? e.file : e.url, L = f.useMemo(() => o ? "disabled" : s ? "error" : typeof i == "number" && i > 0 ? "loading" : "default", [o, s, i]), u = f.useMemo(() => {
94
+ if (p)
95
+ return typeof r == "string" ? r : URL.createObjectURL(r);
96
+ }, [p, r]);
97
+ return f.useEffect(() => y(!1), [r]), /* @__PURE__ */ b("li", { className: "flex flex-col gap-sm", children: [
98
+ /* @__PURE__ */ b(
86
99
  "div",
87
100
  {
88
101
  className: l(
89
- O({
90
- variant: U,
91
- size: r
102
+ D({
103
+ variant: L,
104
+ size: n
92
105
  })
93
106
  ),
94
107
  children: [
95
- u && !g && /* @__PURE__ */ i(
108
+ u && !v && /* @__PURE__ */ t(
96
109
  "img",
97
110
  {
98
111
  src: u,
99
- alt: v,
112
+ alt: w,
100
113
  width: 24,
101
114
  height: 24,
102
115
  onError: () => y(!0),
@@ -105,32 +118,43 @@ const E = (e, a, t) => {
105
118
  })
106
119
  }
107
120
  ),
108
- u && g && /* @__PURE__ */ i(
121
+ u && v && /* @__PURE__ */ t(
122
+ T,
123
+ {
124
+ className: l(
125
+ "size-icon-medium shrink-0 text-comp-file-upload-icon-def-secondary",
126
+ {
127
+ "opacity-50": o
128
+ }
129
+ )
130
+ }
131
+ ),
132
+ !p && E && /* @__PURE__ */ t(
109
133
  B,
110
134
  {
111
135
  className: l(
112
- "text-icon-dark-secondary size-icon-medium shrink-0",
136
+ "size-icon-medium shrink-0 text-comp-file-upload-icon-def-secondary",
113
137
  {
114
138
  "opacity-50": o
115
139
  }
116
140
  )
117
141
  }
118
142
  ),
119
- /* @__PURE__ */ i(
120
- b,
143
+ /* @__PURE__ */ t(
144
+ x,
121
145
  {
122
146
  className: "flex-grow truncate",
123
147
  component: "span",
124
148
  size: "sm",
125
149
  fixY: !0,
126
- children: v
150
+ children: w
127
151
  }
128
152
  ),
129
- !a && /* @__PURE__ */ i(
153
+ !a && /* @__PURE__ */ t(
130
154
  "button",
131
155
  {
132
156
  disabled: o,
133
- onClick: x,
157
+ onClick: g,
134
158
  "aria-label": m.fileUpload.deleteButtonAriaLabel,
135
159
  className: l(
136
160
  h,
@@ -139,11 +163,11 @@ const E = (e, a, t) => {
139
163
  "focus-visible:text-comp-file-upload-icon-def-focused",
140
164
  "disabled:text-comp-file-upload-icon-def-disabled"
141
165
  ),
142
- children: /* @__PURE__ */ i(C, { className: "size-icon-medium" })
166
+ children: /* @__PURE__ */ t(M, { className: "size-icon-medium" })
143
167
  }
144
168
  ),
145
- a && /* @__PURE__ */ p("div", { className: "flex gap-xl", children: [
146
- /* @__PURE__ */ i(
169
+ a && /* @__PURE__ */ b("div", { className: "flex gap-xl", children: [
170
+ /* @__PURE__ */ t(
147
171
  "button",
148
172
  {
149
173
  disabled: o,
@@ -160,9 +184,9 @@ const E = (e, a, t) => {
160
184
  );
161
185
  } catch {
162
186
  }
163
- })() : E(
187
+ })() : j(
164
188
  e.file,
165
- k,
189
+ z,
166
190
  m.fileUpload.downloadError
167
191
  ),
168
192
  "aria-label": m.fileUpload.downloadButtonAriaLabel,
@@ -173,14 +197,14 @@ const E = (e, a, t) => {
173
197
  "focus-visible:text-comp-file-upload-icon-brand-focused",
174
198
  "disabled:text-comp-file-upload-icon-brand-disabled"
175
199
  ),
176
- children: /* @__PURE__ */ i(R, { className: "size-icon-medium" })
200
+ children: /* @__PURE__ */ t(I, { className: "size-icon-medium" })
177
201
  }
178
202
  ),
179
- !d && /* @__PURE__ */ i(
203
+ !d && /* @__PURE__ */ t(
180
204
  "button",
181
205
  {
182
206
  disabled: o,
183
- onClick: x,
207
+ onClick: g,
184
208
  "aria-label": m.fileUpload.deleteButtonAriaLabel,
185
209
  className: l(
186
210
  h,
@@ -189,44 +213,44 @@ const E = (e, a, t) => {
189
213
  "focus-visible:text-comp-file-upload-icon-error-focused",
190
214
  "disabled:text-comp-file-upload-icon-error-disabled"
191
215
  ),
192
- children: /* @__PURE__ */ i(j, { className: "size-icon-medium" })
216
+ children: /* @__PURE__ */ t(R, { className: "size-icon-medium" })
193
217
  }
194
218
  )
195
219
  ] }),
196
- typeof t == "number" && t !== 0 && /* @__PURE__ */ i(
220
+ typeof i == "number" && i !== 0 && /* @__PURE__ */ t(
197
221
  "div",
198
222
  {
199
- style: { width: `${t}%` },
223
+ style: { width: `${i}%` },
200
224
  className: "absolute bottom-0 left-0 min-h-[3px] bg-comp-file-upload-icon-brand-def transition-[width] duration-300 ease-out"
201
225
  }
202
226
  )
203
227
  ]
204
228
  }
205
229
  ),
206
- s && /* @__PURE__ */ i(
207
- b,
230
+ c && /* @__PURE__ */ t(
231
+ x,
208
232
  {
209
233
  size: "sm",
210
234
  component: "span",
211
235
  variant: "body",
212
236
  weight: "regular",
213
237
  className: "text-comp-input-text-secondary",
214
- children: s
238
+ children: c
215
239
  }
216
240
  ),
217
- c && /* @__PURE__ */ i(
218
- b,
241
+ s && /* @__PURE__ */ t(
242
+ x,
219
243
  {
220
244
  size: "sm",
221
245
  component: "span",
222
246
  variant: "body",
223
247
  weight: "regular",
224
248
  className: "text-comp-input-text-error",
225
- children: c
249
+ children: s
226
250
  }
227
251
  )
228
252
  ] });
229
253
  };
230
254
  export {
231
- G as FileItem
255
+ W as FileItem
232
256
  };
@@ -49,6 +49,8 @@ export interface IMultiSelectProps {
49
49
  labelExtra?: ReactNode;
50
50
  /** Tooltip content shown in an info icon next to the label. Overridden by `labelExtra` if both are provided. */
51
51
  infoTooltip?: string;
52
+ /** Distance in pixels from viewport edge before the dropdown repositions. Passed to Radix collision padding. */
53
+ collisionPadding?: number;
52
54
  }
53
55
  export declare const MultiSelect: React.ForwardRefExoticComponent<IMultiSelectProps & React.RefAttributes<HTMLButtonElement>>;
54
56
  //# sourceMappingURL=MultiSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,SAAS,EAMf,MAAM,OAAO,CAAA;AAed;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B;;;;;;;;;OASG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,SAAS,CAAA;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,IAAI,CAAC,EAAE,SAAS,CAAA;KACjB,CAAC,CAAA;IACF,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACpC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,gHAAgH;IAChH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,WAAW,6FAmMvB,CAAA"}
1
+ {"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,SAAS,EAMf,MAAM,OAAO,CAAA;AAed;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B;;;;;;;;;OASG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,SAAS,CAAA;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,IAAI,CAAC,EAAE,SAAS,CAAA;KACjB,CAAC,CAAA;IACF,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACpC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,gHAAgH;IAChH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gHAAgH;IAChH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,WAAW,6FAqMvB,CAAA"}