@nori-ui/core 1.0.6 → 1.1.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 (166) hide show
  1. package/dist/chunk-2UXKXUX2.js +286 -0
  2. package/dist/chunk-2UXKXUX2.js.map +1 -0
  3. package/dist/{chunk-DDGMLLS3.js → chunk-46OT4PA6.js} +3 -3
  4. package/dist/{chunk-DDGMLLS3.js.map → chunk-46OT4PA6.js.map} +1 -1
  5. package/dist/{chunk-SFNDR6DI.js → chunk-5BM6H2CD.js} +3 -3
  6. package/dist/{chunk-SFNDR6DI.js.map → chunk-5BM6H2CD.js.map} +1 -1
  7. package/dist/{chunk-EWWQQ5DB.js → chunk-6JVUVBZH.js} +5 -5
  8. package/dist/{chunk-EWWQQ5DB.js.map → chunk-6JVUVBZH.js.map} +1 -1
  9. package/dist/{chunk-FT2XBBQJ.js → chunk-6PO2IWB3.js} +8 -5
  10. package/dist/chunk-6PO2IWB3.js.map +1 -0
  11. package/dist/{chunk-YNKKEO2A.js → chunk-7D2BHQ6M.js} +3 -3
  12. package/dist/{chunk-YNKKEO2A.js.map → chunk-7D2BHQ6M.js.map} +1 -1
  13. package/dist/{chunk-MRJWPRCX.js → chunk-AFQIK6JI.js} +3 -3
  14. package/dist/{chunk-MRJWPRCX.js.map → chunk-AFQIK6JI.js.map} +1 -1
  15. package/dist/{chunk-IKLA2CVQ.js → chunk-C6TRLHMW.js} +21 -5
  16. package/dist/chunk-C6TRLHMW.js.map +1 -0
  17. package/dist/{chunk-NRYWNOG5.js → chunk-CGQIVFCN.js} +3 -3
  18. package/dist/{chunk-NRYWNOG5.js.map → chunk-CGQIVFCN.js.map} +1 -1
  19. package/dist/chunk-EFK7726V.js +104 -0
  20. package/dist/chunk-EFK7726V.js.map +1 -0
  21. package/dist/{chunk-3BDDPFCI.js → chunk-FDBQOQMW.js} +3 -3
  22. package/dist/{chunk-3BDDPFCI.js.map → chunk-FDBQOQMW.js.map} +1 -1
  23. package/dist/{chunk-XALU6LOT.js → chunk-GELLSU64.js} +3 -3
  24. package/dist/{chunk-XALU6LOT.js.map → chunk-GELLSU64.js.map} +1 -1
  25. package/dist/{chunk-BZLT6R62.js → chunk-GRDVE3IR.js} +3 -3
  26. package/dist/{chunk-BZLT6R62.js.map → chunk-GRDVE3IR.js.map} +1 -1
  27. package/dist/{chunk-OMU4R4Y5.js → chunk-HTF6FDB6.js} +3 -3
  28. package/dist/{chunk-OMU4R4Y5.js.map → chunk-HTF6FDB6.js.map} +1 -1
  29. package/dist/{chunk-X7APG7G2.js → chunk-HZKXPN6B.js} +154 -34
  30. package/dist/chunk-HZKXPN6B.js.map +1 -0
  31. package/dist/{chunk-WGT345SV.js → chunk-IGLMPAWE.js} +3 -3
  32. package/dist/{chunk-WGT345SV.js.map → chunk-IGLMPAWE.js.map} +1 -1
  33. package/dist/{chunk-5XEGZFG5.js → chunk-LWQZ257T.js} +3 -3
  34. package/dist/{chunk-5XEGZFG5.js.map → chunk-LWQZ257T.js.map} +1 -1
  35. package/dist/{chunk-RFW5SRZA.js → chunk-MJ4AGXS7.js} +3 -3
  36. package/dist/{chunk-RFW5SRZA.js.map → chunk-MJ4AGXS7.js.map} +1 -1
  37. package/dist/{chunk-PNP7L4TA.js → chunk-RM5TSXVE.js} +3 -3
  38. package/dist/{chunk-PNP7L4TA.js.map → chunk-RM5TSXVE.js.map} +1 -1
  39. package/dist/{chunk-MKSDYRWQ.js → chunk-SINLREQV.js} +3 -3
  40. package/dist/{chunk-MKSDYRWQ.js.map → chunk-SINLREQV.js.map} +1 -1
  41. package/dist/{chunk-TLS54G6Y.js → chunk-UF5OENHV.js} +3 -3
  42. package/dist/{chunk-TLS54G6Y.js.map → chunk-UF5OENHV.js.map} +1 -1
  43. package/dist/{chunk-ZQMNGPLE.js → chunk-UJ5KFRDE.js} +18 -6
  44. package/dist/chunk-UJ5KFRDE.js.map +1 -0
  45. package/dist/{chunk-SWC5CNKE.js → chunk-UPVNZPFV.js} +3 -3
  46. package/dist/{chunk-SWC5CNKE.js.map → chunk-UPVNZPFV.js.map} +1 -1
  47. package/dist/{chunk-3F4TXKDY.js → chunk-UUXWRDWW.js} +3 -3
  48. package/dist/chunk-UUXWRDWW.js.map +1 -0
  49. package/dist/{chunk-7GPDNQSX.js → chunk-V2AWSDDZ.js} +5 -5
  50. package/dist/{chunk-7GPDNQSX.js.map → chunk-V2AWSDDZ.js.map} +1 -1
  51. package/dist/{chunk-JQQ3FBN7.js → chunk-VCJF75T2.js} +3 -3
  52. package/dist/{chunk-JQQ3FBN7.js.map → chunk-VCJF75T2.js.map} +1 -1
  53. package/dist/{chunk-ZBW3BA5R.js → chunk-VMAGFYHG.js} +39 -4
  54. package/dist/chunk-VMAGFYHG.js.map +1 -0
  55. package/dist/{chunk-JZ774T7U.js → chunk-W3HMOOON.js} +3 -3
  56. package/dist/{chunk-JZ774T7U.js.map → chunk-W3HMOOON.js.map} +1 -1
  57. package/dist/{chunk-6AD6KCVB.js → chunk-WAKKQROH.js} +3 -3
  58. package/dist/{chunk-6AD6KCVB.js.map → chunk-WAKKQROH.js.map} +1 -1
  59. package/dist/{chunk-LVWNMQGR.js → chunk-WDNDTSNX.js} +5 -5
  60. package/dist/{chunk-LVWNMQGR.js.map → chunk-WDNDTSNX.js.map} +1 -1
  61. package/dist/chunk-WOF67PKT.js +60 -0
  62. package/dist/chunk-WOF67PKT.js.map +1 -0
  63. package/dist/{chunk-QJNV7YQP.js → chunk-WTNDPO2V.js} +39 -4
  64. package/dist/chunk-WTNDPO2V.js.map +1 -0
  65. package/dist/{chunk-FEPTH5RV.js → chunk-XP55RZ3D.js} +3 -3
  66. package/dist/{chunk-FEPTH5RV.js.map → chunk-XP55RZ3D.js.map} +1 -1
  67. package/dist/{chunk-CCUXO2HN.js → chunk-Y4ZRSW35.js} +3 -3
  68. package/dist/{chunk-CCUXO2HN.js.map → chunk-Y4ZRSW35.js.map} +1 -1
  69. package/dist/client.cjs +619 -123
  70. package/dist/client.cjs.map +1 -1
  71. package/dist/client.d.cts +2 -0
  72. package/dist/client.d.ts +2 -0
  73. package/dist/client.js +40 -38
  74. package/dist/client.js.map +1 -1
  75. package/dist/components/Accordion/index.js +2 -2
  76. package/dist/components/Alert/index.js +2 -2
  77. package/dist/components/AlertDialog/index.js +2 -2
  78. package/dist/components/Avatar/index.js +2 -2
  79. package/dist/components/Badge/index.js +2 -2
  80. package/dist/components/Box/index.js +4 -4
  81. package/dist/components/Breadcrumb/index.cjs +6 -3
  82. package/dist/components/Breadcrumb/index.cjs.map +1 -1
  83. package/dist/components/Breadcrumb/index.js +5 -5
  84. package/dist/components/Button/index.js +2 -2
  85. package/dist/components/Calendar/index.cjs +170 -35
  86. package/dist/components/Calendar/index.cjs.map +1 -1
  87. package/dist/components/Calendar/index.js +5 -5
  88. package/dist/components/Card/index.js +2 -2
  89. package/dist/components/Checkbox/index.cjs +36 -1
  90. package/dist/components/Checkbox/index.cjs.map +1 -1
  91. package/dist/components/Checkbox/index.d.cts +17 -1
  92. package/dist/components/Checkbox/index.d.ts +17 -1
  93. package/dist/components/Checkbox/index.js +2 -2
  94. package/dist/components/Dialog/index.js +2 -2
  95. package/dist/components/Field/index.cjs +703 -0
  96. package/dist/components/Field/index.cjs.map +1 -0
  97. package/dist/components/Field/index.d.cts +51 -0
  98. package/dist/components/Field/index.d.ts +51 -0
  99. package/dist/components/Field/index.js +9 -0
  100. package/dist/components/Field/index.js.map +1 -0
  101. package/dist/components/FloatButton/index.cjs +6 -3
  102. package/dist/components/FloatButton/index.cjs.map +1 -1
  103. package/dist/components/FloatButton/index.js +5 -5
  104. package/dist/components/HStack/index.js +4 -4
  105. package/dist/components/InputGroup/index.cjs.map +1 -1
  106. package/dist/components/InputGroup/index.d.cts +8 -1
  107. package/dist/components/InputGroup/index.d.ts +8 -1
  108. package/dist/components/InputGroup/index.js +2 -2
  109. package/dist/components/Label/index.cjs +458 -0
  110. package/dist/components/Label/index.cjs.map +1 -0
  111. package/dist/components/Label/index.d.cts +14 -0
  112. package/dist/components/Label/index.d.ts +14 -0
  113. package/dist/components/Label/index.js +8 -0
  114. package/dist/components/Label/index.js.map +1 -0
  115. package/dist/components/Pagination/index.cjs +21 -6
  116. package/dist/components/Pagination/index.cjs.map +1 -1
  117. package/dist/components/Pagination/index.js +5 -5
  118. package/dist/components/Popover/index.js +2 -2
  119. package/dist/components/Progress/index.js +2 -2
  120. package/dist/components/Radio/index.cjs +18 -2
  121. package/dist/components/Radio/index.cjs.map +1 -1
  122. package/dist/components/Radio/index.d.cts +17 -1
  123. package/dist/components/Radio/index.d.ts +17 -1
  124. package/dist/components/Radio/index.js +2 -2
  125. package/dist/components/SegmentedControl/index.js +2 -2
  126. package/dist/components/Select/index.cjs +15 -3
  127. package/dist/components/Select/index.cjs.map +1 -1
  128. package/dist/components/Select/index.d.cts +6 -0
  129. package/dist/components/Select/index.d.ts +6 -0
  130. package/dist/components/Select/index.js +2 -2
  131. package/dist/components/Switch/index.cjs +36 -1
  132. package/dist/components/Switch/index.cjs.map +1 -1
  133. package/dist/components/Switch/index.d.cts +17 -1
  134. package/dist/components/Switch/index.d.ts +17 -1
  135. package/dist/components/Switch/index.js +2 -2
  136. package/dist/components/Tabs/index.js +2 -2
  137. package/dist/components/Text/index.js +2 -2
  138. package/dist/components/TextArea/index.cjs +35 -84
  139. package/dist/components/TextArea/index.cjs.map +1 -1
  140. package/dist/components/TextArea/index.js +3 -3
  141. package/dist/components/TextInput/index.cjs +35 -84
  142. package/dist/components/TextInput/index.cjs.map +1 -1
  143. package/dist/components/TextInput/index.d.cts +7 -8
  144. package/dist/components/TextInput/index.d.ts +7 -8
  145. package/dist/components/TextInput/index.js +2 -2
  146. package/dist/components/Toggle/index.js +2 -2
  147. package/dist/components/Tooltip/index.js +2 -2
  148. package/dist/components/VStack/index.js +4 -4
  149. package/dist/i18n/index.cjs +6 -3
  150. package/dist/i18n/index.cjs.map +1 -1
  151. package/dist/i18n/index.js +1 -1
  152. package/dist/index.cjs +619 -123
  153. package/dist/index.cjs.map +1 -1
  154. package/dist/index.d.cts +2 -0
  155. package/dist/index.d.ts +2 -0
  156. package/dist/index.js +37 -35
  157. package/package.json +8 -1
  158. package/dist/chunk-3F4TXKDY.js.map +0 -1
  159. package/dist/chunk-FT2XBBQJ.js.map +0 -1
  160. package/dist/chunk-IKLA2CVQ.js.map +0 -1
  161. package/dist/chunk-QJNV7YQP.js.map +0 -1
  162. package/dist/chunk-X7APG7G2.js.map +0 -1
  163. package/dist/chunk-ZBW3BA5R.js.map +0 -1
  164. package/dist/chunk-ZQMNGPLE.js.map +0 -1
  165. package/dist/chunk-ZRD4FQBT.js +0 -153
  166. package/dist/chunk-ZRD4FQBT.js.map +0 -1
