@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/RadioGroup.js
CHANGED
|
@@ -2,27 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
var React2 = require('react');
|
|
4
4
|
var reactNative = require('react-native');
|
|
5
|
-
var Animated = require('react-native-reanimated');
|
|
6
5
|
var reactNativeEase = require('react-native-ease');
|
|
7
6
|
var reactNativeSizeMatters = require('react-native-size-matters');
|
|
7
|
+
var pressto = require('pressto');
|
|
8
8
|
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
|
|
11
11
|
var React2__default = /*#__PURE__*/_interopDefault(React2);
|
|
12
|
-
var Animated__default = /*#__PURE__*/_interopDefault(Animated);
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
16
|
-
}) : x)(function(x) {
|
|
17
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
18
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
19
|
-
});
|
|
13
|
+
// src/components/RadioGroup/RadioGroup.tsx
|
|
20
14
|
var _haptics = null;
|
|
21
|
-
var
|
|
15
|
+
var _loaded = false;
|
|
22
16
|
async function getHaptics() {
|
|
23
17
|
if (reactNative.Platform.OS === "web") return null;
|
|
24
|
-
if (!
|
|
25
|
-
|
|
18
|
+
if (!_loaded) {
|
|
19
|
+
_loaded = true;
|
|
26
20
|
try {
|
|
27
21
|
_haptics = await import('expo-haptics');
|
|
28
22
|
} catch {
|
|
@@ -31,158 +25,10 @@ async function getHaptics() {
|
|
|
31
25
|
}
|
|
32
26
|
return _haptics;
|
|
33
27
|
}
|
|
34
|
-
var _pulsar = null;
|
|
35
|
-
var _pulsarChecked = false;
|
|
36
|
-
var _pulsarAvailable = false;
|
|
37
|
-
function isPulsarNativeRegistered() {
|
|
38
|
-
try {
|
|
39
|
-
const g = globalThis;
|
|
40
|
-
if (typeof g.__turboModuleProxy === "function") {
|
|
41
|
-
return g.__turboModuleProxy("RNPulsar") != null;
|
|
42
|
-
}
|
|
43
|
-
return reactNative.NativeModules?.RNPulsar != null;
|
|
44
|
-
} catch {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function getPulsar() {
|
|
49
|
-
if (reactNative.Platform.OS === "web") return null;
|
|
50
|
-
if (!_pulsarChecked) {
|
|
51
|
-
_pulsarChecked = true;
|
|
52
|
-
try {
|
|
53
|
-
if (isPulsarNativeRegistered()) {
|
|
54
|
-
_pulsar = __require("react-native-pulsar");
|
|
55
|
-
_pulsarAvailable = true;
|
|
56
|
-
}
|
|
57
|
-
} catch {
|
|
58
|
-
_pulsar = null;
|
|
59
|
-
_pulsarAvailable = false;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return _pulsarAvailable ? _pulsar : null;
|
|
63
|
-
}
|
|
64
28
|
function selectionAsync() {
|
|
65
|
-
|
|
66
|
-
getHaptics().then((h) => {
|
|
67
|
-
if (h) {
|
|
68
|
-
h.selectionAsync();
|
|
69
|
-
} else {
|
|
70
|
-
getPulsar()?.Presets.System.selection();
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// src/theme/colorUtils.ts
|
|
76
|
-
function hexToRgb(hex) {
|
|
77
|
-
const clean = hex.replace("#", "");
|
|
78
|
-
const full = clean.length === 3 ? clean.split("").map((c) => c + c).join("") : clean;
|
|
79
|
-
if (full.length !== 6) return null;
|
|
80
|
-
return {
|
|
81
|
-
r: parseInt(full.slice(0, 2), 16),
|
|
82
|
-
g: parseInt(full.slice(2, 4), 16),
|
|
83
|
-
b: parseInt(full.slice(4, 6), 16)
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
function componentToHex(c) {
|
|
87
|
-
return Math.round(Math.max(0, Math.min(255, c))).toString(16).padStart(2, "0");
|
|
88
|
-
}
|
|
89
|
-
function rgbToHex(r, g, b) {
|
|
90
|
-
return `#${componentToHex(r)}${componentToHex(g)}${componentToHex(b)}`;
|
|
91
|
-
}
|
|
92
|
-
function withAlphaOnWhite(hex, alpha) {
|
|
93
|
-
const rgb = hexToRgb(hex);
|
|
94
|
-
if (!rgb) return hex;
|
|
95
|
-
const r = rgb.r * alpha + 255 * (1 - alpha);
|
|
96
|
-
const g = rgb.g * alpha + 255 * (1 - alpha);
|
|
97
|
-
const b = rgb.b * alpha + 255 * (1 - alpha);
|
|
98
|
-
return rgbToHex(r, g, b);
|
|
99
|
-
}
|
|
100
|
-
function withAlphaOnDark(hex, alpha, bgHex = "#0f0f0f") {
|
|
101
|
-
const rgb = hexToRgb(hex);
|
|
102
|
-
const bg = hexToRgb(bgHex);
|
|
103
|
-
if (!rgb || !bg) return hex;
|
|
104
|
-
const r = rgb.r * alpha + bg.r * (1 - alpha);
|
|
105
|
-
const g = rgb.g * alpha + bg.g * (1 - alpha);
|
|
106
|
-
const b = rgb.b * alpha + bg.b * (1 - alpha);
|
|
107
|
-
return rgbToHex(r, g, b);
|
|
108
|
-
}
|
|
109
|
-
function mixWithBackground(fgHex, bgHex, opacity) {
|
|
110
|
-
const fg = hexToRgb(fgHex);
|
|
111
|
-
const bg = hexToRgb(bgHex);
|
|
112
|
-
if (!fg || !bg) return fgHex;
|
|
113
|
-
const r = fg.r * opacity + bg.r * (1 - opacity);
|
|
114
|
-
const g = fg.g * opacity + bg.g * (1 - opacity);
|
|
115
|
-
const b = fg.b * opacity + bg.b * (1 - opacity);
|
|
116
|
-
return rgbToHex(r, g, b);
|
|
117
|
-
}
|
|
118
|
-
function lighten(hex, amount) {
|
|
119
|
-
return withAlphaOnWhite(hex, 1 - amount);
|
|
120
|
-
}
|
|
121
|
-
function darken(hex, amount) {
|
|
122
|
-
const rgb = hexToRgb(hex);
|
|
123
|
-
if (!rgb) return hex;
|
|
124
|
-
return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
|
|
29
|
+
getHaptics().then((h) => h?.selectionAsync());
|
|
125
30
|
}
|
|
126
|
-
|
|
127
|
-
// src/theme/colors.ts
|
|
128
|
-
var defaultLight = {
|
|
129
|
-
background: "#ffffff",
|
|
130
|
-
foreground: "#1a1a1a",
|
|
131
|
-
card: "#ffffff",
|
|
132
|
-
primary: "#1a1a1a",
|
|
133
|
-
primaryForeground: "#ffffff",
|
|
134
|
-
// AUDIT FIX: brand accent — was undefined; falls back to primary when omitted
|
|
135
|
-
accent: "#d4561d",
|
|
136
|
-
accentForeground: "#ffffff",
|
|
137
|
-
border: "#dddddd",
|
|
138
|
-
// AUDIT FIX: was #e53935 (4.22:1 on white — fails AA); #c72828 = 5.59:1 ✓
|
|
139
|
-
destructive: "#c72828",
|
|
140
|
-
destructiveForeground: "#ffffff",
|
|
141
|
-
success: "#1a7a45",
|
|
142
|
-
successForeground: "#ffffff",
|
|
143
|
-
// AUDIT FIX: was #e67e00 (2.86:1 — severe fail); #9a5200 = 5.86:1 ✓ AAA-near
|
|
144
|
-
warning: "#9a5200",
|
|
145
|
-
warningForeground: "#ffffff"
|
|
146
|
-
};
|
|
147
|
-
function deriveColors(t, scheme) {
|
|
148
|
-
const dark = scheme === "dark";
|
|
149
|
-
const bg = t.background;
|
|
150
|
-
const foregroundSubtle = mixWithBackground(t.foreground, bg, 0.7);
|
|
151
|
-
const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
|
|
152
|
-
const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
|
|
153
|
-
const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
|
|
154
|
-
const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
|
|
155
|
-
const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
|
|
156
|
-
const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
|
|
157
|
-
const successBorder = dark ? withAlphaOnDark(t.success, 0.45, bg) : withAlphaOnWhite(t.success, 0.3);
|
|
158
|
-
const warningTint = dark ? withAlphaOnDark(t.warning, 0.15, bg) : withAlphaOnWhite(t.warning, 0.08);
|
|
159
|
-
const warningBorder = dark ? withAlphaOnDark(t.warning, 0.45, bg) : withAlphaOnWhite(t.warning, 0.3);
|
|
160
|
-
return {
|
|
161
|
-
...t,
|
|
162
|
-
foregroundSubtle,
|
|
163
|
-
foregroundMuted,
|
|
164
|
-
surface,
|
|
165
|
-
surfaceStrong,
|
|
166
|
-
destructiveTint,
|
|
167
|
-
destructiveBorder,
|
|
168
|
-
successTint,
|
|
169
|
-
successBorder,
|
|
170
|
-
warningTint,
|
|
171
|
-
warningBorder,
|
|
172
|
-
overlay: t.overlay ?? "rgba(0,0,0,0.45)",
|
|
173
|
-
accentResolved: t.accent ?? t.primary,
|
|
174
|
-
accentForegroundResolved: t.accentForeground ?? t.primaryForeground,
|
|
175
|
-
ring: t.accent ?? t.primary,
|
|
176
|
-
input: t.border,
|
|
177
|
-
separator: dark ? lighten(t.border, 0.22) : darken(t.border, 0.16)
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// src/theme/ThemeProvider.tsx
|
|
182
|
-
var ThemeContext = React2.createContext({
|
|
183
|
-
colors: deriveColors(defaultLight, "light"),
|
|
184
|
-
colorScheme: "light"
|
|
185
|
-
});
|
|
31
|
+
var ThemeContext = React2.createContext(void 0);
|
|
186
32
|
function useTheme() {
|
|
187
33
|
const context = React2.useContext(ThemeContext);
|
|
188
34
|
if (!context) {
|
|
@@ -195,21 +41,19 @@ var s = isWeb ? (n) => n : reactNativeSizeMatters.scale;
|
|
|
195
41
|
var vs = isWeb ? (n) => n : reactNativeSizeMatters.verticalScale;
|
|
196
42
|
var ms = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateScale;
|
|
197
43
|
var mvs = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateVerticalScale;
|
|
198
|
-
var
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
44
|
+
var makePressable = (scale2) => pressto.createAnimatedPressable((progress) => {
|
|
45
|
+
"worklet";
|
|
46
|
+
return { transform: [{ scale: 1 - (1 - scale2) * progress }] };
|
|
47
|
+
});
|
|
48
|
+
var PressableButton = makePressable(0.95);
|
|
49
|
+
makePressable(0.98);
|
|
50
|
+
makePressable(0.97);
|
|
51
|
+
makePressable(0.94);
|
|
52
|
+
makePressable(0.95);
|
|
53
|
+
|
|
54
|
+
// src/utils/animations.ts
|
|
202
55
|
var TIMINGS = {
|
|
203
|
-
/** Color/opacity transitions on toggles, checkboxes, switches. */
|
|
204
56
|
state: { duration: 160 }};
|
|
205
|
-
({
|
|
206
|
-
/** Material-style ease-out — natural deceleration for state changes. */
|
|
207
|
-
standard: Animated.Easing.bezier(0.2, 0, 0, 1),
|
|
208
|
-
/** Strong ease-out for expanding surfaces (Accordion open). */
|
|
209
|
-
expand: Animated.Easing.bezier(0.23, 1, 0.32, 1),
|
|
210
|
-
/** Quick ease-in for collapsing. */
|
|
211
|
-
collapse: Animated.Easing.in(Animated.Easing.ease)
|
|
212
|
-
});
|
|
213
57
|
var COLOR_TRANSITION = {
|
|
214
58
|
type: "timing",
|
|
215
59
|
duration: TIMINGS.state.duration,
|
|
@@ -221,49 +65,6 @@ var SPRING_ELASTIC = {
|
|
|
221
65
|
damping: 22,
|
|
222
66
|
mass: 0.7
|
|
223
67
|
};
|
|
224
|
-
var PRESS_SCALE = {
|
|
225
|
-
button: 0.95};
|
|
226
|
-
function useHover() {
|
|
227
|
-
const [hovered, setHovered] = React2.useState(false);
|
|
228
|
-
const onMouseEnter = React2.useCallback(() => setHovered(true), []);
|
|
229
|
-
const onMouseLeave = React2.useCallback(() => setHovered(false), []);
|
|
230
|
-
if (reactNative.Platform.OS !== "web") {
|
|
231
|
-
return { hovered: false, hoverHandlers: {} };
|
|
232
|
-
}
|
|
233
|
-
return { hovered, hoverHandlers: { onMouseEnter, onMouseLeave } };
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// src/utils/usePressScale.ts
|
|
237
|
-
function usePressScale({
|
|
238
|
-
pressScale = PRESS_SCALE.button,
|
|
239
|
-
hoverScale = 1.02,
|
|
240
|
-
pressInSpring = SPRINGS.pressIn,
|
|
241
|
-
pressOutSpring = SPRINGS.pressOut,
|
|
242
|
-
disabled = false
|
|
243
|
-
} = {}) {
|
|
244
|
-
const scale2 = Animated.useSharedValue(1);
|
|
245
|
-
const { hovered, hoverHandlers } = useHover();
|
|
246
|
-
const onPressIn = React2.useCallback(() => {
|
|
247
|
-
if (disabled) return;
|
|
248
|
-
scale2.value = Animated.withSpring(pressScale, pressInSpring);
|
|
249
|
-
}, [disabled, pressScale, pressInSpring, scale2]);
|
|
250
|
-
const onPressOut = React2.useCallback(() => {
|
|
251
|
-
if (disabled) return;
|
|
252
|
-
scale2.value = Animated.withSpring(1, pressOutSpring);
|
|
253
|
-
}, [disabled, pressOutSpring, scale2]);
|
|
254
|
-
const hoverActive = reactNative.Platform.OS === "web" && hovered && hoverScale !== 1 && !disabled;
|
|
255
|
-
const animatedStyle = Animated.useAnimatedStyle(() => ({
|
|
256
|
-
transform: [
|
|
257
|
-
{ scale: scale2.value * (hoverActive ? hoverScale : 1) }
|
|
258
|
-
]
|
|
259
|
-
}));
|
|
260
|
-
return {
|
|
261
|
-
animatedStyle,
|
|
262
|
-
onPressIn,
|
|
263
|
-
onPressOut,
|
|
264
|
-
hoverHandlers
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
68
|
|
|
268
69
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
269
70
|
function RadioItem({
|
|
@@ -272,57 +73,46 @@ function RadioItem({
|
|
|
272
73
|
onSelect
|
|
273
74
|
}) {
|
|
274
75
|
const { colors } = useTheme();
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
76
|
+
return /* @__PURE__ */ React2__default.default.createElement(
|
|
77
|
+
PressableButton,
|
|
78
|
+
{
|
|
79
|
+
style: [styles.row, option.disabled && styles.rowDisabled],
|
|
80
|
+
onPress: () => {
|
|
81
|
+
if (!option.disabled) {
|
|
82
|
+
selectionAsync();
|
|
83
|
+
onSelect();
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
enabled: !option.disabled,
|
|
87
|
+
rippleColor: "transparent",
|
|
88
|
+
touchSoundDisabled: true,
|
|
89
|
+
accessibilityRole: "radio",
|
|
90
|
+
accessibilityLabel: option.label,
|
|
91
|
+
accessibilityState: { checked: selected, disabled: !!option.disabled }
|
|
92
|
+
},
|
|
283
93
|
/* @__PURE__ */ React2__default.default.createElement(
|
|
284
|
-
|
|
94
|
+
reactNativeEase.EaseView,
|
|
285
95
|
{
|
|
286
|
-
style:
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
selectionAsync();
|
|
290
|
-
onSelect();
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
onPressIn,
|
|
294
|
-
onPressOut,
|
|
295
|
-
activeOpacity: 1,
|
|
296
|
-
touchSoundDisabled: true,
|
|
297
|
-
disabled: option.disabled,
|
|
298
|
-
accessibilityRole: "radio",
|
|
299
|
-
accessibilityLabel: option.label,
|
|
300
|
-
accessibilityState: { checked: selected, disabled: !!option.disabled }
|
|
96
|
+
style: styles.radio,
|
|
97
|
+
animate: { borderColor: selected ? colors.primary : colors.border },
|
|
98
|
+
transition: COLOR_TRANSITION
|
|
301
99
|
},
|
|
302
|
-
/* @__PURE__ */ React2__default.default.createElement(Animated__default.default.View, { style: scaleStyle }, /* @__PURE__ */ React2__default.default.createElement(
|
|
303
|
-
reactNativeEase.EaseView,
|
|
304
|
-
{
|
|
305
|
-
style: styles.radio,
|
|
306
|
-
animate: { borderColor: selected ? colors.primary : colors.border },
|
|
307
|
-
transition: COLOR_TRANSITION
|
|
308
|
-
},
|
|
309
|
-
/* @__PURE__ */ React2__default.default.createElement(
|
|
310
|
-
reactNativeEase.EaseView,
|
|
311
|
-
{
|
|
312
|
-
style: [styles.dot, { backgroundColor: colors.primary }],
|
|
313
|
-
animate: { scale: selected ? 1 : 0, opacity: selected ? 1 : 0 },
|
|
314
|
-
transition: SPRING_ELASTIC
|
|
315
|
-
}
|
|
316
|
-
)
|
|
317
|
-
)),
|
|
318
100
|
/* @__PURE__ */ React2__default.default.createElement(
|
|
319
|
-
|
|
101
|
+
reactNativeEase.EaseView,
|
|
320
102
|
{
|
|
321
|
-
style: [styles.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
103
|
+
style: [styles.dot, { backgroundColor: colors.primary }],
|
|
104
|
+
animate: { scale: selected ? 1 : 0, opacity: selected ? 1 : 0 },
|
|
105
|
+
transition: SPRING_ELASTIC
|
|
106
|
+
}
|
|
325
107
|
)
|
|
108
|
+
),
|
|
109
|
+
/* @__PURE__ */ React2__default.default.createElement(
|
|
110
|
+
reactNative.Text,
|
|
111
|
+
{
|
|
112
|
+
style: [styles.label, { color: colors.foreground }],
|
|
113
|
+
allowFontScaling: true
|
|
114
|
+
},
|
|
115
|
+
option.label
|
|
326
116
|
)
|
|
327
117
|
);
|
|
328
118
|
}
|
|
@@ -365,7 +155,6 @@ var styles = reactNative.StyleSheet.create({
|
|
|
365
155
|
alignItems: "center",
|
|
366
156
|
gap: s(12)
|
|
367
157
|
},
|
|
368
|
-
// AUDIT FIX: was opacity on the inner circle only
|
|
369
158
|
rowDisabled: {
|
|
370
159
|
opacity: 0.45
|
|
371
160
|
},
|
package/dist/RadioGroup.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { RadioGroup } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
export { RadioGroup } from './chunk-IJCMPVW5.mjs';
|
|
2
|
+
import './chunk-M53LC4Q7.mjs';
|
|
3
|
+
import './chunk-IFYMBOEN.mjs';
|
|
4
|
+
import './chunk-ARONDO7M.mjs';
|
|
5
|
+
import './chunk-KSSVIFYR.mjs';
|
|
6
6
|
import './chunk-2CE3TQVY.mjs';
|
|
7
7
|
import './chunk-Y6FXYEAI.mjs';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { c as RetrayProvider, d as RetrayProviderProps } from './index-
|
|
1
|
+
export { c as RetrayProvider, d as RetrayProviderProps } from './index-CY34hxPN.mjs';
|
|
2
2
|
import 'react';
|
package/dist/RetrayProvider.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { c as RetrayProvider, d as RetrayProviderProps } from './index-
|
|
1
|
+
export { c as RetrayProvider, d as RetrayProviderProps } from './index-CY34hxPN.js';
|
|
2
2
|
import 'react';
|
package/dist/RetrayProvider.js
CHANGED
|
@@ -25,6 +25,8 @@ function hexToRgb(hex) {
|
|
|
25
25
|
b: parseInt(full.slice(4, 6), 16)
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
// src/theme/colors.ts
|
|
28
30
|
function componentToHex(c) {
|
|
29
31
|
return Math.round(Math.max(0, Math.min(255, c))).toString(16).padStart(2, "0");
|
|
30
32
|
}
|
|
@@ -65,8 +67,6 @@ function darken(hex, amount) {
|
|
|
65
67
|
if (!rgb) return hex;
|
|
66
68
|
return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
|
|
67
69
|
}
|
|
68
|
-
|
|
69
|
-
// src/theme/colors.ts
|
|
70
70
|
var defaultLight = {
|
|
71
71
|
background: "#ffffff",
|
|
72
72
|
foreground: "#1a1a1a",
|
|
@@ -112,6 +112,7 @@ function deriveColors(t, scheme) {
|
|
|
112
112
|
const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
|
|
113
113
|
const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
|
|
114
114
|
const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
|
|
115
|
+
const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
|
|
115
116
|
const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
|
|
116
117
|
const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
|
|
117
118
|
const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
|
|
@@ -124,6 +125,7 @@ function deriveColors(t, scheme) {
|
|
|
124
125
|
foregroundMuted,
|
|
125
126
|
surface,
|
|
126
127
|
surfaceStrong,
|
|
128
|
+
skeleton,
|
|
127
129
|
destructiveTint,
|
|
128
130
|
destructiveBorder,
|
|
129
131
|
successTint,
|
|
@@ -140,10 +142,7 @@ function deriveColors(t, scheme) {
|
|
|
140
142
|
}
|
|
141
143
|
|
|
142
144
|
// src/theme/ThemeProvider.tsx
|
|
143
|
-
var ThemeContext = React3.createContext(
|
|
144
|
-
colors: deriveColors(defaultLight, "light"),
|
|
145
|
-
colorScheme: "light"
|
|
146
|
-
});
|
|
145
|
+
var ThemeContext = React3.createContext(void 0);
|
|
147
146
|
function ThemeProvider({ children, theme, colorScheme = "system" }) {
|
|
148
147
|
const systemScheme = reactNative.useColorScheme() ?? "light";
|
|
149
148
|
const resolvedScheme = colorScheme === "system" ? systemScheme : colorScheme;
|
package/dist/RetrayProvider.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { RetrayProvider } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { RetrayProvider } from './chunk-ERWJPVX7.mjs';
|
|
2
|
+
import './chunk-SZEKQAOY.mjs';
|
|
3
|
+
import './chunk-KSSVIFYR.mjs';
|
|
4
4
|
import './chunk-2CE3TQVY.mjs';
|
|
5
5
|
import './chunk-Y6FXYEAI.mjs';
|
package/dist/Select.d.mts
CHANGED
|
@@ -12,11 +12,12 @@ interface SelectProps {
|
|
|
12
12
|
onValueChange?: (value: string) => void;
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
label?: string;
|
|
15
|
+
hint?: string;
|
|
15
16
|
error?: string;
|
|
16
17
|
disabled?: boolean;
|
|
17
18
|
style?: ViewStyle;
|
|
18
19
|
accessibilityLabel?: string;
|
|
19
20
|
}
|
|
20
|
-
declare function Select({ options, value, onValueChange, placeholder, label, error, disabled, style, accessibilityLabel, }: SelectProps): React.JSX.Element;
|
|
21
|
+
declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, }: SelectProps): React.JSX.Element;
|
|
21
22
|
|
|
22
23
|
export { Select, type SelectOption, type SelectProps };
|
package/dist/Select.d.ts
CHANGED
|
@@ -12,11 +12,12 @@ interface SelectProps {
|
|
|
12
12
|
onValueChange?: (value: string) => void;
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
label?: string;
|
|
15
|
+
hint?: string;
|
|
15
16
|
error?: string;
|
|
16
17
|
disabled?: boolean;
|
|
17
18
|
style?: ViewStyle;
|
|
18
19
|
accessibilityLabel?: string;
|
|
19
20
|
}
|
|
20
|
-
declare function Select({ options, value, onValueChange, placeholder, label, error, disabled, style, accessibilityLabel, }: SelectProps): React.JSX.Element;
|
|
21
|
+
declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, }: SelectProps): React.JSX.Element;
|
|
21
22
|
|
|
22
23
|
export { Select, type SelectOption, type SelectProps };
|