@yourbestsoft/studio-screen-ui-kit 0.0.4 → 0.0.5

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.
@@ -1,8 +1,8 @@
1
1
  import { jsx as n, jsxs as g, Fragment as B } from "react/jsx-runtime";
2
2
  import i from "classnames";
3
- import J, { forwardRef as f, createContext as E, useState as w, useRef as P, useEffect as W, useContext as C } from "react";
3
+ import J, { forwardRef as f, createContext as E, useState as R, useRef as P, useEffect as W, useContext as w } from "react";
4
4
  import { Eye as Q, EyeOff as U, X as Y, Search as Z } from "lucide-react";
5
- const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1", nt = "_primary_4m304_1", st = "_fullWidth_4m304_50", rt = "_buttonWithIcon_4m304_54", ct = "_content_4m304_61", at = "_shortcut_4m304_70", it = "_disabled_4m304_82", b = {
5
+ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1", nt = "_primary_4m304_1", st = "_fullWidth_4m304_50", rt = "_buttonWithIcon_4m304_54", ct = "_content_4m304_61", at = "_shortcut_4m304_70", it = "_disabled_4m304_82", p = {
6
6
  text: tt,
7
7
  tertiary: et,
8
8
  secondary: ot,
@@ -23,21 +23,21 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
23
23
  variant: _ = "primary",
24
24
  ...d
