@idealyst/components 1.1.7 → 1.1.8

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.
Files changed (105) hide show
  1. package/package.json +3 -3
  2. package/src/Accordion/Accordion.native.tsx +8 -6
  3. package/src/Accordion/Accordion.styles.old.tsx +298 -0
  4. package/src/Accordion/Accordion.styles.tsx +102 -236
  5. package/src/ActivityIndicator/ActivityIndicator.styles.old.tsx +94 -0
  6. package/src/ActivityIndicator/ActivityIndicator.styles.tsx +44 -74
  7. package/src/Alert/Alert.native.tsx +16 -6
  8. package/src/Alert/Alert.styles.old.tsx +209 -0
  9. package/src/Alert/Alert.styles.tsx +67 -149
  10. package/src/Avatar/Avatar.styles.old.tsx +99 -0
  11. package/src/Avatar/Avatar.styles.tsx +35 -80
  12. package/src/Badge/Badge.styles.old.tsx +157 -0
  13. package/src/Badge/Badge.styles.tsx +61 -121
  14. package/src/Breadcrumb/Breadcrumb.styles.old.tsx +231 -0
  15. package/src/Breadcrumb/Breadcrumb.styles.tsx +83 -200
  16. package/src/Breadcrumb/Breadcrumb.web.tsx +28 -23
  17. package/src/Button/Button.styles.tsx +89 -141
  18. package/src/Card/Card.native.tsx +7 -11
  19. package/src/Card/Card.styles.old.tsx +160 -0
  20. package/src/Card/Card.styles.tsx +105 -142
  21. package/src/Card/Card.web.tsx +5 -4
  22. package/src/Checkbox/Checkbox.native.tsx +9 -5
  23. package/src/Checkbox/Checkbox.styles.old.tsx +271 -0
  24. package/src/Checkbox/Checkbox.styles.tsx +104 -216
  25. package/src/Checkbox/Checkbox.web.tsx +6 -6
  26. package/src/Chip/Chip.styles.old.tsx +184 -0
  27. package/src/Chip/Chip.styles.tsx +34 -72
  28. package/src/Dialog/Dialog.native.tsx +7 -4
  29. package/src/Dialog/Dialog.styles.old.tsx +202 -0
  30. package/src/Dialog/Dialog.styles.tsx +69 -133
  31. package/src/Divider/Divider.styles.old.tsx +172 -0
  32. package/src/Divider/Divider.styles.tsx +62 -84
  33. package/src/Icon/Icon.native.tsx +8 -8
  34. package/src/Icon/Icon.styles.old.tsx +81 -0
  35. package/src/Icon/Icon.styles.tsx +52 -66
  36. package/src/Icon/Icon.web.tsx +43 -7
  37. package/src/Icon/IconSvg/IconSvg.web.tsx +2 -0
  38. package/src/Image/Image.styles.old.tsx +69 -0
  39. package/src/Image/Image.styles.tsx +46 -60
  40. package/src/Input/Input.native.tsx +138 -53
  41. package/src/Input/Input.styles.old.tsx +289 -0
  42. package/src/Input/Input.styles.tsx +127 -198
  43. package/src/List/List.native.tsx +5 -2
  44. package/src/List/List.styles.old.tsx +242 -0
  45. package/src/List/List.styles.tsx +179 -215
  46. package/src/List/ListItem.native.tsx +12 -6
  47. package/src/List/ListItem.web.tsx +23 -13
  48. package/src/Menu/Menu.styles.old.tsx +197 -0
  49. package/src/Menu/Menu.styles.tsx +68 -150
  50. package/src/Menu/MenuItem.native.tsx +5 -3
  51. package/src/Menu/MenuItem.styles.old.tsx +114 -0
  52. package/src/Menu/MenuItem.styles.tsx +57 -89
  53. package/src/Menu/MenuItem.web.tsx +8 -3
  54. package/src/Popover/Popover.native.tsx +10 -4
  55. package/src/Popover/Popover.styles.old.tsx +135 -0
  56. package/src/Popover/Popover.styles.tsx +51 -112
  57. package/src/Pressable/Pressable.styles.old.tsx +27 -0
  58. package/src/Pressable/Pressable.styles.tsx +35 -27
  59. package/src/Progress/Progress.styles.old.tsx +200 -0
  60. package/src/Progress/Progress.styles.tsx +75 -164
  61. package/src/RadioButton/RadioButton.native.tsx +4 -3
  62. package/src/RadioButton/RadioButton.styles.old.tsx +175 -0
  63. package/src/RadioButton/RadioButton.styles.tsx +83 -154
  64. package/src/RadioButton/RadioButton.web.tsx +2 -2
  65. package/src/SVGImage/SVGImage.styles.old.tsx +86 -0
  66. package/src/SVGImage/SVGImage.styles.tsx +35 -78
  67. package/src/Screen/Screen.native.tsx +18 -25
  68. package/src/Screen/Screen.styles.old.tsx +87 -0
  69. package/src/Screen/Screen.styles.tsx +105 -67
  70. package/src/Screen/Screen.web.tsx +1 -1
  71. package/src/Select/Select.native.tsx +42 -33
  72. package/src/Select/Select.styles.old.tsx +353 -0
  73. package/src/Select/Select.styles.tsx +223 -292
  74. package/src/Skeleton/Skeleton.styles.old.tsx +67 -0
  75. package/src/Skeleton/Skeleton.styles.tsx +29 -53
  76. package/src/Slider/Slider.styles.old.tsx +259 -0
  77. package/src/Slider/Slider.styles.tsx +153 -234
  78. package/src/Switch/Switch.native.tsx +7 -5
  79. package/src/Switch/Switch.styles.old.tsx +203 -0
  80. package/src/Switch/Switch.styles.tsx +101 -174
  81. package/src/Switch/Switch.web.tsx +5 -5
  82. package/src/TabBar/TabBar.native.tsx +3 -2
  83. package/src/TabBar/TabBar.styles.old.tsx +343 -0
  84. package/src/TabBar/TabBar.styles.tsx +145 -279
  85. package/src/Table/Table.native.tsx +18 -9
  86. package/src/Table/Table.styles.old.tsx +311 -0
  87. package/src/Table/Table.styles.tsx +152 -286
  88. package/src/Text/Text.native.tsx +1 -3
  89. package/src/Text/Text.style.demo.tsx +16 -0
  90. package/src/Text/Text.styles.old.tsx +219 -0
  91. package/src/Text/Text.styles.tsx +94 -84
  92. package/src/Text/Text.web.tsx +2 -2
  93. package/src/Text/index.ts +1 -0
  94. package/src/TextArea/TextArea.styles.old.tsx +213 -0
  95. package/src/TextArea/TextArea.styles.tsx +93 -181
  96. package/src/Tooltip/Tooltip.styles.old.tsx +82 -0
  97. package/src/Tooltip/Tooltip.styles.tsx +32 -56
  98. package/src/Video/Video.styles.old.tsx +51 -0
  99. package/src/Video/Video.styles.tsx +32 -44
  100. package/src/View/View.native.tsx +12 -14
  101. package/src/View/View.styles.old.tsx +125 -0
  102. package/src/View/View.styles.tsx +76 -106
  103. package/src/View/View.web.tsx +1 -0
  104. package/src/examples/CardExamples.tsx +0 -6
  105. package/src/extensions/extendComponent.ts +61 -0
