@nori-ui/core 0.0.3 → 0.0.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.
- package/dist/{chunk-JGH6Z5LM.js → chunk-6OABNXBY.js} +2 -2
- package/dist/{chunk-JGH6Z5LM.js.map → chunk-6OABNXBY.js.map} +1 -1
- package/dist/chunk-UAKFCMWK.js +3 -0
- package/dist/chunk-UAKFCMWK.js.map +1 -0
- package/dist/{chunk-6NDARMPP.js → chunk-X3AJNNF6.js} +167 -17
- package/dist/chunk-X3AJNNF6.js.map +1 -0
- package/dist/client.cjs +374 -225
- package/dist/client.cjs.map +1 -1
- package/dist/client.js +5 -4
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +374 -225
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -2
- package/dist/stories/story-registry.cjs +179 -15
- package/dist/stories/story-registry.cjs.map +1 -1
- package/dist/stories/story-registry.js +2 -1
- package/dist/stories/story-registry.js.map +1 -1
- package/dist/theme/index.js +2 -1
- package/package.json +1 -1
- package/dist/chunk-6NDARMPP.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -37,6 +37,216 @@ function Box({ className, children, ...rest }) {
|
|
|
37
37
|
}
|
|
38
38
|
__name(Box, "Box");
|
|
39
39
|
|
|
40
|
+
// ../tokens/build/theme.ts
|
|
41
|
+
var theme = {
|
|
42
|
+
color: {
|
|
43
|
+
danger: "#ef4444",
|
|
44
|
+
info: "#3b82f6",
|
|
45
|
+
neutral: {
|
|
46
|
+
"100": "#f4f4f5",
|
|
47
|
+
"200": "#e4e4e7",
|
|
48
|
+
"300": "#d4d4d8",
|
|
49
|
+
"400": "#a1a1aa",
|
|
50
|
+
"50": "#fafafa",
|
|
51
|
+
"500": "#71717a",
|
|
52
|
+
"600": "#52525b",
|
|
53
|
+
"700": "#3f3f46",
|
|
54
|
+
"800": "#27272a",
|
|
55
|
+
"900": "#18181b"
|
|
56
|
+
},
|
|
57
|
+
primary: {
|
|
58
|
+
"100": "#dbeafe",
|
|
59
|
+
"200": "#bfdbfe",
|
|
60
|
+
"300": "#93c5fd",
|
|
61
|
+
"400": "#60a5fa",
|
|
62
|
+
"50": "#f0f7ff",
|
|
63
|
+
"500": "#3b82f6",
|
|
64
|
+
"600": "#2563eb",
|
|
65
|
+
"700": "#1d4ed8",
|
|
66
|
+
"800": "#1e40af",
|
|
67
|
+
"900": "#1e3a8a"
|
|
68
|
+
},
|
|
69
|
+
success: "#22c55e",
|
|
70
|
+
warning: "#f59e0b"
|
|
71
|
+
},
|
|
72
|
+
fontSize: {
|
|
73
|
+
"2xl": "24px",
|
|
74
|
+
"3xl": "30px",
|
|
75
|
+
"4xl": "36px",
|
|
76
|
+
lg: "18px",
|
|
77
|
+
md: "16px",
|
|
78
|
+
sm: "14px",
|
|
79
|
+
xl: "20px",
|
|
80
|
+
xs: "12px"
|
|
81
|
+
},
|
|
82
|
+
fontWeight: {
|
|
83
|
+
bold: "700",
|
|
84
|
+
medium: "500",
|
|
85
|
+
regular: "400",
|
|
86
|
+
semibold: "600"
|
|
87
|
+
},
|
|
88
|
+
lineHeight: {
|
|
89
|
+
normal: "1.4",
|
|
90
|
+
relaxed: "1.6",
|
|
91
|
+
tight: "1.2"
|
|
92
|
+
},
|
|
93
|
+
radius: {
|
|
94
|
+
"2xl": "16px",
|
|
95
|
+
full: "9999px",
|
|
96
|
+
lg: "8px",
|
|
97
|
+
md: "6px",
|
|
98
|
+
none: "0px",
|
|
99
|
+
sm: "4px",
|
|
100
|
+
xl: "12px"
|
|
101
|
+
},
|
|
102
|
+
semantic: {
|
|
103
|
+
background: {
|
|
104
|
+
default: "#fafafa",
|
|
105
|
+
elevated: "#ffffff",
|
|
106
|
+
subtle: "#f4f4f5"
|
|
107
|
+
},
|
|
108
|
+
border: {
|
|
109
|
+
default: "#e4e4e7",
|
|
110
|
+
strong: "#d4d4d8"
|
|
111
|
+
},
|
|
112
|
+
interactive: {
|
|
113
|
+
destructive: "#ef4444",
|
|
114
|
+
primary: "#2563eb",
|
|
115
|
+
primaryHover: "#1d4ed8",
|
|
116
|
+
primaryPressed: "#1e40af"
|
|
117
|
+
},
|
|
118
|
+
text: {
|
|
119
|
+
default: "#18181b",
|
|
120
|
+
inverted: "#fafafa",
|
|
121
|
+
muted: "#52525b"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
shadow: {
|
|
125
|
+
lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",
|
|
126
|
+
md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",
|
|
127
|
+
sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)"
|
|
128
|
+
},
|
|
129
|
+
spacing: {
|
|
130
|
+
"0": "0px",
|
|
131
|
+
"1": "4px",
|
|
132
|
+
"10": "40px",
|
|
133
|
+
"12": "48px",
|
|
134
|
+
"16": "64px",
|
|
135
|
+
"2": "8px",
|
|
136
|
+
"20": "80px",
|
|
137
|
+
"24": "96px",
|
|
138
|
+
"3": "12px",
|
|
139
|
+
"4": "16px",
|
|
140
|
+
"5": "20px",
|
|
141
|
+
"6": "24px",
|
|
142
|
+
"8": "32px"
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
var themeDark = {
|
|
146
|
+
color: {
|
|
147
|
+
danger: "#ef4444",
|
|
148
|
+
info: "#3b82f6",
|
|
149
|
+
neutral: {
|
|
150
|
+
"100": "#f4f4f5",
|
|
151
|
+
"200": "#e4e4e7",
|
|
152
|
+
"300": "#d4d4d8",
|
|
153
|
+
"400": "#a1a1aa",
|
|
154
|
+
"50": "#fafafa",
|
|
155
|
+
"500": "#71717a",
|
|
156
|
+
"600": "#52525b",
|
|
157
|
+
"700": "#3f3f46",
|
|
158
|
+
"800": "#27272a",
|
|
159
|
+
"900": "#18181b"
|
|
160
|
+
},
|
|
161
|
+
primary: {
|
|
162
|
+
"100": "#dbeafe",
|
|
163
|
+
"200": "#bfdbfe",
|
|
164
|
+
"300": "#93c5fd",
|
|
165
|
+
"400": "#60a5fa",
|
|
166
|
+
"50": "#f0f7ff",
|
|
167
|
+
"500": "#3b82f6",
|
|
168
|
+
"600": "#2563eb",
|
|
169
|
+
"700": "#1d4ed8",
|
|
170
|
+
"800": "#1e40af",
|
|
171
|
+
"900": "#1e3a8a"
|
|
172
|
+
},
|
|
173
|
+
success: "#22c55e",
|
|
174
|
+
warning: "#f59e0b"
|
|
175
|
+
},
|
|
176
|
+
fontSize: {
|
|
177
|
+
"2xl": "24px",
|
|
178
|
+
"3xl": "30px",
|
|
179
|
+
"4xl": "36px",
|
|
180
|
+
lg: "18px",
|
|
181
|
+
md: "16px",
|
|
182
|
+
sm: "14px",
|
|
183
|
+
xl: "20px",
|
|
184
|
+
xs: "12px"
|
|
185
|
+
},
|
|
186
|
+
fontWeight: {
|
|
187
|
+
bold: "700",
|
|
188
|
+
medium: "500",
|
|
189
|
+
regular: "400",
|
|
190
|
+
semibold: "600"
|
|
191
|
+
},
|
|
192
|
+
lineHeight: {
|
|
193
|
+
normal: "1.4",
|
|
194
|
+
relaxed: "1.6",
|
|
195
|
+
tight: "1.2"
|
|
196
|
+
},
|
|
197
|
+
radius: {
|
|
198
|
+
"2xl": "16px",
|
|
199
|
+
full: "9999px",
|
|
200
|
+
lg: "8px",
|
|
201
|
+
md: "6px",
|
|
202
|
+
none: "0px",
|
|
203
|
+
sm: "4px",
|
|
204
|
+
xl: "12px"
|
|
205
|
+
},
|
|
206
|
+
semantic: {
|
|
207
|
+
background: {
|
|
208
|
+
default: "#18181b",
|
|
209
|
+
elevated: "#3f3f46",
|
|
210
|
+
subtle: "#27272a"
|
|
211
|
+
},
|
|
212
|
+
border: {
|
|
213
|
+
default: "#3f3f46",
|
|
214
|
+
strong: "#52525b"
|
|
215
|
+
},
|
|
216
|
+
interactive: {
|
|
217
|
+
destructive: "#ef4444",
|
|
218
|
+
primary: "#60a5fa",
|
|
219
|
+
primaryHover: "#93c5fd",
|
|
220
|
+
primaryPressed: "#bfdbfe"
|
|
221
|
+
},
|
|
222
|
+
text: {
|
|
223
|
+
default: "#fafafa",
|
|
224
|
+
inverted: "#18181b",
|
|
225
|
+
muted: "#a1a1aa"
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
shadow: {
|
|
229
|
+
lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",
|
|
230
|
+
md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",
|
|
231
|
+
sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)"
|
|
232
|
+
},
|
|
233
|
+
spacing: {
|
|
234
|
+
"0": "0px",
|
|
235
|
+
"1": "4px",
|
|
236
|
+
"10": "40px",
|
|
237
|
+
"12": "48px",
|
|
238
|
+
"16": "64px",
|
|
239
|
+
"2": "8px",
|
|
240
|
+
"20": "80px",
|
|
241
|
+
"24": "96px",
|
|
242
|
+
"3": "12px",
|
|
243
|
+
"4": "16px",
|
|
244
|
+
"5": "20px",
|
|
245
|
+
"6": "24px",
|
|
246
|
+
"8": "32px"
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
|
|
40
250
|
// src/slot/compose-refs.ts
|
|
41
251
|
function composeRefs(...refs) {
|
|
42
252
|
return (node) => {
|
|
@@ -145,6 +355,30 @@ var SIZE_CLASSES = {
|
|
|
145
355
|
};
|
|
146
356
|
var ICON_SIZE = { sm: 14, md: 16, lg: 20 };
|
|
147
357
|
var BASE_CLASSES = "inline-flex flex-row items-center justify-center gap-2 rounded-md select-none";
|
|
358
|
+
var VARIANT_STYLES = {
|
|
359
|
+
primary: { backgroundColor: theme.color.primary["600"] },
|
|
360
|
+
secondary: { backgroundColor: theme.color.neutral["100"] },
|
|
361
|
+
ghost: { backgroundColor: "transparent" },
|
|
362
|
+
destructive: { backgroundColor: theme.color.danger }
|
|
363
|
+
};
|
|
364
|
+
var VARIANT_TEXT_COLOR = {
|
|
365
|
+
primary: "#ffffff",
|
|
366
|
+
secondary: theme.color.neutral["900"],
|
|
367
|
+
ghost: theme.color.neutral["900"],
|
|
368
|
+
destructive: "#ffffff"
|
|
369
|
+
};
|
|
370
|
+
var SIZE_STYLES = {
|
|
371
|
+
sm: { container: { height: 32, paddingHorizontal: 12 }, text: { fontSize: 14 } },
|
|
372
|
+
md: { container: { height: 40, paddingHorizontal: 16 }, text: { fontSize: 16 } },
|
|
373
|
+
lg: { container: { height: 48, paddingHorizontal: 20 }, text: { fontSize: 18 } }
|
|
374
|
+
};
|
|
375
|
+
var BASE_STYLE = {
|
|
376
|
+
flexDirection: "row",
|
|
377
|
+
alignItems: "center",
|
|
378
|
+
justifyContent: "center",
|
|
379
|
+
gap: 8,
|
|
380
|
+
borderRadius: 6
|
|
381
|
+
};
|
|
148
382
|
var Button = react.forwardRef(/* @__PURE__ */ __name(function Button2({
|
|
149
383
|
children,
|
|
150
384
|
variant = "primary",
|
|
@@ -157,6 +391,7 @@ var Button = react.forwardRef(/* @__PURE__ */ __name(function Button2({
|
|
|
157
391
|
className,
|
|
158
392
|
onPress,
|
|
159
393
|
testID,
|
|
394
|
+
style,
|
|
160
395
|
...rest
|
|
161
396
|
}, forwardedRef) {
|
|
162
397
|
const isInoperative = Boolean(disabled) || Boolean(loading);
|
|
@@ -167,6 +402,16 @@ var Button = react.forwardRef(/* @__PURE__ */ __name(function Button2({
|
|
|
167
402
|
isInoperative ? "opacity-60" : void 0,
|
|
168
403
|
className
|
|
169
404
|
);
|
|
405
|
+
const baseInlineStyle = [
|
|
406
|
+
BASE_STYLE,
|
|
407
|
+
VARIANT_STYLES[variant],
|
|
408
|
+
SIZE_STYLES[size].container,
|
|
409
|
+
isInoperative ? { opacity: 0.6 } : null
|
|
410
|
+
];
|
|
411
|
+
const pressableStyle = typeof style === "function" ? (state) => [baseInlineStyle, style(state)] : [baseInlineStyle, style];
|
|
412
|
+
const slotStyle = [baseInlineStyle, typeof style === "function" ? null : style];
|
|
413
|
+
const textColor = VARIANT_TEXT_COLOR[variant];
|
|
414
|
+
const textStyle = { color: textColor, fontSize: SIZE_STYLES[size].text.fontSize, fontWeight: "500" };
|
|
170
415
|
const handlePress = /* @__PURE__ */ __name((ev) => {
|
|
171
416
|
if (isInoperative) return;
|
|
172
417
|
onPress?.(ev);
|
|
@@ -175,6 +420,7 @@ var Button = react.forwardRef(/* @__PURE__ */ __name(function Button2({
|
|
|
175
420
|
const slotProps = {
|
|
176
421
|
ref: forwardedRef,
|
|
177
422
|
className: classes,
|
|
423
|
+
style: slotStyle,
|
|
178
424
|
onClick: handlePress,
|
|
179
425
|
...rest
|
|
180
426
|
};
|
|
@@ -197,12 +443,20 @@ var Button = react.forwardRef(/* @__PURE__ */ __name(function Button2({
|
|
|
197
443
|
disabled: isInoperative,
|
|
198
444
|
onPress: handlePress,
|
|
199
445
|
className: classes,
|
|
446
|
+
style: pressableStyle,
|
|
200
447
|
...pressableExtra,
|
|
201
448
|
...rest,
|
|
202
449
|
children: [
|
|
203
|
-
loading ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: ICON_SIZE[size], label: "Loading" }) : LeadingIcon ? /* @__PURE__ */ jsxRuntime.jsx(LeadingIcon, { size: ICON_SIZE[size] }) : null,
|
|
204
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
205
|
-
|
|
450
|
+
loading ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: ICON_SIZE[size], label: "Loading", color: textColor }) : LeadingIcon ? /* @__PURE__ */ jsxRuntime.jsx(LeadingIcon, { size: ICON_SIZE[size], color: textColor }) : null,
|
|
451
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
452
|
+
reactNative.Text,
|
|
453
|
+
{
|
|
454
|
+
className: cn("font-medium", SIZE_CLASSES[size].includes("text-") ? void 0 : "text-md"),
|
|
455
|
+
style: textStyle,
|
|
456
|
+
children
|
|
457
|
+
}
|
|
458
|
+
),
|
|
459
|
+
TrailingIcon ? /* @__PURE__ */ jsxRuntime.jsx(TrailingIcon, { size: ICON_SIZE[size], color: textColor }) : null
|
|
206
460
|
]
|
|
207
461
|
}
|
|
208
462
|
);
|
|
@@ -250,6 +504,21 @@ function useSemanticIcon(name) {
|
|
|
250
504
|
return icons[name];
|
|
251
505
|
}
|
|
252
506
|
__name(useSemanticIcon, "useSemanticIcon");
|
|
507
|
+
var ROW_STYLE = { flexDirection: "row", alignItems: "center", gap: 8 };
|
|
508
|
+
var BOX_STYLE = {
|
|
509
|
+
width: 20,
|
|
510
|
+
height: 20,
|
|
511
|
+
borderRadius: 4,
|
|
512
|
+
borderWidth: 1,
|
|
513
|
+
borderColor: theme.color.neutral["300"],
|
|
514
|
+
backgroundColor: "#ffffff",
|
|
515
|
+
alignItems: "center",
|
|
516
|
+
justifyContent: "center"
|
|
517
|
+
};
|
|
518
|
+
var BOX_STYLE_CHECKED = {
|
|
519
|
+
backgroundColor: theme.color.primary["600"],
|
|
520
|
+
borderColor: theme.color.primary["600"]
|
|
521
|
+
};
|
|
253
522
|
function Checkbox({
|
|
254
523
|
checked,
|
|
255
524
|
defaultChecked = false,
|
|
@@ -266,6 +535,7 @@ function Checkbox({
|
|
|
266
535
|
const isControlled = checked !== void 0;
|
|
267
536
|
const value = isControlled ? Boolean(checked) : inner;
|
|
268
537
|
const ariaChecked = indeterminate ? "mixed" : value ? "true" : "false";
|
|
538
|
+
const isMarked = value || Boolean(indeterminate);
|
|
269
539
|
const toggle = react.useCallback(() => {
|
|
270
540
|
if (disabled) return;
|
|
271
541
|
const next = !value;
|
|
@@ -298,10 +568,26 @@ function Checkbox({
|
|
|
298
568
|
return /* @__PURE__ */ jsxRuntime.jsx(Slot, { ...slotProps, children });
|
|
299
569
|
}
|
|
300
570
|
const boxClasses = cn("w-5 h-5 rounded-sm border border-semantic-border-strong items-center justify-center");
|
|
301
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
571
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
572
|
+
reactNative.View,
|
|
573
|
+
{
|
|
574
|
+
className: cn("flex-row items-center gap-2", disabled ? "opacity-60" : void 0, className),
|
|
575
|
+
style: [ROW_STYLE, disabled ? { opacity: 0.6 } : null],
|
|
576
|
+
children: [
|
|
577
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
578
|
+
reactNative.Pressable,
|
|
579
|
+
{
|
|
580
|
+
onPress: toggle,
|
|
581
|
+
...commonProps,
|
|
582
|
+
className: boxClasses,
|
|
583
|
+
style: [BOX_STYLE, isMarked && !disabled ? BOX_STYLE_CHECKED : null],
|
|
584
|
+
children: isMarked && !disabled ? /* @__PURE__ */ jsxRuntime.jsx(Check, { size: 14, color: "#ffffff" }) : null
|
|
585
|
+
}
|
|
586
|
+
),
|
|
587
|
+
children ?? (label !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: { color: theme.color.neutral["900"], fontSize: 16 }, children: label }) : null)
|
|
588
|
+
]
|
|
589
|
+
}
|
|
590
|
+
);
|
|
305
591
|
}
|
|
306
592
|
__name(Checkbox, "Checkbox");
|
|
307
593
|
var ALIGN_CLASS = {
|
|
@@ -336,6 +622,25 @@ function HStack({ gap, align, justify, className, children, ...rest }) {
|
|
|
336
622
|
);
|
|
337
623
|
}
|
|
338
624
|
__name(HStack, "HStack");
|
|
625
|
+
var ROW_STYLE2 = { flexDirection: "row", alignItems: "center", gap: 8 };
|
|
626
|
+
var TRACK_BASE = {
|
|
627
|
+
width: 40,
|
|
628
|
+
height: 24,
|
|
629
|
+
borderRadius: 12,
|
|
630
|
+
justifyContent: "center",
|
|
631
|
+
paddingHorizontal: 2
|
|
632
|
+
};
|
|
633
|
+
var THUMB_STYLE = {
|
|
634
|
+
width: 20,
|
|
635
|
+
height: 20,
|
|
636
|
+
borderRadius: 10,
|
|
637
|
+
backgroundColor: "#ffffff",
|
|
638
|
+
shadowColor: "#000",
|
|
639
|
+
shadowOpacity: 0.15,
|
|
640
|
+
shadowRadius: 2,
|
|
641
|
+
shadowOffset: { width: 0, height: 1 },
|
|
642
|
+
elevation: 2
|
|
643
|
+
};
|
|
339
644
|
function Switch({
|
|
340
645
|
checked,
|
|
341
646
|
defaultChecked = false,
|
|
@@ -387,9 +692,22 @@ function Switch({
|
|
|
387
692
|
disabled ? "opacity-60" : void 0
|
|
388
693
|
);
|
|
389
694
|
const thumbClasses = cn("w-5 h-5 rounded-full bg-white shadow-sm", value ? "self-end" : "self-start");
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
695
|
+
const trackStyle = [
|
|
696
|
+
TRACK_BASE,
|
|
697
|
+
{ backgroundColor: value ? theme.color.primary["600"] : theme.color.neutral["300"] },
|
|
698
|
+
disabled ? { opacity: 0.6 } : null
|
|
699
|
+
];
|
|
700
|
+
const thumbStyle = [THUMB_STYLE, { alignSelf: value ? "flex-end" : "flex-start" }];
|
|
701
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: cn("flex-row items-center gap-2", className), style: ROW_STYLE2, children: [
|
|
702
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactNative.Pressable, { onPress: toggle, ...commonProps, className: trackClasses, style: trackStyle, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: thumbClasses, style: thumbStyle }) }),
|
|
703
|
+
label ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
704
|
+
reactNative.Text,
|
|
705
|
+
{
|
|
706
|
+
className: "text-md text-semantic-text-default",
|
|
707
|
+
style: { color: theme.color.neutral["900"], fontSize: 16 },
|
|
708
|
+
children: label
|
|
709
|
+
}
|
|
710
|
+
) : null,
|
|
393
711
|
children
|
|
394
712
|
] });
|
|
395
713
|
}
|
|
@@ -419,6 +737,23 @@ function Text({ variant = "body-md", className, testID, children, ...rest }) {
|
|
|
419
737
|
);
|
|
420
738
|
}
|
|
421
739
|
__name(Text, "Text");
|
|
740
|
+
var CONTAINER_STYLE = { flexDirection: "column", gap: 4 };
|
|
741
|
+
var LABEL_STYLE = { fontSize: 14, fontWeight: "500", color: theme.color.neutral["900"] };
|
|
742
|
+
var FIELD_BASE_STYLE = {
|
|
743
|
+
flexDirection: "row",
|
|
744
|
+
alignItems: "center",
|
|
745
|
+
borderRadius: 6,
|
|
746
|
+
borderWidth: 1,
|
|
747
|
+
paddingHorizontal: 12
|
|
748
|
+
};
|
|
749
|
+
var INPUT_STYLE = {
|
|
750
|
+
flex: 1,
|
|
751
|
+
paddingVertical: 8,
|
|
752
|
+
fontSize: 16,
|
|
753
|
+
color: theme.color.neutral["900"]
|
|
754
|
+
};
|
|
755
|
+
var HELPER_STYLE = { fontSize: 14, color: theme.color.neutral["500"] };
|
|
756
|
+
var ERROR_STYLE = { fontSize: 14, color: theme.color.danger };
|
|
422
757
|
function TextInput({
|
|
423
758
|
label,
|
|
424
759
|
helperText,
|
|
@@ -447,8 +782,21 @@ function TextInput({
|
|
|
447
782
|
if (multiline !== void 0) inputExtras.multiline = multiline;
|
|
448
783
|
if (numberOfLines !== void 0) inputExtras.numberOfLines = numberOfLines;
|
|
449
784
|
if (onChangeText !== void 0) inputExtras.onChangeText = onChangeText;
|
|
450
|
-
|
|
451
|
-
|
|
785
|
+
const fieldStyle = [
|
|
786
|
+
FIELD_BASE_STYLE,
|
|
787
|
+
{ borderColor: hasError ? theme.color.danger : theme.color.neutral["200"] },
|
|
788
|
+
disabled ? { opacity: 0.6 } : null
|
|
789
|
+
];
|
|
790
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: cn("flex flex-col gap-1", containerClassName), style: CONTAINER_STYLE, children: [
|
|
791
|
+
label !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
792
|
+
"label",
|
|
793
|
+
{
|
|
794
|
+
htmlFor: inputId,
|
|
795
|
+
className: "text-sm font-medium text-semantic-text-default",
|
|
796
|
+
style: LABEL_STYLE,
|
|
797
|
+
children: label
|
|
798
|
+
}
|
|
799
|
+
) : null,
|
|
452
800
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
453
801
|
reactNative.View,
|
|
454
802
|
{
|
|
@@ -457,23 +805,34 @@ function TextInput({
|
|
|
457
805
|
hasError ? "border-semantic-interactive-destructive" : "border-semantic-border-default",
|
|
458
806
|
disabled ? "opacity-60" : void 0
|
|
459
807
|
),
|
|
808
|
+
style: fieldStyle,
|
|
460
809
|
children: [
|
|
461
|
-
leading ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: "mr-2", children: leading }) : null,
|
|
810
|
+
leading ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: "mr-2", style: { marginRight: 8 }, children: leading }) : null,
|
|
462
811
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
463
812
|
reactNative.TextInput,
|
|
464
813
|
{
|
|
465
814
|
nativeID: inputId,
|
|
466
815
|
editable: !disabled,
|
|
467
816
|
className: cn("flex-1 py-2 text-md text-semantic-text-default outline-none", className),
|
|
817
|
+
style: INPUT_STYLE,
|
|
818
|
+
placeholderTextColor: theme.color.neutral["400"],
|
|
468
819
|
...inputExtras,
|
|
469
820
|
...rest
|
|
470
821
|
}
|
|
471
822
|
),
|
|
472
|
-
trailing ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: "ml-2", children: trailing }) : null
|
|
823
|
+
trailing ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: "ml-2", style: { marginLeft: 8 }, children: trailing }) : null
|
|
473
824
|
]
|
|
474
825
|
}
|
|
475
826
|
),
|
|
476
|
-
error ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
827
|
+
error ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
828
|
+
reactNative.Text,
|
|
829
|
+
{
|
|
830
|
+
nativeID: describeId,
|
|
831
|
+
className: "text-sm text-semantic-interactive-destructive",
|
|
832
|
+
style: ERROR_STYLE,
|
|
833
|
+
children: error
|
|
834
|
+
}
|
|
835
|
+
) : helperText ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { nativeID: describeId, className: "text-sm text-semantic-text-muted", style: HELPER_STYLE, children: helperText }) : null
|
|
477
836
|
] });
|
|
478
837
|
}
|
|
479
838
|
__name(TextInput, "TextInput");
|
|
@@ -587,216 +946,6 @@ function Icon({ as: IconComponent, size = "md", color }) {
|
|
|
587
946
|
}
|
|
588
947
|
__name(Icon, "Icon");
|
|
589
948
|
|
|
590
|
-
// ../tokens/build/theme.ts
|
|
591
|
-
var theme = {
|
|
592
|
-
color: {
|
|
593
|
-
danger: "#ef4444",
|
|
594
|
-
info: "#3b82f6",
|
|
595
|
-
neutral: {
|
|
596
|
-
"100": "#f4f4f5",
|
|
597
|
-
"200": "#e4e4e7",
|
|
598
|
-
"300": "#d4d4d8",
|
|
599
|
-
"400": "#a1a1aa",
|
|
600
|
-
"50": "#fafafa",
|
|
601
|
-
"500": "#71717a",
|
|
602
|
-
"600": "#52525b",
|
|
603
|
-
"700": "#3f3f46",
|
|
604
|
-
"800": "#27272a",
|
|
605
|
-
"900": "#18181b"
|
|
606
|
-
},
|
|
607
|
-
primary: {
|
|
608
|
-
"100": "#dbeafe",
|
|
609
|
-
"200": "#bfdbfe",
|
|
610
|
-
"300": "#93c5fd",
|
|
611
|
-
"400": "#60a5fa",
|
|
612
|
-
"50": "#f0f7ff",
|
|
613
|
-
"500": "#3b82f6",
|
|
614
|
-
"600": "#2563eb",
|
|
615
|
-
"700": "#1d4ed8",
|
|
616
|
-
"800": "#1e40af",
|
|
617
|
-
"900": "#1e3a8a"
|
|
618
|
-
},
|
|
619
|
-
success: "#22c55e",
|
|
620
|
-
warning: "#f59e0b"
|
|
621
|
-
},
|
|
622
|
-
fontSize: {
|
|
623
|
-
"2xl": "24px",
|
|
624
|
-
"3xl": "30px",
|
|
625
|
-
"4xl": "36px",
|
|
626
|
-
lg: "18px",
|
|
627
|
-
md: "16px",
|
|
628
|
-
sm: "14px",
|
|
629
|
-
xl: "20px",
|
|
630
|
-
xs: "12px"
|
|
631
|
-
},
|
|
632
|
-
fontWeight: {
|
|
633
|
-
bold: "700",
|
|
634
|
-
medium: "500",
|
|
635
|
-
regular: "400",
|
|
636
|
-
semibold: "600"
|
|
637
|
-
},
|
|
638
|
-
lineHeight: {
|
|
639
|
-
normal: "1.4",
|
|
640
|
-
relaxed: "1.6",
|
|
641
|
-
tight: "1.2"
|
|
642
|
-
},
|
|
643
|
-
radius: {
|
|
644
|
-
"2xl": "16px",
|
|
645
|
-
full: "9999px",
|
|
646
|
-
lg: "8px",
|
|
647
|
-
md: "6px",
|
|
648
|
-
none: "0px",
|
|
649
|
-
sm: "4px",
|
|
650
|
-
xl: "12px"
|
|
651
|
-
},
|
|
652
|
-
semantic: {
|
|
653
|
-
background: {
|
|
654
|
-
default: "#fafafa",
|
|
655
|
-
elevated: "#ffffff",
|
|
656
|
-
subtle: "#f4f4f5"
|
|
657
|
-
},
|
|
658
|
-
border: {
|
|
659
|
-
default: "#e4e4e7",
|
|
660
|
-
strong: "#d4d4d8"
|
|
661
|
-
},
|
|
662
|
-
interactive: {
|
|
663
|
-
destructive: "#ef4444",
|
|
664
|
-
primary: "#2563eb",
|
|
665
|
-
primaryHover: "#1d4ed8",
|
|
666
|
-
primaryPressed: "#1e40af"
|
|
667
|
-
},
|
|
668
|
-
text: {
|
|
669
|
-
default: "#18181b",
|
|
670
|
-
inverted: "#fafafa",
|
|
671
|
-
muted: "#52525b"
|
|
672
|
-
}
|
|
673
|
-
},
|
|
674
|
-
shadow: {
|
|
675
|
-
lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",
|
|
676
|
-
md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",
|
|
677
|
-
sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)"
|
|
678
|
-
},
|
|
679
|
-
spacing: {
|
|
680
|
-
"0": "0px",
|
|
681
|
-
"1": "4px",
|
|
682
|
-
"10": "40px",
|
|
683
|
-
"12": "48px",
|
|
684
|
-
"16": "64px",
|
|
685
|
-
"2": "8px",
|
|
686
|
-
"20": "80px",
|
|
687
|
-
"24": "96px",
|
|
688
|
-
"3": "12px",
|
|
689
|
-
"4": "16px",
|
|
690
|
-
"5": "20px",
|
|
691
|
-
"6": "24px",
|
|
692
|
-
"8": "32px"
|
|
693
|
-
}
|
|
694
|
-
};
|
|
695
|
-
var themeDark = {
|
|
696
|
-
color: {
|
|
697
|
-
danger: "#ef4444",
|
|
698
|
-
info: "#3b82f6",
|
|
699
|
-
neutral: {
|
|
700
|
-
"100": "#f4f4f5",
|
|
701
|
-
"200": "#e4e4e7",
|
|
702
|
-
"300": "#d4d4d8",
|
|
703
|
-
"400": "#a1a1aa",
|
|
704
|
-
"50": "#fafafa",
|
|
705
|
-
"500": "#71717a",
|
|
706
|
-
"600": "#52525b",
|
|
707
|
-
"700": "#3f3f46",
|
|
708
|
-
"800": "#27272a",
|
|
709
|
-
"900": "#18181b"
|
|
710
|
-
},
|
|
711
|
-
primary: {
|
|
712
|
-
"100": "#dbeafe",
|
|
713
|
-
"200": "#bfdbfe",
|
|
714
|
-
"300": "#93c5fd",
|
|
715
|
-
"400": "#60a5fa",
|
|
716
|
-
"50": "#f0f7ff",
|
|
717
|
-
"500": "#3b82f6",
|
|
718
|
-
"600": "#2563eb",
|
|
719
|
-
"700": "#1d4ed8",
|
|
720
|
-
"800": "#1e40af",
|
|
721
|
-
"900": "#1e3a8a"
|
|
722
|
-
},
|
|
723
|
-
success: "#22c55e",
|
|
724
|
-
warning: "#f59e0b"
|
|
725
|
-
},
|
|
726
|
-
fontSize: {
|
|
727
|
-
"2xl": "24px",
|
|
728
|
-
"3xl": "30px",
|
|
729
|
-
"4xl": "36px",
|
|
730
|
-
lg: "18px",
|
|
731
|
-
md: "16px",
|
|
732
|
-
sm: "14px",
|
|
733
|
-
xl: "20px",
|
|
734
|
-
xs: "12px"
|
|
735
|
-
},
|
|
736
|
-
fontWeight: {
|
|
737
|
-
bold: "700",
|
|
738
|
-
medium: "500",
|
|
739
|
-
regular: "400",
|
|
740
|
-
semibold: "600"
|
|
741
|
-
},
|
|
742
|
-
lineHeight: {
|
|
743
|
-
normal: "1.4",
|
|
744
|
-
relaxed: "1.6",
|
|
745
|
-
tight: "1.2"
|
|
746
|
-
},
|
|
747
|
-
radius: {
|
|
748
|
-
"2xl": "16px",
|
|
749
|
-
full: "9999px",
|
|
750
|
-
lg: "8px",
|
|
751
|
-
md: "6px",
|
|
752
|
-
none: "0px",
|
|
753
|
-
sm: "4px",
|
|
754
|
-
xl: "12px"
|
|
755
|
-
},
|
|
756
|
-
semantic: {
|
|
757
|
-
background: {
|
|
758
|
-
default: "#18181b",
|
|
759
|
-
elevated: "#3f3f46",
|
|
760
|
-
subtle: "#27272a"
|
|
761
|
-
},
|
|
762
|
-
border: {
|
|
763
|
-
default: "#3f3f46",
|
|
764
|
-
strong: "#52525b"
|
|
765
|
-
},
|
|
766
|
-
interactive: {
|
|
767
|
-
destructive: "#ef4444",
|
|
768
|
-
primary: "#60a5fa",
|
|
769
|
-
primaryHover: "#93c5fd",
|
|
770
|
-
primaryPressed: "#bfdbfe"
|
|
771
|
-
},
|
|
772
|
-
text: {
|
|
773
|
-
default: "#fafafa",
|
|
774
|
-
inverted: "#18181b",
|
|
775
|
-
muted: "#a1a1aa"
|
|
776
|
-
}
|
|
777
|
-
},
|
|
778
|
-
shadow: {
|
|
779
|
-
lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",
|
|
780
|
-
md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",
|
|
781
|
-
sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)"
|
|
782
|
-
},
|
|
783
|
-
spacing: {
|
|
784
|
-
"0": "0px",
|
|
785
|
-
"1": "4px",
|
|
786
|
-
"10": "40px",
|
|
787
|
-
"12": "48px",
|
|
788
|
-
"16": "64px",
|
|
789
|
-
"2": "8px",
|
|
790
|
-
"20": "80px",
|
|
791
|
-
"24": "96px",
|
|
792
|
-
"3": "12px",
|
|
793
|
-
"4": "16px",
|
|
794
|
-
"5": "20px",
|
|
795
|
-
"6": "24px",
|
|
796
|
-
"8": "32px"
|
|
797
|
-
}
|
|
798
|
-
};
|
|
799
|
-
|
|
800
949
|
exports.Box = Box;
|
|
801
950
|
exports.Button = Button;
|
|
802
951
|
exports.Checkbox = Checkbox;
|