react95-native-rabbl 0.1.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 (163) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +24 -0
  3. package/package.json +154 -0
  4. package/src/assets/fonts/src/ms-sans-serif/MS Sans Serif.ttf +0 -0
  5. package/src/assets/fonts/src/ms-sans-serif/license.txt +4 -0
  6. package/src/assets/fonts/src/ms-sans-serif/readme.txt +26 -0
  7. package/src/assets/fonts/src/ms-sans-serif-bold/MS Sans Serif Bold.ttf +0 -0
  8. package/src/assets/fonts/src/ms-sans-serif-bold/license.txt +4 -0
  9. package/src/assets/fonts/src/ms-sans-serif-bold/readme.txt +26 -0
  10. package/src/components/AppBar/AppBar.spec.tsx +140 -0
  11. package/src/components/AppBar/AppBar.tsx +43 -0
  12. package/src/components/AppBar/AppBarBackAction.tsx +20 -0
  13. package/src/components/AppBar/AppBarContent.tsx +84 -0
  14. package/src/components/AppBar/index.ts +1 -0
  15. package/src/components/Button/Button.spec.tsx +59 -0
  16. package/src/components/Button/Button.tsx +236 -0
  17. package/src/components/Button/index.ts +1 -0
  18. package/src/components/Card/Card.spec.tsx +54 -0
  19. package/src/components/Card/Card.tsx +88 -0
  20. package/src/components/Card/CardContent.tsx +23 -0
  21. package/src/components/Card/index.ts +1 -0
  22. package/src/components/Checkbox/Checkbox.tsx +10 -0
  23. package/src/components/Checkbox/index.ts +1 -0
  24. package/src/components/ColorButton/ColorButton.tsx +69 -0
  25. package/src/components/ColorButton/index.ts +1 -0
  26. package/src/components/ColorPicker/ColorPicker.tsx +109 -0
  27. package/src/components/ColorPicker/index.ts +1 -0
  28. package/src/components/Desktop/Desktop.spec.tsx +32 -0
  29. package/src/components/Desktop/Desktop.tsx +132 -0
  30. package/src/components/Desktop/index.tsx +1 -0
  31. package/src/components/Divider/Divider.spec.tsx +47 -0
  32. package/src/components/Divider/Divider.tsx +52 -0
  33. package/src/components/Divider/index.tsx +1 -0
  34. package/src/components/FAB/FAB.tsx +288 -0
  35. package/src/components/FAB/FABGroup.tsx +385 -0
  36. package/src/components/FAB/index.ts +1 -0
  37. package/src/components/Fieldset/Fieldset.spec.tsx +48 -0
  38. package/src/components/Fieldset/Fieldset.tsx +107 -0
  39. package/src/components/Fieldset/index.ts +1 -0
  40. package/src/components/Hourglass/Hourglass.spec.tsx +24 -0
  41. package/src/components/Hourglass/Hourglass.tsx +43 -0
  42. package/src/components/Hourglass/base64hourglass.ts +3 -0
  43. package/src/components/Hourglass/index.ts +1 -0
  44. package/src/components/Icons/ArrowIcon.tsx +85 -0
  45. package/src/components/Icons/CheckmarkIcon.tsx +55 -0
  46. package/src/components/Icons/ChevronIcon.tsx +93 -0
  47. package/src/components/Icons/CloseIcon.tsx +48 -0
  48. package/src/components/Icons/index.ts +4 -0
  49. package/src/components/Label/Label.tsx +77 -0
  50. package/src/components/Label/index.ts +1 -0
  51. package/src/components/List/List.tsx +3 -0
  52. package/src/components/List/ListAccordion.tsx +154 -0
  53. package/src/components/List/ListItem.tsx +74 -0
  54. package/src/components/List/ListSection.tsx +51 -0
  55. package/src/components/List/index.ts +3 -0
  56. package/src/components/Menu/Menu.tsx +100 -0
  57. package/src/components/Menu/MenuItem.tsx +100 -0
  58. package/src/components/Menu/index.ts +1 -0
  59. package/src/components/NumberInput/NumberInput.spec.tsx +119 -0
  60. package/src/components/NumberInput/NumberInput.tsx +144 -0
  61. package/src/components/NumberInput/index.ts +1 -0
  62. package/src/components/Panel/Panel.spec.tsx +29 -0
  63. package/src/components/Panel/Panel.tsx +75 -0
  64. package/src/components/Panel/index.ts +1 -0
  65. package/src/components/Portal/Portal.tsx +52 -0
  66. package/src/components/Portal/PortalConsumer.tsx +48 -0
  67. package/src/components/Portal/PortalHost.tsx +150 -0
  68. package/src/components/Portal/PortalManager.tsx +57 -0
  69. package/src/components/Portal/index.ts +1 -0
  70. package/src/components/Progress/Progress.tsx +125 -0
  71. package/src/components/Progress/index.ts +1 -0
  72. package/src/components/Radio/Radio.tsx +14 -0
  73. package/src/components/Radio/index.ts +1 -0
  74. package/src/components/ScrollPanel/ScrollPanel.tsx +72 -0
  75. package/src/components/ScrollPanel/index.ts +1 -0
  76. package/src/components/ScrollView/ScrollView.tsx +284 -0
  77. package/src/components/ScrollView/index.ts +1 -0
  78. package/src/components/Select/Select.tsx +229 -0
  79. package/src/components/Select/SelectBase.tsx +119 -0
  80. package/src/components/Select/SelectBox.tsx +66 -0
  81. package/src/components/Select/index.ts +2 -0
  82. package/src/components/Slider/Slider.tsx +301 -0
  83. package/src/components/Slider/index.ts +1 -0
  84. package/src/components/Snackbar/Snackbar.tsx +260 -0
  85. package/src/components/Snackbar/SnackbarContent.tsx +23 -0
  86. package/src/components/Snackbar/index.ts +1 -0
  87. package/src/components/SwitchBase/SwitchBase.tsx +193 -0
  88. package/src/components/SwitchBase/index.ts +1 -0
  89. package/src/components/Tabs/Tabs.tsx +208 -0
  90. package/src/components/Tabs/index.ts +1 -0
  91. package/src/components/TextInput/TextInput.tsx +82 -0
  92. package/src/components/TextInput/index.ts +1 -0
  93. package/src/components/Toolbar/Toolbar.tsx +113 -0
  94. package/src/components/Toolbar/index.ts +1 -0
  95. package/src/components/Typography/Anchor.tsx +38 -0
  96. package/src/components/Typography/Text.spec.tsx +30 -0
  97. package/src/components/Typography/Text.tsx +55 -0
  98. package/src/components/Typography/Title.tsx +58 -0
  99. package/src/components/Typography/index.ts +3 -0
  100. package/src/components/Window/Window.tsx +132 -0
  101. package/src/components/Window/index.ts +1 -0
  102. package/src/core/Provider.tsx +52 -0
  103. package/src/core/theming.tsx +8 -0
  104. package/src/hooks/useAsyncReference.ts +22 -0
  105. package/src/hooks/useControlledOrUncontrolled.ts +23 -0
  106. package/src/index.ts +38 -0
  107. package/src/styles/shadow.tsx +36 -0
  108. package/src/styles/styleElements.tsx +105 -0
  109. package/src/styles/styles.ts +129 -0
  110. package/src/styles/themes/aiee.ts +36 -0
  111. package/src/styles/themes/ash.ts +35 -0
  112. package/src/styles/themes/azureOrange.ts +33 -0
  113. package/src/styles/themes/bee.ts +33 -0
  114. package/src/styles/themes/blackAndWhite.ts +33 -0
  115. package/src/styles/themes/blue.ts +36 -0
  116. package/src/styles/themes/brick.ts +33 -0
  117. package/src/styles/themes/candy.ts +33 -0
  118. package/src/styles/themes/cherry.ts +36 -0
  119. package/src/styles/themes/coldGray.ts +34 -0
  120. package/src/styles/themes/counterStrike.ts +33 -0
  121. package/src/styles/themes/darkTeal.ts +36 -0
  122. package/src/styles/themes/eggplant.ts +33 -0
  123. package/src/styles/themes/fxDev.ts +36 -0
  124. package/src/styles/themes/highContrast.ts +33 -0
  125. package/src/styles/themes/hotChocolate.ts +36 -0
  126. package/src/styles/themes/index.ts +103 -0
  127. package/src/styles/themes/lilac.ts +33 -0
  128. package/src/styles/themes/lilacRoseDark.ts +34 -0
  129. package/src/styles/themes/maple.ts +33 -0
  130. package/src/styles/themes/marine.ts +33 -0
  131. package/src/styles/themes/matrix.ts +33 -0
  132. package/src/styles/themes/millenium.ts +33 -0
  133. package/src/styles/themes/modernDark.ts +33 -0
  134. package/src/styles/themes/molecule.ts +33 -0
  135. package/src/styles/themes/monochrome.ts +0 -0
  136. package/src/styles/themes/ninjaTurtles.ts +33 -0
  137. package/src/styles/themes/olive.ts +33 -0
  138. package/src/styles/themes/original.ts +33 -0
  139. package/src/styles/themes/pamelaAnderson.ts +33 -0
  140. package/src/styles/themes/plum.ts +33 -0
  141. package/src/styles/themes/polarized.ts +36 -0
  142. package/src/styles/themes/powerShell.ts +36 -0
  143. package/src/styles/themes/rainyDay.ts +33 -0
  144. package/src/styles/themes/raspberry.ts +36 -0
  145. package/src/styles/themes/redWine.ts +36 -0
  146. package/src/styles/themes/rose.ts +33 -0
  147. package/src/styles/themes/seawater.ts +36 -0
  148. package/src/styles/themes/slate.ts +33 -0
  149. package/src/styles/themes/solarizedDark.ts +36 -0
  150. package/src/styles/themes/solarizedLight.ts +36 -0
  151. package/src/styles/themes/spruce.ts +33 -0
  152. package/src/styles/themes/stormClouds.ts +36 -0
  153. package/src/styles/themes/theSixtiesUSA.ts +33 -0
  154. package/src/styles/themes/tokyoDark.ts +33 -0
  155. package/src/styles/themes/tooSexy.ts +33 -0
  156. package/src/styles/themes/travel.ts +33 -0
  157. package/src/styles/themes/vaporTeal.ts +33 -0
  158. package/src/styles/themes/vermillion.ts +33 -0
  159. package/src/styles/themes/violetDark.ts +33 -0
  160. package/src/styles/themes/water.ts +33 -0
  161. package/src/styles/themes/wmii.ts +36 -0
  162. package/src/types.tsx +55 -0
  163. package/src/utils/index.ts +57 -0
