kz-design-system 0.2.0 → 0.3.0

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 (118) hide show
  1. package/dist/button.d.mts +1 -1
  2. package/dist/button.d.ts +1 -1
  3. package/dist/button.js +6 -2
  4. package/dist/button.js.map +1 -1
  5. package/dist/button.mjs +11 -3
  6. package/dist/button.mjs.map +1 -1
  7. package/dist/color-picker.js +6 -2
  8. package/dist/color-picker.js.map +1 -1
  9. package/dist/color-picker.mjs +11 -3
  10. package/dist/color-picker.mjs.map +1 -1
  11. package/dist/date-range-picker.js +6 -2
  12. package/dist/date-range-picker.js.map +1 -1
  13. package/dist/date-range-picker.mjs +11 -3
  14. package/dist/date-range-picker.mjs.map +1 -1
  15. package/dist/date-time-picker.js +6 -2
  16. package/dist/date-time-picker.js.map +1 -1
  17. package/dist/date-time-picker.mjs +11 -3
  18. package/dist/date-time-picker.mjs.map +1 -1
  19. package/dist/dropdown.js +6 -2
  20. package/dist/dropdown.js.map +1 -1
  21. package/dist/dropdown.mjs +11 -3
  22. package/dist/dropdown.mjs.map +1 -1
  23. package/dist/error-page.js +5 -1
  24. package/dist/error-page.js.map +1 -1
  25. package/dist/error-page.mjs +10 -2
  26. package/dist/error-page.mjs.map +1 -1
  27. package/dist/file-uploader.js +5 -1
  28. package/dist/file-uploader.js.map +1 -1
  29. package/dist/file-uploader.mjs +10 -2
  30. package/dist/file-uploader.mjs.map +1 -1
  31. package/dist/icon-picker.d.mts +1 -1
  32. package/dist/icon-picker.d.ts +1 -1
  33. package/dist/icon-picker.js +10 -2
  34. package/dist/icon-picker.js.map +1 -1
  35. package/dist/icon-picker.mjs +15 -3
  36. package/dist/icon-picker.mjs.map +1 -1
  37. package/dist/{icon-registry-YZFYW-mt.d.mts → icon-registry-DY5NSKnE.d.mts} +5 -1
  38. package/dist/{icon-registry-YZFYW-mt.d.ts → icon-registry-DY5NSKnE.d.ts} +5 -1
  39. package/dist/icon.d.mts +2 -2
  40. package/dist/icon.d.ts +2 -2
  41. package/dist/icon.js +9 -1
  42. package/dist/icon.js.map +1 -1
  43. package/dist/icon.mjs +14 -2
  44. package/dist/icon.mjs.map +1 -1
  45. package/dist/index.d.mts +2 -1
  46. package/dist/index.d.ts +2 -1
  47. package/dist/index.js +994 -693
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.mjs +999 -695
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/modal.js +5 -1
  52. package/dist/modal.js.map +1 -1
  53. package/dist/modal.mjs +10 -2
  54. package/dist/modal.mjs.map +1 -1
  55. package/dist/number-input.js +6 -2
  56. package/dist/number-input.js.map +1 -1
  57. package/dist/number-input.mjs +11 -3
  58. package/dist/number-input.mjs.map +1 -1
  59. package/dist/pagination.js +6 -2
  60. package/dist/pagination.js.map +1 -1
  61. package/dist/pagination.mjs +11 -3
  62. package/dist/pagination.mjs.map +1 -1
  63. package/dist/qr-renderer.js +6 -2
  64. package/dist/qr-renderer.js.map +1 -1
  65. package/dist/qr-renderer.mjs +11 -3
  66. package/dist/qr-renderer.mjs.map +1 -1
  67. package/dist/range-slider.d.mts +38 -0
  68. package/dist/range-slider.d.ts +38 -0
  69. package/dist/range-slider.js +466 -0
  70. package/dist/range-slider.js.map +1 -0
  71. package/dist/range-slider.mjs +426 -0
  72. package/dist/range-slider.mjs.map +1 -0
  73. package/dist/select.js +5 -1
  74. package/dist/select.js.map +1 -1
  75. package/dist/select.mjs +10 -2
  76. package/dist/select.mjs.map +1 -1
  77. package/dist/sidemenu.d.mts +1 -1
  78. package/dist/sidemenu.d.ts +1 -1
  79. package/dist/sidemenu.js +5 -1
  80. package/dist/sidemenu.js.map +1 -1
  81. package/dist/sidemenu.mjs +10 -2
  82. package/dist/sidemenu.mjs.map +1 -1
  83. package/dist/sidepanel.js +5 -1
  84. package/dist/sidepanel.js.map +1 -1
  85. package/dist/sidepanel.mjs +10 -2
  86. package/dist/sidepanel.mjs.map +1 -1
  87. package/dist/sql-editor.js +6 -2
  88. package/dist/sql-editor.js.map +1 -1
  89. package/dist/sql-editor.mjs +11 -3
  90. package/dist/sql-editor.mjs.map +1 -1
  91. package/dist/styles.css +2 -2
  92. package/dist/table.d.mts +14 -0
  93. package/dist/table.d.ts +14 -0
  94. package/dist/table.js +41 -21
  95. package/dist/table.js.map +1 -1
  96. package/dist/table.mjs +46 -22
  97. package/dist/table.mjs.map +1 -1
  98. package/dist/tabs.js +5 -1
  99. package/dist/tabs.js.map +1 -1
  100. package/dist/tabs.mjs +10 -2
  101. package/dist/tabs.mjs.map +1 -1
  102. package/dist/text-area.js +5 -1
  103. package/dist/text-area.js.map +1 -1
  104. package/dist/text-area.mjs +10 -2
  105. package/dist/text-area.mjs.map +1 -1
  106. package/dist/text-input.js +5 -1
  107. package/dist/text-input.js.map +1 -1
  108. package/dist/text-input.mjs +10 -2
  109. package/dist/text-input.mjs.map +1 -1
  110. package/dist/toast.js +5 -1
  111. package/dist/toast.js.map +1 -1
  112. package/dist/toast.mjs +10 -2
  113. package/dist/toast.mjs.map +1 -1
  114. package/dist/toggle-button.js +6 -2
  115. package/dist/toggle-button.js.map +1 -1
  116. package/dist/toggle-button.mjs +11 -3
  117. package/dist/toggle-button.mjs.map +1 -1
  118. package/package.json +7 -1
