@superdispatch/ui 0.21.6 → 0.21.13

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 (233) hide show
  1. package/.babelrc.js +5 -0
  2. package/.turbo/turbo-version.log +28 -0
  3. package/package.json +65 -39
  4. package/pkg/README.md +30 -0
  5. package/{dist-node → pkg/dist-node}/index.js +2 -1
  6. package/pkg/dist-node/index.js.map +1 -0
  7. package/{dist-src → pkg/dist-src}/number-field/NumberField.js +2 -1
  8. package/{dist-types → pkg/dist-types}/index.d.ts +364 -364
  9. package/{dist-web → pkg/dist-web}/index.js +2 -1
  10. package/pkg/dist-web/index.js.map +1 -0
  11. package/pkg/package.json +39 -0
  12. package/playroom.ts +31 -0
  13. package/src/__tests__/index.spec.ts +134 -0
  14. package/src/adaptive-toolbar/AdaptiveToolbar.stories.tsx +50 -0
  15. package/src/adaptive-toolbar/AdaptiveToolbar.tsx +199 -0
  16. package/src/adaptive-toolbar/__tests__/AdaptiveToolbar.spec.tsx +11 -0
  17. package/src/adaptive-vertical-toolbar/AdaptiveVerticalToolbar.stories.tsx +49 -0
  18. package/src/adaptive-vertical-toolbar/AdaptiveVerticalToolbar.tsx +171 -0
  19. package/src/app-bar/AppBar.stories.tsx +62 -0
  20. package/src/app-bar/AppBarOverrides.ts +9 -0
  21. package/src/app-bar/__tests__/AppBar.spec.tsx +86 -0
  22. package/src/autocomplete/Autocomplete.stories.tsx +76 -0
  23. package/src/autocomplete/AutocompleteOverrides.tsx +58 -0
  24. package/src/autocomplete/__tests__/Autocomplete.spec.tsx +323 -0
  25. package/src/avatar/Avatar.stories.tsx +17 -0
  26. package/src/avatar/AvatarOverrides.ts +24 -0
  27. package/src/avatar/__tests__/Avatar.spec.tsx +71 -0
  28. package/src/avatar-button/AvatarButton.stories.tsx +153 -0
  29. package/src/avatar-button/AvatarButton.tsx +223 -0
  30. package/src/avatar-button/__tests__/AvatarButton.spec.tsx +126 -0
  31. package/src/button/Button.tsx +51 -0
  32. package/src/button/ButtonOverrides.ts +375 -0
  33. package/src/button/__tests__/Button.spec.tsx +599 -0
  34. package/src/card/Card.stories.tsx +39 -0
  35. package/src/card/CardOverrides.ts +9 -0
  36. package/src/card/__tests__/Card.spec.tsx +68 -0
  37. package/src/card-button/CardButton.stories.tsx +36 -0
  38. package/src/card-button/CardButton.tsx +202 -0
  39. package/src/card-button/__tests__/CardButton.spec.tsx +95 -0
  40. package/src/checkbox/CheckboxField.stories.tsx +61 -0
  41. package/src/checkbox/CheckboxField.tsx +56 -0
  42. package/src/checkbox/CheckboxGroudField.tsx +53 -0
  43. package/src/checkbox/CheckboxOverrides.tsx +55 -0
  44. package/src/checkbox/__tests__/Checkbox.spec.tsx +105 -0
  45. package/src/chip/Chip.stories.tsx +26 -0
  46. package/src/chip/ChipOverrides.tsx +111 -0
  47. package/src/chip/__tests__/Chip.spec.tsx +308 -0
  48. package/src/columns/Column.tsx +124 -0
  49. package/src/columns/Columns.stories.tsx +426 -0
  50. package/src/columns/Columns.tsx +76 -0
  51. package/src/description-list/DescriptionList.spec.tsx +137 -0
  52. package/src/description-list/DescriptionList.stories.tsx +148 -0
  53. package/src/description-list/DescriptionList.tsx +170 -0
  54. package/src/dialog/Dialog.playroom.tsx +24 -0
  55. package/src/dialog/Dialog.stories.tsx +60 -0
  56. package/src/dialog/DialogOverrides.ts +39 -0
  57. package/src/dialog/__tests__/Dialog.spec.tsx +219 -0
  58. package/src/drawer/Drawer.playroom.tsx +22 -0
  59. package/src/drawer/Drawer.stories.tsx +194 -0
  60. package/src/drawer/DrawerActions.tsx +69 -0
  61. package/src/drawer/DrawerContent.tsx +30 -0
  62. package/src/drawer/DrawerList.tsx +60 -0
  63. package/src/drawer/DrawerOverrides.ts +19 -0
  64. package/src/drawer/DrawerTitle.tsx +143 -0
  65. package/src/drawer/__tests__/Drawer.spec.tsx +227 -0
  66. package/src/dropdown-button/DropdownButton.stories.tsx +15 -0
  67. package/src/dropdown-button/DropdownButton.tsx +131 -0
  68. package/src/grid/GridStack.tsx +45 -0
  69. package/src/grid/InlineGrid.tsx +56 -0
  70. package/src/icon-button/IconButton.stories.tsx +53 -0
  71. package/src/icon-button/IconButtonOverrides.ts +32 -0
  72. package/src/icon-button/__tests__/IconButton.spec.tsx +124 -0
  73. package/src/index.ts +47 -0
  74. package/src/info-card/InfoCard.stories.tsx +29 -0
  75. package/src/info-card/InfoCard.tsx +95 -0
  76. package/src/info-card/__tests__/InfoCard.spec.tsx +22 -0
  77. package/src/info-tooltip/InfoTooltip.stories.tsx +77 -0
  78. package/src/info-tooltip/InfoTooltip.tsx +72 -0
  79. package/src/info-tooltip/__tests__/InfoTooltip.spec.tsx +166 -0
  80. package/src/inline/Inline.stories.tsx +135 -0
  81. package/src/inline/Inline.tsx +144 -0
  82. package/src/link/Link.stories.tsx +41 -0
  83. package/src/link/LinkOverrides.ts +43 -0
  84. package/src/link/__tests__/Link.spec.tsx +98 -0
  85. package/src/list/ListOverrides.ts +11 -0
  86. package/src/list/__tests__/List.spec.tsx +182 -0
  87. package/src/menu/Menu.stories.tsx +35 -0
  88. package/src/menu/MenuOverrides.ts +17 -0
  89. package/src/menu/__tests__/Menu.spec.tsx +99 -0
  90. package/src/number-field/NumberField.stories.tsx +123 -0
  91. package/src/number-field/NumberField.tsx +98 -0
  92. package/src/overflow-text/OverflowText.stories.tsx +32 -0
  93. package/src/overflow-text/OverflowText.tsx +114 -0
  94. package/src/overflow-text/__tests__/OverflowText.spec.tsx +24 -0
  95. package/src/pagination/Pagination.stories.tsx +36 -0
  96. package/src/pagination/PaginationOverrides.ts +47 -0
  97. package/src/pagination/__tests__/Pagination.spec.tsx +228 -0
  98. package/src/paper/PaperOverrides.ts +10 -0
  99. package/src/paper/__tests__/Paper.spec.tsx +155 -0
  100. package/src/props/AlignProps.ts +22 -0
  101. package/src/props/CollapseProp.ts +13 -0
  102. package/src/props/ResponsiveProp.ts +65 -0
  103. package/src/props/SpaceProp.ts +40 -0
  104. package/src/radio/RadioField.stories.tsx +42 -0
  105. package/src/radio/RadioField.tsx +55 -0
  106. package/src/radio/RadioGroupField.tsx +64 -0
  107. package/src/radio/RadioOverrides.tsx +51 -0
  108. package/src/radio/__tests__/Radio.spec.tsx +90 -0
  109. package/src/responsive/CollapseBreakpoint.ts +21 -0
  110. package/src/responsive/MinBreakpoint.ts +21 -0
  111. package/src/responsive/ResponsiveContext.tsx +57 -0
  112. package/src/snackbar/Snackbar.stories.tsx +196 -0
  113. package/src/snackbar/Snackbar.tsx +83 -0
  114. package/src/snackbar/SnackbarContent.tsx +147 -0
  115. package/src/snackbar/SnackbarOverrides.ts +23 -0
  116. package/src/snackbar/SnackbarStack.tsx +160 -0
  117. package/src/snackbar/__tests__/Snackbar.spec.tsx +196 -0
  118. package/src/stack/Stack.stories.tsx +113 -0
  119. package/src/stack/Stack.tsx +86 -0
  120. package/src/svg-icon/SvgIcon.stories.tsx +29 -0
  121. package/src/svg-icon/SvgIconOverrides.ts +32 -0
  122. package/src/svg-icon/__tests__/SvgIcon.spec.tsx +67 -0
  123. package/src/switch/Switch.stories.tsx +60 -0
  124. package/src/switch/SwitchOverrides.ts +88 -0
  125. package/src/switch/__tests__/Switch.spec.tsx +204 -0
  126. package/src/tabs/Tabs.stories.tsx +40 -0
  127. package/src/tabs/TabsOverrides.ts +45 -0
  128. package/src/tabs/__tests__/Tabs.spec.tsx +226 -0
  129. package/src/tag/Tag.stories.tsx +53 -0
  130. package/src/tag/Tag.tsx +130 -0
  131. package/src/tag/__tests__/Tag.spec.tsx +82 -0
  132. package/src/text-field/TextField.stories.tsx +50 -0
  133. package/src/text-field/TextFieldOverrides.tsx +149 -0
  134. package/src/text-field/__tests__/TextField.spec.tsx +662 -0
  135. package/src/theme/Color.ts +117 -0
  136. package/src/theme/SuperDispatchTheme.ts +3 -0
  137. package/src/theme/ThemeProvider.tsx +179 -0
  138. package/src/theme/__tests__/CssBaseline.spec.tsx +49 -0
  139. package/src/theme/__tests__/ThemeProvider.spec.ts +40 -0
  140. package/src/theme/__tests__/__snapshots__/ThemeProvider.spec.ts.snap +204 -0
  141. package/src/tiles/Tiles.stories.tsx +69 -0
  142. package/src/tiles/Tiles.tsx +163 -0
  143. package/src/tiles/__tests__/Tiles.spec.tsx +221 -0
  144. package/src/toolbar/ToolbarOverrides.ts +14 -0
  145. package/src/toolbar/__tests__/Toolbar.spec.tsx +50 -0
  146. package/src/tooltip/Tooltip.stories.tsx +32 -0
  147. package/src/tooltip/TooltipOverrides.ts +34 -0
  148. package/src/tooltip/__tests__/Tooltip.spec.tsx +182 -0
  149. package/src/typography/Typography.stories.tsx +132 -0
  150. package/src/typography/TypographyOverrides.ts +125 -0
  151. package/src/typography/__tests__/Typography.spec.tsx +253 -0
  152. package/src/utils/ExitTransitionPlaceholder.tsx +22 -0
  153. package/src/utils/ResizeObserver.tsx +28 -0
  154. package/src/utils/VisibilityObserver.tsx +75 -0
  155. package/src/utils/__tests__/ExitTransitionPlaceholder.spec.tsx +34 -0
  156. package/src/utils/isEmptyReactNode.ts +11 -0
  157. package/src/utils/mergeRefs.ts +21 -0
  158. package/src/utils/renderChildren.ts +10 -0
  159. package/src/utils/useUID.ts +9 -0
  160. package/tsconfig.json +19 -0
  161. package/LICENSE +0 -21
  162. package/dist-node/index.js.map +0 -1
  163. package/dist-web/index.js.map +0 -1
  164. /package/{dist-src → pkg/dist-src}/adaptive-toolbar/AdaptiveToolbar.js +0 -0
  165. /package/{dist-src → pkg/dist-src}/adaptive-vertical-toolbar/AdaptiveVerticalToolbar.js +0 -0
  166. /package/{dist-src → pkg/dist-src}/app-bar/AppBarOverrides.js +0 -0
  167. /package/{dist-src → pkg/dist-src}/autocomplete/AutocompleteOverrides.js +0 -0
  168. /package/{dist-src → pkg/dist-src}/avatar/AvatarOverrides.js +0 -0
  169. /package/{dist-src → pkg/dist-src}/avatar-button/AvatarButton.js +0 -0
  170. /package/{dist-src → pkg/dist-src}/button/Button.js +0 -0
  171. /package/{dist-src → pkg/dist-src}/button/ButtonOverrides.js +0 -0
  172. /package/{dist-src → pkg/dist-src}/card/CardOverrides.js +0 -0
  173. /package/{dist-src → pkg/dist-src}/card-button/CardButton.js +0 -0
  174. /package/{dist-src → pkg/dist-src}/checkbox/CheckboxField.js +0 -0
  175. /package/{dist-src → pkg/dist-src}/checkbox/CheckboxGroudField.js +0 -0
  176. /package/{dist-src → pkg/dist-src}/checkbox/CheckboxOverrides.js +0 -0
  177. /package/{dist-src → pkg/dist-src}/chip/ChipOverrides.js +0 -0
  178. /package/{dist-src → pkg/dist-src}/columns/Column.js +0 -0
  179. /package/{dist-src → pkg/dist-src}/columns/Columns.js +0 -0
  180. /package/{dist-src → pkg/dist-src}/description-list/DescriptionList.js +0 -0
  181. /package/{dist-src → pkg/dist-src}/dialog/DialogOverrides.js +0 -0
  182. /package/{dist-src → pkg/dist-src}/drawer/DrawerActions.js +0 -0
  183. /package/{dist-src → pkg/dist-src}/drawer/DrawerContent.js +0 -0
  184. /package/{dist-src → pkg/dist-src}/drawer/DrawerList.js +0 -0
  185. /package/{dist-src → pkg/dist-src}/drawer/DrawerOverrides.js +0 -0
  186. /package/{dist-src → pkg/dist-src}/drawer/DrawerTitle.js +0 -0
  187. /package/{dist-src → pkg/dist-src}/dropdown-button/DropdownButton.js +0 -0
  188. /package/{dist-src → pkg/dist-src}/grid/GridStack.js +0 -0
  189. /package/{dist-src → pkg/dist-src}/grid/InlineGrid.js +0 -0
  190. /package/{dist-src → pkg/dist-src}/icon-button/IconButtonOverrides.js +0 -0
  191. /package/{dist-src → pkg/dist-src}/index.js +0 -0
  192. /package/{dist-src → pkg/dist-src}/info-card/InfoCard.js +0 -0
  193. /package/{dist-src → pkg/dist-src}/inline/Inline.js +0 -0
  194. /package/{dist-src → pkg/dist-src}/link/LinkOverrides.js +0 -0
  195. /package/{dist-src → pkg/dist-src}/list/ListOverrides.js +0 -0
  196. /package/{dist-src → pkg/dist-src}/menu/MenuOverrides.js +0 -0
  197. /package/{dist-src → pkg/dist-src}/overflow-text/OverflowText.js +0 -0
  198. /package/{dist-src → pkg/dist-src}/pagination/PaginationOverrides.js +0 -0
  199. /package/{dist-src → pkg/dist-src}/paper/PaperOverrides.js +0 -0
  200. /package/{dist-src → pkg/dist-src}/props/AlignProps.js +0 -0
  201. /package/{dist-src → pkg/dist-src}/props/CollapseProp.js +0 -0
  202. /package/{dist-src → pkg/dist-src}/props/ResponsiveProp.js +0 -0
  203. /package/{dist-src → pkg/dist-src}/props/SpaceProp.js +0 -0
  204. /package/{dist-src → pkg/dist-src}/radio/RadioField.js +0 -0
  205. /package/{dist-src → pkg/dist-src}/radio/RadioGroupField.js +0 -0
  206. /package/{dist-src → pkg/dist-src}/radio/RadioOverrides.js +0 -0
  207. /package/{dist-src → pkg/dist-src}/responsive/CollapseBreakpoint.js +0 -0
  208. /package/{dist-src → pkg/dist-src}/responsive/MinBreakpoint.js +0 -0
  209. /package/{dist-src → pkg/dist-src}/responsive/ResponsiveContext.js +0 -0
  210. /package/{dist-src → pkg/dist-src}/snackbar/Snackbar.js +0 -0
  211. /package/{dist-src → pkg/dist-src}/snackbar/SnackbarContent.js +0 -0
  212. /package/{dist-src → pkg/dist-src}/snackbar/SnackbarOverrides.js +0 -0
  213. /package/{dist-src → pkg/dist-src}/snackbar/SnackbarStack.js +0 -0
  214. /package/{dist-src → pkg/dist-src}/stack/Stack.js +0 -0
  215. /package/{dist-src → pkg/dist-src}/svg-icon/SvgIconOverrides.js +0 -0
  216. /package/{dist-src → pkg/dist-src}/switch/SwitchOverrides.js +0 -0
  217. /package/{dist-src → pkg/dist-src}/tabs/TabsOverrides.js +0 -0
  218. /package/{dist-src → pkg/dist-src}/tag/Tag.js +0 -0
  219. /package/{dist-src → pkg/dist-src}/text-field/TextFieldOverrides.js +0 -0
  220. /package/{dist-src → pkg/dist-src}/theme/Color.js +0 -0
  221. /package/{dist-src → pkg/dist-src}/theme/SuperDispatchTheme.js +0 -0
  222. /package/{dist-src → pkg/dist-src}/theme/ThemeProvider.js +0 -0
  223. /package/{dist-src → pkg/dist-src}/tiles/Tiles.js +0 -0
  224. /package/{dist-src → pkg/dist-src}/toolbar/ToolbarOverrides.js +0 -0
  225. /package/{dist-src → pkg/dist-src}/tooltip/TooltipOverrides.js +0 -0
  226. /package/{dist-src → pkg/dist-src}/typography/TypographyOverrides.js +0 -0
  227. /package/{dist-src → pkg/dist-src}/utils/ExitTransitionPlaceholder.js +0 -0
  228. /package/{dist-src → pkg/dist-src}/utils/ResizeObserver.js +0 -0
  229. /package/{dist-src → pkg/dist-src}/utils/VisibilityObserver.js +0 -0
  230. /package/{dist-src → pkg/dist-src}/utils/isEmptyReactNode.js +0 -0
  231. /package/{dist-src → pkg/dist-src}/utils/mergeRefs.js +0 -0
  232. /package/{dist-src → pkg/dist-src}/utils/renderChildren.js +0 -0
  233. /package/{dist-src → pkg/dist-src}/utils/useUID.js +0 -0
