ics-ui-kit 0.1.0 → 0.1.1

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 (162) hide show
  1. package/README.md +36 -36
  2. package/dist/AlertContext-CxjW1LVL.js.map +1 -1
  3. package/dist/AlertIcon-5B6AgZpe.js.map +1 -1
  4. package/dist/Button-Dg89xRSi.js.map +1 -1
  5. package/dist/ButtonBase-e6qyv6mD.js.map +1 -1
  6. package/dist/{CheckboxField-B6ojieD7.js → CheckboxField-cX09-eBX.js} +2 -2
  7. package/dist/CheckboxField-cX09-eBX.js.map +1 -0
  8. package/dist/Command-BhbfL5wm.js.map +1 -1
  9. package/dist/ComponentVariantProvider-B0SFUaXB.js.map +1 -1
  10. package/dist/Description-BTPMlTT-.js.map +1 -1
  11. package/dist/Dialog-ByiJIDhl.js.map +1 -1
  12. package/dist/Divider-DPW5ZhZ8.js.map +1 -1
  13. package/dist/EmptyState-DRKjscH-.js.map +1 -1
  14. package/dist/ErrorState-B26k67-z.js.map +1 -1
  15. package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
  16. package/dist/{Field-CSvS9f_a.js → Field-CKl59qUB.js} +2 -2
  17. package/dist/Field-CKl59qUB.js.map +1 -0
  18. package/dist/{FieldLabel-BA0y5lhr.js → FieldLabel-QJ4rJFOi.js} +2 -2
  19. package/dist/FieldLabel-QJ4rJFOi.js.map +1 -0
  20. package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
  21. package/dist/{FormFooterTemplate-BPspyDbr.js → FormFooterTemplate-DPB6Dkxn.js} +2 -2
  22. package/dist/FormFooterTemplate-DPB6Dkxn.js.map +1 -0
  23. package/dist/FormHeader--F6b2aRk.js.map +1 -1
  24. package/dist/{FormStack-DvlFQQiP.js → FormStack-B4QOuYgO.js} +3 -3
  25. package/dist/FormStack-B4QOuYgO.js.map +1 -0
  26. package/dist/HintState-BxrCAWqq.js.map +1 -1
  27. package/dist/Icon-DH3ev9GK.js.map +1 -1
  28. package/dist/IconButton-DwkpNgn3.js.map +1 -1
  29. package/dist/IconTooltip-CKJKGHbk.js +11 -0
  30. package/dist/IconTooltip-CKJKGHbk.js.map +1 -0
  31. package/dist/Indicator-AqxHWPA9.js.map +1 -1
  32. package/dist/InputGroup-BvD9Igmt.js.map +1 -1
  33. package/dist/InputOTP-B2e1nfSO.js.map +1 -1
  34. package/dist/Loader-BpHiL6W-.js.map +1 -1
  35. package/dist/MenuItem-pvsONHlh.js.map +1 -1
  36. package/dist/MenuItemShortcut-DgPol9Nz.js.map +1 -1
  37. package/dist/MenuItemText-7uPl9P3z.js.map +1 -1
  38. package/dist/Overlay-2XMlxApi.js.map +1 -1
  39. package/dist/Popover-Dvr7y0YY.js.map +1 -1
  40. package/dist/RichButton-DuPTenmS.js.map +1 -1
  41. package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
  42. package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
  43. package/dist/SearchSelectTag-DFCX9zT1.js.map +1 -1
  44. package/dist/Select-DRwv6-eZ.js.map +1 -1
  45. package/dist/Sheet-rtwmzm2-.js.map +1 -1
  46. package/dist/Shortcut-D8L15_ed.js.map +1 -1
  47. package/dist/Skeleton-y6I-i9q5.js.map +1 -1
  48. package/dist/Tag-DdHXTyKF.js.map +1 -1
  49. package/dist/Text-DeBE8AKl.js.map +1 -1
  50. package/dist/TextInput-Cj50ImXi.js.map +1 -1
  51. package/dist/TextOverflowTooltip-DlUgic5y.js.map +1 -1
  52. package/dist/Toggle-v_HT3Gm2.js.map +1 -1
  53. package/dist/Tooltip-C4rVuWr4.js.map +1 -1
  54. package/dist/TriggerButton-CfDObWP9.js.map +1 -1
  55. package/dist/blocks/auth/otp-form.js +1 -1
  56. package/dist/blocks/auth/otp-form.js.map +1 -1
  57. package/dist/cn-dsXlqdJg.js.map +1 -1
  58. package/dist/components/alert-dialog.js.map +1 -1
  59. package/dist/components/alert.js.map +1 -1
  60. package/dist/components/avatar.js.map +1 -1
  61. package/dist/components/badge.js.map +1 -1
  62. package/dist/components/banner.js.map +1 -1
  63. package/dist/components/breadcrumb.js.map +1 -1
  64. package/dist/components/button.js.map +1 -1
  65. package/dist/components/calendar.js.map +1 -1
  66. package/dist/components/card.js.map +1 -1
  67. package/dist/components/carousel.js.map +1 -1
  68. package/dist/components/checkbox.js +1 -1
  69. package/dist/components/collapsible.js.map +1 -1
  70. package/dist/components/color-tile.js.map +1 -1
  71. package/dist/components/container.js.map +1 -1
  72. package/dist/components/counter.js.map +1 -1
  73. package/dist/components/dialog.js +1 -1
  74. package/dist/components/dialog.js.map +1 -1
  75. package/dist/components/divider.js.map +1 -1
  76. package/dist/components/drawer.js +1 -1
  77. package/dist/components/drawer.js.map +1 -1
  78. package/dist/components/dropdown.js.map +1 -1
  79. package/dist/components/error-state.js.map +1 -1
  80. package/dist/components/field.js +1 -1
  81. package/dist/components/file-upload.js.map +1 -1
  82. package/dist/components/form.js +3 -3
  83. package/dist/components/form.js.map +1 -1
  84. package/dist/components/icon-tooltip.js +1 -1
  85. package/dist/components/image-placeholder.js.map +1 -1
  86. package/dist/components/image-preview.js.map +1 -1
  87. package/dist/components/image-uploader.js.map +1 -1
  88. package/dist/components/input.js.map +1 -1
  89. package/dist/components/label.js +1 -1
  90. package/dist/components/menu-item.js.map +1 -1
  91. package/dist/components/page-state.js.map +1 -1
  92. package/dist/components/portal-container.js.map +1 -1
  93. package/dist/components/progress-circle.js.map +1 -1
  94. package/dist/components/progress.js.map +1 -1
  95. package/dist/components/prose.js.map +1 -1
  96. package/dist/components/radio-group.js.map +1 -1
  97. package/dist/components/resizable.js.map +1 -1
  98. package/dist/components/scheduler.js.map +1 -1
  99. package/dist/components/search-select.js.map +1 -1
  100. package/dist/components/sidebar.js.map +1 -1
  101. package/dist/components/slider.js.map +1 -1
  102. package/dist/components/stepper.js.map +1 -1
  103. package/dist/components/switch/Switch.d.ts +2 -1
  104. package/dist/components/switch.js +67 -52
  105. package/dist/components/switch.js.map +1 -1
  106. package/dist/components/system-state.js.map +1 -1
  107. package/dist/components/table.js.map +1 -1
  108. package/dist/components/tabs.js.map +1 -1
  109. package/dist/components/tag-input.js.map +1 -1
  110. package/dist/components/textarea.js.map +1 -1
  111. package/dist/components/timer.js.map +1 -1
  112. package/dist/components/toast.js.map +1 -1
  113. package/dist/components/toggle-group.js.map +1 -1
  114. package/dist/components/toolbar.js.map +1 -1
  115. package/dist/index-0ioNhtNM.js.map +1 -1
  116. package/dist/index-437EL2iq.js.map +1 -1
  117. package/dist/index-BGQepRFJ.js.map +1 -1
  118. package/dist/index-BVqs-uqP.js.map +1 -1
  119. package/dist/index-BZPx6jYI.js.map +1 -1
  120. package/dist/index-Bb23HztA.js.map +1 -1
  121. package/dist/index-BpWB3aFK.js.map +1 -1
  122. package/dist/index-ByaXH_ih.js.map +1 -1
  123. package/dist/index-BzCriPiK.js.map +1 -1
  124. package/dist/index-CCKe-Mpx.js.map +1 -1
  125. package/dist/index-CFaU3UXv.js.map +1 -1
  126. package/dist/index-CLuiUUQ8.js.map +1 -1
  127. package/dist/index-CQD-Njgt.js.map +1 -1
  128. package/dist/index-CmBeyp2d.js.map +1 -1
  129. package/dist/index-DFZozV_h.js.map +1 -1
  130. package/dist/index-DHsfW5Rj.js.map +1 -1
  131. package/dist/index-DHyZ_0Ut.js.map +1 -1
  132. package/dist/index-DLcqcWxM.js.map +1 -1
  133. package/dist/index-DRo26PBK.js.map +1 -1
  134. package/dist/index-DnnQs07z.js.map +1 -1
  135. package/dist/index-Uiy0Xwy2.js.map +1 -1
  136. package/dist/index-_ITz1IyW.js.map +1 -1
  137. package/dist/index.js.map +1 -1
  138. package/dist/inputBaseStyles-DbzD_jvq.js.map +1 -1
  139. package/dist/lib/utils/variants.d.ts +1 -1
  140. package/dist/lib/utils.js.map +1 -1
  141. package/dist/styles-scoped.css +6239 -6218
  142. package/dist/styles.css +5978 -5957
  143. package/dist/theme.css +329 -329
  144. package/dist/types/css.d.ts +4 -4
  145. package/dist/useBreakpoints-D8wKOvil.js.map +1 -1
  146. package/dist/useDebounce-BRah78CF.js.map +1 -1
  147. package/dist/useFileUpload-iDag0iqM.js.map +1 -1
  148. package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
  149. package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
  150. package/dist/usePortalContainer-ae6EzS08.js.map +1 -1
  151. package/dist/vendors/tanstack/react-table.js.map +1 -1
  152. package/dist/zod-BMNoK3aM.js.map +1 -1
  153. package/package.json +183 -183
  154. package/tailwind.preset.js +441 -440
  155. package/dist/CheckboxField-B6ojieD7.js.map +0 -1
  156. package/dist/Field-CSvS9f_a.js.map +0 -1
  157. package/dist/FieldLabel-BA0y5lhr.js.map +0 -1
  158. package/dist/FormFooterTemplate-BPspyDbr.js.map +0 -1
  159. package/dist/FormStack-DvlFQQiP.js.map +0 -1
  160. package/dist/IconTooltip-DhkXc8Uy.js +0 -11
  161. package/dist/IconTooltip-DhkXc8Uy.js.map +0 -1
  162. package/dist/design-tokens.source.json +0 -1
@@ -1,105 +1,106 @@
1
1
  import { jsxs as y, jsx as s } from "react/jsx-runtime";
2
2
  import * as l from "react";
3
3
  import D, { useId as M } from "react";
4
- import { P as g, c as H } from "../index-CFaU3UXv.js";
4
+ import { P as S, c as H } from "../index-CFaU3UXv.js";
5
5
  import { u as C } from "../index-DLcqcWxM.js";
6
6
  import { c as j } from "../index-DFZozV_h.js";
7
7
  import { u as A } from "../index-437EL2iq.js";
8
8
  import { u as L } from "../index-BZPx6jYI.js";
9
9
  import { u as U } from "../index-BGQepRFJ.js";