@@ -0,0 +1,426 @@
1
+ // src/components/range-slider/RangeSlider.tsx
2
+ import * as React2 from "react";
3
+
4
+ // src/utils/cn.ts
5
+ import { clsx } from "clsx";
6
+ import { twMerge } from "tailwind-merge";
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+
11
+ // src/constants/enum.ts
12
+ var TextInputVariant = /* @__PURE__ */ ((TextInputVariant2) => {
13
+ TextInputVariant2["Default"] = "default";
14
+ TextInputVariant2["Container"] = "container";
15
+ TextInputVariant2["Ghost"] = "ghost";
16
+ return TextInputVariant2;
17
+ })(TextInputVariant || {});
18
+ var TextInputSize = /* @__PURE__ */ ((TextInputSize2) => {
19
+ TextInputSize2["Sm"] = "sm";
20
+ TextInputSize2["Md"] = "md";
21
+ TextInputSize2["Lg"] = "lg";
22
+ return TextInputSize2;
23
+ })(TextInputSize || {});
24
+ var TextInputState = /* @__PURE__ */ ((TextInputState2) => {
25
+ TextInputState2["Default"] = "default";
26
+ TextInputState2["Error"] = "error";
27
+ TextInputState2["Success"] = "success";
28
+ TextInputState2["Warning"] = "warning";
29
+ return TextInputState2;
30
+ })(TextInputState || {});
31
+
32
+ // src/components/typography/Typography.tsx
33
+ import * as React from "react";
34
+
35
+ // src/components/typography/typography-variants.ts
36
+ var typographyVariants = [
37
+ "h1" /* H1 */,
38
+ "h2" /* H2 */,
39
+ "h3" /* H3 */,
40
+ "h4" /* H4 */,
41
+ "h5" /* H5 */,
42
+ "body" /* Body */,
43
+ "small" /* Small */,
44
+ "caption" /* Caption */,
45
+ "label" /* Label */,
46
+ "link" /* Link */,
47
+ "error" /* Error */,
48
+ "success" /* Success */,
49
+ "warning" /* Warning */
50
+ ];
51
+ var variantToClass = {
52
+ ["h1" /* H1 */]: "kz-typography-h1",
53
+ ["h2" /* H2 */]: "kz-typography-h2",
54
+ ["h3" /* H3 */]: "kz-typography-h3",
55
+ ["h4" /* H4 */]: "kz-typography-h4",
56
+ ["h5" /* H5 */]: "kz-typography-h5",
57
+ ["body" /* Body */]: "kz-typography-body",
58
+ ["small" /* Small */]: "kz-typography-small",
59
+ ["caption" /* Caption */]: "kz-typography-caption",
60
+ ["label" /* Label */]: "kz-typography-label",
61
+ ["link" /* Link */]: "kz-typography-link",
62
+ ["error" /* Error */]: "kz-typography-error",
63
+ ["success" /* Success */]: "kz-typography-success",
64
+ ["warning" /* Warning */]: "kz-typography-warning"
65
+ };
66
+ function getTypographyClass(variant) {
67
+ return variantToClass[variant];
68
+ }
69
+ var defaultElement = {
70
+ ["h1" /* H1 */]: "h1",
71
+ ["h2" /* H2 */]: "h2",
72
+ ["h3" /* H3 */]: "h3",
73
+ ["h4" /* H4 */]: "h4",
74
+ ["h5" /* H5 */]: "h5",
75
+ ["body" /* Body */]: "p",
76
+ ["small" /* Small */]: "span",
77
+ ["caption" /* Caption */]: "span",
78
+ ["label" /* Label */]: "span",
79
+ ["link" /* Link */]: "a",
80
+ ["error" /* Error */]: "span",
81
+ ["success" /* Success */]: "span",
82
+ ["warning" /* Warning */]: "span"
83
+ };
84
+ function getDefaultElement(variant) {
85
+ return defaultElement[variant];
86
+ }
87
+
88
+ // src/components/typography/Typography.tsx
89
+ var alignClass = {
90
+ ["left" /* Left */]: "text-left",
91
+ ["center" /* Center */]: "text-center",
92
+ ["right" /* Right */]: "text-right"
93
+ };
94
+ var weightClass = {
95
+ ["regular" /* Regular */]: "font-normal",
96
+ ["medium" /* Medium */]: "font-medium",
97
+ ["semibold" /* Semibold */]: "font-semibold",
98
+ ["bold" /* Bold */]: "font-bold"
99
+ };
100
+ var Typography = React.forwardRef(
101
+ ({
102
+ children,
103
+ variant,
104
+ href,
105
+ tone,
106
+ as,
107
+ align,
108
+ truncate,
109
+ lines,
110
+ weight,
111
+ className,
112
+ style,
113
+ ...props
114
+ }, ref) => {
115
+ const Comp = href !== void 0 ? "a" : as ?? getDefaultElement(variant);
116
+ const typographyClass = getTypographyClass(variant);
117
+ const toneClass = tone !== void 0 ? `kz-typography-tone-${tone}` : void 0;
118
+ const lineClampStyle = lines !== void 0 && lines > 0 ? {
119
+ display: "-webkit-box",
120
+ WebkitBoxOrient: "vertical",
121
+ WebkitLineClamp: lines,
122
+ overflow: "hidden"
123
+ } : void 0;
124
+ const combinedStyle = lineClampStyle ? { ...style, ...lineClampStyle } : style;
125
+ return React.createElement(
126
+ Comp,
127
+ {
128
+ ref,
129
+ ...href !== void 0 && { href },
130
+ className: cn(
131
+ typographyClass,
132
+ toneClass,
133
+ align !== void 0 && alignClass[align],
134
+ truncate && "truncate",
135
+ weight !== void 0 && weightClass[weight],
136
+ className
137
+ ),
138
+ style: combinedStyle,
139
+ ...props
140
+ },
141
+ children
142
+ );
143
+ }
144
+ );
145
+ Typography.displayName = "Typography";
146
+
147
+ // src/components/range-slider/RangeSlider.tsx
148
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
149
+ var clamp = (val, min, max) => Math.min(Math.max(val, min), max);
150
+ var snapToStep = (val, min, step) => {
151
+ const steps = Math.round((val - min) / step);
152
+ return min + steps * step;
153
+ };
154
+ var RangeSlider = React2.forwardRef(
155
+ ({
156
+ size = "md" /* Md */,
157
+ variant = "default" /* Default */,
158
+ label,
159
+ helperText,
160
+ description,
161
+ state = "default" /* Default */,
162
+ errorText,
163
+ successText,
164
+ warningText,
165
+ value,
166
+ rangeValue,
167
+ onValueChange,
168
+ onRangeChange,
169
+ min = 0,
170
+ max = 100,
171
+ step = 1,
172
+ showValue = false,
173
+ showMinMax = false,
174
+ formatValue,
175
+ showInputs = false,
176
+ inputVariant,
177
+ disabled = false,
178
+ containerClassName
179
+ }, ref) => {
180
+ const resolvedInputVariant = inputVariant ?? variant;
181
+ const isRange = rangeValue != null;
182
+ const trackRef = React2.useRef(null);
183
+ const [dragging, setDragging] = React2.useState(null);
184
+ const [startText, setStartText] = React2.useState(
185
+ String(isRange ? rangeValue[0] : value ?? min)
186
+ );
187
+ const [endText, setEndText] = React2.useState(
188
+ String(isRange ? rangeValue[1] : max)
189
+ );
190
+ React2.useEffect(() => {
191
+ if (isRange && rangeValue) {
192
+ setStartText(String(rangeValue[0]));
193
+ setEndText(String(rangeValue[1]));
194
+ } else if (value != null) {
195
+ setStartText(String(value));
196
+ }
197
+ }, [isRange, value, rangeValue]);
198
+ const commitInput = (which, raw) => {
199
+ const parsed = parseFloat(raw);
200
+ if (isNaN(parsed)) return;
201
+ const clamped = clamp(snapToStep(parsed, min, step), min, max);
202
+ if (isRange && rangeValue) {
203
+ if (which === "start") {
204
+ const safe = Math.min(clamped, rangeValue[1]);
205
+ onRangeChange?.([safe, rangeValue[1]]);
206
+ } else {
207
+ const safe = Math.max(clamped, rangeValue[0]);
208
+ onRangeChange?.([rangeValue[0], safe]);
209
+ }
210
+ } else {
211
+ onValueChange?.(clamped);
212
+ }
213
+ };
214
+ const format = formatValue ?? ((v) => String(v));
215
+ const getPercent = (val) => (val - min) / (max - min) * 100;
216
+ const getValueFromPosition = (clientX) => {
217
+ const track = trackRef.current;
218
+ if (!track) return min;
219
+ const rect = track.getBoundingClientRect();
220
+ const ratio = clamp((clientX - rect.left) / rect.width, 0, 1);
221
+ const raw = min + ratio * (max - min);
222
+ return clamp(snapToStep(raw, min, step), min, max);
223
+ };
224
+ const handlePointerDown = (thumb) => (e) => {
225
+ if (disabled) return;
226
+ e.preventDefault();
227
+ e.target.setPointerCapture(e.pointerId);
228
+ setDragging(thumb);
229
+ const val = getValueFromPosition(e.clientX);
230
+ applyValue(thumb, val);
231
+ };
232
+ const handlePointerMove = (e) => {
233
+ if (!dragging || disabled) return;
234
+ const val = getValueFromPosition(e.clientX);
235
+ applyValue(dragging, val);
236
+ };
237
+ const handlePointerUp = () => {
238
+ setDragging(null);
239
+ };
240
+ const applyValue = (thumb, val) => {
241
+ if (thumb === "single") {
242
+ onValueChange?.(val);
243
+ } else if (rangeValue) {
244
+ if (thumb === "start") {
245
+ const clamped = Math.min(val, rangeValue[1]);
246
+ onRangeChange?.([clamped, rangeValue[1]]);
247
+ } else {
248
+ const clamped = Math.max(val, rangeValue[0]);
249
+ onRangeChange?.([rangeValue[0], clamped]);
250
+ }
251
+ }
252
+ };
253
+ const handleTrackClick = (e) => {
254
+ if (disabled) return;
255
+ const val = getValueFromPosition(e.clientX);
256
+ if (isRange && rangeValue) {
257
+ const distStart = Math.abs(val - rangeValue[0]);
258
+ const distEnd = Math.abs(val - rangeValue[1]);
259
+ if (distStart <= distEnd) {
260
+ onRangeChange?.([Math.min(val, rangeValue[1]), rangeValue[1]]);
261
+ } else {
262
+ onRangeChange?.([rangeValue[0], Math.max(val, rangeValue[0])]);
263
+ }
264
+ } else {
265
+ onValueChange?.(val);
266
+ }
267
+ };
268
+ const handleKeyDown = (thumb) => (e) => {
269
+ if (disabled) return;
270
+ let delta = 0;
271
+ if (e.key === "ArrowRight" || e.key === "ArrowUp") delta = step;
272
+ else if (e.key === "ArrowLeft" || e.key === "ArrowDown") delta = -step;
273
+ else if (e.key === "Home") {
274
+ applyValue(thumb, min);
275
+ return;
276
+ } else if (e.key === "End") {
277
+ applyValue(thumb, max);
278
+ return;
279
+ } else return;
280
+ e.preventDefault();
281
+ if (thumb === "single" && value != null) {
282
+ applyValue(thumb, clamp(value + delta, min, max));
283
+ } else if (rangeValue) {
284
+ const current = thumb === "start" ? rangeValue[0] : rangeValue[1];
285
+ applyValue(thumb, clamp(current + delta, min, max));
286
+ }
287
+ };
288
+ const stateMessage = state === "error" /* Error */ ? errorText : state === "success" /* Success */ ? successText : state === "warning" /* Warning */ ? warningText : void 0;
289
+ const uniqueId = React2.useId();
290
+ const messageId = `kz-range-slider-message-${uniqueId}`;
291
+ const singlePercent = value != null ? getPercent(value) : 0;
292
+ const startPercent = rangeValue ? getPercent(rangeValue[0]) : 0;
293
+ const endPercent = rangeValue ? getPercent(rangeValue[1]) : 100;
294
+ const rootClass = cn("kz-range-slider-root", containerClassName);
295
+ const wrapperClass = cn(
296
+ "kz-range-slider-wrapper",
297
+ `kz-range-slider-wrapper--${variant}`,
298
+ `kz-range-slider-wrapper--${size}`,
299
+ state !== "default" /* Default */ && `kz-range-slider-wrapper--${state}`,
300
+ disabled && "kz-range-slider-wrapper--disabled"
301
+ );
302
+ const renderThumb = (thumb, percent, currentValue) => /* @__PURE__ */ jsx(
303
+ "div",
304
+ {
305
+ className: cn(
306
+ "kz-range-slider-thumb",
307
+ `kz-range-slider-thumb--${size}`,
308
+ dragging === thumb && "kz-range-slider-thumb--active"
309
+ ),
310
+ style: { left: `${percent}%` },
311
+ role: "slider",
312
+ tabIndex: disabled ? -1 : 0,
313
+ "aria-valuemin": min,
314
+ "aria-valuemax": max,
315
+ "aria-valuenow": currentValue,
316
+ "aria-disabled": disabled,
317
+ "aria-label": thumb === "start" ? "Range start" : thumb === "end" ? "Range end" : "Value",
318
+ onPointerDown: handlePointerDown(thumb),
319
+ onKeyDown: handleKeyDown(thumb),
320
+ children: showValue && /* @__PURE__ */ jsx("span", { className: "kz-range-slider-value-tooltip", children: format(currentValue) })
321
+ }
322
+ );
323
+ return /* @__PURE__ */ jsxs("div", { className: rootClass, ref, children: [
324
+ label != null && label !== "" && /* @__PURE__ */ jsx("label", { className: "kz-range-slider-label", children: /* @__PURE__ */ jsx(Typography, { variant: "label" /* Label */, children: label }) }),
325
+ description != null && description !== "" && /* @__PURE__ */ jsx(Typography, { variant: "caption" /* Caption */, children: description }),
326
+ showInputs && /* @__PURE__ */ jsxs("div", { className: "kz-range-slider-inputs", children: [
327
+ /* @__PURE__ */ jsx(
328
+ "input",
329
+ {
330
+ type: "text",
331
+ inputMode: "decimal",
332
+ className: cn(
333
+ "kz-range-slider-input",
334
+ `kz-range-slider-input--${size}`,
335
+ `kz-range-slider-input--${resolvedInputVariant}`
336
+ ),
337
+ value: startText,
338
+ onChange: (e) => setStartText(e.target.value),
339
+ onBlur: () => commitInput("start", startText),
340
+ onKeyDown: (e) => {
341
+ if (e.key === "Enter") commitInput("start", startText);
342
+ },
343
+ disabled,
344
+ "aria-label": isRange ? "Range start value" : "Value"
345
+ }
346
+ ),
347
+ isRange && /* @__PURE__ */ jsxs(Fragment, { children: [
348
+ /* @__PURE__ */ jsx(Typography, { variant: "caption" /* Caption */, children: "to" }),
349
+ /* @__PURE__ */ jsx(
350
+ "input",
351
+ {
352
+ type: "text",
353
+ inputMode: "decimal",
354
+ className: cn(
355
+ "kz-range-slider-input",
356
+ `kz-range-slider-input--${size}`
357
+ ),
358
+ value: endText,
359
+ onChange: (e) => setEndText(e.target.value),
360
+ onBlur: () => commitInput("end", endText),
361
+ onKeyDown: (e) => {
362
+ if (e.key === "Enter") commitInput("end", endText);
363
+ },
364
+ disabled,
365
+ "aria-label": "Range end value"
366
+ }
367
+ )
368
+ ] })
369
+ ] }),
370
+ /* @__PURE__ */ jsx(
371
+ "div",
372
+ {
373
+ className: wrapperClass,
374
+ onPointerMove: handlePointerMove,
375
+ onPointerUp: handlePointerUp,
376
+ onPointerLeave: handlePointerUp,
377
+ children: /* @__PURE__ */ jsxs(
378
+ "div",
379
+ {
380
+ className: "kz-range-slider-track",
381
+ ref: trackRef,
382
+ onClick: handleTrackClick,
383
+ children: [
384
+ /* @__PURE__ */ jsx(
385
+ "div",
386
+ {
387
+ className: "kz-range-slider-fill",
388
+ style: isRange ? {
389
+ left: `${startPercent}%`,
390
+ width: `${endPercent - startPercent}%`
391
+ } : { left: "0%", width: `${singlePercent}%` }
392
+ }
393
+ ),
394
+ isRange && rangeValue ? /* @__PURE__ */ jsxs(Fragment, { children: [
395
+ renderThumb("start", startPercent, rangeValue[0]),
396
+ renderThumb("end", endPercent, rangeValue[1])
397
+ ] }) : value != null && renderThumb("single", singlePercent, value)
398
+ ]
399
+ }
400
+ )
401
+ }
402
+ ),
403
+ showMinMax && /* @__PURE__ */ jsxs("div", { className: "kz-range-slider-minmax", children: [
404
+ /* @__PURE__ */ jsx(Typography, { variant: "caption" /* Caption */, children: format(min) }),
405
+ /* @__PURE__ */ jsx(Typography, { variant: "caption" /* Caption */, children: format(max) })
406
+ ] }),
407
+ stateMessage != null && stateMessage !== "" && /* @__PURE__ */ jsx(
408
+ Typography,
409
+ {
410
+ id: messageId,
411
+ variant: state === "error" /* Error */ ? "error" /* Error */ : state === "success" /* Success */ ? "success" /* Success */ : "warning" /* Warning */,
412
+ children: stateMessage
413
+ }
414
+ ),
415
+ helperText != null && helperText !== "" && state === "default" /* Default */ && /* @__PURE__ */ jsx(Typography, { variant: "caption" /* Caption */, children: helperText })
416
+ ] });
417
+ }
418
+ );
419
+ RangeSlider.displayName = "RangeSlider";
420
+ export {
421
+ RangeSlider,
422
+ TextInputSize,
423
+ TextInputState,
424
+ TextInputVariant
425
+ };
426
+ //# sourceMappingURL=range-slider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/range-slider/RangeSlider.tsx","../src/utils/cn.ts","../src/constants/enum.ts","../src/components/typography/Typography.tsx","../src/components/typography/typography-variants.ts"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport {\n TextInputVariant,\n TextInputSize,\n TextInputState,\n} from \"../../constants/enum\";\nimport { Typography } from \"../typography\";\nimport { TypographyVariantEnum } from \"../typography/typography-variants\";\n\nexport interface RangeSliderProps {\n size?: TextInputSize;\n variant?: TextInputVariant;\n\n label?: string;\n helperText?: string;\n description?: string;\n\n state?: TextInputState;\n errorText?: string;\n successText?: string;\n warningText?: string;\n\n /** Single-thumb mode value */\n value?: number;\n /** Dual-thumb mode value: [min, max] */\n rangeValue?: [number, number];\n onValueChange?: (value: number) => void;\n onRangeChange?: (value: [number, number]) => void;\n\n min?: number;\n max?: number;\n step?: number;\n\n /** Show current value tooltip above thumb */\n showValue?: boolean;\n /** Show min/max labels below the track */\n showMinMax?: boolean;\n /** Custom value formatter for display */\n formatValue?: (value: number) => string;\n /** Show manual input fields above the slider */\n showInputs?: boolean;\n /** Visual variant for the manual input fields (defaults to the slider's variant) */\n inputVariant?: TextInputVariant;\n\n disabled?: boolean;\n containerClassName?: string;\n}\n\nconst clamp = (val: number, min: number, max: number) =>\n Math.min(Math.max(val, min), max);\n\nconst snapToStep = (val: number, min: number, step: number) => {\n const steps = Math.round((val - min) / step);\n return min + steps * step;\n};\n\nconst RangeSlider = React.forwardRef<HTMLDivElement, RangeSliderProps>(\n (\n {\n size = TextInputSize.Md,\n variant = TextInputVariant.Default,\n label,\n helperText,\n description,\n state = TextInputState.Default,\n errorText,\n successText,\n warningText,\n value,\n rangeValue,\n onValueChange,\n onRangeChange,\n min = 0,\n max = 100,\n step = 1,\n showValue = false,\n showMinMax = false,\n formatValue,\n showInputs = false,\n inputVariant,\n disabled = false,\n containerClassName,\n },\n ref\n ) => {\n const resolvedInputVariant = inputVariant ?? variant;\n const isRange = rangeValue != null;\n const trackRef = React.useRef<HTMLDivElement>(null);\n const [dragging, setDragging] = React.useState<\n null | \"single\" | \"start\" | \"end\"\n >(null);\n\n // Internal text state for manual inputs so user can type freely\n const [startText, setStartText] = React.useState(\n String(isRange ? rangeValue[0] : (value ?? min))\n );\n const [endText, setEndText] = React.useState(\n String(isRange ? rangeValue[1] : max)\n );\n\n // Sync internal text when value/rangeValue changes externally (e.g. via slider drag)\n React.useEffect(() => {\n if (isRange && rangeValue) {\n setStartText(String(rangeValue[0]));\n setEndText(String(rangeValue[1]));\n } else if (value != null) {\n setStartText(String(value));\n }\n }, [isRange, value, rangeValue]);\n\n const commitInput = (which: \"start\" | \"end\", raw: string) => {\n const parsed = parseFloat(raw);\n if (isNaN(parsed)) return;\n const clamped = clamp(snapToStep(parsed, min, step), min, max);\n\n if (isRange && rangeValue) {\n if (which === \"start\") {\n const safe = Math.min(clamped, rangeValue[1]);\n onRangeChange?.([safe, rangeValue[1]]);\n } else {\n const safe = Math.max(clamped, rangeValue[0]);\n onRangeChange?.([rangeValue[0], safe]);\n }\n } else {\n onValueChange?.(clamped);\n }\n };\n\n const format = formatValue ?? ((v: number) => String(v));\n\n const getPercent = (val: number) => ((val - min) / (max - min)) * 100;\n\n const getValueFromPosition = (clientX: number) => {\n const track = trackRef.current;\n if (!track) return min;\n const rect = track.getBoundingClientRect();\n const ratio = clamp((clientX - rect.left) / rect.width, 0, 1);\n const raw = min + ratio * (max - min);\n return clamp(snapToStep(raw, min, step), min, max);\n };\n\n const handlePointerDown =\n (thumb: \"single\" | \"start\" | \"end\") => (e: React.PointerEvent) => {\n if (disabled) return;\n e.preventDefault();\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n setDragging(thumb);\n const val = getValueFromPosition(e.clientX);\n applyValue(thumb, val);\n };\n\n const handlePointerMove = (e: React.PointerEvent) => {\n if (!dragging || disabled) return;\n const val = getValueFromPosition(e.clientX);\n applyValue(dragging, val);\n };\n\n const handlePointerUp = () => {\n setDragging(null);\n };\n\n const applyValue = (thumb: \"single\" | \"start\" | \"end\", val: number) => {\n if (thumb === \"single\") {\n onValueChange?.(val);\n } else if (rangeValue) {\n if (thumb === \"start\") {\n const clamped = Math.min(val, rangeValue[1]);\n onRangeChange?.([clamped, rangeValue[1]]);\n } else {\n const clamped = Math.max(val, rangeValue[0]);\n onRangeChange?.([rangeValue[0], clamped]);\n }\n }\n };\n\n const handleTrackClick = (e: React.MouseEvent) => {\n if (disabled) return;\n const val = getValueFromPosition(e.clientX);\n if (isRange && rangeValue) {\n const distStart = Math.abs(val - rangeValue[0]);\n const distEnd = Math.abs(val - rangeValue[1]);\n if (distStart <= distEnd) {\n onRangeChange?.([Math.min(val, rangeValue[1]), rangeValue[1]]);\n } else {\n onRangeChange?.([rangeValue[0], Math.max(val, rangeValue[0])]);\n }\n } else {\n onValueChange?.(val);\n }\n };\n\n const handleKeyDown =\n (thumb: \"single\" | \"start\" | \"end\") => (e: React.KeyboardEvent) => {\n if (disabled) return;\n let delta = 0;\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") delta = step;\n else if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") delta = -step;\n else if (e.key === \"Home\") {\n applyValue(thumb, min);\n return;\n } else if (e.key === \"End\") {\n applyValue(thumb, max);\n return;\n } else return;\n\n e.preventDefault();\n if (thumb === \"single\" && value != null) {\n applyValue(thumb, clamp(value + delta, min, max));\n } else if (rangeValue) {\n const current = thumb === \"start\" ? rangeValue[0] : rangeValue[1];\n applyValue(thumb, clamp(current + delta, min, max));\n }\n };\n\n const stateMessage =\n state === TextInputState.Error\n ? errorText\n : state === TextInputState.Success\n ? successText\n : state === TextInputState.Warning\n ? warningText\n : undefined;\n\n const uniqueId = React.useId();\n const messageId = `kz-range-slider-message-${uniqueId}`;\n\n // Percentages\n const singlePercent = value != null ? getPercent(value) : 0;\n const startPercent = rangeValue ? getPercent(rangeValue[0]) : 0;\n const endPercent = rangeValue ? getPercent(rangeValue[1]) : 100;\n\n const rootClass = cn(\"kz-range-slider-root\", containerClassName);\n\n const wrapperClass = cn(\n \"kz-range-slider-wrapper\",\n `kz-range-slider-wrapper--${variant}`,\n `kz-range-slider-wrapper--${size}`,\n state !== TextInputState.Default && `kz-range-slider-wrapper--${state}`,\n disabled && \"kz-range-slider-wrapper--disabled\"\n );\n\n const renderThumb = (\n thumb: \"single\" | \"start\" | \"end\",\n percent: number,\n currentValue: number\n ) => (\n <div\n className={cn(\n \"kz-range-slider-thumb\",\n `kz-range-slider-thumb--${size}`,\n dragging === thumb && \"kz-range-slider-thumb--active\"\n )}\n style={{ left: `${percent}%` }}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue}\n aria-disabled={disabled}\n aria-label={\n thumb === \"start\"\n ? \"Range start\"\n : thumb === \"end\"\n ? \"Range end\"\n : \"Value\"\n }\n onPointerDown={handlePointerDown(thumb)}\n onKeyDown={handleKeyDown(thumb)}\n >\n {showValue && (\n <span className=\"kz-range-slider-value-tooltip\">\n {format(currentValue)}\n </span>\n )}\n </div>\n );\n\n return (\n <div className={rootClass} ref={ref}>\n {label != null && label !== \"\" && (\n <label className=\"kz-range-slider-label\">\n <Typography variant={TypographyVariantEnum.Label}>\n {label}\n </Typography>\n </label>\n )}\n\n {description != null && description !== \"\" && (\n <Typography variant={TypographyVariantEnum.Caption}>\n {description}\n </Typography>\n )}\n\n {showInputs && (\n <div className=\"kz-range-slider-inputs\">\n <input\n type=\"text\"\n inputMode=\"decimal\"\n className={cn(\n \"kz-range-slider-input\",\n `kz-range-slider-input--${size}`,\n `kz-range-slider-input--${resolvedInputVariant}`\n )}\n value={startText}\n onChange={(e) => setStartText(e.target.value)}\n onBlur={() => commitInput(\"start\", startText)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") commitInput(\"start\", startText);\n }}\n disabled={disabled}\n aria-label={isRange ? \"Range start value\" : \"Value\"}\n />\n {isRange && (\n <>\n <Typography variant={TypographyVariantEnum.Caption}>\n to\n </Typography>\n <input\n type=\"text\"\n inputMode=\"decimal\"\n className={cn(\n \"kz-range-slider-input\",\n `kz-range-slider-input--${size}`\n )}\n value={endText}\n onChange={(e) => setEndText(e.target.value)}\n onBlur={() => commitInput(\"end\", endText)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") commitInput(\"end\", endText);\n }}\n disabled={disabled}\n aria-label=\"Range end value\"\n />\n </>\n )}\n </div>\n )}\n\n <div\n className={wrapperClass}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerLeave={handlePointerUp}\n >\n <div\n className=\"kz-range-slider-track\"\n ref={trackRef}\n onClick={handleTrackClick}\n >\n <div\n className=\"kz-range-slider-fill\"\n style={\n isRange\n ? {\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n }\n : { left: \"0%\", width: `${singlePercent}%` }\n }\n />\n {isRange && rangeValue ? (\n <>\n {renderThumb(\"start\", startPercent, rangeValue[0])}\n {renderThumb(\"end\", endPercent, rangeValue[1])}\n </>\n ) : (\n value != null && renderThumb(\"single\", singlePercent, value)\n )}\n </div>\n </div>\n\n {showMinMax && (\n <div className=\"kz-range-slider-minmax\">\n <Typography variant={TypographyVariantEnum.Caption}>\n {format(min)}\n </Typography>\n <Typography variant={TypographyVariantEnum.Caption}>\n {format(max)}\n </Typography>\n </div>\n )}\n\n {stateMessage != null && stateMessage !== \"\" && (\n <Typography\n id={messageId}\n variant={\n state === TextInputState.Error\n ? TypographyVariantEnum.Error\n : state === TextInputState.Success\n ? TypographyVariantEnum.Success\n : TypographyVariantEnum.Warning\n }\n >\n {stateMessage}\n </Typography>\n )}\n\n {helperText != null &&\n helperText !== \"\" &&\n state === TextInputState.Default && (\n <Typography variant={TypographyVariantEnum.Caption}>\n {helperText}\n </Typography>\n )}\n </div>\n );\n }\n);\n\nRangeSlider.displayName = \"RangeSlider\";\n\nexport { RangeSlider };\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n Ghost = \"ghost\",\n Container = \"container\",\n}\n\nexport enum ButtonStatus {\n Default = \"default\",\n Brand = \"brand\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n Info = \"info\",\n}\n\nexport enum ButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ButtonType {\n Button = \"button\",\n Submit = \"submit\",\n Reset = \"reset\",\n}\n\nexport enum ButtonAspectRatio {\n Auto = \"auto\",\n Square = \"square\",\n}\n\nexport enum DropdownTriggerVariant {\n Default = \"default\",\n Ghost = \"ghost\",\n}\n\nexport enum TypographyVariant {\n H1 = \"h1\",\n H2 = \"h2\",\n H3 = \"h3\",\n H4 = \"h4\",\n H5 = \"h5\",\n Body = \"body\",\n Small = \"small\",\n Caption = \"caption\",\n Label = \"label\",\n Link = \"link\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TypographyTone {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Muted = \"muted\",\n Disabled = \"disabled\",\n Inverse = \"inverse\",\n Link = \"link\",\n}\n\nexport enum TypographyAlign {\n Left = \"left\",\n Center = \"center\",\n Right = \"right\",\n}\n\nexport enum TypographyWeight {\n Regular = \"regular\",\n Medium = \"medium\",\n Semibold = \"semibold\",\n Bold = \"bold\",\n}\n\nexport enum TokenCategory {\n Color = \"color\",\n Shadow = \"shadow\",\n Length = \"length\",\n Number = \"number\",\n LineHeight = \"lineHeight\",\n FontFamily = \"fontFamily\",\n FontWeight = \"fontWeight\",\n Duration = \"duration\",\n Easing = \"easing\",\n}\n\nexport enum OverrideMode {\n Safe = \"safe\",\n Strict = \"strict\",\n}\n\nexport enum TextInputVariant {\n Default = \"default\",\n Container = \"container\",\n Ghost = \"ghost\",\n}\n\nexport enum TextInputSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TextInputState {\n Default = \"default\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TextInputType {\n Text = \"text\",\n Email = \"email\",\n Password = \"password\",\n Number = \"number\",\n Search = \"search\",\n Tel = \"tel\",\n Url = \"url\",\n}\n\nexport enum TooltipSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TooltipPosition {\n Top = \"top\",\n Right = \"right\",\n Bottom = \"bottom\",\n Left = \"left\",\n}\n\nexport enum TooltipAlign {\n Start = \"start\",\n Center = \"center\",\n End = \"end\",\n}\n\nexport enum TooltipColor {\n Default = \"default\",\n Inverse = \"inverse\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ToggleButtonVariant {\n Default = \"default\",\n Primary = \"primary\",\n Container = \"container\",\n}\n\nexport enum ToggleButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxVariant {\n Default = \"default\",\n Container = \"container\",\n}\n\nexport enum RadioSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum AvatarSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n Xl = \"xl\",\n}\n\nexport enum AvatarStatus {\n Online = \"online\",\n Busy = \"busy\",\n Away = \"away\",\n Offline = \"offline\",\n}\n\nexport enum ToastVariant {\n Success = \"success\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n\nexport enum CardShadow {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ToastPosition {\n TopRight = \"top-right\",\n TopLeft = \"top-left\",\n BottomRight = \"bottom-right\",\n BottomLeft = \"bottom-left\",\n}\n\nexport enum QrPattern {\n Square = \"square\",\n Circle = \"circle\",\n Diamond = \"diamond\",\n}\n","import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport {\n getTypographyClass,\n getDefaultElement,\n type TypographyVariant,\n} from \"./typography-variants\";\nimport {\n TypographyTone as TypographyToneEnum,\n TypographyAlign as TypographyAlignEnum,\n TypographyWeight as TypographyWeightEnum,\n} from \"../../constants/enum\";\n\nexport {\n TypographyTone as TypographyToneEnum,\n TypographyAlign as TypographyAlignEnum,\n TypographyWeight as TypographyWeightEnum,\n} from \"../../constants/enum\";\n\nexport type TypographyTone = TypographyToneEnum;\nexport type TypographyAlign = TypographyAlignEnum;\nexport type TypographyWeight = TypographyWeightEnum;\n\nexport type TypographyAsElement =\n | \"p\"\n | \"span\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"div\"\n | \"a\"\n | \"label\"\n | \"figcaption\";\n\nexport interface TypographyProps extends Omit<\n React.HTMLAttributes<HTMLElement>,\n \"color\"\n> {\n children: React.ReactNode;\n variant: TypographyVariant;\n href?: string;\n tone?: TypographyTone;\n as?: TypographyAsElement;\n align?: TypographyAlign;\n truncate?: boolean;\n lines?: number;\n weight?: TypographyWeight;\n className?: string;\n}\n\nconst alignClass: Record<TypographyAlignEnum, string> = {\n [TypographyAlignEnum.Left]: \"text-left\",\n [TypographyAlignEnum.Center]: \"text-center\",\n [TypographyAlignEnum.Right]: \"text-right\",\n};\n\nconst weightClass: Record<TypographyWeightEnum, string> = {\n [TypographyWeightEnum.Regular]: \"font-normal\",\n [TypographyWeightEnum.Medium]: \"font-medium\",\n [TypographyWeightEnum.Semibold]: \"font-semibold\",\n [TypographyWeightEnum.Bold]: \"font-bold\",\n};\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n (\n {\n children,\n variant,\n href,\n tone,\n as,\n align,\n truncate,\n lines,\n weight,\n className,\n style,\n ...props\n },\n ref\n ) => {\n const Comp = href !== undefined ? \"a\" : (as ?? getDefaultElement(variant));\n const typographyClass = getTypographyClass(variant);\n\n const toneClass =\n tone !== undefined ? `kz-typography-tone-${tone}` : undefined;\n\n const lineClampStyle: React.CSSProperties | undefined =\n lines !== undefined && lines > 0\n ? {\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: lines,\n overflow: \"hidden\",\n }\n : undefined;\n\n const combinedStyle = lineClampStyle\n ? { ...style, ...lineClampStyle }\n : style;\n\n return React.createElement(\n Comp as \"p\",\n {\n ref,\n ...(href !== undefined && { href }),\n className: cn(\n typographyClass,\n toneClass,\n align !== undefined && alignClass[align],\n truncate && \"truncate\",\n weight !== undefined && weightClass[weight],\n className\n ),\n style: combinedStyle,\n ...props,\n },\n children\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n\nexport { Typography };\nexport type { TypographyVariant };\n","import { TypographyVariant as TypographyVariantEnum } from \"../../constants/enum\";\n\nexport { TypographyVariant as TypographyVariantEnum } from \"../../constants/enum\";\n\nexport type TypographyVariant = TypographyVariantEnum;\n\nexport const typographyVariants: TypographyVariant[] = [\n TypographyVariantEnum.H1,\n TypographyVariantEnum.H2,\n TypographyVariantEnum.H3,\n TypographyVariantEnum.H4,\n TypographyVariantEnum.H5,\n TypographyVariantEnum.Body,\n TypographyVariantEnum.Small,\n TypographyVariantEnum.Caption,\n TypographyVariantEnum.Label,\n TypographyVariantEnum.Link,\n TypographyVariantEnum.Error,\n TypographyVariantEnum.Success,\n TypographyVariantEnum.Warning,\n];\n\nconst variantToClass: Record<TypographyVariant, string> = {\n [TypographyVariantEnum.H1]: \"kz-typography-h1\",\n [TypographyVariantEnum.H2]: \"kz-typography-h2\",\n [TypographyVariantEnum.H3]: \"kz-typography-h3\",\n [TypographyVariantEnum.H4]: \"kz-typography-h4\",\n [TypographyVariantEnum.H5]: \"kz-typography-h5\",\n [TypographyVariantEnum.Body]: \"kz-typography-body\",\n [TypographyVariantEnum.Small]: \"kz-typography-small\",\n [TypographyVariantEnum.Caption]: \"kz-typography-caption\",\n [TypographyVariantEnum.Label]: \"kz-typography-label\",\n [TypographyVariantEnum.Link]: \"kz-typography-link\",\n [TypographyVariantEnum.Error]: \"kz-typography-error\",\n [TypographyVariantEnum.Success]: \"kz-typography-success\",\n [TypographyVariantEnum.Warning]: \"kz-typography-warning\",\n};\n\nexport function getTypographyClass(variant: TypographyVariant): string {\n return variantToClass[variant];\n}\n\nconst defaultElement: Record<TypographyVariant, keyof JSX.IntrinsicElements> = {\n [TypographyVariantEnum.H1]: \"h1\",\n [TypographyVariantEnum.H2]: \"h2\",\n [TypographyVariantEnum.H3]: \"h3\",\n [TypographyVariantEnum.H4]: \"h4\",\n [TypographyVariantEnum.H5]: \"h5\",\n [TypographyVariantEnum.Body]: \"p\",\n [TypographyVariantEnum.Small]: \"span\",\n [TypographyVariantEnum.Caption]: \"span\",\n [TypographyVariantEnum.Label]: \"span\",\n [TypographyVariantEnum.Link]: \"a\",\n [TypographyVariantEnum.Error]: \"span\",\n [TypographyVariantEnum.Success]: \"span\",\n [TypographyVariantEnum.Warning]: \"span\",\n};\n\nexport function getDefaultElement(\n variant: TypographyVariant\n): keyof JSX.IntrinsicElements {\n return defaultElement[variant];\n}\n"],"mappings":"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","names":["React","TextInputVariant","TextInputSize","TextInputState"]}
package/dist/select.js CHANGED
@@ -268,7 +268,11 @@ var iconRegistry = {
268
268
  ["pencil" /* Pencil */]: import_lucide_react.Pencil,
269
269
  ["trash-2" /* Trash2 */]: import_lucide_react.Trash2,
270
270
  ["eye" /* Eye */]: import_lucide_react.Eye,
271
- ["eye-off" /* EyeOff */]: import_lucide_react.EyeOff
271
+ ["eye-off" /* EyeOff */]: import_lucide_react.EyeOff,
272
+ ["pin" /* Pin */]: import_lucide_react.Pin,
273
+ ["pin-off" /* PinOff */]: import_lucide_react.PinOff,
274
+ ["save" /* Save */]: import_lucide_react.Save,
275
+ ["rotate-ccw" /* RotateCcw */]: import_lucide_react.RotateCcw
272
276
  };
273
277
 
274
278
  // src/icon/icon-sizes.ts