@@ -0,0 +1,286 @@
1
+ import { Spinner } from './chunk-ACLHDHX3.js';
2
+ import { useTranslation } from './chunk-MJ4AGXS7.js';
3
+ import { px } from './chunk-5A2QOOVN.js';
4
+ import { useThemeColors } from './chunk-R5JMDDCB.js';
5
+ import { __name } from './chunk-WCQVDF3K.js';
6
+ import { createContext, Children, isValidElement, cloneElement, useId, useMemo, useRef, useEffect, useContext } from 'react';
7
+ import { Pressable, Text, View } from 'react-native';
8
+ import { jsx, jsxs, Fragment } from 'nativewind/jsx-runtime';
9
+
10
+ var FieldContext = createContext(null);
11
+ var useFieldContextStrict = /* @__PURE__ */ __name((caller) => {
12
+ const ctx = useContext(FieldContext);
13
+ if (!ctx) {
14
+ throw new Error(`[Field] ${caller} must be used inside <Field> or <Field.Group>.`);
15
+ }
16
+ return ctx;
17
+ }, "useFieldContextStrict");
18
+ var childHasDisplayName = /* @__PURE__ */ __name((child, name) => {
19
+ if (!isValidElement(child)) {
20
+ return false;
21
+ }
22
+ const t = child.type;
23
+ return typeof t !== "string" && t?.displayName === name;
24
+ }, "childHasDisplayName");
25
+ var COMPOUND_DISPLAY_NAMES = ["Field.Label", "Field.Description", "Field.Error", "Field.Control"];
26
+ var isCompoundChild = /* @__PURE__ */ __name((child) => COMPOUND_DISPLAY_NAMES.some((name) => childHasDisplayName(child, name)), "isCompoundChild");
27
+ var FieldRoot = /* @__PURE__ */ __name(({
28
+ name,
29
+ required = false,
30
+ disabled = false,
31
+ error = null,
32
+ label,
33
+ description,
34
+ validating = false,
35
+ orientation = "vertical",
36
+ id,
37
+ children,
38
+ className,
39
+ testID,
40
+ isGroup = false
41
+ }) => {
42
+ const colors = useThemeColors();
43
+ const reactId = useId();
44
+ const fieldId = id ?? `nori-ui-field-${reactId}`;
45
+ const labelId = `${fieldId}-label`;
46
+ const descriptionId = `${fieldId}-desc`;
47
+ const errorId = `${fieldId}-error`;
48
+ const isCompoundMode = useMemo(() => {
49
+ let found = false;
50
+ Children.forEach(children, (child) => {
51
+ if (isCompoundChild(child)) {
52
+ found = true;
53
+ }
54
+ });
55
+ return found;
56
+ }, [children]);
57
+ const hasDescription = useMemo(() => {
58
+ if (!isCompoundMode) {
59
+ return description !== void 0 && description !== null && description !== false && description !== "";
60
+ }
61
+ let found = false;
62
+ Children.forEach(children, (child) => {
63
+ if (childHasDisplayName(child, "Field.Description")) {
64
+ found = true;
65
+ }
66
+ });
67
+ return found;
68
+ }, [isCompoundMode, description, children]);
69
+ const hasError = useMemo(() => {
70
+ if (!isCompoundMode) {
71
+ return Boolean(error);
72
+ }
73
+ let found = false;
74
+ Children.forEach(children, (child) => {
75
+ if (childHasDisplayName(child, "Field.Error") && isValidElement(child)) {
76
+ const el = child;
77
+ if (el.props.children !== void 0 && el.props.children !== null && el.props.children !== false && el.props.children !== "") {
78
+ found = true;
79
+ }
80
+ }
81
+ });
82
+ if (!found && error !== null && error !== void 0 && error !== false && error !== "") {
83
+ found = true;
84
+ }
85
+ return found;
86
+ }, [isCompoundMode, error, children]);
87
+ const describedBy = useMemo(() => {
88
+ const ids = [];
89
+ if (hasDescription) {
90
+ ids.push(descriptionId);
91
+ }
92
+ if (hasError) {
93
+ ids.push(errorId);
94
+ }
95
+ return ids.length === 0 ? void 0 : ids.join(" ");
96
+ }, [hasDescription, hasError, descriptionId, errorId]);
97
+ const value = {
98
+ fieldId,
99
+ labelId,
100
+ descriptionId,
101
+ errorId,
102
+ hasError,
103
+ hasDescription,
104
+ describedBy,
105
+ disabled,
106
+ required,
107
+ validating,
108
+ ...name !== void 0 ? { name } : {},
109
+ // In compound mode pass `error` (string) so Field.Error can fall back to it.
110
+ // In shorthand mode the error prop may be ReactNode; only pass when it is a string/null.
111
+ ...error !== null && error !== void 0 && typeof error === "string" ? { error } : {},
112
+ isGroup
113
+ };
114
+ const warnedRef = useRef(false);
115
+ useEffect(() => {
116
+ if (process.env.NODE_ENV === "production" || warnedRef.current) {
117
+ return;
118
+ }
119
+ const hasShorthand = label !== void 0 || description !== void 0 || error !== void 0;
120
+ if (hasShorthand && isCompoundMode) {
121
+ warnedRef.current = true;
122
+ console.warn(
123
+ "[Field] Mixing shorthand props (label/description/error) with compound children (Field.Label/Field.Description/Field.Error) is not supported. The compound children will win. To suppress this warning, use only one mode."
124
+ );
125
+ }
126
+ }, [label, description, error, isCompoundMode]);
127
+ const containerStyle = orientation === "horizontal" ? {
128
+ flexDirection: "row",
129
+ alignItems: "flex-start",
130
+ gap: px(colors.spacing["3"])
131
+ } : { flexDirection: "column", gap: px(colors.spacing["1"]) };
132
+ const containerExtra = {};
133
+ if (testID !== void 0) {
134
+ containerExtra.testID = testID;
135
+ }
136
+ containerExtra["data-orientation"] = orientation;
137
+ if (isGroup) {
138
+ containerExtra.role = "group";
139
+ containerExtra["aria-labelledby"] = labelId;
140
+ containerExtra.accessibilityRole = "none";
141
+ }
142
+ if (validating) {
143
+ containerExtra["data-validating"] = "";
144
+ containerExtra["aria-busy"] = true;
145
+ }
146
+ const renderShorthand = /* @__PURE__ */ __name(() => {
147
+ const childArray = Children.toArray(children);
148
+ const controlChild = childArray.length === 1 && isValidElement(childArray[0]) ? childArray[0] : null;
149
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
150
+ label !== void 0 && label !== null && label !== false ? /* @__PURE__ */ jsx(FieldLabel, { children: label }) : null,
151
+ description !== void 0 && description !== null && description !== false && description !== "" ? /* @__PURE__ */ jsx(FieldDescription, { children: description }) : null,
152
+ controlChild !== null ? /* @__PURE__ */ jsx(FieldControl, { children: controlChild }) : children,
153
+ error !== void 0 && error !== null && error !== false && error !== "" ? /* @__PURE__ */ jsx(FieldError, { children: error }) : null
154
+ ] });
155
+ }, "renderShorthand");
156
+ return /* @__PURE__ */ jsx(FieldContext.Provider, { value, children: /* @__PURE__ */ jsxs(View, { style: containerStyle, ...className !== void 0 ? { className } : {}, ...containerExtra, children: [
157
+ isCompoundMode ? children : renderShorthand(),
158
+ validating ? /* @__PURE__ */ jsx(Spinner, { size: "sm" }) : null
159
+ ] }) });
160
+ }, "FieldRoot");
161
+ var FieldLabel = /* @__PURE__ */ __name(({ children }) => {
162
+ const ctx = useFieldContextStrict("Field.Label");
163
+ const colors = useThemeColors();
164
+ const { t } = useTranslation();
165
+ const requiredIndicator = t("field.requiredIndicator");
166
+ const requiredLabel = t("field.requiredLabel");
167
+ const focusInput = /* @__PURE__ */ __name(() => {
168
+ if (typeof document !== "undefined") {
169
+ const el = document.getElementById(ctx.fieldId);
170
+ if (el && typeof el.focus === "function") {
171
+ el.focus();
172
+ }
173
+ }
174
+ }, "focusInput");
175
+ return /* @__PURE__ */ jsx(Pressable, { onPress: focusInput, accessibilityRole: "none", disabled: ctx.disabled, children: /* @__PURE__ */ jsxs(
176
+ Text,
177
+ {
178
+ nativeID: ctx.labelId,
179
+ ...{ id: ctx.labelId },
180
+ accessibilityRole: "text",
181
+ style: {
182
+ fontFamily: colors.fontFamily.body,
183
+ fontSize: px(colors.fontSize.sm),
184
+ fontWeight: colors.fontWeight.medium,
185
+ color: ctx.disabled ? colors.semantic.text.muted : colors.semantic.text.default
186
+ },
187
+ children: [
188
+ children,
189
+ ctx.required ? /* @__PURE__ */ jsx(
190
+ Text,
191
+ {
192
+ accessibilityLabel: requiredLabel,
193
+ ...{ "aria-label": requiredLabel },
194
+ style: { color: colors.color.danger },
195
+ children: ` ${requiredIndicator}`
196
+ }
197
+ ) : null
198
+ ]
199
+ }
200
+ ) });
201
+ }, "FieldLabel");
202
+ FieldLabel.displayName = "Field.Label";
203
+ var FieldControl = /* @__PURE__ */ __name(({ children }) => {
204
+ const ctx = useFieldContextStrict("Field.Control");
205
+ if (Children.count(children) !== 1 || !isValidElement(children)) {
206
+ throw new Error("[Field.Control] expects exactly one child element.");
207
+ }
208
+ const child = children;
209
+ const merged = {
210
+ id: child.props.id ?? ctx.fieldId,
211
+ accessibilityLabelledBy: ctx.labelId,
212
+ "aria-labelledby": ctx.labelId
213
+ };
214
+ if (ctx.name !== void 0 && child.props.name === void 0) {
215
+ merged.name = ctx.name;
216
+ }
217
+ if (ctx.describedBy !== void 0) {
218
+ merged["aria-describedby"] = ctx.describedBy;
219
+ merged.accessibilityDescribedBy = ctx.describedBy;
220
+ }
221
+ if (ctx.hasError) {
222
+ merged["aria-invalid"] = true;
223
+ }
224
+ if (ctx.required) {
225
+ merged["aria-required"] = true;
226
+ }
227
+ if (ctx.disabled || child.props.disabled) {
228
+ merged.disabled = true;
229
+ }
230
+ return cloneElement(child, merged);
231
+ }, "FieldControl");
232
+ FieldControl.displayName = "Field.Control";
233
+ var FieldDescription = /* @__PURE__ */ __name(({ children }) => {
234
+ const ctx = useFieldContextStrict("Field.Description");
235
+ const colors = useThemeColors();
236
+ return /* @__PURE__ */ jsx(
237
+ Text,
238
+ {
239
+ nativeID: ctx.descriptionId,
240
+ ...{ id: ctx.descriptionId },
241
+ style: {
242
+ fontFamily: colors.fontFamily.body,
243
+ fontSize: px(colors.fontSize.sm),
244
+ color: colors.semantic.text.muted
245
+ },
246
+ children
247
+ }
248
+ );
249
+ }, "FieldDescription");
250
+ FieldDescription.displayName = "Field.Description";
251
+ var FieldError = /* @__PURE__ */ __name(({ children }) => {
252
+ const ctx = useFieldContextStrict("Field.Error");
253
+ const colors = useThemeColors();
254
+ const content = children ?? ctx.error;
255
+ if (content === null || content === void 0 || content === "" || content === false) {
256
+ return null;
257
+ }
258
+ return /* @__PURE__ */ jsx(
259
+ Text,
260
+ {
261
+ nativeID: ctx.errorId,
262
+ ...{ id: ctx.errorId, role: "alert" },
263
+ accessibilityRole: "text",
264
+ style: {
265
+ fontFamily: colors.fontFamily.body,
266
+ fontSize: px(colors.fontSize.sm),
267
+ color: colors.color.danger
268
+ },
269
+ children: content
270
+ }
271
+ );
272
+ }, "FieldError");
273
+ FieldError.displayName = "Field.Error";
274
+ var FieldGroup = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsx(FieldRoot, { ...props, isGroup: true }), "FieldGroup");
275
+ FieldGroup.displayName = "Field.Group";
276
+ var Field = Object.assign(FieldRoot, {
277
+ Label: FieldLabel,
278
+ Description: FieldDescription,
279
+ Control: FieldControl,
280
+ Error: FieldError,
281
+ Group: FieldGroup
282
+ });
283
+
284
+ export { Field };
285
+ //# sourceMappingURL=chunk-2UXKXUX2.js.map
286
+ //# sourceMappingURL=chunk-2UXKXUX2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Field/Field.tsx"],"names":["RNText"],"mappings":"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","file":"chunk-2UXKXUX2.js","sourcesContent":["'use client';\n\nimport {\n Children,\n cloneElement,\n createContext,\n isValidElement,\n type ReactElement,\n type ReactNode,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react';\nimport { Pressable, Text as RNText, View } from 'react-native';\nimport { useTranslation } from '../../i18n/use-translation';\nimport { px } from '../../theme/px';\nimport { useThemeColors } from '../../theme/use-theme-colors';\nimport { Spinner } from '../Spinner';\n\ntype FieldContextValue = {\n fieldId: string;\n labelId: string;\n descriptionId: string;\n errorId: string;\n hasError: boolean;\n hasDescription: boolean;\n describedBy: string | undefined;\n disabled: boolean;\n required: boolean;\n validating: boolean;\n name?: string;\n error?: string | null;\n isGroup: boolean;\n};\n\nconst FieldContext = createContext<FieldContextValue | null>(null);\n\nconst useFieldContextStrict = (caller: string): FieldContextValue => {\n const ctx = useContext(FieldContext);\n if (!ctx) {\n throw new Error(`[Field] ${caller} must be used inside <Field> or <Field.Group>.`);\n }\n return ctx;\n};\n\nconst childHasDisplayName = (child: ReactNode, name: string): boolean => {\n if (!isValidElement(child)) {\n return false;\n }\n const t = child.type as { displayName?: string } | string;\n return typeof t !== 'string' && t?.displayName === name;\n};\n\n/** Display names that mark a compound-mode child. */\nconst COMPOUND_DISPLAY_NAMES = ['Field.Label', 'Field.Description', 'Field.Error', 'Field.Control'];\n\nconst isCompoundChild = (child: ReactNode): boolean =>\n COMPOUND_DISPLAY_NAMES.some((name) => childHasDisplayName(child, name));\n\nexport type FieldProps = {\n // Shorthand slot props\n label?: ReactNode;\n description?: ReactNode;\n error?: ReactNode;\n\n // State flags\n name?: string;\n required?: boolean;\n disabled?: boolean;\n validating?: boolean;\n\n // Layout\n orientation?: 'vertical' | 'horizontal';\n id?: string;\n\n children: ReactNode;\n className?: string;\n testID?: string;\n};\n\ntype FieldRootInternalProps = FieldProps & { isGroup?: boolean };\n\nconst FieldRoot = ({\n name,\n required = false,\n disabled = false,\n error = null,\n label,\n description,\n validating = false,\n orientation = 'vertical',\n id,\n children,\n className,\n testID,\n isGroup = false,\n}: FieldRootInternalProps) => {\n const colors = useThemeColors();\n const reactId = useId();\n const fieldId = id ?? `nori-ui-field-${reactId}`;\n const labelId = `${fieldId}-label`;\n const descriptionId = `${fieldId}-desc`;\n const errorId = `${fieldId}-error`;\n\n // ---------- mode detection ----------\n const isCompoundMode = useMemo(() => {\n let found = false;\n Children.forEach(children, (child) => {\n if (isCompoundChild(child)) {\n found = true;\n }\n });\n return found;\n }, [children]);\n\n // ---------- derive hasDescription / hasError ----------\n const hasDescription = useMemo(() => {\n if (!isCompoundMode) {\n return description !== undefined && description !== null && description !== false && description !== '';\n }\n let found = false;\n Children.forEach(children, (child) => {\n if (childHasDisplayName(child, 'Field.Description')) {\n found = true;\n }\n });\n return found;\n }, [isCompoundMode, description, children]);\n\n const hasError = useMemo(() => {\n if (!isCompoundMode) {\n return Boolean(error);\n }\n // compound mode: scan for Field.Error child with truthy children\n let found = false;\n Children.forEach(children, (child) => {\n if (childHasDisplayName(child, 'Field.Error') && isValidElement(child)) {\n const el = child as ReactElement<{ children?: ReactNode }>;\n if (\n el.props.children !== undefined &&\n el.props.children !== null &&\n el.props.children !== false &&\n el.props.children !== ''\n ) {\n found = true;\n }\n }\n });\n // also check the legacy `error` prop usage in compound mode\n if (!found && error !== null && error !== undefined && error !== false && error !== '') {\n found = true;\n }\n return found;\n }, [isCompoundMode, error, children]);\n\n const describedBy = useMemo(() => {\n const ids: string[] = [];\n if (hasDescription) {\n ids.push(descriptionId);\n }\n if (hasError) {\n ids.push(errorId);\n }\n return ids.length === 0 ? undefined : ids.join(' ');\n }, [hasDescription, hasError, descriptionId, errorId]);\n\n const value: FieldContextValue = {\n fieldId,\n labelId,\n descriptionId,\n errorId,\n hasError,\n hasDescription,\n describedBy,\n disabled,\n required,\n validating,\n ...(name !== undefined ? { name } : {}),\n // In compound mode pass `error` (string) so Field.Error can fall back to it.\n // In shorthand mode the error prop may be ReactNode; only pass when it is a string/null.\n ...(error !== null && error !== undefined && typeof error === 'string' ? { error } : {}),\n isGroup,\n };\n\n // ---------- dev warning for mixed usage ----------\n const warnedRef = useRef(false);\n useEffect(() => {\n if (process.env.NODE_ENV === 'production' || warnedRef.current) {\n return;\n }\n const hasShorthand = label !== undefined || description !== undefined || error !== undefined;\n if (hasShorthand && isCompoundMode) {\n warnedRef.current = true;\n // biome-ignore lint/suspicious/noConsole: intentional dev-mode warning\n console.warn(\n '[Field] Mixing shorthand props (label/description/error) with compound children (Field.Label/Field.Description/Field.Error) is not supported. The compound children will win. To suppress this warning, use only one mode.'\n );\n }\n }, [label, description, error, isCompoundMode]);\n\n // ---------- layout ----------\n const containerStyle =\n orientation === 'horizontal'\n ? {\n flexDirection: 'row' as const,\n alignItems: 'flex-start' as const,\n gap: px(colors.spacing['3']),\n }\n : { flexDirection: 'column' as const, gap: px(colors.spacing['1']) };\n\n const containerExtra: Record<string, unknown> = {};\n if (testID !== undefined) {\n containerExtra.testID = testID;\n }\n containerExtra['data-orientation'] = orientation;\n if (isGroup) {\n containerExtra.role = 'group';\n containerExtra['aria-labelledby'] = labelId;\n containerExtra.accessibilityRole = 'none';\n }\n if (validating) {\n containerExtra['data-validating'] = '';\n containerExtra['aria-busy'] = true;\n }\n\n // ---------- shorthand mode rendering ----------\n const renderShorthand = () => {\n // Determine if there's exactly one non-Field.* child we can auto-wrap.\n const childArray = Children.toArray(children);\n const controlChild =\n childArray.length === 1 && isValidElement(childArray[0]) ? (childArray[0] as ReactElement) : null;\n\n return (\n <>\n {label !== undefined && label !== null && label !== false ? <FieldLabel>{label}</FieldLabel> : null}\n {description !== undefined && description !== null && description !== false && description !== '' ? (\n <FieldDescription>{description}</FieldDescription>\n ) : null}\n {controlChild !== null ? <FieldControl>{controlChild}</FieldControl> : children}\n {error !== undefined && error !== null && error !== false && error !== '' ? (\n <FieldError>{error}</FieldError>\n ) : null}\n </>\n );\n };\n\n return (\n <FieldContext.Provider value={value}>\n <View style={containerStyle} {...(className !== undefined ? { className } : {})} {...containerExtra}>\n {isCompoundMode ? children : renderShorthand()}\n {validating ? <Spinner size=\"sm\" /> : null}\n </View>\n </FieldContext.Provider>\n );\n};\n\nconst FieldLabel = ({ children }: { children: ReactNode }) => {\n const ctx = useFieldContextStrict('Field.Label');\n const colors = useThemeColors();\n const { t } = useTranslation();\n const requiredIndicator = t('field.requiredIndicator');\n const requiredLabel = t('field.requiredLabel');\n\n const focusInput = () => {\n if (typeof document !== 'undefined') {\n const el = document.getElementById(ctx.fieldId);\n if (el && typeof (el as HTMLElement).focus === 'function') {\n (el as HTMLElement).focus();\n }\n }\n };\n\n return (\n <Pressable onPress={focusInput} accessibilityRole=\"none\" disabled={ctx.disabled}>\n <RNText\n nativeID={ctx.labelId}\n {...({ id: ctx.labelId } as Record<string, unknown>)}\n accessibilityRole=\"text\"\n style={{\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n fontWeight: colors.fontWeight.medium as '500',\n color: ctx.disabled ? colors.semantic.text.muted : colors.semantic.text.default,\n }}\n >\n {children}\n {ctx.required ? (\n <RNText\n accessibilityLabel={requiredLabel}\n {...({ 'aria-label': requiredLabel } as Record<string, unknown>)}\n style={{ color: colors.color.danger }}\n >\n {` ${requiredIndicator}`}\n </RNText>\n ) : null}\n </RNText>\n </Pressable>\n );\n};\nFieldLabel.displayName = 'Field.Label';\n\nconst FieldControl = ({ children }: { children: ReactElement }) => {\n const ctx = useFieldContextStrict('Field.Control');\n if (Children.count(children) !== 1 || !isValidElement(children)) {\n throw new Error('[Field.Control] expects exactly one child element.');\n }\n const child = children as ReactElement<Record<string, unknown>>;\n const merged: Record<string, unknown> = {\n id: child.props.id ?? ctx.fieldId,\n accessibilityLabelledBy: ctx.labelId,\n 'aria-labelledby': ctx.labelId,\n };\n if (ctx.name !== undefined && child.props.name === undefined) {\n merged.name = ctx.name;\n }\n if (ctx.describedBy !== undefined) {\n merged['aria-describedby'] = ctx.describedBy;\n merged.accessibilityDescribedBy = ctx.describedBy;\n }\n if (ctx.hasError) {\n merged['aria-invalid'] = true;\n }\n if (ctx.required) {\n merged['aria-required'] = true;\n }\n if (ctx.disabled || child.props.disabled) {\n merged.disabled = true;\n }\n return cloneElement(child, merged);\n};\nFieldControl.displayName = 'Field.Control';\n\nconst FieldDescription = ({ children }: { children: ReactNode }) => {\n const ctx = useFieldContextStrict('Field.Description');\n const colors = useThemeColors();\n return (\n <RNText\n nativeID={ctx.descriptionId}\n {...({ id: ctx.descriptionId } as Record<string, unknown>)}\n style={{\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n color: colors.semantic.text.muted,\n }}\n >\n {children}\n </RNText>\n );\n};\nFieldDescription.displayName = 'Field.Description';\n\nconst FieldError = ({ children }: { children?: ReactNode }) => {\n const ctx = useFieldContextStrict('Field.Error');\n const colors = useThemeColors();\n const content = children ?? ctx.error;\n if (content === null || content === undefined || content === '' || content === false) {\n return null;\n }\n return (\n <RNText\n nativeID={ctx.errorId}\n {...({ id: ctx.errorId, role: 'alert' } as Record<string, unknown>)}\n accessibilityRole=\"text\"\n style={{\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n color: colors.color.danger,\n }}\n >\n {content}\n </RNText>\n );\n};\nFieldError.displayName = 'Field.Error';\n\nexport type FieldGroupProps = Omit<FieldProps, 'name'>;\n\nconst FieldGroup = (props: FieldGroupProps) => <FieldRoot {...(props as FieldProps)} isGroup />;\nFieldGroup.displayName = 'Field.Group';\n\nexport const Field = Object.assign(FieldRoot as (props: FieldProps) => ReactElement, {\n Label: FieldLabel,\n Description: FieldDescription,\n Control: FieldControl,\n Error: FieldError,\n Group: FieldGroup,\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  import { defaultSemanticIcons } from './chunk-7Z4NMNX6.js';
2
- import { px } from './chunk-5A2QOOVN.js';
3
2
  import { cn } from './chunk-CHXHRJNZ.js';
