@jenesei-software/jenesei-kit-react 2.3.2 → 2.3.4

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 (123) hide show
  1. package/build/area-preview.cjs.js +1 -1
  2. package/build/area-preview.es.js +1 -1
  3. package/build/button-Cl4532xK.cjs +3 -0
  4. package/build/button-Cl4532xK.cjs.map +1 -0
  5. package/build/{button-D6Bg00Uh.js → button-ygPLb-n_.js} +30 -32
  6. package/build/button-ygPLb-n_.js.map +1 -0
  7. package/build/{checkbox-9ue4f3-6.cjs → checkbox-B_eE5eQs.cjs} +2 -2
  8. package/build/{checkbox-9ue4f3-6.cjs.map → checkbox-B_eE5eQs.cjs.map} +1 -1
  9. package/build/{checkbox-TW5VSNui.js → checkbox-CLGIqCRV.js} +2 -2
  10. package/build/{checkbox-TW5VSNui.js.map → checkbox-CLGIqCRV.js.map} +1 -1
  11. package/build/component-button.cjs.js +1 -1
  12. package/build/component-button.es.js +1 -1
  13. package/build/component-checkbox.cjs.js +1 -1
  14. package/build/component-checkbox.es.js +1 -1
  15. package/build/component-date-picker.cjs.js +1 -1
  16. package/build/component-date-picker.es.js +1 -1
  17. package/build/component-icon.cjs.js +1 -1
  18. package/build/component-icon.es.js +1 -1
  19. package/build/component-input-otp.cjs.js +1 -1
  20. package/build/component-input-otp.es.js +1 -1
  21. package/build/component-input.cjs.js +1 -1
  22. package/build/component-input.es.js +1 -1
  23. package/build/component-pagination.cjs.js +1 -1
  24. package/build/component-pagination.es.js +1 -1
  25. package/build/component-select.cjs.js +1 -1
  26. package/build/component-select.es.js +1 -1
  27. package/build/component-textarea.cjs.js +1 -1
  28. package/build/component-textarea.es.js +1 -1
  29. package/build/components/icon/component.d.ts +1 -1
  30. package/build/components/icon/component.hooks.d.ts +3 -1
  31. package/build/{context-app-CxNgCfd2.js → context-app-DhxAgIBE.js} +2 -2
  32. package/build/{context-app-CxNgCfd2.js.map → context-app-DhxAgIBE.js.map} +1 -1
  33. package/build/{context-app-29ajupjq.cjs → context-app-v8y-IIxP.cjs} +2 -2
  34. package/build/{context-app-29ajupjq.cjs.map → context-app-v8y-IIxP.cjs.map} +1 -1
  35. package/build/context-app.cjs.js +1 -1
  36. package/build/context-app.es.js +1 -1
  37. package/build/{context-cookie-Daq2MZo3.js → context-cookie-DRPslhxf.js} +2 -2
  38. package/build/{context-cookie-Daq2MZo3.js.map → context-cookie-DRPslhxf.js.map} +1 -1
  39. package/build/{context-cookie-DFgWWGA9.cjs → context-cookie-qk-RTVhn.cjs} +2 -2
  40. package/build/{context-cookie-DFgWWGA9.cjs.map → context-cookie-qk-RTVhn.cjs.map} +1 -1
  41. package/build/context-cookie.cjs.js +1 -1
  42. package/build/context-cookie.es.js +1 -1
  43. package/build/{context-geolocation-B_KYGlfQ.js → context-geolocation-6vk3sckx.js} +2 -2
  44. package/build/{context-geolocation-B_KYGlfQ.js.map → context-geolocation-6vk3sckx.js.map} +1 -1
  45. package/build/{context-geolocation-bP0_455H.cjs → context-geolocation-DlHZrmaf.cjs} +2 -2
  46. package/build/{context-geolocation-bP0_455H.cjs.map → context-geolocation-DlHZrmaf.cjs.map} +1 -1
  47. package/build/context-geolocation.cjs.js +1 -1
  48. package/build/context-geolocation.es.js +1 -1
  49. package/build/{context-local-storage-DA_whw_k.js → context-local-storage-CknlDupP.js} +2 -2
  50. package/build/{context-local-storage-DA_whw_k.js.map → context-local-storage-CknlDupP.js.map} +1 -1
  51. package/build/{context-local-storage-D_x8dwxM.cjs → context-local-storage-DK4zzbkX.cjs} +2 -2
  52. package/build/{context-local-storage-D_x8dwxM.cjs.map → context-local-storage-DK4zzbkX.cjs.map} +1 -1
  53. package/build/context-local-storage.cjs.js +1 -1
  54. package/build/context-local-storage.es.js +1 -1
  55. package/build/{context-permission-Cj70kL4A.js → context-permission-C5L4I8X3.js} +2 -2
  56. package/build/{context-permission-Cj70kL4A.js.map → context-permission-C5L4I8X3.js.map} +1 -1
  57. package/build/{context-permission-BP9hPUcR.cjs → context-permission-qp3vUfoA.cjs} +2 -2
  58. package/build/{context-permission-BP9hPUcR.cjs.map → context-permission-qp3vUfoA.cjs.map} +1 -1
  59. package/build/context-permission.cjs.js +1 -1
  60. package/build/context-permission.es.js +1 -1
  61. package/build/{context-sonner-CtCttHLD.js → context-sonner-BB7C6Wsf.js} +3 -3
  62. package/build/{context-sonner-CtCttHLD.js.map → context-sonner-BB7C6Wsf.js.map} +1 -1
  63. package/build/{context-sonner-B-eO7pwI.cjs → context-sonner-BGpNwV_S.cjs} +2 -2
  64. package/build/{context-sonner-B-eO7pwI.cjs.map → context-sonner-BGpNwV_S.cjs.map} +1 -1
  65. package/build/context-sonner.cjs.js +1 -1
  66. package/build/context-sonner.es.js +1 -1
  67. package/build/{date-picker-9rpPgP0a.cjs → date-picker-CexAqJgp.cjs} +2 -2
  68. package/build/{date-picker-9rpPgP0a.cjs.map → date-picker-CexAqJgp.cjs.map} +1 -1
  69. package/build/{date-picker-BvKtH7lp.js → date-picker-WGlcoobG.js} +3 -3
  70. package/build/{date-picker-BvKtH7lp.js.map → date-picker-WGlcoobG.js.map} +1 -1
  71. package/build/hooks-use-deep-compare-memoize.cjs.js +1 -1
  72. package/build/hooks-use-deep-compare-memoize.es.js +1 -1
  73. package/build/hooks-use-deep-memo.cjs.js +1 -1
  74. package/build/hooks-use-deep-memo.es.js +1 -1
  75. package/build/icon-B6PvcNvO.cjs +3 -0
  76. package/build/icon-B6PvcNvO.cjs.map +1 -0
  77. package/build/icon-okw710zo.js +255 -0
  78. package/build/icon-okw710zo.js.map +1 -0
  79. package/build/index.cjs.js +1 -1
  80. package/build/index.es.js +16 -16
  81. package/build/{input-Buf_HFGH.js → input-BS1SNtLb.js} +3 -3
  82. package/build/{input-Buf_HFGH.js.map → input-BS1SNtLb.js.map} +1 -1
  83. package/build/{input-DMm67Wyr.cjs → input-BW0CKgfw.cjs} +2 -2
  84. package/build/{input-DMm67Wyr.cjs.map → input-BW0CKgfw.cjs.map} +1 -1
  85. package/build/{input-otp-MDjIcfVu.cjs → input-otp-B9zfjb5u.cjs} +2 -2
  86. package/build/{input-otp-MDjIcfVu.cjs.map → input-otp-B9zfjb5u.cjs.map} +1 -1
  87. package/build/{input-otp-q4zKk_nP.js → input-otp-DWTU3oR1.js} +2 -2
  88. package/build/{input-otp-q4zKk_nP.js.map → input-otp-DWTU3oR1.js.map} +1 -1
  89. package/build/{isEqual-BHn_Fkkw.js → isEqual-BF-XUq17.js} +1 -1
  90. package/build/{isEqual-BHn_Fkkw.js.map → isEqual-BF-XUq17.js.map} +1 -1
  91. package/build/{isEqual-Q-mEN2md.cjs → isEqual-DJD8QXYf.cjs} +1 -1
  92. package/build/{isEqual-Q-mEN2md.cjs.map → isEqual-DJD8QXYf.cjs.map} +1 -1
  93. package/build/{logger-QC3A33gh.js → logger-D-UddU9-.js} +1 -1
  94. package/build/{logger-QC3A33gh.js.map → logger-D-UddU9-.js.map} +1 -1
  95. package/build/{logger-D3Xu5ef3.cjs → logger-GLARTxbP.cjs} +1 -1
  96. package/build/{logger-D3Xu5ef3.cjs.map → logger-GLARTxbP.cjs.map} +1 -1
  97. package/build/{pagination-ZXl2fVKZ.cjs → pagination-ClW-z5EV.cjs} +2 -2
  98. package/build/{pagination-ZXl2fVKZ.cjs.map → pagination-ClW-z5EV.cjs.map} +1 -1
  99. package/build/{pagination-BFTnpYCz.js → pagination-Dnl1v3VL.js} +2 -2
  100. package/build/{pagination-BFTnpYCz.js.map → pagination-Dnl1v3VL.js.map} +1 -1
  101. package/build/{preview-p2i9Ju3I.cjs → preview-DEFGRXfJ.cjs} +2 -2
  102. package/build/{preview-p2i9Ju3I.cjs.map → preview-DEFGRXfJ.cjs.map} +1 -1
  103. package/build/{preview-C-mtYSGG.js → preview-DVk-Ykii.js} +2 -2
  104. package/build/{preview-C-mtYSGG.js.map → preview-DVk-Ykii.js.map} +1 -1
  105. package/build/{select-BdGRG7zf.js → select-9C2iAXLx.js} +4 -4
  106. package/build/{select-BdGRG7zf.js.map → select-9C2iAXLx.js.map} +1 -1
  107. package/build/{select-7yVS14II.cjs → select-C2lLQlEy.cjs} +2 -2
  108. package/build/{select-7yVS14II.cjs.map → select-C2lLQlEy.cjs.map} +1 -1
  109. package/build/styles.css +1 -1
  110. package/build/{textarea-DLZq4RT-.js → textarea-BW_LYAhr.js} +5 -5
  111. package/build/textarea-BW_LYAhr.js.map +1 -0
  112. package/build/{textarea-Bm3ki2-6.cjs → textarea-Cly9U5It.cjs} +2 -2
  113. package/build/textarea-Cly9U5It.cjs.map +1 -0
  114. package/package.json +1 -1
  115. package/build/button-6CFvwtSz.cjs +0 -3
  116. package/build/button-6CFvwtSz.cjs.map +0 -1
  117. package/build/button-D6Bg00Uh.js.map +0 -1
  118. package/build/icon-DyjaxKWq.cjs +0 -3
  119. package/build/icon-DyjaxKWq.cjs.map +0 -1
  120. package/build/icon-Y-IZxLXB.js +0 -245
  121. package/build/icon-Y-IZxLXB.js.map +0 -1
  122. package/build/textarea-Bm3ki2-6.cjs.map +0 -1
  123. package/build/textarea-DLZq4RT-.js.map +0 -1