@@ -0,0 +1,163 @@
1
+ import { ClassNameMap, CSSProperties, makeStyles } from '@material-ui/styles';
2
+ import clsx from 'clsx';
3
+ import { forwardRef, ReactNode } from 'react';
4
+ import flattenChildren from 'react-keyed-flatten-children';
5
+ import {
6
+ ResponsivePropRecord,
7
+ useResponsivePropRecord,
8
+ } from '../props/ResponsiveProp';
9
+ import { SuperDispatchTheme } from '../theme/SuperDispatchTheme';
10
+
11
+ const PREVENT_COLLAPSE = 1;
12
+
13
+ type TilesClassKey =
14
+ | 'root'
15
+ | 'container'
16
+ | 'child'
17
+ | 'childContainer'
18
+ | 'space1'
19
+ | 'space2'
20
+ | 'space3'
21
+ | 'space4'
22
+ | 'space5'
23
+ | 'space6'
24
+ | 'space7'
25
+ | 'space8'
26
+ | 'space9'
27
+ | 'space10'
28
+ | 'columns1'
29
+ | 'columns2'
30
+ | 'columns3'
31
+ | 'columns4'
32
+ | 'columns5'
33
+ | 'columns6';
34
+ export type TilesSpace = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
35
+ export type TilesColumns = 1 | 2 | 3 | 4 | 5 | 6;
36
+
37
+ function spaceVariant(
38
+ theme: SuperDispatchTheme,
39
+ space: TilesSpace,
40
+ ): CSSProperties {
41
+ const gap = theme.spacing(space);
42
+
43
+ return {
44
+ '&:before': {
45
+ marginTop: -gap - PREVENT_COLLAPSE,
46
+ },
47
+
48
+ '& > $container': {
49
+ marginLeft: -gap,
50
+
51
+ '& > $child > $childContainer': {
52
+ marginTop: gap,
53
+ marginLeft: gap,
54
+ },
55
+ },
56
+ };
57
+ }
58
+
59
+ function columnVariant(columns: TilesColumns): CSSProperties {
60
+ return {
61
+ flex: `0 0 ${100 / columns}%`,
62
+ };
63
+ }
64
+
65
+ const useStyles = makeStyles<
66
+ SuperDispatchTheme,
67
+ { classes?: Partial<ClassNameMap<TilesClassKey>> },
68
+ TilesClassKey
69
+ >(
70
+ (theme) => ({
71
+ root: {
72
+ paddingTop: PREVENT_COLLAPSE,
73
+
74
+ '&:before': {
75
+ content: '""',
76
+ display: 'block',
77
+ marginTop: -PREVENT_COLLAPSE,
78
+ },
79
+ },
80
+
81
+ container: {
82
+ display: 'flex',
83
+ flexWrap: 'wrap',
84
+ },
85
+
86
+ child: {
87
+ minWidth: 0,
88
+ },
89
+
90
+ childContainer: {
91
+ height: '100%',
92
+ },
93
+
94
+ space1: spaceVariant(theme, 1),
95
+ space2: spaceVariant(theme, 2),
96
+ space3: spaceVariant(theme, 3),
97
+ space4: spaceVariant(theme, 4),
98
+ space5: spaceVariant(theme, 5),
99
+ space6: spaceVariant(theme, 6),
100
+ space7: spaceVariant(theme, 7),
101
+ space8: spaceVariant(theme, 8),
102
+ space9: spaceVariant(theme, 9),
103
+ space10: spaceVariant(theme, 10),
104
+
105
+ columns1: columnVariant(1),
106
+ columns2: columnVariant(2),
107
+ columns3: columnVariant(3),
108
+ columns4: columnVariant(4),
109
+ columns5: columnVariant(5),
110
+ columns6: columnVariant(6),
111
+ }),
112
+ { name: 'SD-Tiles' },
113
+ );
114
+
115
+ export interface TilesProps {
116
+ children?: ReactNode;
117
+ space?: ResponsivePropRecord<TilesSpace>;
118
+ columns?: ResponsivePropRecord<TilesColumns>;
119
+ }
120
+
121
+ export const Tiles = forwardRef<HTMLDivElement, TilesProps>(
122
+ ({ children, space: spaceProp = 1, columns: columnsProp = 1 }, ref) => {
123
+ const styles = useStyles({});
124
+ const space = useResponsivePropRecord(spaceProp);
125
+ const columns = useResponsivePropRecord(columnsProp);
126
+
127
+ return (
128
+ <div
129
+ ref={ref}
130
+ className={clsx(styles.root, {
131
+ [styles.space1]: space === 1,
132
+ [styles.space2]: space === 2,
133
+ [styles.space3]: space === 3,
134
+ [styles.space4]: space === 4,
135
+ [styles.space5]: space === 5,
136
+ [styles.space6]: space === 6,
137
+ [styles.space7]: space === 7,
138
+ [styles.space8]: space === 8,
139
+ [styles.space9]: space === 9,
140
+ [styles.space10]: space === 10,
141
+ })}
142
+ >
143
+ <div className={styles.container}>
144
+ {flattenChildren(children).map((child, idx) => (
145
+ <div
146
+ key={idx}
147
+ className={clsx(styles.child, {
148
+ [styles.columns1]: columns === 1,
149
+ [styles.columns2]: columns === 2,
150
+ [styles.columns3]: columns === 3,
151
+ [styles.columns4]: columns === 4,
152
+ [styles.columns5]: columns === 5,
153
+ [styles.columns6]: columns === 6,
154
+ })}
155
+ >
156
+ <div className={styles.childContainer}>{child}</div>
157
+ </div>
158
+ ))}
159
+ </div>
160
+ </div>
161
+ );
162
+ },
163
+ );
@@ -0,0 +1,221 @@
1
+ import { renderCSS } from '@superdispatch/ui-testutils';
2
+ import { Tiles } from '../Tiles';
3
+
4
+ it('checks component css', () => {
5
+ expect(
6
+ renderCSS(
7
+ <Tiles space={1}>
8
+ <div />
9
+ <div />
10
+ </Tiles>,
11
+ ['SD-Tiles'],
12
+ ),
13
+ ).toMatchInlineSnapshot(`
14
+ .SD-Tiles-root {
15
+ padding-top: 1px;
16
+ }
17
+
18
+ .SD-Tiles-root:before {
19
+ content: '';
20
+ display: block;
21
+ margin-top: -1px;
22
+ }
23
+
24
+ .SD-Tiles-container {
25
+ display: flex;
26
+ flex-wrap: wrap;
27
+ }
28
+
29
+ .SD-Tiles-child {
30
+ min-width: 0;
31
+ }
32
+
33
+ .SD-Tiles-childContainer {
34
+ height: 100%;
35
+ }
36
+
37
+ .SD-Tiles-space1:before {
38
+ margin-top: -9px;
39
+ }
40
+
41
+ .SD-Tiles-space1 > .SD-Tiles-container {
42
+ margin-left: -8px;
43
+ }
44
+
45
+ .SD-Tiles-space1
46
+ > .SD-Tiles-container
47
+ > .SD-Tiles-child
48
+ > .SD-Tiles-childContainer {
49
+ margin-top: 8px;
50
+ margin-left: 8px;
51
+ }
52
+
53
+ .SD-Tiles-space2:before {
54
+ margin-top: -17px;
55
+ }
56
+
57
+ .SD-Tiles-space2 > .SD-Tiles-container {
58
+ margin-left: -16px;
59
+ }
60
+
61
+ .SD-Tiles-space2
62
+ > .SD-Tiles-container
63
+ > .SD-Tiles-child
64
+ > .SD-Tiles-childContainer {
65
+ margin-top: 16px;
66
+ margin-left: 16px;
67
+ }
68
+
69
+ .SD-Tiles-space3:before {
70
+ margin-top: -25px;
71
+ }
72
+
73
+ .SD-Tiles-space3 > .SD-Tiles-container {
74
+ margin-left: -24px;
75
+ }
76
+
77
+ .SD-Tiles-space3
78
+ > .SD-Tiles-container
79
+ > .SD-Tiles-child
80
+ > .SD-Tiles-childContainer {
81
+ margin-top: 24px;
82
+ margin-left: 24px;
83
+ }
84
+
85
+ .SD-Tiles-space4:before {
86
+ margin-top: -33px;
87
+ }
88
+
89
+ .SD-Tiles-space4 > .SD-Tiles-container {
90
+ margin-left: -32px;
91
+ }
92
+
93
+ .SD-Tiles-space4
94
+ > .SD-Tiles-container
95
+ > .SD-Tiles-child
96
+ > .SD-Tiles-childContainer {
97
+ margin-top: 32px;
98
+ margin-left: 32px;
99
+ }
100
+
101
+ .SD-Tiles-space5:before {
102
+ margin-top: -41px;
103
+ }
104
+
105
+ .SD-Tiles-space5 > .SD-Tiles-container {
106
+ margin-left: -40px;
107
+ }
108
+
109
+ .SD-Tiles-space5
110
+ > .SD-Tiles-container
111
+ > .SD-Tiles-child
112
+ > .SD-Tiles-childContainer {
113
+ margin-top: 40px;
114
+ margin-left: 40px;
115
+ }
116
+
117
+ .SD-Tiles-space6:before {
118
+ margin-top: -49px;
119
+ }
120
+
121
+ .SD-Tiles-space6 > .SD-Tiles-container {
122
+ margin-left: -48px;
123
+ }
124
+
125
+ .SD-Tiles-space6
126
+ > .SD-Tiles-container
127
+ > .SD-Tiles-child
128
+ > .SD-Tiles-childContainer {
129
+ margin-top: 48px;
130
+ margin-left: 48px;
131
+ }
132
+
133
+ .SD-Tiles-space7:before {
134
+ margin-top: -57px;
135
+ }
136
+
137
+ .SD-Tiles-space7 > .SD-Tiles-container {
138
+ margin-left: -56px;
139
+ }
140
+
141
+ .SD-Tiles-space7
142
+ > .SD-Tiles-container
143
+ > .SD-Tiles-child
144
+ > .SD-Tiles-childContainer {
145
+ margin-top: 56px;
146
+ margin-left: 56px;
147
+ }
148
+
149
+ .SD-Tiles-space8:before {
150
+ margin-top: -65px;
151
+ }
152
+
153
+ .SD-Tiles-space8 > .SD-Tiles-container {
154
+ margin-left: -64px;
155
+ }
156
+
157
+ .SD-Tiles-space8
158
+ > .SD-Tiles-container
159
+ > .SD-Tiles-child
160
+ > .SD-Tiles-childContainer {
161
+ margin-top: 64px;
162
+ margin-left: 64px;
163
+ }
164
+
165
+ .SD-Tiles-space9:before {
166
+ margin-top: -73px;
167
+ }
168
+
169
+ .SD-Tiles-space9 > .SD-Tiles-container {
170
+ margin-left: -72px;
171
+ }
172
+
173
+ .SD-Tiles-space9
174
+ > .SD-Tiles-container
175
+ > .SD-Tiles-child
176
+ > .SD-Tiles-childContainer {
177
+ margin-top: 72px;
178
+ margin-left: 72px;
179
+ }
180
+
181
+ .SD-Tiles-space10:before {
182
+ margin-top: -81px;
183
+ }
184
+
185
+ .SD-Tiles-space10 > .SD-Tiles-container {
186
+ margin-left: -80px;
187
+ }
188
+
189
+ .SD-Tiles-space10
190
+ > .SD-Tiles-container
191
+ > .SD-Tiles-child
192
+ > .SD-Tiles-childContainer {
193
+ margin-top: 80px;
194
+ margin-left: 80px;
195
+ }
196
+
197
+ .SD-Tiles-columns1 {
198
+ flex: 0 0 100%;
199
+ }
200
+
201
+ .SD-Tiles-columns2 {
202
+ flex: 0 0 50%;
203
+ }
204
+
205
+ .SD-Tiles-columns3 {
206
+ flex: 0 0 33.333333333333336%;
207
+ }
208
+
209
+ .SD-Tiles-columns4 {
210
+ flex: 0 0 25%;
211
+ }
212
+
213
+ .SD-Tiles-columns5 {
214
+ flex: 0 0 20%;
215
+ }
216
+
217
+ .SD-Tiles-columns6 {
218
+ flex: 0 0 16.666666666666668%;
219
+ }
220
+ `);
221
+ });
@@ -0,0 +1,14 @@
1
+ import { SuperDispatchTheme } from '../theme/SuperDispatchTheme';
2
+
3
+ export function overrideToolbar(theme: SuperDispatchTheme): void {
4
+ theme.overrides.MuiToolbar = {
5
+ regular: { minHeight: theme.spacing(8) },
6
+
7
+ gutters: {
8
+ [theme.breakpoints.up('sm')]: {
9
+ paddingLeft: theme.spacing(2),
10
+ paddingRight: theme.spacing(2),
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,50 @@
1
+ import { Toolbar } from '@material-ui/core';
2
+ import { renderCSS, renderTheme } from '@superdispatch/ui-testutils';
3
+
4
+ it('checks default props', () => {
5
+ const { props } = renderTheme();
6
+
7
+ expect(props.MuiToolbar).toMatchInlineSnapshot(`undefined`);
8
+ });
9
+
10
+ it('checks component css', () => {
11
+ expect(renderCSS(<Toolbar />, ['MuiToolbar'])).toMatchInlineSnapshot(`
12
+ .MuiToolbar-root {
13
+ display: flex;
14
+ position: relative;
15
+ align-items: center;
16
+ }
17
+
18
+ .MuiToolbar-gutters {
19
+ padding-left: 16px;
20
+ padding-right: 16px;
21
+ }
22
+
23
+ @media (min-width: 600px) {
24
+ .MuiToolbar-gutters {
25
+ padding-left: 16px;
26
+ padding-right: 16px;
27
+ }
28
+ }
29
+
30
+ .MuiToolbar-regular {
31
+ min-height: 64px;
32
+ }
33
+
34
+ @media (min-width: 0px) and (orientation: landscape) {
35
+ .MuiToolbar-regular {
36
+ min-height: 48px;
37
+ }
38
+ }
39
+
40
+ @media (min-width: 600px) {
41
+ .MuiToolbar-regular {
42
+ min-height: 64px;
43
+ }
44
+ }
45
+
46
+ .MuiToolbar-dense {
47
+ min-height: 48px;
48
+ }
49
+ `);
50
+ });
@@ -0,0 +1,32 @@
1
+ import { Button, Tooltip } from '@material-ui/core';
2
+ import { PropsLink } from '@superdispatch/ui-docs';
3
+ import { Inline } from '../inline/Inline';
4
+
5
+ export default {
6
+ title: 'Data Display/Tooltip',
7
+ parameters: {
8
+ componentSubtitle: (
9
+ <PropsLink url="https://material-ui.com/api/tooltip/#props" />
10
+ ),
11
+ },
12
+ };
13
+
14
+ export const basic = () => (
15
+ <Inline>
16
+ <Tooltip title="Default">
17
+ <Button>Default</Button>
18
+ </Tooltip>
19
+
20
+ <Tooltip title="Left" placement="left">
21
+ <Button>Left</Button>
22
+ </Tooltip>
23
+
24
+ <Tooltip title="Top" placement="top">
25
+ <Button>Top</Button>
26
+ </Tooltip>
27
+
28
+ <Tooltip title="Right" placement="right">
29
+ <Button>Right</Button>
30
+ </Tooltip>
31
+ </Inline>
32
+ );
@@ -0,0 +1,34 @@
1
+ import { Color } from '../theme/Color';
2
+ import { SuperDispatchTheme } from '../theme/SuperDispatchTheme';
3
+
4
+ export function overrideTooltip(theme: SuperDispatchTheme): void {
5
+ theme.props.MuiTooltip = { arrow: true };
6
+
7
+ theme.overrides.MuiTooltip = {
8
+ tooltip: {
9
+ ...theme.typography.body2,
10
+ padding: theme.spacing(1, 1.5),
11
+ backgroundColor: Color.Dark400,
12
+ },
13
+
14
+ popperArrow: {
15
+ '&[x-placement*="top"] $arrow': {
16
+ '&::before': { borderBottomRightRadius: 2 },
17
+ },
18
+ '&[x-placement*="left"] $arrow': {
19
+ '&::before': { borderTopRightRadius: 2 },
20
+ },
21
+ '&[x-placement*="right"] $arrow': {
22
+ '&::before': { borderBottomLeftRadius: 2 },
23
+ },
24
+ '&[x-placement*="bottom"] $arrow': {
25
+ '&::before': { borderTopLeftRadius: 2 },
26
+ },
27
+ },
28
+
29
+ arrow: {
30
+ color: Color.Dark400,
31
+ fontSize: theme.spacing(1),
32
+ },
33
+ };
34
+ }
@@ -0,0 +1,182 @@
1
+ import { Tooltip } from '@material-ui/core';
2
+ import { renderCSS, renderTheme } from '@superdispatch/ui-testutils';
3
+
4
+ it('checks default props', () => {
5
+ const { props } = renderTheme();
6
+
7
+ expect(props.MuiTooltip).toMatchInlineSnapshot(`
8
+ Object {
9
+ "arrow": true,
10
+ }
11
+ `);
12
+ });
13
+
14
+ it('checks component css', () => {
15
+ expect(
16
+ renderCSS(
17
+ <Tooltip title="text">
18
+ <div />
19
+ </Tooltip>,
20
+ ['MuiTooltip'],
21
+ ),
22
+ ).toMatchInlineSnapshot(`
23
+ .MuiTooltip-popper {
24
+ z-index: 1500;
25
+ pointer-events: none;
26
+ }
27
+
28
+ .MuiTooltip-popperInteractive {
29
+ pointer-events: auto;
30
+ }
31
+
32
+ .MuiTooltip-popperArrow[x-placement*='bottom'] .MuiTooltip-arrow {
33
+ top: 0;
34
+ left: 0;
35
+ margin-top: -0.71em;
36
+ margin-left: 4px;
37
+ margin-right: 4px;
38
+ }
39
+
40
+ .MuiTooltip-popperArrow[x-placement*='top'] .MuiTooltip-arrow {
41
+ left: 0;
42
+ bottom: 0;
43
+ margin-left: 4px;
44
+ margin-right: 4px;
45
+ margin-bottom: -0.71em;
46
+ }
47
+
48
+ .MuiTooltip-popperArrow[x-placement*='right'] .MuiTooltip-arrow {
49
+ left: 0;
50
+ width: 0.71em;
51
+ height: 1em;
52
+ margin-top: 4px;
53
+ margin-left: -0.71em;
54
+ margin-bottom: 4px;
55
+ }
56
+
57
+ .MuiTooltip-popperArrow[x-placement*='left'] .MuiTooltip-arrow {
58
+ right: 0;
59
+ width: 0.71em;
60
+ height: 1em;
61
+ margin-top: 4px;
62
+ margin-right: -0.71em;
63
+ margin-bottom: 4px;
64
+ }
65
+
66
+ .MuiTooltip-popperArrow[x-placement*='left'] .MuiTooltip-arrow::before {
67
+ transform-origin: 0 0;
68
+ border-top-right-radius: 2px;
69
+ }
70
+
71
+ .MuiTooltip-popperArrow[x-placement*='right'] .MuiTooltip-arrow::before {
72
+ transform-origin: 100% 100%;
73
+ border-bottom-left-radius: 2px;
74
+ }
75
+
76
+ .MuiTooltip-popperArrow[x-placement*='top'] .MuiTooltip-arrow::before {
77
+ transform-origin: 100% 0;
78
+ border-bottom-right-radius: 2px;
79
+ }
80
+
81
+ .MuiTooltip-popperArrow[x-placement*='bottom'] .MuiTooltip-arrow::before {
82
+ transform-origin: 0 100%;
83
+ border-top-left-radius: 2px;
84
+ }
85
+
86
+ .MuiTooltip-tooltip {
87
+ color: Color.White;
88
+ padding: 8px 12px;
89
+ font-size: 14px;
90
+ max-width: 300px;
91
+ word-wrap: break-word;
92
+ font-family: 'Inter', sans-serif;
93
+ font-weight: 400;
94
+ line-height: 20px;
95
+ border-radius: 4px;
96
+ background-color: Color.Dark400;
97
+ }
98
+
99
+ @media (min-width: 0px) and (max-width: 599.95px) {
100
+ .MuiTooltip-tooltip {
101
+ font-size: 16px;
102
+ line-height: 24px;
103
+ }
104
+ }
105
+
106
+ .MuiTooltip-tooltipArrow {
107
+ margin: 0;
108
+ position: relative;
109
+ }
110
+
111
+ .MuiTooltip-arrow {
112
+ color: Color.Dark400;
113
+ width: 1em;
114
+ height: 0.71em;
115
+ overflow: hidden;
116
+ position: absolute;
117
+ font-size: 8px;
118
+ box-sizing: border-box;
119
+ }
120
+
121
+ .MuiTooltip-arrow::before {
122
+ width: 100%;
123
+ height: 100%;
124
+ margin: auto;
125
+ content: '';
126
+ display: block;
127
+ transform: rotate(45deg);
128
+ background-color: currentColor;
129
+ }
130
+
131
+ .MuiTooltip-touch {
132
+ padding: 8px 16px;
133
+ font-size: 0.875rem;
134
+ font-weight: 400;
135
+ line-height: 1.14286em;
136
+ }
137
+
138
+ .MuiTooltip-tooltipPlacementLeft {
139
+ margin: 0 24px;
140
+ transform-origin: right center;
141
+ }
142
+
143
+ @media (min-width: 600px) {
144
+ .MuiTooltip-tooltipPlacementLeft {
145
+ margin: 0 14px;
146
+ }
147
+ }
148
+
149
+ .MuiTooltip-tooltipPlacementRight {
150
+ margin: 0 24px;
151
+ transform-origin: left center;
152
+ }
153
+
154
+ @media (min-width: 600px) {
155
+ .MuiTooltip-tooltipPlacementRight {
156
+ margin: 0 14px;
157
+ }
158
+ }
159
+
160
+ .MuiTooltip-tooltipPlacementTop {
161
+ margin: 24px 0;
162
+ transform-origin: center bottom;
163
+ }
164
+
165
+ @media (min-width: 600px) {
166
+ .MuiTooltip-tooltipPlacementTop {
167
+ margin: 14px 0;
168
+ }
169
+ }
170
+
171
+ .MuiTooltip-tooltipPlacementBottom {
172
+ margin: 24px 0;
173
+ transform-origin: center top;
174
+ }
175
+
176
+ @media (min-width: 600px) {
177
+ .MuiTooltip-tooltipPlacementBottom {
178
+ margin: 14px 0;
179
+ }
180
+ }
181
+ `);
182
+ });