@addev-be/ui 2.7.0 → 2.7.1

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 (238) hide show
  1. package/assets/icons/arrow-down-1-9.svg +1 -1
  2. package/assets/icons/arrow-down-a-z.svg +1 -1
  3. package/assets/icons/arrow-up-z-a.svg +1 -1
  4. package/assets/icons/check.svg +1 -1
  5. package/assets/icons/circle-check.svg +1 -1
  6. package/assets/icons/down.svg +1 -1
  7. package/assets/icons/filter-full.svg +1 -1
  8. package/assets/icons/filter.svg +1 -1
  9. package/assets/icons/hashtag.svg +1 -1
  10. package/assets/icons/image-slash.svg +1 -1
  11. package/assets/icons/left.svg +1 -1
  12. package/assets/icons/magnifier.svg +1 -1
  13. package/assets/icons/phone.svg +1 -1
  14. package/assets/icons/right.svg +1 -1
  15. package/assets/icons/sort-calendar-ascending.svg +5 -5
  16. package/assets/icons/spinner-third.svg +1 -1
  17. package/assets/icons/table-columns.svg +1 -1
  18. package/assets/icons/table-footer-slash.svg +4 -4
  19. package/assets/icons/table-footer.svg +3 -3
  20. package/assets/icons/up.svg +1 -1
  21. package/assets/icons/user-tie.svg +1 -1
  22. package/assets/icons/x-bar.svg +3 -3
  23. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +9 -8
  24. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +21 -72
  25. package/dist/components/data/AdvancedRequestDataGrid/index.js +2 -2
  26. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +1 -1
  27. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +10 -0
  28. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +173 -0
  29. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +13 -0
  30. package/dist/components/data/DataGrid/FilterValuesScroller.js +73 -0
  31. package/dist/components/data/DataGrid/VirtualScroller.d.ts +11 -0
  32. package/dist/components/data/DataGrid/VirtualScroller.js +41 -0
  33. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +12 -0
  34. package/dist/components/data/DataGrid/helpers/advancedRequests.js +53 -0
  35. package/dist/components/data/DataGrid/helpers.d.ts +28 -0
  36. package/dist/components/data/DataGrid/helpers.js +436 -0
  37. package/dist/components/data/SmartQueryDataGrid/helpers/columns.d.ts +20 -0
  38. package/dist/components/data/SmartQueryDataGrid/helpers/columns.js +160 -0
  39. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.d.ts +5 -0
  40. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.js +41 -0
  41. package/dist/components/data/SmartQueryDataGrid/helpers/index.d.ts +2 -0
  42. package/dist/components/data/SmartQueryDataGrid/helpers/index.js +18 -0
  43. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.d.ts +3 -0
  44. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.js +15 -0
  45. package/dist/components/data/SmartQueryDataGrid/hooks.d.ts +9 -0
  46. package/dist/components/data/SmartQueryDataGrid/hooks.js +63 -0
  47. package/dist/components/data/SmartQueryDataGrid/index.d.ts +12 -0
  48. package/dist/components/data/SmartQueryDataGrid/index.js +242 -0
  49. package/dist/components/data/SmartQueryDataGrid/types.d.ts +22 -0
  50. package/dist/components/data/SmartQueryDataGrid/types.js +2 -0
  51. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.d.ts +2 -1
  52. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.js +2 -3
  53. package/dist/components/forms/Form/InputWithLabel.d.ts +2 -0
  54. package/dist/components/forms/Form/InputWithLabel.js +10 -0
  55. package/dist/components/forms/Form/types.d.ts +7 -0
  56. package/dist/components/forms/Form/types.js +2 -0
  57. package/dist/config/types.d.ts +11 -0
  58. package/dist/config/types.js +2 -0
  59. package/dist/helpers/react.d.ts +2 -0
  60. package/dist/helpers/react.js +8 -0
  61. package/dist/services/index.js +17 -7
  62. package/dist/services/requests/userPermissions.d.ts +4 -0
  63. package/dist/services/requests/userPermissions.js +20 -0
  64. package/eslint.config.js +3 -3
  65. package/package.json +2 -2
  66. package/src/Icons.tsx +138 -138
  67. package/src/components/auth/LoginForm.tsx +86 -86
  68. package/src/components/auth/LoginPage.tsx +32 -32
  69. package/src/components/auth/PasswordRecoveryForm.tsx +53 -53
  70. package/src/components/auth/PasswordResetForm.tsx +112 -112
  71. package/src/components/auth/styles.ts +14 -14
  72. package/src/components/data/DataGrid/DataGridCell.tsx +81 -81
  73. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +9 -9
  74. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  75. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +182 -182
  76. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  77. package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +37 -37
  78. package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +38 -38
  79. package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +71 -71
  80. package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +37 -37
  81. package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +106 -106
  82. package/src/components/data/DataGrid/DataGridEditableCell/styles.ts +35 -35
  83. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +18 -18
  84. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +129 -129
  85. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +81 -81
  86. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +370 -370
  87. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
  88. package/src/components/data/DataGrid/DataGridFooter.tsx +47 -47
  89. package/src/components/data/DataGrid/DataGridHeader.tsx +74 -74
  90. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +112 -112
  91. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +83 -83
  92. package/src/components/data/DataGrid/DataGridToolbar.tsx +134 -134
  93. package/src/components/data/DataGrid/FilterModalContent/index.tsx +137 -137
  94. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  95. package/src/components/data/DataGrid/constants.ts +6 -6
  96. package/src/components/data/DataGrid/helpers/columns.tsx +449 -449
  97. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  98. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  99. package/src/components/data/DataGrid/hooks/index.ts +29 -29
  100. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +383 -383
  101. package/src/components/data/DataGrid/hooks/useDataGridChangedRows.ts +97 -97
  102. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +174 -174
  103. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  104. package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +48 -48
  105. package/src/components/data/DataGrid/index.tsx +111 -111
  106. package/src/components/data/DataGrid/styles.ts +434 -434
  107. package/src/components/data/DataGrid/types.ts +380 -380
  108. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +526 -526
  109. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  110. package/src/components/data/SqlRequestDataGrid/helpers/rows.ts +24 -24
  111. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +17 -17
  112. package/src/components/data/SqlRequestDataGrid/index.tsx +417 -417
  113. package/src/components/data/SqlRequestDataGrid/styles.ts +15 -15
  114. package/src/components/data/SqlRequestDataGrid/types.ts +74 -74
  115. package/src/components/data/SqlRequestForeignList/index.tsx +254 -254
  116. package/src/components/data/SqlRequestForeignList/styles.ts +43 -43
  117. package/src/components/data/SqlRequestForeignList/types.ts +32 -32
  118. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +108 -108
  119. package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
  120. package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
  121. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  122. package/src/components/data/SqlRequestGrid/index.tsx +304 -304
  123. package/src/components/data/SqlRequestGrid/styles.ts +20 -20
  124. package/src/components/data/SqlRequestGrid/types.ts +73 -73
  125. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  126. package/src/components/data/VirtualScroller/index.tsx +89 -89
  127. package/src/components/data/VirtualScroller/styles.ts +57 -57
  128. package/src/components/data/VirtualScroller/types.ts +10 -10
  129. package/src/components/forms/AutoTextArea.tsx +48 -48
  130. package/src/components/forms/BillitIdentifier/index.tsx +78 -78
  131. package/src/components/forms/BillitIdentifier/styles.tsx +43 -43
  132. package/src/components/forms/Button.tsx +132 -132
  133. package/src/components/forms/Form/Checkbox.tsx +12 -12
  134. package/src/components/forms/Form/CustomSelect.tsx +86 -86
  135. package/src/components/forms/Form/FormGroup.tsx +33 -33
  136. package/src/components/forms/Form/Input.tsx +16 -16
  137. package/src/components/forms/Form/Row.tsx +28 -28
  138. package/src/components/forms/Form/Select.tsx +99 -99
  139. package/src/components/forms/Form/TextArea.tsx +17 -17
  140. package/src/components/forms/Form/index.tsx +48 -48
  141. package/src/components/forms/Form/styles.ts +148 -148
  142. package/src/components/forms/IconButton.tsx +61 -61
  143. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  144. package/src/components/forms/NumberInput.tsx +53 -53
  145. package/src/components/forms/Select.tsx +34 -34
  146. package/src/components/forms/VerticalLabel.tsx +20 -20
  147. package/src/components/forms/styles.ts +42 -42
  148. package/src/components/layout/Columns.ts +28 -28
  149. package/src/components/layout/Dropdown/index.tsx +113 -113
  150. package/src/components/layout/Dropdown/styles.ts +53 -53
  151. package/src/components/layout/Flexbox.ts +21 -21
  152. package/src/components/layout/Grid/index.tsx +8 -8
  153. package/src/components/layout/Grid/styles.ts +34 -34
  154. package/src/components/layout/Loading/index.tsx +29 -29
  155. package/src/components/layout/Loading/styles.ts +29 -29
  156. package/src/components/layout/Masonry/index.tsx +29 -29
  157. package/src/components/layout/Masonry/styles.ts +20 -20
  158. package/src/components/layout/Modal/index.tsx +51 -51
  159. package/src/components/layout/Modal/styles.ts +125 -125
  160. package/src/components/search/HighlightedText.tsx +41 -41
  161. package/src/components/search/QuickSearchBar.tsx +102 -102
  162. package/src/components/search/QuickSearchResults.tsx +86 -86
  163. package/src/components/search/styles.ts +96 -96
  164. package/src/components/search/types.ts +29 -29
  165. package/src/components/ui/Avatar/index.tsx +54 -54
  166. package/src/components/ui/Card/index.tsx +16 -16
  167. package/src/components/ui/Card/styles.ts +41 -41
  168. package/src/components/ui/ContextMenu/index.tsx +79 -79
  169. package/src/components/ui/ContextMenu/styles.ts +119 -119
  170. package/src/components/ui/Ellipsis.tsx +33 -33
  171. package/src/components/ui/Label.tsx +93 -93
  172. package/src/components/ui/Message/index.tsx +57 -57
  173. package/src/components/ui/Message/styles.ts +44 -44
  174. package/src/components/ui/TabsView/TabsList.tsx +49 -49
  175. package/src/components/ui/TabsView/TabsView.tsx +42 -42
  176. package/src/components/ui/TabsView/styles.ts +84 -84
  177. package/src/components/ui/TabsView/types.ts +15 -15
  178. package/src/config/index.ts +10 -10
  179. package/src/helpers/components.ts +9 -9
  180. package/src/helpers/dates.ts +17 -17
  181. package/src/helpers/getScrollbarSize.ts +14 -14
  182. package/src/helpers/numbers.ts +63 -63
  183. package/src/helpers/responsive.ts +83 -83
  184. package/src/helpers/styled/space.ts +114 -114
  185. package/src/helpers/styled/typography.ts +25 -25
  186. package/src/helpers/text.ts +13 -13
  187. package/src/helpers/types.ts +9 -9
  188. package/src/hooks/useContainerMediaQuery.ts +7 -7
  189. package/src/hooks/useElementSize.ts +24 -24
  190. package/src/hooks/useMediaQuery.ts +9 -9
  191. package/src/hooks/useMediaQueryForWidth.ts +35 -35
  192. package/src/hooks/useMutableState.test.ts +410 -410
  193. package/src/hooks/useMutableState.ts +39 -39
  194. package/src/hooks/useShowArchived.ts +28 -28
  195. package/src/hooks/useWindowSize.ts +20 -20
  196. package/src/index.ts +103 -103
  197. package/src/providers/AuthenticationProvider/helpers.ts +3 -3
  198. package/src/providers/AuthenticationProvider/index.tsx +303 -303
  199. package/src/providers/LoadingProvider/index.tsx +47 -47
  200. package/src/providers/PortalsProvider/index.tsx +54 -54
  201. package/src/providers/PortalsProvider/styles.ts +31 -31
  202. package/src/providers/SettingsProvider/index.tsx +70 -70
  203. package/src/providers/ThemeProvider/defaultTheme.ts +471 -471
  204. package/src/providers/ThemeProvider/helpers.ts +84 -84
  205. package/src/providers/ThemeProvider/index.ts +73 -73
  206. package/src/providers/ThemeProvider/types.ts +134 -134
  207. package/src/providers/ToastProvider/index.tsx +93 -93
  208. package/src/providers/TrackingProvider/index.tsx +71 -71
  209. package/src/providers/UiProviders/index.tsx +76 -76
  210. package/src/providers/UiProviders/styles.ts +10 -10
  211. package/src/providers/hooks.ts +14 -14
  212. package/src/services/HttpService.ts +92 -92
  213. package/src/services/WebSocketService.ts +155 -155
  214. package/src/services/advancedRequests.ts +102 -102
  215. package/src/services/base.ts +23 -23
  216. package/src/services/globalSearch.ts +32 -32
  217. package/src/services/hooks.ts +92 -92
  218. package/src/services/requests/auth.ts +44 -44
  219. package/src/services/requests/generic.ts +62 -62
  220. package/src/services/requests/printing.ts +12 -12
  221. package/src/services/requests/tracking.ts +12 -12
  222. package/src/services/requests/userProfiles.ts +35 -35
  223. package/src/services/requests/users.ts +28 -28
  224. package/src/services/smartQueries.ts +122 -122
  225. package/src/services/sqlRequests.ts +119 -119
  226. package/src/services/types/auth.ts +98 -98
  227. package/src/services/types/base.ts +10 -10
  228. package/src/services/types/generic.ts +82 -82
  229. package/src/services/types/printing.ts +10 -10
  230. package/src/services/types/tracking.ts +29 -29
  231. package/src/services/types/userProfiles.ts +79 -79
  232. package/src/services/types/users.ts +74 -74
  233. package/src/services/updateSqlRequests.ts +32 -32
  234. package/src/styles/animations.scss +30 -30
  235. package/src/styles/index.scss +42 -42
  236. package/src/types.ts +8 -8
  237. package/src/typings.d.ts +2 -2
  238. package/tsconfig.json +18 -18