10
10
  import { T as N } from "../index-BVqs-uqP.js";
11
- import { F as W } from "../FieldLabel-BA0y5lhr.js";
11
+ import { u as V } from "../ComponentVariantProvider-B0SFUaXB.js";
12
+ import { F as W } from "../FieldLabel-QJ4rJFOi.js";
12
13
  import { D as q } from "../Description-BTPMlTT-.js";
13
- var S = "Switch", [O, le] = j(S), [V, $] = O(S), P = l.forwardRef(
14
- (t, c) => {
14
+ var g = "Switch", [O, ue] = j(g), [$, X] = O(g), P = l.forwardRef(
15
+ (t, n) => {
15
16
  const {
16
17
  __scopeSwitch: e,
17
18
  name: o,
18
19
  checked: r,
19
- defaultChecked: n,
20
- required: d,
20
+ defaultChecked: i,
21
+ required: c,
21
22
  disabled: a,
22
23
  value: u = "on",
23
24
  onCheckedChange: f,
24
- form: i,
25
+ form: d,
25
26
  ...b
26
- } = t, [h, m] = l.useState(null), w = C(c, (x) => m(x)), p = l.useRef(!1), k = h ? i || !!h.closest("form") : !0, [v, B] = A({
27
+ } = t, [p, m] = l.useState(null), v = C(n, (x) => m(x)), h = l.useRef(!1), k = p ? d || !!p.closest("form") : !0, [w, B] = A({
27
28
  prop: r,
28
- defaultProp: n ?? !1,
29
+ defaultProp: i ?? !1,
29
30
  onChange: f,
30
- caller: S
31
+ caller: g
31
32
  });
32
- return /* @__PURE__ */ y(V, { scope: e, checked: v, disabled: a, children: [
33
+ return /* @__PURE__ */ y($, { scope: e, checked: w, disabled: a, children: [
33
34
  /* @__PURE__ */ s(
34
- g.button,
35
+ S.button,
35
36
  {
36
37
  type: "button",
37
38
  role: "switch",
38
- "aria-checked": v,
39
- "aria-required": d,
40
- "data-state": I(v),
39
+ "aria-checked": w,
40
+ "aria-required": c,
41
+ "data-state": I(w),
41
42
  "data-disabled": a ? "" : void 0,
42
43
  disabled: a,
43
44
  value: u,
44
45
  ...b,
45
- ref: w,
46
+ ref: v,
46
47
  onClick: H(t.onClick, (x) => {
47
- B((z) => !z), k && (p.current = x.isPropagationStopped(), p.current || x.stopPropagation());
48
+ B((z) => !z), k && (h.current = x.isPropagationStopped(), h.current || x.stopPropagation());
48
49
  })
49
50
  }
50
51
  ),
51
52
  k && /* @__PURE__ */ s(
52
53
  E,
53
54
  {
54
- control: h,
55
- bubbles: !p.current,
55
+ control: p,
56
+ bubbles: !h.current,
56
57
  name: o,
57
58
  value: u,
58
- checked: v,
59
- required: d,
59
+ checked: w,
60
+ required: c,
60
61
  disabled: a,
61
- form: i,
62
+ form: d,
62
63
  style: { transform: "translateX(-100%)" }
63
64
  }
64
65
  )
65
66
  ] });
66
67
  }
67
68
  );
68
- P.displayName = S;
69
+ P.displayName = g;
69
70
  var R = "SwitchThumb", _ = l.forwardRef(
70
- (t, c) => {
71
- const { __scopeSwitch: e, ...o } = t, r = $(R, e);
71
+ (t, n) => {
72
+ const { __scopeSwitch: e, ...o } = t, r = X(R, e);
72
73
  return /* @__PURE__ */ s(
73
- g.span,
74
+ S.span,
74
75
  {
75
76
  "data-state": I(r.checked),
76
77
  "data-disabled": r.disabled ? "" : void 0,
77
78
  ...o,
78
- ref: c
79
+ ref: n
79
80
  }
80
81
  );
81
82
  }
82
83
  );
83
84
  _.displayName = R;
84
- var X = "SwitchBubbleInput", E = l.forwardRef(
85
+ var G = "SwitchBubbleInput", E = l.forwardRef(
85
86
  ({
86
87
  __scopeSwitch: t,
87
- control: c,
88
+ control: n,
88
89
  checked: e,
89
90
  bubbles: o = !0,
90
91
  ...r
91
- }, n) => {
92
- const d = l.useRef(null), a = C(d, n), u = L(e), f = U(c);
92
+ }, i) => {
93
+ const c = l.useRef(null), a = C(c, i), u = L(e), f = U(n);
93
94
  return l.useEffect(() => {
94
- const i = d.current;
95
- if (!i) return;
95
+ const d = c.current;
96
+ if (!d) return;
96
97
  const b = window.HTMLInputElement.prototype, m = Object.getOwnPropertyDescriptor(
97
98
  b,
98
99
  "checked"
99
100
  ).set;
100
101
  if (u !== e && m) {
101
- const w = new Event("click", { bubbles: o });
102
- m.call(i, e), i.dispatchEvent(w);
102
+ const v = new Event("click", { bubbles: o });
103
+ m.call(d, e), d.dispatchEvent(v);
103
104
  }
104
105
  }, [u, e, o]), /* @__PURE__ */ s(
105
106
  "input",
@@ -122,12 +123,12 @@ var X = "SwitchBubbleInput", E = l.forwardRef(
122
123
  );
123
124
  }
124
125
  );
125
- E.displayName = X;
126
+ E.displayName = G;
126
127
  function I(t) {
127
128
  return t ? "checked" : "unchecked";
128
129
  }
129
- var F = P, G = _;
130
- const J = N({
130
+ var F = P, J = _;
131
+ const K = N({
131
132
  slots: {
132
133
  root: [
133
134
  "peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full",
@@ -142,6 +143,10 @@ const J = N({
142
143
  },
143
144
  variants: {
144
145
  size: {
146
+ xs: {
147
+ root: "h-4 w-7",
148
+ thumb: "h-3 w-3 data-[state=checked]:translate-x-[14px] data-[state=unchecked]:translate-x-0.5"
149
+ },
145
150
  sm: {
146
151
  root: "h-5 w-9",
147
152
  thumb: "h-4 w-4 data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0.5"
@@ -150,19 +155,29 @@ const J = N({
150
155
  root: "h-6 w-11",
151
156
  thumb: "h-5 w-5 data-[state=checked]:translate-x-[22px] data-[state=unchecked]:translate-x-0.5"
152
157
  }
158
+ },
159
+ theme: {
160
+ inverse: {
161
+ root: [
162
+ "focus-visible:shadow-inverse-focus",
163
+ "data-[state=unchecked]:bg-inverse-active data-[state=unchecked]:hover:enabled:bg-inverse-muted",
164
+ "data-[state=checked]:bg-inverse-primary-fg data-[state=checked]:hover:enabled:bg-inverse-secondary-fg"
165
+ ],
166
+ thumb: "bg-inverse-primary-bg"
167
+ }
153
168
  }
154
169
  },
155
170
  defaultVariants: {
156
171
  size: "md"
157
172
  }
158
173
  }), T = l.forwardRef(
159
- ({ className: t, size: c, ...e }, o) => {
160
- const { root: r, thumb: n } = J({ size: c });
161
- return /* @__PURE__ */ s(F, { className: r({ className: t }), ...e, ref: o, children: /* @__PURE__ */ s(G, { className: n() }) });
174
+ ({ className: t, size: n, ...e }, o) => {
175
+ const { variant: r } = V(), { root: i, thumb: c } = K({ size: n, theme: r });
176
+ return /* @__PURE__ */ s(F, { className: i({ className: t }), ...e, ref: o, children: /* @__PURE__ */ s(J, { className: c() }) });
162
177
  }
163
178
  );
164
179
  T.displayName = F.displayName;
165
- const K = N({
180
+ const Q = N({
166
181
  slots: {
167
182
  container: "flex cursor-pointer items-center gap-3",
168
183
  textContainer: "flex flex-col gap-1",
@@ -199,26 +214,26 @@ const K = N({
199
214
  defaultVariants: {
200
215
  alignment: "left"
201
216
  }
202
- }), Q = D.forwardRef(
203
- ({ className: t, id: c, label: e, alignment: o, error: r, disabled: n, outline: d, description: a, ...u }, f) => {
217
+ }), Y = D.forwardRef(
218
+ ({ className: t, id: n, label: e, alignment: o, error: r, disabled: i, outline: c, description: a, ...u }, f) => {
204
219
  const {
205
- container: i,
220
+ container: d,
206
221
  textContainer: b,
207
- label: h,
222
+ label: p,
208
223
  labelWrapper: m
209
- } = K({ alignment: o, error: r, disabled: n, outline: d, withDescription: !!a }), w = M(), p = c || `switch-${w}`;
210
- return /* @__PURE__ */ y("label", { htmlFor: p, className: i({ class: t }), children: [
211
- /* @__PURE__ */ s(T, { disabled: n, id: p, ...u, ref: f }),
224
+ } = Q({ alignment: o, error: r, disabled: i, outline: c, withDescription: !!a }), v = M(), h = n || `switch-${v}`;
225
+ return /* @__PURE__ */ y("label", { htmlFor: h, className: d({ class: t }), children: [
226
+ /* @__PURE__ */ s(T, { disabled: i, id: h, ...u, ref: f }),
212
227
  (e || a) && /* @__PURE__ */ y("div", { className: b(), children: [
213
- e && /* @__PURE__ */ s("div", { className: m(), children: /* @__PURE__ */ s(W, { htmlFor: p, className: h(), children: e }) }),
228
+ e && /* @__PURE__ */ s("div", { className: m(), children: /* @__PURE__ */ s(W, { htmlFor: h, className: p(), children: e }) }),
214
229
  a && /* @__PURE__ */ s(q, { size: "xs", children: a })
215
230
  ] })
216
231
  ] });
217
232
  }
218
233
  );
219
- Q.displayName = "SwitchField";
234
+ Y.displayName = "SwitchField";
220
235
  export {
221
236
  T as Switch,
222
- Q as SwitchField
237
+ Y as SwitchField
223
238
  };
224
239
  //# sourceMappingURL=switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sources":["../../node_modules/.pnpm/@radix-ui+react-switch@1.2._f3fb04ca0cb9718d2dd2dba40e11ef1d/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/switch/Switch.tsx","../../src/components/switch/switch-field/SwitchField.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface SwitchVariants {\r\n\tsize?: \"sm\" | \"md\";\r\n}\r\n\r\n/**\r\n * Варианты стилей для компонента Switch\r\n */\r\nconst switchStyles = tv({\r\n\tslots: {\r\n\t\troot: [\r\n\t\t\t\"peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full\",\r\n\t\t\t\"transition-colors\",\r\n\t\t\t\"focus-visible:border-tertiary-accent focus-visible:shadow-focus focus-visible:outline-none\",\r\n\t\t\t\"disabled:cursor-not-allowed disabled:opacity-50\",\r\n\t\t\t\"data-[state=checked]:bg-primary-accent data-[state=unchecked]:bg-secondary-border\",\r\n\t\t\t\"data-[state=checked]:hover:enabled:bg-primary-accent-hover\",\r\n\t\t\t\"data-[state=unchecked]:hover:enabled:bg-primary-border\"\r\n\t\t],\r\n\t\tthumb: \"rounded-full bg-secondary-bg shadow-soft-base transition-transform\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: {\r\n\t\t\t\troot: \"h-5 w-9\",\r\n\t\t\t\tthumb: \"h-4 w-4 data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0.5\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\troot: \"h-6 w-11\",\r\n\t\t\t\tthumb: \"h-5 w-5 data-[state=checked]:translate-x-[22px] data-[state=unchecked]:translate-x-0.5\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<SwitchVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchVariants;\r\n\r\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\r\n\t({ className, size, ...props }, ref) => {\r\n\t\tconst { root, thumb } = switchStyles({ size });\r\n\r\n\t\treturn (\r\n\t\t\t<SwitchPrimitives.Root className={root({ className })} {...props} ref={ref}>\r\n\t\t\t\t<SwitchPrimitives.Thumb className={thumb()} />\r\n\t\t\t</SwitchPrimitives.Root>\r\n\t\t);\r\n\t}\r\n);\r\nSwitch.displayName = SwitchPrimitives.Root.displayName;\r\n\r\nexport { Switch };\r\n","import * as SwitchPrimitives from \"@radix-ui/react-checkbox\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport React, { useId } from \"react\";\r\nimport { FieldLabel } from \"@/components/label\";\r\nimport { Description } from \"@/components/description\";\r\nimport { Switch, SwitchProps } from \"../Switch\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface SwitchFieldVariants {\r\n\toutline?: boolean;\r\n\talignment?: \"left\" | \"right\";\r\n\tdisabled?: boolean;\r\n\terror?: boolean;\r\n}\r\n\r\nconst switchFieldStyles = tv({\r\n\tslots: {\r\n\t\tcontainer: \"flex cursor-pointer items-center gap-3\",\r\n\t\ttextContainer: \"flex flex-col gap-1\",\r\n\t\tlabelWrapper: \"flex h-4 items-center\",\r\n\t\tlabel: \"cursor-pointer\"\r\n\t},\r\n\tvariants: {\r\n\t\toutline: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcontainer: \"rounded-lg border border-secondary-border p-3 px-4\"\r\n\t\t\t}\r\n\t\t},\r\n\t\tdisabled: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcontainer: \"cursor-default\",\r\n\t\t\t\ttextContainer: \"opacity-50\",\r\n\t\t\t\tlabel: \"cursor-default text-primary-fg\",\r\n\t\t\t\tdescription: \"text-muted\"\r\n\t\t\t}\r\n\t\t},\r\n\t\terror: {\r\n\t\t\ttrue: {\r\n\t\t\t\tlabel: \"text-status-error\"\r\n\t\t\t}\r\n\t\t},\r\n\t\talignment: {\r\n\t\t\tleft: {},\r\n\t\t\tright: {\r\n\t\t\t\tcontainer: \"flex-row-reverse space-x-reverse\"\r\n\t\t\t}\r\n\t\t},\r\n\t\twithDescription: { true: { container: \"items-start\" } }\r\n\t} satisfies VariantsConfig<SwitchFieldVariants & { withDescription?: boolean }>,\r\n\tdefaultVariants: {\r\n\t\talignment: \"left\"\r\n\t}\r\n});\r\n\r\ntype SwitchFieldProps = SwitchProps &\r\n\tSwitchFieldVariants & {\r\n\t\tlabel?: string | React.ReactNode;\r\n\t\tdescription?: string;\r\n\t};\r\n\r\nconst SwitchField = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchFieldProps>(\r\n\t({ className, id, label, alignment: alignment, error, disabled, outline, description, ...props }, ref) => {\r\n\t\tconst {\r\n\t\t\tcontainer,\r\n\t\t\ttextContainer,\r\n\t\t\tlabel: labelStyles,\r\n\t\t\tlabelWrapper\r\n\t\t} = switchFieldStyles({ alignment, error, disabled, outline, withDescription: !!description });\r\n\r\n\t\tconst generatedId = useId();\r\n\t\tconst switchId = id || `switch-${generatedId}`;\r\n\r\n\t\treturn (\r\n\t\t\t<label htmlFor={switchId} className={container({ class: className })}>\r\n\t\t\t\t<Switch disabled={disabled} id={switchId} {...props} ref={ref} />\r\n\t\t\t\t{(label || description) && (\r\n\t\t\t\t\t<div className={textContainer()}>\r\n\t\t\t\t\t\t{label && (\r\n\t\t\t\t\t\t\t<div className={labelWrapper()}>\r\n\t\t\t\t\t\t\t\t<FieldLabel htmlFor={switchId} className={labelStyles()}>\r\n\t\t\t\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t\t\t</FieldLabel>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{description && <Description size=\"xs\">{description}</Description>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</label>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSwitchField.displayName = \"SwitchField\";\r\n\r\nexport { SwitchField };\r\n"],"names":["SWITCH_NAME","createSwitchContext","createSwitchScope","createContextScope","SwitchProvider","useSwitchContext","Switch","React","props","forwardedRef","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","jsxs","jsx","Primitive","getState","composeEventHandlers","event","prevChecked","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","context","BUBBLE_INPUT_NAME","control","bubbles","ref","usePrevious","controlSize","useSize","input","inputProto","Root","Thumb","switchStyles","tv","className","size","root","thumb","SwitchPrimitives.Root","SwitchPrimitives.Thumb","switchFieldStyles","SwitchField","id","label","alignment","error","outline","description","container","textContainer","labelStyles","labelWrapper","generatedId","useId","switchId","FieldLabel","Description"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"switch.js","sources":["../../node_modules/.pnpm/@radix-ui+react-switch@1.2.6_@types+react-dom@18.3.6_@types+react@18.3.20__@types+react_f3fb04ca0cb9718d2dd2dba40e11ef1d/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/switch/Switch.tsx","../../src/components/switch/switch-field/SwitchField.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { tv } from \"tailwind-variants\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { useComponentVariant } from \"@/providers/component-variant-context\";\n\nexport interface SwitchVariants {\n\tsize?: \"xs\" | \"sm\" | \"md\";\n\ttheme?: \"inverse\";\n}\n\n/**\n * Варианты стилей для компонента Switch\n */\nconst switchStyles = tv({\n\tslots: {\n\t\troot: [\n\t\t\t\"peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full\",\n\t\t\t\"transition-colors\",\n\t\t\t\"focus-visible:border-tertiary-accent focus-visible:shadow-focus focus-visible:outline-none\",\n\t\t\t\"disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\"data-[state=checked]:bg-primary-accent data-[state=unchecked]:bg-secondary-border\",\n\t\t\t\"data-[state=checked]:hover:enabled:bg-primary-accent-hover\",\n\t\t\t\"data-[state=unchecked]:hover:enabled:bg-primary-border\"\n\t\t],\n\t\tthumb: \"rounded-full bg-secondary-bg shadow-soft-base transition-transform\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: {\n\t\t\t\troot: \"h-4 w-7\",\n\t\t\t\tthumb: \"h-3 w-3 data-[state=checked]:translate-x-[14px] data-[state=unchecked]:translate-x-0.5\"\n\t\t\t},\n\t\t\tsm: {\n\t\t\t\troot: \"h-5 w-9\",\n\t\t\t\tthumb: \"h-4 w-4 data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0.5\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\troot: \"h-6 w-11\",\n\t\t\t\tthumb: \"h-5 w-5 data-[state=checked]:translate-x-[22px] data-[state=unchecked]:translate-x-0.5\"\n\t\t\t}\n\t\t},\n\t\ttheme: {\n\t\t\tinverse: {\n\t\t\t\troot: [\n\t\t\t\t\t\"focus-visible:shadow-inverse-focus\",\n\t\t\t\t\t\"data-[state=unchecked]:bg-inverse-active data-[state=unchecked]:hover:enabled:bg-inverse-muted\",\n\t\t\t\t\t\"data-[state=checked]:bg-inverse-primary-fg data-[state=checked]:hover:enabled:bg-inverse-secondary-fg\"\n\t\t\t\t],\n\t\t\t\tthumb: \"bg-inverse-primary-bg\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<SwitchVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchVariants;\n\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n\t({ className, size, ...props }, ref) => {\n\t\tconst { variant: theme } = useComponentVariant();\n\t\tconst { root, thumb } = switchStyles({ size, theme });\n\n\t\treturn (\n\t\t\t<SwitchPrimitives.Root className={root({ className })} {...props} ref={ref}>\n\t\t\t\t<SwitchPrimitives.Thumb className={thumb()} />\n\t\t\t</SwitchPrimitives.Root>\n\t\t);\n\t}\n);\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as SwitchPrimitives from \"@radix-ui/react-checkbox\";\nimport { tv } from \"tailwind-variants\";\nimport React, { useId } from \"react\";\nimport { FieldLabel } from \"@/components/label\";\nimport { Description } from \"@/components/description\";\nimport { Switch, SwitchProps } from \"../Switch\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface SwitchFieldVariants {\n\toutline?: boolean;\n\talignment?: \"left\" | \"right\";\n\tdisabled?: boolean;\n\terror?: boolean;\n}\n\nconst switchFieldStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex cursor-pointer items-center gap-3\",\n\t\ttextContainer: \"flex flex-col gap-1\",\n\t\tlabelWrapper: \"flex h-4 items-center\",\n\t\tlabel: \"cursor-pointer\"\n\t},\n\tvariants: {\n\t\toutline: {\n\t\t\ttrue: {\n\t\t\t\tcontainer: \"rounded-lg border border-secondary-border p-3 px-4\"\n\t\t\t}\n\t\t},\n\t\tdisabled: {\n\t\t\ttrue: {\n\t\t\t\tcontainer: \"cursor-default\",\n\t\t\t\ttextContainer: \"opacity-50\",\n\t\t\t\tlabel: \"cursor-default text-primary-fg\",\n\t\t\t\tdescription: \"text-muted\"\n\t\t\t}\n\t\t},\n\t\terror: {\n\t\t\ttrue: {\n\t\t\t\tlabel: \"text-status-error\"\n\t\t\t}\n\t\t},\n\t\talignment: {\n\t\t\tleft: {},\n\t\t\tright: {\n\t\t\t\tcontainer: \"flex-row-reverse space-x-reverse\"\n\t\t\t}\n\t\t},\n\t\twithDescription: { true: { container: \"items-start\" } }\n\t} satisfies VariantsConfig<SwitchFieldVariants & { withDescription?: boolean }>,\n\tdefaultVariants: {\n\t\talignment: \"left\"\n\t}\n});\n\ntype SwitchFieldProps = SwitchProps &\n\tSwitchFieldVariants & {\n\t\tlabel?: string | React.ReactNode;\n\t\tdescription?: string;\n\t};\n\nconst SwitchField = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchFieldProps>(\n\t({ className, id, label, alignment: alignment, error, disabled, outline, description, ...props }, ref) => {\n\t\tconst {\n\t\t\tcontainer,\n\t\t\ttextContainer,\n\t\t\tlabel: labelStyles,\n\t\t\tlabelWrapper\n\t\t} = switchFieldStyles({ alignment, error, disabled, outline, withDescription: !!description });\n\n\t\tconst generatedId = useId();\n\t\tconst switchId = id || `switch-${generatedId}`;\n\n\t\treturn (\n\t\t\t<label htmlFor={switchId} className={container({ class: className })}>\n\t\t\t\t<Switch disabled={disabled} id={switchId} {...props} ref={ref} />\n\t\t\t\t{(label || description) && (\n\t\t\t\t\t<div className={textContainer()}>\n\t\t\t\t\t\t{label && (\n\t\t\t\t\t\t\t<div className={labelWrapper()}>\n\t\t\t\t\t\t\t\t<FieldLabel htmlFor={switchId} className={labelStyles()}>\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t</FieldLabel>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{description && <Description size=\"xs\">{description}</Description>}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</label>\n\t\t);\n\t}\n);\n\nSwitchField.displayName = \"SwitchField\";\n\nexport { SwitchField };\n"],"names":["SWITCH_NAME","createSwitchContext","createSwitchScope","createContextScope","SwitchProvider","useSwitchContext","Switch","React","props","forwardedRef","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","jsxs","jsx","Primitive","getState","composeEventHandlers","event","prevChecked","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","context","BUBBLE_INPUT_NAME","control","bubbles","ref","usePrevious","controlSize","useSize","input","inputProto","Root","Thumb","switchStyles","tv","className","size","theme","useComponentVariant","root","thumb","SwitchPrimitives.Root","SwitchPrimitives.Thumb","switchFieldStyles","SwitchField","id","label","alignment","error","outline","description","container","textContainer","labelStyles","labelWrapper","generatedId","useId","switchId","FieldLabel","Description"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"system-state.js","sources":["../../src/components/system-state/SystemState.tsx","../../src/components/system-state/components/SystemStateCode.tsx","../../src/components/system-state/components/SystemStateTitle.tsx","../../src/components/system-state/components/SystemStateDescription.tsx","../../src/components/system-state/components/SystemStateActions.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst systemStateStyles = tv({\r\n\tbase: \"flex w-full max-w-[343px] flex-col items-center text-center lg:max-w-[672px]\"\r\n});\r\n\r\nexport type SystemStateProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const SystemState = React.forwardRef<HTMLDivElement, SystemStateProps>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={systemStateStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSystemState.displayName = \"SystemState\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst codeStyles = tv({\r\n\tbase: \"mb-8 align-middle text-sm font-medium text-muted\"\r\n});\r\n\r\nexport type SystemStateCodeProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const SystemStateCode = React.forwardRef<HTMLDivElement, SystemStateCodeProps>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={codeStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSystemStateCode.displayName = \"SystemStateCode\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst titleStyles = tv({\r\n\tbase: \"leading-3xl lg:leading-5xl letter-spacing-[-0.02em] pb-4 text-center align-middle text-3xl font-bold lg:text-5xl\"\r\n});\r\n\r\nexport type SystemStateTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\r\n\r\nexport const SystemStateTitle = React.forwardRef<HTMLHeadingElement, SystemStateTitleProps>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <h2 ref={ref} className={titleStyles({ className })} {...props} />;\r\n\t}\r\n);\r\n\r\nSystemStateTitle.displayName = \"SystemStateTitle\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst descriptionStyles = tv({\r\n\tbase: \"leading-base max-w-s text-base font-normal text-muted lg:max-w-xl\"\r\n});\r\n\r\nexport type SystemStateDescriptionProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const SystemStateDescription = React.forwardRef<HTMLDivElement, SystemStateDescriptionProps>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={descriptionStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSystemStateDescription.displayName = \"SystemStateDescription\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\r\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\r\n\r\nconst actionsStyles = tv({\r\n\tslots: {\r\n\t\tcontainer: \"mt-8 flex w-full flex-col items-center gap-3 lg:flex-row lg:justify-center\",\r\n\t\tbutton: \"w-full lg:w-auto\"\r\n\t}\r\n});\r\n\r\nexport interface SystemStateActionsProps {\r\n\tclassName?: string;\r\n\tprimaryButton?: React.ReactNode;\r\n\tprimaryButtonProps?: ButtonProps;\r\n\tsecondaryButton?: React.ReactNode;\r\n\tsecondaryButtonProps?: ButtonProps;\r\n}\r\n\r\nexport const SystemStateActions = React.forwardRef<HTMLDivElement, SystemStateActionsProps>(\r\n\t({ className, primaryButton, secondaryButton, primaryButtonProps, secondaryButtonProps }, ref) => {\r\n\t\tconst isMobile = useIsMobile();\r\n\t\tconst { container, button } = actionsStyles();\r\n\r\n\t\tif (isMobile) {\r\n\t\t\tprimaryButtonProps = { ...primaryButtonProps, size: \"xl\", className: button({ className: className }) };\r\n\t\t\tsecondaryButtonProps = { ...secondaryButtonProps, size: \"xl\", className: button({ className: className }) };\r\n\t\t}\r\n\r\n\t\tconst primaryButtonElement = primaryButton && (\r\n\t\t\t<Button key=\"primary-button\" variant=\"primary\" {...primaryButtonProps}>\r\n\t\t\t\t{primaryButton}\r\n\t\t\t</Button>\r\n\t\t);\r\n\r\n\t\tconst secondaryButtonElement = secondaryButton && (\r\n\t\t\t<Button key=\"secondary-button\" variant=\"outline\" {...secondaryButtonProps}>\r\n\t\t\t\t{secondaryButton}\r\n\t\t\t</Button>\r\n\t\t);\r\n\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={container({ class: className })}>\r\n\t\t\t\t{isMobile\r\n\t\t\t\t\t? [primaryButtonElement, secondaryButtonElement]\r\n\t\t\t\t\t: [secondaryButtonElement, primaryButtonElement]}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSystemStateActions.displayName = \"SystemStateActions\";\r\n"],"names":["systemStateStyles","tv","SystemState","React","className","children","props","ref","jsx","codeStyles","SystemStateCode","titleStyles","SystemStateTitle","descriptionStyles","SystemStateDescription","actionsStyles","SystemStateActions","primaryButton","secondaryButton","primaryButtonProps","secondaryButtonProps","isMobile","useIsMobile","container","button","primaryButtonElement","Button","secondaryButtonElement"],"mappings":";;;;;AAGA,MAAMA,IAAoBC,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAIYC,IAAcC,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWP,EAAkB,EAAE,WAAAI,GAAW,GAAI,GAAGE,GAC9D,UAAAD,EACF,CAAA;AAGH;AAEAH,EAAY,cAAc;AChB1B,MAAMO,IAAaR,EAAG;AAAA,EACrB,MAAM;AACP,CAAC,GAIYS,IAAkBP,EAAM;AAAA,EACpC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWE,EAAW,EAAE,WAAAL,GAAW,GAAI,GAAGE,GACvD,UAAAD,EACF,CAAA;AAGH;AAEAK,EAAgB,cAAc;AChB9B,MAAMC,IAAcV,EAAG;AAAA,EACtB,MAAM;AACP,CAAC,GAIYW,IAAmBT,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,GAAGE,EAAA,GAASC,MAClB,gBAAAC,EAAC,MAAG,EAAA,KAAAD,GAAU,WAAWI,EAAY,EAAE,WAAAP,EAAW,CAAA,GAAI,GAAGE,GAAO;AAEzE;AAEAM,EAAiB,cAAc;ACZ/B,MAAMC,IAAoBZ,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAIYa,IAAyBX,EAAM;AAAA,EAC3C,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWM,EAAkB,EAAE,WAAAT,GAAW,GAAI,GAAGE,GAC9D,UAAAD,EACF,CAAA;AAGH;AAEAS,EAAuB,cAAc;ACdrC,MAAMC,IAAgBd,EAAG;AAAA,EACxB,OAAO;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEV,CAAC,GAUYe,IAAqBb,EAAM;AAAA,EACvC,CAAC,EAAE,WAAAC,GAAW,eAAAa,GAAe,iBAAAC,GAAiB,oBAAAC,GAAoB,sBAAAC,KAAwBb,MAAQ;AACjG,UAAMc,IAAWC,EAAY,GACvB,EAAE,WAAAC,GAAW,QAAAC,EAAO,IAAIT,EAAc;AAE5C,IAAIM,MACkBF,IAAA,EAAE,GAAGA,GAAoB,MAAM,MAAM,WAAWK,EAAO,EAAE,WAAApB,EAAqB,CAAC,EAAE,GAC/EgB,IAAA,EAAE,GAAGA,GAAsB,MAAM,MAAM,WAAWI,EAAO,EAAE,WAAApB,EAAqB,CAAC,EAAE;AAGrG,UAAAqB,IAAuBR,KAC3B,gBAAAT,EAAAkB,GAAA,EAA4B,SAAQ,WAAW,GAAGP,GACjD,UAAAF,EAAA,GADU,gBAEZ,GAGKU,IAAyBT,KAC7B,gBAAAV,EAAAkB,GAAA,EAA8B,SAAQ,WAAW,GAAGN,GACnD,UAAAF,EAAA,GADU,kBAEZ;AAGD,6BACE,OAAI,EAAA,KAAAX,GAAU,WAAWgB,EAAU,EAAE,OAAOnB,EAAU,CAAC,GACtD,UAAAiB,IACE,CAACI,GAAsBE,CAAsB,IAC7C,CAACA,GAAwBF,CAAoB,GACjD;AAAA,EAAA;AAGH;AAEAT,EAAmB,cAAc;"}
1
+ {"version":3,"file":"system-state.js","sources":["../../src/components/system-state/SystemState.tsx","../../src/components/system-state/components/SystemStateCode.tsx","../../src/components/system-state/components/SystemStateTitle.tsx","../../src/components/system-state/components/SystemStateDescription.tsx","../../src/components/system-state/components/SystemStateActions.tsx"],"sourcesContent":["import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst systemStateStyles = tv({\n\tbase: \"flex w-full max-w-[343px] flex-col items-center text-center lg:max-w-[672px]\"\n});\n\nexport type SystemStateProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const SystemState = React.forwardRef<HTMLDivElement, SystemStateProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={systemStateStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemState.displayName = \"SystemState\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst codeStyles = tv({\n\tbase: \"mb-8 align-middle text-sm font-medium text-muted\"\n});\n\nexport type SystemStateCodeProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const SystemStateCode = React.forwardRef<HTMLDivElement, SystemStateCodeProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={codeStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemStateCode.displayName = \"SystemStateCode\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst titleStyles = tv({\n\tbase: \"leading-3xl lg:leading-5xl letter-spacing-[-0.02em] pb-4 text-center align-middle text-3xl font-bold lg:text-5xl\"\n});\n\nexport type SystemStateTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const SystemStateTitle = React.forwardRef<HTMLHeadingElement, SystemStateTitleProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn <h2 ref={ref} className={titleStyles({ className })} {...props} />;\n\t}\n);\n\nSystemStateTitle.displayName = \"SystemStateTitle\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst descriptionStyles = tv({\n\tbase: \"leading-base max-w-s text-base font-normal text-muted lg:max-w-xl\"\n});\n\nexport type SystemStateDescriptionProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const SystemStateDescription = React.forwardRef<HTMLDivElement, SystemStateDescriptionProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={descriptionStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemStateDescription.displayName = \"SystemStateDescription\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\n\nconst actionsStyles = tv({\n\tslots: {\n\t\tcontainer: \"mt-8 flex w-full flex-col items-center gap-3 lg:flex-row lg:justify-center\",\n\t\tbutton: \"w-full lg:w-auto\"\n\t}\n});\n\nexport interface SystemStateActionsProps {\n\tclassName?: string;\n\tprimaryButton?: React.ReactNode;\n\tprimaryButtonProps?: ButtonProps;\n\tsecondaryButton?: React.ReactNode;\n\tsecondaryButtonProps?: ButtonProps;\n}\n\nexport const SystemStateActions = React.forwardRef<HTMLDivElement, SystemStateActionsProps>(\n\t({ className, primaryButton, secondaryButton, primaryButtonProps, secondaryButtonProps }, ref) => {\n\t\tconst isMobile = useIsMobile();\n\t\tconst { container, button } = actionsStyles();\n\n\t\tif (isMobile) {\n\t\t\tprimaryButtonProps = { ...primaryButtonProps, size: \"xl\", className: button({ className: className }) };\n\t\t\tsecondaryButtonProps = { ...secondaryButtonProps, size: \"xl\", className: button({ className: className }) };\n\t\t}\n\n\t\tconst primaryButtonElement = primaryButton && (\n\t\t\t<Button key=\"primary-button\" variant=\"primary\" {...primaryButtonProps}>\n\t\t\t\t{primaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\tconst secondaryButtonElement = secondaryButton && (\n\t\t\t<Button key=\"secondary-button\" variant=\"outline\" {...secondaryButtonProps}>\n\t\t\t\t{secondaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\treturn (\n\t\t\t<div ref={ref} className={container({ class: className })}>\n\t\t\t\t{isMobile\n\t\t\t\t\t? [primaryButtonElement, secondaryButtonElement]\n\t\t\t\t\t: [secondaryButtonElement, primaryButtonElement]}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemStateActions.displayName = \"SystemStateActions\";\n"],"names":["systemStateStyles","tv","SystemState","React","className","children","props","ref","jsx","codeStyles","SystemStateCode","titleStyles","SystemStateTitle","descriptionStyles","SystemStateDescription","actionsStyles","SystemStateActions","primaryButton","secondaryButton","primaryButtonProps","secondaryButtonProps","isMobile","useIsMobile","container","button","primaryButtonElement","Button","secondaryButtonElement"],"mappings":";;;;;AAGA,MAAMA,IAAoBC,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAIYC,IAAcC,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWP,EAAkB,EAAE,WAAAI,GAAW,GAAI,GAAGE,GAC9D,UAAAD,EACF,CAAA;AAGH;AAEAH,EAAY,cAAc;AChB1B,MAAMO,IAAaR,EAAG;AAAA,EACrB,MAAM;AACP,CAAC,GAIYS,IAAkBP,EAAM;AAAA,EACpC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWE,EAAW,EAAE,WAAAL,GAAW,GAAI,GAAGE,GACvD,UAAAD,EACF,CAAA;AAGH;AAEAK,EAAgB,cAAc;AChB9B,MAAMC,IAAcV,EAAG;AAAA,EACtB,MAAM;AACP,CAAC,GAIYW,IAAmBT,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,GAAGE,EAAA,GAASC,MAClB,gBAAAC,EAAC,MAAG,EAAA,KAAAD,GAAU,WAAWI,EAAY,EAAE,WAAAP,EAAW,CAAA,GAAI,GAAGE,GAAO;AAEzE;AAEAM,EAAiB,cAAc;ACZ/B,MAAMC,IAAoBZ,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAIYa,IAAyBX,EAAM;AAAA,EAC3C,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWM,EAAkB,EAAE,WAAAT,GAAW,GAAI,GAAGE,GAC9D,UAAAD,EACF,CAAA;AAGH;AAEAS,EAAuB,cAAc;ACdrC,MAAMC,IAAgBd,EAAG;AAAA,EACxB,OAAO;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEV,CAAC,GAUYe,IAAqBb,EAAM;AAAA,EACvC,CAAC,EAAE,WAAAC,GAAW,eAAAa,GAAe,iBAAAC,GAAiB,oBAAAC,GAAoB,sBAAAC,KAAwBb,MAAQ;AACjG,UAAMc,IAAWC,EAAY,GACvB,EAAE,WAAAC,GAAW,QAAAC,EAAO,IAAIT,EAAc;AAE5C,IAAIM,MACkBF,IAAA,EAAE,GAAGA,GAAoB,MAAM,MAAM,WAAWK,EAAO,EAAE,WAAApB,EAAqB,CAAC,EAAE,GAC/EgB,IAAA,EAAE,GAAGA,GAAsB,MAAM,MAAM,WAAWI,EAAO,EAAE,WAAApB,EAAqB,CAAC,EAAE;AAGrG,UAAAqB,IAAuBR,KAC3B,gBAAAT,EAAAkB,GAAA,EAA4B,SAAQ,WAAW,GAAGP,GACjD,UAAAF,EAAA,GADU,gBAEZ,GAGKU,IAAyBT,KAC7B,gBAAAV,EAAAkB,GAAA,EAA8B,SAAQ,WAAW,GAAGN,GACnD,UAAAF,EAAA,GADU,kBAEZ;AAGD,6BACE,OAAI,EAAA,KAAAX,GAAU,WAAWgB,EAAU,EAAE,OAAOnB,EAAU,CAAC,GACtD,UAAAiB,IACE,CAACI,GAAsBE,CAAsB,IAC7C,CAACA,GAAwBF,CAAoB,GACjD;AAAA,EAAA;AAGH;AAEAT,EAAmB,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../src/components/table/Table.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\r\nimport { ScrollShadowContainerProps } from \"../scroll-shadow-container/ScrollShadowContainer\";\r\n\r\nconst tableStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"relative w-full overflow-x-auto\",\r\n\t\ttable: \"w-full caption-bottom text-sm\"\r\n\t}\r\n});\r\n\r\nexport const Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\tconst styles = tableStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<div className={styles.wrapper()}>\r\n\t\t\t\t<table ref={ref} className={styles.table({ className })} {...props} />\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nTable.displayName = \"Table\";\r\n\r\nconst tableHeaderStyles = tv({\r\n\tbase: \"border-secondary-border bg-primary-bg [&_tr]:border-b\"\r\n});\r\n\r\nexport const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\r\n\t({ className, ...props }, ref) => <thead ref={ref} className={tableHeaderStyles({ className })} {...props} />\r\n);\r\n\r\nTableHeader.displayName = \"TableHeader\";\r\n\r\nconst tableBodyStyles = tv({\r\n\tbase: \"[&_tr:last-child]:border-0\"\r\n});\r\n\r\nexport const TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\r\n\t({ className, ...props }, ref) => <tbody ref={ref} className={tableBodyStyles({ className })} {...props} />\r\n);\r\n\r\nTableBody.displayName = \"TableBody\";\r\n\r\nconst tableBodyContainerStyles = tv({\r\n\tbase: \"overflow-x-hidden\"\r\n});\r\n\r\nexport type TableBodyContainerProps = React.HTMLAttributes<HTMLTableSectionElement> & {\r\n\tcontainerClassName?: string;\r\n\tshadowSize?: ScrollShadowContainerProps[\"shadowSize\"];\r\n};\r\n\r\nexport const TableBodyContainer = React.forwardRef<HTMLTableSectionElement, TableBodyContainerProps>(\r\n\t({ className, containerClassName, shadowSize, ...props }, ref) => (\r\n\t\t<ScrollShadowContainer\r\n\t\t\tclassName={tableBodyContainerStyles({ className: containerClassName })}\r\n\t\t\tshadowSize={shadowSize}\r\n\t\t>\r\n\t\t\t<tbody ref={ref} className={tableBodyStyles({ className })} {...props} />\r\n\t\t</ScrollShadowContainer>\r\n\t)\r\n);\r\n\r\nTableBodyContainer.displayName = \"TableBodyContainer\";\r\n\r\nconst tableFooterStyles = tv({\r\n\tbase: \"border-t bg-primary/[0.03] font-medium [&>tr]:last:border-b-0\"\r\n});\r\n\r\nexport const TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\r\n\t({ className, ...props }, ref) => <tfoot ref={ref} className={tableFooterStyles({ className })} {...props} />\r\n);\r\n\r\nTableFooter.displayName = \"TableFooter\";\r\n\r\nconst tableRowStyles = tv({\r\n\tbase: \"border-b border-secondary-border transition-colors hover:bg-alpha-high-97 data-[state=selected]:bg-alpha-high-95 data-[state=selected]:hover:bg-alpha-high-92\"\r\n});\r\n\r\nexport const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\r\n\t({ className, ...props }, ref) => <tr ref={ref} className={tableRowStyles({ className })} {...props} />\r\n);\r\n\r\nTableRow.displayName = \"TableRow\";\r\n\r\nconst tableHeadStyles = tv({\r\n\tbase: \"h-10 px-2 text-left align-middle font-medium text-muted [&:has([role=checkbox])]:pr-0\"\r\n});\r\n\r\nexport const TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\r\n\t({ className, ...props }, ref) => <th ref={ref} className={tableHeadStyles({ className })} {...props} />\r\n);\r\n\r\nTableHead.displayName = \"TableHead\";\r\n\r\nconst tableCellStyles = tv({\r\n\tbase: \"px-3 py-2.5 align-middle [&:has([role=checkbox])]:pr-0\"\r\n});\r\n\r\nexport const TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\r\n\t({ className, ...props }, ref) => <td ref={ref} className={tableCellStyles({ className })} {...props} />\r\n);\r\n\r\nTableCell.displayName = \"TableCell\";\r\n\r\nconst tableCaptionStyles = tv({\r\n\tbase: \"mt-4 text-sm text-muted\"\r\n});\r\n\r\nexport const TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\r\n\t({ className, ...props }, ref) => <caption ref={ref} className={tableCaptionStyles({ className })} {...props} />\r\n);\r\n\r\nTableCaption.displayName = \"TableCaption\";\r\n"],"names":["tableStyles","tv","Table","React","className","props","ref","styles","tableHeaderStyles","TableHeader","jsx","tableBodyStyles","TableBody","tableBodyContainerStyles","TableBodyContainer","containerClassName","shadowSize","ScrollShadowContainer","tableFooterStyles","TableFooter","tableRowStyles","TableRow","tableHeadStyles","TableHead","tableCellStyles","TableCell","tableCaptionStyles","TableCaption"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../src/components/table/Table.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\nimport { ScrollShadowContainerProps } from \"../scroll-shadow-container/ScrollShadowContainer\";\n\nconst tableStyles = tv({\n\tslots: {\n\t\twrapper: \"relative w-full overflow-x-auto\",\n\t\ttable: \"w-full caption-bottom text-sm\"\n\t}\n});\n\nexport const Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n\t({ className, ...props }, ref) => {\n\t\tconst styles = tableStyles();\n\n\t\treturn (\n\t\t\t<div className={styles.wrapper()}>\n\t\t\t\t<table ref={ref} className={styles.table({ className })} {...props} />\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nTable.displayName = \"Table\";\n\nconst tableHeaderStyles = tv({\n\tbase: \"border-secondary-border bg-primary-bg [&_tr]:border-b\"\n});\n\nexport const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n\t({ className, ...props }, ref) => <thead ref={ref} className={tableHeaderStyles({ className })} {...props} />\n);\n\nTableHeader.displayName = \"TableHeader\";\n\nconst tableBodyStyles = tv({\n\tbase: \"[&_tr:last-child]:border-0\"\n});\n\nexport const TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n\t({ className, ...props }, ref) => <tbody ref={ref} className={tableBodyStyles({ className })} {...props} />\n);\n\nTableBody.displayName = \"TableBody\";\n\nconst tableBodyContainerStyles = tv({\n\tbase: \"overflow-x-hidden\"\n});\n\nexport type TableBodyContainerProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n\tcontainerClassName?: string;\n\tshadowSize?: ScrollShadowContainerProps[\"shadowSize\"];\n};\n\nexport const TableBodyContainer = React.forwardRef<HTMLTableSectionElement, TableBodyContainerProps>(\n\t({ className, containerClassName, shadowSize, ...props }, ref) => (\n\t\t<ScrollShadowContainer\n\t\t\tclassName={tableBodyContainerStyles({ className: containerClassName })}\n\t\t\tshadowSize={shadowSize}\n\t\t>\n\t\t\t<tbody ref={ref} className={tableBodyStyles({ className })} {...props} />\n\t\t</ScrollShadowContainer>\n\t)\n);\n\nTableBodyContainer.displayName = \"TableBodyContainer\";\n\nconst tableFooterStyles = tv({\n\tbase: \"border-t bg-primary/[0.03] font-medium [&>tr]:last:border-b-0\"\n});\n\nexport const TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n\t({ className, ...props }, ref) => <tfoot ref={ref} className={tableFooterStyles({ className })} {...props} />\n);\n\nTableFooter.displayName = \"TableFooter\";\n\nconst tableRowStyles = tv({\n\tbase: \"border-b border-secondary-border transition-colors hover:bg-alpha-high-97 data-[state=selected]:bg-alpha-high-95 data-[state=selected]:hover:bg-alpha-high-92\"\n});\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n\t({ className, ...props }, ref) => <tr ref={ref} className={tableRowStyles({ className })} {...props} />\n);\n\nTableRow.displayName = \"TableRow\";\n\nconst tableHeadStyles = tv({\n\tbase: \"h-10 px-2 text-left align-middle font-medium text-muted [&:has([role=checkbox])]:pr-0\"\n});\n\nexport const TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n\t({ className, ...props }, ref) => <th ref={ref} className={tableHeadStyles({ className })} {...props} />\n);\n\nTableHead.displayName = \"TableHead\";\n\nconst tableCellStyles = tv({\n\tbase: \"px-3 py-2.5 align-middle [&:has([role=checkbox])]:pr-0\"\n});\n\nexport const TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n\t({ className, ...props }, ref) => <td ref={ref} className={tableCellStyles({ className })} {...props} />\n);\n\nTableCell.displayName = \"TableCell\";\n\nconst tableCaptionStyles = tv({\n\tbase: \"mt-4 text-sm text-muted\"\n});\n\nexport const TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n\t({ className, ...props }, ref) => <caption ref={ref} className={tableCaptionStyles({ className })} {...props} />\n);\n\nTableCaption.displayName = \"TableCaption\";\n"],"names":["tableStyles","tv","Table","React","className","props","ref","styles","tableHeaderStyles","TableHeader","jsx","tableBodyStyles","TableBody","tableBodyContainerStyles","TableBodyContainer","containerClassName","shadowSize","ScrollShadowContainer","tableFooterStyles","TableFooter","tableRowStyles","TableRow","tableHeadStyles","TableHead","tableCellStyles","TableCell","tableCaptionStyles","TableCaption"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../node_modules/.pnpm/@radix-ui+react-tabs@1.1.13_21753808045192b908d4757aa4b73066/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/components/tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst Tabs = TabsPrimitive.Root;\r\n\r\nconst tabsListStyles = tv({\r\n\tbase: \"inline-flex h-10 items-center justify-center rounded-lg bg-secondary-bg-hover p-1 text-muted lg:h-9\"\r\n});\r\n\r\nconst TabsList = React.forwardRef<\r\n\tReact.ElementRef<typeof TabsPrimitive.List>,\r\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n\t<TabsPrimitive.List ref={ref} className={tabsListStyles({ className })} {...props} />\r\n));\r\nTabsList.displayName = TabsPrimitive.List.displayName;\r\n\r\nconst tabsTriggerStyles = tv({\r\n\tbase: [\r\n\t\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all lg:py-1\",\r\n\t\t\"hover:text-secondary-fg\",\r\n\t\t\"focus-visible:!shadow-focus focus-visible:outline-none\",\r\n\t\t\"disabled:pointer-events-none disabled:opacity-50\",\r\n\t\t\"data-[state=active]:bg-secondary-bg data-[state=active]:text-primary-fg data-[state=active]:shadow-soft-base\"\r\n\t]\r\n});\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof TabsPrimitive.Trigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n\t<TabsPrimitive.Trigger ref={ref} className={tabsTriggerStyles({ className })} {...props} />\r\n));\r\n\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\r\n\r\nconst tabsContentStyles = tv({\r\n\tbase: \"mt-2 ring-offset-background focus-visible:shadow-focus focus-visible:outline-none\"\r\n});\r\n\r\nconst TabsContent = React.forwardRef<\r\n\tReact.ElementRef<typeof TabsPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n\t<TabsPrimitive.Content ref={ref} className={tabsContentStyles({ className })} {...props} />\r\n));\r\nTabsContent.displayName = TabsPrimitive.Content.displayName;\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\r\n"],"names":["TABS_NAME","createTabsContext","createTabsScope","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","props","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","jsx","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","children","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabsPrimitive.Root","tabsListStyles","tv","className","ref","TabsPrimitive.List","tabsTriggerStyles","TabsPrimitive.Trigger","tabsContentStyles","TabsPrimitive.Content"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"tabs.js","sources":["../../node_modules/.pnpm/@radix-ui+react-tabs@1.1.13_@types+react-dom@18.3.6_@types+react@18.3.20__@types+react@_21753808045192b908d4757aa4b73066/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/components/tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { tv } from \"tailwind-variants\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListStyles = tv({\n\tbase: \"inline-flex h-10 items-center justify-center rounded-lg bg-secondary-bg-hover p-1 text-muted lg:h-9\"\n});\n\nconst TabsList = React.forwardRef<\n\tReact.ElementRef<typeof TabsPrimitive.List>,\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n\t<TabsPrimitive.List ref={ref} className={tabsListStyles({ className })} {...props} />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst tabsTriggerStyles = tv({\n\tbase: [\n\t\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all lg:py-1\",\n\t\t\"hover:text-secondary-fg\",\n\t\t\"focus-visible:!shadow-focus focus-visible:outline-none\",\n\t\t\"disabled:pointer-events-none disabled:opacity-50\",\n\t\t\"data-[state=active]:bg-secondary-bg data-[state=active]:text-primary-fg data-[state=active]:shadow-soft-base\"\n\t]\n});\n\nconst TabsTrigger = React.forwardRef<\n\tReact.ElementRef<typeof TabsPrimitive.Trigger>,\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n\t<TabsPrimitive.Trigger ref={ref} className={tabsTriggerStyles({ className })} {...props} />\n));\n\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst tabsContentStyles = tv({\n\tbase: \"mt-2 ring-offset-background focus-visible:shadow-focus focus-visible:outline-none\"\n});\n\nconst TabsContent = React.forwardRef<\n\tReact.ElementRef<typeof TabsPrimitive.Content>,\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n\t<TabsPrimitive.Content ref={ref} className={tabsContentStyles({ className })} {...props} />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"names":["TABS_NAME","createTabsContext","createTabsScope","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","props","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","jsx","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","children","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabsPrimitive.Root","tabsListStyles","tv","className","ref","TabsPrimitive.List","tabsTriggerStyles","TabsPrimitive.Trigger","tabsContentStyles","TabsPrimitive.Content"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"tag-input.js","sources":["../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import { SearchSelectTag } from \"@/components/search-select/components/SearchSelectTag\";\r\nimport { useControllableState } from \"@/hooks/useControllableState\";\r\nimport { useItemsKeyboardNavigation } from \"@/hooks/useItemsKeyboardNavigation\";\r\nimport React, { KeyboardEvent, useCallback, useRef, useState } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { InputGroup, InputGroupInput, InputGroupContentEditable } from \"../input\";\r\nimport { selectTriggerStyles } from \"../select/Select\";\r\n\r\nconst tagInputStyles = tv({\r\n\textend: selectTriggerStyles,\r\n\tbase: \"group/search-select-trigger flex h-auto min-h-10 flex-wrap items-center gap-1 !py-[0.3125rem] px-1.5 lg:h-auto lg:min-h-9 lg:px-1.5\"\r\n});\r\n\r\nconst inputStyles = tv({\r\n\tbase: \"min-w-28 rounded-none p-0 px-1.5 leading-6 read-only:w-0 read-only:min-w-0 lg:p-0 lg:px-1.5\"\r\n});\r\n\r\nconst editingDivStyles = tv({\r\n\tbase: \"p-0 px-1.5 outline-none lg:p-0 lg:px-1.5\"\r\n});\r\n\r\n/**\r\n * Пропсы для рендера тега\r\n */\r\nexport type RenderTagProps = {\r\n\t/** Значение тега (строка) */\r\n\ttag: string;\r\n\t/** Индекс тега в массиве */\r\n\tindex: number;\r\n\t/** Функция для удаления тега */\r\n\tonClose?: () => void;\r\n\t/** Функция для начала редактирования тега */\r\n\tonEdit?: () => void;\r\n\t/** Фокус на теге (для навигации с клавиатуры) */\r\n\tisFocused: boolean;\r\n\t/** Отключен ли компонент */\r\n\treadonly: boolean;\r\n};\r\n\r\n/**\r\n * Функция валидации тега по умолчанию\r\n */\r\nconst defaultValidateTag = (tag: string, allTags: string[], editingIndex?: number): boolean | string => {\r\n\tif (!tag.trim()) return \"Тег не может быть пустым\";\r\n\r\n\tif (editingIndex === undefined) {\r\n\t\t// Добавление нового тега\r\n\t\tif (allTags.includes(tag)) return \"Такой тег уже существует\";\r\n\t} else {\r\n\t\t// Редактирование существующего\r\n\t\tconst otherTags = allTags.filter((_, i) => i !== editingIndex);\r\n\t\tif (otherTags.includes(tag)) return \"Такой тег уже существует\";\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n\r\nexport interface TagInputProps {\r\n\t/** Текущие выбранные опции (controlled режим) */\r\n\tvalue?: string[];\r\n\t/** Опции по умолчанию (uncontrolled режим) */\r\n\tdefaultValue?: string[];\r\n\t/** Callback при изменении выбранных опций */\r\n\tonChange?: (options: string[]) => void;\r\n\t/** Placeholder для input */\r\n\tplaceholder?: string;\r\n\t/** Отключить компонент */\r\n\treadonly?: boolean;\r\n\t/** CSS класс для контейнера */\r\n\tclassName?: string;\r\n\t/** Функция валидации тега. Если null - валидация отключена, если не передана - используется валидация по умолчанию */\r\n\tvalidateTag?: ((tag: string, allTags: string[], editingIndex?: number) => boolean | string) | null;\r\n\t/** Состояние ошибки */\r\n\tinvalid?: boolean;\r\n\t/** Кастомная функция рендера тега */\r\n\trenderOption?: (props: RenderTagProps) => React.ReactNode;\r\n}\r\n\r\n/**\r\n * Компонент для ввода и отображения тегов\r\n */\r\nexport const TagInput = React.forwardRef<HTMLDivElement, TagInputProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue = [],\r\n\t\t\tonChange,\r\n\t\t\tplaceholder = \"Добавить тег...\",\r\n\t\t\treadonly = false,\r\n\t\t\tclassName,\r\n\t\t\tvalidateTag,\r\n\t\t\tinvalid,\r\n\t\t\trenderOption\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\t// Состояние для ввода нового тега\r\n\t\tconst [inputValue, setInputValue] = useState(\"\");\r\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\r\n\t\t// Управление тегами\r\n\t\tconst [tags = [], setTags] = useControllableState<string[]>({ value, defaultValue, onChange });\r\n\r\n\t\tconst styles = tagInputStyles({ className, invalid });\r\n\t\tconst removeTag = useCallback(\r\n\t\t\t(index: number) => {\r\n\t\t\t\tif (readonly) return;\r\n\t\t\t\tsetTags(tags.filter((_, i) => i !== index));\r\n\t\t\t},\r\n\t\t\t[tags, setTags, readonly]\r\n\t\t);\r\n\r\n\t\t// Состояние для режима редактирования существующих тегов\r\n\t\tconst [editingIndex, setEditingIndex] = useState<number | null>(null);\r\n\t\tconst editingRef = useRef<HTMLDivElement>(null);\r\n\r\n\t\t/**\r\n\t\t * Функция валидации тега\r\n\t\t */\r\n\t\tconst validateTagValue = useCallback(\r\n\t\t\t(tag: string, editingIndex?: number): boolean => {\r\n\t\t\t\tif (validateTag === null) return true;\r\n\r\n\t\t\t\tconst validator = validateTag || defaultValidateTag;\r\n\t\t\t\tconst result = validator(tag, tags, editingIndex);\r\n\r\n\t\t\t\treturn result === true;\r\n\t\t\t},\r\n\t\t\t[validateTag, tags]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Переключение в режим редактирования существующего тега\r\n\t\t */\r\n\t\tconst startEditing = useCallback(\r\n\t\t\t(index: number) => {\r\n\t\t\t\tif (readonly) return;\r\n\t\t\t\tsetEditingIndex(index);\r\n\t\t\t\t// Фокусируем элемент после обновления состояния\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (editingRef.current) {\r\n\t\t\t\t\t\t// Устанавливаем содержимое напрямую, без использования React state\r\n\t\t\t\t\t\teditingRef.current.textContent = tags[index];\r\n\t\t\t\t\t\teditingRef.current.focus();\r\n\t\t\t\t\t\t// Выделяем весь текст\r\n\t\t\t\t\t\tconst range = document.createRange();\r\n\t\t\t\t\t\trange.selectNodeContents(editingRef.current);\r\n\t\t\t\t\t\tconst selection = window.getSelection();\r\n\t\t\t\t\t\tselection?.removeAllRanges();\r\n\t\t\t\t\t\tselection?.addRange(range);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 0);\r\n\t\t\t},\r\n\t\t\t[tags, setEditingIndex, readonly]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Отмена редактирования тега\r\n\t\t */\r\n\t\tconst cancelEditing = useCallback(() => {\r\n\t\t\tsetEditingIndex(null);\r\n\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\r\n\t\t}, [setEditingIndex]);\r\n\r\n\t\t/**\r\n\t\t * Обработчик нажатия Enter на теге: переключает текущий тег в режим редактирования\r\n\t\t */\r\n\t\tconst onEnter = useCallback((_: string, index: number) => startEditing(index), [startEditing]);\r\n\r\n\t\tconst handleDeleteTag = useCallback((_: string, index: number) => removeTag(index), [removeTag]);\r\n\r\n\t\t/**\r\n\t\t * Хук для навигации по тегам с помощью клавиатуры (вперед/назад)\r\n\t\t */\r\n\t\tconst { handleKeyDown: handleTagsKeyDown, isFocused } = useItemsKeyboardNavigation({\r\n\t\t\titems: tags,\r\n\t\t\tonEnter,\r\n\t\t\tonDelete: handleDeleteTag,\r\n\t\t\tcycleNavigation: true\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Сохранение изменений в текущем теге\r\n\t\t */\r\n\t\tconst saveEditing = useCallback(() => {\r\n\t\t\tif (editingIndex !== null && editingRef.current) {\r\n\t\t\t\tconst newValue = editingRef.current.textContent?.trim() || \"\";\r\n\r\n\t\t\t\tif (newValue && validateTagValue(newValue, editingIndex)) {\r\n\t\t\t\t\tconst newTags = [...tags];\r\n\t\t\t\t\tnewTags[editingIndex] = newValue;\r\n\t\t\t\t\tsetTags(newTags);\r\n\t\t\t\t\tsetEditingIndex(null);\r\n\t\t\t\t\t// Возвращаем фокус в input и устанавливаем фокус на отредактированный элемент\r\n\t\t\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, [editingIndex, editingRef, tags, setEditingIndex, setTags, validateTagValue]);\r\n\r\n\t\t/**\r\n\t\t * Добавление нового тега\r\n\t\t */\r\n\t\tconst addNewTag = useCallback(\r\n\t\t\t(tagValue: string) => {\r\n\t\t\t\tconst trimmedTag = tagValue.trim();\r\n\t\t\t\tif (trimmedTag && validateTagValue(trimmedTag)) {\r\n\t\t\t\t\tsetTags([...tags, trimmedTag]);\r\n\t\t\t\t\tsetInputValue(\"\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[tags, setTags, setInputValue, validateTagValue]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Обработчик нажатия клавиш на input:\r\n\t\t * - Если нажат Enter и input не пустой, добавляет новый тег\r\n\t\t * - Если input пустой, обрабатывает навигацию по тегам\r\n\t\t */\r\n\t\tconst handleInputKeyDown = useCallback(\r\n\t\t\t(e: KeyboardEvent<HTMLInputElement>) => {\r\n\t\t\t\tif (e.key === \"Enter\" && inputValue.trim()) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\taddNewTag(inputValue);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!inputValue.trim()) {\r\n\t\t\t\t\thandleTagsKeyDown(e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[inputValue, handleTagsKeyDown, addNewTag]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Обработчик потери фокуса input - добавляет тег если он не пустой\r\n\t\t */\r\n\t\tconst handleInputBlur = useCallback(() => {\r\n\t\t\tif (inputValue.trim()) {\r\n\t\t\t\taddNewTag(inputValue);\r\n\t\t\t}\r\n\t\t}, [inputValue, addNewTag]);\r\n\r\n\t\tconst handleEditingKeyDown = useCallback(\r\n\t\t\t(e: KeyboardEvent<HTMLDivElement>) => {\r\n\t\t\t\tif (e.key === \"Enter\") {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tsaveEditing();\r\n\t\t\t\t} else if (e.key === \"Escape\") {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tcancelEditing();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[saveEditing, cancelEditing]\r\n\t\t);\r\n\r\n\t\tconst renderTags = useCallback(() => {\r\n\t\t\treturn tags.map((tag, index) => {\r\n\t\t\t\tif (editingIndex === index) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<InputGroupContentEditable\r\n\t\t\t\t\t\t\tkey={`editing-${index}`}\r\n\t\t\t\t\t\t\tref={editingRef}\r\n\t\t\t\t\t\t\tclassName={editingDivStyles()}\r\n\t\t\t\t\t\t\tonKeyDown={handleEditingKeyDown}\r\n\t\t\t\t\t\t\tonBlur={cancelEditing}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (renderOption) {\r\n\t\t\t\t\tconst item = renderOption({\r\n\t\t\t\t\t\ttag,\r\n\t\t\t\t\t\tindex,\r\n\t\t\t\t\t\tonClose: () => removeTag(index),\r\n\t\t\t\t\t\tonEdit: () => startEditing(index),\r\n\t\t\t\t\t\tisFocused: !readonly && isFocused(index),\r\n\t\t\t\t\t\treadonly\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (item !== undefined) {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<SearchSelectTag\r\n\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\tonLabelClick={() => startEditing(index)}\r\n\t\t\t\t\t\tonClose={() => removeTag(index)}\r\n\t\t\t\t\t\treadonly={readonly}\r\n\t\t\t\t\t\tisFocused={!readonly && isFocused(index)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{tag}\r\n\t\t\t\t\t</SearchSelectTag>\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t}, [\r\n\t\t\teditingIndex,\r\n\t\t\teditingRef,\r\n\t\t\thandleEditingKeyDown,\r\n\t\t\tcancelEditing,\r\n\t\t\ttags,\r\n\t\t\treadonly,\r\n\t\t\tisFocused,\r\n\t\t\tremoveTag,\r\n\t\t\tstartEditing,\r\n\t\t\trenderOption\r\n\t\t]);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup ref={ref} className={styles.base()}>\r\n\t\t\t\t{renderTags()}\r\n\t\t\t\t<InputGroupInput\r\n\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tvalue={inputValue}\r\n\t\t\t\t\tonChange={(e) => setInputValue(e.target.value)}\r\n\t\t\t\t\tonKeyDown={handleInputKeyDown}\r\n\t\t\t\t\tonBlur={handleInputBlur}\r\n\t\t\t\t\tplaceholder={readonly ? \"\" : placeholder}\r\n\t\t\t\t\tclassName={inputStyles()}\r\n\t\t\t\t\treadOnly={readonly}\r\n\t\t\t\t\taria-invalid={invalid}\r\n\t\t\t\t/>\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nTagInput.displayName = \"TagInput\";\r\n"],"names":["tagInputStyles","tv","selectTriggerStyles","inputStyles","editingDivStyles","defaultValidateTag","tag","allTags","editingIndex","_","i","TagInput","React","value","defaultValue","onChange","placeholder","readonly","className","validateTag","invalid","renderOption","ref","inputValue","setInputValue","useState","inputRef","useRef","tags","setTags","useControllableState","styles","removeTag","useCallback","index","setEditingIndex","editingRef","validateTagValue","startEditing","range","selection","cancelEditing","onEnter","handleDeleteTag","handleTagsKeyDown","isFocused","useItemsKeyboardNavigation","saveEditing","newValue","newTags","addNewTag","tagValue","trimmedTag","handleInputKeyDown","e","handleInputBlur","handleEditingKeyDown","renderTags","jsx","InputGroupContentEditable","item","SearchSelectTag","InputGroup","InputGroupInput"],"mappings":"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"}
1
+ {"version":3,"file":"tag-input.js","sources":["../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import { SearchSelectTag } from \"@/components/search-select/components/SearchSelectTag\";\nimport { useControllableState } from \"@/hooks/useControllableState\";\nimport { useItemsKeyboardNavigation } from \"@/hooks/useItemsKeyboardNavigation\";\nimport React, { KeyboardEvent, useCallback, useRef, useState } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { InputGroup, InputGroupInput, InputGroupContentEditable } from \"../input\";\nimport { selectTriggerStyles } from \"../select/Select\";\n\nconst tagInputStyles = tv({\n\textend: selectTriggerStyles,\n\tbase: \"group/search-select-trigger flex h-auto min-h-10 flex-wrap items-center gap-1 !py-[0.3125rem] px-1.5 lg:h-auto lg:min-h-9 lg:px-1.5\"\n});\n\nconst inputStyles = tv({\n\tbase: \"min-w-28 rounded-none p-0 px-1.5 leading-6 read-only:w-0 read-only:min-w-0 lg:p-0 lg:px-1.5\"\n});\n\nconst editingDivStyles = tv({\n\tbase: \"p-0 px-1.5 outline-none lg:p-0 lg:px-1.5\"\n});\n\n/**\n * Пропсы для рендера тега\n */\nexport type RenderTagProps = {\n\t/** Значение тега (строка) */\n\ttag: string;\n\t/** Индекс тега в массиве */\n\tindex: number;\n\t/** Функция для удаления тега */\n\tonClose?: () => void;\n\t/** Функция для начала редактирования тега */\n\tonEdit?: () => void;\n\t/** Фокус на теге (для навигации с клавиатуры) */\n\tisFocused: boolean;\n\t/** Отключен ли компонент */\n\treadonly: boolean;\n};\n\n/**\n * Функция валидации тега по умолчанию\n */\nconst defaultValidateTag = (tag: string, allTags: string[], editingIndex?: number): boolean | string => {\n\tif (!tag.trim()) return \"Тег не может быть пустым\";\n\n\tif (editingIndex === undefined) {\n\t\t// Добавление нового тега\n\t\tif (allTags.includes(tag)) return \"Такой тег уже существует\";\n\t} else {\n\t\t// Редактирование существующего\n\t\tconst otherTags = allTags.filter((_, i) => i !== editingIndex);\n\t\tif (otherTags.includes(tag)) return \"Такой тег уже существует\";\n\t}\n\n\treturn true;\n};\n\nexport interface TagInputProps {\n\t/** Текущие выбранные опции (controlled режим) */\n\tvalue?: string[];\n\t/** Опции по умолчанию (uncontrolled режим) */\n\tdefaultValue?: string[];\n\t/** Callback при изменении выбранных опций */\n\tonChange?: (options: string[]) => void;\n\t/** Placeholder для input */\n\tplaceholder?: string;\n\t/** Отключить компонент */\n\treadonly?: boolean;\n\t/** CSS класс для контейнера */\n\tclassName?: string;\n\t/** Функция валидации тега. Если null - валидация отключена, если не передана - используется валидация по умолчанию */\n\tvalidateTag?: ((tag: string, allTags: string[], editingIndex?: number) => boolean | string) | null;\n\t/** Состояние ошибки */\n\tinvalid?: boolean;\n\t/** Кастомная функция рендера тега */\n\trenderOption?: (props: RenderTagProps) => React.ReactNode;\n}\n\n/**\n * Компонент для ввода и отображения тегов\n */\nexport const TagInput = React.forwardRef<HTMLDivElement, TagInputProps>(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tdefaultValue = [],\n\t\t\tonChange,\n\t\t\tplaceholder = \"Добавить тег...\",\n\t\t\treadonly = false,\n\t\t\tclassName,\n\t\t\tvalidateTag,\n\t\t\tinvalid,\n\t\t\trenderOption\n\t\t},\n\t\tref\n\t) => {\n\t\t// Состояние для ввода нового тега\n\t\tconst [inputValue, setInputValue] = useState(\"\");\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\n\t\t// Управление тегами\n\t\tconst [tags = [], setTags] = useControllableState<string[]>({ value, defaultValue, onChange });\n\n\t\tconst styles = tagInputStyles({ className, invalid });\n\t\tconst removeTag = useCallback(\n\t\t\t(index: number) => {\n\t\t\t\tif (readonly) return;\n\t\t\t\tsetTags(tags.filter((_, i) => i !== index));\n\t\t\t},\n\t\t\t[tags, setTags, readonly]\n\t\t);\n\n\t\t// Состояние для режима редактирования существующих тегов\n\t\tconst [editingIndex, setEditingIndex] = useState<number | null>(null);\n\t\tconst editingRef = useRef<HTMLDivElement>(null);\n\n\t\t/**\n\t\t * Функция валидации тега\n\t\t */\n\t\tconst validateTagValue = useCallback(\n\t\t\t(tag: string, editingIndex?: number): boolean => {\n\t\t\t\tif (validateTag === null) return true;\n\n\t\t\t\tconst validator = validateTag || defaultValidateTag;\n\t\t\t\tconst result = validator(tag, tags, editingIndex);\n\n\t\t\t\treturn result === true;\n\t\t\t},\n\t\t\t[validateTag, tags]\n\t\t);\n\n\t\t/**\n\t\t * Переключение в режим редактирования существующего тега\n\t\t */\n\t\tconst startEditing = useCallback(\n\t\t\t(index: number) => {\n\t\t\t\tif (readonly) return;\n\t\t\t\tsetEditingIndex(index);\n\t\t\t\t// Фокусируем элемент после обновления состояния\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (editingRef.current) {\n\t\t\t\t\t\t// Устанавливаем содержимое напрямую, без использования React state\n\t\t\t\t\t\teditingRef.current.textContent = tags[index];\n\t\t\t\t\t\teditingRef.current.focus();\n\t\t\t\t\t\t// Выделяем весь текст\n\t\t\t\t\t\tconst range = document.createRange();\n\t\t\t\t\t\trange.selectNodeContents(editingRef.current);\n\t\t\t\t\t\tconst selection = window.getSelection();\n\t\t\t\t\t\tselection?.removeAllRanges();\n\t\t\t\t\t\tselection?.addRange(range);\n\t\t\t\t\t}\n\t\t\t\t}, 0);\n\t\t\t},\n\t\t\t[tags, setEditingIndex, readonly]\n\t\t);\n\n\t\t/**\n\t\t * Отмена редактирования тега\n\t\t */\n\t\tconst cancelEditing = useCallback(() => {\n\t\t\tsetEditingIndex(null);\n\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\n\t\t}, [setEditingIndex]);\n\n\t\t/**\n\t\t * Обработчик нажатия Enter на теге: переключает текущий тег в режим редактирования\n\t\t */\n\t\tconst onEnter = useCallback((_: string, index: number) => startEditing(index), [startEditing]);\n\n\t\tconst handleDeleteTag = useCallback((_: string, index: number) => removeTag(index), [removeTag]);\n\n\t\t/**\n\t\t * Хук для навигации по тегам с помощью клавиатуры (вперед/назад)\n\t\t */\n\t\tconst { handleKeyDown: handleTagsKeyDown, isFocused } = useItemsKeyboardNavigation({\n\t\t\titems: tags,\n\t\t\tonEnter,\n\t\t\tonDelete: handleDeleteTag,\n\t\t\tcycleNavigation: true\n\t\t});\n\n\t\t/**\n\t\t * Сохранение изменений в текущем теге\n\t\t */\n\t\tconst saveEditing = useCallback(() => {\n\t\t\tif (editingIndex !== null && editingRef.current) {\n\t\t\t\tconst newValue = editingRef.current.textContent?.trim() || \"\";\n\n\t\t\t\tif (newValue && validateTagValue(newValue, editingIndex)) {\n\t\t\t\t\tconst newTags = [...tags];\n\t\t\t\t\tnewTags[editingIndex] = newValue;\n\t\t\t\t\tsetTags(newTags);\n\t\t\t\t\tsetEditingIndex(null);\n\t\t\t\t\t// Возвращаем фокус в input и устанавливаем фокус на отредактированный элемент\n\t\t\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}, [editingIndex, editingRef, tags, setEditingIndex, setTags, validateTagValue]);\n\n\t\t/**\n\t\t * Добавление нового тега\n\t\t */\n\t\tconst addNewTag = useCallback(\n\t\t\t(tagValue: string) => {\n\t\t\t\tconst trimmedTag = tagValue.trim();\n\t\t\t\tif (trimmedTag && validateTagValue(trimmedTag)) {\n\t\t\t\t\tsetTags([...tags, trimmedTag]);\n\t\t\t\t\tsetInputValue(\"\");\n\t\t\t\t}\n\t\t\t},\n\t\t\t[tags, setTags, setInputValue, validateTagValue]\n\t\t);\n\n\t\t/**\n\t\t * Обработчик нажатия клавиш на input:\n\t\t * - Если нажат Enter и input не пустой, добавляет новый тег\n\t\t * - Если input пустой, обрабатывает навигацию по тегам\n\t\t */\n\t\tconst handleInputKeyDown = useCallback(\n\t\t\t(e: KeyboardEvent<HTMLInputElement>) => {\n\t\t\t\tif (e.key === \"Enter\" && inputValue.trim()) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\taddNewTag(inputValue);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!inputValue.trim()) {\n\t\t\t\t\thandleTagsKeyDown(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[inputValue, handleTagsKeyDown, addNewTag]\n\t\t);\n\n\t\t/**\n\t\t * Обработчик потери фокуса input - добавляет тег если он не пустой\n\t\t */\n\t\tconst handleInputBlur = useCallback(() => {\n\t\t\tif (inputValue.trim()) {\n\t\t\t\taddNewTag(inputValue);\n\t\t\t}\n\t\t}, [inputValue, addNewTag]);\n\n\t\tconst handleEditingKeyDown = useCallback(\n\t\t\t(e: KeyboardEvent<HTMLDivElement>) => {\n\t\t\t\tif (e.key === \"Enter\") {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsaveEditing();\n\t\t\t\t} else if (e.key === \"Escape\") {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tcancelEditing();\n\t\t\t\t}\n\t\t\t},\n\t\t\t[saveEditing, cancelEditing]\n\t\t);\n\n\t\tconst renderTags = useCallback(() => {\n\t\t\treturn tags.map((tag, index) => {\n\t\t\t\tif (editingIndex === index) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<InputGroupContentEditable\n\t\t\t\t\t\t\tkey={`editing-${index}`}\n\t\t\t\t\t\t\tref={editingRef}\n\t\t\t\t\t\t\tclassName={editingDivStyles()}\n\t\t\t\t\t\t\tonKeyDown={handleEditingKeyDown}\n\t\t\t\t\t\t\tonBlur={cancelEditing}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (renderOption) {\n\t\t\t\t\tconst item = renderOption({\n\t\t\t\t\t\ttag,\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tonClose: () => removeTag(index),\n\t\t\t\t\t\tonEdit: () => startEditing(index),\n\t\t\t\t\t\tisFocused: !readonly && isFocused(index),\n\t\t\t\t\t\treadonly\n\t\t\t\t\t});\n\t\t\t\t\tif (item !== undefined) {\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<SearchSelectTag\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tonLabelClick={() => startEditing(index)}\n\t\t\t\t\t\tonClose={() => removeTag(index)}\n\t\t\t\t\t\treadonly={readonly}\n\t\t\t\t\t\tisFocused={!readonly && isFocused(index)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tag}\n\t\t\t\t\t</SearchSelectTag>\n\t\t\t\t);\n\t\t\t});\n\t\t}, [\n\t\t\teditingIndex,\n\t\t\teditingRef,\n\t\t\thandleEditingKeyDown,\n\t\t\tcancelEditing,\n\t\t\ttags,\n\t\t\treadonly,\n\t\t\tisFocused,\n\t\t\tremoveTag,\n\t\t\tstartEditing,\n\t\t\trenderOption\n\t\t]);\n\n\t\treturn (\n\t\t\t<InputGroup ref={ref} className={styles.base()}>\n\t\t\t\t{renderTags()}\n\t\t\t\t<InputGroupInput\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\tonChange={(e) => setInputValue(e.target.value)}\n\t\t\t\t\tonKeyDown={handleInputKeyDown}\n\t\t\t\t\tonBlur={handleInputBlur}\n\t\t\t\t\tplaceholder={readonly ? \"\" : placeholder}\n\t\t\t\t\tclassName={inputStyles()}\n\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\taria-invalid={invalid}\n\t\t\t\t/>\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nTagInput.displayName = \"TagInput\";\n"],"names":["tagInputStyles","tv","selectTriggerStyles","inputStyles","editingDivStyles","defaultValidateTag","tag","allTags","editingIndex","_","i","TagInput","React","value","defaultValue","onChange","placeholder","readonly","className","validateTag","invalid","renderOption","ref","inputValue","setInputValue","useState","inputRef","useRef","tags","setTags","useControllableState","styles","removeTag","useCallback","index","setEditingIndex","editingRef","validateTagValue","startEditing","range","selection","cancelEditing","onEnter","handleDeleteTag","handleTagsKeyDown","isFocused","useItemsKeyboardNavigation","saveEditing","newValue","newTags","addNewTag","tagValue","trimmedTag","handleInputKeyDown","e","handleInputBlur","handleEditingKeyDown","renderTags","jsx","InputGroupContentEditable","item","SearchSelectTag","InputGroup","InputGroupInput"],"mappings":"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"}