@xaui/native 0.0.12 → 0.0.13
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/README.md +8 -1
- package/dist/accordion/index.cjs +7 -2
- package/dist/accordion/index.js +7 -2
- package/dist/alert/index.cjs +25 -188
- package/dist/alert/index.js +1 -2
- package/dist/autocomplete/index.cjs +106 -403
- package/dist/autocomplete/index.js +1 -3
- package/dist/button/index.cjs +126 -4
- package/dist/button/index.d.cts +63 -1
- package/dist/button/index.d.ts +63 -1
- package/dist/button/index.js +117 -3
- package/dist/checkbox/index.cjs +5 -1
- package/dist/checkbox/index.js +5 -1
- package/dist/{chunk-OFYJYQ2M.js → chunk-2T6FKPJW.js} +1 -3
- package/dist/{chunk-LM23DOX3.js → chunk-7OFTYKK4.js} +13 -33
- package/dist/{chunk-63LRW4QD.js → chunk-MKHBEJLO.js} +8 -1
- package/dist/{chunk-RL47NQAU.js → chunk-NMZUPH3R.js} +7 -12
- package/dist/datepicker/index.cjs +115 -836
- package/dist/datepicker/index.js +1 -3
- package/dist/index.cjs +362 -1170
- package/dist/index.js +4 -6
- package/dist/indicator/index.cjs +8 -1
- package/dist/indicator/index.js +1 -1
- package/dist/menu/index.cjs +371 -0
- package/dist/menu/index.d.cts +107 -0
- package/dist/menu/index.d.ts +107 -0
- package/dist/menu/index.js +304 -0
- package/dist/select/index.cjs +40 -16
- package/dist/select/index.js +40 -16
- package/dist/view/index.cjs +12 -7
- package/dist/view/index.js +12 -7
- package/package.json +7 -6
- package/dist/chunk-CKGZOJVV.js +0 -815
- package/dist/chunk-SIXET7TJ.js +0 -172
- package/dist/icon/index.cjs +0 -1054
- package/dist/icon/index.d.cts +0 -42
- package/dist/icon/index.d.ts +0 -42
- package/dist/icon/index.js +0 -21
package/dist/index.cjs
CHANGED
|
@@ -257,7 +257,14 @@ var CircularActivityIndicator = ({
|
|
|
257
257
|
borderWidth: strokeWidth,
|
|
258
258
|
borderRadius: size / 2
|
|
259
259
|
};
|
|
260
|
-
return /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { key: index, style: [styles.layer] }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: layerStyle }, /* @__PURE__ */ import_react6.default.createElement(
|
|
260
|
+
return /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { key: index, style: [styles.layer] }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: layerStyle }, /* @__PURE__ */ import_react6.default.createElement(
|
|
261
|
+
import_react_native5.Animated.View,
|
|
262
|
+
{
|
|
263
|
+
style: [containerStyle, offsetStyle],
|
|
264
|
+
collapsable: false
|
|
265
|
+
},
|
|
266
|
+
/* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: viewportStyle }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: containerStyle, collapsable: false }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: lineStyle })))
|
|
267
|
+
)));
|
|
261
268
|
})
|
|
262
269
|
));
|
|
263
270
|
};
|
|
@@ -1010,8 +1017,8 @@ var Badge = ({
|
|
|
1010
1017
|
};
|
|
1011
1018
|
|
|
1012
1019
|
// src/components/alert/alert.tsx
|
|
1013
|
-
var
|
|
1014
|
-
var
|
|
1020
|
+
var import_react19 = __toESM(require("react"), 1);
|
|
1021
|
+
var import_react_native16 = require("react-native");
|
|
1015
1022
|
var import_react_native_reanimated3 = __toESM(require("react-native-reanimated"), 1);
|
|
1016
1023
|
|
|
1017
1024
|
// src/components/alert/alert.style.ts
|
|
@@ -1197,171 +1204,8 @@ function DangerIcon({ color, size }) {
|
|
|
1197
1204
|
));
|
|
1198
1205
|
}
|
|
1199
1206
|
|
|
1200
|
-
// src/components/icon/icons/close.tsx
|
|
1201
|
-
var import_react19 = __toESM(require("react"), 1);
|
|
1202
|
-
var import_react_native16 = require("react-native");
|
|
1203
|
-
var import_react_native_svg2 = __toESM(require("react-native-svg"), 1);
|
|
1204
|
-
|
|
1205
|
-
// src/components/icon/icon.utils.ts
|
|
1206
|
-
var isThemeColor = (color) => {
|
|
1207
|
-
const themeColors = [
|
|
1208
|
-
"primary",
|
|
1209
|
-
"secondary",
|
|
1210
|
-
"tertiary",
|
|
1211
|
-
"danger",
|
|
1212
|
-
"warning",
|
|
1213
|
-
"success",
|
|
1214
|
-
"default"
|
|
1215
|
-
];
|
|
1216
|
-
return themeColors.includes(color);
|
|
1217
|
-
};
|
|
1218
|
-
|
|
1219
|
-
// src/components/icon/icons/close.tsx
|
|
1220
|
-
var AnimatedPath = import_react_native16.Animated.createAnimatedComponent(import_react_native_svg2.Path);
|
|
1221
|
-
var CloseIcon = ({
|
|
1222
|
-
variant = "baseline",
|
|
1223
|
-
size = 24,
|
|
1224
|
-
color = "default",
|
|
1225
|
-
isAnimated = false
|
|
1226
|
-
}) => {
|
|
1227
|
-
const theme = useXUITheme();
|
|
1228
|
-
const scaleAnim = (0, import_react19.useRef)(new import_react_native16.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
1229
|
-
const opacityAnim = (0, import_react19.useRef)(new import_react_native16.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
1230
|
-
const resolvedColor = (0, import_react19.useMemo)(() => {
|
|
1231
|
-
if (typeof color === "string" && isThemeColor(color)) {
|
|
1232
|
-
return theme.colors[color].main;
|
|
1233
|
-
}
|
|
1234
|
-
return color;
|
|
1235
|
-
}, [color, theme]);
|
|
1236
|
-
(0, import_react19.useEffect)(() => {
|
|
1237
|
-
if (isAnimated) {
|
|
1238
|
-
import_react_native16.Animated.parallel([
|
|
1239
|
-
import_react_native16.Animated.spring(scaleAnim, {
|
|
1240
|
-
toValue: 1,
|
|
1241
|
-
useNativeDriver: true,
|
|
1242
|
-
tension: 50,
|
|
1243
|
-
friction: 7
|
|
1244
|
-
}),
|
|
1245
|
-
import_react_native16.Animated.timing(opacityAnim, {
|
|
1246
|
-
toValue: 1,
|
|
1247
|
-
duration: 200,
|
|
1248
|
-
useNativeDriver: true
|
|
1249
|
-
})
|
|
1250
|
-
]).start();
|
|
1251
|
-
}
|
|
1252
|
-
}, [isAnimated, scaleAnim, opacityAnim]);
|
|
1253
|
-
const animatedProps = isAnimated ? {
|
|
1254
|
-
transform: [{ scale: scaleAnim }],
|
|
1255
|
-
opacity: opacityAnim
|
|
1256
|
-
} : void 0;
|
|
1257
|
-
const renderBaseline = () => /* @__PURE__ */ import_react19.default.createElement(
|
|
1258
|
-
AnimatedPath,
|
|
1259
|
-
{
|
|
1260
|
-
fill: resolvedColor,
|
|
1261
|
-
d: "m289.94 256l95-95A24 24 0 0 0 351 127l-95 95l-95-95a24 24 0 0 0-34 34l95 95l-95 95a24 24 0 1 0 34 34l95-95l95 95a24 24 0 0 0 34-34Z",
|
|
1262
|
-
...animatedProps
|
|
1263
|
-
}
|
|
1264
|
-
);
|
|
1265
|
-
const renderFilled = () => /* @__PURE__ */ import_react19.default.createElement(
|
|
1266
|
-
AnimatedPath,
|
|
1267
|
-
{
|
|
1268
|
-
fill: resolvedColor,
|
|
1269
|
-
d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm75.31 260.69a16 16 0 1 1-22.62 22.62L256 278.63l-52.69 52.68a16 16 0 0 1-22.62-22.62L233.37 256l-52.68-52.69a16 16 0 0 1 22.62-22.62L256 233.37l52.69-52.68a16 16 0 0 1 22.62 22.62L278.63 256z",
|
|
1270
|
-
...animatedProps
|
|
1271
|
-
}
|
|
1272
|
-
);
|
|
1273
|
-
const renderDuotone = () => /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
1274
|
-
import_react_native_svg2.Path,
|
|
1275
|
-
{
|
|
1276
|
-
fill: resolvedColor,
|
|
1277
|
-
opacity: 0.3,
|
|
1278
|
-
d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48z"
|
|
1279
|
-
}
|
|
1280
|
-
), /* @__PURE__ */ import_react19.default.createElement(
|
|
1281
|
-
AnimatedPath,
|
|
1282
|
-
{
|
|
1283
|
-
fill: resolvedColor,
|
|
1284
|
-
d: "m289.94 256l95-95A24 24 0 0 0 351 127l-95 95l-95-95a24 24 0 0 0-34 34l95 95l-95 95a24 24 0 1 0 34 34l95-95l95 95a24 24 0 0 0 34-34Z",
|
|
1285
|
-
...animatedProps
|
|
1286
|
-
}
|
|
1287
|
-
));
|
|
1288
|
-
const renderRoundOutlined = () => /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
1289
|
-
import_react_native_svg2.Circle,
|
|
1290
|
-
{
|
|
1291
|
-
cx: "256",
|
|
1292
|
-
cy: "256",
|
|
1293
|
-
r: "192",
|
|
1294
|
-
fill: "none",
|
|
1295
|
-
stroke: resolvedColor,
|
|
1296
|
-
strokeWidth: 32
|
|
1297
|
-
}
|
|
1298
|
-
), /* @__PURE__ */ import_react19.default.createElement(
|
|
1299
|
-
AnimatedPath,
|
|
1300
|
-
{
|
|
1301
|
-
fill: resolvedColor,
|
|
1302
|
-
d: "m289.94 256l95-95A24 24 0 0 0 351 127l-95 95l-95-95a24 24 0 0 0-34 34l95 95l-95 95a24 24 0 1 0 34 34l95-95l95 95a24 24 0 0 0 34-34Z",
|
|
1303
|
-
...animatedProps
|
|
1304
|
-
}
|
|
1305
|
-
));
|
|
1306
|
-
const renderSquareOutlined = () => /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
1307
|
-
import_react_native_svg2.Rect,
|
|
1308
|
-
{
|
|
1309
|
-
x: "64",
|
|
1310
|
-
y: "64",
|
|
1311
|
-
width: "384",
|
|
1312
|
-
height: "384",
|
|
1313
|
-
rx: "48",
|
|
1314
|
-
fill: "none",
|
|
1315
|
-
stroke: resolvedColor,
|
|
1316
|
-
strokeWidth: 32
|
|
1317
|
-
}
|
|
1318
|
-
), /* @__PURE__ */ import_react19.default.createElement(
|
|
1319
|
-
AnimatedPath,
|
|
1320
|
-
{
|
|
1321
|
-
fill: resolvedColor,
|
|
1322
|
-
d: "m289.94 256l95-95A24 24 0 0 0 351 127l-95 95l-95-95a24 24 0 0 0-34 34l95 95l-95 95a24 24 0 1 0 34 34l95-95l95 95a24 24 0 0 0 34-34Z",
|
|
1323
|
-
...animatedProps
|
|
1324
|
-
}
|
|
1325
|
-
));
|
|
1326
|
-
const renderRoundFilled = () => /* @__PURE__ */ import_react19.default.createElement(
|
|
1327
|
-
AnimatedPath,
|
|
1328
|
-
{
|
|
1329
|
-
fill: resolvedColor,
|
|
1330
|
-
d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm75.31 260.69a16 16 0 1 1-22.62 22.62L256 278.63l-52.69 52.68a16 16 0 0 1-22.62-22.62L233.37 256l-52.68-52.69a16 16 0 0 1 22.62-22.62L256 233.37l52.69-52.68a16 16 0 0 1 22.62 22.62L278.63 256z",
|
|
1331
|
-
...animatedProps
|
|
1332
|
-
}
|
|
1333
|
-
);
|
|
1334
|
-
const renderSquareFilled = () => /* @__PURE__ */ import_react19.default.createElement(
|
|
1335
|
-
AnimatedPath,
|
|
1336
|
-
{
|
|
1337
|
-
fill: resolvedColor,
|
|
1338
|
-
d: "M400 64H112a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zm-59.31 244.69a16 16 0 1 1-22.62 22.62L256 278.63l-62.07 52.68a16 16 0 0 1-22.62-22.62L223.37 256l-52.06-52.69a16 16 0 0 1 22.62-22.62L256 233.37l62.07-52.68a16 16 0 0 1 22.62 22.62L288.63 256z",
|
|
1339
|
-
...animatedProps
|
|
1340
|
-
}
|
|
1341
|
-
);
|
|
1342
|
-
const renderVariant = () => {
|
|
1343
|
-
switch (variant) {
|
|
1344
|
-
case "filled":
|
|
1345
|
-
return renderFilled();
|
|
1346
|
-
case "duotone":
|
|
1347
|
-
return renderDuotone();
|
|
1348
|
-
case "round-outlined":
|
|
1349
|
-
return renderRoundOutlined();
|
|
1350
|
-
case "square-outlined":
|
|
1351
|
-
return renderSquareOutlined();
|
|
1352
|
-
case "round-filled":
|
|
1353
|
-
return renderRoundFilled();
|
|
1354
|
-
case "square-filled":
|
|
1355
|
-
return renderSquareFilled();
|
|
1356
|
-
case "baseline":
|
|
1357
|
-
default:
|
|
1358
|
-
return renderBaseline();
|
|
1359
|
-
}
|
|
1360
|
-
};
|
|
1361
|
-
return /* @__PURE__ */ import_react19.default.createElement(import_react_native_svg2.default, { width: size, height: size, viewBox: "0 0 512 512" }, renderVariant());
|
|
1362
|
-
};
|
|
1363
|
-
|
|
1364
1207
|
// src/components/alert/alert.tsx
|
|
1208
|
+
var import_icons = require("@xaui/icons");
|
|
1365
1209
|
var iconMap = {
|
|
1366
1210
|
default: InfoIcon,
|
|
1367
1211
|
primary: InfoIcon,
|
|
@@ -1387,8 +1231,8 @@ var Alert = ({
|
|
|
1387
1231
|
onClose,
|
|
1388
1232
|
onVisibleChange
|
|
1389
1233
|
}) => {
|
|
1390
|
-
const [internalVisible, setInternalVisible] = (0,
|
|
1391
|
-
const [shouldRender, setShouldRender] = (0,
|
|
1234
|
+
const [internalVisible, setInternalVisible] = (0, import_react19.useState)(isVisible ?? true);
|
|
1235
|
+
const [shouldRender, setShouldRender] = (0, import_react19.useState)(isVisible ?? true);
|
|
1392
1236
|
const isControlled = typeof isVisible === "boolean";
|
|
1393
1237
|
const visible = isControlled ? isVisible : internalVisible;
|
|
1394
1238
|
const opacity = (0, import_react_native_reanimated3.useSharedValue)(1);
|
|
@@ -1397,7 +1241,7 @@ var Alert = ({
|
|
|
1397
1241
|
const containerStyles = useAlertContainerStyles(themeColor, variant);
|
|
1398
1242
|
const iconWrapperStyles = useAlertIconWrapperStyles(themeColor, variant);
|
|
1399
1243
|
const { titleStyles, descriptionStyles, iconColor, closeButtonColor } = useAlertTextStyles(themeColor, variant);
|
|
1400
|
-
const finishClosing = (0,
|
|
1244
|
+
const finishClosing = (0, import_react19.useCallback)(() => {
|
|
1401
1245
|
setShouldRender(false);
|
|
1402
1246
|
if (!isControlled) {
|
|
1403
1247
|
setInternalVisible(false);
|
|
@@ -1405,7 +1249,7 @@ var Alert = ({
|
|
|
1405
1249
|
onVisibleChange?.(false);
|
|
1406
1250
|
onClose?.();
|
|
1407
1251
|
}, [isControlled, onClose, onVisibleChange]);
|
|
1408
|
-
const handleClose = (0,
|
|
1252
|
+
const handleClose = (0, import_react19.useCallback)(() => {
|
|
1409
1253
|
if (!visible) return;
|
|
1410
1254
|
opacity.value = (0, import_react_native_reanimated3.withTiming)(0, { duration: 250 });
|
|
1411
1255
|
scale.value = (0, import_react_native_reanimated3.withTiming)(0.95, { duration: 250 }, (finished) => {
|
|
@@ -1414,7 +1258,7 @@ var Alert = ({
|
|
|
1414
1258
|
}
|
|
1415
1259
|
});
|
|
1416
1260
|
}, [finishClosing, opacity, scale, visible]);
|
|
1417
|
-
(0,
|
|
1261
|
+
(0, import_react19.useEffect)(() => {
|
|
1418
1262
|
if (visible && !shouldRender) {
|
|
1419
1263
|
setShouldRender(true);
|
|
1420
1264
|
opacity.value = 0;
|
|
@@ -1435,19 +1279,19 @@ var Alert = ({
|
|
|
1435
1279
|
const shouldShowClose = Boolean(closeButton || isClosable || onClose);
|
|
1436
1280
|
const renderIcon = () => {
|
|
1437
1281
|
if (hideIcon) return null;
|
|
1438
|
-
if (icon && (0,
|
|
1439
|
-
return (0,
|
|
1282
|
+
if (icon && (0, import_react19.isValidElement)(icon)) {
|
|
1283
|
+
return (0, import_react19.cloneElement)(icon, { color: iconColor, size: 22 });
|
|
1440
1284
|
}
|
|
1441
1285
|
if (icon) {
|
|
1442
|
-
return /* @__PURE__ */
|
|
1286
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_react_native16.Text, { style: [styles5.iconText, { color: iconColor }] }, icon);
|
|
1443
1287
|
}
|
|
1444
|
-
return /* @__PURE__ */
|
|
1288
|
+
return /* @__PURE__ */ import_react19.default.createElement(IconComponent, { color: iconColor, size: 22 });
|
|
1445
1289
|
};
|
|
1446
1290
|
const renderContentText = (content) => {
|
|
1447
1291
|
if (content === null || content === void 0) return null;
|
|
1448
1292
|
if (typeof content === "string" || typeof content === "number") {
|
|
1449
|
-
return /* @__PURE__ */
|
|
1450
|
-
|
|
1293
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
1294
|
+
import_react_native16.Text,
|
|
1451
1295
|
{
|
|
1452
1296
|
style: [
|
|
1453
1297
|
styles5.description,
|
|
@@ -1460,20 +1304,20 @@ var Alert = ({
|
|
|
1460
1304
|
}
|
|
1461
1305
|
return content;
|
|
1462
1306
|
};
|
|
1463
|
-
const titleNode = (0,
|
|
1307
|
+
const titleNode = (0, import_react19.useMemo)(() => {
|
|
1464
1308
|
if (title === null || title === void 0) return null;
|
|
1465
1309
|
if (typeof title === "string" || typeof title === "number") {
|
|
1466
|
-
return /* @__PURE__ */
|
|
1310
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_react_native16.Text, { style: [styles5.title, titleStyles, customAppearance?.title] }, title);
|
|
1467
1311
|
}
|
|
1468
1312
|
return title;
|
|
1469
1313
|
}, [title, customAppearance?.title, titleStyles]);
|
|
1470
1314
|
const descriptionNode = renderContentText(description);
|
|
1471
1315
|
const childrenNode = renderContentText(children);
|
|
1472
|
-
const closeButtonNode = (0,
|
|
1316
|
+
const closeButtonNode = (0, import_react19.useMemo)(() => {
|
|
1473
1317
|
if (!closeButton) return null;
|
|
1474
|
-
if (!(0,
|
|
1318
|
+
if (!(0, import_react19.isValidElement)(closeButton)) return closeButton;
|
|
1475
1319
|
const existingOnPress = closeButton.props.onPress;
|
|
1476
|
-
return (0,
|
|
1320
|
+
return (0, import_react19.cloneElement)(closeButton, {
|
|
1477
1321
|
onPress: (event) => {
|
|
1478
1322
|
existingOnPress?.(event);
|
|
1479
1323
|
handleClose();
|
|
@@ -1481,7 +1325,7 @@ var Alert = ({
|
|
|
1481
1325
|
});
|
|
1482
1326
|
}, [closeButton, handleClose]);
|
|
1483
1327
|
if (!shouldRender) return null;
|
|
1484
|
-
return /* @__PURE__ */
|
|
1328
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
1485
1329
|
import_react_native_reanimated3.default.View,
|
|
1486
1330
|
{
|
|
1487
1331
|
accessibilityRole: "alert",
|
|
@@ -1493,46 +1337,46 @@ var Alert = ({
|
|
|
1493
1337
|
animatedStyle
|
|
1494
1338
|
]
|
|
1495
1339
|
},
|
|
1496
|
-
!hideIcon && /* @__PURE__ */
|
|
1497
|
-
/* @__PURE__ */
|
|
1498
|
-
shouldShowClose && /* @__PURE__ */
|
|
1499
|
-
|
|
1340
|
+
!hideIcon && /* @__PURE__ */ import_react19.default.createElement(import_react_native16.View, { style: [styles5.iconWrapper, iconWrapperStyles] }, renderIcon()),
|
|
1341
|
+
/* @__PURE__ */ import_react19.default.createElement(import_react_native16.View, { style: styles5.mainWrapper }, titleNode, descriptionNode, childrenNode && /* @__PURE__ */ import_react19.default.createElement(import_react_native16.View, { style: styles5.extraContent }, childrenNode)),
|
|
1342
|
+
shouldShowClose && /* @__PURE__ */ import_react19.default.createElement(import_react_native16.View, null, closeButtonNode ?? /* @__PURE__ */ import_react19.default.createElement(
|
|
1343
|
+
import_react_native16.Pressable,
|
|
1500
1344
|
{
|
|
1501
1345
|
accessibilityRole: "button",
|
|
1502
1346
|
accessibilityLabel: "Close",
|
|
1503
1347
|
onPress: handleClose,
|
|
1504
1348
|
style: styles5.closeButton
|
|
1505
1349
|
},
|
|
1506
|
-
/* @__PURE__ */
|
|
1350
|
+
/* @__PURE__ */ import_react19.default.createElement(import_icons.CloseIcon, { size: 20, color: closeButtonColor })
|
|
1507
1351
|
))
|
|
1508
1352
|
);
|
|
1509
1353
|
};
|
|
1510
1354
|
|
|
1511
1355
|
// src/components/autocomplete/autocomplete.tsx
|
|
1512
|
-
var
|
|
1513
|
-
var
|
|
1356
|
+
var import_react28 = __toESM(require("react"), 1);
|
|
1357
|
+
var import_react_native23 = require("react-native");
|
|
1514
1358
|
|
|
1515
1359
|
// src/components/autocomplete/autocomplete-context.ts
|
|
1516
|
-
var
|
|
1517
|
-
var AutocompleteContext = (0,
|
|
1360
|
+
var import_react20 = require("react");
|
|
1361
|
+
var AutocompleteContext = (0, import_react20.createContext)({
|
|
1518
1362
|
size: "md",
|
|
1519
1363
|
themeColor: "default",
|
|
1520
1364
|
isDisabled: false
|
|
1521
1365
|
});
|
|
1522
1366
|
|
|
1523
1367
|
// src/components/autocomplete/autocomplete.hook.ts
|
|
1524
|
-
var
|
|
1525
|
-
var
|
|
1368
|
+
var import_react21 = require("react");
|
|
1369
|
+
var import_core14 = require("@xaui/core");
|
|
1526
1370
|
var import_palette2 = require("@xaui/core/palette");
|
|
1527
1371
|
var useAutocompleteColorScheme = (themeColor) => {
|
|
1528
1372
|
const theme = useXUITheme();
|
|
1529
|
-
const safeThemeColor = (0,
|
|
1373
|
+
const safeThemeColor = (0, import_core14.getSafeThemeColor)(themeColor);
|
|
1530
1374
|
const colorScheme = theme.colors[safeThemeColor];
|
|
1531
1375
|
return { theme, colorScheme };
|
|
1532
1376
|
};
|
|
1533
1377
|
var useAutocompleteSizeStyles = (size) => {
|
|
1534
1378
|
const theme = useXUITheme();
|
|
1535
|
-
return (0,
|
|
1379
|
+
return (0, import_react21.useMemo)(() => {
|
|
1536
1380
|
const sizes = {
|
|
1537
1381
|
xs: {
|
|
1538
1382
|
minHeight: 34,
|
|
@@ -1568,7 +1412,7 @@ var useAutocompleteSizeStyles = (size) => {
|
|
|
1568
1412
|
};
|
|
1569
1413
|
var useAutocompleteRadiusStyles = (radius) => {
|
|
1570
1414
|
const theme = useXUITheme();
|
|
1571
|
-
const radiusStyles = (0,
|
|
1415
|
+
const radiusStyles = (0, import_react21.useMemo)(() => {
|
|
1572
1416
|
const radii = {
|
|
1573
1417
|
none: theme.borderRadius.none,
|
|
1574
1418
|
sm: theme.borderRadius.sm,
|
|
@@ -1578,7 +1422,7 @@ var useAutocompleteRadiusStyles = (radius) => {
|
|
|
1578
1422
|
};
|
|
1579
1423
|
return { borderRadius: radii[radius] };
|
|
1580
1424
|
}, [radius, theme]);
|
|
1581
|
-
const listboxRadius = (0,
|
|
1425
|
+
const listboxRadius = (0, import_react21.useMemo)(() => {
|
|
1582
1426
|
const radii = {
|
|
1583
1427
|
none: theme.borderRadius.none,
|
|
1584
1428
|
sm: theme.borderRadius.sm,
|
|
@@ -1592,7 +1436,7 @@ var useAutocompleteRadiusStyles = (radius) => {
|
|
|
1592
1436
|
};
|
|
1593
1437
|
var useAutocompleteVariantStyles = (themeColor, variant, isInvalid) => {
|
|
1594
1438
|
const { theme, colorScheme } = useAutocompleteColorScheme(themeColor);
|
|
1595
|
-
return (0,
|
|
1439
|
+
return (0, import_react21.useMemo)(() => {
|
|
1596
1440
|
let borderColor = isInvalid ? theme.colors.danger.main : colorScheme.main;
|
|
1597
1441
|
if ((variant === "outlined" || variant === "faded") && themeColor === "default") {
|
|
1598
1442
|
borderColor = import_palette2.colors.gray[300];
|
|
@@ -1627,7 +1471,7 @@ var useAutocompleteVariantStyles = (themeColor, variant, isInvalid) => {
|
|
|
1627
1471
|
};
|
|
1628
1472
|
var useAutocompleteLabelStyle = (themeColor, isInvalid, labelSize) => {
|
|
1629
1473
|
const { theme, colorScheme } = useAutocompleteColorScheme(themeColor);
|
|
1630
|
-
return (0,
|
|
1474
|
+
return (0, import_react21.useMemo)(() => {
|
|
1631
1475
|
let baseColor = theme.colors.foreground;
|
|
1632
1476
|
if (isInvalid) {
|
|
1633
1477
|
baseColor = theme.colors.danger.main;
|
|
@@ -1642,7 +1486,7 @@ var useAutocompleteLabelStyle = (themeColor, isInvalid, labelSize) => {
|
|
|
1642
1486
|
};
|
|
1643
1487
|
var useAutocompleteHelperColor = (isInvalid) => {
|
|
1644
1488
|
const theme = useXUITheme();
|
|
1645
|
-
return (0,
|
|
1489
|
+
return (0, import_react21.useMemo)(() => {
|
|
1646
1490
|
if (isInvalid) {
|
|
1647
1491
|
return theme.colors.danger.main;
|
|
1648
1492
|
}
|
|
@@ -1651,8 +1495,8 @@ var useAutocompleteHelperColor = (isInvalid) => {
|
|
|
1651
1495
|
};
|
|
1652
1496
|
|
|
1653
1497
|
// src/components/autocomplete/autocomplete.style.ts
|
|
1654
|
-
var
|
|
1655
|
-
var styles6 =
|
|
1498
|
+
var import_react_native17 = require("react-native");
|
|
1499
|
+
var styles6 = import_react_native17.StyleSheet.create({
|
|
1656
1500
|
container: {
|
|
1657
1501
|
gap: 6,
|
|
1658
1502
|
position: "relative"
|
|
@@ -1739,16 +1583,16 @@ var styles6 = import_react_native18.StyleSheet.create({
|
|
|
1739
1583
|
});
|
|
1740
1584
|
|
|
1741
1585
|
// src/components/autocomplete/autocomplete.state.hook.ts
|
|
1742
|
-
var
|
|
1586
|
+
var import_react22 = require("react");
|
|
1743
1587
|
var useAutocompleteOpenState = ({
|
|
1744
1588
|
isOpened,
|
|
1745
1589
|
isDisabled,
|
|
1746
1590
|
onOpenChange,
|
|
1747
1591
|
onClose
|
|
1748
1592
|
}) => {
|
|
1749
|
-
const [internalIsOpen, setInternalIsOpen] = (0,
|
|
1593
|
+
const [internalIsOpen, setInternalIsOpen] = (0, import_react22.useState)(false);
|
|
1750
1594
|
const isOpen = isOpened !== void 0 ? isOpened : internalIsOpen;
|
|
1751
|
-
const setOpen = (0,
|
|
1595
|
+
const setOpen = (0, import_react22.useCallback)(
|
|
1752
1596
|
(open) => {
|
|
1753
1597
|
if (isDisabled) {
|
|
1754
1598
|
return;
|
|
@@ -1771,9 +1615,11 @@ var useAutocompleteInputState = ({
|
|
|
1771
1615
|
selectedKey,
|
|
1772
1616
|
onInputChange
|
|
1773
1617
|
}) => {
|
|
1774
|
-
const [internalInputValue, setInternalInputValue] = (0,
|
|
1618
|
+
const [internalInputValue, setInternalInputValue] = (0, import_react22.useState)(
|
|
1619
|
+
defaultInputValue ?? ""
|
|
1620
|
+
);
|
|
1775
1621
|
const currentInputValue = inputValue !== void 0 ? inputValue : internalInputValue;
|
|
1776
|
-
const updateInputValue = (0,
|
|
1622
|
+
const updateInputValue = (0, import_react22.useCallback)(
|
|
1777
1623
|
(value) => {
|
|
1778
1624
|
if (inputValue === void 0) {
|
|
1779
1625
|
setInternalInputValue(value);
|
|
@@ -1782,7 +1628,7 @@ var useAutocompleteInputState = ({
|
|
|
1782
1628
|
},
|
|
1783
1629
|
[inputValue, onInputChange]
|
|
1784
1630
|
);
|
|
1785
|
-
(0,
|
|
1631
|
+
(0, import_react22.useEffect)(() => {
|
|
1786
1632
|
if (selectedKey === null && inputValue === void 0) {
|
|
1787
1633
|
setInternalInputValue("");
|
|
1788
1634
|
}
|
|
@@ -1792,8 +1638,8 @@ var useAutocompleteInputState = ({
|
|
|
1792
1638
|
var useAutocompleteSelection = ({
|
|
1793
1639
|
onSelectionChange
|
|
1794
1640
|
}) => {
|
|
1795
|
-
const [currentSelectedKey, setCurrentSelectedKey] = (0,
|
|
1796
|
-
const updateSelection = (0,
|
|
1641
|
+
const [currentSelectedKey, setCurrentSelectedKey] = (0, import_react22.useState)(null);
|
|
1642
|
+
const updateSelection = (0, import_react22.useCallback)(
|
|
1797
1643
|
(key) => {
|
|
1798
1644
|
setCurrentSelectedKey(key);
|
|
1799
1645
|
onSelectionChange?.(key);
|
|
@@ -1817,15 +1663,15 @@ var defaultFilterFunction = (textValue, inputValue) => {
|
|
|
1817
1663
|
};
|
|
1818
1664
|
|
|
1819
1665
|
// src/components/dialogs/autocomplete-dialog/autocomplete-dialog.tsx
|
|
1820
|
-
var
|
|
1821
|
-
var
|
|
1666
|
+
var import_react26 = __toESM(require("react"), 1);
|
|
1667
|
+
var import_react_native21 = require("react-native");
|
|
1822
1668
|
|
|
1823
1669
|
// src/components/select/checkmark-icon.tsx
|
|
1824
|
-
var
|
|
1825
|
-
var
|
|
1670
|
+
var import_react23 = __toESM(require("react"), 1);
|
|
1671
|
+
var import_react_native_svg2 = __toESM(require("react-native-svg"), 1);
|
|
1826
1672
|
function CheckmarkIcon({ color, size }) {
|
|
1827
|
-
return /* @__PURE__ */
|
|
1828
|
-
|
|
1673
|
+
return /* @__PURE__ */ import_react23.default.createElement(import_react_native_svg2.default, { width: size, height: size, viewBox: "0 0 17 18", fill: "none" }, /* @__PURE__ */ import_react23.default.createElement(
|
|
1674
|
+
import_react_native_svg2.Polyline,
|
|
1829
1675
|
{
|
|
1830
1676
|
points: "1 9 7 14 15 4",
|
|
1831
1677
|
stroke: color,
|
|
@@ -1837,656 +1683,15 @@ function CheckmarkIcon({ color, size }) {
|
|
|
1837
1683
|
}
|
|
1838
1684
|
|
|
1839
1685
|
// src/components/dialogs/autocomplete-dialog/autocomplete-dialog-header.tsx
|
|
1840
|
-
var
|
|
1841
|
-
var import_react_native26 = require("react-native");
|
|
1842
|
-
|
|
1843
|
-
// src/components/icon/icons/arrow-back.tsx
|
|
1844
|
-
var import_react25 = __toESM(require("react"), 1);
|
|
1686
|
+
var import_react24 = __toESM(require("react"), 1);
|
|
1845
1687
|
var import_react_native19 = require("react-native");
|
|
1846
|
-
var
|
|
1847
|
-
var AnimatedPath2 = import_react_native19.Animated.createAnimatedComponent(import_react_native_svg4.Path);
|
|
1848
|
-
var ArrowBackIcon = ({
|
|
1849
|
-
variant = "baseline",
|
|
1850
|
-
size = 24,
|
|
1851
|
-
color = "default",
|
|
1852
|
-
isAnimated = false
|
|
1853
|
-
}) => {
|
|
1854
|
-
const theme = useXUITheme();
|
|
1855
|
-
const scaleAnim = (0, import_react25.useRef)(new import_react_native19.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
1856
|
-
const opacityAnim = (0, import_react25.useRef)(new import_react_native19.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
1857
|
-
const resolvedColor = (0, import_react25.useMemo)(() => {
|
|
1858
|
-
if (typeof color === "string" && isThemeColor(color)) {
|
|
1859
|
-
return theme.colors[color].main;
|
|
1860
|
-
}
|
|
1861
|
-
return color;
|
|
1862
|
-
}, [color, theme]);
|
|
1863
|
-
(0, import_react25.useEffect)(() => {
|
|
1864
|
-
if (isAnimated) {
|
|
1865
|
-
import_react_native19.Animated.parallel([
|
|
1866
|
-
import_react_native19.Animated.spring(scaleAnim, {
|
|
1867
|
-
toValue: 1,
|
|
1868
|
-
useNativeDriver: true,
|
|
1869
|
-
tension: 50,
|
|
1870
|
-
friction: 7
|
|
1871
|
-
}),
|
|
1872
|
-
import_react_native19.Animated.timing(opacityAnim, {
|
|
1873
|
-
toValue: 1,
|
|
1874
|
-
duration: 200,
|
|
1875
|
-
useNativeDriver: true
|
|
1876
|
-
})
|
|
1877
|
-
]).start();
|
|
1878
|
-
}
|
|
1879
|
-
}, [isAnimated, scaleAnim, opacityAnim]);
|
|
1880
|
-
const animatedProps = isAnimated ? {
|
|
1881
|
-
transform: [{ scale: scaleAnim }],
|
|
1882
|
-
opacity: opacityAnim
|
|
1883
|
-
} : void 0;
|
|
1884
|
-
const renderArrow = () => /* @__PURE__ */ import_react25.default.createElement(
|
|
1885
|
-
AnimatedPath2,
|
|
1886
|
-
{
|
|
1887
|
-
fill: "none",
|
|
1888
|
-
stroke: resolvedColor,
|
|
1889
|
-
strokeLinecap: "round",
|
|
1890
|
-
strokeLinejoin: "round",
|
|
1891
|
-
strokeWidth: 48,
|
|
1892
|
-
d: "M244 400L100 256l144-144M120 256h292",
|
|
1893
|
-
...animatedProps
|
|
1894
|
-
}
|
|
1895
|
-
);
|
|
1896
|
-
const renderDuotone = () => /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(
|
|
1897
|
-
import_react_native_svg4.Path,
|
|
1898
|
-
{
|
|
1899
|
-
fill: resolvedColor,
|
|
1900
|
-
opacity: 0.3,
|
|
1901
|
-
d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48z"
|
|
1902
|
-
}
|
|
1903
|
-
), renderArrow());
|
|
1904
|
-
const renderRoundOutlined = () => /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(
|
|
1905
|
-
import_react_native_svg4.Circle,
|
|
1906
|
-
{
|
|
1907
|
-
cx: "256",
|
|
1908
|
-
cy: "256",
|
|
1909
|
-
r: "192",
|
|
1910
|
-
fill: "none",
|
|
1911
|
-
stroke: resolvedColor,
|
|
1912
|
-
strokeWidth: 32
|
|
1913
|
-
}
|
|
1914
|
-
), renderArrow());
|
|
1915
|
-
const renderSquareOutlined = () => /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(
|
|
1916
|
-
import_react_native_svg4.Rect,
|
|
1917
|
-
{
|
|
1918
|
-
x: "64",
|
|
1919
|
-
y: "64",
|
|
1920
|
-
width: "384",
|
|
1921
|
-
height: "384",
|
|
1922
|
-
rx: "48",
|
|
1923
|
-
fill: "none",
|
|
1924
|
-
stroke: resolvedColor,
|
|
1925
|
-
strokeWidth: 32
|
|
1926
|
-
}
|
|
1927
|
-
), renderArrow());
|
|
1928
|
-
const renderVariant = () => {
|
|
1929
|
-
switch (variant) {
|
|
1930
|
-
case "duotone":
|
|
1931
|
-
return renderDuotone();
|
|
1932
|
-
case "round-outlined":
|
|
1933
|
-
return renderRoundOutlined();
|
|
1934
|
-
case "square-outlined":
|
|
1935
|
-
return renderSquareOutlined();
|
|
1936
|
-
case "filled":
|
|
1937
|
-
case "round-filled":
|
|
1938
|
-
case "square-filled":
|
|
1939
|
-
case "baseline":
|
|
1940
|
-
default:
|
|
1941
|
-
return renderArrow();
|
|
1942
|
-
}
|
|
1943
|
-
};
|
|
1944
|
-
return /* @__PURE__ */ import_react25.default.createElement(import_react_native_svg4.default, { width: size, height: size, viewBox: "0 0 512 512" }, renderVariant());
|
|
1945
|
-
};
|
|
1946
|
-
|
|
1947
|
-
// src/components/icon/icons/calendar.tsx
|
|
1948
|
-
var import_react26 = __toESM(require("react"), 1);
|
|
1949
|
-
var import_react_native20 = require("react-native");
|
|
1950
|
-
var import_react_native_svg5 = __toESM(require("react-native-svg"), 1);
|
|
1951
|
-
var AnimatedPath3 = import_react_native20.Animated.createAnimatedComponent(import_react_native_svg5.Path);
|
|
1952
|
-
var CalendarIcon = ({
|
|
1953
|
-
variant = "baseline",
|
|
1954
|
-
size = 24,
|
|
1955
|
-
color = "default",
|
|
1956
|
-
isAnimated = false
|
|
1957
|
-
}) => {
|
|
1958
|
-
const theme = useXUITheme();
|
|
1959
|
-
const scaleAnim = (0, import_react26.useRef)(new import_react_native20.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
1960
|
-
const opacityAnim = (0, import_react26.useRef)(new import_react_native20.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
1961
|
-
const resolvedColor = (0, import_react26.useMemo)(() => {
|
|
1962
|
-
if (typeof color === "string" && isThemeColor(color)) {
|
|
1963
|
-
return theme.colors[color].main;
|
|
1964
|
-
}
|
|
1965
|
-
return color;
|
|
1966
|
-
}, [color, theme]);
|
|
1967
|
-
(0, import_react26.useEffect)(() => {
|
|
1968
|
-
if (isAnimated) {
|
|
1969
|
-
import_react_native20.Animated.parallel([
|
|
1970
|
-
import_react_native20.Animated.spring(scaleAnim, {
|
|
1971
|
-
toValue: 1,
|
|
1972
|
-
useNativeDriver: true,
|
|
1973
|
-
tension: 50,
|
|
1974
|
-
friction: 7
|
|
1975
|
-
}),
|
|
1976
|
-
import_react_native20.Animated.timing(opacityAnim, {
|
|
1977
|
-
toValue: 1,
|
|
1978
|
-
duration: 200,
|
|
1979
|
-
useNativeDriver: true
|
|
1980
|
-
})
|
|
1981
|
-
]).start();
|
|
1982
|
-
}
|
|
1983
|
-
}, [isAnimated, scaleAnim, opacityAnim]);
|
|
1984
|
-
const animatedProps = isAnimated ? {
|
|
1985
|
-
transform: [{ scale: scaleAnim }],
|
|
1986
|
-
opacity: opacityAnim
|
|
1987
|
-
} : void 0;
|
|
1988
|
-
const renderBaseline = () => /* @__PURE__ */ import_react26.default.createElement(
|
|
1989
|
-
AnimatedPath3,
|
|
1990
|
-
{
|
|
1991
|
-
fill: "none",
|
|
1992
|
-
stroke: resolvedColor,
|
|
1993
|
-
strokeLinecap: "round",
|
|
1994
|
-
strokeLinejoin: "round",
|
|
1995
|
-
strokeWidth: 32,
|
|
1996
|
-
d: "M48 112a48 48 0 0148-48h320a48 48 0 0148 48v320a48 48 0 01-48 48H96a48 48 0 01-48-48zm0 80h416M176 64v48M336 64v48",
|
|
1997
|
-
...animatedProps
|
|
1998
|
-
}
|
|
1999
|
-
);
|
|
2000
|
-
const renderFilled = () => /* @__PURE__ */ import_react26.default.createElement(
|
|
2001
|
-
AnimatedPath3,
|
|
2002
|
-
{
|
|
2003
|
-
fill: resolvedColor,
|
|
2004
|
-
d: "M416 64h-56V40a24 24 0 00-48 0v24H200V40a24 24 0 00-48 0v24H96a48 48 0 00-48 48v320a48 48 0 0048 48h320a48 48 0 0048-48V112a48 48 0 00-48-48zm0 368H96V208h320z",
|
|
2005
|
-
...animatedProps
|
|
2006
|
-
}
|
|
2007
|
-
);
|
|
2008
|
-
const renderDuotone = () => /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(
|
|
2009
|
-
import_react_native_svg5.Path,
|
|
2010
|
-
{
|
|
2011
|
-
fill: resolvedColor,
|
|
2012
|
-
opacity: 0.3,
|
|
2013
|
-
d: "M48 192h416v240a48 48 0 01-48 48H96a48 48 0 01-48-48z"
|
|
2014
|
-
}
|
|
2015
|
-
), renderBaseline());
|
|
2016
|
-
const renderRoundOutlined = () => /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(
|
|
2017
|
-
import_react_native_svg5.Circle,
|
|
2018
|
-
{
|
|
2019
|
-
cx: "256",
|
|
2020
|
-
cy: "256",
|
|
2021
|
-
r: "192",
|
|
2022
|
-
fill: "none",
|
|
2023
|
-
stroke: resolvedColor,
|
|
2024
|
-
strokeWidth: 32
|
|
2025
|
-
}
|
|
2026
|
-
), /* @__PURE__ */ import_react26.default.createElement(
|
|
2027
|
-
AnimatedPath3,
|
|
2028
|
-
{
|
|
2029
|
-
fill: "none",
|
|
2030
|
-
stroke: resolvedColor,
|
|
2031
|
-
strokeLinecap: "round",
|
|
2032
|
-
strokeLinejoin: "round",
|
|
2033
|
-
strokeWidth: 28,
|
|
2034
|
-
d: "M152 176a24 24 0 0124-24h160a24 24 0 0124 24v176a24 24 0 01-24 24H176a24 24 0 01-24-24zm0 48h208M208 152v32M304 152v32",
|
|
2035
|
-
...animatedProps
|
|
2036
|
-
}
|
|
2037
|
-
));
|
|
2038
|
-
const renderSquareOutlined = () => /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(
|
|
2039
|
-
import_react_native_svg5.Rect,
|
|
2040
|
-
{
|
|
2041
|
-
x: "64",
|
|
2042
|
-
y: "64",
|
|
2043
|
-
width: "384",
|
|
2044
|
-
height: "384",
|
|
2045
|
-
rx: "48",
|
|
2046
|
-
fill: "none",
|
|
2047
|
-
stroke: resolvedColor,
|
|
2048
|
-
strokeWidth: 32
|
|
2049
|
-
}
|
|
2050
|
-
), /* @__PURE__ */ import_react26.default.createElement(
|
|
2051
|
-
AnimatedPath3,
|
|
2052
|
-
{
|
|
2053
|
-
fill: "none",
|
|
2054
|
-
stroke: resolvedColor,
|
|
2055
|
-
strokeLinecap: "round",
|
|
2056
|
-
strokeLinejoin: "round",
|
|
2057
|
-
strokeWidth: 28,
|
|
2058
|
-
d: "M152 176a24 24 0 0124-24h160a24 24 0 0124 24v176a24 24 0 01-24 24H176a24 24 0 01-24-24zm0 48h208M208 152v32M304 152v32",
|
|
2059
|
-
...animatedProps
|
|
2060
|
-
}
|
|
2061
|
-
));
|
|
2062
|
-
const renderVariant = () => {
|
|
2063
|
-
switch (variant) {
|
|
2064
|
-
case "filled":
|
|
2065
|
-
return renderFilled();
|
|
2066
|
-
case "duotone":
|
|
2067
|
-
return renderDuotone();
|
|
2068
|
-
case "round-outlined":
|
|
2069
|
-
return renderRoundOutlined();
|
|
2070
|
-
case "square-outlined":
|
|
2071
|
-
return renderSquareOutlined();
|
|
2072
|
-
case "round-filled":
|
|
2073
|
-
case "square-filled":
|
|
2074
|
-
return renderFilled();
|
|
2075
|
-
case "baseline":
|
|
2076
|
-
default:
|
|
2077
|
-
return renderBaseline();
|
|
2078
|
-
}
|
|
2079
|
-
};
|
|
2080
|
-
return /* @__PURE__ */ import_react26.default.createElement(import_react_native_svg5.default, { width: size, height: size, viewBox: "0 0 512 512" }, renderVariant());
|
|
2081
|
-
};
|
|
2082
|
-
|
|
2083
|
-
// src/components/icon/icons/checkmark.tsx
|
|
2084
|
-
var import_react27 = __toESM(require("react"), 1);
|
|
2085
|
-
var import_react_native21 = require("react-native");
|
|
2086
|
-
var import_react_native_svg6 = __toESM(require("react-native-svg"), 1);
|
|
2087
|
-
var AnimatedPath4 = import_react_native21.Animated.createAnimatedComponent(import_react_native_svg6.Path);
|
|
2088
|
-
|
|
2089
|
-
// src/components/icon/icons/chevron-down.tsx
|
|
2090
|
-
var import_react28 = __toESM(require("react"), 1);
|
|
2091
|
-
var import_react_native22 = require("react-native");
|
|
2092
|
-
var import_react_native_svg7 = __toESM(require("react-native-svg"), 1);
|
|
2093
|
-
var AnimatedPath5 = import_react_native22.Animated.createAnimatedComponent(import_react_native_svg7.Path);
|
|
2094
|
-
var ChevronDownIcon = ({
|
|
2095
|
-
variant = "baseline",
|
|
2096
|
-
size = 24,
|
|
2097
|
-
color = "default",
|
|
2098
|
-
isAnimated = false
|
|
2099
|
-
}) => {
|
|
2100
|
-
const theme = useXUITheme();
|
|
2101
|
-
const scaleAnim = (0, import_react28.useRef)(new import_react_native22.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
2102
|
-
const opacityAnim = (0, import_react28.useRef)(new import_react_native22.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
2103
|
-
const resolvedColor = (0, import_react28.useMemo)(() => {
|
|
2104
|
-
if (typeof color === "string" && isThemeColor(color)) {
|
|
2105
|
-
return theme.colors[color].main;
|
|
2106
|
-
}
|
|
2107
|
-
return color;
|
|
2108
|
-
}, [color, theme]);
|
|
2109
|
-
(0, import_react28.useEffect)(() => {
|
|
2110
|
-
if (isAnimated) {
|
|
2111
|
-
import_react_native22.Animated.parallel([
|
|
2112
|
-
import_react_native22.Animated.spring(scaleAnim, {
|
|
2113
|
-
toValue: 1,
|
|
2114
|
-
useNativeDriver: true,
|
|
2115
|
-
tension: 50,
|
|
2116
|
-
friction: 7
|
|
2117
|
-
}),
|
|
2118
|
-
import_react_native22.Animated.timing(opacityAnim, {
|
|
2119
|
-
toValue: 1,
|
|
2120
|
-
duration: 200,
|
|
2121
|
-
useNativeDriver: true
|
|
2122
|
-
})
|
|
2123
|
-
]).start();
|
|
2124
|
-
}
|
|
2125
|
-
}, [isAnimated, scaleAnim, opacityAnim]);
|
|
2126
|
-
const animatedProps = isAnimated ? {
|
|
2127
|
-
transform: [{ scale: scaleAnim }],
|
|
2128
|
-
opacity: opacityAnim
|
|
2129
|
-
} : void 0;
|
|
2130
|
-
const renderBaseline = () => /* @__PURE__ */ import_react28.default.createElement(
|
|
2131
|
-
AnimatedPath5,
|
|
2132
|
-
{
|
|
2133
|
-
fill: "none",
|
|
2134
|
-
stroke: resolvedColor,
|
|
2135
|
-
strokeLinecap: "round",
|
|
2136
|
-
strokeLinejoin: "round",
|
|
2137
|
-
strokeWidth: 48,
|
|
2138
|
-
d: "M112 184l144 144 144-144",
|
|
2139
|
-
...animatedProps
|
|
2140
|
-
}
|
|
2141
|
-
);
|
|
2142
|
-
const renderFilled = () => /* @__PURE__ */ import_react28.default.createElement(
|
|
2143
|
-
AnimatedPath5,
|
|
2144
|
-
{
|
|
2145
|
-
fill: resolvedColor,
|
|
2146
|
-
d: "M256 294.1L383 167c9.4-9.4 24.6-9.4 33.9 0s9.3 24.6 0 34L273 345c-9.1 9.1-23.7 9.3-33.1.7L95 201.1c-4.7-4.7-7-10.9-7-17s2.3-12.3 7-17c9.4-9.4 24.6-9.4 33.9 0l127.1 127z",
|
|
2147
|
-
...animatedProps
|
|
2148
|
-
}
|
|
2149
|
-
);
|
|
2150
|
-
const renderDuotone = () => /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(
|
|
2151
|
-
import_react_native_svg7.Path,
|
|
2152
|
-
{
|
|
2153
|
-
fill: resolvedColor,
|
|
2154
|
-
opacity: 0.3,
|
|
2155
|
-
d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48z"
|
|
2156
|
-
}
|
|
2157
|
-
), /* @__PURE__ */ import_react28.default.createElement(
|
|
2158
|
-
AnimatedPath5,
|
|
2159
|
-
{
|
|
2160
|
-
fill: "none",
|
|
2161
|
-
stroke: resolvedColor,
|
|
2162
|
-
strokeLinecap: "round",
|
|
2163
|
-
strokeLinejoin: "round",
|
|
2164
|
-
strokeWidth: 48,
|
|
2165
|
-
d: "M112 184l144 144 144-144",
|
|
2166
|
-
...animatedProps
|
|
2167
|
-
}
|
|
2168
|
-
));
|
|
2169
|
-
const renderRoundOutlined = () => /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(
|
|
2170
|
-
import_react_native_svg7.Circle,
|
|
2171
|
-
{
|
|
2172
|
-
cx: "256",
|
|
2173
|
-
cy: "256",
|
|
2174
|
-
r: "192",
|
|
2175
|
-
fill: "none",
|
|
2176
|
-
stroke: resolvedColor,
|
|
2177
|
-
strokeWidth: 32
|
|
2178
|
-
}
|
|
2179
|
-
), /* @__PURE__ */ import_react28.default.createElement(
|
|
2180
|
-
AnimatedPath5,
|
|
2181
|
-
{
|
|
2182
|
-
fill: "none",
|
|
2183
|
-
stroke: resolvedColor,
|
|
2184
|
-
strokeLinecap: "round",
|
|
2185
|
-
strokeLinejoin: "round",
|
|
2186
|
-
strokeWidth: 48,
|
|
2187
|
-
d: "M112 184l144 144 144-144",
|
|
2188
|
-
...animatedProps
|
|
2189
|
-
}
|
|
2190
|
-
));
|
|
2191
|
-
const renderSquareOutlined = () => /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(
|
|
2192
|
-
import_react_native_svg7.Rect,
|
|
2193
|
-
{
|
|
2194
|
-
x: "64",
|
|
2195
|
-
y: "64",
|
|
2196
|
-
width: "384",
|
|
2197
|
-
height: "384",
|
|
2198
|
-
rx: "48",
|
|
2199
|
-
fill: "none",
|
|
2200
|
-
stroke: resolvedColor,
|
|
2201
|
-
strokeWidth: 32
|
|
2202
|
-
}
|
|
2203
|
-
), /* @__PURE__ */ import_react28.default.createElement(
|
|
2204
|
-
AnimatedPath5,
|
|
2205
|
-
{
|
|
2206
|
-
fill: "none",
|
|
2207
|
-
stroke: resolvedColor,
|
|
2208
|
-
strokeLinecap: "round",
|
|
2209
|
-
strokeLinejoin: "round",
|
|
2210
|
-
strokeWidth: 48,
|
|
2211
|
-
d: "M112 184l144 144 144-144",
|
|
2212
|
-
...animatedProps
|
|
2213
|
-
}
|
|
2214
|
-
));
|
|
2215
|
-
const renderRoundFilled = () => /* @__PURE__ */ import_react28.default.createElement(
|
|
2216
|
-
AnimatedPath5,
|
|
2217
|
-
{
|
|
2218
|
-
fill: resolvedColor,
|
|
2219
|
-
d: "M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-100.69-28.69l-96 96a16 16 0 0 1-22.62 0l-96-96a16 16 0 0 1 22.62-22.62L256 289.37l84.69-84.68a16 16 0 0 1 22.62 22.62z",
|
|
2220
|
-
...animatedProps
|
|
2221
|
-
}
|
|
2222
|
-
);
|
|
2223
|
-
const renderSquareFilled = () => /* @__PURE__ */ import_react28.default.createElement(
|
|
2224
|
-
AnimatedPath5,
|
|
2225
|
-
{
|
|
2226
|
-
fill: resolvedColor,
|
|
2227
|
-
d: "M400 64H112a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zm-36.69 163.31l-96 96a16 16 0 0 1-22.62 0l-96-96a16 16 0 0 1 22.62-22.62L256 289.37l84.69-84.68a16 16 0 0 1 22.62 22.62z",
|
|
2228
|
-
...animatedProps
|
|
2229
|
-
}
|
|
2230
|
-
);
|
|
2231
|
-
const renderVariant = () => {
|
|
2232
|
-
switch (variant) {
|
|
2233
|
-
case "filled":
|
|
2234
|
-
return renderFilled();
|
|
2235
|
-
case "duotone":
|
|
2236
|
-
return renderDuotone();
|
|
2237
|
-
case "round-outlined":
|
|
2238
|
-
return renderRoundOutlined();
|
|
2239
|
-
case "square-outlined":
|
|
2240
|
-
return renderSquareOutlined();
|
|
2241
|
-
case "round-filled":
|
|
2242
|
-
return renderRoundFilled();
|
|
2243
|
-
case "square-filled":
|
|
2244
|
-
return renderSquareFilled();
|
|
2245
|
-
case "baseline":
|
|
2246
|
-
default:
|
|
2247
|
-
return renderBaseline();
|
|
2248
|
-
}
|
|
2249
|
-
};
|
|
2250
|
-
return /* @__PURE__ */ import_react28.default.createElement(import_react_native_svg7.default, { width: size, height: size, viewBox: "0 0 512 512" }, renderVariant());
|
|
2251
|
-
};
|
|
2252
|
-
|
|
2253
|
-
// src/components/icon/icons/chevron-left.tsx
|
|
2254
|
-
var import_react29 = __toESM(require("react"), 1);
|
|
2255
|
-
var import_react_native23 = require("react-native");
|
|
2256
|
-
var import_react_native_svg8 = __toESM(require("react-native-svg"), 1);
|
|
2257
|
-
var AnimatedPath6 = import_react_native23.Animated.createAnimatedComponent(import_react_native_svg8.Path);
|
|
2258
|
-
var ChevronLeftIcon = ({
|
|
2259
|
-
variant = "baseline",
|
|
2260
|
-
size = 24,
|
|
2261
|
-
color = "default",
|
|
2262
|
-
isAnimated = false
|
|
2263
|
-
}) => {
|
|
2264
|
-
const theme = useXUITheme();
|
|
2265
|
-
const scaleAnim = (0, import_react29.useRef)(new import_react_native23.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
2266
|
-
const opacityAnim = (0, import_react29.useRef)(new import_react_native23.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
2267
|
-
const resolvedColor = (0, import_react29.useMemo)(() => {
|
|
2268
|
-
if (typeof color === "string" && isThemeColor(color)) {
|
|
2269
|
-
return theme.colors[color].main;
|
|
2270
|
-
}
|
|
2271
|
-
return color;
|
|
2272
|
-
}, [color, theme]);
|
|
2273
|
-
(0, import_react29.useEffect)(() => {
|
|
2274
|
-
if (isAnimated) {
|
|
2275
|
-
import_react_native23.Animated.parallel([
|
|
2276
|
-
import_react_native23.Animated.spring(scaleAnim, {
|
|
2277
|
-
toValue: 1,
|
|
2278
|
-
useNativeDriver: true,
|
|
2279
|
-
tension: 50,
|
|
2280
|
-
friction: 7
|
|
2281
|
-
}),
|
|
2282
|
-
import_react_native23.Animated.timing(opacityAnim, {
|
|
2283
|
-
toValue: 1,
|
|
2284
|
-
duration: 200,
|
|
2285
|
-
useNativeDriver: true
|
|
2286
|
-
})
|
|
2287
|
-
]).start();
|
|
2288
|
-
}
|
|
2289
|
-
}, [isAnimated, scaleAnim, opacityAnim]);
|
|
2290
|
-
const animatedProps = isAnimated ? {
|
|
2291
|
-
transform: [{ scale: scaleAnim }],
|
|
2292
|
-
opacity: opacityAnim
|
|
2293
|
-
} : void 0;
|
|
2294
|
-
const renderBaseline = () => /* @__PURE__ */ import_react29.default.createElement(
|
|
2295
|
-
AnimatedPath6,
|
|
2296
|
-
{
|
|
2297
|
-
fill: "none",
|
|
2298
|
-
stroke: resolvedColor,
|
|
2299
|
-
strokeLinecap: "round",
|
|
2300
|
-
strokeLinejoin: "round",
|
|
2301
|
-
strokeWidth: 48,
|
|
2302
|
-
d: "M328 112L184 256l144 144",
|
|
2303
|
-
...animatedProps
|
|
2304
|
-
}
|
|
2305
|
-
);
|
|
2306
|
-
const renderFilled = () => /* @__PURE__ */ import_react29.default.createElement(
|
|
2307
|
-
AnimatedPath6,
|
|
2308
|
-
{
|
|
2309
|
-
fill: resolvedColor,
|
|
2310
|
-
d: "M256 217.9L383 345c9.4 9.4 24.6 9.4 33.9 0s9.3-24.6 0-34L273 167c-9.1-9.1-23.7-9.3-33.1-.7L95 310.9c-4.7 4.7-7 10.9-7 17s2.3 12.3 7 17c9.4 9.4 24.6 9.4 33.9 0l127.1-127z",
|
|
2311
|
-
rotation: 90,
|
|
2312
|
-
origin: "256, 256",
|
|
2313
|
-
...animatedProps
|
|
2314
|
-
}
|
|
2315
|
-
);
|
|
2316
|
-
const renderDuotone = () => /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
2317
|
-
import_react_native_svg8.Path,
|
|
2318
|
-
{
|
|
2319
|
-
fill: resolvedColor,
|
|
2320
|
-
opacity: 0.3,
|
|
2321
|
-
d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48z"
|
|
2322
|
-
}
|
|
2323
|
-
), renderBaseline());
|
|
2324
|
-
const renderRoundOutlined = () => /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
2325
|
-
import_react_native_svg8.Circle,
|
|
2326
|
-
{
|
|
2327
|
-
cx: "256",
|
|
2328
|
-
cy: "256",
|
|
2329
|
-
r: "192",
|
|
2330
|
-
fill: "none",
|
|
2331
|
-
stroke: resolvedColor,
|
|
2332
|
-
strokeWidth: 32
|
|
2333
|
-
}
|
|
2334
|
-
), renderBaseline());
|
|
2335
|
-
const renderSquareOutlined = () => /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
2336
|
-
import_react_native_svg8.Rect,
|
|
2337
|
-
{
|
|
2338
|
-
x: "64",
|
|
2339
|
-
y: "64",
|
|
2340
|
-
width: "384",
|
|
2341
|
-
height: "384",
|
|
2342
|
-
rx: "48",
|
|
2343
|
-
fill: "none",
|
|
2344
|
-
stroke: resolvedColor,
|
|
2345
|
-
strokeWidth: 32
|
|
2346
|
-
}
|
|
2347
|
-
), renderBaseline());
|
|
2348
|
-
const renderVariant = () => {
|
|
2349
|
-
switch (variant) {
|
|
2350
|
-
case "filled":
|
|
2351
|
-
return renderFilled();
|
|
2352
|
-
case "duotone":
|
|
2353
|
-
return renderDuotone();
|
|
2354
|
-
case "round-outlined":
|
|
2355
|
-
return renderRoundOutlined();
|
|
2356
|
-
case "square-outlined":
|
|
2357
|
-
return renderSquareOutlined();
|
|
2358
|
-
case "round-filled":
|
|
2359
|
-
case "square-filled":
|
|
2360
|
-
return renderFilled();
|
|
2361
|
-
case "baseline":
|
|
2362
|
-
default:
|
|
2363
|
-
return renderBaseline();
|
|
2364
|
-
}
|
|
2365
|
-
};
|
|
2366
|
-
return /* @__PURE__ */ import_react29.default.createElement(import_react_native_svg8.default, { width: size, height: size, viewBox: "0 0 512 512" }, renderVariant());
|
|
2367
|
-
};
|
|
2368
|
-
|
|
2369
|
-
// src/components/icon/icons/chevron-right.tsx
|
|
2370
|
-
var import_react30 = __toESM(require("react"), 1);
|
|
2371
|
-
var import_react_native24 = require("react-native");
|
|
2372
|
-
var import_react_native_svg9 = __toESM(require("react-native-svg"), 1);
|
|
2373
|
-
var AnimatedPath7 = import_react_native24.Animated.createAnimatedComponent(import_react_native_svg9.Path);
|
|
2374
|
-
var ChevronRightIcon = ({
|
|
2375
|
-
variant = "baseline",
|
|
2376
|
-
size = 24,
|
|
2377
|
-
color = "default",
|
|
2378
|
-
isAnimated = false
|
|
2379
|
-
}) => {
|
|
2380
|
-
const theme = useXUITheme();
|
|
2381
|
-
const scaleAnim = (0, import_react30.useRef)(new import_react_native24.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
2382
|
-
const opacityAnim = (0, import_react30.useRef)(new import_react_native24.Animated.Value(isAnimated ? 0 : 1)).current;
|
|
2383
|
-
const resolvedColor = (0, import_react30.useMemo)(() => {
|
|
2384
|
-
if (typeof color === "string" && isThemeColor(color)) {
|
|
2385
|
-
return theme.colors[color].main;
|
|
2386
|
-
}
|
|
2387
|
-
return color;
|
|
2388
|
-
}, [color, theme]);
|
|
2389
|
-
(0, import_react30.useEffect)(() => {
|
|
2390
|
-
if (isAnimated) {
|
|
2391
|
-
import_react_native24.Animated.parallel([
|
|
2392
|
-
import_react_native24.Animated.spring(scaleAnim, {
|
|
2393
|
-
toValue: 1,
|
|
2394
|
-
useNativeDriver: true,
|
|
2395
|
-
tension: 50,
|
|
2396
|
-
friction: 7
|
|
2397
|
-
}),
|
|
2398
|
-
import_react_native24.Animated.timing(opacityAnim, {
|
|
2399
|
-
toValue: 1,
|
|
2400
|
-
duration: 200,
|
|
2401
|
-
useNativeDriver: true
|
|
2402
|
-
})
|
|
2403
|
-
]).start();
|
|
2404
|
-
}
|
|
2405
|
-
}, [isAnimated, scaleAnim, opacityAnim]);
|
|
2406
|
-
const animatedProps = isAnimated ? {
|
|
2407
|
-
transform: [{ scale: scaleAnim }],
|
|
2408
|
-
opacity: opacityAnim
|
|
2409
|
-
} : void 0;
|
|
2410
|
-
const renderBaseline = () => /* @__PURE__ */ import_react30.default.createElement(
|
|
2411
|
-
AnimatedPath7,
|
|
2412
|
-
{
|
|
2413
|
-
fill: "none",
|
|
2414
|
-
stroke: resolvedColor,
|
|
2415
|
-
strokeLinecap: "round",
|
|
2416
|
-
strokeLinejoin: "round",
|
|
2417
|
-
strokeWidth: 48,
|
|
2418
|
-
d: "M184 112l144 144-144 144",
|
|
2419
|
-
...animatedProps
|
|
2420
|
-
}
|
|
2421
|
-
);
|
|
2422
|
-
const renderFilled = () => /* @__PURE__ */ import_react30.default.createElement(
|
|
2423
|
-
AnimatedPath7,
|
|
2424
|
-
{
|
|
2425
|
-
fill: resolvedColor,
|
|
2426
|
-
d: "M256 294.1L383 167c9.4-9.4 24.6-9.4 33.9 0s9.3 24.6 0 34L273 345c-9.1 9.1-23.7 9.3-33.1.7L95 201.1c-4.7-4.7-7-10.9-7-17s2.3-12.3 7-17c9.4-9.4 24.6-9.4 33.9 0l127.1 127z",
|
|
2427
|
-
rotation: -90,
|
|
2428
|
-
origin: "256, 256",
|
|
2429
|
-
...animatedProps
|
|
2430
|
-
}
|
|
2431
|
-
);
|
|
2432
|
-
const renderDuotone = () => /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
2433
|
-
import_react_native_svg9.Path,
|
|
2434
|
-
{
|
|
2435
|
-
fill: resolvedColor,
|
|
2436
|
-
opacity: 0.3,
|
|
2437
|
-
d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48z"
|
|
2438
|
-
}
|
|
2439
|
-
), renderBaseline());
|
|
2440
|
-
const renderRoundOutlined = () => /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
2441
|
-
import_react_native_svg9.Circle,
|
|
2442
|
-
{
|
|
2443
|
-
cx: "256",
|
|
2444
|
-
cy: "256",
|
|
2445
|
-
r: "192",
|
|
2446
|
-
fill: "none",
|
|
2447
|
-
stroke: resolvedColor,
|
|
2448
|
-
strokeWidth: 32
|
|
2449
|
-
}
|
|
2450
|
-
), renderBaseline());
|
|
2451
|
-
const renderSquareOutlined = () => /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
2452
|
-
import_react_native_svg9.Rect,
|
|
2453
|
-
{
|
|
2454
|
-
x: "64",
|
|
2455
|
-
y: "64",
|
|
2456
|
-
width: "384",
|
|
2457
|
-
height: "384",
|
|
2458
|
-
rx: "48",
|
|
2459
|
-
fill: "none",
|
|
2460
|
-
stroke: resolvedColor,
|
|
2461
|
-
strokeWidth: 32
|
|
2462
|
-
}
|
|
2463
|
-
), renderBaseline());
|
|
2464
|
-
const renderVariant = () => {
|
|
2465
|
-
switch (variant) {
|
|
2466
|
-
case "filled":
|
|
2467
|
-
return renderFilled();
|
|
2468
|
-
case "duotone":
|
|
2469
|
-
return renderDuotone();
|
|
2470
|
-
case "round-outlined":
|
|
2471
|
-
return renderRoundOutlined();
|
|
2472
|
-
case "square-outlined":
|
|
2473
|
-
return renderSquareOutlined();
|
|
2474
|
-
case "round-filled":
|
|
2475
|
-
case "square-filled":
|
|
2476
|
-
return renderFilled();
|
|
2477
|
-
case "baseline":
|
|
2478
|
-
default:
|
|
2479
|
-
return renderBaseline();
|
|
2480
|
-
}
|
|
2481
|
-
};
|
|
2482
|
-
return /* @__PURE__ */ import_react30.default.createElement(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 512 512" }, renderVariant());
|
|
2483
|
-
};
|
|
1688
|
+
var import_icons2 = require("@xaui/icons");
|
|
2484
1689
|
|
|
2485
1690
|
// src/components/dialogs/autocomplete-dialog/autocomplete-dialog.style.ts
|
|
2486
|
-
var
|
|
2487
|
-
var styles7 =
|
|
1691
|
+
var import_react_native18 = require("react-native");
|
|
1692
|
+
var styles7 = import_react_native18.StyleSheet.create({
|
|
2488
1693
|
backdrop: {
|
|
2489
|
-
...
|
|
1694
|
+
...import_react_native18.StyleSheet.absoluteFillObject,
|
|
2490
1695
|
backgroundColor: "rgba(0, 0, 0, 0.5)"
|
|
2491
1696
|
},
|
|
2492
1697
|
dialogContainer: {
|
|
@@ -2581,26 +1786,23 @@ var AutocompleteDialogHeader = ({
|
|
|
2581
1786
|
onBlur
|
|
2582
1787
|
}) => {
|
|
2583
1788
|
const theme = useXUITheme();
|
|
2584
|
-
return /* @__PURE__ */
|
|
2585
|
-
|
|
1789
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_react_native19.View, { style: styles7.header }, title ? /* @__PURE__ */ import_react24.default.createElement(import_react_native19.View, { style: styles7.titleRow }, /* @__PURE__ */ import_react24.default.createElement(
|
|
1790
|
+
import_react_native19.Pressable,
|
|
2586
1791
|
{
|
|
2587
1792
|
style: styles7.backButton,
|
|
2588
1793
|
onPress: onClose,
|
|
2589
1794
|
accessibilityLabel: "Back",
|
|
2590
1795
|
accessibilityRole: "button"
|
|
2591
1796
|
},
|
|
2592
|
-
/* @__PURE__ */
|
|
2593
|
-
), /* @__PURE__ */
|
|
2594
|
-
|
|
1797
|
+
/* @__PURE__ */ import_react24.default.createElement(import_icons2.ArrowBackIcon, { size: 20, color: theme.colors.foreground })
|
|
1798
|
+
), /* @__PURE__ */ import_react24.default.createElement(import_react_native19.Text, { style: [styles7.title, { color: theme.colors.foreground }] }, title)) : null, /* @__PURE__ */ import_react24.default.createElement(import_react_native19.View, { style: styles7.inputContainer }, /* @__PURE__ */ import_react24.default.createElement(import_react_native19.Animated.View, { style: [styles7.inputWrapper, inputAnimatedStyle] }, /* @__PURE__ */ import_react24.default.createElement(
|
|
1799
|
+
import_react_native19.TextInput,
|
|
2595
1800
|
{
|
|
2596
1801
|
ref: inputRef,
|
|
2597
1802
|
value: inputValue,
|
|
2598
1803
|
onChangeText: onInputChange,
|
|
2599
1804
|
placeholder,
|
|
2600
|
-
placeholderTextColor: addOpacityToColor(
|
|
2601
|
-
theme.colors.foreground,
|
|
2602
|
-
0.5
|
|
2603
|
-
),
|
|
1805
|
+
placeholderTextColor: addOpacityToColor(theme.colors.foreground, 0.5),
|
|
2604
1806
|
style: [
|
|
2605
1807
|
styles7.input,
|
|
2606
1808
|
{
|
|
@@ -2615,42 +1817,42 @@ var AutocompleteDialogHeader = ({
|
|
|
2615
1817
|
onFocus,
|
|
2616
1818
|
onBlur
|
|
2617
1819
|
}
|
|
2618
|
-
), inputValue ? /* @__PURE__ */
|
|
2619
|
-
|
|
1820
|
+
), inputValue ? /* @__PURE__ */ import_react24.default.createElement(
|
|
1821
|
+
import_react_native19.Pressable,
|
|
2620
1822
|
{
|
|
2621
1823
|
style: styles7.clearInputButton,
|
|
2622
1824
|
onPress: () => onInputChange?.(""),
|
|
2623
1825
|
accessibilityLabel: "Clear input",
|
|
2624
1826
|
accessibilityRole: "button"
|
|
2625
1827
|
},
|
|
2626
|
-
/* @__PURE__ */
|
|
1828
|
+
/* @__PURE__ */ import_react24.default.createElement(import_icons2.CloseIcon, { color: theme.colors.foreground })
|
|
2627
1829
|
) : null)));
|
|
2628
1830
|
};
|
|
2629
1831
|
|
|
2630
1832
|
// src/components/dialogs/autocomplete-dialog/autocomplete-dialog.animation.ts
|
|
2631
|
-
var
|
|
2632
|
-
var
|
|
1833
|
+
var import_react25 = require("react");
|
|
1834
|
+
var import_react_native20 = require("react-native");
|
|
2633
1835
|
var useAutocompleteDialogAnimation = ({
|
|
2634
1836
|
visible,
|
|
2635
1837
|
fadeAnim,
|
|
2636
1838
|
slideAnim,
|
|
2637
1839
|
scaleAnim
|
|
2638
1840
|
}) => {
|
|
2639
|
-
(0,
|
|
1841
|
+
(0, import_react25.useEffect)(() => {
|
|
2640
1842
|
if (visible) {
|
|
2641
|
-
|
|
2642
|
-
|
|
1843
|
+
import_react_native20.Animated.parallel([
|
|
1844
|
+
import_react_native20.Animated.timing(fadeAnim, {
|
|
2643
1845
|
toValue: 1,
|
|
2644
1846
|
duration: 250,
|
|
2645
1847
|
useNativeDriver: true
|
|
2646
1848
|
}),
|
|
2647
|
-
|
|
1849
|
+
import_react_native20.Animated.spring(slideAnim, {
|
|
2648
1850
|
toValue: 1,
|
|
2649
1851
|
useNativeDriver: true,
|
|
2650
1852
|
tension: 65,
|
|
2651
1853
|
friction: 10
|
|
2652
1854
|
}),
|
|
2653
|
-
|
|
1855
|
+
import_react_native20.Animated.spring(scaleAnim, {
|
|
2654
1856
|
toValue: 1,
|
|
2655
1857
|
useNativeDriver: true,
|
|
2656
1858
|
tension: 50,
|
|
@@ -2684,19 +1886,19 @@ var AutocompleteDialog = ({
|
|
|
2684
1886
|
onBlur
|
|
2685
1887
|
}) => {
|
|
2686
1888
|
const theme = useXUITheme();
|
|
2687
|
-
const { width: screenWidth, height: screenHeight } = (0,
|
|
2688
|
-
const fadeAnim = (0,
|
|
2689
|
-
const slideAnim = (0,
|
|
2690
|
-
const scaleAnim = (0,
|
|
2691
|
-
const inputRef = (0,
|
|
2692
|
-
const [keyboardHeight, setKeyboardHeight] = (0,
|
|
2693
|
-
(0,
|
|
2694
|
-
const showEvent =
|
|
2695
|
-
const hideEvent =
|
|
2696
|
-
const showSub =
|
|
1889
|
+
const { width: screenWidth, height: screenHeight } = (0, import_react_native21.useWindowDimensions)();
|
|
1890
|
+
const fadeAnim = (0, import_react26.useRef)(new import_react_native21.Animated.Value(0)).current;
|
|
1891
|
+
const slideAnim = (0, import_react26.useRef)(new import_react_native21.Animated.Value(0)).current;
|
|
1892
|
+
const scaleAnim = (0, import_react26.useRef)(new import_react_native21.Animated.Value(0)).current;
|
|
1893
|
+
const inputRef = (0, import_react26.useRef)(null);
|
|
1894
|
+
const [keyboardHeight, setKeyboardHeight] = (0, import_react26.useState)(0);
|
|
1895
|
+
(0, import_react26.useEffect)(() => {
|
|
1896
|
+
const showEvent = import_react_native21.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
|
|
1897
|
+
const hideEvent = import_react_native21.Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide";
|
|
1898
|
+
const showSub = import_react_native21.Keyboard.addListener(showEvent, (e) => {
|
|
2697
1899
|
setKeyboardHeight(e.endCoordinates.height);
|
|
2698
1900
|
});
|
|
2699
|
-
const hideSub =
|
|
1901
|
+
const hideSub = import_react_native21.Keyboard.addListener(hideEvent, () => {
|
|
2700
1902
|
setKeyboardHeight(0);
|
|
2701
1903
|
});
|
|
2702
1904
|
return () => {
|
|
@@ -2704,26 +1906,26 @@ var AutocompleteDialog = ({
|
|
|
2704
1906
|
hideSub.remove();
|
|
2705
1907
|
};
|
|
2706
1908
|
}, []);
|
|
2707
|
-
const items = (0,
|
|
2708
|
-
() =>
|
|
2709
|
-
|
|
1909
|
+
const items = (0, import_react26.useMemo)(
|
|
1910
|
+
() => import_react26.default.Children.toArray(children).filter(
|
|
1911
|
+
import_react26.default.isValidElement
|
|
2710
1912
|
),
|
|
2711
1913
|
[children]
|
|
2712
1914
|
);
|
|
2713
1915
|
const checkmarkColor = theme.colors[themeColor].main;
|
|
2714
1916
|
const checkmarkBackgroundColor = theme.colors[themeColor].background;
|
|
2715
1917
|
useAutocompleteDialogAnimation({ visible, fadeAnim, slideAnim, scaleAnim });
|
|
2716
|
-
(0,
|
|
1918
|
+
(0, import_react26.useEffect)(() => {
|
|
2717
1919
|
if (!visible) return;
|
|
2718
|
-
const sub =
|
|
1920
|
+
const sub = import_react_native21.BackHandler.addEventListener("hardwareBackPress", () => {
|
|
2719
1921
|
onClose?.();
|
|
2720
1922
|
return true;
|
|
2721
1923
|
});
|
|
2722
1924
|
return () => sub.remove();
|
|
2723
1925
|
}, [visible, onClose]);
|
|
2724
|
-
const focusInput = (0,
|
|
2725
|
-
const delay =
|
|
2726
|
-
|
|
1926
|
+
const focusInput = (0, import_react26.useCallback)(() => {
|
|
1927
|
+
const delay = import_react_native21.Platform.OS === "android" ? 300 : 100;
|
|
1928
|
+
import_react_native21.InteractionManager.runAfterInteractions(() => {
|
|
2727
1929
|
setTimeout(() => {
|
|
2728
1930
|
inputRef.current?.focus();
|
|
2729
1931
|
}, delay);
|
|
@@ -2731,16 +1933,16 @@ var AutocompleteDialog = ({
|
|
|
2731
1933
|
}, []);
|
|
2732
1934
|
const handleCheckmarkPress = () => {
|
|
2733
1935
|
onCheckmark?.();
|
|
2734
|
-
|
|
1936
|
+
import_react_native21.Keyboard.dismiss();
|
|
2735
1937
|
};
|
|
2736
|
-
(0,
|
|
1938
|
+
(0, import_react26.useEffect)(() => {
|
|
2737
1939
|
if (!visible) {
|
|
2738
|
-
|
|
1940
|
+
import_react_native21.Keyboard.dismiss();
|
|
2739
1941
|
return;
|
|
2740
1942
|
}
|
|
2741
1943
|
focusInput();
|
|
2742
1944
|
}, [focusInput, visible]);
|
|
2743
|
-
const listBottomPadding = (0,
|
|
1945
|
+
const listBottomPadding = (0, import_react26.useMemo)(() => {
|
|
2744
1946
|
const basePadding = showCheckmark ? 96 : 64;
|
|
2745
1947
|
return (keyboardHeight > 0 ? keyboardHeight : 0) + basePadding;
|
|
2746
1948
|
}, [keyboardHeight, showCheckmark]);
|
|
@@ -2765,7 +1967,7 @@ var AutocompleteDialog = ({
|
|
|
2765
1967
|
const inputAnimatedStyle = {
|
|
2766
1968
|
transform: [{ scaleX: scaleAnim }]
|
|
2767
1969
|
};
|
|
2768
|
-
const listHeader = /* @__PURE__ */
|
|
1970
|
+
const listHeader = /* @__PURE__ */ import_react26.default.createElement(
|
|
2769
1971
|
AutocompleteDialogHeader,
|
|
2770
1972
|
{
|
|
2771
1973
|
title,
|
|
@@ -2781,14 +1983,14 @@ var AutocompleteDialog = ({
|
|
|
2781
1983
|
onBlur
|
|
2782
1984
|
}
|
|
2783
1985
|
);
|
|
2784
|
-
return /* @__PURE__ */
|
|
2785
|
-
|
|
1986
|
+
return /* @__PURE__ */ import_react26.default.createElement(Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_native21.View, { style: [overlayStyle, style] }, /* @__PURE__ */ import_react26.default.createElement(import_react_native21.Animated.View, { style: [styles7.backdrop, { opacity: fadeAnim }] }), /* @__PURE__ */ import_react26.default.createElement(import_react_native21.Animated.View, { style: [styles7.dialogContainer, containerAnimatedStyle] }, /* @__PURE__ */ import_react26.default.createElement(
|
|
1987
|
+
import_react_native21.View,
|
|
2786
1988
|
{
|
|
2787
1989
|
style: [styles7.container, { backgroundColor: theme.colors.background }]
|
|
2788
1990
|
},
|
|
2789
1991
|
listHeader,
|
|
2790
|
-
/* @__PURE__ */
|
|
2791
|
-
|
|
1992
|
+
/* @__PURE__ */ import_react26.default.createElement(
|
|
1993
|
+
import_react_native21.FlatList,
|
|
2792
1994
|
{
|
|
2793
1995
|
data: items,
|
|
2794
1996
|
renderItem: ({ item }) => item,
|
|
@@ -2802,8 +2004,8 @@ var AutocompleteDialog = ({
|
|
|
2802
2004
|
showsVerticalScrollIndicator: false
|
|
2803
2005
|
}
|
|
2804
2006
|
),
|
|
2805
|
-
showCheckmark ? /* @__PURE__ */
|
|
2806
|
-
|
|
2007
|
+
showCheckmark ? /* @__PURE__ */ import_react26.default.createElement(import_react_native21.View, { style: styles7.checkmarkButtonContainer }, /* @__PURE__ */ import_react26.default.createElement(
|
|
2008
|
+
import_react_native21.Pressable,
|
|
2807
2009
|
{
|
|
2808
2010
|
style: [
|
|
2809
2011
|
styles7.checkmarkButton,
|
|
@@ -2813,14 +2015,15 @@ var AutocompleteDialog = ({
|
|
|
2813
2015
|
accessibilityLabel: "Confirm",
|
|
2814
2016
|
accessibilityRole: "button"
|
|
2815
2017
|
},
|
|
2816
|
-
checkmarkIcon ?? /* @__PURE__ */
|
|
2018
|
+
checkmarkIcon ?? /* @__PURE__ */ import_react26.default.createElement(CheckmarkIcon, { color: checkmarkColor, size: 20 })
|
|
2817
2019
|
)) : null
|
|
2818
2020
|
))));
|
|
2819
2021
|
};
|
|
2820
2022
|
|
|
2821
2023
|
// src/components/autocomplete/autocomplete-trigger.tsx
|
|
2822
|
-
var
|
|
2823
|
-
var
|
|
2024
|
+
var import_react27 = __toESM(require("react"), 1);
|
|
2025
|
+
var import_react_native22 = require("react-native");
|
|
2026
|
+
var import_icons3 = require("@xaui/icons");
|
|
2824
2027
|
var AutocompleteTrigger = ({
|
|
2825
2028
|
triggerRef,
|
|
2826
2029
|
isDisabled,
|
|
@@ -2843,8 +2046,8 @@ var AutocompleteTrigger = ({
|
|
|
2843
2046
|
onLayout: handleTriggerLayout
|
|
2844
2047
|
}) => {
|
|
2845
2048
|
const renderLabel = isLabelInside && label;
|
|
2846
|
-
return /* @__PURE__ */
|
|
2847
|
-
|
|
2049
|
+
return /* @__PURE__ */ import_react27.default.createElement(
|
|
2050
|
+
import_react_native22.Pressable,
|
|
2848
2051
|
{
|
|
2849
2052
|
ref: triggerRef,
|
|
2850
2053
|
onPress: handleTriggerPress,
|
|
@@ -2866,8 +2069,8 @@ var AutocompleteTrigger = ({
|
|
|
2866
2069
|
accessibilityRole: "button",
|
|
2867
2070
|
accessibilityState: { disabled: isDisabled }
|
|
2868
2071
|
},
|
|
2869
|
-
/* @__PURE__ */
|
|
2870
|
-
|
|
2072
|
+
/* @__PURE__ */ import_react27.default.createElement(import_react_native22.View, { style: styles6.triggerContent }, isLabelInside && renderLabel, /* @__PURE__ */ import_react27.default.createElement(
|
|
2073
|
+
import_react_native22.Text,
|
|
2871
2074
|
{
|
|
2872
2075
|
style: [
|
|
2873
2076
|
styles6.triggerText,
|
|
@@ -2880,14 +2083,14 @@ var AutocompleteTrigger = ({
|
|
|
2880
2083
|
},
|
|
2881
2084
|
displayValue
|
|
2882
2085
|
)),
|
|
2883
|
-
isClearable && (currentSelectedKey || currentInputValue) ? /* @__PURE__ */
|
|
2884
|
-
|
|
2086
|
+
isClearable && (currentSelectedKey || currentInputValue) ? /* @__PURE__ */ import_react27.default.createElement(
|
|
2087
|
+
import_react_native22.TouchableOpacity,
|
|
2885
2088
|
{
|
|
2886
2089
|
onPress: handleClear,
|
|
2887
2090
|
style: styles6.clearButton,
|
|
2888
2091
|
hitSlop: { top: 8, right: 8, bottom: 8, left: 8 }
|
|
2889
2092
|
},
|
|
2890
|
-
clearIcon ?? /* @__PURE__ */
|
|
2093
|
+
clearIcon ?? /* @__PURE__ */ import_react27.default.createElement(import_icons3.CloseIcon, { color: theme.colors.foreground, size: 20 })
|
|
2891
2094
|
) : null
|
|
2892
2095
|
);
|
|
2893
2096
|
};
|
|
@@ -2938,17 +2141,17 @@ var Autocomplete = ({
|
|
|
2938
2141
|
onOpenChange,
|
|
2939
2142
|
onClose
|
|
2940
2143
|
});
|
|
2941
|
-
const triggerRef = (0,
|
|
2942
|
-
const [triggerLayout, setTriggerLayout] = (0,
|
|
2943
|
-
const handleTriggerLayout = (0,
|
|
2144
|
+
const triggerRef = (0, import_react28.useRef)(null);
|
|
2145
|
+
const [triggerLayout, setTriggerLayout] = (0, import_react28.useState)();
|
|
2146
|
+
const handleTriggerLayout = (0, import_react28.useCallback)(() => {
|
|
2944
2147
|
triggerRef.current?.measureInWindow((x, y, width, height) => {
|
|
2945
2148
|
setTriggerLayout({ x, y, width, height });
|
|
2946
2149
|
});
|
|
2947
2150
|
}, []);
|
|
2948
|
-
const items = (0,
|
|
2949
|
-
const elements =
|
|
2151
|
+
const items = (0, import_react28.useMemo)(() => {
|
|
2152
|
+
const elements = import_react28.default.Children.toArray(children).filter(Boolean);
|
|
2950
2153
|
return elements.map((child, index) => {
|
|
2951
|
-
if (!
|
|
2154
|
+
if (!import_react28.default.isValidElement(child)) {
|
|
2952
2155
|
return null;
|
|
2953
2156
|
}
|
|
2954
2157
|
const key = child.props.value ?? String(index);
|
|
@@ -2960,7 +2163,7 @@ var Autocomplete = ({
|
|
|
2960
2163
|
};
|
|
2961
2164
|
}).filter((item) => item !== null);
|
|
2962
2165
|
}, [children]);
|
|
2963
|
-
const filteredItems = (0,
|
|
2166
|
+
const filteredItems = (0, import_react28.useMemo)(() => {
|
|
2964
2167
|
if (disableLocalFilter || !currentInputValue.trim()) {
|
|
2965
2168
|
return items;
|
|
2966
2169
|
}
|
|
@@ -2980,7 +2183,7 @@ var Autocomplete = ({
|
|
|
2980
2183
|
const helperColor = useAutocompleteHelperColor(isInvalid);
|
|
2981
2184
|
const selectedItem = items.find((item) => item.key === currentSelectedKey);
|
|
2982
2185
|
const displayValue = forceSelection ? selectedItem?.labelText || placeholder : currentInputValue || placeholder;
|
|
2983
|
-
const handleInputChange = (0,
|
|
2186
|
+
const handleInputChange = (0, import_react28.useCallback)(
|
|
2984
2187
|
(text) => {
|
|
2985
2188
|
updateInputValue(text);
|
|
2986
2189
|
const selectedLabel = selectedItem?.labelText ?? "";
|
|
@@ -2997,7 +2200,7 @@ var Autocomplete = ({
|
|
|
2997
2200
|
currentSelectedKey
|
|
2998
2201
|
]
|
|
2999
2202
|
);
|
|
3000
|
-
const handleItemSelection = (0,
|
|
2203
|
+
const handleItemSelection = (0, import_react28.useCallback)(
|
|
3001
2204
|
(key, itemLabel) => {
|
|
3002
2205
|
if (isDisabled) {
|
|
3003
2206
|
return;
|
|
@@ -3005,16 +2208,16 @@ var Autocomplete = ({
|
|
|
3005
2208
|
updateSelection(key);
|
|
3006
2209
|
updateInputValue(itemLabel);
|
|
3007
2210
|
setTimeout(() => {
|
|
3008
|
-
|
|
2211
|
+
import_react_native23.Keyboard.dismiss();
|
|
3009
2212
|
setOpen(false);
|
|
3010
2213
|
}, 50);
|
|
3011
2214
|
},
|
|
3012
2215
|
[isDisabled, updateSelection, updateInputValue, setOpen]
|
|
3013
2216
|
);
|
|
3014
|
-
const handleCheckmark = (0,
|
|
2217
|
+
const handleCheckmark = (0, import_react28.useCallback)(() => {
|
|
3015
2218
|
setOpen(false);
|
|
3016
2219
|
}, [setOpen]);
|
|
3017
|
-
const handleClear = (0,
|
|
2220
|
+
const handleClear = (0, import_react28.useCallback)(() => {
|
|
3018
2221
|
if (isDisabled) {
|
|
3019
2222
|
return;
|
|
3020
2223
|
}
|
|
@@ -3022,7 +2225,7 @@ var Autocomplete = ({
|
|
|
3022
2225
|
updateInputValue("");
|
|
3023
2226
|
onClear?.();
|
|
3024
2227
|
}, [isDisabled, updateSelection, updateInputValue, onClear]);
|
|
3025
|
-
const handleTriggerPress = (0,
|
|
2228
|
+
const handleTriggerPress = (0, import_react28.useCallback)(() => {
|
|
3026
2229
|
if (!isDisabled) {
|
|
3027
2230
|
if (selectedItem && !currentInputValue) {
|
|
3028
2231
|
updateInputValue(selectedItem.labelText);
|
|
@@ -3041,7 +2244,7 @@ var Autocomplete = ({
|
|
|
3041
2244
|
handleItemSelection(item.key, item.labelText);
|
|
3042
2245
|
itemProps.onSelected?.();
|
|
3043
2246
|
};
|
|
3044
|
-
return
|
|
2247
|
+
return import_react28.default.cloneElement(item.element, {
|
|
3045
2248
|
key: item.key,
|
|
3046
2249
|
isDisabled: itemDisabled,
|
|
3047
2250
|
isSelected: itemSelected,
|
|
@@ -3052,10 +2255,10 @@ var Autocomplete = ({
|
|
|
3052
2255
|
const isLabelInside = labelPlacement === "inside";
|
|
3053
2256
|
const isLabelOutsideLeft = labelPlacement === "outside-left";
|
|
3054
2257
|
const isLabelOutside = labelPlacement === "outside" || labelPlacement === "outside-top";
|
|
3055
|
-
const renderLabel = label ? typeof label === "string" || typeof label === "number" ? /* @__PURE__ */
|
|
2258
|
+
const renderLabel = label ? typeof label === "string" || typeof label === "number" ? /* @__PURE__ */ import_react28.default.createElement(import_react_native23.Text, { style: [styles6.label, labelStyle] }, label) : /* @__PURE__ */ import_react28.default.createElement(import_react_native23.View, null, label) : null;
|
|
3056
2259
|
const shouldShowHelper = Boolean(description || errorMessage);
|
|
3057
2260
|
const helperContent = isInvalid && errorMessage ? errorMessage : description;
|
|
3058
|
-
const triggerContent = /* @__PURE__ */
|
|
2261
|
+
const triggerContent = /* @__PURE__ */ import_react28.default.createElement(
|
|
3059
2262
|
AutocompleteTrigger,
|
|
3060
2263
|
{
|
|
3061
2264
|
triggerRef,
|
|
@@ -3080,7 +2283,7 @@ var Autocomplete = ({
|
|
|
3080
2283
|
}
|
|
3081
2284
|
);
|
|
3082
2285
|
const labelBlock = isLabelOutside || isLabelInside ? renderLabel : null;
|
|
3083
|
-
return /* @__PURE__ */
|
|
2286
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_native23.View, { style: [styles6.container, fullWidth ? styles6.fullWidth : styles6.minWidth] }, isLabelOutside && labelBlock, isLabelOutsideLeft ? /* @__PURE__ */ import_react28.default.createElement(import_react_native23.View, { style: styles6.outsideLeftRow }, renderLabel, triggerContent) : triggerContent, shouldShowHelper && helperContent ? typeof helperContent === "string" || typeof helperContent === "number" ? /* @__PURE__ */ import_react28.default.createElement(import_react_native23.Text, { style: [styles6.helperText, { color: helperColor }] }, helperContent) : /* @__PURE__ */ import_react28.default.createElement(import_react_native23.View, null, helperContent) : null, /* @__PURE__ */ import_react28.default.createElement(
|
|
3084
2287
|
AutocompleteDialog,
|
|
3085
2288
|
{
|
|
3086
2289
|
visible: isOpen,
|
|
@@ -3094,17 +2297,17 @@ var Autocomplete = ({
|
|
|
3094
2297
|
onClose: () => setOpen(false),
|
|
3095
2298
|
onCheckmark: handleCheckmark
|
|
3096
2299
|
},
|
|
3097
|
-
/* @__PURE__ */
|
|
2300
|
+
/* @__PURE__ */ import_react28.default.createElement(AutocompleteContext.Provider, { value: { size, themeColor, isDisabled } }, showEmptyMessage ? /* @__PURE__ */ import_react28.default.createElement(import_react_native23.Text, { style: [styles6.emptyMessage, { color: theme.colors.foreground }] }, "No results found") : listItems)
|
|
3098
2301
|
));
|
|
3099
2302
|
};
|
|
3100
2303
|
|
|
3101
2304
|
// src/components/autocomplete/autocomplete-item.tsx
|
|
3102
|
-
var
|
|
3103
|
-
var
|
|
2305
|
+
var import_react30 = __toESM(require("react"), 1);
|
|
2306
|
+
var import_react_native25 = require("react-native");
|
|
3104
2307
|
|
|
3105
2308
|
// src/components/autocomplete/autocomplete-item.style.ts
|
|
3106
|
-
var
|
|
3107
|
-
var styles8 =
|
|
2309
|
+
var import_react_native24 = require("react-native");
|
|
2310
|
+
var styles8 = import_react_native24.StyleSheet.create({
|
|
3108
2311
|
item: {
|
|
3109
2312
|
flexDirection: "row",
|
|
3110
2313
|
alignItems: "center",
|
|
@@ -3126,11 +2329,11 @@ var styles8 = import_react_native31.StyleSheet.create({
|
|
|
3126
2329
|
});
|
|
3127
2330
|
|
|
3128
2331
|
// src/components/autocomplete/autocomplete-item.hook.ts
|
|
3129
|
-
var
|
|
3130
|
-
var
|
|
2332
|
+
var import_react29 = require("react");
|
|
2333
|
+
var import_core19 = require("@xaui/core");
|
|
3131
2334
|
var useAutocompleteItemSizeStyles = (size) => {
|
|
3132
2335
|
const theme = useXUITheme();
|
|
3133
|
-
return (0,
|
|
2336
|
+
return (0, import_react29.useMemo)(() => {
|
|
3134
2337
|
const sizes = {
|
|
3135
2338
|
xs: {
|
|
3136
2339
|
paddingVertical: theme.spacing.sm,
|
|
@@ -3162,15 +2365,15 @@ var useAutocompleteItemSizeStyles = (size) => {
|
|
|
3162
2365
|
};
|
|
3163
2366
|
var useAutocompleteItemBackgroundColor = (themeColor, isSelected) => {
|
|
3164
2367
|
const theme = useXUITheme();
|
|
3165
|
-
const safeThemeColor = (0,
|
|
2368
|
+
const safeThemeColor = (0, import_core19.getSafeThemeColor)(themeColor);
|
|
3166
2369
|
const colorScheme = theme.colors[safeThemeColor];
|
|
3167
|
-
return (0,
|
|
2370
|
+
return (0, import_react29.useMemo)(() => {
|
|
3168
2371
|
return "transparent";
|
|
3169
2372
|
}, [isSelected, colorScheme]);
|
|
3170
2373
|
};
|
|
3171
2374
|
var useAutocompleteItemTextColors = () => {
|
|
3172
2375
|
const theme = useXUITheme();
|
|
3173
|
-
return (0,
|
|
2376
|
+
return (0, import_react29.useMemo)(() => {
|
|
3174
2377
|
return {
|
|
3175
2378
|
textColor: theme.colors.foreground,
|
|
3176
2379
|
descriptionColor: theme.colors.foreground
|
|
@@ -3179,9 +2382,9 @@ var useAutocompleteItemTextColors = () => {
|
|
|
3179
2382
|
};
|
|
3180
2383
|
var useAutocompleteItemCheckmarkColor = (themeColor) => {
|
|
3181
2384
|
const theme = useXUITheme();
|
|
3182
|
-
const safeThemeColor = (0,
|
|
2385
|
+
const safeThemeColor = (0, import_core19.getSafeThemeColor)(themeColor);
|
|
3183
2386
|
const colorScheme = theme.colors[safeThemeColor];
|
|
3184
|
-
return (0,
|
|
2387
|
+
return (0, import_react29.useMemo)(() => {
|
|
3185
2388
|
if (themeColor === "default") {
|
|
3186
2389
|
return theme.colors.primary.main;
|
|
3187
2390
|
}
|
|
@@ -3189,7 +2392,7 @@ var useAutocompleteItemCheckmarkColor = (themeColor) => {
|
|
|
3189
2392
|
}, [themeColor, colorScheme, theme]);
|
|
3190
2393
|
};
|
|
3191
2394
|
var useAutocompleteItemStyles = (isSelected, _isDisabled) => {
|
|
3192
|
-
const context = (0,
|
|
2395
|
+
const context = (0, import_react29.useContext)(AutocompleteContext);
|
|
3193
2396
|
const backgroundColor = useAutocompleteItemBackgroundColor(
|
|
3194
2397
|
context.themeColor,
|
|
3195
2398
|
isSelected
|
|
@@ -3218,7 +2421,7 @@ var AutocompleteItem = ({
|
|
|
3218
2421
|
customAppearance,
|
|
3219
2422
|
onSelected
|
|
3220
2423
|
}) => {
|
|
3221
|
-
const context = (0,
|
|
2424
|
+
const context = (0, import_react30.useContext)(AutocompleteContext);
|
|
3222
2425
|
const size = context?.size ?? defaultSize;
|
|
3223
2426
|
const isItemDisabled = context?.isDisabled ? true : isDisabled;
|
|
3224
2427
|
const sizeStyles = useAutocompleteItemSizeStyles(size);
|
|
@@ -3229,8 +2432,8 @@ var AutocompleteItem = ({
|
|
|
3229
2432
|
}
|
|
3230
2433
|
onSelected?.();
|
|
3231
2434
|
};
|
|
3232
|
-
return /* @__PURE__ */
|
|
3233
|
-
|
|
2435
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
2436
|
+
import_react_native25.Pressable,
|
|
3234
2437
|
{
|
|
3235
2438
|
onPress: handlePress,
|
|
3236
2439
|
disabled: isItemDisabled,
|
|
@@ -3246,8 +2449,8 @@ var AutocompleteItem = ({
|
|
|
3246
2449
|
]
|
|
3247
2450
|
},
|
|
3248
2451
|
startContent,
|
|
3249
|
-
/* @__PURE__ */
|
|
3250
|
-
|
|
2452
|
+
/* @__PURE__ */ import_react30.default.createElement(import_react_native25.View, { style: styles8.content }, /* @__PURE__ */ import_react30.default.createElement(
|
|
2453
|
+
import_react_native25.Text,
|
|
3251
2454
|
{
|
|
3252
2455
|
style: [
|
|
3253
2456
|
styles8.title,
|
|
@@ -3256,8 +2459,8 @@ var AutocompleteItem = ({
|
|
|
3256
2459
|
]
|
|
3257
2460
|
},
|
|
3258
2461
|
label
|
|
3259
|
-
), description && /* @__PURE__ */
|
|
3260
|
-
|
|
2462
|
+
), description && /* @__PURE__ */ import_react30.default.createElement(
|
|
2463
|
+
import_react_native25.Text,
|
|
3261
2464
|
{
|
|
3262
2465
|
style: [
|
|
3263
2466
|
styles8.description,
|
|
@@ -3271,22 +2474,22 @@ var AutocompleteItem = ({
|
|
|
3271
2474
|
};
|
|
3272
2475
|
|
|
3273
2476
|
// src/components/datepicker/datepicker.tsx
|
|
3274
|
-
var
|
|
3275
|
-
var
|
|
2477
|
+
var import_react40 = __toESM(require("react"), 1);
|
|
2478
|
+
var import_react_native35 = require("react-native");
|
|
3276
2479
|
|
|
3277
2480
|
// src/components/datepicker/datepicker.hook.ts
|
|
3278
|
-
var
|
|
3279
|
-
var
|
|
2481
|
+
var import_react31 = require("react");
|
|
2482
|
+
var import_core21 = require("@xaui/core");
|
|
3280
2483
|
var import_palette3 = require("@xaui/core/palette");
|
|
3281
2484
|
var useDatePickerColorScheme = (themeColor) => {
|
|
3282
2485
|
const theme = useXUITheme();
|
|
3283
|
-
const safeThemeColor = (0,
|
|
2486
|
+
const safeThemeColor = (0, import_core21.getSafeThemeColor)(themeColor);
|
|
3284
2487
|
const colorScheme = theme.colors[safeThemeColor];
|
|
3285
2488
|
return { theme, colorScheme };
|
|
3286
2489
|
};
|
|
3287
2490
|
var useDatePickerSizeStyles = (size) => {
|
|
3288
2491
|
const theme = useXUITheme();
|
|
3289
|
-
return (0,
|
|
2492
|
+
return (0, import_react31.useMemo)(() => {
|
|
3290
2493
|
const sizes = {
|
|
3291
2494
|
xs: {
|
|
3292
2495
|
minHeight: 34,
|
|
@@ -3322,7 +2525,7 @@ var useDatePickerSizeStyles = (size) => {
|
|
|
3322
2525
|
};
|
|
3323
2526
|
var useDatePickerRadiusStyles = (radius) => {
|
|
3324
2527
|
const theme = useXUITheme();
|
|
3325
|
-
return (0,
|
|
2528
|
+
return (0, import_react31.useMemo)(() => {
|
|
3326
2529
|
const radii = {
|
|
3327
2530
|
none: theme.borderRadius.none,
|
|
3328
2531
|
sm: theme.borderRadius.sm,
|
|
@@ -3335,7 +2538,7 @@ var useDatePickerRadiusStyles = (radius) => {
|
|
|
3335
2538
|
};
|
|
3336
2539
|
var useDatePickerVariantStyles = (themeColor, variant, isInvalid) => {
|
|
3337
2540
|
const { theme, colorScheme } = useDatePickerColorScheme(themeColor);
|
|
3338
|
-
return (0,
|
|
2541
|
+
return (0, import_react31.useMemo)(() => {
|
|
3339
2542
|
let borderColor = isInvalid ? theme.colors.danger.main : colorScheme.main;
|
|
3340
2543
|
if ((variant === "outlined" || variant === "faded") && themeColor === "default") {
|
|
3341
2544
|
borderColor = import_palette3.colors.gray[300];
|
|
@@ -3370,7 +2573,7 @@ var useDatePickerVariantStyles = (themeColor, variant, isInvalid) => {
|
|
|
3370
2573
|
};
|
|
3371
2574
|
var useDatePickerLabelStyle = (themeColor, isInvalid, labelSize) => {
|
|
3372
2575
|
const { theme, colorScheme } = useDatePickerColorScheme(themeColor);
|
|
3373
|
-
return (0,
|
|
2576
|
+
return (0, import_react31.useMemo)(() => {
|
|
3374
2577
|
let baseColor = theme.colors.foreground;
|
|
3375
2578
|
if (isInvalid) {
|
|
3376
2579
|
baseColor = theme.colors.danger.main;
|
|
@@ -3385,7 +2588,7 @@ var useDatePickerLabelStyle = (themeColor, isInvalid, labelSize) => {
|
|
|
3385
2588
|
};
|
|
3386
2589
|
var useDatePickerHelperColor = (isInvalid) => {
|
|
3387
2590
|
const theme = useXUITheme();
|
|
3388
|
-
return (0,
|
|
2591
|
+
return (0, import_react31.useMemo)(() => {
|
|
3389
2592
|
if (isInvalid) {
|
|
3390
2593
|
return theme.colors.danger.main;
|
|
3391
2594
|
}
|
|
@@ -3394,17 +2597,17 @@ var useDatePickerHelperColor = (isInvalid) => {
|
|
|
3394
2597
|
};
|
|
3395
2598
|
|
|
3396
2599
|
// src/components/datepicker/datepicker.state.hook.ts
|
|
3397
|
-
var
|
|
2600
|
+
var import_react32 = require("react");
|
|
3398
2601
|
var useDatePickerState = ({
|
|
3399
2602
|
value,
|
|
3400
2603
|
defaultValue,
|
|
3401
2604
|
onChange
|
|
3402
2605
|
}) => {
|
|
3403
|
-
const [internalValue, setInternalValue] = (0,
|
|
2606
|
+
const [internalValue, setInternalValue] = (0, import_react32.useState)(
|
|
3404
2607
|
defaultValue ?? null
|
|
3405
2608
|
);
|
|
3406
2609
|
const selectedDate = value !== void 0 ? value : internalValue;
|
|
3407
|
-
const updateDate = (0,
|
|
2610
|
+
const updateDate = (0, import_react32.useCallback)(
|
|
3408
2611
|
(date) => {
|
|
3409
2612
|
if (value === void 0) {
|
|
3410
2613
|
setInternalValue(date);
|
|
@@ -3421,8 +2624,8 @@ var useDatePickerOpenState = ({
|
|
|
3421
2624
|
onOpen,
|
|
3422
2625
|
onClose
|
|
3423
2626
|
}) => {
|
|
3424
|
-
const [isOpen, setInternalOpen] = (0,
|
|
3425
|
-
const setOpen = (0,
|
|
2627
|
+
const [isOpen, setInternalOpen] = (0, import_react32.useState)(false);
|
|
2628
|
+
const setOpen = (0, import_react32.useCallback)(
|
|
3426
2629
|
(open) => {
|
|
3427
2630
|
if (isDisabled && open) return;
|
|
3428
2631
|
setInternalOpen(open);
|
|
@@ -3439,30 +2642,30 @@ var useDatePickerOpenState = ({
|
|
|
3439
2642
|
};
|
|
3440
2643
|
var useDatePickerViewState = (initialDate) => {
|
|
3441
2644
|
const now = /* @__PURE__ */ new Date();
|
|
3442
|
-
const [viewDate, setViewDate] = (0,
|
|
3443
|
-
const [viewMode, setViewMode] = (0,
|
|
3444
|
-
const goToPreviousMonth = (0,
|
|
2645
|
+
const [viewDate, setViewDate] = (0, import_react32.useState)(initialDate ?? now);
|
|
2646
|
+
const [viewMode, setViewMode] = (0, import_react32.useState)("calendar");
|
|
2647
|
+
const goToPreviousMonth = (0, import_react32.useCallback)(() => {
|
|
3445
2648
|
setViewDate((prev) => new Date(prev.getFullYear(), prev.getMonth() - 1, 1));
|
|
3446
2649
|
}, []);
|
|
3447
|
-
const goToNextMonth = (0,
|
|
2650
|
+
const goToNextMonth = (0, import_react32.useCallback)(() => {
|
|
3448
2651
|
setViewDate((prev) => new Date(prev.getFullYear(), prev.getMonth() + 1, 1));
|
|
3449
2652
|
}, []);
|
|
3450
|
-
const goToYear = (0,
|
|
2653
|
+
const goToYear = (0, import_react32.useCallback)((year) => {
|
|
3451
2654
|
setViewDate((prev) => new Date(year, prev.getMonth(), 1));
|
|
3452
2655
|
setViewMode("month");
|
|
3453
2656
|
}, []);
|
|
3454
|
-
const goToMonth = (0,
|
|
2657
|
+
const goToMonth = (0, import_react32.useCallback)((month) => {
|
|
3455
2658
|
setViewDate((prev) => new Date(prev.getFullYear(), month, 1));
|
|
3456
2659
|
setViewMode("calendar");
|
|
3457
2660
|
}, []);
|
|
3458
|
-
const goToToday = (0,
|
|
2661
|
+
const goToToday = (0, import_react32.useCallback)(() => {
|
|
3459
2662
|
setViewDate(/* @__PURE__ */ new Date());
|
|
3460
2663
|
setViewMode("calendar");
|
|
3461
2664
|
}, []);
|
|
3462
|
-
const toggleYearPicker = (0,
|
|
2665
|
+
const toggleYearPicker = (0, import_react32.useCallback)(() => {
|
|
3463
2666
|
setViewMode((prev) => prev === "year" ? "calendar" : "year");
|
|
3464
2667
|
}, []);
|
|
3465
|
-
const syncViewToDate = (0,
|
|
2668
|
+
const syncViewToDate = (0, import_react32.useCallback)((date) => {
|
|
3466
2669
|
setViewDate(date);
|
|
3467
2670
|
}, []);
|
|
3468
2671
|
return {
|
|
@@ -3486,9 +2689,7 @@ var getWeekdayNames = (locale, firstDayOfWeek) => {
|
|
|
3486
2689
|
const days = [];
|
|
3487
2690
|
for (let i = 0; i < 7; i++) {
|
|
3488
2691
|
const date = new Date(2024, 0, 1 + offset + i);
|
|
3489
|
-
days.push(
|
|
3490
|
-
date.toLocaleDateString(locale, { weekday: "short" }).slice(0, 2)
|
|
3491
|
-
);
|
|
2692
|
+
days.push(date.toLocaleDateString(locale, { weekday: "short" }).slice(0, 2));
|
|
3492
2693
|
}
|
|
3493
2694
|
return days;
|
|
3494
2695
|
};
|
|
@@ -3648,8 +2849,8 @@ var getFirstDayOfWeek = (locale) => {
|
|
|
3648
2849
|
};
|
|
3649
2850
|
|
|
3650
2851
|
// src/components/datepicker/datepicker.style.ts
|
|
3651
|
-
var
|
|
3652
|
-
var styles9 =
|
|
2852
|
+
var import_react_native26 = require("react-native");
|
|
2853
|
+
var styles9 = import_react_native26.StyleSheet.create({
|
|
3653
2854
|
container: {
|
|
3654
2855
|
gap: 6,
|
|
3655
2856
|
position: "relative"
|
|
@@ -3699,13 +2900,13 @@ var styles9 = import_react_native33.StyleSheet.create({
|
|
|
3699
2900
|
});
|
|
3700
2901
|
|
|
3701
2902
|
// src/components/dialogs/datepicker-dialog/datepicker-dialog.tsx
|
|
3702
|
-
var
|
|
3703
|
-
var
|
|
2903
|
+
var import_react38 = __toESM(require("react"), 1);
|
|
2904
|
+
var import_react_native33 = require("react-native");
|
|
3704
2905
|
var import_react_native_gesture_handler2 = require("react-native-gesture-handler");
|
|
3705
2906
|
|
|
3706
2907
|
// src/components/dialogs/datepicker-dialog/datepicker-dialog.animation.ts
|
|
3707
|
-
var
|
|
3708
|
-
var
|
|
2908
|
+
var import_react33 = require("react");
|
|
2909
|
+
var import_react_native27 = require("react-native");
|
|
3709
2910
|
var useDatePickerDialogAnimation = ({
|
|
3710
2911
|
visible,
|
|
3711
2912
|
fadeAnim,
|
|
@@ -3713,26 +2914,26 @@ var useDatePickerDialogAnimation = ({
|
|
|
3713
2914
|
scaleAnim,
|
|
3714
2915
|
onCloseComplete
|
|
3715
2916
|
}) => {
|
|
3716
|
-
const [shouldRender, setShouldRender] = (0,
|
|
3717
|
-
const isClosingRef = (0,
|
|
3718
|
-
(0,
|
|
2917
|
+
const [shouldRender, setShouldRender] = (0, import_react33.useState)(false);
|
|
2918
|
+
const isClosingRef = (0, import_react33.useRef)(false);
|
|
2919
|
+
(0, import_react33.useEffect)(() => {
|
|
3719
2920
|
if (visible) {
|
|
3720
2921
|
setShouldRender(true);
|
|
3721
2922
|
isClosingRef.current = false;
|
|
3722
|
-
|
|
3723
|
-
|
|
2923
|
+
import_react_native27.Animated.parallel([
|
|
2924
|
+
import_react_native27.Animated.timing(fadeAnim, {
|
|
3724
2925
|
toValue: 1,
|
|
3725
2926
|
duration: 220,
|
|
3726
2927
|
useNativeDriver: true
|
|
3727
2928
|
}),
|
|
3728
|
-
|
|
2929
|
+
import_react_native27.Animated.spring(slideAnim, {
|
|
3729
2930
|
toValue: 1,
|
|
3730
2931
|
useNativeDriver: true,
|
|
3731
2932
|
damping: 20,
|
|
3732
2933
|
stiffness: 300,
|
|
3733
2934
|
mass: 0.8
|
|
3734
2935
|
}),
|
|
3735
|
-
|
|
2936
|
+
import_react_native27.Animated.spring(scaleAnim, {
|
|
3736
2937
|
toValue: 1,
|
|
3737
2938
|
useNativeDriver: true,
|
|
3738
2939
|
damping: 18,
|
|
@@ -3744,23 +2945,23 @@ var useDatePickerDialogAnimation = ({
|
|
|
3744
2945
|
}
|
|
3745
2946
|
if (!shouldRender || isClosingRef.current) return;
|
|
3746
2947
|
isClosingRef.current = true;
|
|
3747
|
-
|
|
3748
|
-
|
|
2948
|
+
import_react_native27.Animated.parallel([
|
|
2949
|
+
import_react_native27.Animated.timing(fadeAnim, {
|
|
3749
2950
|
toValue: 0,
|
|
3750
2951
|
duration: 180,
|
|
3751
|
-
easing:
|
|
2952
|
+
easing: import_react_native27.Easing.out(import_react_native27.Easing.ease),
|
|
3752
2953
|
useNativeDriver: true
|
|
3753
2954
|
}),
|
|
3754
|
-
|
|
2955
|
+
import_react_native27.Animated.timing(slideAnim, {
|
|
3755
2956
|
toValue: 0,
|
|
3756
2957
|
duration: 180,
|
|
3757
|
-
easing:
|
|
2958
|
+
easing: import_react_native27.Easing.out(import_react_native27.Easing.ease),
|
|
3758
2959
|
useNativeDriver: true
|
|
3759
2960
|
}),
|
|
3760
|
-
|
|
2961
|
+
import_react_native27.Animated.timing(scaleAnim, {
|
|
3761
2962
|
toValue: 0,
|
|
3762
2963
|
duration: 180,
|
|
3763
|
-
easing:
|
|
2964
|
+
easing: import_react_native27.Easing.out(import_react_native27.Easing.ease),
|
|
3764
2965
|
useNativeDriver: true
|
|
3765
2966
|
})
|
|
3766
2967
|
]).start(() => {
|
|
@@ -3774,9 +2975,9 @@ var useDatePickerDialogAnimation = ({
|
|
|
3774
2975
|
var useViewTransitionAnimation = ({
|
|
3775
2976
|
fadeAnim
|
|
3776
2977
|
}) => {
|
|
3777
|
-
const animate = (0,
|
|
2978
|
+
const animate = (0, import_react33.useCallback)(() => {
|
|
3778
2979
|
fadeAnim.setValue(0);
|
|
3779
|
-
|
|
2980
|
+
import_react_native27.Animated.timing(fadeAnim, {
|
|
3780
2981
|
toValue: 1,
|
|
3781
2982
|
duration: 200,
|
|
3782
2983
|
useNativeDriver: true
|
|
@@ -3788,20 +2989,20 @@ var useMonthSlideAnimation = ({
|
|
|
3788
2989
|
slideAnim,
|
|
3789
2990
|
fadeAnim
|
|
3790
2991
|
}) => {
|
|
3791
|
-
const animate = (0,
|
|
2992
|
+
const animate = (0, import_react33.useCallback)(
|
|
3792
2993
|
(direction) => {
|
|
3793
2994
|
const startX = direction === "right" ? 60 : -60;
|
|
3794
2995
|
slideAnim.setValue(startX);
|
|
3795
2996
|
fadeAnim.setValue(0);
|
|
3796
|
-
|
|
3797
|
-
|
|
2997
|
+
import_react_native27.Animated.parallel([
|
|
2998
|
+
import_react_native27.Animated.spring(slideAnim, {
|
|
3798
2999
|
toValue: 0,
|
|
3799
3000
|
useNativeDriver: true,
|
|
3800
3001
|
damping: 22,
|
|
3801
3002
|
stiffness: 280,
|
|
3802
3003
|
mass: 0.7
|
|
3803
3004
|
}),
|
|
3804
|
-
|
|
3005
|
+
import_react_native27.Animated.timing(fadeAnim, {
|
|
3805
3006
|
toValue: 1,
|
|
3806
3007
|
duration: 180,
|
|
3807
3008
|
useNativeDriver: true
|
|
@@ -3814,15 +3015,15 @@ var useMonthSlideAnimation = ({
|
|
|
3814
3015
|
};
|
|
3815
3016
|
|
|
3816
3017
|
// src/components/dialogs/datepicker-dialog/datepicker-dialog-calendar.tsx
|
|
3817
|
-
var
|
|
3818
|
-
var
|
|
3018
|
+
var import_react34 = __toESM(require("react"), 1);
|
|
3019
|
+
var import_react_native29 = require("react-native");
|
|
3819
3020
|
var import_react_native_gesture_handler = require("react-native-gesture-handler");
|
|
3820
3021
|
|
|
3821
3022
|
// src/components/dialogs/datepicker-dialog/datepicker-dialog.style.ts
|
|
3822
|
-
var
|
|
3823
|
-
var styles10 =
|
|
3023
|
+
var import_react_native28 = require("react-native");
|
|
3024
|
+
var styles10 = import_react_native28.StyleSheet.create({
|
|
3824
3025
|
backdrop: {
|
|
3825
|
-
...
|
|
3026
|
+
...import_react_native28.StyleSheet.absoluteFillObject,
|
|
3826
3027
|
backgroundColor: "rgba(0, 0, 0, 0.5)"
|
|
3827
3028
|
},
|
|
3828
3029
|
dialogContainer: {
|
|
@@ -4034,11 +3235,11 @@ var AnimatedDayCell = ({
|
|
|
4034
3235
|
const isDefault = themeColor === "default";
|
|
4035
3236
|
const accentColor = isDefault ? theme.colors.foreground : colorScheme.main;
|
|
4036
3237
|
const accentFg = isDefault ? theme.colors.background : colorScheme.foreground;
|
|
4037
|
-
const scaleAnim = (0,
|
|
4038
|
-
(0,
|
|
3238
|
+
const scaleAnim = (0, import_react34.useRef)(new import_react_native29.Animated.Value(isSelected ? 1 : 0)).current;
|
|
3239
|
+
(0, import_react34.useEffect)(() => {
|
|
4039
3240
|
if (isSelected) {
|
|
4040
3241
|
scaleAnim.setValue(0.92);
|
|
4041
|
-
|
|
3242
|
+
import_react_native29.Animated.spring(scaleAnim, {
|
|
4042
3243
|
toValue: 1,
|
|
4043
3244
|
useNativeDriver: true,
|
|
4044
3245
|
damping: 20,
|
|
@@ -4050,8 +3251,8 @@ var AnimatedDayCell = ({
|
|
|
4050
3251
|
}
|
|
4051
3252
|
}, [isSelected, scaleAnim]);
|
|
4052
3253
|
const animatedStyle = isSelected ? { transform: [{ scale: scaleAnim }] } : void 0;
|
|
4053
|
-
return /* @__PURE__ */
|
|
4054
|
-
|
|
3254
|
+
return /* @__PURE__ */ import_react34.default.createElement(
|
|
3255
|
+
import_react_native29.Pressable,
|
|
4055
3256
|
{
|
|
4056
3257
|
style: [
|
|
4057
3258
|
styles10.dayCell,
|
|
@@ -4073,8 +3274,8 @@ var AnimatedDayCell = ({
|
|
|
4073
3274
|
disabled: isDisabled
|
|
4074
3275
|
}
|
|
4075
3276
|
},
|
|
4076
|
-
isSelected ? /* @__PURE__ */
|
|
4077
|
-
|
|
3277
|
+
isSelected ? /* @__PURE__ */ import_react34.default.createElement(
|
|
3278
|
+
import_react_native29.Animated.View,
|
|
4078
3279
|
{
|
|
4079
3280
|
style: [
|
|
4080
3281
|
styles10.selectedCellInner,
|
|
@@ -4082,9 +3283,9 @@ var AnimatedDayCell = ({
|
|
|
4082
3283
|
animatedStyle
|
|
4083
3284
|
]
|
|
4084
3285
|
},
|
|
4085
|
-
/* @__PURE__ */
|
|
4086
|
-
) : /* @__PURE__ */
|
|
4087
|
-
|
|
3286
|
+
/* @__PURE__ */ import_react34.default.createElement(import_react_native29.Text, { style: [styles10.dayText, { color: accentFg }] }, day)
|
|
3287
|
+
) : /* @__PURE__ */ import_react34.default.createElement(
|
|
3288
|
+
import_react_native29.Text,
|
|
4088
3289
|
{
|
|
4089
3290
|
style: [
|
|
4090
3291
|
styles10.dayText,
|
|
@@ -4114,12 +3315,12 @@ var DatePickerDialogCalendar = ({
|
|
|
4114
3315
|
onNextMonth
|
|
4115
3316
|
}) => {
|
|
4116
3317
|
const theme = useXUITheme();
|
|
4117
|
-
const swipeHandledRef = (0,
|
|
4118
|
-
const weekdays = (0,
|
|
3318
|
+
const swipeHandledRef = (0, import_react34.useRef)(false);
|
|
3319
|
+
const weekdays = (0, import_react34.useMemo)(
|
|
4119
3320
|
() => getWeekdayNames(locale, firstDayOfWeek),
|
|
4120
3321
|
[locale, firstDayOfWeek]
|
|
4121
3322
|
);
|
|
4122
|
-
const days = (0,
|
|
3323
|
+
const days = (0, import_react34.useMemo)(
|
|
4123
3324
|
() => getCalendarDays(
|
|
4124
3325
|
viewDate.getFullYear(),
|
|
4125
3326
|
viewDate.getMonth(),
|
|
@@ -4129,7 +3330,7 @@ var DatePickerDialogCalendar = ({
|
|
|
4129
3330
|
),
|
|
4130
3331
|
[viewDate, firstDayOfWeek, minDate, maxDate]
|
|
4131
3332
|
);
|
|
4132
|
-
const weeks = (0,
|
|
3333
|
+
const weeks = (0, import_react34.useMemo)(() => {
|
|
4133
3334
|
const result = [];
|
|
4134
3335
|
for (let i = 0; i < days.length; i += 7) {
|
|
4135
3336
|
result.push(days.slice(i, i + 7));
|
|
@@ -4154,15 +3355,15 @@ var DatePickerDialogCalendar = ({
|
|
|
4154
3355
|
}
|
|
4155
3356
|
onSwipeEnd(event);
|
|
4156
3357
|
};
|
|
4157
|
-
return /* @__PURE__ */
|
|
3358
|
+
return /* @__PURE__ */ import_react34.default.createElement(
|
|
4158
3359
|
import_react_native_gesture_handler.PanGestureHandler,
|
|
4159
3360
|
{
|
|
4160
3361
|
activeOffsetX: [-12, 12],
|
|
4161
3362
|
failOffsetY: [-12, 12],
|
|
4162
3363
|
onHandlerStateChange: onSwipeStateChange
|
|
4163
3364
|
},
|
|
4164
|
-
/* @__PURE__ */
|
|
4165
|
-
|
|
3365
|
+
/* @__PURE__ */ import_react34.default.createElement(import_react_native29.View, { style: styles10.calendarGrid }, /* @__PURE__ */ import_react34.default.createElement(import_react_native29.View, { style: styles10.weekdayRow }, weekdays.map((day, index) => /* @__PURE__ */ import_react34.default.createElement(import_react_native29.View, { key: index, style: styles10.weekdayCell }, /* @__PURE__ */ import_react34.default.createElement(
|
|
3366
|
+
import_react_native29.Text,
|
|
4166
3367
|
{
|
|
4167
3368
|
style: [
|
|
4168
3369
|
styles10.weekdayText,
|
|
@@ -4170,7 +3371,7 @@ var DatePickerDialogCalendar = ({
|
|
|
4170
3371
|
]
|
|
4171
3372
|
},
|
|
4172
3373
|
day
|
|
4173
|
-
)))), weeks.map((week, weekIndex) => /* @__PURE__ */
|
|
3374
|
+
)))), weeks.map((week, weekIndex) => /* @__PURE__ */ import_react34.default.createElement(import_react_native29.View, { key: weekIndex, style: styles10.dayRow }, week.map((dayInfo, dayIndex) => /* @__PURE__ */ import_react34.default.createElement(
|
|
4174
3375
|
AnimatedDayCell,
|
|
4175
3376
|
{
|
|
4176
3377
|
key: dayIndex,
|
|
@@ -4189,8 +3390,12 @@ var DatePickerDialogCalendar = ({
|
|
|
4189
3390
|
};
|
|
4190
3391
|
|
|
4191
3392
|
// src/components/dialogs/datepicker-dialog/datepicker-dialog-header.tsx
|
|
4192
|
-
var
|
|
4193
|
-
var
|
|
3393
|
+
var import_react35 = __toESM(require("react"), 1);
|
|
3394
|
+
var import_react_native30 = require("react-native");
|
|
3395
|
+
var import_chevron_down = require("@xaui/icons/chevron-down");
|
|
3396
|
+
var import_chevron_left = require("@xaui/icons/chevron-left");
|
|
3397
|
+
var import_chevron_right = require("@xaui/icons/chevron-right");
|
|
3398
|
+
var import_close = require("@xaui/icons/close");
|
|
4194
3399
|
var DatePickerDialogHeader = ({
|
|
4195
3400
|
viewDate,
|
|
4196
3401
|
selectedDate,
|
|
@@ -4204,89 +3409,77 @@ var DatePickerDialogHeader = ({
|
|
|
4204
3409
|
}) => {
|
|
4205
3410
|
const theme = useXUITheme();
|
|
4206
3411
|
const colorScheme = theme.colors[themeColor] ?? theme.colors.primary;
|
|
4207
|
-
const dateText = (0,
|
|
3412
|
+
const dateText = (0, import_react35.useMemo)(() => {
|
|
4208
3413
|
if (!selectedDate) return "---";
|
|
4209
3414
|
return formatDate(selectedDate, locale);
|
|
4210
3415
|
}, [selectedDate, locale]);
|
|
4211
|
-
const monthYearLabel = (0,
|
|
3416
|
+
const monthYearLabel = (0, import_react35.useMemo)(() => {
|
|
4212
3417
|
const month = getMonthName(viewDate.getMonth(), locale);
|
|
4213
3418
|
return `${month} ${viewDate.getFullYear()}`;
|
|
4214
3419
|
}, [viewDate, locale]);
|
|
4215
|
-
return /* @__PURE__ */
|
|
4216
|
-
|
|
3420
|
+
return /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, /* @__PURE__ */ import_react35.default.createElement(import_react_native30.View, { style: [styles10.header, { backgroundColor: colorScheme.main }] }, /* @__PURE__ */ import_react35.default.createElement(import_react_native30.Text, { style: [styles10.headerLabel, { color: colorScheme.foreground }] }, selectDateLabel), /* @__PURE__ */ import_react35.default.createElement(import_react_native30.View, { style: styles10.headerDateRow }, /* @__PURE__ */ import_react35.default.createElement(import_react_native30.Text, { style: [styles10.headerDate, { color: colorScheme.foreground }] }, dateText), selectedDate ? /* @__PURE__ */ import_react35.default.createElement(
|
|
3421
|
+
import_react_native30.Pressable,
|
|
4217
3422
|
{
|
|
4218
3423
|
onPress: onClearValue,
|
|
4219
3424
|
hitSlop: { top: 8, right: 8, bottom: 8, left: 8 },
|
|
4220
3425
|
accessibilityLabel: "Clear date",
|
|
4221
3426
|
accessibilityRole: "button"
|
|
4222
3427
|
},
|
|
4223
|
-
/* @__PURE__ */
|
|
4224
|
-
))), /* @__PURE__ */
|
|
4225
|
-
|
|
3428
|
+
/* @__PURE__ */ import_react35.default.createElement(import_close.CloseIcon, { size: 20, color: colorScheme.foreground })
|
|
3429
|
+
) : null)), /* @__PURE__ */ import_react35.default.createElement(import_react_native30.View, { style: styles10.navigationRow }, /* @__PURE__ */ import_react35.default.createElement(
|
|
3430
|
+
import_react_native30.Pressable,
|
|
4226
3431
|
{
|
|
4227
3432
|
style: styles10.monthYearButton,
|
|
4228
3433
|
onPress: onToggleYearPicker,
|
|
4229
3434
|
accessibilityLabel: `${monthYearLabel}, tap to change`,
|
|
4230
3435
|
accessibilityRole: "button"
|
|
4231
3436
|
},
|
|
4232
|
-
/* @__PURE__ */
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
},
|
|
4237
|
-
monthYearLabel
|
|
4238
|
-
),
|
|
4239
|
-
/* @__PURE__ */ import_react42.default.createElement(
|
|
4240
|
-
ChevronDownIcon,
|
|
4241
|
-
{
|
|
4242
|
-
size: 18,
|
|
4243
|
-
color: theme.colors.foreground
|
|
4244
|
-
}
|
|
4245
|
-
)
|
|
4246
|
-
), /* @__PURE__ */ import_react42.default.createElement(import_react_native37.View, { style: styles10.navButtons }, /* @__PURE__ */ import_react42.default.createElement(
|
|
4247
|
-
import_react_native37.Pressable,
|
|
3437
|
+
/* @__PURE__ */ import_react35.default.createElement(import_react_native30.Text, { style: [styles10.monthYearText, { color: theme.colors.foreground }] }, monthYearLabel),
|
|
3438
|
+
/* @__PURE__ */ import_react35.default.createElement(import_chevron_down.ChevronDownIcon, { size: 18, color: theme.colors.foreground })
|
|
3439
|
+
), /* @__PURE__ */ import_react35.default.createElement(import_react_native30.View, { style: styles10.navButtons }, /* @__PURE__ */ import_react35.default.createElement(
|
|
3440
|
+
import_react_native30.Pressable,
|
|
4248
3441
|
{
|
|
4249
3442
|
style: styles10.navButton,
|
|
4250
3443
|
onPress: onPreviousMonth,
|
|
4251
3444
|
accessibilityLabel: "Previous month",
|
|
4252
3445
|
accessibilityRole: "button"
|
|
4253
3446
|
},
|
|
4254
|
-
/* @__PURE__ */
|
|
4255
|
-
), /* @__PURE__ */
|
|
4256
|
-
|
|
3447
|
+
/* @__PURE__ */ import_react35.default.createElement(import_chevron_left.ChevronLeftIcon, { size: 20, color: theme.colors.foreground })
|
|
3448
|
+
), /* @__PURE__ */ import_react35.default.createElement(
|
|
3449
|
+
import_react_native30.Pressable,
|
|
4257
3450
|
{
|
|
4258
3451
|
style: styles10.navButton,
|
|
4259
3452
|
onPress: onNextMonth,
|
|
4260
3453
|
accessibilityLabel: "Next month",
|
|
4261
3454
|
accessibilityRole: "button"
|
|
4262
3455
|
},
|
|
4263
|
-
/* @__PURE__ */
|
|
3456
|
+
/* @__PURE__ */ import_react35.default.createElement(import_chevron_right.ChevronRightIcon, { size: 20, color: theme.colors.foreground })
|
|
4264
3457
|
))));
|
|
4265
3458
|
};
|
|
4266
3459
|
|
|
4267
3460
|
// src/components/dialogs/datepicker-dialog/datepicker-dialog-month-picker.tsx
|
|
4268
|
-
var
|
|
4269
|
-
var
|
|
3461
|
+
var import_react36 = __toESM(require("react"), 1);
|
|
3462
|
+
var import_react_native31 = require("react-native");
|
|
4270
3463
|
var DatePickerDialogMonthPicker = ({ viewDate, locale, themeColor, onSelectMonth }) => {
|
|
4271
3464
|
const theme = useXUITheme();
|
|
4272
3465
|
const colorScheme = theme.colors[themeColor] ?? theme.colors.primary;
|
|
4273
3466
|
const isDefault = themeColor === "default";
|
|
4274
3467
|
const accentColor = isDefault ? theme.colors.foreground : colorScheme.main;
|
|
4275
3468
|
const accentFg = isDefault ? theme.colors.background : colorScheme.foreground;
|
|
4276
|
-
const months = (0,
|
|
3469
|
+
const months = (0, import_react36.useMemo)(() => getMonthNames(locale), [locale]);
|
|
4277
3470
|
const currentMonth = viewDate.getMonth();
|
|
4278
|
-
const groupAnim = (0,
|
|
4279
|
-
(0,
|
|
3471
|
+
const groupAnim = (0, import_react36.useRef)(new import_react_native31.Animated.Value(0)).current;
|
|
3472
|
+
(0, import_react36.useEffect)(() => {
|
|
4280
3473
|
groupAnim.setValue(0);
|
|
4281
|
-
|
|
3474
|
+
import_react_native31.Animated.timing(groupAnim, {
|
|
4282
3475
|
toValue: 1,
|
|
4283
3476
|
duration: 220,
|
|
4284
|
-
easing:
|
|
3477
|
+
easing: import_react_native31.Easing.out(import_react_native31.Easing.cubic),
|
|
4285
3478
|
useNativeDriver: true
|
|
4286
3479
|
}).start();
|
|
4287
3480
|
}, [groupAnim]);
|
|
4288
|
-
return /* @__PURE__ */
|
|
4289
|
-
|
|
3481
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_react_native31.View, { style: styles10.monthPickerContainer }, /* @__PURE__ */ import_react36.default.createElement(
|
|
3482
|
+
import_react_native31.Animated.View,
|
|
4290
3483
|
{
|
|
4291
3484
|
style: {
|
|
4292
3485
|
opacity: groupAnim,
|
|
@@ -4300,10 +3493,10 @@ var DatePickerDialogMonthPicker = ({ viewDate, locale, themeColor, onSelectMonth
|
|
|
4300
3493
|
]
|
|
4301
3494
|
}
|
|
4302
3495
|
},
|
|
4303
|
-
/* @__PURE__ */
|
|
3496
|
+
/* @__PURE__ */ import_react36.default.createElement(import_react_native31.View, { style: styles10.monthGrid }, months.map((name, index) => {
|
|
4304
3497
|
const isCurrentMonth = index === currentMonth;
|
|
4305
|
-
return /* @__PURE__ */
|
|
4306
|
-
|
|
3498
|
+
return /* @__PURE__ */ import_react36.default.createElement(
|
|
3499
|
+
import_react_native31.Pressable,
|
|
4307
3500
|
{
|
|
4308
3501
|
key: index,
|
|
4309
3502
|
style: [
|
|
@@ -4315,8 +3508,8 @@ var DatePickerDialogMonthPicker = ({ viewDate, locale, themeColor, onSelectMonth
|
|
|
4315
3508
|
accessibilityRole: "button",
|
|
4316
3509
|
accessibilityState: { selected: isCurrentMonth }
|
|
4317
3510
|
},
|
|
4318
|
-
/* @__PURE__ */
|
|
4319
|
-
|
|
3511
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
3512
|
+
import_react_native31.Text,
|
|
4320
3513
|
{
|
|
4321
3514
|
style: [
|
|
4322
3515
|
styles10.monthText,
|
|
@@ -4335,38 +3528,35 @@ var DatePickerDialogMonthPicker = ({ viewDate, locale, themeColor, onSelectMonth
|
|
|
4335
3528
|
};
|
|
4336
3529
|
|
|
4337
3530
|
// src/components/dialogs/datepicker-dialog/datepicker-dialog-year-picker.tsx
|
|
4338
|
-
var
|
|
4339
|
-
var
|
|
3531
|
+
var import_react37 = __toESM(require("react"), 1);
|
|
3532
|
+
var import_react_native32 = require("react-native");
|
|
4340
3533
|
var ITEM_HEIGHT = 48;
|
|
4341
3534
|
var NUM_COLUMNS = 4;
|
|
4342
3535
|
var DatePickerDialogYearPicker = ({ viewDate, themeColor, minDate, maxDate, onSelectYear }) => {
|
|
4343
|
-
const listRef = (0,
|
|
4344
|
-
const groupAnim = (0,
|
|
3536
|
+
const listRef = (0, import_react37.useRef)(null);
|
|
3537
|
+
const groupAnim = (0, import_react37.useRef)(new import_react_native32.Animated.Value(0)).current;
|
|
4345
3538
|
const theme = useXUITheme();
|
|
4346
3539
|
const colorScheme = theme.colors[themeColor] ?? theme.colors.primary;
|
|
4347
3540
|
const isDefault = themeColor === "default";
|
|
4348
3541
|
const accentColor = isDefault ? theme.colors.foreground : colorScheme.main;
|
|
4349
3542
|
const accentFg = isDefault ? theme.colors.background : colorScheme.foreground;
|
|
4350
|
-
const years = (0,
|
|
4351
|
-
() => getYearRange(minDate, maxDate),
|
|
4352
|
-
[minDate, maxDate]
|
|
4353
|
-
);
|
|
3543
|
+
const years = (0, import_react37.useMemo)(() => getYearRange(minDate, maxDate), [minDate, maxDate]);
|
|
4354
3544
|
const currentYear = viewDate.getFullYear();
|
|
4355
|
-
const initialIndex = (0,
|
|
3545
|
+
const initialIndex = (0, import_react37.useMemo)(() => {
|
|
4356
3546
|
const index = years.indexOf(currentYear);
|
|
4357
3547
|
const rowIndex = Math.floor(index / NUM_COLUMNS);
|
|
4358
3548
|
return Math.max(0, rowIndex);
|
|
4359
3549
|
}, [years, currentYear]);
|
|
4360
|
-
(0,
|
|
3550
|
+
(0, import_react37.useEffect)(() => {
|
|
4361
3551
|
groupAnim.setValue(0);
|
|
4362
|
-
|
|
3552
|
+
import_react_native32.Animated.timing(groupAnim, {
|
|
4363
3553
|
toValue: 1,
|
|
4364
3554
|
duration: 220,
|
|
4365
|
-
easing:
|
|
3555
|
+
easing: import_react_native32.Easing.out(import_react_native32.Easing.cubic),
|
|
4366
3556
|
useNativeDriver: true
|
|
4367
3557
|
}).start();
|
|
4368
3558
|
}, [groupAnim]);
|
|
4369
|
-
const getItemLayout = (0,
|
|
3559
|
+
const getItemLayout = (0, import_react37.useCallback)(
|
|
4370
3560
|
(_, index) => ({
|
|
4371
3561
|
length: ITEM_HEIGHT,
|
|
4372
3562
|
offset: ITEM_HEIGHT * index,
|
|
@@ -4374,11 +3564,11 @@ var DatePickerDialogYearPicker = ({ viewDate, themeColor, minDate, maxDate, onSe
|
|
|
4374
3564
|
}),
|
|
4375
3565
|
[]
|
|
4376
3566
|
);
|
|
4377
|
-
const renderYear = (0,
|
|
3567
|
+
const renderYear = (0, import_react37.useCallback)(
|
|
4378
3568
|
({ item }) => {
|
|
4379
3569
|
const isCurrentYear = item === currentYear;
|
|
4380
|
-
return /* @__PURE__ */
|
|
4381
|
-
|
|
3570
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
3571
|
+
import_react_native32.Pressable,
|
|
4382
3572
|
{
|
|
4383
3573
|
style: [
|
|
4384
3574
|
styles10.yearCell,
|
|
@@ -4389,8 +3579,8 @@ var DatePickerDialogYearPicker = ({ viewDate, themeColor, minDate, maxDate, onSe
|
|
|
4389
3579
|
accessibilityRole: "button",
|
|
4390
3580
|
accessibilityState: { selected: isCurrentYear }
|
|
4391
3581
|
},
|
|
4392
|
-
/* @__PURE__ */
|
|
4393
|
-
|
|
3582
|
+
/* @__PURE__ */ import_react37.default.createElement(
|
|
3583
|
+
import_react_native32.Text,
|
|
4394
3584
|
{
|
|
4395
3585
|
style: [
|
|
4396
3586
|
styles10.yearText,
|
|
@@ -4407,8 +3597,8 @@ var DatePickerDialogYearPicker = ({ viewDate, themeColor, minDate, maxDate, onSe
|
|
|
4407
3597
|
},
|
|
4408
3598
|
[currentYear, onSelectYear, accentColor, accentFg, theme.colors.foreground]
|
|
4409
3599
|
);
|
|
4410
|
-
return /* @__PURE__ */
|
|
4411
|
-
|
|
3600
|
+
return /* @__PURE__ */ import_react37.default.createElement(import_react_native32.View, { style: styles10.yearPickerContainer }, /* @__PURE__ */ import_react37.default.createElement(
|
|
3601
|
+
import_react_native32.Animated.View,
|
|
4412
3602
|
{
|
|
4413
3603
|
style: {
|
|
4414
3604
|
opacity: groupAnim,
|
|
@@ -4422,8 +3612,8 @@ var DatePickerDialogYearPicker = ({ viewDate, themeColor, minDate, maxDate, onSe
|
|
|
4422
3612
|
]
|
|
4423
3613
|
}
|
|
4424
3614
|
},
|
|
4425
|
-
/* @__PURE__ */
|
|
4426
|
-
|
|
3615
|
+
/* @__PURE__ */ import_react37.default.createElement(
|
|
3616
|
+
import_react_native32.FlatList,
|
|
4427
3617
|
{
|
|
4428
3618
|
ref: listRef,
|
|
4429
3619
|
data: years,
|
|
@@ -4456,13 +3646,13 @@ var DatePickerDialog = ({
|
|
|
4456
3646
|
onClose
|
|
4457
3647
|
}) => {
|
|
4458
3648
|
const theme = useXUITheme();
|
|
4459
|
-
const { width: screenWidth, height: screenHeight } = (0,
|
|
4460
|
-
const fadeAnim = (0,
|
|
4461
|
-
const slideAnim = (0,
|
|
4462
|
-
const scaleAnim = (0,
|
|
4463
|
-
const viewFadeAnim = (0,
|
|
4464
|
-
const monthSlideXAnim = (0,
|
|
4465
|
-
const monthFadeAnim = (0,
|
|
3649
|
+
const { width: screenWidth, height: screenHeight } = (0, import_react_native33.useWindowDimensions)();
|
|
3650
|
+
const fadeAnim = (0, import_react38.useRef)(new import_react_native33.Animated.Value(0)).current;
|
|
3651
|
+
const slideAnim = (0, import_react38.useRef)(new import_react_native33.Animated.Value(0)).current;
|
|
3652
|
+
const scaleAnim = (0, import_react38.useRef)(new import_react_native33.Animated.Value(0)).current;
|
|
3653
|
+
const viewFadeAnim = (0, import_react38.useRef)(new import_react_native33.Animated.Value(1)).current;
|
|
3654
|
+
const monthSlideXAnim = (0, import_react38.useRef)(new import_react_native33.Animated.Value(0)).current;
|
|
3655
|
+
const monthFadeAnim = (0, import_react38.useRef)(new import_react_native33.Animated.Value(1)).current;
|
|
4466
3656
|
const colorScheme = theme.colors[themeColor] ?? theme.colors.primary;
|
|
4467
3657
|
const isDefault = themeColor === "default";
|
|
4468
3658
|
const accentColor = isDefault ? theme.colors.foreground : colorScheme.main;
|
|
@@ -4480,7 +3670,7 @@ var DatePickerDialog = ({
|
|
|
4480
3670
|
toggleYearPicker,
|
|
4481
3671
|
syncViewToDate
|
|
4482
3672
|
} = useDatePickerViewState(selectedDate);
|
|
4483
|
-
const onCloseComplete = (0,
|
|
3673
|
+
const onCloseComplete = (0, import_react38.useCallback)(() => {
|
|
4484
3674
|
fadeAnim.setValue(0);
|
|
4485
3675
|
slideAnim.setValue(0);
|
|
4486
3676
|
scaleAnim.setValue(0);
|
|
@@ -4502,41 +3692,41 @@ var DatePickerDialog = ({
|
|
|
4502
3692
|
slideAnim: monthSlideXAnim,
|
|
4503
3693
|
fadeAnim: monthFadeAnim
|
|
4504
3694
|
});
|
|
4505
|
-
const prevViewModeRef = (0,
|
|
4506
|
-
(0,
|
|
3695
|
+
const prevViewModeRef = (0, import_react38.useRef)(viewMode);
|
|
3696
|
+
(0, import_react38.useEffect)(() => {
|
|
4507
3697
|
if (prevViewModeRef.current !== viewMode) {
|
|
4508
3698
|
prevViewModeRef.current = viewMode;
|
|
4509
3699
|
animateViewTransition();
|
|
4510
3700
|
}
|
|
4511
3701
|
}, [viewMode, animateViewTransition]);
|
|
4512
|
-
(0,
|
|
3702
|
+
(0, import_react38.useEffect)(() => {
|
|
4513
3703
|
if (visible && selectedDate) {
|
|
4514
3704
|
syncViewToDate(selectedDate);
|
|
4515
3705
|
}
|
|
4516
3706
|
}, [visible, selectedDate, syncViewToDate]);
|
|
4517
|
-
(0,
|
|
3707
|
+
(0, import_react38.useEffect)(() => {
|
|
4518
3708
|
if (!visible) return;
|
|
4519
|
-
const sub =
|
|
3709
|
+
const sub = import_react_native33.BackHandler.addEventListener("hardwareBackPress", () => {
|
|
4520
3710
|
onClose();
|
|
4521
3711
|
return true;
|
|
4522
3712
|
});
|
|
4523
3713
|
return () => sub.remove();
|
|
4524
3714
|
}, [visible, onClose]);
|
|
4525
|
-
const handlePreviousMonth = (0,
|
|
3715
|
+
const handlePreviousMonth = (0, import_react38.useCallback)(() => {
|
|
4526
3716
|
goToPreviousMonth();
|
|
4527
3717
|
animateMonthSlide("left");
|
|
4528
3718
|
}, [goToPreviousMonth, animateMonthSlide]);
|
|
4529
|
-
const handleNextMonth = (0,
|
|
3719
|
+
const handleNextMonth = (0, import_react38.useCallback)(() => {
|
|
4530
3720
|
goToNextMonth();
|
|
4531
3721
|
animateMonthSlide("right");
|
|
4532
3722
|
}, [goToNextMonth, animateMonthSlide]);
|
|
4533
|
-
const handleDaySelect = (0,
|
|
3723
|
+
const handleDaySelect = (0, import_react38.useCallback)(
|
|
4534
3724
|
(date) => {
|
|
4535
3725
|
onDateSelect(date);
|
|
4536
3726
|
},
|
|
4537
3727
|
[onDateSelect]
|
|
4538
3728
|
);
|
|
4539
|
-
const handleTodayPress = (0,
|
|
3729
|
+
const handleTodayPress = (0, import_react38.useCallback)(() => {
|
|
4540
3730
|
const today = /* @__PURE__ */ new Date();
|
|
4541
3731
|
if (!isDateInRange(today, minDate, maxDate)) return;
|
|
4542
3732
|
goToToday();
|
|
@@ -4585,7 +3775,7 @@ var DatePickerDialog = ({
|
|
|
4585
3775
|
const renderContent = () => {
|
|
4586
3776
|
switch (viewMode) {
|
|
4587
3777
|
case "year":
|
|
4588
|
-
return /* @__PURE__ */
|
|
3778
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
4589
3779
|
DatePickerDialogYearPicker,
|
|
4590
3780
|
{
|
|
4591
3781
|
viewDate,
|
|
@@ -4596,7 +3786,7 @@ var DatePickerDialog = ({
|
|
|
4596
3786
|
}
|
|
4597
3787
|
);
|
|
4598
3788
|
case "month":
|
|
4599
|
-
return /* @__PURE__ */
|
|
3789
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
4600
3790
|
DatePickerDialogMonthPicker,
|
|
4601
3791
|
{
|
|
4602
3792
|
viewDate,
|
|
@@ -4607,7 +3797,7 @@ var DatePickerDialog = ({
|
|
|
4607
3797
|
);
|
|
4608
3798
|
case "calendar":
|
|
4609
3799
|
default:
|
|
4610
|
-
return /* @__PURE__ */
|
|
3800
|
+
return /* @__PURE__ */ import_react38.default.createElement(import_react_native33.Animated.View, { style: [viewTransitionStyle, monthSlideStyle] }, /* @__PURE__ */ import_react38.default.createElement(
|
|
4611
3801
|
DatePickerDialogCalendar,
|
|
4612
3802
|
{
|
|
4613
3803
|
viewDate,
|
|
@@ -4624,23 +3814,23 @@ var DatePickerDialog = ({
|
|
|
4624
3814
|
));
|
|
4625
3815
|
}
|
|
4626
3816
|
};
|
|
4627
|
-
return /* @__PURE__ */
|
|
4628
|
-
|
|
3817
|
+
return /* @__PURE__ */ import_react38.default.createElement(Portal, null, /* @__PURE__ */ import_react38.default.createElement(import_react_native_gesture_handler2.GestureHandlerRootView, { style: [overlayStyle, style] }, /* @__PURE__ */ import_react38.default.createElement(import_react_native33.View, { style: overlayStyle }, /* @__PURE__ */ import_react38.default.createElement(import_react_native33.Animated.View, { style: [styles10.backdrop, { opacity: fadeAnim }] }, /* @__PURE__ */ import_react38.default.createElement(
|
|
3818
|
+
import_react_native33.Pressable,
|
|
4629
3819
|
{
|
|
4630
3820
|
style: { flex: 1 },
|
|
4631
3821
|
onPress: onClose,
|
|
4632
3822
|
accessibilityLabel: "Close calendar",
|
|
4633
3823
|
accessibilityRole: "button"
|
|
4634
3824
|
}
|
|
4635
|
-
)), /* @__PURE__ */
|
|
4636
|
-
|
|
3825
|
+
)), /* @__PURE__ */ import_react38.default.createElement(import_react_native33.Animated.View, { style: [styles10.dialogContainer, containerAnimatedStyle] }, /* @__PURE__ */ import_react38.default.createElement(
|
|
3826
|
+
import_react_native33.View,
|
|
4637
3827
|
{
|
|
4638
3828
|
style: [
|
|
4639
3829
|
styles10.container,
|
|
4640
3830
|
{ backgroundColor: theme.colors.background }
|
|
4641
3831
|
]
|
|
4642
3832
|
},
|
|
4643
|
-
/* @__PURE__ */
|
|
3833
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
4644
3834
|
DatePickerDialogHeader,
|
|
4645
3835
|
{
|
|
4646
3836
|
viewDate,
|
|
@@ -4655,31 +3845,33 @@ var DatePickerDialog = ({
|
|
|
4655
3845
|
}
|
|
4656
3846
|
),
|
|
4657
3847
|
renderContent(),
|
|
4658
|
-
/* @__PURE__ */
|
|
4659
|
-
|
|
3848
|
+
/* @__PURE__ */ import_react38.default.createElement(import_react_native33.View, { style: styles10.footer }, /* @__PURE__ */ import_react38.default.createElement(
|
|
3849
|
+
import_react_native33.Pressable,
|
|
4660
3850
|
{
|
|
4661
3851
|
style: styles10.footerButton,
|
|
4662
3852
|
onPress: handleTodayPress,
|
|
4663
3853
|
accessibilityLabel: resolvedTodayLabel,
|
|
4664
3854
|
accessibilityRole: "button"
|
|
4665
3855
|
},
|
|
4666
|
-
/* @__PURE__ */
|
|
4667
|
-
), /* @__PURE__ */
|
|
4668
|
-
|
|
3856
|
+
/* @__PURE__ */ import_react38.default.createElement(import_react_native33.Text, { style: [styles10.footerButtonText, { color: accentColor }] }, resolvedTodayLabel)
|
|
3857
|
+
), /* @__PURE__ */ import_react38.default.createElement(
|
|
3858
|
+
import_react_native33.Pressable,
|
|
4669
3859
|
{
|
|
4670
3860
|
style: styles10.footerButton,
|
|
4671
3861
|
onPress: onClose,
|
|
4672
3862
|
accessibilityLabel: resolvedConfirmLabel,
|
|
4673
3863
|
accessibilityRole: "button"
|
|
4674
3864
|
},
|
|
4675
|
-
/* @__PURE__ */
|
|
3865
|
+
/* @__PURE__ */ import_react38.default.createElement(import_react_native33.Text, { style: [styles10.footerButtonText, { color: accentColor }] }, resolvedConfirmLabel)
|
|
4676
3866
|
))
|
|
4677
3867
|
)))));
|
|
4678
3868
|
};
|
|
4679
3869
|
|
|
4680
3870
|
// src/components/datepicker/datepicker-trigger.tsx
|
|
4681
|
-
var
|
|
4682
|
-
var
|
|
3871
|
+
var import_react39 = __toESM(require("react"), 1);
|
|
3872
|
+
var import_react_native34 = require("react-native");
|
|
3873
|
+
var import_calendar = require("@xaui/icons/calendar");
|
|
3874
|
+
var import_close2 = require("@xaui/icons/close");
|
|
4683
3875
|
var DatePickerTrigger = ({
|
|
4684
3876
|
triggerRef,
|
|
4685
3877
|
isDisabled,
|
|
@@ -4701,8 +3893,8 @@ var DatePickerTrigger = ({
|
|
|
4701
3893
|
onLayout: handleTriggerLayout
|
|
4702
3894
|
}) => {
|
|
4703
3895
|
const renderLabel = isLabelInside && label;
|
|
4704
|
-
return /* @__PURE__ */
|
|
4705
|
-
|
|
3896
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
3897
|
+
import_react_native34.Pressable,
|
|
4706
3898
|
{
|
|
4707
3899
|
ref: triggerRef,
|
|
4708
3900
|
onPress: handleTriggerPress,
|
|
@@ -4724,8 +3916,8 @@ var DatePickerTrigger = ({
|
|
|
4724
3916
|
accessibilityRole: "button",
|
|
4725
3917
|
accessibilityState: { disabled: isDisabled }
|
|
4726
3918
|
},
|
|
4727
|
-
/* @__PURE__ */
|
|
4728
|
-
|
|
3919
|
+
/* @__PURE__ */ import_react39.default.createElement(import_react_native34.View, { style: styles9.triggerContent }, isLabelInside && renderLabel, /* @__PURE__ */ import_react39.default.createElement(
|
|
3920
|
+
import_react_native34.Text,
|
|
4729
3921
|
{
|
|
4730
3922
|
style: [
|
|
4731
3923
|
styles9.triggerText,
|
|
@@ -4738,15 +3930,15 @@ var DatePickerTrigger = ({
|
|
|
4738
3930
|
},
|
|
4739
3931
|
displayValue
|
|
4740
3932
|
)),
|
|
4741
|
-
isClearable && hasValue ? /* @__PURE__ */
|
|
4742
|
-
|
|
3933
|
+
isClearable && hasValue ? /* @__PURE__ */ import_react39.default.createElement(
|
|
3934
|
+
import_react_native34.TouchableOpacity,
|
|
4743
3935
|
{
|
|
4744
3936
|
onPress: handleClear,
|
|
4745
3937
|
style: styles9.clearButton,
|
|
4746
3938
|
hitSlop: { top: 8, right: 8, bottom: 8, left: 8 }
|
|
4747
3939
|
},
|
|
4748
|
-
/* @__PURE__ */
|
|
4749
|
-
) : calendarIcon ?? /* @__PURE__ */
|
|
3940
|
+
/* @__PURE__ */ import_react39.default.createElement(import_close2.CloseIcon, { color: theme.colors.foreground, size: 20 })
|
|
3941
|
+
) : calendarIcon ?? /* @__PURE__ */ import_react39.default.createElement(import_calendar.CalendarIcon, { color: theme.colors.foreground, size: 20 })
|
|
4750
3942
|
);
|
|
4751
3943
|
};
|
|
4752
3944
|
|
|
@@ -4791,10 +3983,10 @@ var DatePicker = ({
|
|
|
4791
3983
|
onOpen,
|
|
4792
3984
|
onClose
|
|
4793
3985
|
});
|
|
4794
|
-
const triggerRef = (0,
|
|
4795
|
-
const handleTriggerLayout = (0,
|
|
3986
|
+
const triggerRef = (0, import_react40.useRef)(null);
|
|
3987
|
+
const handleTriggerLayout = (0, import_react40.useCallback)(() => {
|
|
4796
3988
|
}, []);
|
|
4797
|
-
const firstDayOfWeek = (0,
|
|
3989
|
+
const firstDayOfWeek = (0, import_react40.useMemo)(
|
|
4798
3990
|
() => firstDayOfWeekProp ?? getFirstDayOfWeek(locale),
|
|
4799
3991
|
[firstDayOfWeekProp, locale]
|
|
4800
3992
|
);
|
|
@@ -4807,35 +3999,35 @@ var DatePicker = ({
|
|
|
4807
3999
|
sizeStyles.labelSize
|
|
4808
4000
|
);
|
|
4809
4001
|
const helperColor = useDatePickerHelperColor(isInvalid);
|
|
4810
|
-
const displayValue = (0,
|
|
4002
|
+
const displayValue = (0, import_react40.useMemo)(() => {
|
|
4811
4003
|
if (!selectedDate) return placeholder;
|
|
4812
4004
|
return formatDate(selectedDate, locale);
|
|
4813
4005
|
}, [selectedDate, locale, placeholder]);
|
|
4814
|
-
const handleTriggerPress = (0,
|
|
4006
|
+
const handleTriggerPress = (0, import_react40.useCallback)(() => {
|
|
4815
4007
|
if (!isDisabled && !isReadOnly) {
|
|
4816
4008
|
setOpen(true);
|
|
4817
4009
|
}
|
|
4818
4010
|
}, [isDisabled, isReadOnly, setOpen]);
|
|
4819
|
-
const handleClear = (0,
|
|
4011
|
+
const handleClear = (0, import_react40.useCallback)(() => {
|
|
4820
4012
|
if (isDisabled || isReadOnly) return;
|
|
4821
4013
|
updateDate(null);
|
|
4822
4014
|
}, [isDisabled, isReadOnly, updateDate]);
|
|
4823
|
-
const handleDateSelect = (0,
|
|
4015
|
+
const handleDateSelect = (0, import_react40.useCallback)(
|
|
4824
4016
|
(date) => {
|
|
4825
4017
|
updateDate(date);
|
|
4826
4018
|
},
|
|
4827
4019
|
[updateDate]
|
|
4828
4020
|
);
|
|
4829
|
-
const handleClose = (0,
|
|
4021
|
+
const handleClose = (0, import_react40.useCallback)(() => {
|
|
4830
4022
|
setOpen(false);
|
|
4831
4023
|
}, [setOpen]);
|
|
4832
4024
|
const isLabelInside = labelPlacement === "inside";
|
|
4833
4025
|
const isLabelOutsideLeft = labelPlacement === "outside-left";
|
|
4834
4026
|
const isLabelOutside = labelPlacement === "outside" || labelPlacement === "outside-top";
|
|
4835
|
-
const renderLabel = label ? typeof label === "string" || typeof label === "number" ? /* @__PURE__ */
|
|
4027
|
+
const renderLabel = label ? typeof label === "string" || typeof label === "number" ? /* @__PURE__ */ import_react40.default.createElement(import_react_native35.Text, { style: [styles9.label, labelStyle] }, label) : /* @__PURE__ */ import_react40.default.createElement(import_react_native35.View, null, label) : null;
|
|
4836
4028
|
const shouldShowHelper = Boolean(description || errorMessage);
|
|
4837
4029
|
const helperContent = isInvalid && errorMessage ? errorMessage : description;
|
|
4838
|
-
const triggerContent = /* @__PURE__ */
|
|
4030
|
+
const triggerContent = /* @__PURE__ */ import_react40.default.createElement(
|
|
4839
4031
|
DatePickerTrigger,
|
|
4840
4032
|
{
|
|
4841
4033
|
triggerRef,
|
|
@@ -4859,8 +4051,8 @@ var DatePicker = ({
|
|
|
4859
4051
|
}
|
|
4860
4052
|
);
|
|
4861
4053
|
const labelBlock = isLabelOutside || isLabelInside ? renderLabel : null;
|
|
4862
|
-
return /* @__PURE__ */
|
|
4863
|
-
|
|
4054
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
4055
|
+
import_react_native35.View,
|
|
4864
4056
|
{
|
|
4865
4057
|
style: [
|
|
4866
4058
|
styles9.container,
|
|
@@ -4869,9 +4061,9 @@ var DatePicker = ({
|
|
|
4869
4061
|
]
|
|
4870
4062
|
},
|
|
4871
4063
|
isLabelOutside && labelBlock,
|
|
4872
|
-
isLabelOutsideLeft ? /* @__PURE__ */
|
|
4873
|
-
shouldShowHelper && helperContent ? typeof helperContent === "string" || typeof helperContent === "number" ? /* @__PURE__ */
|
|
4874
|
-
/* @__PURE__ */
|
|
4064
|
+
isLabelOutsideLeft ? /* @__PURE__ */ import_react40.default.createElement(import_react_native35.View, { style: styles9.outsideLeftRow }, renderLabel, triggerContent) : triggerContent,
|
|
4065
|
+
shouldShowHelper && helperContent ? typeof helperContent === "string" || typeof helperContent === "number" ? /* @__PURE__ */ import_react40.default.createElement(import_react_native35.Text, { style: [styles9.helperText, { color: helperColor }] }, helperContent) : /* @__PURE__ */ import_react40.default.createElement(import_react_native35.View, null, helperContent) : null,
|
|
4066
|
+
/* @__PURE__ */ import_react40.default.createElement(
|
|
4875
4067
|
DatePickerDialog,
|
|
4876
4068
|
{
|
|
4877
4069
|
visible: isOpen,
|
|
@@ -4891,20 +4083,20 @@ var DatePicker = ({
|
|
|
4891
4083
|
};
|
|
4892
4084
|
|
|
4893
4085
|
// src/components/typography/typography.tsx
|
|
4894
|
-
var
|
|
4895
|
-
var
|
|
4086
|
+
var import_react42 = __toESM(require("react"), 1);
|
|
4087
|
+
var import_react_native37 = require("react-native");
|
|
4896
4088
|
|
|
4897
4089
|
// src/components/typography/typography.style.ts
|
|
4898
|
-
var
|
|
4899
|
-
var styles11 =
|
|
4090
|
+
var import_react_native36 = require("react-native");
|
|
4091
|
+
var styles11 = import_react_native36.StyleSheet.create({
|
|
4900
4092
|
text: {
|
|
4901
4093
|
includeFontPadding: false
|
|
4902
4094
|
}
|
|
4903
4095
|
});
|
|
4904
4096
|
|
|
4905
4097
|
// src/components/typography/typography.hook.ts
|
|
4906
|
-
var
|
|
4907
|
-
var
|
|
4098
|
+
var import_react41 = require("react");
|
|
4099
|
+
var import_core30 = require("@xaui/core");
|
|
4908
4100
|
var knownVariants = {
|
|
4909
4101
|
caption: true,
|
|
4910
4102
|
headlineLarge: true,
|
|
@@ -4922,18 +4114,18 @@ var isKnownVariant = (variant) => {
|
|
|
4922
4114
|
};
|
|
4923
4115
|
var useTypographyColor = (themeColor) => {
|
|
4924
4116
|
const theme = useXUITheme();
|
|
4925
|
-
const color = (0,
|
|
4117
|
+
const color = (0, import_react41.useMemo)(() => {
|
|
4926
4118
|
if (themeColor === "default") {
|
|
4927
4119
|
return theme.colors.foreground;
|
|
4928
4120
|
}
|
|
4929
|
-
const safeThemeColor = (0,
|
|
4121
|
+
const safeThemeColor = (0, import_core30.getSafeThemeColor)(themeColor);
|
|
4930
4122
|
return theme.colors[safeThemeColor].main;
|
|
4931
4123
|
}, [theme, themeColor]);
|
|
4932
4124
|
return color;
|
|
4933
4125
|
};
|
|
4934
4126
|
var useTypographyVariantStyles = (variant) => {
|
|
4935
4127
|
const theme = useXUITheme();
|
|
4936
|
-
const variantStyles = (0,
|
|
4128
|
+
const variantStyles = (0, import_react41.useMemo)(() => {
|
|
4937
4129
|
if (!isKnownVariant(variant)) {
|
|
4938
4130
|
return {
|
|
4939
4131
|
fontFamily: theme.fontFamilies.body,
|
|
@@ -5011,13 +4203,13 @@ var Typography = ({
|
|
|
5011
4203
|
const color = useTypographyColor(themeColor);
|
|
5012
4204
|
const variantStyles = useTypographyVariantStyles(variant);
|
|
5013
4205
|
const colorStyle = { color };
|
|
5014
|
-
const ellipsizeMode = (0,
|
|
4206
|
+
const ellipsizeMode = (0, import_react42.useMemo)(() => {
|
|
5015
4207
|
if (!maxLines) return void 0;
|
|
5016
4208
|
if (overflow === "clip") return "clip";
|
|
5017
4209
|
return "tail";
|
|
5018
4210
|
}, [maxLines, overflow]);
|
|
5019
|
-
return /* @__PURE__ */
|
|
5020
|
-
|
|
4211
|
+
return /* @__PURE__ */ import_react42.default.createElement(
|
|
4212
|
+
import_react_native37.Text,
|
|
5021
4213
|
{
|
|
5022
4214
|
numberOfLines: maxLines,
|
|
5023
4215
|
ellipsizeMode,
|