@@ -1,245 +0,0 @@
1
- import { i as l, n as y, r as h } from "./utils-BRgi6734.js";
2
- import { n as w, t as M } from "./functions-DzX-pTN8.js";
3
- import { t as k } from "./skeleton-wRSg85X7.js";
4
- import "./logger-QC3A33gh.js";
5
- import { jsx as u, jsxs as v } from "react/jsx-runtime";
6
- import { useEffect as E, useMemo as m, useState as C } from "react";
7
- var A = "1.3.0", r = /* @__PURE__ */ new Map();
8
- function I(e) {
9
- const [t, a] = C(!1), [g, s] = C(null);
10
- return E(() => {
11
- let c = !0;
12
- const n = r.get(e);
13
- if (n?.loaded) {
14
- a(!0), s(n.error ?? null);
15
- return;
16
- }
17
- let f;
18
- if (n)
19
- f = n.promise;
20
- else {
21
- const o = (async () => {
22
- const i = await fetch(e);
23
- if (!i.ok) throw new Error(`Failed to load sprite: ${e}`);
24
- const S = await i.text(), d = document.createElement("div");
25
- d.style.display = "none", d.innerHTML = S, document.body.prepend(d);
26
- })();
27
- r.set(e, {
28
- promise: o,
29
- loaded: !1
30
- }), o.then(() => {
31
- const i = r.get(e);
32
- r.set(e, {
33
- ...i,
34
- promise: o,
35
- loaded: !0
36
- });
37
- }).catch((i) => {
38
- const S = i instanceof Error ? i : new Error(String(i)), d = r.get(e);
39
- r.set(e, {
40
- ...d,
41
- promise: o,
42
- loaded: !0,
43
- error: S
44
- });
45
- }), f = o;
46
- }
47
- return f.then(() => {
48
- if (!c) return;
49
- const o = r.get(e);
50
- a(o?.loaded ?? !0), s(o?.error ?? null);
51
- }).catch(() => {
52
- }), () => {
53
- c = !1;
54
- };
55
- }, [e]), {
56
- loaded: t,
57
- error: g
58
- };
59
- }
60
- var P = (e) => {
61
- const t = m(() => N({
62
- type: e.type,
63
- name: e.name
64
- }), [e.name, e.type]), { loaded: a, error: g } = I(m(() => H({ type: e.type }), [e.type])), s = m(() => ({
65
- className: M([y.component.icon.skeleton, e.className]),
66
- style: w([{
67
- [l.component.icon.skeletonHeightIcon]: e.size !== "100%" ? h.size[e.size].heightIcon : "100%",
68
- [l.component.icon.skeletonOrder]: e.order ? String(e.order) : "initial"
69
- }, e.style])
70
- }), [
71
- e.className,
72
- e.style,
73
- e.order,
74
- e.size
75
- ]), c = m(() => ({
76
- className: M([
77
- y.component.icon.root,
78
- y.transition.icon,
79
- e.className
80
- ]),
81
- style: w([{
82
- [l.component.icon.color]: e.color ? h.palette[e.color] : "inherit",
83
- [l.component.icon.heightIcon]: e.size !== "100%" ? h.size[e.size].heightIcon : "100%",
84
- [l.component.icon.turn]: e.turn ? `${e.turn}deg` : "0deg",
85
- [l.component.icon.order]: e.order ? String(e.order) : "initial"
86
- }, e.style])
87
- }), [
88
- e.className,
89
- e.style,
90
- e.order,
91
- e.size,
92
- e.color,
93
- e.turn
94
- ]);
95
- return !a || g ? /* @__PURE__ */ u(k, {
96
- color: e.color ?? void 0,
97
- className: s.className,
98
- style: s.style,
99
- visible: !1
100
- }) : /* @__PURE__ */ v("svg", {
101
- width: "24",
102
- height: "24",
103
- viewBox: "0 0 24 24",
104
- xmlns: "http://www.w3.org/2000/svg",
105
- className: c.className,
106
- style: c.style,
107
- onClick: e.onClick,
108
- onKeyDown: (n) => {
109
- e.onClick && (n.key === "Enter" || n.key === " ") && (n.preventDefault(), e.onClick(n));
110
- },
111
- tabIndex: e.tabIndex,
112
- role: e.onClick ? "button" : void 0,
113
- children: [/* @__PURE__ */ u("title", { children: e.name }), /* @__PURE__ */ u("use", { href: t })]
114
- });
115
- };
116
- function N(e) {
117
- return `#${e.type}-${e.name}`;
118
- }
119
- function H(e) {
120
- return `https://cdn.jsdelivr.net/gh/jenesei-software/jenesei-id-assets@${A}/icons/${e.type}.svg`;
121
- }
122
- var _ = [
123
- "Close",
124
- "Biometry",
125
- "Qr",
126
- "Search",
127
- "Folder",
128
- "Wallet",
129
- "Graph",
130
- "Bookmark",
131
- "Browser",
132
- "Category",
133
- "Home",
134
- "Notification",
135
- "Chat",
136
- "Heart",
137
- "Paper",
138
- "Plus",
139
- "Minus",
140
- "PaperPlus",
141
- "PaperNegative",
142
- "PaperFail",
143
- "PaperDownload",
144
- "PaperUpload",
145
- "Send",
146
- "Password",
147
- "Swap",
148
- "Work",
149
- "Arrow1",
150
- "Arrow2",
151
- "Arrow3",
152
- "Arrow4",
153
- "ArrowMini1",
154
- "ArrowMini2",
155
- "Scan",
156
- "Activity",
157
- "Calendar",
158
- "Message",
159
- "PlusMini",
160
- "ChartMini",
161
- "Game",
162
- "Bag1",
163
- "Bag2",
164
- "TicketStar",
165
- "MoreCircle",
166
- "MoreSquare",
167
- "Discount",
168
- "Buy",
169
- "Web",
170
- "InfoMini",
171
- "DangerMini",
172
- "CloseMini",
173
- "TickMini",
174
- "Video",
175
- "Discovery",
176
- "Location",
177
- "Document",
178
- "Setting",
179
- "Time",
180
- "VolumeUp",
181
- "VolumeDown",
182
- "VolumeOff",
183
- "Star",
184
- "Select",
185
- "Ticket",
186
- "Camera",
187
- "Profile",
188
- "AddUser",
189
- "TwoUser",
190
- "ThreeUser",
191
- "Login",
192
- "Logout",
193
- "Download",
194
- "Upload",
195
- "Voice1",
196
- "Voice2",
197
- "Delete",
198
- "Edit",
199
- "PlayMini",
200
- "ShieldDone",
201
- "ShieldFail",
202
- "Show",
203
- "Hide",
204
- "Filter1",
205
- "Filter2",
206
- "Image",
207
- "Call",
208
- "Calling",
209
- "CallMissed",
210
- "CallSilent",
211
- "Lock",
212
- "Unlock",
213
- "Resources",
214
- "Language"
215
- ], D = [
216
- "Radio-true",
217
- "Radio-false",
218
- "Square-true",
219
- "Square-false",
220
- "Heart-true",
221
- "Heart-false",
222
- "Arrow"
223
- ], z = [
224
- "Line",
225
- "Blocks",
226
- "Balls"
227
- ], L = ["Jenesei", "BustMarket"], b = {
228
- id: _,
229
- checkbox: D,
230
- loading: z,
231
- logo: L
232
- };
233
- function U(e) {
234
- return (e.icons ?? [])?.filter((t) => !t.isHidden)?.map((t, a) => /* @__PURE__ */ u(P, {
235
- size: t?.size ?? e.size,
236
- ...t
237
- }, `${t.type}-${t.name}-${a}`));
238
- }
239
- export {
240
- b as n,
241
- P as r,
242
- U as t
243
- };
244
-
245
- //# sourceMappingURL=icon-Y-IZxLXB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-Y-IZxLXB.js","names":[],"sources":["../src/cores/consts.ts","../src/components/icon/component.hooks.tsx","../src/components/icon/component.tsx","../src/components/icon/component.consts.tsx","../src/components/icon/component.functions.tsx"],"sourcesContent":["import {\n IDatePickerTranslateInput,\n IDatePickerTranslateMonth,\n IDatePickerTranslateWeek,\n} from '@local/components/date-picker';\n\nexport const LOCALE_INPUT: IDatePickerTranslateInput = {\n day: 'ДД',\n month: 'ММ',\n year: 'ГГГГ',\n};\n\nexport const LOCALE_MONTHS: IDatePickerTranslateMonth[] = [\n {\n localeLong: 'Январь',\n localeShort: 'Янв',\n value: 'january',\n },\n {\n localeLong: 'February',\n localeShort: 'Feb',\n value: 'february',\n },\n {\n localeLong: 'March',\n localeShort: 'Mar',\n value: 'march',\n },\n {\n localeLong: 'April',\n localeShort: 'Apr',\n value: 'april',\n },\n {\n localeLong: 'May',\n localeShort: 'May',\n value: 'may',\n },\n {\n localeLong: 'June',\n localeShort: 'Jun',\n value: 'june',\n },\n {\n localeLong: 'July',\n localeShort: 'Jul',\n value: 'july',\n },\n {\n localeLong: 'August',\n localeShort: 'Aug',\n value: 'august',\n },\n {\n localeLong: 'September',\n localeShort: 'Sep',\n value: 'september',\n },\n {\n localeLong: 'October',\n localeShort: 'Oct',\n value: 'october',\n },\n {\n localeLong: 'November',\n localeShort: 'Nov',\n value: 'november',\n },\n {\n localeLong: 'December',\n localeShort: 'Dec',\n value: 'december',\n },\n];\nexport const LOCALE_WEEKS: IDatePickerTranslateWeek[] = [\n {\n localeLong: 'Monday',\n localeShort: 'Пн',\n value: 'mo',\n },\n {\n localeLong: 'Tuesday',\n localeShort: 'Tue',\n value: 'tu',\n },\n {\n localeLong: 'Wednesday',\n localeShort: 'Wed',\n value: 'we',\n },\n {\n localeLong: 'Thursday',\n localeShort: 'Thu',\n value: 'th',\n },\n {\n localeLong: 'Friday',\n localeShort: 'Fri',\n value: 'fr',\n },\n {\n localeLong: 'Saturday',\n localeShort: 'Sat',\n value: 'sa',\n },\n {\n localeLong: 'Sunday',\n localeShort: 'Sun',\n value: 'su',\n },\n];\n\nexport const LIBRARY_VERSION = import.meta.env.VITE_APP_VERSION;\nexport const ICON_VERSION = import.meta.env.VITE_ICON_VERSION;\n\n// export const LIST_TYPOGRAPHY_VARIANTS_DEFAULT: IThemeTypographyHeading[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n","import { logger } from '@local/cores/logger';\n\nimport { useEffect, useState } from 'react';\n\nexport function useInjectSprites(urls: string[]) {\n useEffect(() => {\n const containers: HTMLDivElement[] = [];\n\n urls.forEach(async (url) => {\n try {\n const res = await fetch(url);\n if (!res.ok) {\n logger.error(`Failed to load sprite: ${url}`);\n return;\n }\n const text = await res.text();\n\n const div = document.createElement('div');\n div.style.display = 'none';\n div.innerHTML = text;\n\n document.body.prepend(div);\n containers.push(div);\n } catch (err) {\n logger.error(`Error loading sprite ${url}`, err);\n }\n });\n\n return () => {\n containers.forEach((div) => {\n div.remove();\n });\n };\n }, [urls]);\n}\n\ntype SpriteStatus = {\n promise: Promise<void>;\n loaded: boolean;\n error?: Error;\n};\n\nconst loadedSprites = new Map<string, SpriteStatus>();\n\nexport function useLazyInjectSprite(url: string) {\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n useEffect(() => {\n let isMounted = true;\n\n // Проверяем актуальный статус прямо здесь\n const status = loadedSprites.get(url);\n if (status?.loaded) {\n setLoaded(true);\n setError(status.error ?? null);\n return;\n }\n\n let promise: Promise<void>;\n\n if (!status) {\n const p = (async () => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Failed to load sprite: ${url}`);\n const text = await res.text();\n const div = document.createElement('div');\n div.style.display = 'none';\n div.innerHTML = text;\n document.body.prepend(div);\n })();\n\n loadedSprites.set(url, { promise: p, loaded: false });\n\n p.then(() => {\n const prev = loadedSprites.get(url);\n loadedSprites.set(url, { ...(prev as any), promise: p, loaded: true });\n }).catch((err) => {\n const errorObj = err instanceof Error ? err : new Error(String(err));\n const prev = loadedSprites.get(url);\n loadedSprites.set(url, { ...(prev as any), promise: p, loaded: true, error: errorObj });\n });\n\n promise = p;\n } else {\n promise = status.promise;\n }\n\n promise\n .then(() => {\n if (!isMounted) return;\n const s = loadedSprites.get(url);\n setLoaded(s?.loaded ?? true);\n setError(s?.error ?? null);\n })\n .catch(() => {}); // Ошибка уже сохранена в статусе\n\n return () => {\n isMounted = false;\n };\n }, [url]);\n\n return { loaded, error };\n}\n","import { Skeleton } from '@local/areas/skeleton';\nimport { ICON_VERSION } from '@local/cores/consts';\nimport { CSS_VARS } from '@local/styles/utils';\nimport { CSS_CLASS, CSS_VARS_RAW } from '@local/styles/utils/constants';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { useMemo } from 'react';\n\nimport { useLazyInjectSprite } from './component.hooks';\nimport { IIcon } from './component.types';\n\nexport const Icon = (props: IIcon) => {\n const iconId = useMemo(() => getIconId({ type: props.type, name: props.name }), [props.name, props.type]);\n const spriteUrl = useMemo(() => getSpriteUrl({ type: props.type }), [props.type]);\n const { loaded, error } = useLazyInjectSprite(spriteUrl);\n\n const configSkeleton = useMemo(() => {\n return {\n className: setClasses([CSS_CLASS.component.icon.skeleton, props.className]),\n style: setStyles([\n {\n [CSS_VARS_RAW.component.icon.skeletonHeightIcon]:\n props.size !== '100%' ? CSS_VARS.size[props.size].heightIcon : '100%',\n [CSS_VARS_RAW.component.icon.skeletonOrder]: props.order ? String(props.order) : 'initial',\n },\n props.style,\n ]),\n };\n }, [props.className, props.style, props.order, props.size]);\n\n const configIcon = useMemo(() => {\n return {\n className: setClasses([CSS_CLASS.component.icon.root, CSS_CLASS.transition.icon, props.className]),\n\n style: setStyles([\n {\n [CSS_VARS_RAW.component.icon.color]: props.color ? CSS_VARS.palette[props.color] : 'inherit',\n [CSS_VARS_RAW.component.icon.heightIcon]:\n props.size !== '100%' ? CSS_VARS.size[props.size].heightIcon : '100%',\n [CSS_VARS_RAW.component.icon.turn]: props.turn ? `${props.turn}deg` : '0deg',\n [CSS_VARS_RAW.component.icon.order]: props.order ? String(props.order) : 'initial',\n },\n props.style,\n ]),\n };\n }, [props.className, props.style, props.order, props.size, props.color, props.turn]);\n\n if (!loaded || error)\n return (\n <Skeleton\n color={props.color ?? undefined}\n className={configSkeleton.className}\n style={configSkeleton.style}\n visible={false}\n />\n );\n\n return (\n <svg\n width='24'\n height='24'\n viewBox='0 0 24 24'\n xmlns='http://www.w3.org/2000/svg'\n className={configIcon.className}\n style={configIcon.style}\n onClick={props.onClick}\n onKeyDown={(e) => {\n if (props.onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n props.onClick(e as any);\n }\n }}\n tabIndex={props.tabIndex}\n role={props.onClick ? 'button' : undefined}\n >\n <title>{props.name}</title>\n <use href={iconId} />\n </svg>\n );\n};\n\nexport function getIconId(props: { type: string; name: string }) {\n return `#${props.type}-${props.name}`;\n}\n\nexport function getSpriteUrl(props: { type: string }) {\n return `https://cdn.jsdelivr.net/gh/jenesei-software/jenesei-id-assets@${ICON_VERSION}/icons/${props.type}.svg`;\n}\n","const THEME_MAP_ID = [\n 'Close',\n 'Biometry',\n 'Qr',\n 'Search',\n 'Folder',\n 'Wallet',\n 'Graph',\n 'Bookmark',\n 'Browser',\n 'Category',\n 'Home',\n 'Notification',\n 'Chat',\n 'Heart',\n 'Paper',\n 'Plus',\n 'Minus',\n 'PaperPlus',\n 'PaperNegative',\n 'PaperFail',\n 'PaperDownload',\n 'PaperUpload',\n 'Send',\n 'Password',\n 'Swap',\n 'Work',\n 'Arrow1',\n 'Arrow2',\n 'Arrow3',\n 'Arrow4',\n 'ArrowMini1',\n 'ArrowMini2',\n 'Scan',\n 'Activity',\n 'Calendar',\n 'Message',\n 'PlusMini',\n 'ChartMini',\n 'Game',\n 'Bag1',\n 'Bag2',\n 'TicketStar',\n 'MoreCircle',\n 'MoreSquare',\n 'Discount',\n 'Buy',\n 'Web',\n 'InfoMini',\n 'DangerMini',\n 'CloseMini',\n 'TickMini',\n 'Video',\n 'Discovery',\n 'Location',\n 'Document',\n 'Setting',\n 'Time',\n 'VolumeUp',\n 'VolumeDown',\n 'VolumeOff',\n 'Star',\n 'Select',\n 'Ticket',\n 'Camera',\n 'Profile',\n 'AddUser',\n 'TwoUser',\n 'ThreeUser',\n 'Login',\n 'Logout',\n 'Download',\n 'Upload',\n 'Voice1',\n 'Voice2',\n 'Delete',\n 'Edit',\n 'PlayMini',\n 'ShieldDone',\n 'ShieldFail',\n 'Show',\n 'Hide',\n 'Filter1',\n 'Filter2',\n 'Image',\n 'Call',\n 'Calling',\n 'CallMissed',\n 'CallSilent',\n 'Lock',\n 'Unlock',\n 'Resources',\n 'Language',\n] as const;\nconst THEME_MAP_CHECKBOX = [\n 'Radio-true',\n 'Radio-false',\n 'Square-true',\n 'Square-false',\n 'Heart-true',\n 'Heart-false',\n 'Arrow',\n] as const;\nconst THEME_MAP_LOADING = ['Line', 'Blocks', 'Balls'] as const;\nconst THEME_MAP_LOGO = ['Jenesei', 'BustMarket'] as const;\n\nexport const THEME_MAP = {\n id: THEME_MAP_ID,\n checkbox: THEME_MAP_CHECKBOX,\n loading: THEME_MAP_LOADING,\n logo: THEME_MAP_LOGO,\n};\n","import { Icon } from './component';\nimport { IGetIconComponentsProps } from './component.types';\n\nexport function getIconComponents(props: IGetIconComponentsProps) {\n return (props.icons ?? [])\n ?.filter((icon) => !icon.isHidden)\n ?.map((icon, index) => (\n <Icon key={`${icon.type}-${icon.name}-${index}`} size={icon?.size ?? props.size} {...icon} />\n ));\n}\n"],"mappings":";;;;;;AAiHA,IAAa,IAAA,SCvEP,IAAgB,oBAAI,IAAA;AAE1B,SAAgB,EAAoB,GAAa;AAC/C,QAAM,CAAC,GAAQ,CAAA,IAAa,EAAS,EAAA,GAC/B,CAAC,GAAO,CAAA,IAAY,EAAuB,IAAA;AAEjD,SAAA,EAAA,MAAgB;AACd,QAAI,IAAY;AAGhB,UAAM,IAAS,EAAc,IAAI,CAAA;AACjC,QAAI,GAAQ,QAAQ;AAClB,MAAA,EAAU,EAAA,GACV,EAAS,EAAO,SAAS,IAAA;AACzB;AAAA;AAGF,QAAI;AAEJ,QAAK;AAwBH,MAAA,IAAU,EAAO;AAAA,SAxBN;AACX,YAAM,KAAK,YAAY;AACrB,cAAM,IAAM,MAAM,MAAM,CAAA;AACxB,YAAI,CAAC,EAAI,GAAI,OAAM,IAAI,MAAM,0BAA0B,CAAA,EAAA;AACvD,cAAM,IAAO,MAAM,EAAI,KAAA,GACjB,IAAM,SAAS,cAAc,KAAA;AACnC,QAAA,EAAI,MAAM,UAAU,QACpB,EAAI,YAAY,GAChB,SAAS,KAAK,QAAQ,CAAA;AAAA;AAGxB,MAAA,EAAc,IAAI,GAAK;AAAA,QAAE,SAAS;AAAA,QAAG,QAAQ;AAAA,OAAO,GAEpD,EAAE,KAAA,MAAW;AACX,cAAM,IAAO,EAAc,IAAI,CAAA;AAC/B,QAAA,EAAc,IAAI,GAAK;AAAA,UAAE,GAAI;AAAA,UAAc,SAAS;AAAA,UAAG,QAAQ;AAAA,SAAM;AAAA,SACpE,MAAA,CAAO,MAAQ;AAChB,cAAM,IAAW,aAAe,QAAQ,IAAM,IAAI,MAAM,OAAO,CAAA,CAAI,GAC7D,IAAO,EAAc,IAAI,CAAA;AAC/B,QAAA,EAAc,IAAI,GAAK;AAAA,UAAE,GAAI;AAAA,UAAc,SAAS;AAAA,UAAG,QAAQ;AAAA,UAAM,OAAO;AAAA,SAAU;AAAA,UAGxF,IAAU;AAAA;AAKZ,WAAA,EACG,KAAA,MAAW;AACV,UAAI,CAAC,EAAW;AAChB,YAAM,IAAI,EAAc,IAAI,CAAA;AAC5B,MAAA,EAAU,GAAG,UAAU,EAAA,GACvB,EAAS,GAAG,SAAS,IAAA;AAAA,OAEtB,MAAA,MAAY;AAAA,IAAA,CAAA,GAEf,MAAa;AACX,MAAA,IAAY;AAAA;KAEb,CAAC,CAAA,CAAI,GAED;AAAA,IAAE,QAAA;AAAA,IAAQ,OAAA;AAAA;;AC3FnB,IAAa,IAAA,CAAQ,MAAiB;AACpC,QAAM,IAAS,EAAA,MAAc,EAAU;AAAA,IAAE,MAAM,EAAM;AAAA,IAAM,MAAM,EAAM;AAAA,GAAM,GAAG,CAAC,EAAM,MAAM,EAAM,IAAA,CAAK,GAElG,EAAE,QAAA,GAAQ,OAAA,EAAA,IAAU,EADR,EAAA,MAAc,EAAa,EAAE,MAAM,EAAM,KAAA,CAAM,GAAG,CAAC,EAAM,IAAA,CAAK,CAAC,GAG3E,IAAiB,EAAA,OACd;AAAA,IACL,WAAW,EAAW,CAAC,EAAU,UAAU,KAAK,UAAU,EAAM,SAAA,CAAU;AAAA,IAC1E,OAAO,EAAU,CACf;AAAA,OACG,EAAa,UAAU,KAAK,kBAAA,GAC3B,EAAM,SAAS,SAAS,EAAS,KAAK,EAAM,IAAA,EAAM,aAAa;AAAA,OAChE,EAAa,UAAU,KAAK,aAAA,GAAgB,EAAM,QAAQ,OAAO,EAAM,KAAA,IAAS;AAAA,OAEnF,EAAM,KAAA,CACP;AAAA,MAEF;AAAA,IAAC,EAAM;AAAA,IAAW,EAAM;AAAA,IAAO,EAAM;AAAA,IAAO,EAAM;AAAA,GAAK,GAEpD,IAAa,EAAA,OACV;AAAA,IACL,WAAW,EAAW;AAAA,MAAC,EAAU,UAAU,KAAK;AAAA,MAAM,EAAU,WAAW;AAAA,MAAM,EAAM;AAAA,KAAU;AAAA,IAEjG,OAAO,EAAU,CACf;AAAA,OACG,EAAa,UAAU,KAAK,KAAA,GAAQ,EAAM,QAAQ,EAAS,QAAQ,EAAM,KAAA,IAAS;AAAA,OAClF,EAAa,UAAU,KAAK,UAAA,GAC3B,EAAM,SAAS,SAAS,EAAS,KAAK,EAAM,IAAA,EAAM,aAAa;AAAA,OAChE,EAAa,UAAU,KAAK,IAAA,GAAO,EAAM,OAAO,GAAG,EAAM,IAAA,QAAY;AAAA,OACrE,EAAa,UAAU,KAAK,KAAA,GAAQ,EAAM,QAAQ,OAAO,EAAM,KAAA,IAAS;AAAA,OAE3E,EAAM,KAAA,CACP;AAAA,MAEF;AAAA,IAAC,EAAM;AAAA,IAAW,EAAM;AAAA,IAAO,EAAM;AAAA,IAAO,EAAM;AAAA,IAAM,EAAM;AAAA,IAAO,EAAM;AAAA,GAAK;AAEnF,SAAI,CAAC,KAAU,IAEX,gBAAA,EAAC,GAAD;AAAA,IACE,OAAO,EAAM,SAAS;AAAA,IACtB,WAAW,EAAe;AAAA,IAC1B,OAAO,EAAe;AAAA,IACtB,SAAS;AAAA,GACT,IAIJ,gBAAA,EAAC,OAAD;AAAA,IACE,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,WAAW,EAAW;AAAA,IACtB,OAAO,EAAW;AAAA,IAClB,SAAS,EAAM;AAAA,IACf,WAAA,CAAY,MAAM;AAChB,MAAI,EAAM,YAAY,EAAE,QAAQ,WAAW,EAAE,QAAQ,SACnD,EAAE,eAAA,GACF,EAAM,QAAQ,CAAA;AAAA;IAGlB,UAAU,EAAM;AAAA,IAChB,MAAM,EAAM,UAAU,WAAW;AAAA,cAfnC,CAiBE,gBAAA,EAAC,SAAD,EAAA,UAAQ,EAAM,KAAA,CAAa,GAC3B,gBAAA,EAAC,OAAD,EAAK,MAAM,EAAA,CAAU,CAAA;AAAA;;AAK3B,SAAgB,EAAU,GAAuC;AAC/D,SAAO,IAAI,EAAM,IAAA,IAAQ,EAAM,IAAA;;AAGjC,SAAgB,EAAa,GAAyB;AACpD,SAAO,kEAAkE,CAAA,UAAsB,EAAM,IAAA;;ACtFvG,IAAM,IAAe;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;GAEI,IAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;GAEI,IAAoB;AAAA,EAAC;AAAA,EAAQ;AAAA,EAAU;GACvC,IAAiB,CAAC,WAAW,YAAA,GAEtB,IAAY;AAAA,EACvB,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;;AC3GR,SAAgB,EAAkB,GAAgC;AAChE,UAAQ,EAAM,SAAS,CAAA,IACnB,OAAA,CAAQ,MAAS,CAAC,EAAK,QAAA,GACvB,IAAA,CAAK,GAAM,MACX,gBAAA,EAAC,GAAD;AAAA,IAAiD,MAAM,GAAM,QAAQ,EAAM;AAAA,IAAM,GAAI;AAAA,KAA1E,GAAG,EAAK,IAAA,IAAQ,EAAK,IAAA,IAAQ,CAAA,EAAA,CAAqD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"textarea-Bm3ki2-6.cjs","names":[],"sources":["../src/components/textarea/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/components/error';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles/use';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { ITextArea } from './component.types';\n\nconst lineHeight = EXTRA_VALUE.font.size * EXTRA_VALUE.font.height;\n\nexport const TextArea = (props: ITextArea) => {\n const refLocal = useRef<HTMLTextAreaElement>(null);\n const ref = useMergeRefs([refLocal, props.ref]);\n\n const maxHeight = useMemo(() => (props.maxRows ? props.maxRows * lineHeight : 0), [props.maxRows]);\n const minHeight = useMemo(() => (props.minRows ? props.minRows * lineHeight : lineHeight), [props.minRows]);\n\n const resizeTextarea = useCallback(() => {\n const el = refLocal.current;\n if (el && props.isAutoHeight) {\n el.style.height = 'auto';\n const newHeight = Math.min(el.scrollHeight, maxHeight);\n el.style.height = `${newHeight}px`;\n }\n }, [props.isAutoHeight, maxHeight]);\n\n const handleOnChange = useCallback(\n (value: string) => {\n if (props.isNoSpaces) {\n const valueWithoutSpaces = value.replace(/\\s+/g, '');\n props.onChange?.(valueWithoutSpaces);\n } else {\n props.onChange?.(value);\n }\n },\n [props.isNoSpaces, props.onChange],\n );\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (props.isAutoHeight) {\n requestAnimationFrame(resizeTextarea);\n }\n }, [props.value, resizeTextarea, props.isAutoHeight]);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n family: props.isNiceNumber ? 'Roboto Mono' : props.sxTypography?.family,\n size: 16,\n weight: props.isBold ? '700' : '400',\n height: '1.2',\n ...props?.sxTypography,\n },\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.textarea.wrapper,\n CSS_CLASS.transition.color,\n props.error?.isError && CSS_CLASS.isError,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n props.isZeroRadius && CSS_CLASS.component.textarea.wrapperIsZeroRadius,\n props.isHidden && CSS_CLASS.component.textarea.wrapperIsHidden,\n props.isHiddenBorder && CSS_CLASS.component.textarea.wrapperIsHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.textarea.wrapperIsFullRadius,\n !props.isResize && CSS_CLASS.component.textarea.wrapperIsNotResize,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.textarea.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.textarea.borderColor] = CSS_VARS.genre.textarea[props.genre].border;\n vars[CSS_VARS_RAW.component.textarea.background] = CSS_VARS.genre.textarea[props.genre].background;\n vars[CSS_VARS_RAW.component.textarea.padding] =\n `calc(${CSS_VARS.size[props.size].padding} - 4px) 0px calc(${CSS_VARS.size[props.size].padding} - 4px) ${CSS_VARS.size[props.size].padding}`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [\n props.className,\n props.size,\n props.style,\n props.isDisabled,\n props.isHidden,\n props.isFullRadius,\n props.isHiddenBorder,\n props.isZeroRadius,\n props.genre,\n props.control,\n props.error?.isError,\n props.isResize,\n ]);\n\n const { className: classNameTextarea, style: styleTextarea } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.textarea.root,\n CSS_CLASS.scrollbarGutter.stable,\n CSS_CLASS.transition.color,\n classNameTypography,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.textarea.color] = CSS_VARS.genre.textarea[props.genre].color;\n vars[CSS_VARS_RAW.component.textarea.placeholderColor] = CSS_VARS.genre.textarea[props.genre].placeholder;\n\n const style = setStyles([props.style, styleTypography, Object.keys(vars).length ? vars : undefined]);\n\n return { className, style };\n }, [props.style, props.genre, classNameTypography, styleTypography]);\n\n return (\n <>\n <div className={className} style={style}>\n <textarea\n className={classNameTextarea}\n tabIndex={0}\n ref={ref}\n maxLength={props.maxLength}\n minLength={props.minLength}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n rows={props.minRows}\n placeholder={props.placeholder}\n onChange={(event) => handleOnChange(event.target.value)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onKeyDown={props.onKeyDown}\n onMouseDown={props.onMouseDown}\n onClick={props.onClick}\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n style={{\n ...styleTextarea,\n minHeight: `${minHeight}px`,\n maxHeight: props.isResize ? 'none' : props.isAutoHeight ? `${maxHeight}px` : `${minHeight}px`,\n }}\n />\n </div>\n\n {props?.error?.isError && (\n <ErrorMessage\n size={props?.error.size ?? props.size}\n sxTypography={{ size: '16px', weight: '400', ...props?.error.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"textarea-DLZq4RT-.js","names":[],"sources":["../src/components/textarea/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/components/error';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles/use';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { ITextArea } from './component.types';\n\nconst lineHeight = EXTRA_VALUE.font.size * EXTRA_VALUE.font.height;\n\nexport const TextArea = (props: ITextArea) => {\n const refLocal = useRef<HTMLTextAreaElement>(null);\n const ref = useMergeRefs([refLocal, props.ref]);\n\n const maxHeight = useMemo(() => (props.maxRows ? props.maxRows * lineHeight : 0), [props.maxRows]);\n const minHeight = useMemo(() => (props.minRows ? props.minRows * lineHeight : lineHeight), [props.minRows]);\n\n const resizeTextarea = useCallback(() => {\n const el = refLocal.current;\n if (el && props.isAutoHeight) {\n el.style.height = 'auto';\n const newHeight = Math.min(el.scrollHeight, maxHeight);\n el.style.height = `${newHeight}px`;\n }\n }, [props.isAutoHeight, maxHeight]);\n\n const handleOnChange = useCallback(\n (value: string) => {\n if (props.isNoSpaces) {\n const valueWithoutSpaces = value.replace(/\\s+/g, '');\n props.onChange?.(valueWithoutSpaces);\n } else {\n props.onChange?.(value);\n }\n },\n [props.isNoSpaces, props.onChange],\n );\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n if (props.isAutoHeight) {\n requestAnimationFrame(resizeTextarea);\n }\n }, [props.value, resizeTextarea, props.isAutoHeight]);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n family: props.isNiceNumber ? 'Roboto Mono' : props.sxTypography?.family,\n size: 16,\n weight: props.isBold ? '700' : '400',\n height: '1.2',\n ...props?.sxTypography,\n },\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.textarea.wrapper,\n CSS_CLASS.transition.color,\n props.error?.isError && CSS_CLASS.isError,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n props.isZeroRadius && CSS_CLASS.component.textarea.wrapperIsZeroRadius,\n props.isHidden && CSS_CLASS.component.textarea.wrapperIsHidden,\n props.isHiddenBorder && CSS_CLASS.component.textarea.wrapperIsHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.textarea.wrapperIsFullRadius,\n !props.isResize && CSS_CLASS.component.textarea.wrapperIsNotResize,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.textarea.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.textarea.borderColor] = CSS_VARS.genre.textarea[props.genre].border;\n vars[CSS_VARS_RAW.component.textarea.background] = CSS_VARS.genre.textarea[props.genre].background;\n vars[CSS_VARS_RAW.component.textarea.padding] =\n `calc(${CSS_VARS.size[props.size].padding} - 4px) 0px calc(${CSS_VARS.size[props.size].padding} - 4px) ${CSS_VARS.size[props.size].padding}`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [\n props.className,\n props.size,\n props.style,\n props.isDisabled,\n props.isHidden,\n props.isFullRadius,\n props.isHiddenBorder,\n props.isZeroRadius,\n props.genre,\n props.control,\n props.error?.isError,\n props.isResize,\n ]);\n\n const { className: classNameTextarea, style: styleTextarea } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.textarea.root,\n CSS_CLASS.scrollbarGutter.stable,\n CSS_CLASS.transition.color,\n classNameTypography,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.textarea.color] = CSS_VARS.genre.textarea[props.genre].color;\n vars[CSS_VARS_RAW.component.textarea.placeholderColor] = CSS_VARS.genre.textarea[props.genre].placeholder;\n\n const style = setStyles([props.style, styleTypography, Object.keys(vars).length ? vars : undefined]);\n\n return { className, style };\n }, [props.style, props.genre, classNameTypography, styleTypography]);\n\n return (\n <>\n <div className={className} style={style}>\n <textarea\n className={classNameTextarea}\n tabIndex={0}\n ref={ref}\n maxLength={props.maxLength}\n minLength={props.minLength}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n rows={props.minRows}\n placeholder={props.placeholder}\n onChange={(event) => handleOnChange(event.target.value)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onKeyDown={props.onKeyDown}\n onMouseDown={props.onMouseDown}\n onClick={props.onClick}\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n style={{\n ...styleTextarea,\n minHeight: `${minHeight}px`,\n maxHeight: props.isResize ? 'none' : props.isAutoHeight ? `${maxHeight}px` : `${minHeight}px`,\n }}\n />\n </div>\n\n {props?.error?.isError && (\n <ErrorMessage\n size={props?.error.size ?? props.size}\n sxTypography={{ size: '16px', weight: '400', ...props?.error.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n"],"mappings":"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"}