@retray-dev/ui-kit 12.2.0 → 13.2.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/CONSUMER.md +26 -11
- package/DESIGN.md +2 -2
- package/README.md +15 -11
- package/{COMPONENTS.md → SKILL.md} +374 -996
- package/dist/Accordion.d.mts +2 -0
- package/dist/Accordion.d.ts +2 -0
- package/dist/Accordion.js +49 -210
- package/dist/Accordion.mjs +6 -6
- package/dist/AlertBanner.js +29 -153
- package/dist/AlertBanner.mjs +3 -4
- package/dist/AppHeader.d.mts +5 -2
- package/dist/AppHeader.d.ts +5 -2
- package/dist/AppHeader.js +45 -239
- package/dist/AppHeader.mjs +6 -8
- package/dist/Avatar.d.mts +17 -1
- package/dist/Avatar.d.ts +17 -1
- package/dist/Avatar.js +80 -115
- package/dist/Avatar.mjs +2 -3
- package/dist/Badge.js +24 -149
- package/dist/Badge.mjs +3 -4
- package/dist/Button.js +79 -267
- package/dist/Button.mjs +6 -7
- package/dist/ButtonGroup.mjs +0 -1
- package/dist/Card.js +15 -200
- package/dist/Card.mjs +4 -6
- package/dist/CategoryStrip.d.mts +0 -5
- package/dist/CategoryStrip.d.ts +0 -5
- package/dist/CategoryStrip.js +47 -265
- package/dist/CategoryStrip.mjs +6 -7
- package/dist/Checkbox.d.mts +2 -1
- package/dist/Checkbox.d.ts +2 -1
- package/dist/Checkbox.js +18 -201
- package/dist/Checkbox.mjs +5 -6
- package/dist/Chip.js +44 -236
- package/dist/Chip.mjs +7 -7
- package/dist/ConfirmDialog.d.mts +2 -1
- package/dist/ConfirmDialog.d.ts +2 -1
- package/dist/ConfirmDialog.js +110 -300
- package/dist/ConfirmDialog.mjs +7 -8
- package/dist/CurrencyDisplay.js +1 -114
- package/dist/CurrencyDisplay.mjs +2 -3
- package/dist/CurrencyInput.js +35 -162
- package/dist/CurrencyInput.mjs +5 -6
- package/dist/DetailRow.js +25 -150
- package/dist/DetailRow.mjs +3 -4
- package/dist/EmptyState.js +80 -268
- package/dist/EmptyState.mjs +7 -8
- package/dist/ErrorBoundary.js +32 -199
- package/dist/ErrorBoundary.mjs +4 -5
- package/dist/Form.js +1 -114
- package/dist/Form.mjs +2 -3
- 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 -33
- package/dist/IconButton.js +36 -234
- package/dist/IconButton.mjs +5 -7
- package/dist/IconPicker.js +222 -929
- package/dist/IconPicker.mjs +5 -6
- package/dist/ImageUpload.d.mts +3 -3
- package/dist/ImageUpload.d.ts +3 -3
- package/dist/ImageUpload.js +49 -238
- package/dist/ImageUpload.mjs +5 -7
- package/dist/ImageViewer.js +75 -266
- package/dist/ImageViewer.mjs +8 -9
- package/dist/Input.d.mts +1 -1
- package/dist/Input.d.ts +1 -1
- package/dist/Input.js +35 -162
- package/dist/Input.mjs +4 -5
- package/dist/LabelValue.js +24 -149
- package/dist/LabelValue.mjs +3 -4
- package/dist/ListGroup.js +1 -114
- package/dist/ListGroup.mjs +2 -3
- package/dist/ListItem.d.mts +2 -1
- package/dist/ListItem.d.ts +2 -1
- package/dist/ListItem.js +41 -236
- package/dist/ListItem.mjs +5 -7
- package/dist/MediaCard.d.mts +0 -14
- package/dist/MediaCard.d.ts +0 -14
- package/dist/MediaCard.js +69 -315
- package/dist/MediaCard.mjs +5 -7
- package/dist/MenuGroup.js +1 -114
- package/dist/MenuGroup.mjs +2 -3
- package/dist/MenuItem.d.mts +2 -1
- package/dist/MenuItem.d.ts +2 -1
- package/dist/MenuItem.js +39 -235
- package/dist/MenuItem.mjs +5 -7
- package/dist/MonthPicker.js +8 -163
- package/dist/MonthPicker.mjs +3 -4
- package/dist/NumberStepper.d.mts +2 -1
- package/dist/NumberStepper.d.ts +2 -1
- package/dist/NumberStepper.js +44 -239
- package/dist/NumberStepper.mjs +5 -7
- package/dist/PagerDots.d.mts +1 -1
- package/dist/PagerDots.d.ts +1 -1
- package/dist/PagerDots.js +69 -224
- package/dist/PagerDots.mjs +6 -6
- package/dist/Pressable.js +14 -85
- package/dist/Pressable.mjs +4 -5
- package/dist/PricingCard.js +87 -272
- package/dist/PricingCard.mjs +8 -9
- package/dist/Progress.js +3 -123
- package/dist/Progress.mjs +3 -4
- package/dist/RadioGroup.js +52 -265
- package/dist/RadioGroup.mjs +5 -6
- package/dist/RetrayProvider.js +3 -6
- package/dist/RetrayProvider.mjs +3 -4
- package/dist/Select.d.mts +3 -1
- package/dist/Select.d.ts +3 -1
- package/dist/Select.js +27 -233
- package/dist/Select.mjs +4 -6
- package/dist/SelectableCard.js +33 -209
- package/dist/SelectableCard.mjs +5 -6
- package/dist/SelectableGrid.d.mts +0 -21
- package/dist/SelectableGrid.d.ts +0 -21
- package/dist/SelectableGrid.js +49 -272
- package/dist/SelectableGrid.mjs +5 -7
- package/dist/Separator.js +1 -114
- package/dist/Separator.mjs +2 -3
- package/dist/Sheet.d.mts +1 -1
- package/dist/Sheet.d.ts +1 -1
- package/dist/Sheet.js +33 -175
- package/dist/Sheet.mjs +3 -4
- package/dist/SheetSelect.js +39 -236
- package/dist/SheetSelect.mjs +6 -7
- package/dist/Skeleton.js +4 -124
- package/dist/Skeleton.mjs +3 -4
- package/dist/Slider.d.mts +2 -1
- package/dist/Slider.d.ts +2 -1
- package/dist/Slider.js +8 -161
- package/dist/Slider.mjs +3 -4
- package/dist/Spinner.js +3 -116
- package/dist/Spinner.mjs +2 -3
- package/dist/Stats.js +36 -234
- package/dist/Stats.mjs +5 -7
- package/dist/Switch.d.mts +2 -1
- package/dist/Switch.d.ts +2 -1
- package/dist/Switch.js +26 -176
- package/dist/Switch.mjs +5 -5
- package/dist/TabBar.js +43 -200
- package/dist/TabBar.mjs +5 -5
- package/dist/Tabs.js +15 -199
- package/dist/Tabs.mjs +5 -6
- package/dist/Text.js +9 -130
- package/dist/Text.mjs +2 -3
- package/dist/Textarea.d.mts +2 -1
- package/dist/Textarea.d.ts +2 -1
- package/dist/Textarea.js +71 -219
- package/dist/Textarea.mjs +4 -5
- package/dist/Toast.d.mts +12 -10
- package/dist/Toast.d.ts +12 -10
- package/dist/Toast.js +1 -114
- package/dist/Toast.mjs +2 -3
- package/dist/Toggle.js +39 -236
- package/dist/Toggle.mjs +6 -7
- package/dist/{chunk-ELGEOM7I.mjs → chunk-2QXJDRVU.mjs} +13 -10
- package/dist/{chunk-LIS6I5UP.mjs → chunk-2VIDP72N.mjs} +3 -3
- package/dist/{chunk-NHDI3VQB.mjs → chunk-422IVD3H.mjs} +16 -12
- package/dist/{chunk-DF7JA72E.mjs → chunk-4NQFTHN3.mjs} +13 -7
- package/dist/{chunk-3XCFYSX4.mjs → chunk-5MYNAAFE.mjs} +13 -17
- package/dist/{chunk-E7NEHHXV.mjs → chunk-62BBSSUF.mjs} +3 -3
- package/dist/{chunk-UBUXUMER.mjs → chunk-77UOVFIS.mjs} +7 -5
- package/dist/{chunk-M3C7XM2M.mjs → chunk-7BZJRB77.mjs} +28 -18
- package/dist/chunk-ARONDO7M.mjs +40 -0
- package/dist/{chunk-GH67YXG6.mjs → chunk-AZV7KNJI.mjs} +3 -3
- package/dist/{chunk-2P2CB235.mjs → chunk-BULKGOIZ.mjs} +7 -8
- package/dist/{chunk-RJNLAH76.mjs → chunk-C5ZRMR2E.mjs} +4 -2
- package/dist/chunk-CM2DG4MR.mjs +142 -0
- package/dist/{chunk-UQ4742ET.mjs → chunk-COA2YZOX.mjs} +8 -6
- package/dist/{chunk-EDLCGYIO.mjs → chunk-CZN6L2QU.mjs} +11 -8
- package/dist/{chunk-TS7DGUIR.mjs → chunk-DBHSUUKU.mjs} +2 -2
- package/dist/{chunk-57V2LXCK.mjs → chunk-DE25XTVQ.mjs} +3 -3
- package/dist/{chunk-RMRS44MQ.mjs → chunk-E2PONRJG.mjs} +13 -9
- package/dist/{chunk-GUTDFUNF.mjs → chunk-EHGBHFMH.mjs} +9 -17
- package/dist/{chunk-ZIMY2QUM.mjs → chunk-ERWJPVX7.mjs} +2 -2
- package/dist/{chunk-NLZY4TXU.mjs → chunk-ESQDPO5E.mjs} +7 -7
- package/dist/{chunk-VJBUCITV.mjs → chunk-EW2FIDSM.mjs} +1 -1
- package/dist/{chunk-HC4VVCWY.mjs → chunk-FTTI6T5Q.mjs} +4 -4
- package/dist/{chunk-MVMGPZN6.mjs → chunk-H6MQL7PS.mjs} +12 -7
- package/dist/{chunk-CF27NBXO.mjs → chunk-HHOOFDBA.mjs} +38 -41
- package/dist/{chunk-2HFD4IHU.mjs → chunk-HUSSF6TF.mjs} +1 -1
- package/dist/{chunk-HEDQPK4I.mjs → chunk-IDVUZIVY.mjs} +16 -22
- package/dist/chunk-IFYMBOEN.mjs +14 -0
- package/dist/{chunk-QOLWA2PW.mjs → chunk-IGU223UM.mjs} +80 -4
- package/dist/chunk-IJCMPVW5.mjs +121 -0
- package/dist/{chunk-AENAVIKT.mjs → chunk-ITG4JQM3.mjs} +4 -4
- package/dist/{chunk-E5UKLSJZ.mjs → chunk-K3QX2M26.mjs} +11 -8
- package/dist/{chunk-4OORJ2DY.mjs → chunk-K7TKID3V.mjs} +8 -7
- package/dist/{chunk-2LG326TT.mjs → chunk-KAGADD2O.mjs} +4 -4
- package/dist/{chunk-IVSRW4HS.mjs → chunk-KC5QDYGZ.mjs} +4 -4
- package/dist/{chunk-7AFZWSCI.mjs → chunk-KPTY7UYQ.mjs} +1 -1
- package/dist/{chunk-YTXRIXNZ.mjs → chunk-KSSVIFYR.mjs} +9 -12
- package/dist/chunk-L3YKPTJQ.mjs +119 -0
- package/dist/chunk-M53LC4Q7.mjs +35 -0
- package/dist/chunk-MZ6WRTD2.mjs +40 -0
- package/dist/chunk-NGEN2EES.mjs +581 -0
- package/dist/{chunk-ZR6HSEAB.mjs → chunk-NPCBNGNE.mjs} +17 -26
- package/dist/{chunk-C43HRKXH.mjs → chunk-OBV72JD4.mjs} +1 -1
- package/dist/{chunk-LPV4NJJK.mjs → chunk-PGQ6FMXS.mjs} +6 -5
- package/dist/{chunk-MEPSKGBO.mjs → chunk-PI6RULJX.mjs} +1 -1
- package/dist/{chunk-F3YTWO3T.mjs → chunk-RA6SAAFE.mjs} +9 -8
- package/dist/{chunk-UNNRUJTM.mjs → chunk-RRKM4MKB.mjs} +7 -7
- package/dist/{chunk-ULGNQPNE.mjs → chunk-S2VGME7X.mjs} +1 -1
- package/dist/{chunk-OLVJFKXS.mjs → chunk-S44XWTTC.mjs} +35 -25
- package/dist/{chunk-YMYIEVZP.mjs → chunk-SZEKQAOY.mjs} +1 -1
- package/dist/{chunk-BXF4AMHY.mjs → chunk-TMH263OK.mjs} +5 -4
- package/dist/{chunk-NJG7DHVF.mjs → chunk-U6DEBYU5.mjs} +10 -9
- package/dist/{chunk-QXDGGOLC.mjs → chunk-UMZTPUB3.mjs} +33 -21
- package/dist/{chunk-KSUWPU2F.mjs → chunk-WIPEDNSD.mjs} +7 -7
- package/dist/{chunk-QDAZGZUF.mjs → chunk-XCIG6HT2.mjs} +3 -3
- package/dist/{chunk-4J2PXL36.mjs → chunk-Y6YS33GM.mjs} +40 -38
- package/dist/{chunk-4XOB5TTD.mjs → chunk-ZKDKKQCE.mjs} +5 -5
- package/dist/{chunk-LOBLCFMN.mjs → chunk-ZTPYUU5C.mjs} +5 -5
- package/dist/fonts.mjs +0 -2
- package/dist/index.d.mts +13 -73
- package/dist/index.d.ts +13 -73
- package/dist/index.js +1149 -1892
- package/dist/index.mjs +81 -86
- package/package.json +20 -20
- package/src/components/Accordion/Accordion.tsx +15 -9
- package/src/components/AlertBanner/AlertBanner.tsx +7 -6
- package/src/components/AppHeader/AppHeader.tsx +25 -10
- 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 +50 -46
- package/src/components/Card/Card.tsx +1 -0
- package/src/components/CategoryStrip/CategoryStrip.tsx +36 -49
- package/src/components/Checkbox/Checkbox.tsx +3 -0
- package/src/components/Chip/Chip.tsx +5 -4
- package/src/components/ConfirmDialog/ConfirmDialog.tsx +33 -17
- 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 +43 -46
- 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 +7 -4
- package/src/components/MediaCard/MediaCard.tsx +21 -59
- package/src/components/MenuItem/MenuItem.tsx +5 -2
- package/src/components/MonthPicker/MonthPicker.tsx +2 -2
- package/src/components/NumberStepper/NumberStepper.tsx +10 -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 +35 -39
- package/src/components/SelectableCard/SelectableCard.tsx +4 -6
- package/src/components/SelectableGrid/SelectableGrid.tsx +37 -72
- package/src/components/Sheet/Sheet.tsx +28 -15
- package/src/components/Sheet/index.ts +2 -2
- package/src/components/SheetSelect/SheetSelect.tsx +3 -3
- package/src/components/Skeleton/Skeleton.tsx +1 -1
- package/src/components/Slider/Slider.tsx +3 -0
- package/src/components/Spinner/Spinner.tsx +2 -2
- package/src/components/Stats/Stats.tsx +2 -2
- package/src/components/Switch/Switch.tsx +12 -7
- package/src/components/TabBar/TabBar.tsx +9 -8
- package/src/components/Text/Text.tsx +13 -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 +3 -4
- package/src/theme/ThemeProvider.tsx +1 -4
- package/src/theme/colorUtils.ts +1 -72
- package/src/theme/colors.ts +40 -1
- package/src/theme/types.ts +2 -2
- 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-2BA3JMKK.mjs +0 -136
- package/dist/chunk-3DKJ2GIC.mjs +0 -30
- package/dist/chunk-7ELGZ66G.mjs +0 -164
- package/dist/chunk-DVK4G2GT.mjs +0 -59
- package/dist/chunk-EJ7ZPXOH.mjs +0 -163
- package/dist/chunk-KA7LTET3.mjs +0 -71
- package/dist/chunk-LNPKGWBG.mjs +0 -134
- package/dist/chunk-NC5ZTR2Y.mjs +0 -32
- package/dist/chunk-SAWUXP3A.mjs +0 -1114
- package/dist/chunk-Y6FXYEAI.mjs +0 -8
- 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/Text.js
CHANGED
|
@@ -10,120 +10,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
10
10
|
var React2__default = /*#__PURE__*/_interopDefault(React2);
|
|
11
11
|
|
|
12
12
|
// src/components/Text/Text.tsx
|
|
13
|
-
|
|
14
|
-
// src/theme/colorUtils.ts
|
|
15
|
-
function hexToRgb(hex) {
|
|
16
|
-
const clean = hex.replace("#", "");
|
|
17
|
-
const full = clean.length === 3 ? clean.split("").map((c) => c + c).join("") : clean;
|
|
18
|
-
if (full.length !== 6) return null;
|
|
19
|
-
return {
|
|
20
|
-
r: parseInt(full.slice(0, 2), 16),
|
|
21
|
-
g: parseInt(full.slice(2, 4), 16),
|
|
22
|
-
b: parseInt(full.slice(4, 6), 16)
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function componentToHex(c) {
|
|
26
|
-
return Math.round(Math.max(0, Math.min(255, c))).toString(16).padStart(2, "0");
|
|
27
|
-
}
|
|
28
|
-
function rgbToHex(r, g, b) {
|
|
29
|
-
return `#${componentToHex(r)}${componentToHex(g)}${componentToHex(b)}`;
|
|
30
|
-
}
|
|
31
|
-
function withAlphaOnWhite(hex, alpha) {
|
|
32
|
-
const rgb = hexToRgb(hex);
|
|
33
|
-
if (!rgb) return hex;
|
|
34
|
-
const r = rgb.r * alpha + 255 * (1 - alpha);
|
|
35
|
-
const g = rgb.g * alpha + 255 * (1 - alpha);
|
|
36
|
-
const b = rgb.b * alpha + 255 * (1 - alpha);
|
|
37
|
-
return rgbToHex(r, g, b);
|
|
38
|
-
}
|
|
39
|
-
function withAlphaOnDark(hex, alpha, bgHex = "#0f0f0f") {
|
|
40
|
-
const rgb = hexToRgb(hex);
|
|
41
|
-
const bg = hexToRgb(bgHex);
|
|
42
|
-
if (!rgb || !bg) return hex;
|
|
43
|
-
const r = rgb.r * alpha + bg.r * (1 - alpha);
|
|
44
|
-
const g = rgb.g * alpha + bg.g * (1 - alpha);
|
|
45
|
-
const b = rgb.b * alpha + bg.b * (1 - alpha);
|
|
46
|
-
return rgbToHex(r, g, b);
|
|
47
|
-
}
|
|
48
|
-
function mixWithBackground(fgHex, bgHex, opacity) {
|
|
49
|
-
const fg = hexToRgb(fgHex);
|
|
50
|
-
const bg = hexToRgb(bgHex);
|
|
51
|
-
if (!fg || !bg) return fgHex;
|
|
52
|
-
const r = fg.r * opacity + bg.r * (1 - opacity);
|
|
53
|
-
const g = fg.g * opacity + bg.g * (1 - opacity);
|
|
54
|
-
const b = fg.b * opacity + bg.b * (1 - opacity);
|
|
55
|
-
return rgbToHex(r, g, b);
|
|
56
|
-
}
|
|
57
|
-
function lighten(hex, amount) {
|
|
58
|
-
return withAlphaOnWhite(hex, 1 - amount);
|
|
59
|
-
}
|
|
60
|
-
function darken(hex, amount) {
|
|
61
|
-
const rgb = hexToRgb(hex);
|
|
62
|
-
if (!rgb) return hex;
|
|
63
|
-
return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// src/theme/colors.ts
|
|
67
|
-
var defaultLight = {
|
|
68
|
-
background: "#ffffff",
|
|
69
|
-
foreground: "#1a1a1a",
|
|
70
|
-
card: "#ffffff",
|
|
71
|
-
primary: "#1a1a1a",
|
|
72
|
-
primaryForeground: "#ffffff",
|
|
73
|
-
// AUDIT FIX: brand accent — was undefined; falls back to primary when omitted
|
|
74
|
-
accent: "#d4561d",
|
|
75
|
-
accentForeground: "#ffffff",
|
|
76
|
-
border: "#dddddd",
|
|
77
|
-
// AUDIT FIX: was #e53935 (4.22:1 on white — fails AA); #c72828 = 5.59:1 ✓
|
|
78
|
-
destructive: "#c72828",
|
|
79
|
-
destructiveForeground: "#ffffff",
|
|
80
|
-
success: "#1a7a45",
|
|
81
|
-
successForeground: "#ffffff",
|
|
82
|
-
// AUDIT FIX: was #e67e00 (2.86:1 — severe fail); #9a5200 = 5.86:1 ✓ AAA-near
|
|
83
|
-
warning: "#9a5200",
|
|
84
|
-
warningForeground: "#ffffff"
|
|
85
|
-
};
|
|
86
|
-
function deriveColors(t, scheme) {
|
|
87
|
-
const dark = scheme === "dark";
|
|
88
|
-
const bg = t.background;
|
|
89
|
-
const foregroundSubtle = mixWithBackground(t.foreground, bg, 0.7);
|
|
90
|
-
const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
|
|
91
|
-
const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
|
|
92
|
-
const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
|
|
93
|
-
const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
|
|
94
|
-
const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
|
|
95
|
-
const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
|
|
96
|
-
const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
|
|
97
|
-
const successBorder = dark ? withAlphaOnDark(t.success, 0.45, bg) : withAlphaOnWhite(t.success, 0.3);
|
|
98
|
-
const warningTint = dark ? withAlphaOnDark(t.warning, 0.15, bg) : withAlphaOnWhite(t.warning, 0.08);
|
|
99
|
-
const warningBorder = dark ? withAlphaOnDark(t.warning, 0.45, bg) : withAlphaOnWhite(t.warning, 0.3);
|
|
100
|
-
return {
|
|
101
|
-
...t,
|
|
102
|
-
foregroundSubtle,
|
|
103
|
-
foregroundMuted,
|
|
104
|
-
surface,
|
|
105
|
-
surfaceStrong,
|
|
106
|
-
skeleton,
|
|
107
|
-
destructiveTint,
|
|
108
|
-
destructiveBorder,
|
|
109
|
-
successTint,
|
|
110
|
-
successBorder,
|
|
111
|
-
warningTint,
|
|
112
|
-
warningBorder,
|
|
113
|
-
overlay: t.overlay ?? "rgba(0,0,0,0.45)",
|
|
114
|
-
accentResolved: t.accent ?? t.primary,
|
|
115
|
-
accentForegroundResolved: t.accentForeground ?? t.primaryForeground,
|
|
116
|
-
ring: t.accent ?? t.primary,
|
|
117
|
-
input: t.border,
|
|
118
|
-
separator: dark ? lighten(t.border, 0.22) : darken(t.border, 0.16)
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// src/theme/ThemeProvider.tsx
|
|
123
|
-
var ThemeContext = React2.createContext({
|
|
124
|
-
colors: deriveColors(defaultLight, "light"),
|
|
125
|
-
colorScheme: "light"
|
|
126
|
-
});
|
|
13
|
+
var ThemeContext = React2.createContext(void 0);
|
|
127
14
|
function useTheme() {
|
|
128
15
|
const context = React2.useContext(ThemeContext);
|
|
129
16
|
if (!context) {
|
|
@@ -256,22 +143,6 @@ var TYPOGRAPHY = {
|
|
|
256
143
|
var isWeb = reactNative.Platform.OS === "web";
|
|
257
144
|
var ms = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateScale;
|
|
258
145
|
var mvs = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateVerticalScale;
|
|
259
|
-
var warned = false;
|
|
260
|
-
function warnIfFontsMissing() {
|
|
261
|
-
if (warned) return;
|
|
262
|
-
if (typeof __DEV__ !== "undefined" && !__DEV__) return;
|
|
263
|
-
warned = true;
|
|
264
|
-
try {
|
|
265
|
-
if (!expoFont.isLoaded("Sohne-Regular")) {
|
|
266
|
-
console.warn(
|
|
267
|
-
"[retray-ui-kit] Sohne fonts are not loaded \u2014 text will fall back to the system font. Load them at your app root before rendering any UI kit component:\n\n import { useFonts } from 'expo-font'\n import { SohneFontNames } from '@retray-dev/ui-kit/fonts'\n // Copy the SohneFonts boilerplate from CONSUMER.md into your App.tsx\n\n const [fontsLoaded] = useFonts(SohneFonts)\n if (!fontsLoaded) return null\n"
|
|
268
|
-
);
|
|
269
|
-
}
|
|
270
|
-
} catch {
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
// src/components/Text/Text.tsx
|
|
275
146
|
var variantStyles = {
|
|
276
147
|
"display-hero": { ...TYPOGRAPHY["display-hero"], fontSize: ms(TYPOGRAPHY["display-hero"].fontSize), lineHeight: mvs(TYPOGRAPHY["display-hero"].lineHeight) },
|
|
277
148
|
"display-xl": { ...TYPOGRAPHY["display-xl"], fontSize: ms(TYPOGRAPHY["display-xl"].fontSize), lineHeight: mvs(TYPOGRAPHY["display-xl"].lineHeight) },
|
|
@@ -309,6 +180,14 @@ var defaultColorVariant = {
|
|
|
309
180
|
"button-lg": "foreground",
|
|
310
181
|
"button-sm": "foreground"
|
|
311
182
|
};
|
|
183
|
+
var fontWarned = false;
|
|
184
|
+
function warnIfFontsMissing() {
|
|
185
|
+
if (fontWarned || typeof __DEV__ === "undefined" || !__DEV__) return;
|
|
186
|
+
fontWarned = true;
|
|
187
|
+
if (!expoFont.isLoaded("Sohne-Regular")) {
|
|
188
|
+
console.warn("[retray-ui-kit] Sohne fonts not loaded \u2014 text falls back to system font.");
|
|
189
|
+
}
|
|
190
|
+
}
|
|
312
191
|
function TextBase({ variant = "body-md", color, style, uppercase, children, ...props }) {
|
|
313
192
|
warnIfFontsMissing();
|
|
314
193
|
const { colors } = useTheme();
|
package/dist/Text.mjs
CHANGED
package/dist/Textarea.d.mts
CHANGED
|
@@ -5,12 +5,13 @@ interface TextareaProps extends TextInputProps {
|
|
|
5
5
|
label?: string;
|
|
6
6
|
error?: string;
|
|
7
7
|
hint?: string;
|
|
8
|
+
disabled?: boolean;
|
|
8
9
|
rows?: number;
|
|
9
10
|
prefixIcon?: string;
|
|
10
11
|
prefixIconNode?: React.ReactNode;
|
|
11
12
|
prefixIconColor?: string;
|
|
12
13
|
containerStyle?: ViewStyle;
|
|
13
14
|
}
|
|
14
|
-
declare function Textarea({ label, error, hint, rows, prefixIcon, prefixIconNode, prefixIconColor, containerStyle, style, onFocus, onBlur, accessibilityLabel, ...props }: TextareaProps): React.JSX.Element;
|
|
15
|
+
declare function Textarea({ label, error, hint, disabled, rows, prefixIcon, prefixIconNode, prefixIconColor, containerStyle, style, onFocus, onBlur, accessibilityLabel, ...props }: TextareaProps): React.JSX.Element;
|
|
15
16
|
|
|
16
17
|
export { Textarea, type TextareaProps };
|
package/dist/Textarea.d.ts
CHANGED
|
@@ -5,12 +5,13 @@ interface TextareaProps extends TextInputProps {
|
|
|
5
5
|
label?: string;
|
|
6
6
|
error?: string;
|
|
7
7
|
hint?: string;
|
|
8
|
+
disabled?: boolean;
|
|
8
9
|
rows?: number;
|
|
9
10
|
prefixIcon?: string;
|
|
10
11
|
prefixIconNode?: React.ReactNode;
|
|
11
12
|
prefixIconColor?: string;
|
|
12
13
|
containerStyle?: ViewStyle;
|
|
13
14
|
}
|
|
14
|
-
declare function Textarea({ label, error, hint, rows, prefixIcon, prefixIconNode, prefixIconColor, containerStyle, style, onFocus, onBlur, accessibilityLabel, ...props }: TextareaProps): React.JSX.Element;
|
|
15
|
+
declare function Textarea({ label, error, hint, disabled, rows, prefixIcon, prefixIconNode, prefixIconColor, containerStyle, style, onFocus, onBlur, accessibilityLabel, ...props }: TextareaProps): React.JSX.Element;
|
|
15
16
|
|
|
16
17
|
export { Textarea, type TextareaProps };
|
package/dist/Textarea.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var React3 = require('react');
|
|
4
4
|
var reactNative = require('react-native');
|
|
5
|
-
var
|
|
5
|
+
var reactNativeEase = require('react-native-ease');
|
|
6
6
|
var reactNativeSizeMatters = require('react-native-size-matters');
|
|
7
7
|
var AntDesign = require('@expo/vector-icons/AntDesign');
|
|
8
8
|
var Entypo = require('@expo/vector-icons/Entypo');
|
|
@@ -14,7 +14,6 @@ var Ionicons = require('@expo/vector-icons/Ionicons');
|
|
|
14
14
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
|
|
16
16
|
var React3__default = /*#__PURE__*/_interopDefault(React3);
|
|
17
|
-
var Animated__default = /*#__PURE__*/_interopDefault(Animated);
|
|
18
17
|
var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
|
|
19
18
|
var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
|
|
20
19
|
var Feather__default = /*#__PURE__*/_interopDefault(Feather);
|
|
@@ -23,120 +22,7 @@ var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
|
|
|
23
22
|
var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
|
|
24
23
|
|
|
25
24
|
// src/components/Textarea/Textarea.tsx
|
|
26
|
-
|
|
27
|
-
// src/theme/colorUtils.ts
|
|
28
|
-
function hexToRgb(hex) {
|
|
29
|
-
const clean = hex.replace("#", "");
|
|
30
|
-
const full = clean.length === 3 ? clean.split("").map((c) => c + c).join("") : clean;
|
|
31
|
-
if (full.length !== 6) return null;
|
|
32
|
-
return {
|
|
33
|
-
r: parseInt(full.slice(0, 2), 16),
|
|
34
|
-
g: parseInt(full.slice(2, 4), 16),
|
|
35
|
-
b: parseInt(full.slice(4, 6), 16)
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function componentToHex(c) {
|
|
39
|
-
return Math.round(Math.max(0, Math.min(255, c))).toString(16).padStart(2, "0");
|
|
40
|
-
}
|
|
41
|
-
function rgbToHex(r, g, b) {
|
|
42
|
-
return `#${componentToHex(r)}${componentToHex(g)}${componentToHex(b)}`;
|
|
43
|
-
}
|
|
44
|
-
function withAlphaOnWhite(hex, alpha) {
|
|
45
|
-
const rgb = hexToRgb(hex);
|
|
46
|
-
if (!rgb) return hex;
|
|
47
|
-
const r = rgb.r * alpha + 255 * (1 - alpha);
|
|
48
|
-
const g = rgb.g * alpha + 255 * (1 - alpha);
|
|
49
|
-
const b = rgb.b * alpha + 255 * (1 - alpha);
|
|
50
|
-
return rgbToHex(r, g, b);
|
|
51
|
-
}
|
|
52
|
-
function withAlphaOnDark(hex, alpha, bgHex = "#0f0f0f") {
|
|
53
|
-
const rgb = hexToRgb(hex);
|
|
54
|
-
const bg = hexToRgb(bgHex);
|
|
55
|
-
if (!rgb || !bg) return hex;
|
|
56
|
-
const r = rgb.r * alpha + bg.r * (1 - alpha);
|
|
57
|
-
const g = rgb.g * alpha + bg.g * (1 - alpha);
|
|
58
|
-
const b = rgb.b * alpha + bg.b * (1 - alpha);
|
|
59
|
-
return rgbToHex(r, g, b);
|
|
60
|
-
}
|
|
61
|
-
function mixWithBackground(fgHex, bgHex, opacity) {
|
|
62
|
-
const fg = hexToRgb(fgHex);
|
|
63
|
-
const bg = hexToRgb(bgHex);
|
|
64
|
-
if (!fg || !bg) return fgHex;
|
|
65
|
-
const r = fg.r * opacity + bg.r * (1 - opacity);
|
|
66
|
-
const g = fg.g * opacity + bg.g * (1 - opacity);
|
|
67
|
-
const b = fg.b * opacity + bg.b * (1 - opacity);
|
|
68
|
-
return rgbToHex(r, g, b);
|
|
69
|
-
}
|
|
70
|
-
function lighten(hex, amount) {
|
|
71
|
-
return withAlphaOnWhite(hex, 1 - amount);
|
|
72
|
-
}
|
|
73
|
-
function darken(hex, amount) {
|
|
74
|
-
const rgb = hexToRgb(hex);
|
|
75
|
-
if (!rgb) return hex;
|
|
76
|
-
return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// src/theme/colors.ts
|
|
80
|
-
var defaultLight = {
|
|
81
|
-
background: "#ffffff",
|
|
82
|
-
foreground: "#1a1a1a",
|
|
83
|
-
card: "#ffffff",
|
|
84
|
-
primary: "#1a1a1a",
|
|
85
|
-
primaryForeground: "#ffffff",
|
|
86
|
-
// AUDIT FIX: brand accent — was undefined; falls back to primary when omitted
|
|
87
|
-
accent: "#d4561d",
|
|
88
|
-
accentForeground: "#ffffff",
|
|
89
|
-
border: "#dddddd",
|
|
90
|
-
// AUDIT FIX: was #e53935 (4.22:1 on white — fails AA); #c72828 = 5.59:1 ✓
|
|
91
|
-
destructive: "#c72828",
|
|
92
|
-
destructiveForeground: "#ffffff",
|
|
93
|
-
success: "#1a7a45",
|
|
94
|
-
successForeground: "#ffffff",
|
|
95
|
-
// AUDIT FIX: was #e67e00 (2.86:1 — severe fail); #9a5200 = 5.86:1 ✓ AAA-near
|
|
96
|
-
warning: "#9a5200",
|
|
97
|
-
warningForeground: "#ffffff"
|
|
98
|
-
};
|
|
99
|
-
function deriveColors(t, scheme) {
|
|
100
|
-
const dark = scheme === "dark";
|
|
101
|
-
const bg = t.background;
|
|
102
|
-
const foregroundSubtle = mixWithBackground(t.foreground, bg, 0.7);
|
|
103
|
-
const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
|
|
104
|
-
const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
|
|
105
|
-
const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
|
|
106
|
-
const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
|
|
107
|
-
const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
|
|
108
|
-
const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
|
|
109
|
-
const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
|
|
110
|
-
const successBorder = dark ? withAlphaOnDark(t.success, 0.45, bg) : withAlphaOnWhite(t.success, 0.3);
|
|
111
|
-
const warningTint = dark ? withAlphaOnDark(t.warning, 0.15, bg) : withAlphaOnWhite(t.warning, 0.08);
|
|
112
|
-
const warningBorder = dark ? withAlphaOnDark(t.warning, 0.45, bg) : withAlphaOnWhite(t.warning, 0.3);
|
|
113
|
-
return {
|
|
114
|
-
...t,
|
|
115
|
-
foregroundSubtle,
|
|
116
|
-
foregroundMuted,
|
|
117
|
-
surface,
|
|
118
|
-
surfaceStrong,
|
|
119
|
-
skeleton,
|
|
120
|
-
destructiveTint,
|
|
121
|
-
destructiveBorder,
|
|
122
|
-
successTint,
|
|
123
|
-
successBorder,
|
|
124
|
-
warningTint,
|
|
125
|
-
warningBorder,
|
|
126
|
-
overlay: t.overlay ?? "rgba(0,0,0,0.45)",
|
|
127
|
-
accentResolved: t.accent ?? t.primary,
|
|
128
|
-
accentForegroundResolved: t.accentForeground ?? t.primaryForeground,
|
|
129
|
-
ring: t.accent ?? t.primary,
|
|
130
|
-
input: t.border,
|
|
131
|
-
separator: dark ? lighten(t.border, 0.22) : darken(t.border, 0.16)
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// src/theme/ThemeProvider.tsx
|
|
136
|
-
var ThemeContext = React3.createContext({
|
|
137
|
-
colors: deriveColors(defaultLight, "light"),
|
|
138
|
-
colorScheme: "light"
|
|
139
|
-
});
|
|
25
|
+
var ThemeContext = React3.createContext(void 0);
|
|
140
26
|
function useTheme() {
|
|
141
27
|
const context = React3.useContext(ThemeContext);
|
|
142
28
|
if (!context) {
|
|
@@ -148,78 +34,52 @@ var isWeb = reactNative.Platform.OS === "web";
|
|
|
148
34
|
var s = isWeb ? (n) => n : reactNativeSizeMatters.scale;
|
|
149
35
|
var vs = isWeb ? (n) => n : reactNativeSizeMatters.verticalScale;
|
|
150
36
|
var ms = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateScale;
|
|
151
|
-
var glyphMapOf = (mod) => mod.glyphMap ?? {};
|
|
152
37
|
var ALL_FAMILIES = [
|
|
153
|
-
{ name: "
|
|
154
|
-
{ name: "
|
|
155
|
-
{ name: "
|
|
156
|
-
{ name: "
|
|
157
|
-
{ name: "
|
|
158
|
-
{ 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 }
|
|
159
44
|
];
|
|
160
|
-
var
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
for (const
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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 = {};
|
|
168
54
|
}
|
|
169
55
|
}
|
|
170
|
-
return cache;
|
|
171
|
-
}
|
|
172
|
-
function resolveFamily(name) {
|
|
173
|
-
if (!resolvedCache) {
|
|
174
|
-
resolvedCache = buildCache();
|
|
175
|
-
}
|
|
176
|
-
return resolvedCache.get(name) ?? null;
|
|
177
56
|
}
|
|
178
57
|
function Icon({ name, size, color, family }) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const Component = resolved.component;
|
|
187
|
-
return React3__default.default.createElement(Component, { name, size, color });
|
|
188
|
-
}
|
|
189
|
-
function renderIcon(name, size, color) {
|
|
190
|
-
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 });
|
|
191
65
|
}
|
|
66
|
+
|
|
67
|
+
// src/utils/animations.ts
|
|
192
68
|
var TIMINGS = {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
var EASINGS = {
|
|
199
|
-
/** Material-style ease-out — natural deceleration for state changes. */
|
|
200
|
-
standard: Animated.Easing.bezier(0.2, 0, 0, 1),
|
|
201
|
-
/** Strong ease-out for expanding surfaces (Accordion open). */
|
|
202
|
-
expand: Animated.Easing.bezier(0.23, 1, 0.32, 1),
|
|
203
|
-
/** Quick ease-in for collapsing. */
|
|
204
|
-
collapse: Animated.Easing.in(Animated.Easing.ease)
|
|
69
|
+
state: { duration: 160 }};
|
|
70
|
+
var COLOR_TRANSITION = {
|
|
71
|
+
type: "timing",
|
|
72
|
+
duration: TIMINGS.state.duration,
|
|
73
|
+
easing: [0.2, 0, 0, 1]
|
|
205
74
|
};
|
|
206
75
|
|
|
207
|
-
// src/utils/useColorTransition.ts
|
|
208
|
-
function useColorTransition(active, options = {}) {
|
|
209
|
-
const { duration = TIMINGS.state.duration } = options;
|
|
210
|
-
const progress = Animated.useSharedValue(active ? 1 : 0);
|
|
211
|
-
React3.useEffect(() => {
|
|
212
|
-
progress.value = Animated.withTiming(active ? 1 : 0, { duration, easing: EASINGS.standard });
|
|
213
|
-
}, [active, duration, progress]);
|
|
214
|
-
return progress;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
76
|
// src/components/Textarea/Textarea.tsx
|
|
218
77
|
var webInputResetStyle = reactNative.Platform.OS === "web" ? { outlineStyle: "none", outlineWidth: 0, outlineColor: "transparent", boxShadow: "none" } : {};
|
|
219
78
|
function Textarea({
|
|
220
79
|
label,
|
|
221
80
|
error,
|
|
222
81
|
hint,
|
|
82
|
+
disabled,
|
|
223
83
|
rows = 4,
|
|
224
84
|
prefixIcon,
|
|
225
85
|
prefixIconNode,
|
|
@@ -233,54 +93,48 @@ function Textarea({
|
|
|
233
93
|
}) {
|
|
234
94
|
const { colors } = useTheme();
|
|
235
95
|
const [focused, setFocused] = React3.useState(false);
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
})
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
96
|
+
const resolvedPrefixIcon = prefixIcon ? /* @__PURE__ */ React3__default.default.createElement(Icon, { name: prefixIcon, size: ms(16), color: prefixIconColor ?? colors.foregroundMuted }) : prefixIconNode;
|
|
97
|
+
const borderColor = error ? colors.destructive : focused ? colors.primary : colors.border;
|
|
98
|
+
return /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: [styles.container, containerStyle] }, label ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles.label, { color: colors.foreground }], allowFontScaling: true }, label) : null, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: [styles.inputWrapper, { backgroundColor: colors.background }] }, /* @__PURE__ */ React3__default.default.createElement(
|
|
99
|
+
reactNativeEase.EaseView,
|
|
100
|
+
{
|
|
101
|
+
style: [styles.borderOverlay, { borderWidth: error ? 2 : 1 }],
|
|
102
|
+
animate: { borderColor },
|
|
103
|
+
transition: COLOR_TRANSITION,
|
|
104
|
+
pointerEvents: "none"
|
|
105
|
+
}
|
|
106
|
+
), resolvedPrefixIcon ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.prefixIcon }, resolvedPrefixIcon) : null, /* @__PURE__ */ React3__default.default.createElement(
|
|
107
|
+
reactNative.TextInput,
|
|
246
108
|
{
|
|
109
|
+
multiline: true,
|
|
110
|
+
numberOfLines: rows,
|
|
111
|
+
textAlignVertical: "top",
|
|
112
|
+
editable: !disabled,
|
|
247
113
|
style: [
|
|
248
|
-
styles.
|
|
249
|
-
{
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
/* @__PURE__ */ React3__default.default.createElement(Animated__default.default.View, { style: [styles.borderOverlay, borderAnimStyle], pointerEvents: "none" }),
|
|
253
|
-
resolvedPrefixIcon ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.prefixIcon }, resolvedPrefixIcon) : null,
|
|
254
|
-
/* @__PURE__ */ React3__default.default.createElement(
|
|
255
|
-
reactNative.TextInput,
|
|
256
|
-
{
|
|
257
|
-
multiline: true,
|
|
258
|
-
numberOfLines: rows,
|
|
259
|
-
textAlignVertical: "top",
|
|
260
|
-
style: [
|
|
261
|
-
styles.input,
|
|
262
|
-
{
|
|
263
|
-
color: colors.foreground,
|
|
264
|
-
minHeight: rows * vs(30)
|
|
265
|
-
},
|
|
266
|
-
webInputResetStyle,
|
|
267
|
-
style
|
|
268
|
-
],
|
|
269
|
-
onFocus: (e) => {
|
|
270
|
-
setFocused(true);
|
|
271
|
-
onFocus?.(e);
|
|
114
|
+
styles.input,
|
|
115
|
+
{
|
|
116
|
+
color: colors.foreground,
|
|
117
|
+
minHeight: rows * vs(30)
|
|
272
118
|
},
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
119
|
+
disabled && { opacity: 0.45 },
|
|
120
|
+
webInputResetStyle,
|
|
121
|
+
style
|
|
122
|
+
],
|
|
123
|
+
onFocus: (e) => {
|
|
124
|
+
setFocused(true);
|
|
125
|
+
onFocus?.(e);
|
|
126
|
+
},
|
|
127
|
+
onBlur: (e) => {
|
|
128
|
+
setFocused(false);
|
|
129
|
+
onBlur?.(e);
|
|
130
|
+
},
|
|
131
|
+
placeholderTextColor: colors.foregroundMuted,
|
|
132
|
+
allowFontScaling: true,
|
|
133
|
+
accessibilityLabel: accessibilityLabel ?? label,
|
|
134
|
+
accessibilityState: { disabled: !!disabled },
|
|
135
|
+
...props
|
|
136
|
+
}
|
|
137
|
+
)), error ? /* @__PURE__ */ React3__default.default.createElement(
|
|
284
138
|
reactNative.Text,
|
|
285
139
|
{
|
|
286
140
|
style: [styles.helperText, { color: colors.destructive }],
|
|
@@ -301,8 +155,6 @@ var styles = reactNative.StyleSheet.create({
|
|
|
301
155
|
marginBottom: vs(2)
|
|
302
156
|
},
|
|
303
157
|
inputWrapper: {
|
|
304
|
-
// Border lives on borderOverlay (absolute); wrapper carries none so the
|
|
305
|
-
// focus weight change never reflows content.
|
|
306
158
|
borderRadius: 8,
|
|
307
159
|
paddingHorizontal: s(14),
|
|
308
160
|
paddingVertical: vs(11),
|
package/dist/Textarea.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { Textarea } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
export { Textarea } from './chunk-L3YKPTJQ.mjs';
|
|
2
|
+
import './chunk-M53LC4Q7.mjs';
|
|
3
|
+
import './chunk-MZ6WRTD2.mjs';
|
|
4
|
+
import './chunk-KSSVIFYR.mjs';
|
|
5
5
|
import './chunk-2CE3TQVY.mjs';
|
|
6
|
-
import './chunk-Y6FXYEAI.mjs';
|
package/dist/Toast.d.mts
CHANGED
|
@@ -3,27 +3,27 @@ export { toast } from 'sonner-native';
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
5
5
|
declare function useToast(): {
|
|
6
|
-
toast: ((message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "jsx" | "promise"> & {
|
|
6
|
+
toast: ((message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
7
7
|
id?: string | number;
|
|
8
8
|
}) => string | number) & {
|
|
9
|
-
success: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "jsx" | "promise"> & {
|
|
9
|
+
success: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
10
10
|
id?: string | number;
|
|
11
11
|
}) => string | number;
|
|
12
|
-
info: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "jsx" | "promise"> & {
|
|
12
|
+
info: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
13
13
|
id?: string | number;
|
|
14
14
|
}) => string | number;
|
|
15
|
-
error: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "jsx" | "promise"> & {
|
|
15
|
+
error: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
16
16
|
id?: string | number;
|
|
17
17
|
}) => string | number;
|
|
18
|
-
warning: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "jsx" | "promise"> & {
|
|
18
|
+
warning: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
19
19
|
id?: string | number;
|
|
20
20
|
}) => string | number;
|
|
21
|
-
custom: (jsx: React.ReactElement, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "jsx" | "promise"> & {
|
|
21
|
+
custom: (jsx: React.ReactElement, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
22
22
|
id?: string | number;
|
|
23
23
|
}) => string | number;
|
|
24
24
|
promise: <T>(promise: Promise<T>, options: Omit<{
|
|
25
|
-
promise: Promise<
|
|
26
|
-
success: (result:
|
|
25
|
+
promise: Promise<T>;
|
|
26
|
+
success: (result: T) => string;
|
|
27
27
|
error: ((error: unknown) => string) | string;
|
|
28
28
|
loading: string;
|
|
29
29
|
styles?: {
|
|
@@ -31,8 +31,10 @@ declare function useToast(): {
|
|
|
31
31
|
success?: sonner_native.ToastStyles;
|
|
32
32
|
error?: sonner_native.ToastStyles;
|
|
33
33
|
};
|
|
34
|
-
}, "promise">
|
|
35
|
-
|
|
34
|
+
}, "promise"> & (Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
35
|
+
id?: string | number;
|
|
36
|
+
})) => string | number;
|
|
37
|
+
loading: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "id" | "variant" | "index" | "jsx" | "promise" | "numberOfToasts" | "orderedToastIds"> & {
|
|
36
38
|
id?: string | number;
|
|
37
39
|
}) => string | number;
|
|
38
40
|
dismiss: (id?: string | number) => string | number | undefined;
|