@retray-dev/ui-kit 12.1.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPONENTS.md +183 -147
- package/CONSUMER.md +2 -2
- package/DESIGN.md +2 -2
- package/README.md +13 -8
- package/dist/Accordion.d.mts +6 -0
- package/dist/Accordion.d.ts +6 -0
- package/dist/Accordion.js +62 -208
- package/dist/Accordion.mjs +6 -5
- package/dist/AlertBanner.js +29 -151
- package/dist/AlertBanner.mjs +3 -3
- package/dist/AppHeader.js +37 -233
- package/dist/AppHeader.mjs +6 -7
- package/dist/Avatar.d.mts +17 -1
- package/dist/Avatar.d.ts +17 -1
- package/dist/Avatar.js +80 -113
- package/dist/Avatar.mjs +2 -2
- package/dist/Badge.js +24 -147
- package/dist/Badge.mjs +3 -3
- package/dist/Button.js +86 -274
- package/dist/Button.mjs +6 -6
- package/dist/Card.js +15 -198
- package/dist/Card.mjs +4 -5
- package/dist/CategoryStrip.d.mts +0 -5
- package/dist/CategoryStrip.d.ts +0 -5
- package/dist/CategoryStrip.js +47 -263
- package/dist/CategoryStrip.mjs +6 -6
- package/dist/Checkbox.js +15 -198
- package/dist/Checkbox.mjs +5 -5
- package/dist/Chip.js +44 -234
- package/dist/Chip.mjs +7 -6
- package/dist/ConfirmDialog.js +100 -296
- package/dist/ConfirmDialog.mjs +7 -7
- package/dist/CurrencyDisplay.js +1 -112
- package/dist/CurrencyDisplay.mjs +2 -2
- package/dist/CurrencyInput.js +35 -160
- package/dist/CurrencyInput.mjs +5 -5
- package/dist/DetailRow.js +25 -148
- package/dist/DetailRow.mjs +3 -3
- package/dist/EmptyState.js +87 -275
- package/dist/EmptyState.mjs +7 -7
- package/dist/ErrorBoundary.js +32 -197
- package/dist/ErrorBoundary.mjs +4 -4
- package/dist/Form.js +1 -112
- package/dist/Form.mjs +2 -2
- package/dist/HolographicCard.d.mts +0 -28
- package/dist/HolographicCard.d.ts +0 -28
- package/dist/HolographicCard.js +20 -130
- package/dist/HolographicCard.mjs +9 -32
- package/dist/IconButton.js +36 -232
- package/dist/IconButton.mjs +5 -6
- package/dist/IconPicker.js +222 -927
- package/dist/IconPicker.mjs +5 -5
- package/dist/ImageUpload.d.mts +5 -1
- package/dist/ImageUpload.d.ts +5 -1
- package/dist/ImageUpload.js +32 -215
- package/dist/ImageUpload.mjs +5 -6
- package/dist/ImageViewer.js +75 -264
- package/dist/ImageViewer.mjs +8 -8
- package/dist/Input.d.mts +1 -1
- package/dist/Input.d.ts +1 -1
- package/dist/Input.js +35 -160
- package/dist/Input.mjs +4 -4
- package/dist/LabelValue.js +24 -147
- package/dist/LabelValue.mjs +3 -3
- package/dist/ListGroup.js +1 -112
- package/dist/ListGroup.mjs +2 -2
- package/dist/ListItem.js +38 -233
- package/dist/ListItem.mjs +5 -6
- package/dist/MediaCard.d.mts +0 -14
- package/dist/MediaCard.d.ts +0 -14
- package/dist/MediaCard.js +69 -313
- package/dist/MediaCard.mjs +5 -6
- package/dist/MenuGroup.js +1 -112
- package/dist/MenuGroup.mjs +2 -2
- package/dist/MenuItem.js +36 -232
- package/dist/MenuItem.mjs +5 -6
- package/dist/MonthPicker.js +8 -161
- package/dist/MonthPicker.mjs +3 -3
- package/dist/NumberStepper.js +40 -236
- package/dist/NumberStepper.mjs +5 -6
- package/dist/PagerDots.d.mts +1 -1
- package/dist/PagerDots.d.ts +1 -1
- package/dist/PagerDots.js +69 -222
- package/dist/PagerDots.mjs +6 -5
- package/dist/Pressable.js +14 -85
- package/dist/Pressable.mjs +4 -4
- package/dist/PricingCard.js +94 -279
- package/dist/PricingCard.mjs +8 -8
- package/dist/Progress.js +3 -121
- package/dist/Progress.mjs +3 -3
- package/dist/RadioGroup.js +52 -263
- package/dist/RadioGroup.mjs +5 -5
- package/dist/RetrayProvider.d.mts +1 -1
- package/dist/RetrayProvider.d.ts +1 -1
- package/dist/RetrayProvider.js +5 -6
- package/dist/RetrayProvider.mjs +3 -3
- package/dist/Select.d.mts +2 -1
- package/dist/Select.d.ts +2 -1
- package/dist/Select.js +24 -230
- package/dist/Select.mjs +4 -5
- package/dist/SelectableCard.d.mts +27 -0
- package/dist/SelectableCard.d.ts +27 -0
- package/dist/SelectableCard.js +335 -0
- package/dist/SelectableCard.mjs +8 -0
- package/dist/SelectableGrid.d.mts +0 -21
- package/dist/SelectableGrid.d.ts +0 -21
- package/dist/SelectableGrid.js +49 -269
- package/dist/SelectableGrid.mjs +5 -6
- package/dist/Separator.js +1 -112
- package/dist/Separator.mjs +2 -2
- package/dist/Sheet.js +16 -163
- package/dist/Sheet.mjs +3 -3
- package/dist/SheetSelect.js +39 -234
- package/dist/SheetSelect.mjs +6 -6
- package/dist/Skeleton.d.mts +3 -1
- package/dist/Skeleton.d.ts +3 -1
- package/dist/Skeleton.js +7 -124
- package/dist/Skeleton.mjs +3 -3
- package/dist/Slider.js +6 -159
- package/dist/Slider.mjs +3 -3
- package/dist/Spinner.js +3 -114
- package/dist/Spinner.mjs +2 -2
- package/dist/Stats.d.mts +4 -1
- package/dist/Stats.d.ts +4 -1
- package/dist/Stats.js +60 -234
- package/dist/Stats.mjs +5 -6
- package/dist/Switch.js +24 -173
- package/dist/Switch.mjs +5 -4
- package/dist/TabBar.js +43 -198
- package/dist/TabBar.mjs +5 -4
- package/dist/Tabs.js +15 -197
- package/dist/Tabs.mjs +5 -5
- package/dist/Text.js +9 -128
- package/dist/Text.mjs +2 -2
- package/dist/Textarea.d.mts +2 -1
- package/dist/Textarea.d.ts +2 -1
- package/dist/Textarea.js +71 -217
- package/dist/Textarea.mjs +4 -4
- package/dist/Toast.js +1 -112
- package/dist/Toast.mjs +2 -2
- package/dist/Toggle.js +39 -234
- package/dist/Toggle.mjs +6 -6
- package/dist/{chunk-FFTYLPSB.mjs → chunk-2QOHHBJC.mjs} +13 -7
- package/dist/{chunk-BCWEHE34.mjs → chunk-2VIDP72N.mjs} +3 -3
- package/dist/{chunk-PGERH3P7.mjs → chunk-4NQFTHN3.mjs} +13 -7
- package/dist/{chunk-3N2M3WZL.mjs → chunk-4ZO5PTKF.mjs} +4 -4
- package/dist/{chunk-MYZ2EDYU.mjs → chunk-5MYNAAFE.mjs} +13 -17
- package/dist/{chunk-E7NEHHXV.mjs → chunk-62BBSSUF.mjs} +3 -3
- package/dist/{chunk-ISY26JQJ.mjs → chunk-6CR4S6W2.mjs} +3 -3
- package/dist/{chunk-FUVYSVGR.mjs → chunk-6QLBHUEG.mjs} +8 -7
- package/dist/chunk-ARONDO7M.mjs +40 -0
- package/dist/{chunk-3UYAZ7I4.mjs → chunk-AZV7KNJI.mjs} +3 -3
- package/dist/{chunk-HLMPMUK2.mjs → chunk-BTUW5LSG.mjs} +11 -8
- package/dist/chunk-BULKGOIZ.mjs +235 -0
- package/dist/{chunk-265G6A46.mjs → chunk-CBIZLRYH.mjs} +29 -12
- package/dist/chunk-CM2DG4MR.mjs +142 -0
- package/dist/{chunk-2I2AYECM.mjs → chunk-DBHSUUKU.mjs} +2 -2
- package/dist/{chunk-P64WHW4A.mjs → chunk-DE25XTVQ.mjs} +3 -3
- package/dist/{chunk-DI7CBDL6.mjs → chunk-E4EQSCKR.mjs} +5 -5
- package/dist/{chunk-357YO24D.mjs → chunk-EHGBHFMH.mjs} +9 -17
- package/dist/{chunk-GK4VRMNE.mjs → chunk-EROPDCB5.mjs} +24 -27
- package/dist/{chunk-XBAGGKLW.mjs → chunk-ERWJPVX7.mjs} +2 -2
- package/dist/{chunk-LRM4AVYY.mjs → chunk-ESQDPO5E.mjs} +7 -7
- package/dist/{chunk-EFLFRAHD.mjs → chunk-EW2FIDSM.mjs} +1 -1
- package/dist/{chunk-7HSILTC4.mjs → chunk-FTTI6T5Q.mjs} +4 -4
- package/dist/{chunk-X26S5EVZ.mjs → chunk-HUSSF6TF.mjs} +1 -1
- package/dist/chunk-IFYMBOEN.mjs +14 -0
- package/dist/{chunk-S3KJCPEJ.mjs → chunk-IGU223UM.mjs} +80 -4
- package/dist/chunk-IJCMPVW5.mjs +121 -0
- package/dist/{chunk-I4V5XZPS.mjs → chunk-ITG4JQM3.mjs} +4 -4
- package/dist/{chunk-F4V6XLP4.mjs → chunk-K3QX2M26.mjs} +11 -8
- package/dist/{chunk-V6NFJXKO.mjs → chunk-K7TKID3V.mjs} +8 -7
- package/dist/{chunk-ZHMSAYLT.mjs → chunk-KAGADD2O.mjs} +4 -4
- package/dist/{chunk-3GEYJ7I5.mjs → chunk-KC5QDYGZ.mjs} +4 -4
- package/dist/{chunk-HJ46DTJE.mjs → chunk-KPTY7UYQ.mjs} +1 -1
- package/dist/{chunk-EMUWGDWC.mjs → chunk-KSSVIFYR.mjs} +11 -12
- package/dist/chunk-L3YKPTJQ.mjs +119 -0
- package/dist/chunk-M53LC4Q7.mjs +35 -0
- package/dist/{chunk-NXI4YDZ2.mjs → chunk-MP7GLMIR.mjs} +17 -25
- package/dist/chunk-MZ6WRTD2.mjs +40 -0
- package/dist/chunk-NGEN2EES.mjs +581 -0
- package/dist/{chunk-JULSIZDM.mjs → chunk-OBV72JD4.mjs} +1 -1
- package/dist/{chunk-2A2LEFZG.mjs → chunk-PGQ6FMXS.mjs} +6 -5
- package/dist/{chunk-BQZE3HAW.mjs → chunk-PI6RULJX.mjs} +1 -1
- package/dist/{chunk-FA2KMTH5.mjs → chunk-RA6SAAFE.mjs} +9 -8
- package/dist/{chunk-FVTVCJAH.mjs → chunk-RRKM4MKB.mjs} +7 -7
- package/dist/{chunk-AKM4EPOT.mjs → chunk-S2VGME7X.mjs} +1 -1
- package/dist/{chunk-OULVKTWL.mjs → chunk-S44XWTTC.mjs} +35 -25
- package/dist/{chunk-QSFV2P7O.mjs → chunk-SZEKQAOY.mjs} +1 -1
- package/dist/{chunk-N4ZPVCJH.mjs → chunk-TETMEKZE.mjs} +9 -9
- package/dist/{chunk-2CBQKU7H.mjs → chunk-TMH263OK.mjs} +5 -4
- package/dist/{chunk-D3Y2T42P.mjs → chunk-U6DEBYU5.mjs} +10 -9
- package/dist/{chunk-4WFMPFZB.mjs → chunk-UOKFSFNJ.mjs} +2 -2
- package/dist/{chunk-WOEWGSTU.mjs → chunk-URIH43IJ.mjs} +13 -21
- package/dist/{chunk-JCZQOY4O.mjs → chunk-V2ZB2XNS.mjs} +16 -10
- package/dist/{chunk-P73V2EKS.mjs → chunk-WIPEDNSD.mjs} +7 -7
- package/dist/{chunk-BOVUP27T.mjs → chunk-XCIG6HT2.mjs} +6 -5
- package/dist/chunk-Y6YS33GM.mjs +131 -0
- package/dist/{chunk-5OLNXP3S.mjs → chunk-ZKDKKQCE.mjs} +29 -7
- package/dist/{chunk-DF6DU42P.mjs → chunk-ZTPYUU5C.mjs} +5 -5
- package/dist/{index-wt-orHUi.d.ts → index-CY34hxPN.d.mts} +1 -0
- package/dist/{index-wt-orHUi.d.mts → index-CY34hxPN.d.ts} +1 -0
- package/dist/index.d.mts +15 -74
- package/dist/index.d.ts +15 -74
- package/dist/index.js +1055 -1562
- package/dist/index.mjs +81 -84
- package/package.json +8 -10
- package/src/components/Accordion/Accordion.tsx +32 -9
- package/src/components/AlertBanner/AlertBanner.tsx +7 -6
- package/src/components/AppHeader/AppHeader.tsx +1 -1
- package/src/components/Avatar/Avatar.tsx +92 -1
- package/src/components/Avatar/index.ts +2 -2
- package/src/components/Badge/Badge.tsx +2 -2
- package/src/components/Button/Button.tsx +64 -57
- package/src/components/Card/Card.tsx +1 -0
- package/src/components/CategoryStrip/CategoryStrip.tsx +36 -49
- package/src/components/Chip/Chip.tsx +5 -4
- package/src/components/ConfirmDialog/ConfirmDialog.tsx +13 -6
- package/src/components/DetailRow/DetailRow.tsx +3 -3
- package/src/components/EmptyState/EmptyState.tsx +2 -2
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +6 -6
- package/src/components/HolographicCard/HolographicCard.tsx +14 -95
- package/src/components/IconButton/IconButton.tsx +2 -2
- package/src/components/IconPicker/IconPicker.tsx +13 -12
- package/src/components/ImageUpload/ImageUpload.tsx +24 -28
- package/src/components/ImageViewer/ImageViewer.tsx +3 -3
- package/src/components/Input/Input.tsx +11 -5
- package/src/components/LabelValue/LabelValue.tsx +2 -2
- package/src/components/ListItem/ListItem.tsx +4 -4
- package/src/components/MediaCard/MediaCard.tsx +21 -59
- package/src/components/MenuItem/MenuItem.tsx +2 -2
- package/src/components/MonthPicker/MonthPicker.tsx +2 -2
- package/src/components/NumberStepper/NumberStepper.tsx +6 -6
- package/src/components/PagerDots/PagerDots.tsx +38 -28
- package/src/components/PricingCard/PricingCard.tsx +6 -6
- package/src/components/RadioGroup/RadioGroup.tsx +18 -31
- package/src/components/Select/Select.tsx +32 -39
- package/src/components/SelectableCard/SelectableCard.tsx +302 -0
- package/src/components/SelectableCard/index.ts +1 -0
- package/src/components/SelectableGrid/SelectableGrid.tsx +38 -72
- package/src/components/Sheet/Sheet.tsx +11 -4
- package/src/components/SheetSelect/SheetSelect.tsx +3 -3
- package/src/components/Skeleton/Skeleton.tsx +6 -3
- package/src/components/Spinner/Spinner.tsx +2 -2
- package/src/components/Stats/Stats.tsx +36 -8
- package/src/components/Switch/Switch.tsx +9 -6
- package/src/components/TabBar/TabBar.tsx +9 -8
- package/src/components/Text/Text.tsx +12 -1
- package/src/components/Textarea/Textarea.tsx +18 -32
- package/src/components/Toggle/Toggle.tsx +3 -3
- package/src/hooks/useConfirmDialog.ts +31 -42
- package/src/index.ts +4 -4
- package/src/theme/ThemeProvider.tsx +1 -4
- package/src/theme/colorUtils.ts +1 -72
- package/src/theme/colors.ts +47 -1
- package/src/theme/types.ts +6 -3
- package/src/utils/animations.ts +0 -47
- package/src/utils/curatedIcons.ts +93 -801
- package/src/utils/haptics.ts +13 -208
- package/src/utils/icons.ts +27 -91
- package/src/utils/pressable.ts +10 -61
- package/dist/VirtualList.d.mts +0 -19
- package/dist/VirtualList.d.ts +0 -19
- package/dist/VirtualList.js +0 -38
- package/dist/VirtualList.mjs +0 -2
- package/dist/chunk-3DKJ2GIC.mjs +0 -30
- package/dist/chunk-AQEVCEXV.mjs +0 -164
- package/dist/chunk-DOGIPOF5.mjs +0 -131
- package/dist/chunk-DVK4G2GT.mjs +0 -59
- package/dist/chunk-EJ7ZPXOH.mjs +0 -163
- package/dist/chunk-J6Q2YJEV.mjs +0 -134
- package/dist/chunk-JNVAIDLK.mjs +0 -136
- package/dist/chunk-KA7LTET3.mjs +0 -71
- package/dist/chunk-KHYX4IOM.mjs +0 -1114
- package/dist/chunk-NC5ZTR2Y.mjs +0 -32
- package/dist/chunk-YNROWHQJ.mjs +0 -46
- package/src/components/VirtualList/VirtualList.tsx +0 -60
- package/src/components/VirtualList/index.ts +0 -1
- package/src/utils/fontGuard.ts +0 -35
- package/src/utils/hover.ts +0 -25
- package/src/utils/useColorTransition.ts +0 -40
- package/src/utils/usePressScale.ts +0 -75
package/dist/Accordion.js
CHANGED
|
@@ -11,6 +11,7 @@ var Feather = require('@expo/vector-icons/Feather');
|
|
|
11
11
|
var FontAwesome5 = require('@expo/vector-icons/FontAwesome5');
|
|
12
12
|
var MaterialIcons = require('@expo/vector-icons/MaterialIcons');
|
|
13
13
|
var Ionicons = require('@expo/vector-icons/Ionicons');
|
|
14
|
+
var pressto = require('pressto');
|
|
14
15
|
|
|
15
16
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
17
|
|
|
@@ -23,18 +24,13 @@ var FontAwesome5__default = /*#__PURE__*/_interopDefault(FontAwesome5);
|
|
|
23
24
|
var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
|
|
24
25
|
var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
28
|
-
}) : x)(function(x) {
|
|
29
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
30
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
31
|
-
});
|
|
27
|
+
// src/components/Accordion/Accordion.tsx
|
|
32
28
|
var _haptics = null;
|
|
33
|
-
var
|
|
29
|
+
var _loaded = false;
|
|
34
30
|
async function getHaptics() {
|
|
35
31
|
if (reactNative.Platform.OS === "web") return null;
|
|
36
|
-
if (!
|
|
37
|
-
|
|
32
|
+
if (!_loaded) {
|
|
33
|
+
_loaded = true;
|
|
38
34
|
try {
|
|
39
35
|
_haptics = await import('expo-haptics');
|
|
40
36
|
} catch {
|
|
@@ -43,158 +39,10 @@ async function getHaptics() {
|
|
|
43
39
|
}
|
|
44
40
|
return _haptics;
|
|
45
41
|
}
|
|
46
|
-
var _pulsar = null;
|
|
47
|
-
var _pulsarChecked = false;
|
|
48
|
-
var _pulsarAvailable = false;
|
|
49
|
-
function isPulsarNativeRegistered() {
|
|
50
|
-
try {
|
|
51
|
-
const g = globalThis;
|
|
52
|
-
if (typeof g.__turboModuleProxy === "function") {
|
|
53
|
-
return g.__turboModuleProxy("RNPulsar") != null;
|
|
54
|
-
}
|
|
55
|
-
return reactNative.NativeModules?.RNPulsar != null;
|
|
56
|
-
} catch {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function getPulsar() {
|
|
61
|
-
if (reactNative.Platform.OS === "web") return null;
|
|
62
|
-
if (!_pulsarChecked) {
|
|
63
|
-
_pulsarChecked = true;
|
|
64
|
-
try {
|
|
65
|
-
if (isPulsarNativeRegistered()) {
|
|
66
|
-
_pulsar = __require("react-native-pulsar");
|
|
67
|
-
_pulsarAvailable = true;
|
|
68
|
-
}
|
|
69
|
-
} catch {
|
|
70
|
-
_pulsar = null;
|
|
71
|
-
_pulsarAvailable = false;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return _pulsarAvailable ? _pulsar : null;
|
|
75
|
-
}
|
|
76
42
|
function selectionAsync() {
|
|
77
|
-
|
|
78
|
-
getHaptics().then((h) => {
|
|
79
|
-
if (h) {
|
|
80
|
-
h.selectionAsync();
|
|
81
|
-
} else {
|
|
82
|
-
getPulsar()?.Presets.System.selection();
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// src/theme/colorUtils.ts
|
|
88
|
-
function hexToRgb(hex) {
|
|
89
|
-
const clean = hex.replace("#", "");
|
|
90
|
-
const full = clean.length === 3 ? clean.split("").map((c) => c + c).join("") : clean;
|
|
91
|
-
if (full.length !== 6) return null;
|
|
92
|
-
return {
|
|
93
|
-
r: parseInt(full.slice(0, 2), 16),
|
|
94
|
-
g: parseInt(full.slice(2, 4), 16),
|
|
95
|
-
b: parseInt(full.slice(4, 6), 16)
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
function componentToHex(c) {
|
|
99
|
-
return Math.round(Math.max(0, Math.min(255, c))).toString(16).padStart(2, "0");
|
|
100
|
-
}
|
|
101
|
-
function rgbToHex(r, g, b) {
|
|
102
|
-
return `#${componentToHex(r)}${componentToHex(g)}${componentToHex(b)}`;
|
|
103
|
-
}
|
|
104
|
-
function withAlphaOnWhite(hex, alpha) {
|
|
105
|
-
const rgb = hexToRgb(hex);
|
|
106
|
-
if (!rgb) return hex;
|
|
107
|
-
const r = rgb.r * alpha + 255 * (1 - alpha);
|
|
108
|
-
const g = rgb.g * alpha + 255 * (1 - alpha);
|
|
109
|
-
const b = rgb.b * alpha + 255 * (1 - alpha);
|
|
110
|
-
return rgbToHex(r, g, b);
|
|
111
|
-
}
|
|
112
|
-
function withAlphaOnDark(hex, alpha, bgHex = "#0f0f0f") {
|
|
113
|
-
const rgb = hexToRgb(hex);
|
|
114
|
-
const bg = hexToRgb(bgHex);
|
|
115
|
-
if (!rgb || !bg) return hex;
|
|
116
|
-
const r = rgb.r * alpha + bg.r * (1 - alpha);
|
|
117
|
-
const g = rgb.g * alpha + bg.g * (1 - alpha);
|
|
118
|
-
const b = rgb.b * alpha + bg.b * (1 - alpha);
|
|
119
|
-
return rgbToHex(r, g, b);
|
|
43
|
+
getHaptics().then((h) => h?.selectionAsync());
|
|
120
44
|
}
|
|
121
|
-
|
|
122
|
-
const fg = hexToRgb(fgHex);
|
|
123
|
-
const bg = hexToRgb(bgHex);
|
|
124
|
-
if (!fg || !bg) return fgHex;
|
|
125
|
-
const r = fg.r * opacity + bg.r * (1 - opacity);
|
|
126
|
-
const g = fg.g * opacity + bg.g * (1 - opacity);
|
|
127
|
-
const b = fg.b * opacity + bg.b * (1 - opacity);
|
|
128
|
-
return rgbToHex(r, g, b);
|
|
129
|
-
}
|
|
130
|
-
function lighten(hex, amount) {
|
|
131
|
-
return withAlphaOnWhite(hex, 1 - amount);
|
|
132
|
-
}
|
|
133
|
-
function darken(hex, amount) {
|
|
134
|
-
const rgb = hexToRgb(hex);
|
|
135
|
-
if (!rgb) return hex;
|
|
136
|
-
return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// src/theme/colors.ts
|
|
140
|
-
var defaultLight = {
|
|
141
|
-
background: "#ffffff",
|
|
142
|
-
foreground: "#1a1a1a",
|
|
143
|
-
card: "#ffffff",
|
|
144
|
-
primary: "#1a1a1a",
|
|
145
|
-
primaryForeground: "#ffffff",
|
|
146
|
-
// AUDIT FIX: brand accent — was undefined; falls back to primary when omitted
|
|
147
|
-
accent: "#d4561d",
|
|
148
|
-
accentForeground: "#ffffff",
|
|
149
|
-
border: "#dddddd",
|
|
150
|
-
// AUDIT FIX: was #e53935 (4.22:1 on white — fails AA); #c72828 = 5.59:1 ✓
|
|
151
|
-
destructive: "#c72828",
|
|
152
|
-
destructiveForeground: "#ffffff",
|
|
153
|
-
success: "#1a7a45",
|
|
154
|
-
successForeground: "#ffffff",
|
|
155
|
-
// AUDIT FIX: was #e67e00 (2.86:1 — severe fail); #9a5200 = 5.86:1 ✓ AAA-near
|
|
156
|
-
warning: "#9a5200",
|
|
157
|
-
warningForeground: "#ffffff"
|
|
158
|
-
};
|
|
159
|
-
function deriveColors(t, scheme) {
|
|
160
|
-
const dark = scheme === "dark";
|
|
161
|
-
const bg = t.background;
|
|
162
|
-
const foregroundSubtle = mixWithBackground(t.foreground, bg, 0.7);
|
|
163
|
-
const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
|
|
164
|
-
const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
|
|
165
|
-
const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
|
|
166
|
-
const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
|
|
167
|
-
const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
|
|
168
|
-
const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
|
|
169
|
-
const successBorder = dark ? withAlphaOnDark(t.success, 0.45, bg) : withAlphaOnWhite(t.success, 0.3);
|
|
170
|
-
const warningTint = dark ? withAlphaOnDark(t.warning, 0.15, bg) : withAlphaOnWhite(t.warning, 0.08);
|
|
171
|
-
const warningBorder = dark ? withAlphaOnDark(t.warning, 0.45, bg) : withAlphaOnWhite(t.warning, 0.3);
|
|
172
|
-
return {
|
|
173
|
-
...t,
|
|
174
|
-
foregroundSubtle,
|
|
175
|
-
foregroundMuted,
|
|
176
|
-
surface,
|
|
177
|
-
surfaceStrong,
|
|
178
|
-
destructiveTint,
|
|
179
|
-
destructiveBorder,
|
|
180
|
-
successTint,
|
|
181
|
-
successBorder,
|
|
182
|
-
warningTint,
|
|
183
|
-
warningBorder,
|
|
184
|
-
overlay: t.overlay ?? "rgba(0,0,0,0.45)",
|
|
185
|
-
accentResolved: t.accent ?? t.primary,
|
|
186
|
-
accentForegroundResolved: t.accentForeground ?? t.primaryForeground,
|
|
187
|
-
ring: t.accent ?? t.primary,
|
|
188
|
-
input: t.border,
|
|
189
|
-
separator: dark ? lighten(t.border, 0.22) : darken(t.border, 0.16)
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// src/theme/ThemeProvider.tsx
|
|
194
|
-
var ThemeContext = React3.createContext({
|
|
195
|
-
colors: deriveColors(defaultLight, "light"),
|
|
196
|
-
colorScheme: "light"
|
|
197
|
-
});
|
|
45
|
+
var ThemeContext = React3.createContext(void 0);
|
|
198
46
|
function useTheme() {
|
|
199
47
|
const context = React3.useContext(ThemeContext);
|
|
200
48
|
if (!context) {
|
|
@@ -206,59 +54,49 @@ var isWeb = reactNative.Platform.OS === "web";
|
|
|
206
54
|
var s = isWeb ? (n) => n : reactNativeSizeMatters.scale;
|
|
207
55
|
var vs = isWeb ? (n) => n : reactNativeSizeMatters.verticalScale;
|
|
208
56
|
var ms = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateScale;
|
|
209
|
-
var glyphMapOf = (mod) => mod.glyphMap ?? {};
|
|
210
57
|
var ALL_FAMILIES = [
|
|
211
|
-
{ name: "
|
|
212
|
-
{ name: "
|
|
213
|
-
{ name: "
|
|
214
|
-
{ name: "
|
|
215
|
-
{ name: "
|
|
216
|
-
{ name: "
|
|
58
|
+
{ name: "Feather", component: Feather__default.default },
|
|
59
|
+
{ name: "AntDesign", component: AntDesign__default.default },
|
|
60
|
+
{ name: "Entypo", component: Entypo__default.default },
|
|
61
|
+
{ name: "FontAwesome5", component: FontAwesome5__default.default },
|
|
62
|
+
{ name: "MaterialIcons", component: MaterialIcons__default.default },
|
|
63
|
+
{ name: "Ionicons", component: Ionicons__default.default }
|
|
217
64
|
];
|
|
218
|
-
var
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
for (const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
65
|
+
var glyphCacheInitialized = false;
|
|
66
|
+
function ensureGlyphCache() {
|
|
67
|
+
if (glyphCacheInitialized) return;
|
|
68
|
+
glyphCacheInitialized = true;
|
|
69
|
+
for (const entry of ALL_FAMILIES) {
|
|
70
|
+
try {
|
|
71
|
+
entry.glyphMap = entry.component.glyphMap;
|
|
72
|
+
} catch {
|
|
73
|
+
entry.glyphMap = {};
|
|
226
74
|
}
|
|
227
75
|
}
|
|
228
|
-
return cache;
|
|
229
|
-
}
|
|
230
|
-
function resolveFamily(name) {
|
|
231
|
-
if (!resolvedCache) {
|
|
232
|
-
resolvedCache = buildCache();
|
|
233
|
-
}
|
|
234
|
-
return resolvedCache.get(name) ?? null;
|
|
235
76
|
}
|
|
236
77
|
function Icon({ name, size, color, family }) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
const Component = resolved.component;
|
|
245
|
-
return React3__default.default.createElement(Component, { name, size, color });
|
|
246
|
-
}
|
|
247
|
-
function renderIcon(name, size, color) {
|
|
248
|
-
return React3__default.default.createElement(Icon, { name, size, color });
|
|
78
|
+
ensureGlyphCache();
|
|
79
|
+
const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
|
|
80
|
+
const glyphMap = f.glyphMap;
|
|
81
|
+
return glyphMap ? name in glyphMap : false;
|
|
82
|
+
});
|
|
83
|
+
if (!entry) return null;
|
|
84
|
+
return React3__default.default.createElement(entry.component, { name, size, color });
|
|
249
85
|
}
|
|
86
|
+
|
|
87
|
+
// src/utils/animations.ts
|
|
250
88
|
var TIMINGS = {
|
|
251
|
-
/** Accordion / collapsible content. */
|
|
252
89
|
expand: { duration: 240 },
|
|
253
90
|
collapse: { duration: 200 }};
|
|
254
|
-
var
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
91
|
+
var makePressable = (scale2) => pressto.createAnimatedPressable((progress) => {
|
|
92
|
+
"worklet";
|
|
93
|
+
return { transform: [{ scale: 1 - (1 - scale2) * progress }] };
|
|
94
|
+
});
|
|
95
|
+
makePressable(0.95);
|
|
96
|
+
makePressable(0.98);
|
|
97
|
+
var PressableRow = makePressable(0.97);
|
|
98
|
+
makePressable(0.94);
|
|
99
|
+
makePressable(0.95);
|
|
262
100
|
|
|
263
101
|
// src/components/Accordion/Accordion.tsx
|
|
264
102
|
function AccordionItemComponent({
|
|
@@ -267,7 +105,7 @@ function AccordionItemComponent({
|
|
|
267
105
|
onToggle
|
|
268
106
|
}) {
|
|
269
107
|
const { colors } = useTheme();
|
|
270
|
-
const resolvedIcon = item.iconName ?
|
|
108
|
+
const resolvedIcon = item.iconName ? /* @__PURE__ */ React3__default.default.createElement(Icon, { name: item.iconName, size: ms(16), color: item.iconColor ?? colors.foregroundMuted }) : item.icon;
|
|
271
109
|
const isExpanded = Animated.useSharedValue(isOpen);
|
|
272
110
|
const height = Animated.useSharedValue(0);
|
|
273
111
|
React3__default.default.useEffect(() => {
|
|
@@ -276,13 +114,13 @@ function AccordionItemComponent({
|
|
|
276
114
|
const derivedHeight = Animated.useDerivedValue(
|
|
277
115
|
() => Animated.withTiming(height.value * Number(isExpanded.value), {
|
|
278
116
|
duration: isExpanded.value ? TIMINGS.expand.duration : TIMINGS.collapse.duration,
|
|
279
|
-
easing: isExpanded.value ?
|
|
117
|
+
easing: isExpanded.value ? Animated.Easing.bezier(0.23, 1, 0.32, 1) : Animated.Easing.in(Animated.Easing.ease)
|
|
280
118
|
})
|
|
281
119
|
);
|
|
282
120
|
const derivedRotation = Animated.useDerivedValue(
|
|
283
121
|
() => Animated.withTiming(isExpanded.value ? 1 : 0, {
|
|
284
122
|
duration: isExpanded.value ? TIMINGS.expand.duration : TIMINGS.collapse.duration,
|
|
285
|
-
easing: isExpanded.value ?
|
|
123
|
+
easing: isExpanded.value ? Animated.Easing.bezier(0.23, 1, 0.32, 1) : Animated.Easing.in(Animated.Easing.ease)
|
|
286
124
|
})
|
|
287
125
|
);
|
|
288
126
|
const bodyStyle = Animated.useAnimatedStyle(() => ({
|
|
@@ -293,18 +131,28 @@ function AccordionItemComponent({
|
|
|
293
131
|
transform: [{ rotate: `${derivedRotation.value * 180}deg` }]
|
|
294
132
|
}));
|
|
295
133
|
return /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: [styles.item, { backgroundColor: colors.card, borderColor: colors.border }] }, /* @__PURE__ */ React3__default.default.createElement(
|
|
296
|
-
|
|
134
|
+
PressableRow,
|
|
297
135
|
{
|
|
298
|
-
style: ({ pressed }) => [styles.trigger, { opacity: pressed ? 0.6 : 1 }],
|
|
299
136
|
onPress: () => {
|
|
300
137
|
selectionAsync();
|
|
301
138
|
onToggle();
|
|
302
139
|
},
|
|
140
|
+
rippleColor: "transparent",
|
|
141
|
+
touchSoundDisabled: true,
|
|
303
142
|
accessibilityRole: "button",
|
|
304
143
|
accessibilityState: { expanded: isOpen },
|
|
305
|
-
accessibilityLabel: typeof item.trigger === "string" ? item.trigger : void 0
|
|
144
|
+
accessibilityLabel: typeof item.trigger === "string" ? item.trigger : void 0,
|
|
145
|
+
style: styles.trigger
|
|
306
146
|
},
|
|
307
147
|
/* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.triggerContent }, resolvedIcon ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.icon }, resolvedIcon) : null, typeof item.trigger === "string" ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles.triggerText, { color: colors.foreground }], allowFontScaling: true }, item.trigger) : item.trigger),
|
|
148
|
+
item.triggerActions ? /* @__PURE__ */ React3__default.default.createElement(
|
|
149
|
+
reactNative.View,
|
|
150
|
+
{
|
|
151
|
+
style: styles.triggerActions,
|
|
152
|
+
onTouchEnd: (e) => e.stopPropagation()
|
|
153
|
+
},
|
|
154
|
+
item.triggerActions
|
|
155
|
+
) : null,
|
|
308
156
|
/* @__PURE__ */ React3__default.default.createElement(Animated__default.default.View, { style: [styles.chevron, rotationStyle] }, /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Entypo, { name: "chevron-down", size: 18, color: colors.foregroundMuted }))
|
|
309
157
|
), /* @__PURE__ */ React3__default.default.createElement(Animated__default.default.View, { style: bodyStyle }, /* @__PURE__ */ React3__default.default.createElement(
|
|
310
158
|
reactNative.View,
|
|
@@ -374,6 +222,12 @@ var styles = reactNative.StyleSheet.create({
|
|
|
374
222
|
chevron: {
|
|
375
223
|
marginLeft: s(8)
|
|
376
224
|
},
|
|
225
|
+
triggerActions: {
|
|
226
|
+
flexDirection: "row",
|
|
227
|
+
alignItems: "center",
|
|
228
|
+
gap: s(4),
|
|
229
|
+
marginLeft: s(8)
|
|
230
|
+
},
|
|
377
231
|
// position:'absolute' is the key — the inner View escapes the animated wrapper's
|
|
378
232
|
// clipped height so onLayout always reports the true content height.
|
|
379
233
|
content: {
|
package/dist/Accordion.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { Accordion } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
export { Accordion } from './chunk-CBIZLRYH.mjs';
|
|
2
|
+
import './chunk-M53LC4Q7.mjs';
|
|
3
|
+
import './chunk-IFYMBOEN.mjs';
|
|
4
|
+
import './chunk-ARONDO7M.mjs';
|
|
5
|
+
import './chunk-MZ6WRTD2.mjs';
|
|
6
|
+
import './chunk-KSSVIFYR.mjs';
|
|
6
7
|
import './chunk-2CE3TQVY.mjs';
|
|
7
8
|
import './chunk-Y6FXYEAI.mjs';
|
package/dist/AlertBanner.js
CHANGED
|
@@ -22,118 +22,7 @@ var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
|
|
|
22
22
|
var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
|
|
23
23
|
|
|
24
24
|
// src/components/AlertBanner/AlertBanner.tsx
|
|
25
|
-
|
|
26
|
-
// src/theme/colorUtils.ts
|
|
27
|
-
function hexToRgb(hex) {
|
|
28
|
-
const clean = hex.replace("#", "");
|
|
29
|
-
const full = clean.length === 3 ? clean.split("").map((c) => c + c).join("") : clean;
|
|
30
|
-
if (full.length !== 6) return null;
|
|
31
|
-
return {
|
|
32
|
-
r: parseInt(full.slice(0, 2), 16),
|
|
33
|
-
g: parseInt(full.slice(2, 4), 16),
|
|
34
|
-
b: parseInt(full.slice(4, 6), 16)
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function componentToHex(c) {
|
|
38
|
-
return Math.round(Math.max(0, Math.min(255, c))).toString(16).padStart(2, "0");
|
|
39
|
-
}
|
|
40
|
-
function rgbToHex(r, g, b) {
|
|
41
|
-
return `#${componentToHex(r)}${componentToHex(g)}${componentToHex(b)}`;
|
|
42
|
-
}
|
|
43
|
-
function withAlphaOnWhite(hex, alpha) {
|
|
44
|
-
const rgb = hexToRgb(hex);
|
|
45
|
-
if (!rgb) return hex;
|
|
46
|
-
const r = rgb.r * alpha + 255 * (1 - alpha);
|
|
47
|
-
const g = rgb.g * alpha + 255 * (1 - alpha);
|
|
48
|
-
const b = rgb.b * alpha + 255 * (1 - alpha);
|
|
49
|
-
return rgbToHex(r, g, b);
|
|
50
|
-
}
|
|
51
|
-
function withAlphaOnDark(hex, alpha, bgHex = "#0f0f0f") {
|
|
52
|
-
const rgb = hexToRgb(hex);
|
|
53
|
-
const bg = hexToRgb(bgHex);
|
|
54
|
-
if (!rgb || !bg) return hex;
|
|
55
|
-
const r = rgb.r * alpha + bg.r * (1 - alpha);
|
|
56
|
-
const g = rgb.g * alpha + bg.g * (1 - alpha);
|
|
57
|
-
const b = rgb.b * alpha + bg.b * (1 - alpha);
|
|
58
|
-
return rgbToHex(r, g, b);
|
|
59
|
-
}
|
|
60
|
-
function mixWithBackground(fgHex, bgHex, opacity) {
|
|
61
|
-
const fg = hexToRgb(fgHex);
|
|
62
|
-
const bg = hexToRgb(bgHex);
|
|
63
|
-
if (!fg || !bg) return fgHex;
|
|
64
|
-
const r = fg.r * opacity + bg.r * (1 - opacity);
|
|
65
|
-
const g = fg.g * opacity + bg.g * (1 - opacity);
|
|
66
|
-
const b = fg.b * opacity + bg.b * (1 - opacity);
|
|
67
|
-
return rgbToHex(r, g, b);
|
|
68
|
-
}
|
|
69
|
-
function lighten(hex, amount) {
|
|
70
|
-
return withAlphaOnWhite(hex, 1 - amount);
|
|
71
|
-
}
|
|
72
|
-
function darken(hex, amount) {
|
|
73
|
-
const rgb = hexToRgb(hex);
|
|
74
|
-
if (!rgb) return hex;
|
|
75
|
-
return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// src/theme/colors.ts
|
|
79
|
-
var defaultLight = {
|
|
80
|
-
background: "#ffffff",
|
|
81
|
-
foreground: "#1a1a1a",
|
|
82
|
-
card: "#ffffff",
|
|
83
|
-
primary: "#1a1a1a",
|
|
84
|
-
primaryForeground: "#ffffff",
|
|
85
|
-
// AUDIT FIX: brand accent — was undefined; falls back to primary when omitted
|
|
86
|
-
accent: "#d4561d",
|
|
87
|
-
accentForeground: "#ffffff",
|
|
88
|
-
border: "#dddddd",
|
|
89
|
-
// AUDIT FIX: was #e53935 (4.22:1 on white — fails AA); #c72828 = 5.59:1 ✓
|
|
90
|
-
destructive: "#c72828",
|
|
91
|
-
destructiveForeground: "#ffffff",
|
|
92
|
-
success: "#1a7a45",
|
|
93
|
-
successForeground: "#ffffff",
|
|
94
|
-
// AUDIT FIX: was #e67e00 (2.86:1 — severe fail); #9a5200 = 5.86:1 ✓ AAA-near
|
|
95
|
-
warning: "#9a5200",
|
|
96
|
-
warningForeground: "#ffffff"
|
|
97
|
-
};
|
|
98
|
-
function deriveColors(t, scheme) {
|
|
99
|
-
const dark = scheme === "dark";
|
|
100
|
-
const bg = t.background;
|
|
101
|
-
const foregroundSubtle = mixWithBackground(t.foreground, bg, 0.7);
|
|
102
|
-
const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
|
|
103
|
-
const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
|
|
104
|
-
const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
|
|
105
|
-
const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
|
|
106
|
-
const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
|
|
107
|
-
const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
|
|
108
|
-
const successBorder = dark ? withAlphaOnDark(t.success, 0.45, bg) : withAlphaOnWhite(t.success, 0.3);
|
|
109
|
-
const warningTint = dark ? withAlphaOnDark(t.warning, 0.15, bg) : withAlphaOnWhite(t.warning, 0.08);
|
|
110
|
-
const warningBorder = dark ? withAlphaOnDark(t.warning, 0.45, bg) : withAlphaOnWhite(t.warning, 0.3);
|
|
111
|
-
return {
|
|
112
|
-
...t,
|
|
113
|
-
foregroundSubtle,
|
|
114
|
-
foregroundMuted,
|
|
115
|
-
surface,
|
|
116
|
-
surfaceStrong,
|
|
117
|
-
destructiveTint,
|
|
118
|
-
destructiveBorder,
|
|
119
|
-
successTint,
|
|
120
|
-
successBorder,
|
|
121
|
-
warningTint,
|
|
122
|
-
warningBorder,
|
|
123
|
-
overlay: t.overlay ?? "rgba(0,0,0,0.45)",
|
|
124
|
-
accentResolved: t.accent ?? t.primary,
|
|
125
|
-
accentForegroundResolved: t.accentForeground ?? t.primaryForeground,
|
|
126
|
-
ring: t.accent ?? t.primary,
|
|
127
|
-
input: t.border,
|
|
128
|
-
separator: dark ? lighten(t.border, 0.22) : darken(t.border, 0.16)
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// src/theme/ThemeProvider.tsx
|
|
133
|
-
var ThemeContext = React3.createContext({
|
|
134
|
-
colors: deriveColors(defaultLight, "light"),
|
|
135
|
-
colorScheme: "light"
|
|
136
|
-
});
|
|
25
|
+
var ThemeContext = React3.createContext(void 0);
|
|
137
26
|
function useTheme() {
|
|
138
27
|
const context = React3.useContext(ThemeContext);
|
|
139
28
|
if (!context) {
|
|
@@ -145,46 +34,34 @@ var isWeb = reactNative.Platform.OS === "web";
|
|
|
145
34
|
var s = isWeb ? (n) => n : reactNativeSizeMatters.scale;
|
|
146
35
|
var vs = isWeb ? (n) => n : reactNativeSizeMatters.verticalScale;
|
|
147
36
|
var ms = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateScale;
|
|
148
|
-
var glyphMapOf = (mod) => mod.glyphMap ?? {};
|
|
149
37
|
var ALL_FAMILIES = [
|
|
150
|
-
{ name: "
|
|
151
|
-
{ name: "
|
|
152
|
-
{ name: "
|
|
153
|
-
{ name: "
|
|
154
|
-
{ name: "
|
|
155
|
-
{ name: "
|
|
38
|
+
{ name: "Feather", component: Feather__default.default },
|
|
39
|
+
{ name: "AntDesign", component: AntDesign__default.default },
|
|
40
|
+
{ name: "Entypo", component: Entypo__default.default },
|
|
41
|
+
{ name: "FontAwesome5", component: FontAwesome5__default.default },
|
|
42
|
+
{ name: "MaterialIcons", component: MaterialIcons__default.default },
|
|
43
|
+
{ name: "Ionicons", component: Ionicons__default.default }
|
|
156
44
|
];
|
|
157
|
-
var
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
for (const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
45
|
+
var glyphCacheInitialized = false;
|
|
46
|
+
function ensureGlyphCache() {
|
|
47
|
+
if (glyphCacheInitialized) return;
|
|
48
|
+
glyphCacheInitialized = true;
|
|
49
|
+
for (const entry of ALL_FAMILIES) {
|
|
50
|
+
try {
|
|
51
|
+
entry.glyphMap = entry.component.glyphMap;
|
|
52
|
+
} catch {
|
|
53
|
+
entry.glyphMap = {};
|
|
165
54
|
}
|
|
166
55
|
}
|
|
167
|
-
return cache;
|
|
168
|
-
}
|
|
169
|
-
function resolveFamily(name) {
|
|
170
|
-
if (!resolvedCache) {
|
|
171
|
-
resolvedCache = buildCache();
|
|
172
|
-
}
|
|
173
|
-
return resolvedCache.get(name) ?? null;
|
|
174
56
|
}
|
|
175
57
|
function Icon({ name, size, color, family }) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
const Component = resolved.component;
|
|
184
|
-
return React3__default.default.createElement(Component, { name, size, color });
|
|
185
|
-
}
|
|
186
|
-
function renderIcon(name, size, color) {
|
|
187
|
-
return React3__default.default.createElement(Icon, { name, size, color });
|
|
58
|
+
ensureGlyphCache();
|
|
59
|
+
const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
|
|
60
|
+
const glyphMap = f.glyphMap;
|
|
61
|
+
return glyphMap ? name in glyphMap : false;
|
|
62
|
+
});
|
|
63
|
+
if (!entry) return null;
|
|
64
|
+
return React3__default.default.createElement(entry.component, { name, size, color });
|
|
188
65
|
}
|
|
189
66
|
|
|
190
67
|
// src/tokens.ts
|
|
@@ -204,7 +81,7 @@ function AlertBanner({ title, description, variant = "default", icon, iconName,
|
|
|
204
81
|
// a meaningful chromatic signal when an accent is defined.
|
|
205
82
|
/* @__PURE__ */ React3__default.default.createElement(vectorIcons.Entypo, { name: "info-with-circle", size: ms(16), color: accentColor })
|
|
206
83
|
);
|
|
207
|
-
const effectiveIcon = iconName ?
|
|
84
|
+
const effectiveIcon = iconName ? /* @__PURE__ */ React3__default.default.createElement(Icon, { name: iconName, size: ms(16), color: iconColor ?? accentColor }) : icon ?? defaultIcon;
|
|
208
85
|
const a11yLabel = description ? `${title}. ${description}` : title;
|
|
209
86
|
return /* @__PURE__ */ React3__default.default.createElement(
|
|
210
87
|
reactNative.View,
|
|
@@ -224,9 +101,10 @@ function AlertBanner({ title, description, variant = "default", icon, iconName,
|
|
|
224
101
|
{
|
|
225
102
|
onPress: onDismiss,
|
|
226
103
|
style: styles.dismissButton,
|
|
104
|
+
hitSlop: { top: 10, bottom: 10, left: 10, right: 10 },
|
|
227
105
|
activeOpacity: 0.6,
|
|
228
106
|
accessibilityRole: "button",
|
|
229
|
-
accessibilityLabel: "
|
|
107
|
+
accessibilityLabel: "Descartar"
|
|
230
108
|
},
|
|
231
109
|
/* @__PURE__ */ React3__default.default.createElement(vectorIcons.Feather, { name: "x", size: ms(16), color: colors.foregroundMuted })
|
|
232
110
|
) : null
|
|
@@ -257,9 +135,9 @@ var styles = reactNative.StyleSheet.create({
|
|
|
257
135
|
fontSize: ms(12)
|
|
258
136
|
},
|
|
259
137
|
dismissButton: {
|
|
260
|
-
padding: s(
|
|
261
|
-
marginTop: vs(-
|
|
262
|
-
marginRight: -s(
|
|
138
|
+
padding: s(10),
|
|
139
|
+
marginTop: vs(-8),
|
|
140
|
+
marginRight: -s(10)
|
|
263
141
|
}
|
|
264
142
|
});
|
|
265
143
|
|
package/dist/AlertBanner.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { AlertBanner } from './chunk-
|
|
1
|
+
export { AlertBanner } from './chunk-K7TKID3V.mjs';
|
|
2
2
|
import './chunk-QY3X2UYR.mjs';
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import './chunk-MZ6WRTD2.mjs';
|
|
4
|
+
import './chunk-KSSVIFYR.mjs';
|
|
5
5
|
import './chunk-2CE3TQVY.mjs';
|
|
6
6
|
import './chunk-Y6FXYEAI.mjs';
|