25
25
  }, l) => {
26
- const m = /* @__PURE__ */ g("div", { className: b.buttonWithIcon, children: [
27
- /* @__PURE__ */ g("div", { className: b.content, children: [
26
+ const m = /* @__PURE__ */ g("div", { className: p.buttonWithIcon, children: [
27
+ /* @__PURE__ */ g("div", { className: p.content, children: [
28
28
  r,
29
29
  t
30
30
  ] }),
31
- /* @__PURE__ */ n("div", { className: b.shortcut, children: a })
31
+ /* @__PURE__ */ n("div", { className: p.shortcut, children: a })
32
32
  ] });
33
33
  return /* @__PURE__ */ n(
34
34
  o,
35
35
  {
36
36
  className: i(
37
- b[_],
38
- c && b.fullWidth,
39
- s && b.disabled,
40
- r && b.icon,
37
+ p[_],
38
+ c && p.fullWidth,
39
+ s && p.disabled,
40
+ r && p.icon,
41
41
  e
42
42
  ),
43
43
  children: r ? m : t,
@@ -72,10 +72,10 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
72
72
  Content: mt,
73
73
  Header: gt,
74
74
  Root: H
75
- }), ft = "_root_1xfv8_1", pt = "_dropdownContent_1xfv8_6", bt = "_left_1xfv8_17", vt = "_center_1xfv8_21", wt = "_right_1xfv8_26", Ct = "_top_1xfv8_30", Nt = "_bottom_1xfv8_34", xt = "_fixedPosition_1xfv8_38", T = {
75
+ }), ft = "_root_1xfv8_1", bt = "_dropdownContent_1xfv8_6", pt = "_left_1xfv8_17", vt = "_center_1xfv8_21", wt = "_right_1xfv8_26", Ct = "_top_1xfv8_30", Nt = "_bottom_1xfv8_34", xt = "_fixedPosition_1xfv8_38", y = {
76
76
  root: ft,
77
- dropdownContent: pt,
78
- left: bt,
77
+ dropdownContent: bt,
78
+ left: pt,
79
79
  center: vt,
80
80
  right: wt,
81
81
  top: Ct,
@@ -84,22 +84,22 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
84
84
  }, M = E(
85
85
  void 0
86
86
  ), V = () => {
87
- const t = C(M);
87
+ const t = w(M);
88
88
  if (!t)
89
89
  throw new Error("useDropDownContext must be used within a DropDown.Root");
90
90
  return t;
91
- }, y = [], kt = ({
91
+ }, k = [], kt = ({
92
92
  children: t,
93
93
  closeOnEsc: e = !0,
94
94
  closeOnOutsideClick: o = !0,
95
95
  defaultVisible: s = !1
96
96
  }) => {
97
- const [c, r] = w(s), a = P(null), _ = () => {
98
- c ? d() : (r(!0), a.current && y.push(a.current));
97
+ const [c, r] = R(s), a = P(null), _ = () => {
98
+ c ? d() : (r(!0), a.current && k.push(a.current));
99
99
  }, d = () => {
100
100
  if (r(!1), a.current) {
101
- const l = y.indexOf(a.current);
102
- l !== -1 && y.splice(l, 1);
101
+ const l = k.indexOf(a.current);
102
+ l !== -1 && k.splice(l, 1);
103
103
  }
104
104
  };
105
105
  return W(() => {
@@ -113,12 +113,12 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
113
113
  }, [o]), W(() => {
114
114
  if (!e) return;
115
115
  const l = (m) => {
116
- m.key === "Escape" && c && y[y.length - 1] === a.current && d();
116
+ m.key === "Escape" && c && k[k.length - 1] === a.current && d();
117
117
  };
118
118
  return document.addEventListener("keydown", l), () => {
119
119
  document.removeEventListener("keydown", l);
120
120
  };
121
- }, [e, c]), /* @__PURE__ */ n(M.Provider, { value: { close: d, toggle: _, visible: c }, children: /* @__PURE__ */ n("div", { ref: a, className: T.root, children: t }) });
121
+ }, [e, c]), /* @__PURE__ */ n(M.Provider, { value: { close: d, toggle: _, visible: c }, children: /* @__PURE__ */ n("div", { ref: a, className: y.root, children: t }) });
122
122
  }, yt = ({ children: t }) => {
123
123
  const { toggle: e } = V();
124
124
  return /* @__PURE__ */ n("div", { onClick: e, children: t });
@@ -134,16 +134,16 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
134
134
  "div",
135
135
  {
136
136
  className: i(
137
- T.dropdownContent,
138
- T[s],
139
- T[c],
140
- { [T.fixedPosition]: o },
137
+ y.dropdownContent,
138
+ y[s],
139
+ y[c],
140
+ { [y.fixedPosition]: o },
141
141
  e
142
142
  ),
143
143
  children: t
144
144
  }
145
145
  ) : null;
146
- }, Ae = { Content: Tt, Root: kt, Trigger: yt }, Rt = "_dialogRoot_c30vs_1", St = "_dialogTrigger_c30vs_5", Dt = "_dialogContent_c30vs_13", $t = "_dialogClose_c30vs_25", Ot = "_dialogTitle_c30vs_33", It = "_dialogSeparator_c30vs_38", N = {
146
+ }, Ae = { Content: Tt, Root: kt, Trigger: yt }, Rt = "_dialogRoot_c30vs_1", St = "_dialogTrigger_c30vs_5", Dt = "_dialogContent_c30vs_13", $t = "_dialogClose_c30vs_25", Ot = "_dialogTitle_c30vs_33", It = "_dialogSeparator_c30vs_38", C = {
147
147
  dialogRoot: Rt,
148
148
  dialogTrigger: St,
149
149
  dialogContent: Dt,
@@ -155,16 +155,16 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
155
155
  isOpen: e,
156
156
  onStateChange: o
157
157
  }) => {
158
- const s = P(null), [c, r] = w(!1), a = e !== void 0 ? e : c, _ = (d) => {
158
+ const s = P(null), [c, r] = R(!1), a = e !== void 0 ? e : c, _ = (d) => {
159
159
  e === void 0 && r(d), o && o(d);
160
160
  };
161
- return /* @__PURE__ */ n(D.Provider, { value: { dialogRef: s, isOpen: a, setIsOpen: _ }, children: /* @__PURE__ */ n("div", { className: N.dialogRoot, children: t }) });
161
+ return /* @__PURE__ */ n(D.Provider, { value: { dialogRef: s, isOpen: a, setIsOpen: _ }, children: /* @__PURE__ */ n("div", { className: C.dialogRoot, children: t }) });
162
162
  }, Et = ({
163
163
  as: t,
164
164
  children: e,
165
165
  ...o
166
166
  }) => {
167
- const s = C(D);
167
+ const s = w(D);
168
168
  if (!s) throw new Error("Trigger must be used within a Dialog.Root");
169
169
  const { dialogRef: c, setIsOpen: r } = s;
170
170
  return /* @__PURE__ */ n(
@@ -174,14 +174,14 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
174
174
  c.current?.showModal(), r(!0);
175
175
  },
176
176
  ...o,
177
- className: N.dialogTrigger,
177
+ className: C.dialogTrigger,
178
178
  role: t && t !== "button" ? "button" : void 0,
179
179
  children: e
180
180
  }
181
181
  );
182
182
  }, Pt = f(
183
183
  ({ children: t, className: e, closeOnBackdropClick: o = !0 }, s) => {
184
- const c = C(D);
184
+ const c = w(D);
185
185
  if (!c) throw new Error("Content must be used within a Dialog.Root");
186
186
  const { dialogRef: r, isOpen: a, setIsOpen: _ } = c, d = (l) => {
187
187
  o && l.target === r.current && (r.current?.close(), _(!1));
@@ -190,7 +190,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
190
190
  "dialog",
191
191
  {
192
192
  ref: r,
193
- className: i(N.dialogContent, e),
193
+ className: i(C.dialogContent, e),
194
194
  onClick: d,
195
195
  open: a,
196
196
  children: /* @__PURE__ */ n("div", { onClick: (l) => l.stopPropagation(), children: t })
@@ -202,7 +202,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
202
202
  children: e,
203
203
  ...o
204
204
  }) => {
205
- const s = C(D);
205
+ const s = w(D);
206
206
  if (!s) throw new Error("Close must be used within a Dialog.Root");
207
207
  const { dialogRef: c, setIsOpen: r } = s;
208
208
  return /* @__PURE__ */ n(
@@ -212,12 +212,12 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
212
212
  c.current?.close(), r(!1);
213
213
  },
214
214
  ...o,
215
- className: N.dialogClose,
215
+ className: C.dialogClose,
216
216
  role: t && t !== "button" ? "button" : void 0,
217
217
  children: e
218
218
  }
219
219
  );
220
- }, qt = ({ children: t, className: e }) => /* @__PURE__ */ n("h2", { className: i(N.dialogTitle, e), children: t }), Ht = ({}) => /* @__PURE__ */ n("div", { className: N.dialogSeparator }), Be = {
220
+ }, qt = ({ children: t, className: e }) => /* @__PURE__ */ n("h2", { className: i(C.dialogTitle, e), children: t }), Ht = ({}) => /* @__PURE__ */ n("div", { className: C.dialogSeparator }), Be = {
221
221
  Close: Lt,
222
222
  Content: Pt,
223
223
  Root: Wt,
@@ -236,25 +236,20 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
236
236
  }, j = E(
237
237
  void 0
238
238
  ), L = () => {
239
- const t = C(j);
239
+ const t = w(j);
240
240
  if (!t)
241
241
  throw new Error("useSidebarContext must be used within a SidebarProvider");
242
242
  return t;
243
- }, Xt = ({ children: t, isOpen: e, setIsOpen: o }) => {
244
- const [s, c] = w(e);
245
- return /* @__PURE__ */ n(
246
- j.Provider,
247
- {
248
- value: {
249
- isOpen: s,
250
- setIsOpen: (r) => {
251
- c(r), o(r);
252
- }
253
- },
254
- children: t
255
- }
256
- );
257
- }, Gt = ({ children: t }) => {
243
+ }, Xt = ({ children: t, isOpen: e, setIsOpen: o }) => /* @__PURE__ */ n(
244
+ j.Provider,
245
+ {
246
+ value: {
247
+ isOpen: e,
248
+ setIsOpen: () => o(!e)
249
+ },
250
+ children: t
251
+ }
252
+ ), Gt = ({ children: t }) => {
258
253
  const { setIsOpen: e } = L(), o = (s) => {
259
254
  s.preventDefault(), e(!0);
260
255
  };
@@ -314,20 +309,20 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
314
309
  selectedValue: r,
315
310
  slot: a
316
311
  }, _) => {
317
- const [d, l] = w(
312
+ const [d, l] = R(
318
313
  r || o[0].value
319
314
  ), m = (h) => {
320
315
  l(h), c && c(h);
321
316
  };
322
317
  return /* @__PURE__ */ g("div", { ref: _, className: I.switcher, ...s, children: [
323
- /* @__PURE__ */ n("div", { className: i(I.buttons, t), children: o.map((h, x) => /* @__PURE__ */ n(
318
+ /* @__PURE__ */ n("div", { className: i(I.buttons, t), children: o.map((h, N) => /* @__PURE__ */ n(
324
319
  e,
325
320
  {
326
321
  ...h,
327
322
  selected: d === h.value,
328
323
  onClick: () => m(h.value)
329
324
  },
330
- x
325
+ N
331
326
  )) }),
332
327
  a && /* @__PURE__ */ g(B, { children: [
333
328
  /* @__PURE__ */ n("div", { className: I.separator }),
@@ -335,7 +330,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
335
330
  ] })
336
331
  ] });
337
332
  }
338
- ), te = "_root_w2o37_13", ee = "_header_w2o37_19", oe = "_footer_w2o37_23", ne = "_row_w2o37_28", se = "_body_w2o37_40", re = "_head_w2o37_19", ce = "_cell_w2o37_47", ae = "_caption_w2o37_64", ie = "_storiesFooterCellOne_w2o37_69", le = "_storiesFooterCellTwo_w2o37_72", p = {
333
+ ), te = "_root_w2o37_13", ee = "_header_w2o37_19", oe = "_footer_w2o37_23", ne = "_row_w2o37_28", se = "_body_w2o37_40", re = "_head_w2o37_19", ce = "_cell_w2o37_47", ae = "_caption_w2o37_64", ie = "_storiesFooterCellOne_w2o37_69", le = "_storiesFooterCellTwo_w2o37_72", b = {
339
334
  root: te,
340
335
  header: ee,
341
336
  footer: oe,
@@ -346,7 +341,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
346
341
  caption: ae,
347
342
  storiesFooterCellOne: ie,
348
343
  storiesFooterCellTwo: le
349
- }, F = ({ children: t, className: e }) => /* @__PURE__ */ n("table", { className: i(p.root, e), children: t }), de = ({ children: t, className: e }) => /* @__PURE__ */ n("caption", { className: i(p.caption, e), children: t }), _e = ({ children: t, className: e }) => /* @__PURE__ */ n("thead", { className: i(p.header, e), children: t }), ue = ({ children: t, className: e, onClick: o }) => /* @__PURE__ */ n("tr", { className: i(p.row, e), onClick: o, children: t }), he = ({ children: t, className: e }) => /* @__PURE__ */ n("th", { className: i(p.head, e), children: t }), me = ({ children: t, className: e }) => /* @__PURE__ */ n("tbody", { className: i(p.body, e), children: t }), ge = ({ children: t, className: e }) => /* @__PURE__ */ n("td", { className: i(p.cell, e), children: t }), fe = ({ children: t, className: e }) => /* @__PURE__ */ n("tfoot", { className: i(p.footer, e), children: t }), je = Object.assign(F, {
344
+ }, F = ({ children: t, className: e }) => /* @__PURE__ */ n("table", { className: i(b.root, e), children: t }), de = ({ children: t, className: e }) => /* @__PURE__ */ n("caption", { className: i(b.caption, e), children: t }), _e = ({ children: t, className: e }) => /* @__PURE__ */ n("thead", { className: i(b.header, e), children: t }), ue = ({ children: t, className: e, onClick: o }) => /* @__PURE__ */ n("tr", { className: i(b.row, e), onClick: o, children: t }), he = ({ children: t, className: e }) => /* @__PURE__ */ n("th", { className: i(b.head, e), children: t }), me = ({ children: t, className: e }) => /* @__PURE__ */ n("tbody", { className: i(b.body, e), children: t }), ge = ({ children: t, className: e }) => /* @__PURE__ */ n("td", { className: i(b.cell, e), children: t }), fe = ({ children: t, className: e }) => /* @__PURE__ */ n("tfoot", { className: i(b.footer, e), children: t }), je = Object.assign(F, {
350
345
  Body: me,
351
346
  Caption: de,
352
347
  Cell: ge,
@@ -355,9 +350,9 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
355
350
  Header: _e,
356
351
  Root: F,
357
352
  Row: ue
358
- }), pe = "_inputContainer_iqbs3_1", be = "_input_iqbs3_1", ve = "_inputSearch_iqbs3_40", we = "_error_iqbs3_43", Ce = "_button_iqbs3_58", Ne = "_buttonWithLabel_iqbs3_68", xe = "_resetSearchValue_iqbs3_73", ke = "_searchOutline_iqbs3_80", ye = "_errorMessage_iqbs3_87", u = {
359
- inputContainer: pe,
360
- input: be,
353
+ }), be = "_inputContainer_iqbs3_1", pe = "_input_iqbs3_1", ve = "_inputSearch_iqbs3_40", we = "_error_iqbs3_43", Ce = "_button_iqbs3_58", Ne = "_buttonWithLabel_iqbs3_68", xe = "_resetSearchValue_iqbs3_73", ke = "_searchOutline_iqbs3_80", ye = "_errorMessage_iqbs3_87", u = {
354
+ inputContainer: be,
355
+ input: pe,
361
356
  inputSearch: ve,
362
357
  error: we,
363
358
  button: Ce,
@@ -366,10 +361,10 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
366
361
  searchOutline: ke,
367
362
  errorMessage: ye
368
363
  }, ze = f(({ className: t, error: e, label: o, onChange: s, required: c, ...r }, a) => {
369
- const [_, d] = w(!1), l = (x) => s(x.currentTarget.value), m = i(u.input, e && u.error, t);
364
+ const [_, d] = R(!1), l = (N) => s(N.currentTarget.value), m = i(u.input, e && u.error, t);
370
365
  let h;
371
366
  if (!r.as || r.as === "input") {
372
- const { as: x, inputType: k, ...X } = r, $ = k === "search", q = k === "password", G = _ ? "text" : "password";
367
+ const { as: N, inputType: x, ...X } = r, $ = x === "search", q = x === "password", G = _ ? "text" : "password";
373
368
  h = /* @__PURE__ */ g(B, { children: [
374
369
  /* @__PURE__ */ n(
375
370
  "input",
@@ -377,7 +372,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
377
372
  className: i(m, $ && u.inputSearch),
378
373
  onChange: l,
379
374
  ref: a,
380
- type: q ? G : k,
375
+ type: q ? G : x,
381
376
  ...X
382
377
  }
383
378
  ),
@@ -424,14 +419,14 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
424
419
  ] });
425
420
  }
426
421
  if (r.as === "textarea") {
427
- const { as: x, ...k } = r;
422
+ const { as: N, ...x } = r;
428
423
  h = /* @__PURE__ */ n(
429
424
  "textarea",
430
425
  {
431
426
  className: m,
432
427
  onChange: l,
433
428
  ref: a,
434
- ...k
429
+ ...x
435
430
  }
436
431
  );
437
432
  }
@@ -444,10 +439,10 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
444
439
  /* @__PURE__ */ n("div", { className: u.errorMessage, children: e })
445
440
  ] });
446
441
  }), z = E(void 0), Ke = ({ children: t }) => {
447
- const e = K() || "system", [o, s] = w(e);
442
+ const e = K() || "system", [o, s] = R(e);
448
443
  return /* @__PURE__ */ n(z.Provider, { value: { setTheme: s, theme: o }, children: t });
449
444
  }, Xe = () => {
450
- const t = C(z);
445
+ const t = w(z);
451
446
  if (!t)
452
447
  throw new Error("useTheme must be used within a ThemeProvider");
453
448
  return Te(t.theme), t;
@@ -466,7 +461,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
466
461
  }, K = () => {
467
462
  const t = localStorage.getItem("theme");
468
463
  if (t) return t;
469
- }, Se = "_root_17w6h_1", De = "_icon_17w6h_11", $e = "_active_17w6h_27", Oe = "_disabled_17w6h_31", Ie = "_keybinding_17w6h_44", R = {
464
+ }, Se = "_root_17w6h_1", De = "_icon_17w6h_11", $e = "_active_17w6h_27", Oe = "_disabled_17w6h_31", Ie = "_keybinding_17w6h_44", T = {
470
465
  root: Se,
471
466
  icon: De,
472
467
  active: $e,
@@ -475,7 +470,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
475
470
  }, Ge = f(
476
471
  (t, e) => {
477
472
  const { classes: o, disabled: s, icon: c, isActive: r, keybinding: a, onClick: _, title: d } = t, l = We(o, r, s);
478
- return /* @__PURE__ */ g("label", { className: R.root, title: d, children: [
473
+ return /* @__PURE__ */ g("label", { className: T.root, title: d, children: [
479
474
  /* @__PURE__ */ n(
480
475
  "div",
481
476
  {
@@ -494,14 +489,14 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
494
489
  }
495
490
  ), We = (t, e, o) => ({
496
491
  icon: i(
497
- R.icon,
492
+ T.icon,
498
493
  {
499
- [R.active]: e,
500
- [R.disabled]: o
494
+ [T.active]: e,
495
+ [T.disabled]: o
501
496
  },
502
497
  t?.icon
503
498
  ),
504
- keybinding: i(R.keybinding, t?.keybinding)
499
+ keybinding: i(T.keybinding, t?.keybinding)
505
500
  });
506
501
  export {
507
502
  He as B,
@@ -522,4 +517,4 @@ export {
522
517
  Ke as k,
523
518
  Xe as u
524
519
  };
525
- //# sourceMappingURL=ToolIconButton-mUJN5Mev.js.map
520
+ //# sourceMappingURL=ToolIconButton-uQjlHv_6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolIconButton-uQjlHv_6.js","sources":["../src/components/button/Button.tsx","../src/components/card/Card.tsx","../src/components/drop-down/DropDown.tsx","../src/components/dialog/Dialog.tsx","../src/components/sidebar/Sidebar.tsx","../src/components/switcher-buttons/SwitcherButtons.tsx","../src/components/table/Table.tsx","../src/components/text-field/text-field.tsx","../src/features/theme-provider/ThemeProvider.tsx","../src/components/toolbar/tool-icon-button/ToolIconButton.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport {\n ComponentPropsWithoutRef,\n ElementRef,\n ElementType,\n ForwardedRef,\n ReactNode,\n forwardRef,\n} from 'react'\n\nimport { Replace } from '../../utils'\nimport s from './button.module.scss'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'text'\ntype OwnProps<T extends ElementType> = {\n children?: ReactNode\n className?: string\n component?: T\n disabled?: boolean\n fullWidth?: boolean\n variant?: ButtonVariant\n icon?: ReactNode\n shortcut?: string\n}\n\nexport type ButtonProps<T extends ElementType> = Replace<\n ComponentPropsWithoutRef<T>,\n OwnProps<T>\n>\n\ntype ButtonRenderType = {\n (\n props: ButtonProps<'button'>,\n ref?: ForwardedRef<ElementRef<'button'>>\n ): ReactNode\n (\n props: ButtonProps<ElementType>,\n ref?: ForwardedRef<ElementRef<ElementType>>\n ): ReactNode\n}\n\nexport type ButtonComponent = {\n <T extends ElementType = 'button'>(\n props: ButtonProps<T> & { ref?: ForwardedRef<ElementRef<T>> }\n ): ReactNode\n}\n\nexport const ButtonRender: ButtonRenderType = (\n {\n children,\n className,\n component: Component = 'button',\n disabled,\n fullWidth,\n icon,\n shortcut,\n variant = 'primary',\n ...props\n },\n ref\n) => {\n const content = (\n <div className={s.buttonWithIcon}>\n <div className={s.content}>\n {icon}\n {children}\n </div>\n <div className={s.shortcut}>{shortcut}</div>\n </div>\n )\n\n return (\n <Component\n className={classNames(\n s[variant],\n fullWidth && s.fullWidth,\n disabled && s.disabled,\n icon && s.icon,\n className\n )}\n children={icon ? content : children}\n disabled={disabled}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport const Button: ButtonComponent = forwardRef(ButtonRender)\n","import classNames from 'classnames'\nimport { ComponentPropsWithoutRef, ElementRef, forwardRef } from 'react'\n\nimport s from './card.module.scss'\n\nexport type CardProps = ComponentPropsWithoutRef<'div'>\n\nexport const CardRoot = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.root, className)} ref={ref} {...props} />\n )\n)\n\nexport type CardContentProps = CardProps & { ignoreHeader?: boolean }\n\nexport const CardContent = forwardRef<ElementRef<'div'>, CardContentProps>(\n ({ className, ignoreHeader, ...props }, ref) => (\n <div\n className={classNames(\n s.content,\n !ignoreHeader && s.contentAfterHeader,\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nexport const CardHeader = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.header, className)} ref={ref} {...props} />\n )\n)\n\nexport const Card = Object.assign(CardRoot, {\n Content: CardContent,\n Header: CardHeader,\n Root: CardRoot,\n})\n","import classNames from 'classnames'\nimport {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport styles from './drop-down.module.scss'\n\ninterface DropDownContextType {\n visible: boolean\n toggle: () => void\n close: () => void\n}\n\nconst DropDownContext = createContext<DropDownContextType | undefined>(\n undefined\n)\n\nconst useDropDownContext = () => {\n const context = useContext(DropDownContext)\n if (!context) {\n throw new Error('useDropDownContext must be used within a DropDown.Root')\n }\n return context\n}\n\ninterface RootProps {\n children: ReactNode\n defaultVisible?: boolean\n closeOnOutsideClick?: boolean\n closeOnEsc?: boolean\n}\n\nconst openDropDownStack: HTMLElement[] = []\n\nconst Root = ({\n children,\n closeOnEsc = true,\n closeOnOutsideClick = true,\n defaultVisible = false,\n}: RootProps) => {\n const [visible, setVisible] = useState(defaultVisible)\n const rootRef = useRef<HTMLDivElement>(null)\n\n const toggle = () => {\n if (!visible) {\n setVisible(true)\n if (rootRef.current) {\n openDropDownStack.push(rootRef.current)\n }\n } else {\n close()\n }\n }\n\n const close = () => {\n setVisible(false)\n if (rootRef.current) {\n const index = openDropDownStack.indexOf(rootRef.current)\n if (index !== -1) {\n openDropDownStack.splice(index, 1)\n }\n }\n }\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n close()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [closeOnOutsideClick])\n\n useEffect(() => {\n if (!closeOnEsc) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && visible) {\n const lastDropDown = openDropDownStack[openDropDownStack.length - 1]\n if (lastDropDown === rootRef.current) {\n close()\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [closeOnEsc, visible])\n\n return (\n <DropDownContext.Provider value={{ close, toggle, visible }}>\n <div ref={rootRef} className={styles.root}>\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\ninterface TriggerProps {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: TriggerProps) => {\n const { toggle } = useDropDownContext()\n return <div onClick={toggle}>{children}</div>\n}\n\ninterface ContentProps {\n children: ReactNode\n horizontal?: 'left' | 'center' | 'right'\n vertical?: 'top' | 'bottom'\n className?: string\n fixedPosition?: boolean\n}\n\nconst Content = ({\n children,\n className,\n fixedPosition = false,\n horizontal = 'left',\n vertical = 'bottom',\n}: ContentProps) => {\n const { visible } = useDropDownContext()\n\n if (!visible) return null\n\n return (\n <div\n className={classNames(\n styles.dropdownContent,\n styles[horizontal],\n styles[vertical],\n { [styles.fixedPosition]: fixedPosition },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nexport const DropDown = { Content, Root, Trigger }\n","import classNames from 'classnames'\nimport React, {\n useState,\n useRef,\n ReactNode,\n forwardRef,\n MouseEvent,\n ElementType,\n useContext,\n} from 'react'\n\nimport styles from './dialog.module.scss'\n\ninterface RootProps {\n children: React.ReactNode\n isOpen?: boolean\n onStateChange?: (isOpen: boolean) => void\n}\n\ninterface DialogContextProps {\n dialogRef: React.RefObject<HTMLDialogElement>\n isOpen: boolean\n setIsOpen: (state: boolean) => void\n}\nconst DialogContext = React.createContext<DialogContextProps | null>(null)\n\nconst Root = ({\n children,\n isOpen: externalIsOpen,\n onStateChange,\n}: RootProps) => {\n const dialogRef = useRef<HTMLDialogElement | null>(null)\n const [internalIsOpen, setInternalIsOpen] = useState(false)\n\n const isOpen = externalIsOpen !== undefined ? externalIsOpen : internalIsOpen\n const setIsOpen = (state: boolean) => {\n if (externalIsOpen === undefined) {\n setInternalIsOpen(state)\n }\n if (onStateChange) {\n onStateChange(state)\n }\n }\n\n return (\n <DialogContext.Provider value={{ dialogRef, isOpen, setIsOpen }}>\n <div className={styles.dialogRoot}>{children}</div>\n </DialogContext.Provider>\n )\n}\n\ninterface TriggerProps<T extends ElementType = 'button'> {\n as?: T\n children: ReactNode\n}\n\nconst Trigger = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: TriggerProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Trigger must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.showModal()\n setIsOpen(true)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogTrigger}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface ContentProps {\n children: ReactNode\n className?: string\n closeOnBackdropClick?: boolean\n}\n\nconst Content = forwardRef<HTMLDialogElement, ContentProps>(\n ({ children, className, closeOnBackdropClick = true }, _) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Content must be used within a Dialog.Root')\n\n const { dialogRef, isOpen, setIsOpen } = context\n\n const handleBackdropClick = (event: MouseEvent<HTMLDialogElement>) => {\n if (closeOnBackdropClick && event.target === dialogRef.current) {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n }\n\n return (\n <dialog\n ref={dialogRef}\n className={classNames(styles.dialogContent, className)}\n onClick={handleBackdropClick}\n open={isOpen}\n >\n <div onClick={(e) => e.stopPropagation()}>{children}</div>\n </dialog>\n )\n }\n)\n\ninterface CloseProps<T extends ElementType = 'button'> {\n as?: T\n children?: ReactNode\n}\n\nconst Close = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: CloseProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Close must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogClose}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface TitleProps {\n children: ReactNode\n className?: string\n}\n\nconst Title = ({ children, className }: TitleProps) => {\n return (\n <h2 className={classNames(styles.dialogTitle, className)}>{children}</h2>\n )\n}\n\ninterface SeparatorProps {}\n\nconst Separator = ({}: SeparatorProps) => {\n return <div className={styles.dialogSeparator} />\n}\n\nexport const Dialog = {\n Close,\n Content,\n Root,\n Separator,\n Title,\n Trigger,\n}\n","import classNames from 'classnames'\nimport {\n createContext,\n MouseEvent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nimport styles from './sidebar.module.scss'\n\ntype SidebarContextProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n}\n\nexport const SidebarContext = createContext<SidebarContextProps | undefined>(\n undefined\n)\n\nexport const useSidebarContext = () => {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebarContext must be used within a SidebarProvider')\n }\n return context\n}\n\ntype SidebarRootProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n children: ReactNode\n}\n\nconst Root = ({ children, isOpen, setIsOpen }: SidebarRootProps) => {\n return (\n <SidebarContext.Provider\n value={{\n isOpen: isOpen,\n setIsOpen: () => setIsOpen(!isOpen),\n }}\n >\n {children}\n </SidebarContext.Provider>\n )\n}\n\ntype SidebarTriggerProps = {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: SidebarTriggerProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsOpen(true)\n }\n\n return (\n <div className={styles.trigger} onClick={onClickHandler}>\n {children}\n </div>\n )\n}\n\ntype SidebarContentProps = {\n position?: 'left' | 'right' | 'bottom' | 'top'\n children: ReactNode\n className?: string\n closeOnOutsideClick?: boolean\n}\n\nconst Content = ({\n children,\n className,\n closeOnOutsideClick = true,\n position = 'right',\n}: SidebarContentProps) => {\n const { isOpen, setIsOpen } = useSidebarContext()\n const contentRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: Event) => {\n if (\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen, setIsOpen, closeOnOutsideClick])\n\n return (\n <div\n ref={contentRef}\n className={classNames(\n styles[position],\n styles.content,\n {\n [styles.close]: !isOpen,\n [styles.open]: isOpen,\n },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\ntype SidebarCloseProps = {\n children: ReactNode\n}\n\nconst Close = ({ children }: SidebarCloseProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n setIsOpen(false)\n }\n\n return (\n <button className={styles.close} onClick={onClickHandler}>\n {children}\n </button>\n )\n}\n\nexport const Sidebar = {\n Close,\n Content,\n Root,\n Trigger,\n}\n","import classNames from 'classnames'\nimport React, { ElementType, forwardRef, ReactNode, useState } from 'react'\n\nimport style from './switcher-buttons.module.scss'\n\ninterface ComponentValues {\n value: string\n [key: string]: any\n}\n\ninterface SwitcherProps {\n componentValues: ComponentValues[]\n defaultValue?: string\n onChange?: (value: string) => void\n selectedValue?: string\n component: ElementType\n containerProps?: React.HTMLAttributes<HTMLDivElement>\n slot?: ReactNode\n className?: string\n}\n\nexport const SwitcherButtons = forwardRef<HTMLDivElement, SwitcherProps>(\n (\n {\n className,\n component: Component,\n componentValues,\n containerProps,\n onChange,\n selectedValue,\n slot,\n },\n ref\n ) => {\n const [activeValue, setActiveValue] = useState<string>(\n selectedValue || componentValues[0].value\n )\n\n const onChangeHandler = (value: string) => {\n setActiveValue(value)\n if (onChange) onChange(value)\n }\n\n return (\n <div ref={ref} className={style.switcher} {...containerProps}>\n <div className={classNames(style.buttons, className)}>\n {componentValues.map((button, index) => (\n <Component\n key={index}\n {...button}\n selected={activeValue === button.value}\n onClick={() => onChangeHandler(button.value)}\n />\n ))}\n </div>\n {slot && (\n <>\n <div className={style.separator} />\n {slot}\n </>\n )}\n </div>\n )\n }\n)\n","import classNames from 'classnames'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport s from './table.module.scss'\n\ninterface Props {\n children: ReactNode\n className?: string\n}\n\ninterface RootProps extends Props {}\nconst Root = ({ children, className }: RootProps) => {\n return <table className={classNames(s.root, className)}>{children}</table>\n}\n\ninterface CaptionProps extends Props {}\nconst Caption = ({ children, className }: CaptionProps) => {\n return (\n <caption className={classNames(s.caption, className)}>{children}</caption>\n )\n}\n\ninterface HeaderProps extends Props {}\nconst Header = ({ children, className }: HeaderProps) => {\n return <thead className={classNames(s.header, className)}>{children}</thead>\n}\n\ninterface RowProps extends Props {\n onClick?: MouseEventHandler<HTMLTableRowElement> | undefined\n}\nconst Row = ({ children, className, onClick }: RowProps) => {\n return (\n <tr className={classNames(s.row, className)} onClick={onClick}>\n {children}\n </tr>\n )\n}\n\ninterface HeadProps extends Props {}\nconst Head = ({ children, className }: HeadProps) => {\n return <th className={classNames(s.head, className)}>{children}</th>\n}\n\ninterface BodyProps extends Props {}\nconst Body = ({ children, className }: BodyProps) => {\n return <tbody className={classNames(s.body, className)}>{children}</tbody>\n}\n\ninterface CellProps extends Props {}\nconst Cell = ({ children, className }: CellProps) => {\n return <td className={classNames(s.cell, className)}>{children}</td>\n}\n\ninterface FooterProps extends Props {}\nconst Footer = ({ children, className }: FooterProps) => {\n return <tfoot className={classNames(s.footer, className)}>{children}</tfoot>\n}\n\nexport const Table = Object.assign(Root, {\n Body,\n Caption,\n Cell,\n Footer,\n Head,\n Header,\n Root,\n Row,\n})\n","import {\n ChangeEvent,\n ForwardedRef,\n ReactNode,\n forwardRef,\n useState,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport s from './text-field.module.scss'\nimport { X, Eye, Search, EyeOff } from 'lucide-react'\n\ntype SharedProps = {\n className?: string\n disabled?: boolean\n error?: string\n label?: string\n onBlur?: () => void\n onChange: (value: string) => void\n onFocus?: () => void\n placeholder?: string\n required?: boolean\n value: string\n}\n\nexport type TextFieldProps =\n | (SharedProps & {\n as?: 'input'\n inputType?: 'password' | 'search' | 'text'\n })\n | (SharedProps & { as: 'textarea' })\n\nexport type TextFieldComponent = {\n (\n props: Extract<TextFieldProps, { as: 'textarea' }> & {\n ref?: ForwardedRef<HTMLTextAreaElement>\n }\n ): ReactNode\n (\n props: Extract<TextFieldProps, { as?: 'input' }> & {\n ref?: ForwardedRef<HTMLInputElement>\n }\n ): ReactNode\n}\n\nexport const TextField: TextFieldComponent = forwardRef<\n HTMLInputElement | HTMLTextAreaElement,\n TextFieldProps\n>(({ className, error, label, onChange, required, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false)\n\n const handleChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => onChange(e.currentTarget.value)\n\n const sharedClassName = classNames(s.input, error && s.error, className)\n let resolvedFragment: ReactNode\n\n if (!props.as || props.as === 'input') {\n const { as, inputType, ...restProps } = props\n const isSearch = inputType === 'search'\n const isPassword = inputType === 'password'\n const passwordFieldNextType = showPassword ? 'text' : 'password'\n\n resolvedFragment = (\n <>\n <input\n className={classNames(sharedClassName, isSearch && s.inputSearch)}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLInputElement>}\n type={isPassword ? passwordFieldNextType : inputType}\n {...restProps}\n />\n {isPassword &&\n (showPassword ? (\n <Eye\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ) : (\n <EyeOff\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ))}\n {isSearch && props.value && (\n <X\n onClick={() => onChange('')}\n className={classNames(\n s.button,\n label && s.buttonWithLabel,\n s.resetSearchValue\n )}\n strokeWidth={2.5}\n size={24}\n />\n )}\n {isSearch && (\n <Search\n className={classNames(\n s.searchOutline,\n label && s.searchOutlineWithLabel\n )}\n size={20}\n />\n )}\n </>\n )\n }\n\n if (props.as === 'textarea') {\n const { as, ...restProps } = props\n\n resolvedFragment = (\n <textarea\n className={sharedClassName}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLTextAreaElement>}\n {...restProps}\n />\n )\n }\n\n return (\n <div className={s.root}>\n <span className={s.title}>\n {label}\n {required && <span className={s.titleError}>*</span>}\n </span>\n <div className={s.inputContainer}>{resolvedFragment}</div>\n <div className={s.errorMessage}>{error}</div>\n </div>\n )\n})\n","import { createContext, useContext, useState, ReactNode } from 'react'\n\nexport type Theme = 'light' | 'dark'\nexport type ThemeValue = Theme | 'system'\n\ninterface ThemeContextType {\n theme: ThemeValue\n setTheme: (theme: ThemeValue) => void\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined)\n\nexport const ThemeProvider = ({ children }: { children: ReactNode }) => {\n const defaultTheme = getTheme() || 'system'\n const [theme, setTheme] = useState<ThemeValue>(defaultTheme)\n\n return (\n <ThemeContext.Provider value={{ setTheme, theme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext)\n\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n\n setDataThemeHandler(context.theme)\n\n return context\n}\n\nconst setDataThemeHandler = (value: ThemeValue) => {\n const savedTheme = getTheme()\n\n saveTheme(value || savedTheme)\n}\n\nconst saveTheme = (theme: ThemeValue) => {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)')\n\n if (theme === 'system') {\n const defaultTheme = prefersDarkScheme.matches ? 'dark' : 'light'\n localStorage.setItem('theme', theme)\n setTheme(defaultTheme)\n } else {\n localStorage.setItem('theme', theme)\n setTheme(theme)\n }\n}\n\nconst setTheme = (theme: Theme) => {\n document.documentElement.setAttribute('data-theme', theme)\n}\n\nconst getTheme = () => {\n const theme = localStorage.getItem('theme')\n if (theme) return theme as ThemeValue\n}\n","import classNames from 'classnames'\nimport { ReactNode, forwardRef } from 'react'\n\nimport s from './tool-icon-button.module.scss'\n\nexport type ToolbarSlot = 'icon' | 'keybinding'\nexport type ToolbarClasses = { [P in ToolbarSlot]?: string }\n\ninterface Props {\n title?: string\n icon: ReactNode\n keybinding?: string\n aria_label?: string\n aria_keyshortcuts?: string\n classes?: ToolbarClasses\n name?: string\n id?: string\n isActive?: boolean\n disabled?: boolean\n onClick?: () => void\n}\n\nexport const ToolIconButton = forwardRef<HTMLDivElement, Props>(\n (props, ref) => {\n const { classes, disabled, icon, isActive, keybinding, onClick, title } =\n props\n\n const styles = getClasses(classes, isActive, disabled)\n\n return (\n <label className={s.root} title={title}>\n <div\n className={styles.icon}\n ref={ref}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-pressed={isActive}\n aria-disabled={disabled}\n onClick={!disabled ? onClick : undefined}\n >\n {icon}\n </div>\n {keybinding && <span className={styles.keybinding}>{keybinding}</span>}\n </label>\n )\n }\n)\n\nconst getClasses = (\n classes?: ToolbarClasses,\n isActive?: boolean,\n disabled?: boolean\n): Required<ToolbarClasses> => ({\n icon: classNames(\n s.icon,\n {\n [s.active]: isActive,\n [s.disabled]: disabled,\n },\n classes?.icon\n ),\n keybinding: classNames(s.keybinding, classes?.keybinding),\n})\n"],"names":["ButtonRender","children","className","Component","disabled","fullWidth","icon","shortcut","variant","props","ref","content","jsxs","s","jsx","classNames","Button","forwardRef","CardRoot","CardContent","ignoreHeader","CardHeader","Card","DropDownContext","createContext","useDropDownContext","context","useContext","openDropDownStack","Root","closeOnEsc","closeOnOutsideClick","defaultVisible","visible","setVisible","useState","rootRef","useRef","toggle","close","index","useEffect","handleClickOutside","event","handleKeyDown","styles","Trigger","Content","fixedPosition","horizontal","vertical","DropDown","DialogContext","React","externalIsOpen","onStateChange","dialogRef","internalIsOpen","setInternalIsOpen","isOpen","setIsOpen","state","as","closeOnBackdropClick","_","handleBackdropClick","e","Close","Title","Separator","Dialog","SidebarContext","useSidebarContext","onClickHandler","position","contentRef","Sidebar","SwitcherButtons","componentValues","containerProps","onChange","selectedValue","slot","activeValue","setActiveValue","onChangeHandler","value","style","button","Fragment","Caption","Header","Row","onClick","Head","Body","Cell","Footer","Table","TextField","error","label","required","showPassword","setShowPassword","handleChange","sharedClassName","resolvedFragment","inputType","restProps","isSearch","isPassword","passwordFieldNextType","Eye","prev","EyeOff","X","Search","ThemeContext","ThemeProvider","defaultTheme","getTheme","theme","setTheme","useTheme","setDataThemeHandler","savedTheme","saveTheme","prefersDarkScheme","ToolIconButton","classes","isActive","keybinding","title","getClasses"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { D as H, B as F, u as J } from "./ToolIconButton-mUJN5Mev.js";
2
- import { a as an, d as ln, b as rn, c as dn, C as hn, e as _n, g as un, S as mn, h as pn, T as gn, i as fn, j as yn, f as kn } from "./ToolIconButton-mUJN5Mev.js";
1
+ import { D as H, B as F, u as J } from "./ToolIconButton-uQjlHv_6.js";
2
+ import { a as an, d as ln, b as rn, c as dn, C as hn, e as _n, g as un, S as mn, h as pn, T as gn, i as fn, j as yn, f as kn } from "./ToolIconButton-uQjlHv_6.js";
3
3
  import { jsx as s, jsxs as g, Fragment as Q } from "react/jsx-runtime";
4
4
  import m from "classnames";
5
5
  import { useState as k, useEffect as K, useCallback as M, useRef as G } from "react";
package/dist/index2.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
2
  import d from "classnames";
3
3
  import { HardDriveDownload as m, Share2 as _, PencilRuler as y } from "lucide-react";
4
- import { e as c, B as p } from "./ToolIconButton-mUJN5Mev.js";
5
- import { k as R, u as M } from "./ToolIconButton-mUJN5Mev.js";
4
+ import { e as c, B as p } from "./ToolIconButton-uQjlHv_6.js";
5
+ import { k as R, u as M } from "./ToolIconButton-uQjlHv_6.js";
6
6
  import "react";
7
7
  const L = "_root_y0usf_1", x = "_cardList_y0usf_5", P = "_cardItemHeader_y0usf_16", w = "_cardItemHeaderIcon_y0usf_23", z = "_cardItemHeaderTitle_y0usf_28", j = "_cardItemHeaderAction_y0usf_34", A = "_cardItemContentImg_y0usf_38", h = "_content_1iqyy_1", u = "_card_1iqyy_5", g = "_cardList_1iqyy_12", I = "_cardIcon_1iqyy_19", f = "_cardTitle_1iqyy_28", v = "_cardDescription_1iqyy_33", N = "_red_1iqyy_41", S = "_green_1iqyy_45", b = "_primary_1iqyy_49", r = {
8
8
  content: h,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@yourbestsoft/studio-screen-ui-kit",
3
3
  "private": false,
4
- "version": "0.0.4",
4
+ "version": "0.0.5",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolIconButton-mUJN5Mev.js","sources":["../src/components/button/Button.tsx","../src/components/card/Card.tsx","../src/components/drop-down/DropDown.tsx","../src/components/dialog/Dialog.tsx","../src/components/sidebar/Sidebar.tsx","../src/components/switcher-buttons/SwitcherButtons.tsx","../src/components/table/Table.tsx","../src/components/text-field/text-field.tsx","../src/features/theme-provider/ThemeProvider.tsx","../src/components/toolbar/tool-icon-button/ToolIconButton.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport {\n ComponentPropsWithoutRef,\n ElementRef,\n ElementType,\n ForwardedRef,\n ReactNode,\n forwardRef,\n} from 'react'\n\nimport { Replace } from '../../utils'\nimport s from './button.module.scss'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'text'\ntype OwnProps<T extends ElementType> = {\n children?: ReactNode\n className?: string\n component?: T\n disabled?: boolean\n fullWidth?: boolean\n variant?: ButtonVariant\n icon?: ReactNode\n shortcut?: string\n}\n\nexport type ButtonProps<T extends ElementType> = Replace<\n ComponentPropsWithoutRef<T>,\n OwnProps<T>\n>\n\ntype ButtonRenderType = {\n (\n props: ButtonProps<'button'>,\n ref?: ForwardedRef<ElementRef<'button'>>\n ): ReactNode\n (\n props: ButtonProps<ElementType>,\n ref?: ForwardedRef<ElementRef<ElementType>>\n ): ReactNode\n}\n\nexport type ButtonComponent = {\n <T extends ElementType = 'button'>(\n props: ButtonProps<T> & { ref?: ForwardedRef<ElementRef<T>> }\n ): ReactNode\n}\n\nexport const ButtonRender: ButtonRenderType = (\n {\n children,\n className,\n component: Component = 'button',\n disabled,\n fullWidth,\n icon,\n shortcut,\n variant = 'primary',\n ...props\n },\n ref\n) => {\n const content = (\n <div className={s.buttonWithIcon}>\n <div className={s.content}>\n {icon}\n {children}\n </div>\n <div className={s.shortcut}>{shortcut}</div>\n </div>\n )\n\n return (\n <Component\n className={classNames(\n s[variant],\n fullWidth && s.fullWidth,\n disabled && s.disabled,\n icon && s.icon,\n className\n )}\n children={icon ? content : children}\n disabled={disabled}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport const Button: ButtonComponent = forwardRef(ButtonRender)\n","import classNames from 'classnames'\nimport { ComponentPropsWithoutRef, ElementRef, forwardRef } from 'react'\n\nimport s from './card.module.scss'\n\nexport type CardProps = ComponentPropsWithoutRef<'div'>\n\nexport const CardRoot = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.root, className)} ref={ref} {...props} />\n )\n)\n\nexport type CardContentProps = CardProps & { ignoreHeader?: boolean }\n\nexport const CardContent = forwardRef<ElementRef<'div'>, CardContentProps>(\n ({ className, ignoreHeader, ...props }, ref) => (\n <div\n className={classNames(\n s.content,\n !ignoreHeader && s.contentAfterHeader,\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nexport const CardHeader = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.header, className)} ref={ref} {...props} />\n )\n)\n\nexport const Card = Object.assign(CardRoot, {\n Content: CardContent,\n Header: CardHeader,\n Root: CardRoot,\n})\n","import classNames from 'classnames'\nimport {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport styles from './drop-down.module.scss'\n\ninterface DropDownContextType {\n visible: boolean\n toggle: () => void\n close: () => void\n}\n\nconst DropDownContext = createContext<DropDownContextType | undefined>(\n undefined\n)\n\nconst useDropDownContext = () => {\n const context = useContext(DropDownContext)\n if (!context) {\n throw new Error('useDropDownContext must be used within a DropDown.Root')\n }\n return context\n}\n\ninterface RootProps {\n children: ReactNode\n defaultVisible?: boolean\n closeOnOutsideClick?: boolean\n closeOnEsc?: boolean\n}\n\nconst openDropDownStack: HTMLElement[] = []\n\nconst Root = ({\n children,\n closeOnEsc = true,\n closeOnOutsideClick = true,\n defaultVisible = false,\n}: RootProps) => {\n const [visible, setVisible] = useState(defaultVisible)\n const rootRef = useRef<HTMLDivElement>(null)\n\n const toggle = () => {\n if (!visible) {\n setVisible(true)\n if (rootRef.current) {\n openDropDownStack.push(rootRef.current)\n }\n } else {\n close()\n }\n }\n\n const close = () => {\n setVisible(false)\n if (rootRef.current) {\n const index = openDropDownStack.indexOf(rootRef.current)\n if (index !== -1) {\n openDropDownStack.splice(index, 1)\n }\n }\n }\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n close()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [closeOnOutsideClick])\n\n useEffect(() => {\n if (!closeOnEsc) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && visible) {\n const lastDropDown = openDropDownStack[openDropDownStack.length - 1]\n if (lastDropDown === rootRef.current) {\n close()\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [closeOnEsc, visible])\n\n return (\n <DropDownContext.Provider value={{ close, toggle, visible }}>\n <div ref={rootRef} className={styles.root}>\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\ninterface TriggerProps {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: TriggerProps) => {\n const { toggle } = useDropDownContext()\n return <div onClick={toggle}>{children}</div>\n}\n\ninterface ContentProps {\n children: ReactNode\n horizontal?: 'left' | 'center' | 'right'\n vertical?: 'top' | 'bottom'\n className?: string\n fixedPosition?: boolean\n}\n\nconst Content = ({\n children,\n className,\n fixedPosition = false,\n horizontal = 'left',\n vertical = 'bottom',\n}: ContentProps) => {\n const { visible } = useDropDownContext()\n\n if (!visible) return null\n\n return (\n <div\n className={classNames(\n styles.dropdownContent,\n styles[horizontal],\n styles[vertical],\n { [styles.fixedPosition]: fixedPosition },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nexport const DropDown = { Content, Root, Trigger }\n","import classNames from 'classnames'\nimport React, {\n useState,\n useRef,\n ReactNode,\n forwardRef,\n MouseEvent,\n ElementType,\n useContext,\n} from 'react'\n\nimport styles from './dialog.module.scss'\n\ninterface RootProps {\n children: React.ReactNode\n isOpen?: boolean\n onStateChange?: (isOpen: boolean) => void\n}\n\ninterface DialogContextProps {\n dialogRef: React.RefObject<HTMLDialogElement>\n isOpen: boolean\n setIsOpen: (state: boolean) => void\n}\nconst DialogContext = React.createContext<DialogContextProps | null>(null)\n\nconst Root = ({\n children,\n isOpen: externalIsOpen,\n onStateChange,\n}: RootProps) => {\n const dialogRef = useRef<HTMLDialogElement | null>(null)\n const [internalIsOpen, setInternalIsOpen] = useState(false)\n\n const isOpen = externalIsOpen !== undefined ? externalIsOpen : internalIsOpen\n const setIsOpen = (state: boolean) => {\n if (externalIsOpen === undefined) {\n setInternalIsOpen(state)\n }\n if (onStateChange) {\n onStateChange(state)\n }\n }\n\n return (\n <DialogContext.Provider value={{ dialogRef, isOpen, setIsOpen }}>\n <div className={styles.dialogRoot}>{children}</div>\n </DialogContext.Provider>\n )\n}\n\ninterface TriggerProps<T extends ElementType = 'button'> {\n as?: T\n children: ReactNode\n}\n\nconst Trigger = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: TriggerProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Trigger must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.showModal()\n setIsOpen(true)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogTrigger}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface ContentProps {\n children: ReactNode\n className?: string\n closeOnBackdropClick?: boolean\n}\n\nconst Content = forwardRef<HTMLDialogElement, ContentProps>(\n ({ children, className, closeOnBackdropClick = true }, _) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Content must be used within a Dialog.Root')\n\n const { dialogRef, isOpen, setIsOpen } = context\n\n const handleBackdropClick = (event: MouseEvent<HTMLDialogElement>) => {\n if (closeOnBackdropClick && event.target === dialogRef.current) {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n }\n\n return (\n <dialog\n ref={dialogRef}\n className={classNames(styles.dialogContent, className)}\n onClick={handleBackdropClick}\n open={isOpen}\n >\n <div onClick={(e) => e.stopPropagation()}>{children}</div>\n </dialog>\n )\n }\n)\n\ninterface CloseProps<T extends ElementType = 'button'> {\n as?: T\n children?: ReactNode\n}\n\nconst Close = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: CloseProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Close must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogClose}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface TitleProps {\n children: ReactNode\n className?: string\n}\n\nconst Title = ({ children, className }: TitleProps) => {\n return (\n <h2 className={classNames(styles.dialogTitle, className)}>{children}</h2>\n )\n}\n\ninterface SeparatorProps {}\n\nconst Separator = ({}: SeparatorProps) => {\n return <div className={styles.dialogSeparator} />\n}\n\nexport const Dialog = {\n Close,\n Content,\n Root,\n Separator,\n Title,\n Trigger,\n}\n","import classNames from 'classnames'\nimport {\n createContext,\n MouseEvent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport styles from './sidebar.module.scss'\n\ntype SidebarContextProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n}\n\nexport const SidebarContext = createContext<SidebarContextProps | undefined>(\n undefined\n)\n\nexport const useSidebarContext = () => {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebarContext must be used within a SidebarProvider')\n }\n return context\n}\n\ntype SidebarRootProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n children: ReactNode\n}\n\nconst Root = ({ children, isOpen, setIsOpen }: SidebarRootProps) => {\n const [opened, setOpened] = useState(isOpen)\n\n return (\n <SidebarContext.Provider\n value={{\n isOpen: opened,\n setIsOpen: (open) => {\n setOpened(open)\n setIsOpen(open)\n },\n }}\n >\n {children}\n </SidebarContext.Provider>\n )\n}\n\ntype SidebarTriggerProps = {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: SidebarTriggerProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsOpen(true)\n }\n\n return (\n <div className={styles.trigger} onClick={onClickHandler}>\n {children}\n </div>\n )\n}\n\ntype SidebarContentProps = {\n position?: 'left' | 'right' | 'bottom' | 'top'\n children: ReactNode\n className?: string\n closeOnOutsideClick?: boolean\n}\n\nconst Content = ({\n children,\n className,\n closeOnOutsideClick = true,\n position = 'right',\n}: SidebarContentProps) => {\n const { isOpen, setIsOpen } = useSidebarContext()\n const contentRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: Event) => {\n if (\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen, setIsOpen, closeOnOutsideClick])\n\n return (\n <div\n ref={contentRef}\n className={classNames(\n styles[position],\n styles.content,\n {\n [styles.close]: !isOpen,\n [styles.open]: isOpen,\n },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\ntype SidebarCloseProps = {\n children: ReactNode\n}\n\nconst Close = ({ children }: SidebarCloseProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n setIsOpen(false)\n }\n\n return (\n <button className={styles.close} onClick={onClickHandler}>\n {children}\n </button>\n )\n}\n\nexport const Sidebar = {\n Close,\n Content,\n Root,\n Trigger,\n}\n","import classNames from 'classnames'\nimport React, { ElementType, forwardRef, ReactNode, useState } from 'react'\n\nimport style from './switcher-buttons.module.scss'\n\ninterface ComponentValues {\n value: string\n [key: string]: any\n}\n\ninterface SwitcherProps {\n componentValues: ComponentValues[]\n defaultValue?: string\n onChange?: (value: string) => void\n selectedValue?: string\n component: ElementType\n containerProps?: React.HTMLAttributes<HTMLDivElement>\n slot?: ReactNode\n className?: string\n}\n\nexport const SwitcherButtons = forwardRef<HTMLDivElement, SwitcherProps>(\n (\n {\n className,\n component: Component,\n componentValues,\n containerProps,\n onChange,\n selectedValue,\n slot,\n },\n ref\n ) => {\n const [activeValue, setActiveValue] = useState<string>(\n selectedValue || componentValues[0].value\n )\n\n const onChangeHandler = (value: string) => {\n setActiveValue(value)\n if (onChange) onChange(value)\n }\n\n return (\n <div ref={ref} className={style.switcher} {...containerProps}>\n <div className={classNames(style.buttons, className)}>\n {componentValues.map((button, index) => (\n <Component\n key={index}\n {...button}\n selected={activeValue === button.value}\n onClick={() => onChangeHandler(button.value)}\n />\n ))}\n </div>\n {slot && (\n <>\n <div className={style.separator} />\n {slot}\n </>\n )}\n </div>\n )\n }\n)\n","import classNames from 'classnames'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport s from './table.module.scss'\n\ninterface Props {\n children: ReactNode\n className?: string\n}\n\ninterface RootProps extends Props {}\nconst Root = ({ children, className }: RootProps) => {\n return <table className={classNames(s.root, className)}>{children}</table>\n}\n\ninterface CaptionProps extends Props {}\nconst Caption = ({ children, className }: CaptionProps) => {\n return (\n <caption className={classNames(s.caption, className)}>{children}</caption>\n )\n}\n\ninterface HeaderProps extends Props {}\nconst Header = ({ children, className }: HeaderProps) => {\n return <thead className={classNames(s.header, className)}>{children}</thead>\n}\n\ninterface RowProps extends Props {\n onClick?: MouseEventHandler<HTMLTableRowElement> | undefined\n}\nconst Row = ({ children, className, onClick }: RowProps) => {\n return (\n <tr className={classNames(s.row, className)} onClick={onClick}>\n {children}\n </tr>\n )\n}\n\ninterface HeadProps extends Props {}\nconst Head = ({ children, className }: HeadProps) => {\n return <th className={classNames(s.head, className)}>{children}</th>\n}\n\ninterface BodyProps extends Props {}\nconst Body = ({ children, className }: BodyProps) => {\n return <tbody className={classNames(s.body, className)}>{children}</tbody>\n}\n\ninterface CellProps extends Props {}\nconst Cell = ({ children, className }: CellProps) => {\n return <td className={classNames(s.cell, className)}>{children}</td>\n}\n\ninterface FooterProps extends Props {}\nconst Footer = ({ children, className }: FooterProps) => {\n return <tfoot className={classNames(s.footer, className)}>{children}</tfoot>\n}\n\nexport const Table = Object.assign(Root, {\n Body,\n Caption,\n Cell,\n Footer,\n Head,\n Header,\n Root,\n Row,\n})\n","import {\n ChangeEvent,\n ForwardedRef,\n ReactNode,\n forwardRef,\n useState,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport s from './text-field.module.scss'\nimport { X, Eye, Search, EyeOff } from 'lucide-react'\n\ntype SharedProps = {\n className?: string\n disabled?: boolean\n error?: string\n label?: string\n onBlur?: () => void\n onChange: (value: string) => void\n onFocus?: () => void\n placeholder?: string\n required?: boolean\n value: string\n}\n\nexport type TextFieldProps =\n | (SharedProps & {\n as?: 'input'\n inputType?: 'password' | 'search' | 'text'\n })\n | (SharedProps & { as: 'textarea' })\n\nexport type TextFieldComponent = {\n (\n props: Extract<TextFieldProps, { as: 'textarea' }> & {\n ref?: ForwardedRef<HTMLTextAreaElement>\n }\n ): ReactNode\n (\n props: Extract<TextFieldProps, { as?: 'input' }> & {\n ref?: ForwardedRef<HTMLInputElement>\n }\n ): ReactNode\n}\n\nexport const TextField: TextFieldComponent = forwardRef<\n HTMLInputElement | HTMLTextAreaElement,\n TextFieldProps\n>(({ className, error, label, onChange, required, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false)\n\n const handleChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => onChange(e.currentTarget.value)\n\n const sharedClassName = classNames(s.input, error && s.error, className)\n let resolvedFragment: ReactNode\n\n if (!props.as || props.as === 'input') {\n const { as, inputType, ...restProps } = props\n const isSearch = inputType === 'search'\n const isPassword = inputType === 'password'\n const passwordFieldNextType = showPassword ? 'text' : 'password'\n\n resolvedFragment = (\n <>\n <input\n className={classNames(sharedClassName, isSearch && s.inputSearch)}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLInputElement>}\n type={isPassword ? passwordFieldNextType : inputType}\n {...restProps}\n />\n {isPassword &&\n (showPassword ? (\n <Eye\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ) : (\n <EyeOff\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ))}\n {isSearch && props.value && (\n <X\n onClick={() => onChange('')}\n className={classNames(\n s.button,\n label && s.buttonWithLabel,\n s.resetSearchValue\n )}\n strokeWidth={2.5}\n size={24}\n />\n )}\n {isSearch && (\n <Search\n className={classNames(\n s.searchOutline,\n label && s.searchOutlineWithLabel\n )}\n size={20}\n />\n )}\n </>\n )\n }\n\n if (props.as === 'textarea') {\n const { as, ...restProps } = props\n\n resolvedFragment = (\n <textarea\n className={sharedClassName}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLTextAreaElement>}\n {...restProps}\n />\n )\n }\n\n return (\n <div className={s.root}>\n <span className={s.title}>\n {label}\n {required && <span className={s.titleError}>*</span>}\n </span>\n <div className={s.inputContainer}>{resolvedFragment}</div>\n <div className={s.errorMessage}>{error}</div>\n </div>\n )\n})\n","import { createContext, useContext, useState, ReactNode } from 'react'\n\nexport type Theme = 'light' | 'dark'\nexport type ThemeValue = Theme | 'system'\n\ninterface ThemeContextType {\n theme: ThemeValue\n setTheme: (theme: ThemeValue) => void\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined)\n\nexport const ThemeProvider = ({ children }: { children: ReactNode }) => {\n const defaultTheme = getTheme() || 'system'\n const [theme, setTheme] = useState<ThemeValue>(defaultTheme)\n\n return (\n <ThemeContext.Provider value={{ setTheme, theme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext)\n\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n\n setDataThemeHandler(context.theme)\n\n return context\n}\n\nconst setDataThemeHandler = (value: ThemeValue) => {\n const savedTheme = getTheme()\n\n saveTheme(value || savedTheme)\n}\n\nconst saveTheme = (theme: ThemeValue) => {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)')\n\n if (theme === 'system') {\n const defaultTheme = prefersDarkScheme.matches ? 'dark' : 'light'\n localStorage.setItem('theme', theme)\n setTheme(defaultTheme)\n } else {\n localStorage.setItem('theme', theme)\n setTheme(theme)\n }\n}\n\nconst setTheme = (theme: Theme) => {\n document.documentElement.setAttribute('data-theme', theme)\n}\n\nconst getTheme = () => {\n const theme = localStorage.getItem('theme')\n if (theme) return theme as ThemeValue\n}\n","import classNames from 'classnames'\nimport { ReactNode, forwardRef } from 'react'\n\nimport s from './tool-icon-button.module.scss'\n\nexport type ToolbarSlot = 'icon' | 'keybinding'\nexport type ToolbarClasses = { [P in ToolbarSlot]?: string }\n\ninterface Props {\n title?: string\n icon: ReactNode\n keybinding?: string\n aria_label?: string\n aria_keyshortcuts?: string\n classes?: ToolbarClasses\n name?: string\n id?: string\n isActive?: boolean\n disabled?: boolean\n onClick?: () => void\n}\n\nexport const ToolIconButton = forwardRef<HTMLDivElement, Props>(\n (props, ref) => {\n const { classes, disabled, icon, isActive, keybinding, onClick, title } =\n props\n\n const styles = getClasses(classes, isActive, disabled)\n\n return (\n <label className={s.root} title={title}>\n <div\n className={styles.icon}\n ref={ref}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-pressed={isActive}\n aria-disabled={disabled}\n onClick={!disabled ? onClick : undefined}\n >\n {icon}\n </div>\n {keybinding && <span className={styles.keybinding}>{keybinding}</span>}\n </label>\n )\n }\n)\n\nconst getClasses = (\n classes?: ToolbarClasses,\n isActive?: boolean,\n disabled?: boolean\n): Required<ToolbarClasses> => ({\n icon: classNames(\n s.icon,\n {\n [s.active]: isActive,\n [s.disabled]: disabled,\n },\n classes?.icon\n ),\n keybinding: classNames(s.keybinding, classes?.keybinding),\n})\n"],"names":["ButtonRender","children","className","Component","disabled","fullWidth","icon","shortcut","variant","props","ref","content","jsxs","s","jsx","classNames","Button","forwardRef","CardRoot","CardContent","ignoreHeader","CardHeader","Card","DropDownContext","createContext","useDropDownContext","context","useContext","openDropDownStack","Root","closeOnEsc","closeOnOutsideClick","defaultVisible","visible","setVisible","useState","rootRef","useRef","toggle","close","index","useEffect","handleClickOutside","event","handleKeyDown","styles","Trigger","Content","fixedPosition","horizontal","vertical","DropDown","DialogContext","React","externalIsOpen","onStateChange","dialogRef","internalIsOpen","setInternalIsOpen","isOpen","setIsOpen","state","as","closeOnBackdropClick","_","handleBackdropClick","e","Close","Title","Separator","Dialog","SidebarContext","useSidebarContext","opened","setOpened","open","onClickHandler","position","contentRef","Sidebar","SwitcherButtons","componentValues","containerProps","onChange","selectedValue","slot","activeValue","setActiveValue","onChangeHandler","value","style","button","Fragment","Caption","Header","Row","onClick","Head","Body","Cell","Footer","Table","TextField","error","label","required","showPassword","setShowPassword","handleChange","sharedClassName","resolvedFragment","inputType","restProps","isSearch","isPassword","passwordFieldNextType","Eye","prev","EyeOff","X","Search","ThemeContext","ThemeProvider","defaultTheme","getTheme","theme","setTheme","useTheme","setDataThemeHandler","savedTheme","saveTheme","prefersDarkScheme","ToolIconButton","classes","isActive","keybinding","title","getClasses"],"mappings":"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"}