@@ -0,0 +1,311 @@
1
+ import { StyleSheet } from 'react-native-unistyles';
2
+ import { Theme, StylesheetStyles, CompoundVariants, Size } from '@idealyst/theme';
3
+ import { buildSizeVariants } from '../utils/buildSizeVariants';
4
+ import {
5
+ buildGapVariants,
6
+ buildPaddingVariants,
7
+ buildPaddingVerticalVariants,
8
+ buildPaddingHorizontalVariants,
9
+ buildMarginVariants,
10
+ buildMarginVerticalVariants,
11
+ buildMarginHorizontalVariants,
12
+ } from '../utils/buildViewStyleVariants';
13
+ import { applyExtensions } from '../extensions/applyExtension';
14
+
15
+ type TableType = 'default' | 'bordered' | 'striped';
16
+
17
+ type TableRowVariants = {
18
+ type: TableType;
19
+ clickable: boolean;
20
+ }
21
+ /**
22
+ * Create type variants for container
23
+ */
24
+ function createContainerTypeVariants(theme: Theme) {
25
+ return {
26
+ standard: {
27
+ borderWidth: 1,
28
+ borderStyle: 'solid',
29
+ borderColor: theme.colors.border.primary,
30
+ borderRadius: 8,
31
+ overflow: 'hidden',
32
+ _web: {
33
+ border: `1px solid ${theme.colors.border.primary}`,
34
+ },
35
+ },
36
+ bordered: {
37
+ borderWidth: 1,
38
+ borderStyle: 'solid',
39
+ borderColor: theme.colors.border.primary,
40
+ borderRadius: 8,
41
+ overflow: 'hidden',
42
+ _web: {
43
+ border: `1px solid ${theme.colors.border.primary}`,
44
+ },
45
+ },
46
+ striped: {
47
+ borderWidth: 1,
48
+ borderStyle: 'solid',
49
+ borderColor: theme.colors.border.primary,
50
+ borderRadius: 8,
51
+ overflow: 'hidden',
52
+ _web: {
53
+ border: `1px solid ${theme.colors.border.primary}`,
54
+ },
55
+ },
56
+ } as const;
57
+ }
58
+
59
+ /**
60
+ * Create type variants for row
61
+ */
62
+ function createRowTypeVariants(theme: Theme) {
63
+ return {
64
+ standard: {},
65
+ bordered: {
66
+ borderBottomWidth: 1,
67
+ borderBottomStyle: 'solid',
68
+ borderBottomColor: theme.colors.border.primary,
69
+ _web: {
70
+ borderBottom: `1px solid ${theme.colors.border.primary}`,
71
+ },
72
+ },
73
+ striped: {
74
+ borderBottomWidth: 1,
75
+ borderBottomStyle: 'solid',
76
+ borderBottomColor: theme.colors.border.primary,
77
+ _web: {
78
+ borderBottom: `1px solid ${theme.colors.border.primary}`,
79
+ ':nth-child(even)': {
80
+ backgroundColor: theme.colors.surface.secondary,
81
+ },
82
+ },
83
+ },
84
+ } as const;
85
+ }
86
+
87
+ /**
88
+ * Create compound variants for row
89
+ */
90
+ function createRowCompoundVariants(theme: Theme): CompoundVariants<keyof TableRowVariants> {
91
+ return [
92
+ {
93
+ type: 'striped',
94
+ clickable: true,
95
+ styles: {
96
+ _web: {
97
+ _hover: {
98
+ backgroundColor: theme.colors.surface.tertiary,
99
+ },
100
+ },
101
+ },
102
+ },
103
+ ] as const;
104
+ }
105
+
106
+ /**
107
+ * Create size variants for header cell
108
+ */
109
+ function createHeaderCellSizeVariants(theme: Theme) {
110
+ return buildSizeVariants(theme, 'table', (size) => ({
111
+ padding: size.padding,
112
+ fontSize: size.fontSize,
113
+ lineHeight: size.lineHeight,
114
+ }));
115
+ }
116
+
117
+ /**
118
+ * Create type variants for header cell
119
+ */
120
+ function createHeaderCellTypeVariants(theme: Theme) {
121
+ return {
122
+ standard: {},
123
+ bordered: {
124
+ borderRightWidth: 1,
125
+ borderRightStyle: 'solid',
126
+ borderRightColor: theme.colors.border.primary,
127
+ _web: {
128
+ borderRight: `1px solid ${theme.colors.border.primary}`,
129
+ ':last-child': {
130
+ borderRight: 'none',
131
+ },
132
+ },
133
+ },
134
+ striped: {},
135
+ } as const;
136
+ }
137
+
138
+ /**
139
+ * Create size variants for cell
140
+ */
141
+ function createCellSizeVariants(theme: Theme) {
142
+ return buildSizeVariants(theme, 'table', (size) => ({
143
+ padding: size.padding,
144
+ fontSize: size.fontSize,
145
+ lineHeight: size.lineHeight,
146
+ }));
147
+ }
148
+
149
+ /**
150
+ * Create type variants for cell
151
+ */
152
+ function createCellTypeVariants(theme: Theme) {
153
+ return {
154
+ standard: {},
155
+ bordered: {
156
+ borderRightWidth: 1,
157
+ borderRightStyle: 'solid',
158
+ borderRightColor: theme.colors.border.primary,
159
+ _web: {
160
+ borderRight: `1px solid ${theme.colors.border.primary}`,
161
+ ':last-child': {
162
+ borderRight: 'none',
163
+ },
164
+ },
165
+ },
166
+ striped: {},
167
+ } as const;
168
+ }
169
+
170
+ function createContainerStyles(theme: Theme) {
171
+ return () => ({
172
+ width: '100%',
173
+ _web: {
174
+ overflow: 'auto',
175
+ },
176
+ variants: {
177
+ type: createContainerTypeVariants(theme),
178
+ // Spacing variants from ContainerStyleProps
179
+ gap: buildGapVariants(theme),
180
+ padding: buildPaddingVariants(theme),
181
+ paddingVertical: buildPaddingVerticalVariants(theme),
182
+ paddingHorizontal: buildPaddingHorizontalVariants(theme),
183
+ margin: buildMarginVariants(theme),
184
+ marginVertical: buildMarginVerticalVariants(theme),
185
+ marginHorizontal: buildMarginHorizontalVariants(theme),
186
+ },
187
+ });
188
+ }
189
+
190
+ const createTableStyles = (theme: Theme) => {
191
+ return {
192
+ width: '100%',
193
+ _web: {
194
+ borderCollapse: 'collapse',
195
+ },
196
+ } as const;
197
+ }
198
+
199
+ const createTheadStyles = (theme: Theme) => {
200
+ return {
201
+ backgroundColor: theme.colors.surface.secondary,
202
+ variants: {
203
+ sticky: {
204
+ true: {
205
+ _web: {
206
+ position: 'sticky',
207
+ top: 0,
208
+ zIndex: 10,
209
+ }
210
+ },
211
+ false: {},
212
+ },
213
+ },
214
+ } as const;
215
+ }
216
+
217
+ const createRowStyles = (theme: Theme) => {
218
+ return {
219
+ variants: {
220
+ type: createRowTypeVariants(theme),
221
+ clickable: {
222
+ true: {
223
+ _web: {
224
+ cursor: 'pointer',
225
+ _hover: {
226
+ backgroundColor: theme.colors.surface.secondary,
227
+ },
228
+ },
229
+ },
230
+ false: {},
231
+ },
232
+ },
233
+ compoundVariants: createRowCompoundVariants(theme),
234
+ _web: {
235
+ transition: 'background-color 0.2s ease',
236
+ },
237
+ } as const;
238
+ }
239
+
240
+ const createHeaderCellStyles = (theme: Theme) => {
241
+ return {
242
+ flexDirection: 'row',
243
+ alignItems: 'center',
244
+ textAlign: 'left',
245
+ fontWeight: '600',
246
+ color: theme.colors.text.primary,
247
+ borderBottomWidth: 2,
248
+ borderBottomStyle: 'solid',
249
+ borderBottomColor: theme.colors.border.primary,
250
+ _web: {
251
+ borderBottom: `2px solid ${theme.colors.border.primary}`,
252
+ },
253
+ variants: {
254
+ size: createHeaderCellSizeVariants(theme),
255
+ align: {
256
+ left: {
257
+ textAlign: 'left',
258
+ justifyContent: 'flex-start',
259
+ },
260
+ center: {
261
+ textAlign: 'center',
262
+ justifyContent: 'center',
263
+ },
264
+ right: {
265
+ textAlign: 'right',
266
+ justifyContent: 'flex-end',
267
+ },
268
+ },
269
+ type: createHeaderCellTypeVariants(theme),
270
+ },
271
+ } as const;
272
+ }
273
+
274
+ const createCellStyles = (theme: Theme) => {
275
+ return {
276
+ flexDirection: 'row',
277
+ alignItems: 'center',
278
+ textAlign: 'left',
279
+ color: theme.colors.text.primary,
280
+ variants: {
281
+ size: createCellSizeVariants(theme),
282
+ align: {
283
+ left: {
284
+ textAlign: 'left',
285
+ justifyContent: 'flex-start',
286
+ },
287
+ center: {
288
+ textAlign: 'center',
289
+ justifyContent: 'center',
290
+ },
291
+ right: {
292
+ textAlign: 'right',
293
+ justifyContent: 'flex-end',
294
+ },
295
+ },
296
+ type: createCellTypeVariants(theme),
297
+ },
298
+ } as const;
299
+ }
300
+
301
+ export const tableStyles = StyleSheet.create((theme: Theme) => {
302
+ return applyExtensions('Table', theme, {
303
+ container: createContainerStyles(theme),
304
+ table: createTableStyles(theme),
305
+ thead: createTheadStyles(theme),
306
+ tbody: {},
307
+ row: createRowStyles(theme),
308
+ headerCell: createHeaderCellStyles(theme),
309
+ cell: createCellStyles(theme),
310
+ });
311
+ });