@@ -0,0 +1,36 @@
1
+ /* "Seawater" by tPenguinLTG
2
+ * https://www.deviantart.com/tpenguinltg/art/Seawater-736002425
3
+ */
4
+
5
+ export default {
6
+ name: 'seawater',
7
+ anchor: 'rgb(0, 0, 128)',
8
+ anchorVisited: 'rgb(0, 0, 128)',
9
+ borderDark: 'rgb(167, 194, 224)',
10
+ borderDarkest: 'rgb(167, 194, 224)',
11
+ borderLight: 'rgb(167, 194, 224)',
12
+ borderLightest: 'rgb(167, 194, 224)',
13
+ canvas: 'rgb(255, 255, 255)',
14
+ canvasText: 'rgb(0, 0, 0)',
15
+ canvasTextDisabled: 'rgb(167, 194, 224)',
16
+ canvasTextDisabledShadow: 'rgb(167, 194, 224)',
17
+ canvasTextInvert: 'rgb(255, 255, 255)',
18
+ checkmark: 'rgb(0, 0, 0)',
19
+ checkmarkDisabled: 'rgb(47, 88, 134)',
20
+ flatDark: 'rgb(167, 194, 224)',
21
+ flatLight: 'rgb(167, 194, 224)',
22
+ focusSecondary: 'rgb(167, 194, 224)',
23
+ headerBackground: 'rgb(0, 0, 128)',
24
+ headerNotActiveBackground: 'rgb(0, 85, 170)',
25
+ headerNotActiveText: 'rgb(192, 192, 192)',
26
+ headerText: 'rgb(255, 255, 255)',
27
+ hoverBackground: 'rgb(0, 128, 128)',
28
+ material: 'rgb(79, 133, 193)',
29
+ materialDark: 'rgb(0, 85, 170)',
30
+ materialText: 'rgb(0, 0, 0)',
31
+ materialTextDisabled: 'rgb(167, 194, 224)',
32
+ materialTextDisabledShadow: 'rgb(167, 194, 224)',
33
+ materialTextInvert: 'rgb(255, 255, 255)',
34
+ progress: 'rgb(0, 128, 128)',
35
+ tooltip: 'rgb(255, 255, 225)',
36
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'slate',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#446b7c',
7
+ borderDarkest: '#000814',
8
+ borderLight: '#adc8da',
9
+ borderLightest: '#c3d9e9',
10
+ canvas: '#f2ffff',
11
+ canvasText: '#00010f',
12
+ canvasTextDisabled: '#446b7c',
13
+ canvasTextDisabledShadow: '#c3d9e9',
14
+ canvasTextInvert: '#f2ffff',
15
+ checkmark: '#00010f',
16
+ checkmarkDisabled: '#446b7c',
17
+ flatDark: '#9e9e9e',
18
+ flatLight: '#d8d8d8',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#448199',
21
+ headerNotActiveBackground: '#807f80',
22
+ headerNotActiveText: '#c2c1c2',
23
+ headerText: '#f2ffff',
24
+ hoverBackground: '#448199',
25
+ material: '#97b9cb',
26
+ materialDark: '#9a9e9c',
27
+ materialText: '#00010f',
28
+ materialTextDisabled: '#446b7c',
29
+ materialTextDisabledShadow: '#c3d9e9',
30
+ materialTextInvert: '#f2ffff',
31
+ progress: '#448199',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,36 @@
1
+ /* "Solarized Dark" by tPenguinLTG
2
+ * https://www.deviantart.com/tpenguinltg/art/Solarized-Dark-592122068
3
+ */
4
+
5
+ export default {
6
+ name: 'solarizedDark',
7
+ anchor: 'rgb(38, 139, 210)',
8
+ anchorVisited: 'rgb(38, 139, 210)',
9
+ borderDark: 'rgb(0, 43, 54)',
10
+ borderDarkest: 'rgb(0, 43, 54)',
11
+ borderLight: 'rgb(0, 43, 54)',
12
+ borderLightest: 'rgb(0, 43, 54)',
13
+ canvas: 'rgb(0, 43, 54)',
14
+ canvasText: 'rgb(131, 148, 150)',
15
+ canvasTextDisabled: 'rgb(0, 43, 54)',
16
+ canvasTextDisabledShadow: 'rgb(0, 43, 54)',
17
+ canvasTextInvert: 'rgb(238, 232, 213)',
18
+ checkmark: 'rgb(131, 148, 150)',
19
+ checkmarkDisabled: 'rgb(88, 110, 117)',
20
+ flatDark: 'rgb(0, 43, 54)',
21
+ flatLight: 'rgb(0, 43, 54)',
22
+ focusSecondary: 'rgb(0, 43, 54)',
23
+ headerBackground: 'rgb(0, 43, 54)',
24
+ headerNotActiveBackground: 'rgb(7, 54, 66)',
25
+ headerNotActiveText: 'rgb(131, 148, 150)',
26
+ headerText: 'rgb(108, 113, 196)',
27
+ hoverBackground: 'rgb(211, 54, 130)',
28
+ material: 'rgb(7, 54, 66)',
29
+ materialDark: 'rgb(7, 54, 66)',
30
+ materialText: 'rgb(131, 148, 150)',
31
+ materialTextDisabled: 'rgb(0, 43, 54)',
32
+ materialTextDisabledShadow: 'rgb(0, 43, 54)',
33
+ materialTextInvert: 'rgb(238, 232, 213)',
34
+ progress: 'rgb(211, 54, 130)',
35
+ tooltip: 'rgb(253, 246, 227)',
36
+ };
@@ -0,0 +1,36 @@
1
+ /* "Solarized Light" by tPenguinLTG
2
+ * https://www.deviantart.com/tpenguinltg/art/Solarized-Light-592124935
3
+ */
4
+
5
+ export default {
6
+ name: 'solarizedLight',
7
+ anchor: 'rgb(38, 139, 210)',
8
+ anchorVisited: 'rgb(38, 139, 210)',
9
+ borderDark: 'rgb(253, 246, 227)',
10
+ borderDarkest: 'rgb(253, 246, 227)',
11
+ borderLight: 'rgb(253, 246, 227)',
12
+ borderLightest: 'rgb(253, 246, 227)',
13
+ canvas: 'rgb(253, 246, 227)',
14
+ canvasText: 'rgb(101, 123, 131)',
15
+ canvasTextDisabled: 'rgb(253, 246, 227)',
16
+ canvasTextDisabledShadow: 'rgb(253, 246, 227)',
17
+ canvasTextInvert: 'rgb(238, 232, 213)',
18
+ checkmark: 'rgb(101, 123, 131)',
19
+ checkmarkDisabled: 'rgb(88, 110, 117)',
20
+ flatDark: 'rgb(253, 246, 227)',
21
+ flatLight: 'rgb(253, 246, 227)',
22
+ focusSecondary: 'rgb(253, 246, 227)',
23
+ headerBackground: 'rgb(253, 246, 227)',
24
+ headerNotActiveBackground: 'rgb(238, 232, 213)',
25
+ headerNotActiveText: 'rgb(101, 123, 131)',
26
+ headerText: 'rgb(108, 113, 196)',
27
+ hoverBackground: 'rgb(211, 54, 130)',
28
+ material: 'rgb(238, 232, 213)',
29
+ materialDark: 'rgb(238, 232, 213)',
30
+ materialText: 'rgb(101, 123, 131)',
31
+ materialTextDisabled: 'rgb(253, 246, 227)',
32
+ materialTextDisabledShadow: 'rgb(253, 246, 227)',
33
+ materialTextInvert: 'rgb(238, 232, 213)',
34
+ progress: 'rgb(211, 54, 130)',
35
+ tooltip: 'rgb(253, 246, 227)',
36
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'spruce',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#477b5e',
7
+ borderDarkest: '#001004',
8
+ borderLight: '#b0d2bb',
9
+ borderLightest: '#cdead2',
10
+ canvas: '#fcfff6',
11
+ canvasText: '#050608',
12
+ canvasTextDisabled: '#3d5367',
13
+ canvasTextDisabledShadow: '#cdead2',
14
+ canvasTextInvert: '#fcfff6',
15
+ checkmark: '#050608',
16
+ checkmarkDisabled: '#477b5e',
17
+ flatDark: '#9e9e9e',
18
+ flatLight: '#d8d8d8',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#3d9961',
21
+ headerNotActiveBackground: '#807f80',
22
+ headerNotActiveText: '#d4deda',
23
+ headerText: '#fcfff6',
24
+ hoverBackground: '#3d9961',
25
+ material: '#99c9a8',
26
+ materialDark: '#9a9e9c',
27
+ materialText: '#050608',
28
+ materialTextDisabled: '#3d5367',
29
+ materialTextDisabledShadow: '#cdead2',
30
+ materialTextInvert: '#fcfff6',
31
+ progress: '#3d9961',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,36 @@
1
+ /* "Storm Clouds" by tPenguinLTG
2
+ * https://www.deviantart.com/tpenguinltg/art/Storm-Clouds-613198674
3
+ */
4
+
5
+ export default {
6
+ name: 'stormClouds',
7
+ anchor: 'rgb(64, 64, 255)',
8
+ anchorVisited: 'rgb(64, 64, 255)',
9
+ borderDark: 'rgb(47, 52, 53)',
10
+ borderDarkest: 'rgb(0, 0, 0)',
11
+ borderLight: 'rgb(70, 80, 81)',
12
+ borderLightest: 'rgb(159, 171, 172)',
13
+ canvas: 'rgb(47, 52, 53)',
14
+ canvasText: 'rgb(255, 255, 255)',
15
+ canvasTextDisabled: 'rgb(47, 52, 53)',
16
+ canvasTextDisabledShadow: 'rgb(159, 171, 172)',
17
+ canvasTextInvert: 'rgb(255, 255, 255)',
18
+ checkmark: 'rgb(255, 255, 255)',
19
+ checkmarkDisabled: 'rgb(128, 128, 128)',
20
+ flatDark: 'rgb(47, 52, 53)',
21
+ flatLight: 'rgb(70, 80, 81)',
22
+ focusSecondary: 'rgb(159, 171, 172)',
23
+ headerBackground: 'rgb(0, 0, 168)',
24
+ headerNotActiveBackground: 'rgb(47, 52, 53)',
25
+ headerNotActiveText: 'rgb(192, 199, 200)',
26
+ headerText: 'rgb(255, 255, 255)',
27
+ hoverBackground: 'rgb(128, 128, 0)',
28
+ material: 'rgb(70, 80, 81)',
29
+ materialDark: 'rgb(47, 52, 53)',
30
+ materialText: 'rgb(255, 255, 255)',
31
+ materialTextDisabled: 'rgb(47, 52, 53)',
32
+ materialTextDisabledShadow: 'rgb(159, 171, 172)',
33
+ materialTextInvert: 'rgb(255, 255, 255)',
34
+ progress: 'rgb(128, 128, 0)',
35
+ tooltip: 'rgb(48, 64, 80)',
36
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'theSixtiesUSA',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#6c1f71',
7
+ borderDarkest: '#010001',
8
+ borderLight: '#d982de',
9
+ borderLightest: '#df9be7',
10
+ canvas: '#ffffff',
11
+ canvasText: '#010001',
12
+ canvasTextDisabled: '#6c1f71',
13
+ canvasTextDisabledShadow: '#df9be7',
14
+ canvasTextInvert: '#010001',
15
+ checkmark: '#010001',
16
+ checkmarkDisabled: '#6c1f71',
17
+ flatDark: '#d067d7',
18
+ flatLight: '#df9be7',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#050080',
21
+ headerNotActiveBackground: '#a130a9',
22
+ headerNotActiveText: '#df9be7',
23
+ headerText: '#ffffff',
24
+ hoverBackground: '#0f0',
25
+ material: '#d067d7',
26
+ materialDark: '#9a9e9c',
27
+ materialText: '#010001',
28
+ materialTextDisabled: '#6c1f71',
29
+ materialTextDisabledShadow: '#df9be7',
30
+ materialTextInvert: '#010001',
31
+ progress: '#0f0',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'tokyoDark',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#1f2223',
7
+ borderDarkest: '#070809',
8
+ borderLight: '#5e696a',
9
+ borderLightest: '#93a0a1',
10
+ canvas: '#2f3435',
11
+ canvasText: '#F4F4ED',
12
+ canvasTextDisabled: '#1f2223',
13
+ canvasTextDisabledShadow: '#93a0a1',
14
+ canvasTextInvert: '#ffffff',
15
+ checkmark: '#F4F4ED',
16
+ checkmarkDisabled: '#1f2223',
17
+ flatDark: '#9e9e9e',
18
+ flatLight: '#d8d8d8',
19
+ focusSecondary: '#20FC8F',
20
+ headerBackground: '#1f2223',
21
+ headerNotActiveBackground: '#5e696a',
22
+ headerNotActiveText: '#F4F4ED',
23
+ headerText: '#F4F4ED',
24
+ hoverBackground: '#F61067',
25
+ material: '#465051',
26
+ materialDark: '#1f2223',
27
+ materialText: '#F4F4ED',
28
+ materialTextDisabled: '#1f2223',
29
+ materialTextDisabledShadow: '#93a0a1',
30
+ materialTextInvert: '#ffffff',
31
+ progress: '#F61067',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'tooSexy',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#5a0302',
7
+ borderDarkest: '#000000',
8
+ borderLight: '#c81d19',
9
+ borderLightest: '#fe5757',
10
+ canvas: '#FFF1D0',
11
+ canvasText: '#000000',
12
+ canvasTextDisabled: '#5a0302',
13
+ canvasTextDisabledShadow: '#FFF1D0',
14
+ canvasTextInvert: '#ffffff',
15
+ checkmark: '#000000',
16
+ checkmarkDisabled: '#5a0302',
17
+ flatDark: '#9e9e9e',
18
+ flatLight: '#d8d8d8',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#161B33',
21
+ headerNotActiveBackground: '#5a0302',
22
+ headerNotActiveText: '#B80100',
23
+ headerText: '#FFF1D0',
24
+ hoverBackground: '#474973',
25
+ material: '#B80100',
26
+ materialDark: '#9a9e9c',
27
+ materialText: '#000000',
28
+ materialTextDisabled: '#5a0302',
29
+ materialTextDisabledShadow: '#fe5757',
30
+ materialTextInvert: '#ffffff',
31
+ progress: '#474973',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'travel',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#695f50',
7
+ borderDarkest: '#28251e',
8
+ borderLight: '#9d8f80',
9
+ borderLightest: '#baae9f',
10
+ canvas: '#d8d0c8',
11
+ canvasText: '#28251e',
12
+ canvasTextDisabled: '#695f50',
13
+ canvasTextDisabledShadow: '#baae9f',
14
+ canvasTextInvert: '#ffffff',
15
+ checkmark: '#28251e',
16
+ checkmarkDisabled: '#695f50',
17
+ flatDark: '#695f50',
18
+ flatLight: '#9d8f80',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#404878',
21
+ headerNotActiveBackground: '#605848',
22
+ headerNotActiveText: '#908070',
23
+ headerText: '#d8d0c8',
24
+ hoverBackground: '#48604f',
25
+ material: '#908070',
26
+ materialDark: '#9a9e9c',
27
+ materialText: '#28251e',
28
+ materialTextDisabled: '#695f50',
29
+ materialTextDisabledShadow: '#baae9f',
30
+ materialTextInvert: '#ffffff',
31
+ progress: '#48604f',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'vaporTeal',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#00706f',
7
+ borderDarkest: '#000000',
8
+ borderLight: '#2fcecd',
9
+ borderLightest: '#58ffff',
10
+ canvas: '#98DFEA',
11
+ canvasText: '#000000',
12
+ canvasTextDisabled: '#00706f',
13
+ canvasTextDisabledShadow: '#58ffff',
14
+ canvasTextInvert: '#000000',
15
+ checkmark: '#000000',
16
+ checkmarkDisabled: '#00706f',
17
+ flatDark: '#9e9e9e',
18
+ flatLight: '#d8d8d8',
19
+ focusSecondary: '#FCF6BD',
20
+ headerBackground: '#246A73',
21
+ headerNotActiveBackground: '#2fcecd',
22
+ headerNotActiveText: '#246A73',
23
+ headerText: '#58ffff',
24
+ hoverBackground: '#FF99C8',
25
+ material: '#01a8a8',
26
+ materialDark: '#246A73',
27
+ materialText: '#000000',
28
+ materialTextDisabled: '#00706f',
29
+ materialTextDisabledShadow: '#58ffff',
30
+ materialTextInvert: '#000000',
31
+ progress: '#FF99C8',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'vermillion',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#7f2120',
7
+ borderDarkest: '#130405',
8
+ borderLight: '#d25051',
9
+ borderLightest: '#e59697',
10
+ canvas: '#EFE9F4',
11
+ canvasText: '#130405',
12
+ canvasTextDisabled: '#7f2120',
13
+ canvasTextDisabledShadow: '#e59697',
14
+ canvasTextInvert: '#EFE9F4',
15
+ checkmark: '#130405',
16
+ checkmarkDisabled: '#7f2120',
17
+ flatDark: '#9e9e9e',
18
+ flatLight: '#d8d8d8',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#000103',
21
+ headerNotActiveBackground: '#7f2120',
22
+ headerNotActiveText: '#EFE9F4',
23
+ headerText: '#EFE9F4',
24
+ hoverBackground: '#000103',
25
+ material: '#cf4545',
26
+ materialDark: '#7f2120',
27
+ materialText: '#130405',
28
+ materialTextDisabled: '#7f2120',
29
+ materialTextDisabledShadow: '#e59697',
30
+ materialTextInvert: '#EFE9F4',
31
+ progress: '#000103',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'violetDark',
3
+
4
+ anchor: '#1034a6',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#3c1f3e',
7
+ borderDarkest: '#18051a',
8
+ borderLight: '#945b9b',
9
+ borderLightest: '#c47bcc',
10
+ canvas: '#c47bcc',
11
+ canvasText: '#18051a',
12
+ canvasTextDisabled: '#000000',
13
+ canvasTextDisabledShadow: '#000000',
14
+ canvasTextInvert: '#c57ece',
15
+ checkmark: '#000000',
16
+ checkmarkDisabled: '#3c1f3e',
17
+ flatDark: '#3c1f3e',
18
+ flatLight: '#945b9b',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#1034a6',
21
+ headerNotActiveBackground: '#210e23',
22
+ headerNotActiveText: '#652a6d',
23
+ headerText: '#010601',
24
+ hoverBackground: '#512155',
25
+ material: '#652a6d',
26
+ materialDark: '#210e23',
27
+ materialText: '#c57ece',
28
+ materialTextDisabled: '#3c1f3e',
29
+ materialTextDisabledShadow: '#c47bcc',
30
+ materialTextInvert: '#c47bcc',
31
+ progress: '#000080',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ name: 'water',
3
+
4
+ anchor: '#72b3b4',
5
+ anchorVisited: '#440381',
6
+ borderDark: '#888c8f',
7
+ borderDarkest: '#050608',
8
+ borderLight: '#dfe0e3',
9
+ borderLightest: '#ffffff',
10
+ canvas: '#ffffff',
11
+ canvasText: '#050608',
12
+ canvasTextDisabled: '#888c8f',
13
+ canvasTextDisabledShadow: '#ffffff',
14
+ canvasTextInvert: '#ffffff',
15
+ checkmark: '#050608',
16
+ checkmarkDisabled: '#888c8f',
17
+ flatDark: '#9e9e9e',
18
+ flatLight: '#d8d8d8',
19
+ focusSecondary: '#fefe03',
20
+ headerBackground: '#72b3b4',
21
+ headerNotActiveBackground: '#9a9e9c',
22
+ headerNotActiveText: '#ced0cf',
23
+ headerText: '#ffffff',
24
+ hoverBackground: '#72b3b4',
25
+ material: '#ced0cf',
26
+ materialDark: '#9a9e9c',
27
+ materialText: '#050608',
28
+ materialTextDisabled: '#888c8f',
29
+ materialTextDisabledShadow: '#ffffff',
30
+ materialTextInvert: '#ffffff',
31
+ progress: '#72b3b4',
32
+ tooltip: '#fefbcc'
33
+ };
@@ -0,0 +1,36 @@
1
+ /* "WMII" by tPenguinLTG
2
+ * https://www.deviantart.com/tpenguinltg/art/wmii-683233676
3
+ */
4
+
5
+ export default {
6
+ name: 'wmii',
7
+ anchor: 'rgb(129, 101, 79)',
8
+ anchorVisited: 'rgb(129, 101, 79)',
9
+ borderDark: 'rgb(145, 148, 75)',
10
+ borderDarkest: 'rgb(64, 64, 64)',
11
+ borderLight: 'rgb(193, 196, 139)',
12
+ borderLightest: 'rgb(224, 225, 198)',
13
+ canvas: 'rgb(255, 255, 255)',
14
+ canvasText: 'rgb(0, 0, 0)',
15
+ canvasTextDisabled: 'rgb(145, 148, 75)',
16
+ canvasTextDisabledShadow: 'rgb(224, 225, 198)',
17
+ canvasTextInvert: 'rgb(255, 255, 255)',
18
+ checkmark: 'rgb(0, 0, 0)',
19
+ checkmarkDisabled: 'rgb(145, 148, 75)',
20
+ flatDark: 'rgb(145, 148, 75)',
21
+ flatLight: 'rgb(193, 196, 139)',
22
+ focusSecondary: 'rgb(224, 225, 198)',
23
+ headerBackground: 'rgb(129, 101, 79)',
24
+ headerNotActiveBackground: 'rgb(145, 148, 75)',
25
+ headerNotActiveText: 'rgb(193, 196, 139)',
26
+ headerText: 'rgb(255, 255, 255)',
27
+ hoverBackground: 'rgb(0, 0, 0)',
28
+ material: 'rgb(193, 196, 139)',
29
+ materialDark: 'rgb(145, 148, 75)',
30
+ materialText: 'rgb(0, 0, 0)',
31
+ materialTextDisabled: 'rgb(145, 148, 75)',
32
+ materialTextDisabledShadow: 'rgb(224, 225, 198)',
33
+ materialTextInvert: 'rgb(255, 255, 255)',
34
+ progress: 'rgb(0, 0, 0)',
35
+ tooltip: 'rgb(255, 255, 225)',
36
+ };
package/src/types.tsx ADDED
@@ -0,0 +1,55 @@
1
+ import type * as React from 'react';
2
+
3
+ export type $Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ export type $RemoveChildren<T extends React.ComponentType<any>> = $Omit<
6
+ React.ComponentPropsWithoutRef<T>,
7
+ 'children'
8
+ >;
9
+
10
+ // TODO: proper Color type
11
+ export type Color = string;
12
+
13
+ export type Sizes = 'sm' | 'md' | 'lg';
14
+
15
+ export type Orientation = 'horizontal' | 'vertical';
16
+
17
+ export type Direction = 'up' | 'down' | 'left' | 'right';
18
+
19
+ export type DimensionValue = undefined | number | string;
20
+
21
+ export type Theme = {
22
+ name: string;
23
+ anchor: string;
24
+ anchorVisited: string;
25
+ borderDark: string;
26
+ borderDarkest: string;
27
+ borderLight: string;
28
+ borderLightest: string;
29
+ canvas: string;
30
+ canvasText: string;
31
+ canvasTextDisabled: string;
32
+ canvasTextDisabledShadow: string;
33
+ canvasTextInvert: string;
34
+ checkmark: string;
35
+ checkmarkDisabled: string;
36
+ flatDark: string;
37
+ flatLight: string;
38
+ focusSecondary: string;
39
+ headerBackground: string;
40
+ headerNotActiveBackground: string;
41
+ headerNotActiveText: string;
42
+ headerText: string;
43
+ hoverBackground: string;
44
+ material: string;
45
+ materialDark: string;
46
+ materialText: string;
47
+ materialTextDisabled: string;
48
+ materialTextDisabledShadow: string;
49
+ materialTextInvert: string;
50
+ progress: string;
51
+ tooltip: string;
52
+ };
53
+
54
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
+ export type AnyValue = any;
@@ -0,0 +1,57 @@
1
+ // TODO: write tests for utils
2
+ type OptionalNumber = number | null;
3
+ export function clamp(value: number, min: OptionalNumber, max: OptionalNumber) {
4
+ if (max !== null && value > max) {
5
+ return max;
6
+ }
7
+ if (min !== null && value < min) {
8
+ return min;
9
+ }
10
+ return value;
11
+ }
12
+
13
+ // helper functions below are from Material UI (https://github.com/mui-org/material-ui)
14
+ export function getDecimalPrecision(num: number) {
15
+ if (Math.abs(num) < 1) {
16
+ const parts = num.toExponential().split('e-');
17
+ const matissaDecimalPart = parts[0].split('.')[1];
18
+ return (
19
+ (matissaDecimalPart ? matissaDecimalPart.length : 0) +
20
+ parseInt(parts[1], 10)
21
+ );
22
+ }
23
+
24
+ const decimalPart = num.toString().split('.')[1];
25
+ return decimalPart ? decimalPart.length : 0;
26
+ }
27
+
28
+ export function roundValueToStep(value: number, step: number, min: number) {
29
+ const nearest = Math.round((value - min) / step) * step + min;
30
+ return Number(nearest.toFixed(getDecimalPrecision(step)));
31
+ }
32
+
33
+ export function findClosest(values: number[], currentValue: number) {
34
+ const { index: closestIndex } = values.reduce(
35
+ (acc, value, index) => {
36
+ const distance = Math.abs(currentValue - value);
37
+
38
+ if (
39
+ acc === null ||
40
+ distance < acc.distance ||
41
+ distance === acc.distance
42
+ ) {
43
+ return {
44
+ distance,
45
+ index,
46
+ };
47
+ }
48
+
49
+ return acc;
50
+ },
51
+ {
52
+ index: -1,
53
+ distance: Infinity,
54
+ },
55
+ );
56
+ return closestIndex;
57
+ }