3
+ import { px } from './chunk-5A2QOOVN.js';
4
4
  import { useThemeColors, useColorScheme } from './chunk-R5JMDDCB.js';
5
5
  import { __name } from './chunk-WCQVDF3K.js';
6
6
  import { View, Text, Pressable } from 'react-native';
@@ -184,5 +184,5 @@ var Alert = /* @__PURE__ */ __name(({
184
184
  }, "Alert");
185
185
 
186
186
  export { Alert };
187
- //# sourceMappingURL=chunk-DDGMLLS3.js.map
188
- //# sourceMappingURL=chunk-DDGMLLS3.js.map
187
+ //# sourceMappingURL=chunk-46OT4PA6.js.map
188
+ //# sourceMappingURL=chunk-46OT4PA6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":["RNText"],"mappings":"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","file":"chunk-DDGMLLS3.js","sourcesContent":["'use client';\n\nimport type { ComponentType, ReactNode } from 'react';\nimport type { ViewStyle } from 'react-native';\nimport { Pressable, Text as RNText, View } from 'react-native';\nimport { defaultSemanticIcons } from '../../icons/default-semantic-icons';\nimport { px } from '../../theme/px';\nimport { useColorScheme } from '../../theme/use-color-scheme';\nimport { useThemeColors } from '../../theme/use-theme-colors';\nimport { cn } from '../../utils/cn';\n\nexport type AlertTone = 'info' | 'success' | 'warning' | 'danger';\n\nexport type AlertProps = {\n /**\n * Severity of the alert. Drives the color tone and the default icon.\n * @defaultValue 'info'\n */\n tone?: AlertTone;\n /** Bolded heading line. Optional — provide one of title or description. */\n title?: string;\n /** Body text below the title. */\n description?: string;\n /**\n * When provided, renders a close button in the top-right that calls back\n * when pressed. The Alert itself doesn't track dismissed state — the\n * parent decides whether to keep rendering.\n */\n onDismiss?: () => void;\n /**\n * Override the tone's default icon. Pass `null` to render no icon at\n * all (rare — the icon doubles as the visual severity cue).\n */\n icon?: ReactNode;\n /** Additional content below title/description. */\n children?: ReactNode;\n className?: string;\n testID?: string;\n};\n\ntype IconType = ComponentType<{ size?: number; color?: string }>;\ntype TonePalette = { bg: string; border: string; fg: string; iconBg: string; defaultIcon: IconType };\n\n// Light/dark soft palettes per tone. Light variants use the familiar\n// pastel scale (Tailwind 50/200/800); dark variants use the deep 950/700/100\n// scale so the alert reads as a calm, on-tone surface against either\n// background — never a harsh white card on a dark page.\nfunction tonePalettes(\n scheme: 'light' | 'dark',\n primary: { '50': string; '200': string; '700': string; '800': string; '900': string; '100': string },\n success: string,\n warning: string,\n danger: string\n): Record<AlertTone, TonePalette> {\n if (scheme === 'dark') {\n return {\n info: {\n bg: primary['900'],\n border: primary['700'],\n fg: primary['100'],\n iconBg: primary['200'],\n defaultIcon: defaultSemanticIcons.info,\n },\n success: {\n bg: '#052e16',\n border: '#14532d',\n fg: '#bbf7d0',\n iconBg: success,\n defaultIcon: defaultSemanticIcons.checkmark,\n },\n warning: {\n bg: '#422006',\n border: '#78350f',\n fg: '#fef3c7',\n iconBg: warning,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n danger: {\n bg: '#450a0a',\n border: '#7f1d1d',\n fg: '#fecaca',\n iconBg: danger,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n };\n }\n return {\n info: {\n bg: primary['50'],\n border: primary['200'],\n fg: primary['800'],\n iconBg: primary['700'],\n defaultIcon: defaultSemanticIcons.info,\n },\n success: {\n bg: '#f0fdf4',\n border: '#bbf7d0',\n fg: '#166534',\n iconBg: success,\n defaultIcon: defaultSemanticIcons.checkmark,\n },\n warning: {\n bg: '#fefce8',\n border: '#fde68a',\n fg: '#92400e',\n iconBg: warning,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n danger: {\n bg: '#fef2f2',\n border: '#fecaca',\n fg: '#991b1b',\n iconBg: danger,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n };\n}\n\n// Layout-only base; theme-driven dimensions (gap/padding/radius) are merged\n// inside the component so a custom theme reshapes the alert.\nconst CONTAINER_LAYOUT_BASE: ViewStyle = {\n flexDirection: 'row',\n alignItems: 'flex-start',\n borderWidth: 1,\n};\n\n/**\n * Status banner with an icon, title, optional description, optional dismiss.\n * Use for inline messages that the reader should notice but doesn't need to\n * action immediately (use a Dialog when you need a forced acknowledgement).\n *\n * Color tone flips automatically with the active color scheme — light\n * pastel surface in light mode, deep on-tone surface in dark.\n */\nexport const Alert = ({\n tone = 'info',\n title,\n description,\n onDismiss,\n icon,\n children,\n className,\n testID,\n}: AlertProps) => {\n const colors = useThemeColors();\n const scheme = useColorScheme();\n const palette = tonePalettes(\n scheme,\n colors.color.primary,\n colors.color.success,\n colors.color.warning,\n colors.color.danger\n )[tone];\n const IconComponent = palette.defaultIcon;\n const containerStyle: ViewStyle = {\n ...CONTAINER_LAYOUT_BASE,\n gap: px(colors.spacing['3']),\n padding: px(colors.spacing['3']), // closest token to legacy 14px\n borderRadius: px(colors.radius.lg),\n backgroundColor: palette.bg,\n borderColor: palette.border,\n };\n return (\n <View\n {...(testID !== undefined ? { testID } : {})}\n role=\"alert\"\n accessibilityRole=\"alert\"\n className={cn('flex-row items-start gap-3 rounded-md border p-3.5', className)}\n style={containerStyle}\n >\n {icon === null ? null : icon !== undefined ? (\n icon\n ) : (\n <View\n aria-hidden={true}\n style={{\n // 20×20 icon hit area — component-density literal — not from theme\n width: 20,\n height: 20,\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: 2,\n }}\n >\n <IconComponent size={20} color={palette.iconBg} />\n </View>\n )}\n <View style={{ flex: 1, gap: 2 }}>\n {title !== undefined ? (\n <RNText\n style={{\n color: palette.fg,\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n fontWeight: colors.fontWeight.semibold as '600',\n lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal),\n }}\n >\n {title}\n </RNText>\n ) : null}\n {description !== undefined ? (\n <RNText\n style={{\n color: palette.fg,\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal),\n opacity: 0.85,\n }}\n >\n {description}\n </RNText>\n ) : null}\n {children}\n </View>\n {onDismiss !== undefined ? (\n <Pressable\n onPress={onDismiss}\n role=\"button\"\n accessibilityRole=\"button\"\n accessibilityLabel=\"Dismiss\"\n aria-label=\"Dismiss\"\n style={{\n // 24×24 close button hit area — component-density literal — not from theme\n width: 24,\n height: 24,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: px(colors.radius.sm),\n marginTop: -2,\n }}\n >\n <defaultSemanticIcons.close size={16} color={palette.fg} />\n </Pressable>\n ) : null}\n </View>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":["RNText"],"mappings":"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","file":"chunk-46OT4PA6.js","sourcesContent":["'use client';\n\nimport type { ComponentType, ReactNode } from 'react';\nimport type { ViewStyle } from 'react-native';\nimport { Pressable, Text as RNText, View } from 'react-native';\nimport { defaultSemanticIcons } from '../../icons/default-semantic-icons';\nimport { px } from '../../theme/px';\nimport { useColorScheme } from '../../theme/use-color-scheme';\nimport { useThemeColors } from '../../theme/use-theme-colors';\nimport { cn } from '../../utils/cn';\n\nexport type AlertTone = 'info' | 'success' | 'warning' | 'danger';\n\nexport type AlertProps = {\n /**\n * Severity of the alert. Drives the color tone and the default icon.\n * @defaultValue 'info'\n */\n tone?: AlertTone;\n /** Bolded heading line. Optional — provide one of title or description. */\n title?: string;\n /** Body text below the title. */\n description?: string;\n /**\n * When provided, renders a close button in the top-right that calls back\n * when pressed. The Alert itself doesn't track dismissed state — the\n * parent decides whether to keep rendering.\n */\n onDismiss?: () => void;\n /**\n * Override the tone's default icon. Pass `null` to render no icon at\n * all (rare — the icon doubles as the visual severity cue).\n */\n icon?: ReactNode;\n /** Additional content below title/description. */\n children?: ReactNode;\n className?: string;\n testID?: string;\n};\n\ntype IconType = ComponentType<{ size?: number; color?: string }>;\ntype TonePalette = { bg: string; border: string; fg: string; iconBg: string; defaultIcon: IconType };\n\n// Light/dark soft palettes per tone. Light variants use the familiar\n// pastel scale (Tailwind 50/200/800); dark variants use the deep 950/700/100\n// scale so the alert reads as a calm, on-tone surface against either\n// background — never a harsh white card on a dark page.\nfunction tonePalettes(\n scheme: 'light' | 'dark',\n primary: { '50': string; '200': string; '700': string; '800': string; '900': string; '100': string },\n success: string,\n warning: string,\n danger: string\n): Record<AlertTone, TonePalette> {\n if (scheme === 'dark') {\n return {\n info: {\n bg: primary['900'],\n border: primary['700'],\n fg: primary['100'],\n iconBg: primary['200'],\n defaultIcon: defaultSemanticIcons.info,\n },\n success: {\n bg: '#052e16',\n border: '#14532d',\n fg: '#bbf7d0',\n iconBg: success,\n defaultIcon: defaultSemanticIcons.checkmark,\n },\n warning: {\n bg: '#422006',\n border: '#78350f',\n fg: '#fef3c7',\n iconBg: warning,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n danger: {\n bg: '#450a0a',\n border: '#7f1d1d',\n fg: '#fecaca',\n iconBg: danger,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n };\n }\n return {\n info: {\n bg: primary['50'],\n border: primary['200'],\n fg: primary['800'],\n iconBg: primary['700'],\n defaultIcon: defaultSemanticIcons.info,\n },\n success: {\n bg: '#f0fdf4',\n border: '#bbf7d0',\n fg: '#166534',\n iconBg: success,\n defaultIcon: defaultSemanticIcons.checkmark,\n },\n warning: {\n bg: '#fefce8',\n border: '#fde68a',\n fg: '#92400e',\n iconBg: warning,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n danger: {\n bg: '#fef2f2',\n border: '#fecaca',\n fg: '#991b1b',\n iconBg: danger,\n defaultIcon: defaultSemanticIcons.alertTriangle,\n },\n };\n}\n\n// Layout-only base; theme-driven dimensions (gap/padding/radius) are merged\n// inside the component so a custom theme reshapes the alert.\nconst CONTAINER_LAYOUT_BASE: ViewStyle = {\n flexDirection: 'row',\n alignItems: 'flex-start',\n borderWidth: 1,\n};\n\n/**\n * Status banner with an icon, title, optional description, optional dismiss.\n * Use for inline messages that the reader should notice but doesn't need to\n * action immediately (use a Dialog when you need a forced acknowledgement).\n *\n * Color tone flips automatically with the active color scheme — light\n * pastel surface in light mode, deep on-tone surface in dark.\n */\nexport const Alert = ({\n tone = 'info',\n title,\n description,\n onDismiss,\n icon,\n children,\n className,\n testID,\n}: AlertProps) => {\n const colors = useThemeColors();\n const scheme = useColorScheme();\n const palette = tonePalettes(\n scheme,\n colors.color.primary,\n colors.color.success,\n colors.color.warning,\n colors.color.danger\n )[tone];\n const IconComponent = palette.defaultIcon;\n const containerStyle: ViewStyle = {\n ...CONTAINER_LAYOUT_BASE,\n gap: px(colors.spacing['3']),\n padding: px(colors.spacing['3']), // closest token to legacy 14px\n borderRadius: px(colors.radius.lg),\n backgroundColor: palette.bg,\n borderColor: palette.border,\n };\n return (\n <View\n {...(testID !== undefined ? { testID } : {})}\n role=\"alert\"\n accessibilityRole=\"alert\"\n className={cn('flex-row items-start gap-3 rounded-md border p-3.5', className)}\n style={containerStyle}\n >\n {icon === null ? null : icon !== undefined ? (\n icon\n ) : (\n <View\n aria-hidden={true}\n style={{\n // 20×20 icon hit area — component-density literal — not from theme\n width: 20,\n height: 20,\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: 2,\n }}\n >\n <IconComponent size={20} color={palette.iconBg} />\n </View>\n )}\n <View style={{ flex: 1, gap: 2 }}>\n {title !== undefined ? (\n <RNText\n style={{\n color: palette.fg,\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n fontWeight: colors.fontWeight.semibold as '600',\n lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal),\n }}\n >\n {title}\n </RNText>\n ) : null}\n {description !== undefined ? (\n <RNText\n style={{\n color: palette.fg,\n fontFamily: colors.fontFamily.body,\n fontSize: px(colors.fontSize.sm),\n lineHeight: px(colors.fontSize.sm) * Number(colors.lineHeight.normal),\n opacity: 0.85,\n }}\n >\n {description}\n </RNText>\n ) : null}\n {children}\n </View>\n {onDismiss !== undefined ? (\n <Pressable\n onPress={onDismiss}\n role=\"button\"\n accessibilityRole=\"button\"\n accessibilityLabel=\"Dismiss\"\n aria-label=\"Dismiss\"\n style={{\n // 24×24 close button hit area — component-density literal — not from theme\n width: 24,\n height: 24,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: px(colors.radius.sm),\n marginTop: -2,\n }}\n >\n <defaultSemanticIcons.close size={16} color={palette.fg} />\n </Pressable>\n ) : null}\n </View>\n );\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { BlurBackdrop } from './chunk-KWRDJPP3.js';
2
2
  import { Slot } from './chunk-ZIBNLXIV.js';
3
- import { px } from './chunk-5A2QOOVN.js';
4
3
  import { cn } from './chunk-CHXHRJNZ.js';
4
+ import { px } from './chunk-5A2QOOVN.js';
5
5
  import { useThemeColors, useColorScheme } from './chunk-R5JMDDCB.js';
6
6
  import { __name } from './chunk-WCQVDF3K.js';
7
7
  import { createContext, useState, useCallback, useId, useRef, isValidElement, useEffect, useContext } from 'react';
@@ -481,5 +481,5 @@ var AlertDialog = Object.assign(AlertDialogRoot, {
481
481
  });
482
482
 
483
483
  export { AlertDialog };
484
- //# sourceMappingURL=chunk-SFNDR6DI.js.map
485
- //# sourceMappingURL=chunk-SFNDR6DI.js.map
484
+ //# sourceMappingURL=chunk-5BM6H2CD.js.map
485
+ //# sourceMappingURL=chunk-5BM6H2CD.js.map