@@ -1,84 +1,84 @@
1
- import {
2
- Theme,
3
- ThemeColor,
4
- ThemeColorIntensity,
5
- ThemeColorWithIntensity,
6
- } from './types';
7
- import { defaultDarkTheme, defaultTheme } from './defaultTheme';
8
-
9
- import { DeepPartial } from '../../types';
10
- import { defaultsDeep } from 'lodash';
11
-
12
- export const extendTheme = (
13
- base: Theme,
14
- override?: DeepPartial<Theme>
15
- ): Theme => defaultsDeep({}, override, base);
16
-
17
- export const extendDefaultTheme = (override?: DeepPartial<Theme>): Theme =>
18
- extendTheme(defaultTheme, override);
19
- export const extendDefaultDarkTheme = (override?: DeepPartial<Theme>): Theme =>
20
- extendTheme(defaultDarkTheme, override);
21
-
22
- export const getColor = (
23
- colorWithIntensity: ThemeColor | ThemeColorWithIntensity
24
- ): ThemeColor => {
25
- const [colorName] = colorWithIntensity.split('-');
26
- return colorName as ThemeColor;
27
- };
28
-
29
- export const getIntensity = (
30
- colorWithIntensity: ThemeColorWithIntensity
31
- ): ThemeColorIntensity => {
32
- const [, intensity] = colorWithIntensity.split('-');
33
- return Number(intensity) as ThemeColorIntensity;
34
- };
35
-
36
- export const isThemeColorWithIntensity = (
37
- color: ThemeColor | ThemeColorWithIntensity
38
- ): color is ThemeColorWithIntensity => {
39
- return color.indexOf('-') >= 0;
40
- };
41
-
42
- export const getColorWithIntensity = (
43
- color: ThemeColor | ThemeColorWithIntensity,
44
- defaultIntensity: ThemeColorIntensity = 300
45
- ): ThemeColorWithIntensity => {
46
- if (isThemeColorWithIntensity(color)) {
47
- return color;
48
- }
49
- return `${color}-${defaultIntensity}`;
50
- };
51
-
52
- export const extractColorAndIntensity = (
53
- color: ThemeColor | ThemeColorWithIntensity,
54
- defaultIntensity: ThemeColorIntensity = 300
55
- ): [ThemeColor, ThemeColorIntensity] => {
56
- if (isThemeColorWithIntensity(color)) {
57
- const [colorName, intensity] = color.split('-');
58
- return [
59
- colorName as ThemeColor,
60
- intensity ? (Number(intensity) as ThemeColorIntensity) : defaultIntensity,
61
- ];
62
- }
63
- return [color, defaultIntensity];
64
- };
65
-
66
- export const darkenColor = (
67
- color: ThemeColor | ThemeColorWithIntensity,
68
- amount: number = 100
69
- ): ThemeColorWithIntensity => {
70
- const [colorName, intensity] = extractColorAndIntensity(color);
71
- const newIntensity = (Math.floor(Math.min(intensity + amount, 950) / 100) *
72
- 100) as ThemeColorIntensity;
73
- return `${colorName}-${newIntensity}` as ThemeColorWithIntensity;
74
- };
75
-
76
- export const lightenColor = (
77
- color: ThemeColor | ThemeColorWithIntensity,
78
- amount: number = 100
79
- ): ThemeColorWithIntensity => {
80
- const [colorName, intensity] = extractColorAndIntensity(color);
81
- const newIntensity = (Math.floor(Math.max(intensity - amount, 0) / 100) *
82
- 100) as ThemeColorIntensity;
83
- return `${colorName}-${newIntensity}` as ThemeColorWithIntensity;
84
- };
1
+ import {
2
+ Theme,
3
+ ThemeColor,
4
+ ThemeColorIntensity,
5
+ ThemeColorWithIntensity,
6
+ } from './types';
7
+ import { defaultDarkTheme, defaultTheme } from './defaultTheme';
8
+
9
+ import { DeepPartial } from '../../types';
10
+ import { defaultsDeep } from 'lodash';
11
+
12
+ export const extendTheme = (
13
+ base: Theme,
14
+ override?: DeepPartial<Theme>
15
+ ): Theme => defaultsDeep({}, override, base);
16
+
17
+ export const extendDefaultTheme = (override?: DeepPartial<Theme>): Theme =>
18
+ extendTheme(defaultTheme, override);
19
+ export const extendDefaultDarkTheme = (override?: DeepPartial<Theme>): Theme =>
20
+ extendTheme(defaultDarkTheme, override);
21
+
22
+ export const getColor = (
23
+ colorWithIntensity: ThemeColor | ThemeColorWithIntensity
24
+ ): ThemeColor => {
25
+ const [colorName] = colorWithIntensity.split('-');
26
+ return colorName as ThemeColor;
27
+ };
28
+
29
+ export const getIntensity = (
30
+ colorWithIntensity: ThemeColorWithIntensity
31
+ ): ThemeColorIntensity => {
32
+ const [, intensity] = colorWithIntensity.split('-');
33
+ return Number(intensity) as ThemeColorIntensity;
34
+ };
35
+
36
+ export const isThemeColorWithIntensity = (
37
+ color: ThemeColor | ThemeColorWithIntensity
38
+ ): color is ThemeColorWithIntensity => {
39
+ return color.indexOf('-') >= 0;
40
+ };
41
+
42
+ export const getColorWithIntensity = (
43
+ color: ThemeColor | ThemeColorWithIntensity,
44
+ defaultIntensity: ThemeColorIntensity = 300
45
+ ): ThemeColorWithIntensity => {
46
+ if (isThemeColorWithIntensity(color)) {
47
+ return color;
48
+ }
49
+ return `${color}-${defaultIntensity}`;
50
+ };
51
+
52
+ export const extractColorAndIntensity = (
53
+ color: ThemeColor | ThemeColorWithIntensity,
54
+ defaultIntensity: ThemeColorIntensity = 300
55
+ ): [ThemeColor, ThemeColorIntensity] => {
56
+ if (isThemeColorWithIntensity(color)) {
57
+ const [colorName, intensity] = color.split('-');
58
+ return [
59
+ colorName as ThemeColor,
60
+ intensity ? (Number(intensity) as ThemeColorIntensity) : defaultIntensity,
61
+ ];
62
+ }
63
+ return [color, defaultIntensity];
64
+ };
65
+
66
+ export const darkenColor = (
67
+ color: ThemeColor | ThemeColorWithIntensity,
68
+ amount: number = 100
69
+ ): ThemeColorWithIntensity => {
70
+ const [colorName, intensity] = extractColorAndIntensity(color);
71
+ const newIntensity = (Math.floor(Math.min(intensity + amount, 950) / 100) *
72
+ 100) as ThemeColorIntensity;
73
+ return `${colorName}-${newIntensity}` as ThemeColorWithIntensity;
74
+ };
75
+
76
+ export const lightenColor = (
77
+ color: ThemeColor | ThemeColorWithIntensity,
78
+ amount: number = 100
79
+ ): ThemeColorWithIntensity => {
80
+ const [colorName, intensity] = extractColorAndIntensity(color);
81
+ const newIntensity = (Math.floor(Math.max(intensity - amount, 0) / 100) *
82
+ 100) as ThemeColorIntensity;
83
+ return `${colorName}-${newIntensity}` as ThemeColorWithIntensity;
84
+ };
@@ -1,73 +1,73 @@
1
- import { Theme } from './types';
2
- import { defaultTheme } from './defaultTheme';
3
- import styled from 'styled-components';
4
-
5
- type ThemeProviderProps = {
6
- $theme?: Theme;
7
- $darkTheme?: Theme;
8
- $darkMode?: boolean;
9
- };
10
-
11
- const getThemeValuesCss = (
12
- prefix: string,
13
- obj: Record<string, string> | undefined
14
- ) => {
15
- return Object.entries(obj ?? {})
16
- .map(([key, value]) => {
17
- return `--${prefix}-${key}: ${value};`;
18
- })
19
- .join('');
20
- };
21
-
22
- const getThemeColorsCss = (colors: Theme['colors'], darkMode = false) => {
23
- return Object.entries(colors ?? {})
24
- .map(([color, intensities]) =>
25
- Object.entries(
26
- (typeof intensities === 'string'
27
- ? (colors ?? {})[intensities] ??
28
- (defaultTheme.colors ?? {})[intensities]
29
- : intensities) ?? {}
30
- )
31
- .map(
32
- ([intensity, value]) =>
33
- `--color-${color}-${
34
- darkMode ? 1000 - Number(intensity) : intensity
35
- }: ${value};`
36
- )
37
- .join('')
38
- )
39
- .join('');
40
- };
41
-
42
- export const ThemeProvider = styled.div<ThemeProviderProps>`
43
- display: contents;
44
- ${({ $theme = {}, $darkTheme, $darkMode }) => {
45
- const theme = $darkMode ? $darkTheme ?? $theme : $theme;
46
- const darkMode = !$darkTheme && $darkMode;
47
- return [
48
- getThemeColorsCss(theme.colors, darkMode),
49
- getThemeValuesCss('font', theme.fonts),
50
- getThemeValuesCss('text', theme.texts),
51
- getThemeValuesCss('weight', theme.weights),
52
- getThemeValuesCss('space', theme.spaces),
53
- getThemeValuesCss('size', theme.sizes),
54
- getThemeValuesCss('rounded', theme.rounded),
55
- getThemeValuesCss('shadow', theme.shadows),
56
- ].join('');
57
- }}
58
-
59
- font-family: var(--font-sans);
60
- font-size: var(--text-base);
61
- font-weight: var(--weight-normal);
62
- color: var(--color-text-800);
63
- background-color: var(--color-base-0);
64
-
65
- a,
66
- a:visited {
67
- color: var(--color-primary-500);
68
- }
69
- a:active,
70
- a:hover {
71
- color: var(--color-primary-700);
72
- }
73
- `;
1
+ import { Theme } from './types';
2
+ import { defaultTheme } from './defaultTheme';
3
+ import styled from 'styled-components';
4
+
5
+ type ThemeProviderProps = {
6
+ $theme?: Theme;
7
+ $darkTheme?: Theme;
8
+ $darkMode?: boolean;
9
+ };
10
+
11
+ const getThemeValuesCss = (
12
+ prefix: string,
13
+ obj: Record<string, string> | undefined
14
+ ) => {
15
+ return Object.entries(obj ?? {})
16
+ .map(([key, value]) => {
17
+ return `--${prefix}-${key}: ${value};`;
18
+ })
19
+ .join('');
20
+ };
21
+
22
+ const getThemeColorsCss = (colors: Theme['colors'], darkMode = false) => {
23
+ return Object.entries(colors ?? {})
24
+ .map(([color, intensities]) =>
25
+ Object.entries(
26
+ (typeof intensities === 'string'
27
+ ? (colors ?? {})[intensities] ??
28
+ (defaultTheme.colors ?? {})[intensities]
29
+ : intensities) ?? {}
30
+ )
31
+ .map(
32
+ ([intensity, value]) =>
33
+ `--color-${color}-${
34
+ darkMode ? 1000 - Number(intensity) : intensity
35
+ }: ${value};`
36
+ )
37
+ .join('')
38
+ )
39
+ .join('');
40
+ };
41
+
42
+ export const ThemeProvider = styled.div<ThemeProviderProps>`
43
+ display: contents;
44
+ ${({ $theme = {}, $darkTheme, $darkMode }) => {
45
+ const theme = $darkMode ? $darkTheme ?? $theme : $theme;
46
+ const darkMode = !$darkTheme && $darkMode;
47
+ return [
48
+ getThemeColorsCss(theme.colors, darkMode),
49
+ getThemeValuesCss('font', theme.fonts),
50
+ getThemeValuesCss('text', theme.texts),
51
+ getThemeValuesCss('weight', theme.weights),
52
+ getThemeValuesCss('space', theme.spaces),
53
+ getThemeValuesCss('size', theme.sizes),
54
+ getThemeValuesCss('rounded', theme.rounded),
55
+ getThemeValuesCss('shadow', theme.shadows),
56
+ ].join('');
57
+ }}
58
+
59
+ font-family: var(--font-sans);
60
+ font-size: var(--text-base);
61
+ font-weight: var(--weight-normal);
62
+ color: var(--color-text-800);
63
+ background-color: var(--color-base-0);
64
+
65
+ a,
66
+ a:visited {
67
+ color: var(--color-primary-500);
68
+ }
69
+ a:active,
70
+ a:hover {
71
+ color: var(--color-primary-700);
72
+ }
73
+ `;
@@ -1,134 +1,134 @@
1
- import { DeepPartial } from '../../types';
2
-
3
- export type ThemeColorIntensity =
4
- | 0
5
- | 50
6
- | 100
7
- | 200
8
- | 300
9
- | 400
10
- | 500
11
- | 600
12
- | 700
13
- | 800
14
- | 900
15
- | 950
16
- | 1000;
17
- export type ThemeColorDefinition = Record<ThemeColorIntensity, string>;
18
- export type ThemeRawColor =
19
- | 'slate'
20
- | 'gray'
21
- | 'zinc'
22
- | 'neutral'
23
- | 'stone'
24
- | 'red'
25
- | 'orange'
26
- | 'amber'
27
- | 'yellow'
28
- | 'lime'
29
- | 'green'
30
- | 'emerald'
31
- | 'teal'
32
- | 'cyan'
33
- | 'sky'
34
- | 'blue'
35
- | 'indigo'
36
- | 'violet'
37
- | 'purple'
38
- | 'fuchsia'
39
- | 'pink'
40
- | 'rose';
41
- export type ThemePredefinedColor =
42
- | 'base'
43
- | 'text'
44
- | 'primary'
45
- | 'secondary'
46
- | 'success'
47
- | 'warning'
48
- | 'danger'
49
- | 'info';
50
- export type ThemeColor = ThemeRawColor | ThemePredefinedColor;
51
- export type ThemeColorReference = ThemeColor | ThemeColorDefinition;
52
- export type ThemeColorWithIntensity = `${ThemeColor}-${ThemeColorIntensity}`;
53
-
54
- export type ThemeTextSize =
55
- | 'xs'
56
- | 'sm'
57
- | 'base'
58
- | 'lg'
59
- | 'xl'
60
- | '2xl'
61
- | '3xl'
62
- | '4xl'
63
- | '5xl'
64
- | '6xl';
65
- export type ThemeFontFamily = 'sans' | 'serif' | 'mono' | 'input';
66
- export type ThemeFontWeight = 'light' | 'normal' | 'bold';
67
- export type ThemeSpace =
68
- | '0'
69
- | '0_5'
70
- | '1'
71
- | '1_5'
72
- | '2'
73
- | '3'
74
- | '4'
75
- | '5'
76
- | '6'
77
- | '8'
78
- | '10'
79
- | '12'
80
- | '14'
81
- | '16'
82
- | '20'
83
- | '24'
84
- | '32'
85
- | '40'
86
- | '48'
87
- | '56'
88
- | '64'
89
- | '72'
90
- | '80'
91
- | '96'
92
- | '128';
93
- export type ThemeSpaceWithNegative = ThemeSpace | `-${ThemeSpace}`;
94
-
95
- export type ThemeSize =
96
- | '0'
97
- | '0_5'
98
- | '1'
99
- | '1_5'
100
- | '2'
101
- | '3'
102
- | '4'
103
- | '5'
104
- | '6'
105
- | '8'
106
- | '10'
107
- | '12'
108
- | '16'
109
- | '20'
110
- | '24'
111
- | '32'
112
- | '40'
113
- | '48';
114
- export type ThemeRounded =
115
- | 'none'
116
- | 'sm'
117
- | 'md'
118
- | 'lg'
119
- | 'xl'
120
- | '2xl'
121
- | '3xl'
122
- | 'full';
123
- export type ThemeShadow = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
124
-
125
- export type Theme = DeepPartial<{
126
- colors: Record<ThemeColor, ThemeColorReference>;
127
- texts: Record<ThemeTextSize, string>;
128
- fonts: Record<ThemeFontFamily, string>;
129
- weights: Record<ThemeFontWeight, string>;
130
- spaces: Record<ThemeSpace, string>;
131
- sizes: Record<ThemeSpace, string>;
132
- rounded: Record<ThemeRounded, string>;
133
- shadows: Record<ThemeShadow, string>;
134
- }>;
1
+ import { DeepPartial } from '../../types';
2
+
3
+ export type ThemeColorIntensity =
4
+ | 0
5
+ | 50
6
+ | 100
7
+ | 200
8
+ | 300
9
+ | 400
10
+ | 500
11
+ | 600
12
+ | 700
13
+ | 800
14
+ | 900
15
+ | 950
16
+ | 1000;
17
+ export type ThemeColorDefinition = Record<ThemeColorIntensity, string>;
18
+ export type ThemeRawColor =
19
+ | 'slate'
20
+ | 'gray'
21
+ | 'zinc'
22
+ | 'neutral'
23
+ | 'stone'
24
+ | 'red'
25
+ | 'orange'
26
+ | 'amber'
27
+ | 'yellow'
28
+ | 'lime'
29
+ | 'green'
30
+ | 'emerald'
31
+ | 'teal'
32
+ | 'cyan'
33
+ | 'sky'
34
+ | 'blue'
35
+ | 'indigo'
36
+ | 'violet'
37
+ | 'purple'
38
+ | 'fuchsia'
39
+ | 'pink'
40
+ | 'rose';
41
+ export type ThemePredefinedColor =
42
+ | 'base'
43
+ | 'text'
44
+ | 'primary'
45
+ | 'secondary'
46
+ | 'success'
47
+ | 'warning'
48
+ | 'danger'
49
+ | 'info';
50
+ export type ThemeColor = ThemeRawColor | ThemePredefinedColor;
51
+ export type ThemeColorReference = ThemeColor | ThemeColorDefinition;
52
+ export type ThemeColorWithIntensity = `${ThemeColor}-${ThemeColorIntensity}`;
53
+
54
+ export type ThemeTextSize =
55
+ | 'xs'
56
+ | 'sm'
57
+ | 'base'
58
+ | 'lg'
59
+ | 'xl'
60
+ | '2xl'
61
+ | '3xl'
62
+ | '4xl'
63
+ | '5xl'
64
+ | '6xl';
65
+ export type ThemeFontFamily = 'sans' | 'serif' | 'mono' | 'input';
66
+ export type ThemeFontWeight = 'light' | 'normal' | 'bold';
67
+ export type ThemeSpace =
68
+ | '0'
69
+ | '0_5'
70
+ | '1'
71
+ | '1_5'
72
+ | '2'
73
+ | '3'
74
+ | '4'
75
+ | '5'
76
+ | '6'
77
+ | '8'
78
+ | '10'
79
+ | '12'
80
+ | '14'
81
+ | '16'
82
+ | '20'
83
+ | '24'
84
+ | '32'
85
+ | '40'
86
+ | '48'
87
+ | '56'
88
+ | '64'
89
+ | '72'
90
+ | '80'
91
+ | '96'
92
+ | '128';
93
+ export type ThemeSpaceWithNegative = ThemeSpace | `-${ThemeSpace}`;
94
+
95
+ export type ThemeSize =
96
+ | '0'
97
+ | '0_5'
98
+ | '1'
99
+ | '1_5'
100
+ | '2'
101
+ | '3'
102
+ | '4'
103
+ | '5'
104
+ | '6'
105
+ | '8'
106
+ | '10'
107
+ | '12'
108
+ | '16'
109
+ | '20'
110
+ | '24'
111
+ | '32'
112
+ | '40'
113
+ | '48';
114
+ export type ThemeRounded =
115
+ | 'none'
116
+ | 'sm'
117
+ | 'md'
118
+ | 'lg'
119
+ | 'xl'
120
+ | '2xl'
121
+ | '3xl'
122
+ | 'full';
123
+ export type ThemeShadow = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
124
+
125
+ export type Theme = DeepPartial<{
126
+ colors: Record<ThemeColor, ThemeColorReference>;
127
+ texts: Record<ThemeTextSize, string>;
128
+ fonts: Record<ThemeFontFamily, string>;
129
+ weights: Record<ThemeFontWeight, string>;
130
+ spaces: Record<ThemeSpace, string>;
131
+ sizes: Record<ThemeSpace, string>;
132
+ rounded: Record<ThemeRounded, string>;
133
+ shadows: Record<ThemeShadow, string>;
134
+ }>;