@isoline-ui/react-native 0.0.0-stage → 0.1.0-alpha.3
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/LICENSE +22 -0
- package/NOTICE.md +12 -0
- package/README.md +104 -3
- package/dist/amount.d.ts +3 -0
- package/dist/calendar.d.ts +7 -0
- package/dist/components/action-chip.d.ts +9 -0
- package/dist/components/amount-field.d.ts +12 -0
- package/dist/components/avatar.d.ts +17 -0
- package/dist/components/back-button.d.ts +12 -0
- package/dist/components/back-icon.d.ts +3 -0
- package/dist/components/badge.d.ts +13 -0
- package/dist/components/banner.d.ts +14 -0
- package/dist/components/bottom-sheet-native.d.ts +11 -0
- package/dist/components/bottom-sheet-web.d.ts +18 -0
- package/dist/components/bottom-sheet.d.ts +3 -0
- package/dist/components/button-group.d.ts +26 -0
- package/dist/components/button.d.ts +48 -0
- package/dist/components/checkbox.d.ts +12 -0
- package/dist/components/color-picker.d.ts +21 -0
- package/dist/components/context-menu.d.ts +26 -0
- package/dist/components/date-picker.d.ts +64 -0
- package/dist/components/dialog-context.d.ts +2 -0
- package/dist/components/dialog.d.ts +20 -0
- package/dist/components/empty-state.d.ts +15 -0
- package/dist/components/expand-indicator.d.ts +27 -0
- package/dist/components/expressive-shape.d.ts +18 -0
- package/dist/components/fab-menu-legacy.d.ts +31 -0
- package/dist/components/fab-menu.d.ts +21 -0
- package/dist/components/filter-chip.d.ts +69 -0
- package/dist/components/floating-action-button.d.ts +15 -0
- package/dist/components/icon-button.d.ts +40 -0
- package/dist/components/icons.d.ts +18 -0
- package/dist/components/input.d.ts +9 -0
- package/dist/components/keyboard-inset-view.d.ts +15 -0
- package/dist/components/list-controls.d.ts +38 -0
- package/dist/components/loading-indicator.d.ts +9 -0
- package/dist/components/menu-sheet.d.ts +36 -0
- package/dist/components/panel-sheet.d.ts +8 -0
- package/dist/components/password-visibility.d.ts +5 -0
- package/dist/components/popover-layout.d.ts +25 -0
- package/dist/components/popover.d.ts +20 -0
- package/dist/components/pressable.d.ts +12 -0
- package/dist/components/radio-navigation.d.ts +11 -0
- package/dist/components/refresh-control.d.ts +16 -0
- package/dist/components/row-gap.d.ts +9 -0
- package/dist/components/search-field.d.ts +22 -0
- package/dist/components/select-field.d.ts +16 -0
- package/dist/components/settings-list.d.ts +98 -0
- package/dist/components/settings-row.d.ts +13 -0
- package/dist/components/sheet-frame.d.ts +27 -0
- package/dist/components/sheet-lifecycle.d.ts +36 -0
- package/dist/components/sheet-transition.d.ts +36 -0
- package/dist/components/slider.d.ts +21 -0
- package/dist/components/snackbar.d.ts +10 -0
- package/dist/components/split-button.d.ts +38 -0
- package/dist/components/squish.d.ts +20 -0
- package/dist/components/swipeable-row.d.ts +20 -0
- package/dist/components/switch.d.ts +8 -0
- package/dist/components/tab-bar.d.ts +20 -0
- package/dist/components/text-field.d.ts +31 -0
- package/dist/components/text.d.ts +9 -0
- package/dist/components/time-picker.d.ts +40 -0
- package/dist/components/toolbar.d.ts +77 -0
- package/dist/components/top-bar.d.ts +27 -0
- package/dist/components/undo-bar.d.ts +23 -0
- package/dist/components/wavy-progress.d.ts +21 -0
- package/dist/components/zoomable-image.d.ts +18 -0
- package/dist/expressive-shapes.d.ts +8 -0
- package/dist/index.d.ts +62 -0
- package/dist/keyboard.d.ts +2 -0
- package/dist/material.d.ts +11 -0
- package/dist/media.d.ts +11 -0
- package/dist/motion.d.ts +96 -0
- package/dist/platform.d.ts +3 -0
- package/dist/preset-tokens.d.ts +264 -0
- package/dist/provider.d.ts +59 -0
- package/dist/reduced-motion.d.ts +45 -0
- package/dist/selection.d.ts +2 -0
- package/dist/shape.d.ts +99 -0
- package/dist/sheet-physics.d.ts +37 -0
- package/dist/theme.d.ts +103 -0
- package/dist/tokens.d.ts +2 -0
- package/dist/use-keyboard-height.d.ts +10 -0
- package/dist/utils.d.ts +3 -0
- package/nativewind.cjs +68 -0
- package/package.json +63 -6
- package/src/amount.ts +53 -0
- package/src/calendar.ts +42 -0
- package/src/components/action-chip.tsx +64 -0
- package/src/components/amount-field.tsx +49 -0
- package/src/components/avatar.tsx +91 -0
- package/src/components/back-button.tsx +39 -0
- package/src/components/back-icon.tsx +25 -0
- package/src/components/badge.tsx +41 -0
- package/src/components/banner.tsx +63 -0
- package/src/components/bottom-sheet-native.tsx +52 -0
- package/src/components/bottom-sheet-web.tsx +193 -0
- package/src/components/bottom-sheet.tsx +5 -0
- package/src/components/button-group.tsx +326 -0
- package/src/components/button.tsx +337 -0
- package/src/components/checkbox.tsx +71 -0
- package/src/components/color-picker.tsx +115 -0
- package/src/components/context-menu.tsx +149 -0
- package/src/components/date-picker.tsx +466 -0
- package/src/components/dialog-context.ts +3 -0
- package/src/components/dialog.tsx +210 -0
- package/src/components/empty-state.tsx +49 -0
- package/src/components/expand-indicator.tsx +60 -0
- package/src/components/expressive-shape.tsx +37 -0
- package/src/components/fab-menu-legacy.tsx +181 -0
- package/src/components/fab-menu.tsx +90 -0
- package/src/components/filter-chip.tsx +136 -0
- package/src/components/floating-action-button.tsx +79 -0
- package/src/components/icon-button.tsx +127 -0
- package/src/components/icons.tsx +43 -0
- package/src/components/input.tsx +80 -0
- package/src/components/keyboard-inset-view.tsx +28 -0
- package/src/components/list-controls.tsx +134 -0
- package/src/components/loading-indicator.tsx +183 -0
- package/src/components/menu-sheet.tsx +133 -0
- package/src/components/panel-sheet.tsx +90 -0
- package/src/components/password-visibility.tsx +39 -0
- package/src/components/popover-layout.ts +47 -0
- package/src/components/popover.tsx +139 -0
- package/src/components/pressable.tsx +108 -0
- package/src/components/radio-navigation.ts +52 -0
- package/src/components/refresh-control.tsx +39 -0
- package/src/components/row-gap.tsx +13 -0
- package/src/components/search-field.tsx +92 -0
- package/src/components/select-field.tsx +105 -0
- package/src/components/settings-list.tsx +302 -0
- package/src/components/settings-row.tsx +61 -0
- package/src/components/sheet-frame.tsx +250 -0
- package/src/components/sheet-lifecycle.ts +233 -0
- package/src/components/sheet-transition.ts +105 -0
- package/src/components/slider.tsx +185 -0
- package/src/components/snackbar.tsx +97 -0
- package/src/components/split-button.tsx +212 -0
- package/src/components/squish.ts +41 -0
- package/src/components/swipeable-row.tsx +109 -0
- package/src/components/switch.tsx +77 -0
- package/src/components/tab-bar.tsx +195 -0
- package/src/components/text-field.tsx +264 -0
- package/src/components/text.tsx +58 -0
- package/src/components/time-picker.tsx +277 -0
- package/src/components/toolbar.tsx +406 -0
- package/src/components/top-bar.tsx +91 -0
- package/src/components/undo-bar.tsx +137 -0
- package/src/components/wavy-progress.tsx +150 -0
- package/src/components/zoomable-image.tsx +240 -0
- package/src/expressive-shapes.ts +25 -0
- package/src/index.ts +62 -0
- package/src/keyboard.ts +5 -0
- package/src/material.ts +16 -0
- package/src/media.ts +51 -0
- package/src/motion.ts +96 -0
- package/src/platform.ts +13 -0
- package/src/preset-tokens.ts +265 -0
- package/src/provider.tsx +201 -0
- package/src/reduced-motion.ts +50 -0
- package/src/selection.ts +11 -0
- package/src/shape.ts +217 -0
- package/src/sheet-physics.ts +73 -0
- package/src/theme.ts +180 -0
- package/src/tokens.ts +2 -0
- package/src/use-keyboard-height.ts +64 -0
- package/src/utils.ts +7 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
export declare const presetTokens: {
|
|
2
|
+
readonly violet: {
|
|
3
|
+
readonly light: {
|
|
4
|
+
readonly '--background': "268 30% 99%";
|
|
5
|
+
readonly '--foreground': "268 10% 11%";
|
|
6
|
+
readonly '--surface': "268 30% 99%";
|
|
7
|
+
readonly '--surface-variant': "268 15% 91%";
|
|
8
|
+
readonly '--on-surface': "268 10% 11%";
|
|
9
|
+
readonly '--on-surface-variant': "268 8% 32%";
|
|
10
|
+
readonly '--surface-container-lowest': "0 0% 100%";
|
|
11
|
+
readonly '--surface-container-low': "268 30% 97%";
|
|
12
|
+
readonly '--surface-container': "268 24% 95%";
|
|
13
|
+
readonly '--surface-container-high': "268 20% 92%";
|
|
14
|
+
readonly '--surface-container-highest': "268 18% 90%";
|
|
15
|
+
readonly '--card': "268 30% 97%";
|
|
16
|
+
readonly '--card-foreground': "268 10% 11%";
|
|
17
|
+
readonly '--popover': "268 20% 93%";
|
|
18
|
+
readonly '--popover-foreground': "268 10% 11%";
|
|
19
|
+
readonly '--primary': "268 48% 46%";
|
|
20
|
+
readonly '--primary-foreground': "0 0% 100%";
|
|
21
|
+
readonly '--primary-container': "268 80% 92%";
|
|
22
|
+
readonly '--on-primary-container': "268 60% 18%";
|
|
23
|
+
readonly '--secondary-container': "268 30% 89%";
|
|
24
|
+
readonly '--on-secondary-container': "268 25% 14%";
|
|
25
|
+
readonly '--tertiary': "22 75% 42%";
|
|
26
|
+
readonly '--on-tertiary': "0 0% 100%";
|
|
27
|
+
readonly '--tertiary-container': "22 95% 90%";
|
|
28
|
+
readonly '--on-tertiary-container': "22 70% 15%";
|
|
29
|
+
readonly '--destructive': "5 75% 45%";
|
|
30
|
+
readonly '--destructive-foreground': "0 0% 100%";
|
|
31
|
+
readonly '--error-container': "5 90% 92%";
|
|
32
|
+
readonly '--on-error-container': "5 60% 20%";
|
|
33
|
+
readonly '--muted': "268 15% 91%";
|
|
34
|
+
readonly '--muted-foreground': "268 8% 32%";
|
|
35
|
+
readonly '--accent': "268 35% 90%";
|
|
36
|
+
readonly '--accent-foreground': "268 60% 18%";
|
|
37
|
+
readonly '--outline': "268 6% 48%";
|
|
38
|
+
readonly '--outline-variant': "268 12% 82%";
|
|
39
|
+
readonly '--border': "268 12% 84%";
|
|
40
|
+
readonly '--input': "268 6% 55%";
|
|
41
|
+
readonly '--ring': "268 48% 46%";
|
|
42
|
+
readonly '--inverse-surface': "268 10% 18%";
|
|
43
|
+
readonly '--inverse-on-surface': "268 20% 96%";
|
|
44
|
+
readonly '--inverse-primary': "268 80% 82%";
|
|
45
|
+
readonly '--success': "145 55% 32%";
|
|
46
|
+
};
|
|
47
|
+
readonly dark: {
|
|
48
|
+
readonly '--background': "268 10% 11%";
|
|
49
|
+
readonly '--foreground': "268 12% 92%";
|
|
50
|
+
readonly '--surface': "268 10% 11%";
|
|
51
|
+
readonly '--surface-variant': "268 10% 25%";
|
|
52
|
+
readonly '--on-surface': "268 12% 92%";
|
|
53
|
+
readonly '--on-surface-variant': "268 10% 78%";
|
|
54
|
+
readonly '--surface-container-lowest': "268 12% 6%";
|
|
55
|
+
readonly '--surface-container-low': "268 10% 8%";
|
|
56
|
+
readonly '--surface-container': "268 10% 13%";
|
|
57
|
+
readonly '--surface-container-high': "268 10% 17%";
|
|
58
|
+
readonly '--surface-container-highest': "268 10% 22%";
|
|
59
|
+
readonly '--card': "268 10% 13%";
|
|
60
|
+
readonly '--card-foreground': "268 12% 92%";
|
|
61
|
+
readonly '--popover': "268 10% 17%";
|
|
62
|
+
readonly '--popover-foreground': "268 12% 92%";
|
|
63
|
+
readonly '--primary': "268 75% 82%";
|
|
64
|
+
readonly '--primary-foreground': "268 45% 22%";
|
|
65
|
+
readonly '--primary-container': "268 35% 32%";
|
|
66
|
+
readonly '--on-primary-container': "268 80% 92%";
|
|
67
|
+
readonly '--secondary-container': "268 18% 28%";
|
|
68
|
+
readonly '--on-secondary-container': "268 30% 89%";
|
|
69
|
+
readonly '--tertiary': "22 90% 75%";
|
|
70
|
+
readonly '--on-tertiary': "22 70% 18%";
|
|
71
|
+
readonly '--tertiary-container': "22 55% 30%";
|
|
72
|
+
readonly '--on-tertiary-container': "22 95% 90%";
|
|
73
|
+
readonly '--destructive': "5 80% 75%";
|
|
74
|
+
readonly '--destructive-foreground': "5 55% 22%";
|
|
75
|
+
readonly '--error-container': "5 55% 32%";
|
|
76
|
+
readonly '--on-error-container': "5 90% 92%";
|
|
77
|
+
readonly '--muted': "268 10% 25%";
|
|
78
|
+
readonly '--muted-foreground': "268 10% 78%";
|
|
79
|
+
readonly '--accent': "268 12% 22%";
|
|
80
|
+
readonly '--accent-foreground': "268 60% 90%";
|
|
81
|
+
readonly '--outline': "268 6% 54%";
|
|
82
|
+
readonly '--outline-variant': "268 8% 30%";
|
|
83
|
+
readonly '--border': "268 8% 22%";
|
|
84
|
+
readonly '--input': "268 6% 44%";
|
|
85
|
+
readonly '--ring': "268 75% 82%";
|
|
86
|
+
readonly '--inverse-surface': "268 12% 92%";
|
|
87
|
+
readonly '--inverse-on-surface': "268 10% 16%";
|
|
88
|
+
readonly '--inverse-primary': "268 48% 46%";
|
|
89
|
+
readonly '--success': "145 45% 65%";
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
readonly teal: {
|
|
93
|
+
readonly light: {
|
|
94
|
+
readonly '--background': "173 15% 99%";
|
|
95
|
+
readonly '--foreground': "173 8% 10%";
|
|
96
|
+
readonly '--surface': "173 15% 99%";
|
|
97
|
+
readonly '--surface-variant': "173 12% 91%";
|
|
98
|
+
readonly '--on-surface': "173 8% 10%";
|
|
99
|
+
readonly '--on-surface-variant': "173 6% 32%";
|
|
100
|
+
readonly '--surface-container-lowest': "0 0% 100%";
|
|
101
|
+
readonly '--surface-container-low': "173 20% 97%";
|
|
102
|
+
readonly '--surface-container': "173 18% 95%";
|
|
103
|
+
readonly '--surface-container-high': "173 16% 92%";
|
|
104
|
+
readonly '--surface-container-highest': "173 14% 90%";
|
|
105
|
+
readonly '--card': "173 20% 97%";
|
|
106
|
+
readonly '--card-foreground': "173 8% 10%";
|
|
107
|
+
readonly '--popover': "173 16% 92%";
|
|
108
|
+
readonly '--popover-foreground': "173 8% 10%";
|
|
109
|
+
readonly '--primary': "173 60% 28%";
|
|
110
|
+
readonly '--primary-foreground': "0 0% 100%";
|
|
111
|
+
readonly '--primary-container': "173 55% 88%";
|
|
112
|
+
readonly '--on-primary-container': "173 70% 10%";
|
|
113
|
+
readonly '--secondary-container': "173 25% 88%";
|
|
114
|
+
readonly '--on-secondary-container': "173 25% 12%";
|
|
115
|
+
readonly '--tertiary': "243 45% 48%";
|
|
116
|
+
readonly '--on-tertiary': "0 0% 100%";
|
|
117
|
+
readonly '--tertiary-container': "243 65% 91%";
|
|
118
|
+
readonly '--on-tertiary-container': "243 50% 16%";
|
|
119
|
+
readonly '--destructive': "5 75% 45%";
|
|
120
|
+
readonly '--destructive-foreground': "0 0% 100%";
|
|
121
|
+
readonly '--error-container': "5 90% 92%";
|
|
122
|
+
readonly '--on-error-container': "5 60% 20%";
|
|
123
|
+
readonly '--muted': "173 12% 91%";
|
|
124
|
+
readonly '--muted-foreground': "173 6% 32%";
|
|
125
|
+
readonly '--accent': "173 30% 89%";
|
|
126
|
+
readonly '--accent-foreground': "173 70% 12%";
|
|
127
|
+
readonly '--outline': "173 6% 48%";
|
|
128
|
+
readonly '--outline-variant': "173 10% 82%";
|
|
129
|
+
readonly '--border': "173 10% 82%";
|
|
130
|
+
readonly '--input': "173 6% 55%";
|
|
131
|
+
readonly '--ring': "173 60% 28%";
|
|
132
|
+
readonly '--inverse-surface': "173 10% 18%";
|
|
133
|
+
readonly '--inverse-on-surface': "173 15% 96%";
|
|
134
|
+
readonly '--inverse-primary': "173 55% 78%";
|
|
135
|
+
readonly '--archive': "152 65% 30%";
|
|
136
|
+
readonly '--snooze': "38 90% 38%";
|
|
137
|
+
};
|
|
138
|
+
readonly dark: {
|
|
139
|
+
readonly '--background': "173 10% 11%";
|
|
140
|
+
readonly '--foreground': "173 10% 92%";
|
|
141
|
+
readonly '--surface': "173 10% 11%";
|
|
142
|
+
readonly '--surface-variant': "173 10% 24%";
|
|
143
|
+
readonly '--on-surface': "173 10% 92%";
|
|
144
|
+
readonly '--on-surface-variant': "173 8% 76%";
|
|
145
|
+
readonly '--surface-container-lowest': "173 12% 6%";
|
|
146
|
+
readonly '--surface-container-low': "173 10% 8%";
|
|
147
|
+
readonly '--surface-container': "173 10% 13%";
|
|
148
|
+
readonly '--surface-container-high': "173 10% 17%";
|
|
149
|
+
readonly '--surface-container-highest': "173 10% 22%";
|
|
150
|
+
readonly '--card': "173 10% 13%";
|
|
151
|
+
readonly '--card-foreground': "173 10% 92%";
|
|
152
|
+
readonly '--popover': "173 10% 17%";
|
|
153
|
+
readonly '--popover-foreground': "173 10% 92%";
|
|
154
|
+
readonly '--primary': "173 50% 72%";
|
|
155
|
+
readonly '--primary-foreground': "173 65% 14%";
|
|
156
|
+
readonly '--primary-container': "173 55% 24%";
|
|
157
|
+
readonly '--on-primary-container': "173 55% 88%";
|
|
158
|
+
readonly '--secondary-container': "173 20% 28%";
|
|
159
|
+
readonly '--on-secondary-container': "173 25% 88%";
|
|
160
|
+
readonly '--tertiary': "243 65% 82%";
|
|
161
|
+
readonly '--on-tertiary': "243 45% 20%";
|
|
162
|
+
readonly '--tertiary-container': "243 45% 32%";
|
|
163
|
+
readonly '--on-tertiary-container': "243 65% 91%";
|
|
164
|
+
readonly '--destructive': "5 80% 75%";
|
|
165
|
+
readonly '--destructive-foreground': "5 55% 22%";
|
|
166
|
+
readonly '--error-container': "5 55% 32%";
|
|
167
|
+
readonly '--on-error-container': "5 90% 92%";
|
|
168
|
+
readonly '--muted': "173 10% 24%";
|
|
169
|
+
readonly '--muted-foreground': "173 8% 76%";
|
|
170
|
+
readonly '--accent': "173 12% 22%";
|
|
171
|
+
readonly '--accent-foreground': "173 45% 88%";
|
|
172
|
+
readonly '--outline': "173 6% 52%";
|
|
173
|
+
readonly '--outline-variant': "173 8% 30%";
|
|
174
|
+
readonly '--border': "173 8% 22%";
|
|
175
|
+
readonly '--input': "173 6% 44%";
|
|
176
|
+
readonly '--ring': "173 50% 72%";
|
|
177
|
+
readonly '--inverse-surface': "173 10% 92%";
|
|
178
|
+
readonly '--inverse-on-surface': "173 10% 16%";
|
|
179
|
+
readonly '--inverse-primary': "173 60% 30%";
|
|
180
|
+
readonly '--archive': "152 55% 55%";
|
|
181
|
+
readonly '--snooze': "38 95% 62%";
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
readonly cyan: {
|
|
185
|
+
readonly light: {
|
|
186
|
+
readonly '--background': "210 33% 97%";
|
|
187
|
+
readonly '--foreground': "216 30% 10%";
|
|
188
|
+
readonly '--surface': "210 33% 97%";
|
|
189
|
+
readonly '--surface-variant': "210 20% 86%";
|
|
190
|
+
readonly '--on-surface': "216 30% 10%";
|
|
191
|
+
readonly '--on-surface-variant': "214 14% 34%";
|
|
192
|
+
readonly '--surface-container-lowest': "0 0% 100%";
|
|
193
|
+
readonly '--surface-container-low': "210 30% 94%";
|
|
194
|
+
readonly '--surface-container': "210 27% 91%";
|
|
195
|
+
readonly '--surface-container-high': "210 24% 88%";
|
|
196
|
+
readonly '--surface-container-highest': "210 22% 85%";
|
|
197
|
+
readonly '--popover': "210 30% 94%";
|
|
198
|
+
readonly '--popover-foreground': "216 30% 10%";
|
|
199
|
+
readonly '--primary': "192 92% 30%";
|
|
200
|
+
readonly '--primary-foreground': "0 0% 100%";
|
|
201
|
+
readonly '--primary-container': "188 75% 87%";
|
|
202
|
+
readonly '--on-primary-container': "195 90% 13%";
|
|
203
|
+
readonly '--secondary-container': "212 40% 87%";
|
|
204
|
+
readonly '--on-secondary-container': "214 40% 15%";
|
|
205
|
+
readonly '--tertiary': "22 90% 40%";
|
|
206
|
+
readonly '--on-tertiary': "0 0% 100%";
|
|
207
|
+
readonly '--tertiary-container': "28 100% 89%";
|
|
208
|
+
readonly '--on-tertiary-container': "18 80% 17%";
|
|
209
|
+
readonly '--destructive': "4 72% 46%";
|
|
210
|
+
readonly '--destructive-foreground': "0 0% 100%";
|
|
211
|
+
readonly '--error-container': "4 90% 92%";
|
|
212
|
+
readonly '--on-error-container': "4 60% 20%";
|
|
213
|
+
readonly '--muted': "210 20% 86%";
|
|
214
|
+
readonly '--muted-foreground': "214 14% 34%";
|
|
215
|
+
readonly '--outline': "213 10% 48%";
|
|
216
|
+
readonly '--outline-variant': "212 18% 76%";
|
|
217
|
+
readonly '--border': "212 20% 80%";
|
|
218
|
+
readonly '--inverse-surface': "216 25% 14%";
|
|
219
|
+
readonly '--inverse-on-surface': "210 30% 94%";
|
|
220
|
+
readonly '--inverse-primary': "187 85% 60%";
|
|
221
|
+
readonly '--success': "150 60% 30%";
|
|
222
|
+
readonly '--warning': "36 90% 32%";
|
|
223
|
+
};
|
|
224
|
+
readonly dark: {
|
|
225
|
+
readonly '--background': "216 29% 6%";
|
|
226
|
+
readonly '--foreground': "210 30% 93%";
|
|
227
|
+
readonly '--surface': "216 29% 6%";
|
|
228
|
+
readonly '--surface-variant': "214 18% 24%";
|
|
229
|
+
readonly '--on-surface': "210 30% 93%";
|
|
230
|
+
readonly '--on-surface-variant': "213 16% 70%";
|
|
231
|
+
readonly '--surface-container-lowest': "216 30% 4%";
|
|
232
|
+
readonly '--surface-container-low': "216 25% 10%";
|
|
233
|
+
readonly '--surface-container': "215 24% 13%";
|
|
234
|
+
readonly '--surface-container-high': "215 22% 17%";
|
|
235
|
+
readonly '--surface-container-highest': "214 20% 21%";
|
|
236
|
+
readonly '--popover': "215 24% 15%";
|
|
237
|
+
readonly '--popover-foreground': "210 30% 93%";
|
|
238
|
+
readonly '--primary': "187 85% 55%";
|
|
239
|
+
readonly '--primary-foreground': "192 90% 9%";
|
|
240
|
+
readonly '--primary-container': "191 60% 17%";
|
|
241
|
+
readonly '--on-primary-container': "186 90% 85%";
|
|
242
|
+
readonly '--secondary-container': "214 30% 19%";
|
|
243
|
+
readonly '--on-secondary-container': "210 50% 88%";
|
|
244
|
+
readonly '--tertiary': "25 95% 58%";
|
|
245
|
+
readonly '--on-tertiary': "20 90% 10%";
|
|
246
|
+
readonly '--tertiary-container': "22 55% 21%";
|
|
247
|
+
readonly '--on-tertiary-container': "30 100% 86%";
|
|
248
|
+
readonly '--destructive': "4 85% 70%";
|
|
249
|
+
readonly '--destructive-foreground': "4 60% 15%";
|
|
250
|
+
readonly '--error-container': "4 50% 25%";
|
|
251
|
+
readonly '--on-error-container': "4 90% 90%";
|
|
252
|
+
readonly '--muted': "214 18% 24%";
|
|
253
|
+
readonly '--muted-foreground': "213 16% 70%";
|
|
254
|
+
readonly '--outline': "213 12% 45%";
|
|
255
|
+
readonly '--outline-variant': "214 16% 26%";
|
|
256
|
+
readonly '--border': "214 18% 20%";
|
|
257
|
+
readonly '--inverse-surface': "210 30% 93%";
|
|
258
|
+
readonly '--inverse-on-surface': "216 25% 12%";
|
|
259
|
+
readonly '--inverse-primary': "192 92% 30%";
|
|
260
|
+
readonly '--success': "150 55% 60%";
|
|
261
|
+
readonly '--warning': "42 95% 60%";
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type ViewProps, type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import { elevation, type IsolineTheme, type ThemeColors, type RippleColors } from './theme.ts';
|
|
4
|
+
import type { MaterialOptions } from './material.ts';
|
|
5
|
+
export type { MaterialOptions } from './material.ts';
|
|
6
|
+
import { type IsolinePlatform } from './platform.ts';
|
|
7
|
+
export type { IsolinePlatform } from './platform.ts';
|
|
8
|
+
export { elevation };
|
|
9
|
+
export interface IsolineSurfaceProps extends ViewProps, MaterialOptions {
|
|
10
|
+
}
|
|
11
|
+
export interface IsolineSurfaceGroupProps extends ViewProps {
|
|
12
|
+
spacing?: number;
|
|
13
|
+
gap?: number;
|
|
14
|
+
animate?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export type { ThemeColors, RippleColors };
|
|
17
|
+
export interface IsolineLabels {
|
|
18
|
+
close: string;
|
|
19
|
+
back: string;
|
|
20
|
+
showPassword: string;
|
|
21
|
+
hidePassword: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IsolineHaptics {
|
|
24
|
+
selectionHaptic: () => void;
|
|
25
|
+
impactHaptic: (style: 'light' | 'medium') => void;
|
|
26
|
+
}
|
|
27
|
+
export interface IsolineProviderProps {
|
|
28
|
+
/** Browser design preview; native devices always follow their OS. */
|
|
29
|
+
platform?: IsolinePlatform;
|
|
30
|
+
/** Supply MaterialSurface from @isoline-ui/native for native/browser glass. */
|
|
31
|
+
surfaceComponent?: React.ComponentType<IsolineSurfaceProps>;
|
|
32
|
+
surfaceGroupComponent?: React.ComponentType<IsolineSurfaceGroupProps>;
|
|
33
|
+
theme: IsolineTheme;
|
|
34
|
+
surface?: React.ComponentType<IsolineSurfaceProps>;
|
|
35
|
+
labels?: Partial<IsolineLabels>;
|
|
36
|
+
haptics?: Partial<IsolineHaptics>;
|
|
37
|
+
children: React.ReactNode;
|
|
38
|
+
className?: string;
|
|
39
|
+
style?: StyleProp<ViewStyle>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Supplies component contracts and CSS roles together. Preferences, translation,
|
|
43
|
+
* font loading and native haptic implementations remain in the consuming app.
|
|
44
|
+
* A nested provider inherits labels/haptics; its theme is explicit.
|
|
45
|
+
*/
|
|
46
|
+
export declare function IsolineProvider({ theme, platform, surface, surfaceComponent, surfaceGroupComponent, labels, haptics, children, className, style, }: IsolineProviderProps): React.JSX.Element;
|
|
47
|
+
export declare function useIsolineTheme(): IsolineTheme;
|
|
48
|
+
export declare function useThemeColors(): ThemeColors;
|
|
49
|
+
export declare function useRipple(): RippleColors;
|
|
50
|
+
export declare function useLabels(): IsolineLabels;
|
|
51
|
+
export declare function useHaptics(): IsolineHaptics;
|
|
52
|
+
export declare function useIsolinePlatform(): IsolinePlatform;
|
|
53
|
+
/** Surface adapter keeps optional Expo/native dependencies out of the UI package. */
|
|
54
|
+
export declare function Surface({ material, interactive, glassStyle, tintColor, fallbackColor, style, ...props }: IsolineSurfaceProps): React.JSX.Element;
|
|
55
|
+
export declare function useSurface(): typeof Surface;
|
|
56
|
+
/** Reapply CSS variables inside web modal portals, outside the provider DOM node. */
|
|
57
|
+
export declare function ThemeScope({ style, ...props }: ViewProps): React.JSX.Element;
|
|
58
|
+
/** Native adapters can merge neighboring glass; solid/web adapters retain layout. */
|
|
59
|
+
export declare function SurfaceGroup({ spacing, gap, animate, style, ...props }: IsolineSurfaceGroupProps): React.JSX.Element;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ReduceMotion, useReducedMotion } from 'react-native-reanimated';
|
|
2
|
+
/**
|
|
3
|
+
* Honouring "Remove animations".
|
|
4
|
+
*
|
|
5
|
+
* Android's accessibility settings carry a switch that asks the whole system
|
|
6
|
+
* to stop moving things, and people turn it on for reasons that are not about
|
|
7
|
+
* taste: vestibular disorders, migraine, motion sickness, or simply not being
|
|
8
|
+
* able to read a screen that keeps sliding. This app is unusually animated —
|
|
9
|
+
* springs everywhere, a wave travelling along every progress bar — so ignoring
|
|
10
|
+
* that switch is not a small omission.
|
|
11
|
+
*
|
|
12
|
+
* The rule is not "turn every animation off". It is: **motion goes, meaning
|
|
13
|
+
* stays.** Three kinds of animation live in this app and they are treated
|
|
14
|
+
* differently:
|
|
15
|
+
*
|
|
16
|
+
* - **Decoration** — a wave travelling along a bar, a toolbar's items
|
|
17
|
+
* unfolding one after another, a card springing in. All of this goes.
|
|
18
|
+
* - **Orientation** — a sheet rising from the edge it belongs to, a row
|
|
19
|
+
* sliding out of a list. The movement goes; the end state arrives at once.
|
|
20
|
+
* - **Information** — the undo bar's countdown, which is the only thing
|
|
21
|
+
* telling the reader how long they have left to change their mind. This one
|
|
22
|
+
* *must not* go. Turning it off would not remove a distraction, it would
|
|
23
|
+
* remove the answer to "how long do I have", and the reader who needs
|
|
24
|
+
* reduced motion is not a reader who needs less information.
|
|
25
|
+
*
|
|
26
|
+
* Reanimated already defaults its own animations to `ReduceMotion.System`, so
|
|
27
|
+
* most of the first two categories are handled by the platform once
|
|
28
|
+
* `ReducedMotionConfig` states the policy. What this module is for is the
|
|
29
|
+
* third: the places that have to say `ReduceMotion.Never` on purpose, and the
|
|
30
|
+
* places where the app's own decorative loops have to be stopped by hand
|
|
31
|
+
* because Reanimated has no way to know they are decorative.
|
|
32
|
+
*/
|
|
33
|
+
export { useReducedMotion };
|
|
34
|
+
/**
|
|
35
|
+
* For an animation that carries information rather than polish.
|
|
36
|
+
*
|
|
37
|
+
* Spelled out at each call site rather than defaulted, so that opting a piece
|
|
38
|
+
* of motion out of the accessibility setting is a decision somebody made and
|
|
39
|
+
* can be argued with — there should only ever be a handful.
|
|
40
|
+
*/
|
|
41
|
+
export declare const KEEP_MOTION = ReduceMotion.Never;
|
|
42
|
+
/** For everything else: the platform's answer, whatever it is. */
|
|
43
|
+
export declare const SYSTEM_MOTION = ReduceMotion.System;
|
|
44
|
+
/** Re-exported so a call site needs one import, not two. See `~/lib/motion`. */
|
|
45
|
+
export { staggerFor } from './motion.ts';
|
package/dist/shape.d.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Material 3 Expressive shape system.
|
|
3
|
+
*
|
|
4
|
+
* Expressive treats shape as a *state*, not a constant. A component's corners
|
|
5
|
+
* change when it is pressed, selected or busy, and the change is animated by a
|
|
6
|
+
* spatial spring (see `motion.ts`). The two halves of that idea live here:
|
|
7
|
+
*
|
|
8
|
+
* - `corner`, the shape scale every radius in the app is drawn from, so a
|
|
9
|
+
* round-to-square morph moves between two named steps rather than two magic
|
|
10
|
+
* numbers;
|
|
11
|
+
* - the polygon helpers, which make a *shape sequence* possible — morphing a
|
|
12
|
+
* 4-sided shape into a 7-sided one, which is how the Expressive loading
|
|
13
|
+
* indicator is drawn.
|
|
14
|
+
*
|
|
15
|
+
* Everything here is pure maths with no `expo-*` or React imports, so it is
|
|
16
|
+
* covered by `node --test`. The functions used inside animated props are
|
|
17
|
+
* marked `'worklet'` so they can run on the UI thread.
|
|
18
|
+
*/
|
|
19
|
+
/** The Expressive corner scale, in dp. `full` is a pill, sized at runtime. */
|
|
20
|
+
export declare const corner: {
|
|
21
|
+
readonly none: 0;
|
|
22
|
+
readonly extraSmall: 4;
|
|
23
|
+
readonly small: 8;
|
|
24
|
+
readonly medium: 12;
|
|
25
|
+
readonly large: 16;
|
|
26
|
+
readonly largeIncreased: 20;
|
|
27
|
+
readonly extraLarge: 28;
|
|
28
|
+
readonly extraLargeIncreased: 32;
|
|
29
|
+
readonly extraExtraLarge: 48;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Number of points a shape is sampled at.
|
|
33
|
+
*
|
|
34
|
+
* Every shape in a morph sequence is resampled to this many points so two
|
|
35
|
+
* shapes with different vertex counts can be interpolated pairwise. 48 is
|
|
36
|
+
* enough that a 9-sided polygon still reads as one, and cheap enough to
|
|
37
|
+
* rebuild every frame on the UI thread.
|
|
38
|
+
*/
|
|
39
|
+
export declare const SHAPE_SAMPLES = 48;
|
|
40
|
+
/**
|
|
41
|
+
* Samples a regular polygon as a radius per angle.
|
|
42
|
+
*
|
|
43
|
+
* Describing a shape radially — rather than as a vertex list — is what makes
|
|
44
|
+
* shapes with different vertex counts morphable: two radius arrays of equal
|
|
45
|
+
* length always interpolate, whereas two vertex lists of different lengths do
|
|
46
|
+
* not. Radii are normalised so the polygon's corners touch the unit circle.
|
|
47
|
+
*/
|
|
48
|
+
export declare function polygonRadii(vertices: number, samples?: number, rotation?: number): number[];
|
|
49
|
+
/**
|
|
50
|
+
* Rounds a shape's corners by averaging its radii with their neighbours.
|
|
51
|
+
*
|
|
52
|
+
* A circular moving average over the radial function is a corner rounding:
|
|
53
|
+
* the sharp maxima at the vertices flatten while the edges stay put. `amount`
|
|
54
|
+
* runs 0 (the raw polygon) to 1 (nearly a circle), which is the "roundness"
|
|
55
|
+
* dimension of the Expressive shape library.
|
|
56
|
+
*/
|
|
57
|
+
export declare function roundRadii(radii: number[], amount: number): number[];
|
|
58
|
+
/** A shape in a morph sequence: how many corners, how round, how turned. */
|
|
59
|
+
export interface ShapeSpec {
|
|
60
|
+
vertices: number;
|
|
61
|
+
roundness: number;
|
|
62
|
+
rotation: number;
|
|
63
|
+
}
|
|
64
|
+
/** Builds the radius array for a shape, ready to be interpolated. */
|
|
65
|
+
export declare function shapeRadii(shape: ShapeSpec, samples?: number): number[];
|
|
66
|
+
/**
|
|
67
|
+
* A lobed shape: a circle with `lobes` soft bumps around its edge.
|
|
68
|
+
*
|
|
69
|
+
* The scalloped members of the Expressive shape library — the 4-leaf clover,
|
|
70
|
+
* the 9-sided cookie — are not rounded polygons: their edges dip *inward*
|
|
71
|
+
* between the lobes, which averaging a polygon's radii can never produce. A
|
|
72
|
+
* cosine around the circle can. `depth` is how far each dip reaches toward the
|
|
73
|
+
* centre, as a fraction of the radius; the lobes still touch the unit circle.
|
|
74
|
+
*/
|
|
75
|
+
export declare function lobedRadii(lobes: number, depth: number, samples?: number, rotation?: number): number[];
|
|
76
|
+
/**
|
|
77
|
+
* Blends two sampled shapes. `t` runs 0 (all `from`) to 1 (all `to`).
|
|
78
|
+
*
|
|
79
|
+
* Runs on the UI thread once per frame, which is why it takes prebuilt arrays
|
|
80
|
+
* rather than `ShapeSpec`s — sampling is done once at module load.
|
|
81
|
+
*/
|
|
82
|
+
export declare function blendRadii(from: number[], to: number[], t: number): number[];
|
|
83
|
+
/**
|
|
84
|
+
* Turns a radius array into a closed SVG path.
|
|
85
|
+
*
|
|
86
|
+
* The points are joined with a Catmull-Rom spline converted to cubic Béziers,
|
|
87
|
+
* so the outline stays smooth as the radii move under it. Drawing straight
|
|
88
|
+
* segments instead would make a morph visibly snap between sample points.
|
|
89
|
+
*/
|
|
90
|
+
export declare function radiiToPath(radii: number[], center: number, scale: number): string;
|
|
91
|
+
/**
|
|
92
|
+
* The Expressive wavy progress track.
|
|
93
|
+
*
|
|
94
|
+
* The active half of an Expressive progress indicator is a sine wave rather
|
|
95
|
+
* than a bar: the wave is what distinguishes "working" from "a coloured
|
|
96
|
+
* rectangle" at a glance, and its amplitude can fall to zero to signal that
|
|
97
|
+
* the indicator has settled.
|
|
98
|
+
*/
|
|
99
|
+
export declare function wavePath(width: number, height: number, amplitude: number, wavelength: number, phase: number): string;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The arithmetic of a bottom sheet under a finger, kept apart from the views
|
|
3
|
+
* so it can be tested under `node --test`. Every function is a worklet: the
|
|
4
|
+
* pull runs on the UI thread.
|
|
5
|
+
*/
|
|
6
|
+
/** A pull past this share of the panel's height closes it on release. */
|
|
7
|
+
export declare const CLOSE_SHARE = 0.3;
|
|
8
|
+
/** A flick down faster than this (points a second) closes it however short. */
|
|
9
|
+
export declare const CLOSE_VELOCITY = 900;
|
|
10
|
+
/** How far a pull up can lift the panel, at most: it gives, but not much. */
|
|
11
|
+
export declare const LIFT_LIMIT = 24;
|
|
12
|
+
/** Whether letting go `pull` points below the rest, moving at `velocity`, closes the sheet. */
|
|
13
|
+
export declare function releaseCloses(pull: number, velocity: number, height: number): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* How far the panel rises for a finger `pull` points up: it follows at first
|
|
16
|
+
* and gives less the further it goes, never more than `limit`. A panel that
|
|
17
|
+
* does not move at all under an upward pull feels stuck rather than anchored.
|
|
18
|
+
*/
|
|
19
|
+
export declare function rubberBand(pull: number, limit?: number): number;
|
|
20
|
+
/**
|
|
21
|
+
* How dark the scrim is, 0–1, with the panel `offset` points below its rest:
|
|
22
|
+
* full while it rests (or is lifted), clear once it is all the way down. The
|
|
23
|
+
* scrim follows the panel rather than a clock of its own, so the two arrive
|
|
24
|
+
* and leave together and a pull lightens it as it goes.
|
|
25
|
+
*/
|
|
26
|
+
export declare function scrimShare(offset: number, height: number): number;
|
|
27
|
+
/** Where a scrolling list inside a sheet is, as the sheet's pull needs to know it. */
|
|
28
|
+
export interface SheetScroll {
|
|
29
|
+
/** How far it is scrolled from its top. */
|
|
30
|
+
y: number;
|
|
31
|
+
/** Whether its content is taller than it is, so that it scrolls at all. */
|
|
32
|
+
scrollable: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Whether every list in the sheet is at its top, so a pull down moves the sheet. */
|
|
35
|
+
export declare function listsAtTop(scrolls: Record<string, SheetScroll>): boolean;
|
|
36
|
+
/** Whether a list in the sheet scrolls, so a pull up belongs to it and not to the panel. */
|
|
37
|
+
export declare function anyScrollable(scrolls: Record<string, SheetScroll>): boolean;
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export type ColorScheme = 'light' | 'dark';
|
|
2
|
+
export type TextVariant = 'default' | 'display' | 'title' | 'heading' | 'subject' | 'body' | 'reader' | 'muted' | 'caption' | 'labelLarge' | 'label' | 'mono' | 'value' | 'valueLarge' | 'meta';
|
|
3
|
+
export interface TypographyRole {
|
|
4
|
+
fontFamily?: string;
|
|
5
|
+
fontSize?: number;
|
|
6
|
+
lineHeight?: number;
|
|
7
|
+
fontWeight?: '400' | '500' | '600' | '700' | '800';
|
|
8
|
+
letterSpacing?: number;
|
|
9
|
+
textTransform?: 'none' | 'uppercase' | 'lowercase' | 'capitalize';
|
|
10
|
+
includeFontPadding?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface IsolineTheme {
|
|
13
|
+
name: string;
|
|
14
|
+
scheme: ColorScheme;
|
|
15
|
+
/** HSL channel triplets, e.g. "268 75% 82%", matching the NativeWind preset. */
|
|
16
|
+
tokens: Readonly<Record<string, string>>;
|
|
17
|
+
typography?: Partial<Record<TextVariant, TypographyRole>>;
|
|
18
|
+
sheetGesture?: 'handle' | 'panel';
|
|
19
|
+
}
|
|
20
|
+
export declare const ROLE_VARIABLES: {
|
|
21
|
+
readonly primary: "--primary";
|
|
22
|
+
readonly onPrimary: "--primary-foreground";
|
|
23
|
+
readonly primaryContainer: "--primary-container";
|
|
24
|
+
readonly onPrimaryContainer: "--on-primary-container";
|
|
25
|
+
readonly secondaryContainer: "--secondary-container";
|
|
26
|
+
readonly onSecondaryContainer: "--on-secondary-container";
|
|
27
|
+
readonly tertiary: "--tertiary";
|
|
28
|
+
readonly onTertiary: "--on-tertiary";
|
|
29
|
+
readonly tertiaryContainer: "--tertiary-container";
|
|
30
|
+
readonly onTertiaryContainer: "--on-tertiary-container";
|
|
31
|
+
readonly error: "--destructive";
|
|
32
|
+
readonly onError: "--destructive-foreground";
|
|
33
|
+
readonly errorContainer: "--error-container";
|
|
34
|
+
readonly onErrorContainer: "--on-error-container";
|
|
35
|
+
readonly surface: "--surface";
|
|
36
|
+
readonly onSurface: "--on-surface";
|
|
37
|
+
readonly surfaceVariant: "--surface-variant";
|
|
38
|
+
readonly onSurfaceVariant: "--on-surface-variant";
|
|
39
|
+
readonly surfaceContainerLowest: "--surface-container-lowest";
|
|
40
|
+
readonly surfaceContainerLow: "--surface-container-low";
|
|
41
|
+
readonly surfaceContainer: "--surface-container";
|
|
42
|
+
readonly surfaceContainerHigh: "--surface-container-high";
|
|
43
|
+
readonly surfaceContainerHighest: "--surface-container-highest";
|
|
44
|
+
readonly outline: "--outline";
|
|
45
|
+
readonly outlineVariant: "--outline-variant";
|
|
46
|
+
readonly inverseSurface: "--inverse-surface";
|
|
47
|
+
readonly inverseOnSurface: "--inverse-on-surface";
|
|
48
|
+
readonly inversePrimary: "--inverse-primary";
|
|
49
|
+
readonly success: "--success";
|
|
50
|
+
};
|
|
51
|
+
export type ThemeColors = {
|
|
52
|
+
-readonly [K in keyof typeof ROLE_VARIABLES]: string;
|
|
53
|
+
};
|
|
54
|
+
export interface RippleColors {
|
|
55
|
+
onNeutral: string;
|
|
56
|
+
onTonal: string;
|
|
57
|
+
}
|
|
58
|
+
export declare function resolveThemeColors(theme: IsolineTheme): ThemeColors;
|
|
59
|
+
export declare function rippleColors(scheme: ColorScheme): RippleColors;
|
|
60
|
+
/** Creates a new theme without mutating the reusable preset. */
|
|
61
|
+
export declare function extendTheme(base: IsolineTheme, overrides: {
|
|
62
|
+
name?: string;
|
|
63
|
+
tokens?: Readonly<Record<string, string>>;
|
|
64
|
+
typography?: IsolineTheme['typography'];
|
|
65
|
+
sheetGesture?: IsolineTheme['sheetGesture'];
|
|
66
|
+
}): IsolineTheme;
|
|
67
|
+
export declare const themes: {
|
|
68
|
+
readonly violet: {
|
|
69
|
+
light: IsolineTheme;
|
|
70
|
+
dark: IsolineTheme;
|
|
71
|
+
};
|
|
72
|
+
readonly teal: {
|
|
73
|
+
light: IsolineTheme;
|
|
74
|
+
dark: IsolineTheme;
|
|
75
|
+
};
|
|
76
|
+
readonly cyan: {
|
|
77
|
+
light: IsolineTheme;
|
|
78
|
+
dark: IsolineTheme;
|
|
79
|
+
};
|
|
80
|
+
/** @deprecated Use themes.violet. */
|
|
81
|
+
readonly inboki: {
|
|
82
|
+
light: IsolineTheme;
|
|
83
|
+
dark: IsolineTheme;
|
|
84
|
+
};
|
|
85
|
+
/** @deprecated Use themes.teal. */
|
|
86
|
+
readonly yours: {
|
|
87
|
+
light: IsolineTheme;
|
|
88
|
+
dark: IsolineTheme;
|
|
89
|
+
};
|
|
90
|
+
/** @deprecated Use themes.cyan. */
|
|
91
|
+
readonly atlas: {
|
|
92
|
+
light: IsolineTheme;
|
|
93
|
+
dark: IsolineTheme;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
export declare const elevation: {
|
|
97
|
+
readonly level0: 0;
|
|
98
|
+
readonly level1: 1;
|
|
99
|
+
readonly level2: 3;
|
|
100
|
+
readonly level3: 6;
|
|
101
|
+
readonly level4: 8;
|
|
102
|
+
readonly level5: 12;
|
|
103
|
+
};
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The on-screen keyboard's height in dp, or 0 while it is closed.
|
|
3
|
+
*
|
|
4
|
+
* Anything pinned to the bottom of the screen has to measure the keyboard
|
|
5
|
+
* itself: `KeyboardAvoidingView` shrinks the layout it wraps, which does
|
|
6
|
+
* nothing for a view positioned against the window's bottom edge, and
|
|
7
|
+
* Android's own `adjustResize` stops resizing the window at all once the
|
|
8
|
+
* app is edge-to-edge.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useKeyboardHeight(): number;
|
package/dist/utils.d.ts
ADDED