@amboss/design-system 1.5.19 → 1.5.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build-tokens/_breakpoints.json.js +23 -0
- package/build/build-tokens/_breakpoints.json.js.map +1 -0
- package/build/build-tokens/_icon_sizes_map.json.js +8 -0
- package/build/build-tokens/_icon_sizes_map.json.js.map +1 -0
- package/build/build-tokens/assets/icons.json.js +199 -0
- package/build/build-tokens/assets/icons.json.js.map +1 -0
- package/build/build-tokens/assets/icons16.json.js +214 -0
- package/build/build-tokens/assets/icons16.json.js.map +1 -0
- package/build/build-tokens/assets/logo.json +1 -1
- package/build/build-tokens/assets/logo.json.js +6 -0
- package/build/build-tokens/assets/logo.json.js.map +1 -0
- package/build/build-tokens/visualConfig.js +1417 -0
- package/build/build-tokens/visualConfig.js.map +1 -0
- package/build/node_modules/tslib/tslib.es6.js +29 -0
- package/build/node_modules/tslib/tslib.es6.js.map +1 -0
- package/build/src/components/Badge/Badge.js +36 -0
- package/build/src/components/Badge/Badge.js.map +1 -0
- package/build/src/components/Box/Box.js +30 -0
- package/build/src/components/Box/Box.js.map +1 -0
- package/build/src/components/Button/Button.js +116 -0
- package/build/src/components/Button/Button.js.map +1 -0
- package/build/src/components/Card/Card.js +30 -0
- package/build/src/components/Card/Card.js.map +1 -0
- package/build/src/components/Card/CardBox.js +9 -0
- package/build/src/components/Card/CardBox.js.map +1 -0
- package/build/src/components/Card/CardHeader/CardHeader.js +30 -0
- package/build/src/components/Card/CardHeader/CardHeader.js.map +1 -0
- package/build/src/components/Collapsible/Collapsible.js +44 -0
- package/build/src/components/Collapsible/Collapsible.js.map +1 -0
- package/build/src/components/Column/Columns.js +78 -0
- package/build/src/components/Column/Columns.js.map +1 -0
- package/build/src/components/Container/Container.js +30 -0
- package/build/src/components/Container/Container.js.map +1 -0
- package/build/src/components/Divider/Divider.js +33 -0
- package/build/src/components/Divider/Divider.js.map +1 -0
- package/build/src/components/DropdownMenu/DropdownMenu.js +128 -0
- package/build/src/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/build/src/components/DropdownMenu/MenuItem.js +37 -0
- package/build/src/components/DropdownMenu/MenuItem.js.map +1 -0
- package/build/src/components/Form/Checkbox/Checkbox.js +86 -0
- package/build/src/components/Form/Checkbox/Checkbox.js.map +1 -0
- package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js +10 -0
- package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js.map +1 -0
- package/build/src/components/Form/FormField/FormField.js +26 -0
- package/build/src/components/Form/FormField/FormField.js.map +1 -0
- package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js +22 -0
- package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js.map +1 -0
- package/build/src/components/Form/FormLabelText/FormLabelText.js +22 -0
- package/build/src/components/Form/FormLabelText/FormLabelText.js.map +1 -0
- package/build/src/components/Form/Input/Input.js +81 -0
- package/build/src/components/Form/Input/Input.js.map +1 -0
- package/build/src/components/Form/PasswordInput/PasswordInput.js +126 -0
- package/build/src/components/Form/PasswordInput/PasswordInput.js.map +1 -0
- package/build/src/components/Form/Radio/Radio.js +82 -0
- package/build/src/components/Form/Radio/Radio.js.map +1 -0
- package/build/src/components/Form/RadioButton/RadioButton.js +87 -0
- package/build/src/components/Form/RadioButton/RadioButton.js.map +1 -0
- package/build/src/components/Form/Select/Select.js +162 -0
- package/build/src/components/Form/Select/Select.js.map +1 -0
- package/build/src/components/Form/Textarea/Textarea.js +39 -0
- package/build/src/components/Form/Textarea/Textarea.js.map +1 -0
- package/build/src/components/Form/Toggle/Toggle.js +86 -0
- package/build/src/components/Form/Toggle/Toggle.js.map +1 -0
- package/build/src/components/Form/ToggleButton/ToggleButton.js +80 -0
- package/build/src/components/Form/ToggleButton/ToggleButton.js.map +1 -0
- package/build/src/components/Icon/Icon.js +40 -0
- package/build/src/components/Icon/Icon.js.map +1 -0
- package/build/src/components/Inline/Inline.js +54 -0
- package/build/src/components/Inline/Inline.js.map +1 -0
- package/build/src/components/Link/Link.js +47 -0
- package/build/src/components/Link/Link.js.map +1 -0
- package/build/src/components/Logo/Logo.js +15 -0
- package/build/src/components/Logo/Logo.js.map +1 -0
- package/build/src/components/MediaItem/MediaItem.js +41 -0
- package/build/src/components/MediaItem/MediaItem.js.map +1 -0
- package/build/src/components/MediaViewerBar/MediaViewerBar.js +36 -0
- package/build/src/components/MediaViewerBar/MediaViewerBar.js.map +1 -0
- package/build/src/components/Notification/Notification.js +46 -0
- package/build/src/components/Notification/Notification.js.map +1 -0
- package/build/src/components/PictogramButton/PictogramButton.js +56 -0
- package/build/src/components/PictogramButton/PictogramButton.js.map +1 -0
- package/build/src/components/ProgressBar/ProgressBar.js +15 -0
- package/build/src/components/ProgressBar/ProgressBar.js.map +1 -0
- package/build/src/components/RoundButton/RoundButton.js +53 -0
- package/build/src/components/RoundButton/RoundButton.js.map +1 -0
- package/build/src/components/SearchResult/SearchResult.js +81 -0
- package/build/src/components/SearchResult/SearchResult.js.map +1 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js +57 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js.map +1 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js +35 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js.map +1 -0
- package/build/src/components/Stack/Stack.js +34 -0
- package/build/src/components/Stack/Stack.js.map +1 -0
- package/build/src/components/SubThemeProvider/SubThemeProvider.js +35 -0
- package/build/src/components/SubThemeProvider/SubThemeProvider.js.map +1 -0
- package/build/src/components/Tabs/Tabs.js +53 -0
- package/build/src/components/Tabs/Tabs.js.map +1 -0
- package/build/src/components/Typography/Header/Header.js +17 -0
- package/build/src/components/Typography/Header/Header.js.map +1 -0
- package/build/src/components/Typography/StyledText/StyledText.js +74 -0
- package/build/src/components/Typography/StyledText/StyledText.js.map +1 -0
- package/build/src/components/Typography/Text/Text.js +26 -0
- package/build/src/components/Typography/Text/Text.js.map +1 -0
- package/build/src/components/Typography/TextClamped/TextClamped.js +25 -0
- package/build/src/components/Typography/TextClamped/TextClamped.js.map +1 -0
- package/build/src/components/VirtualScrollList/VirtualScrollList.js +62 -0
- package/build/src/components/VirtualScrollList/VirtualScrollList.js.map +1 -0
- package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js +96 -0
- package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js.map +1 -0
- package/build/src/index.js +47 -0
- package/build/src/index.js.map +1 -0
- package/build/src/shared/informDeprecation.js +11 -0
- package/build/src/shared/informDeprecation.js.map +1 -0
- package/build/src/shared/mediaQueries.js +39 -0
- package/build/src/shared/mediaQueries.js.map +1 -0
- package/build/src/shared/useAutoPosition.js +52 -0
- package/build/src/shared/useAutoPosition.js.map +1 -0
- package/build/src/shared/useDocument.js +6 -0
- package/build/src/shared/useDocument.js.map +1 -0
- package/build/src/shared/useHover.js +27 -0
- package/build/src/shared/useHover.js.map +1 -0
- package/build/src/shared/useKeyboard.js +45 -0
- package/build/src/shared/useKeyboard.js.map +1 -0
- package/build/src/shared/useOutsideClick.js +31 -0
- package/build/src/shared/useOutsideClick.js.map +1 -0
- package/build/src/shared/useWindow.js +6 -0
- package/build/src/shared/useWindow.js.map +1 -0
- package/package.json +20 -6
- package/build/build-tokens/_subThemeType.d.ts +0 -1
- package/build/index.js +0 -3
- package/build/index.js.LICENSE.txt +0 -8
- package/build/index.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
const findClosestOffsetIndex = (arr, val) => {
|
|
2
|
+
let start = 0;
|
|
3
|
+
let end = arr.length - 1;
|
|
4
|
+
let mid = Math.floor((start + end) / 2);
|
|
5
|
+
while (start <= end) {
|
|
6
|
+
mid = Math.floor((start + end) / 2);
|
|
7
|
+
if (arr[mid].amount === val) {
|
|
8
|
+
return mid;
|
|
9
|
+
}
|
|
10
|
+
if (val < arr[mid].amount) {
|
|
11
|
+
end = mid - 1;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
start = mid + 1;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return mid;
|
|
18
|
+
};
|
|
19
|
+
const getMaxHeight = (maxAmountOfItems, offsets, lastItemHeight = 0) => {
|
|
20
|
+
var _a;
|
|
21
|
+
const amountOfOffsets = Math.min(offsets.length, maxAmountOfItems);
|
|
22
|
+
const maxOffset = ((_a = offsets[amountOfOffsets - 1]) === null || _a === void 0 ? void 0 : _a.amount) || 0;
|
|
23
|
+
const result = maxOffset + lastItemHeight;
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
const reduceScroll = (prevState, scrollTop) => {
|
|
27
|
+
var _a;
|
|
28
|
+
const { topOffsets, overscan: tolerance } = prevState;
|
|
29
|
+
const scrolledItemCount = Math.max(0, findClosestOffsetIndex(topOffsets, scrollTop) - tolerance / 2);
|
|
30
|
+
const scrolledInPx = ((_a = topOffsets[scrolledItemCount]) === null || _a === void 0 ? void 0 : _a.amount) || 0;
|
|
31
|
+
return Object.assign(Object.assign({}, prevState), { scrolledItemCount,
|
|
32
|
+
scrolledInPx });
|
|
33
|
+
};
|
|
34
|
+
const reduceUpdateViewport = (prevState, viewportNode, itemAmount) => {
|
|
35
|
+
const { topOffsets = [], scrolledInPx, scrolledItemCount, avgItemHeight, lastItemHeight, maxHeight, overscan: tolerance, } = prevState;
|
|
36
|
+
const newTopOffsets = [...topOffsets];
|
|
37
|
+
let updatedLastItemHeight = lastItemHeight;
|
|
38
|
+
Array.from(viewportNode.children).forEach((child, i) => {
|
|
39
|
+
newTopOffsets[i + scrolledItemCount] = {
|
|
40
|
+
amount: scrolledInPx + child.offsetTop,
|
|
41
|
+
isInterpolated: false,
|
|
42
|
+
};
|
|
43
|
+
if (i + scrolledItemCount === itemAmount - 1 && !lastItemHeight) {
|
|
44
|
+
updatedLastItemHeight = child.getBoundingClientRect().height;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
for (let i = 0; i < itemAmount; i += 1) {
|
|
48
|
+
if (!newTopOffsets[i] || newTopOffsets[i].isInterpolated) {
|
|
49
|
+
newTopOffsets[i] = {
|
|
50
|
+
amount: newTopOffsets[i - 1].amount + avgItemHeight,
|
|
51
|
+
isInterpolated: true,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const newAvgItemHeight = Math.max(avgItemHeight, viewportNode.getBoundingClientRect().height /
|
|
56
|
+
(viewportNode.childElementCount || 1));
|
|
57
|
+
const maxContentHeight = getMaxHeight(itemAmount, newTopOffsets, updatedLastItemHeight);
|
|
58
|
+
return Object.assign(Object.assign({}, prevState), { lastItemHeight: updatedLastItemHeight, avgItemHeight, topOffsets: newTopOffsets, amountOfItemsInView: Math.round(maxHeight / newAvgItemHeight) + tolerance, maxContentHeight });
|
|
59
|
+
};
|
|
60
|
+
const reduceReset = (prevState, itemHeight, maxHeight, overscan) => (Object.assign(Object.assign({}, prevState), { lastItemHeight: null, topOffsets: [{ amount: 0, isInterpolated: false }], scrolledInPx: 0, scrolledItemCount: 0, maxHeight, avgItemHeight: itemHeight, overscan }));
|
|
61
|
+
const reduceRecommendScrollPosition = (prevState, scrollTop, itemToBeInView) => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
const { topOffsets, maxHeight } = prevState;
|
|
64
|
+
if (!topOffsets)
|
|
65
|
+
return prevState;
|
|
66
|
+
const bottomOfTarget = (_a = topOffsets[itemToBeInView + 1]) === null || _a === void 0 ? void 0 : _a.amount;
|
|
67
|
+
const topOfTarget = (_b = topOffsets[itemToBeInView]) === null || _b === void 0 ? void 0 : _b.amount;
|
|
68
|
+
let recommendedScrollPosition = null;
|
|
69
|
+
if (topOfTarget < scrollTop) {
|
|
70
|
+
recommendedScrollPosition = topOfTarget;
|
|
71
|
+
}
|
|
72
|
+
if (bottomOfTarget >= scrollTop + maxHeight) {
|
|
73
|
+
recommendedScrollPosition = bottomOfTarget - maxHeight;
|
|
74
|
+
}
|
|
75
|
+
if (itemToBeInView === topOffsets.length - 1) {
|
|
76
|
+
recommendedScrollPosition = topOffsets[itemToBeInView].amount;
|
|
77
|
+
}
|
|
78
|
+
return Object.assign(Object.assign({}, prevState), { recommendedScrollPosition });
|
|
79
|
+
};
|
|
80
|
+
const VirtualScrollReducer = (prevState, action) => {
|
|
81
|
+
switch (action.type) {
|
|
82
|
+
case "reset":
|
|
83
|
+
return reduceReset(prevState, action.itemHeight, action.maxHeight, action.overscan);
|
|
84
|
+
case "scroll":
|
|
85
|
+
return reduceScroll(prevState, action.scrollTop);
|
|
86
|
+
case "updateViewport":
|
|
87
|
+
return reduceUpdateViewport(prevState, action.viewportNode, action.itemAmount);
|
|
88
|
+
case "recommendScrollPosition":
|
|
89
|
+
return reduceRecommendScrollPosition(prevState, action.scrollTop, action.itemToBeInView);
|
|
90
|
+
default:
|
|
91
|
+
throw new Error();
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export { VirtualScrollReducer };
|
|
96
|
+
//# sourceMappingURL=VirtualScrollListReducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualScrollListReducer.js","sources":["../../../../../src/components/VirtualScrollList/VirtualScrollListReducer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ambossVisualConfiguration } from '../build-tokens/visualConfig.js';
|
|
2
|
+
export { CacheProvider, ThemeProvider } from '@emotion/react';
|
|
3
|
+
export { default as createCache } from '@emotion/cache';
|
|
4
|
+
export { Card } from './components/Card/Card.js';
|
|
5
|
+
export { CardBox } from './components/Card/CardBox.js';
|
|
6
|
+
export { Box } from './components/Box/Box.js';
|
|
7
|
+
export { Inline } from './components/Inline/Inline.js';
|
|
8
|
+
export { Stack } from './components/Stack/Stack.js';
|
|
9
|
+
export { H1, H2, H3, H4, H5, H6 } from './components/Typography/Header/Header.js';
|
|
10
|
+
export { Text } from './components/Typography/Text/Text.js';
|
|
11
|
+
export { TextClamped } from './components/Typography/TextClamped/TextClamped.js';
|
|
12
|
+
export { StyledText } from './components/Typography/StyledText/StyledText.js';
|
|
13
|
+
export { Link } from './components/Link/Link.js';
|
|
14
|
+
export { Icon } from './components/Icon/Icon.js';
|
|
15
|
+
export { Button } from './components/Button/Button.js';
|
|
16
|
+
export { Divider } from './components/Divider/Divider.js';
|
|
17
|
+
export { Column, Columns } from './components/Column/Columns.js';
|
|
18
|
+
export { Tabs } from './components/Tabs/Tabs.js';
|
|
19
|
+
export { Badge } from './components/Badge/Badge.js';
|
|
20
|
+
export { SearchResult } from './components/SearchResult/SearchResult.js';
|
|
21
|
+
export { ToggleButton } from './components/Form/ToggleButton/ToggleButton.js';
|
|
22
|
+
export { DropdownMenu } from './components/DropdownMenu/DropdownMenu.js';
|
|
23
|
+
export { FormFieldGroup } from './components/Form/FormFieldGroup/FormFieldGroup.js';
|
|
24
|
+
export { Input } from './components/Form/Input/Input.js';
|
|
25
|
+
export { Checkbox } from './components/Form/Checkbox/Checkbox.js';
|
|
26
|
+
export { Toggle } from './components/Form/Toggle/Toggle.js';
|
|
27
|
+
export { Radio } from './components/Form/Radio/Radio.js';
|
|
28
|
+
export { RadioButton } from './components/Form/RadioButton/RadioButton.js';
|
|
29
|
+
export { Textarea } from './components/Form/Textarea/Textarea.js';
|
|
30
|
+
export { Select } from './components/Form/Select/Select.js';
|
|
31
|
+
export { SubThemeProvider } from './components/SubThemeProvider/SubThemeProvider.js';
|
|
32
|
+
export { PictogramButton } from './components/PictogramButton/PictogramButton.js';
|
|
33
|
+
export { MediaViewerBar } from './components/MediaViewerBar/MediaViewerBar.js';
|
|
34
|
+
export { SegmentedProgressBar } from './components/SegmentedProgressBar/SegmentedProgressBar.js';
|
|
35
|
+
export { ProgressBar } from './components/ProgressBar/ProgressBar.js';
|
|
36
|
+
export { Container } from './components/Container/Container.js';
|
|
37
|
+
export { PasswordInput } from './components/Form/PasswordInput/PasswordInput.js';
|
|
38
|
+
export { Collapsible, CollapsibleHeader } from './components/Collapsible/Collapsible.js';
|
|
39
|
+
export { RoundButton } from './components/RoundButton/RoundButton.js';
|
|
40
|
+
export { Notification } from './components/Notification/Notification.js';
|
|
41
|
+
export { Logo } from './components/Logo/Logo.js';
|
|
42
|
+
export { MediaItem } from './components/MediaItem/MediaItem.js';
|
|
43
|
+
|
|
44
|
+
const { dark, light } = ambossVisualConfiguration;
|
|
45
|
+
|
|
46
|
+
export { dark, light };
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { ambossVisualConfiguration } from \"../build-tokens/visualConfig\";\n\nexport const { dark, light } = ambossVisualConfiguration;\nexport { ThemeProvider, CacheProvider } from \"@emotion/react\";\nexport { default as createCache } from \"@emotion/cache\";\nexport { Card } from \"./components/Card/Card\";\nexport { CardBox } from \"./components/Card/CardBox\";\nexport { Box } from \"./components/Box/Box\";\nexport { Inline } from \"./components/Inline/Inline\";\nexport { Stack } from \"./components/Stack/Stack\";\nexport { H1, H2, H3, H4, H5, H6 } from \"./components/Typography/Header/Header\";\nexport { Text } from \"./components/Typography/Text/Text\";\nexport { TextClamped } from \"./components/Typography/TextClamped/TextClamped\";\nexport { StyledText } from \"./components/Typography/StyledText/StyledText\";\nexport { Link } from \"./components/Link/Link\";\nexport { Icon } from \"./components/Icon/Icon\";\nexport { Button } from \"./components/Button/Button\";\nexport { Divider } from \"./components/Divider/Divider\";\nexport { Column, Columns } from \"./components/Column/Columns\";\nexport { Tabs } from \"./components/Tabs/Tabs\";\nexport { Badge } from \"./components/Badge/Badge\";\nexport { SearchResult } from \"./components/SearchResult/SearchResult\";\nexport { ToggleButton } from \"./components/Form/ToggleButton/ToggleButton\";\nexport { DropdownMenu } from \"./components/DropdownMenu/DropdownMenu\";\nexport { FormFieldGroup } from \"./components/Form/FormFieldGroup/FormFieldGroup\";\nexport { Input } from \"./components/Form/Input/Input\";\nexport { Checkbox } from \"./components/Form/Checkbox/Checkbox\";\nexport { Toggle } from \"./components/Form/Toggle/Toggle\";\nexport { Radio } from \"./components/Form/Radio/Radio\";\nexport { RadioButton } from \"./components/Form/RadioButton/RadioButton\";\nexport { Textarea } from \"./components/Form/Textarea/Textarea\";\nexport { Select } from \"./components/Form/Select/Select\";\nexport { SubThemeProvider } from \"./components/SubThemeProvider/SubThemeProvider\";\nexport { PictogramButton } from \"./components/PictogramButton/PictogramButton\";\nexport { MediaViewerBar } from \"./components/MediaViewerBar/MediaViewerBar\";\nexport { SegmentedProgressBar } from \"./components/SegmentedProgressBar/SegmentedProgressBar\";\nexport { ProgressBar } from \"./components/ProgressBar/ProgressBar\";\nexport { Container } from \"./components/Container/Container\";\nexport { PasswordInput } from \"./components/Form/PasswordInput/PasswordInput\";\nexport {\n Collapsible,\n CollapsibleHeader,\n} from \"./components/Collapsible/Collapsible\";\nexport { RoundButton } from \"./components/RoundButton/RoundButton\";\nexport { Notification } from \"./components/Notification/Notification\";\nexport { Logo } from \"./components/Logo/Logo\";\nexport { MediaItem } from \"./components/MediaItem/MediaItem\";\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEY,MAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const informDeprecation = (property, value, location, details = "") => {
|
|
2
|
+
if (property === undefined)
|
|
3
|
+
return;
|
|
4
|
+
if (property === value) {
|
|
5
|
+
// eslint-disable-next-line no-console
|
|
6
|
+
console.error(`value ${JSON.stringify(value)} is depricated in ${location} \n ${details}`);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { informDeprecation };
|
|
11
|
+
//# sourceMappingURL=informDeprecation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"informDeprecation.js","sources":["../../../../src/shared/informDeprecation.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,iBAAiB,GAAG,CAC/B,QAAiB,EACjB,KAAc,EACd,QAAgB,EAChB,OAAO,GAAG,EAAE,KACJ;IACR,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,IAAI,QAAQ,KAAK,KAAK,EAAE;;AAEtB,QAAA,OAAO,CAAC,KAAK,CACX,CAAS,MAAA,EAAA,IAAI,CAAC,SAAS,CACrB,KAAK,CACN,qBAAqB,QAAQ,CAAA,IAAA,EAAO,OAAO,CAAA,CAAE,CAC/C,CAAC;AACH,KAAA;AACH;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import breakpoints from '../../build-tokens/_breakpoints.json.js';
|
|
2
|
+
|
|
3
|
+
// this thing probably deserves to be a separate library, like facepaint for emotion
|
|
4
|
+
function getMq(breakpointRules) {
|
|
5
|
+
const keys = breakpointRules;
|
|
6
|
+
return (
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
rules) => {
|
|
9
|
+
const res = {};
|
|
10
|
+
keys.forEach((key) => {
|
|
11
|
+
res[key] = {};
|
|
12
|
+
});
|
|
13
|
+
res[`@media screen`] = {};
|
|
14
|
+
Object.entries(rules).forEach(([cssProperty, [prop, map]]) => {
|
|
15
|
+
if (Array.isArray(prop)) {
|
|
16
|
+
const sm = prop[0];
|
|
17
|
+
const md = prop[1] || prop[0];
|
|
18
|
+
const lg = prop[2] || prop[1] || prop[0];
|
|
19
|
+
const [s, m, l] = keys;
|
|
20
|
+
// (res[`@media screen`] as EmotionCssDescription)[cssProperty] = map[sm];
|
|
21
|
+
res[s][cssProperty] = map[sm];
|
|
22
|
+
res[m][cssProperty] = map[md];
|
|
23
|
+
res[l][cssProperty] = map[lg];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
res[`@media screen`][cssProperty] = map[prop];
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
return res;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const mq = getMq([
|
|
33
|
+
`@media (max-width: ${breakpoints[1].value}px)`,
|
|
34
|
+
`@media (min-width: ${breakpoints[1].value}px) and (max-width: ${breakpoints[2].value}px)`,
|
|
35
|
+
`@media (min-width: ${breakpoints[2].value}px)`,
|
|
36
|
+
]);
|
|
37
|
+
|
|
38
|
+
export { mq };
|
|
39
|
+
//# sourceMappingURL=mediaQueries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaQueries.js","sources":["../../../../src/shared/mediaQueries.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAiBA;AACA,SAAS,KAAK,CAAC,eAAyB,EAAA;IACtC,MAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,OAAO;;AAEL,IAAA,KAAkC,KACyB;QAC3D,MAAM,GAAG,GAA4D,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC3B,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAChB,SAAC,CAAC,CAAC;AACH,QAAA,GAAG,CAAC,CAAA,aAAA,CAAe,CAAC,GAAG,EAAE,CAAC;AAE1B,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAI;AAC3D,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAa,IAAI,CAAC;;gBAGhC,GAAG,CAAC,CAAC,CAA2B,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,GAAG,CAAC,CAAC,CAA2B,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,GAAG,CAAC,CAAC,CAA2B,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1D,aAAA;AAAM,iBAAA;gBACJ,GAAG,CAAC,CAAe,aAAA,CAAA,CAA2B,CAAC,WAAW,CAAC,GAAG,GAAG,CAChE,IAAc,CACL,CAAC;AACb,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,GAAG,CAAC;AACb,KAAC,CAAC;AACJ,CAAC;AAEM,MAAM,EAAE,GAAG,KAAK,CAAC;AACtB,IAAA,CAAA,mBAAA,EAAsB,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAK,GAAA,CAAA;AAC/C,IAAA,CAAA,mBAAA,EAAsB,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAuB,oBAAA,EAAA,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAK,GAAA,CAAA;AAC1F,IAAA,CAAA,mBAAA,EAAsB,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAK,GAAA,CAAA;AAChD,CAAA;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useState, useLayoutEffect } from 'react';
|
|
2
|
+
import { useWindow } from './useWindow.js';
|
|
3
|
+
import { useDocument } from './useDocument.js';
|
|
4
|
+
|
|
5
|
+
const useAutoPosition = (anchorRef, contentRef, isActive) => {
|
|
6
|
+
const [verticalPosition, setVerticalPosition] = useState("down");
|
|
7
|
+
const [horizontalPosition, setHorizontalPosition] = useState("left");
|
|
8
|
+
const document = useDocument();
|
|
9
|
+
const window = useWindow();
|
|
10
|
+
useLayoutEffect(() => {
|
|
11
|
+
if (!contentRef)
|
|
12
|
+
return;
|
|
13
|
+
if (isActive) {
|
|
14
|
+
const maxHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);
|
|
15
|
+
const rect = contentRef.current.getBoundingClientRect();
|
|
16
|
+
const anchorHeight = anchorRef.current.getBoundingClientRect().height;
|
|
17
|
+
const anchorX = anchorRef.current.getBoundingClientRect().x;
|
|
18
|
+
const screenWidth = window.innerWidth;
|
|
19
|
+
const isUp = rect.top + rect.height > maxHeight;
|
|
20
|
+
const isDown = rect.top - anchorHeight < rect.height;
|
|
21
|
+
const isLeft = anchorX > screenWidth / 2;
|
|
22
|
+
const isRight = anchorX < screenWidth / 2;
|
|
23
|
+
if (isUp) {
|
|
24
|
+
setVerticalPosition("up");
|
|
25
|
+
}
|
|
26
|
+
else if (isDown) {
|
|
27
|
+
setVerticalPosition("down");
|
|
28
|
+
}
|
|
29
|
+
if (isLeft) {
|
|
30
|
+
setHorizontalPosition("left");
|
|
31
|
+
}
|
|
32
|
+
else if (isRight) {
|
|
33
|
+
setHorizontalPosition("right");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
setVerticalPosition("down");
|
|
38
|
+
setHorizontalPosition("left");
|
|
39
|
+
}
|
|
40
|
+
}, [
|
|
41
|
+
anchorRef,
|
|
42
|
+
contentRef,
|
|
43
|
+
document.documentElement.clientHeight,
|
|
44
|
+
isActive,
|
|
45
|
+
window.innerHeight,
|
|
46
|
+
window.innerWidth,
|
|
47
|
+
]);
|
|
48
|
+
return [verticalPosition, horizontalPosition];
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export { useAutoPosition };
|
|
52
|
+
//# sourceMappingURL=useAutoPosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutoPosition.js","sources":["../../../../src/shared/useAutoPosition.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AASa,MAAA,eAAe,GAAG,CAC7B,SAAiC,EACjC,UAAkC,EAClC,QAAiB,KACL;IACZ,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACtD,MAA0B,CAC3B,CAAC;IACF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAC1D,MAA4B,CAC7B,CAAC;AACF,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,eAAe,CAAC,MAAK;AACnB,QAAA,IAAI,CAAC,UAAU;YAAE,OAAO;AAExB,QAAA,IAAI,QAAQ,EAAE;YACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,QAAQ,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,EAC1C,MAAM,CAAC,WAAW,IAAI,CAAC,CACxB,CAAC;YAEF,MAAM,IAAI,GAAY,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACjE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;YACtE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAC5D,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;YAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;AACrD,YAAA,MAAM,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC;AACzC,YAAA,MAAM,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC;AAE1C,YAAA,IAAI,IAAI,EAAE;gBACR,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA,IAAI,MAAM,EAAE;gBACjB,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7B,aAAA;AAED,YAAA,IAAI,MAAM,EAAE;gBACV,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC/B,aAAA;AAAM,iBAAA,IAAI,OAAO,EAAE;gBAClB,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAChC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC5B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC/B,SAAA;AACH,KAAC,EAAE;QACD,SAAS;QACT,UAAU;QACV,QAAQ,CAAC,eAAe,CAAC,YAAY;QACrC,QAAQ;AACR,QAAA,MAAM,CAAC,WAAW;AAClB,QAAA,MAAM,CAAC,UAAU;AAClB,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AAChD;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDocument.js","sources":["../../../../src/shared/useDocument.ts"],"sourcesContent":[null],"names":[],"mappings":"SAAgB,WAAW,GAAA;AACzB,IAAA,OAAO,QAAQ,CAAC;AAClB;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
function useHover(ref) {
|
|
4
|
+
const [hovered, setHovered] = useState(false);
|
|
5
|
+
const handleMouseOver = () => setHovered(true);
|
|
6
|
+
const handleMouseOut = () => setHovered(false);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (!ref)
|
|
9
|
+
return undefined;
|
|
10
|
+
const node = ref.current;
|
|
11
|
+
if (node) {
|
|
12
|
+
node.addEventListener("mouseover", handleMouseOver);
|
|
13
|
+
node.addEventListener("mouseout", handleMouseOut);
|
|
14
|
+
return () => {
|
|
15
|
+
node.removeEventListener("mouseover", handleMouseOver);
|
|
16
|
+
node.removeEventListener("mouseout", handleMouseOut);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}, [ref]);
|
|
21
|
+
if (!ref)
|
|
22
|
+
return null;
|
|
23
|
+
return hovered;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { useHover };
|
|
27
|
+
//# sourceMappingURL=useHover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHover.js","sources":["../../../../src/shared/useHover.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEM,SAAU,QAAQ,CAAC,GAAgC,EAAA;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;IAE/C,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,SAAS,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;AACzB,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAElD,YAAA,OAAO,MAAK;AACV,gBAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACvD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACvD,aAAC,CAAC;AACH,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;AACnB,KAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAEV,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,IAAI,CAAC;AACtB,IAAA,OAAO,OAAO,CAAC;AACjB;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useDocument } from './useDocument.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* useKeyboard handles activation of keyboard hotkeys on a given element.
|
|
6
|
+
* @param {Record<string, (e: KeyboardEvent) => {}} config - A map of keyboardEvent code to function.
|
|
7
|
+
* @param {RefObject} ref - The element which the keyboard config has to apply on.
|
|
8
|
+
* @param {boolean} isActive - A flag to determine when the keyboard config has to be applied.
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* useKeyboard({
|
|
12
|
+
* Escape: closeMenu,
|
|
13
|
+
* ArrowUp: () => { doSomething() },
|
|
14
|
+
* KeyB: () => { console.log("bagi") },
|
|
15
|
+
* }, menuRef, menuOpen)
|
|
16
|
+
*
|
|
17
|
+
* This mean that these keyboard shortcuts will be applied on menuRef when the menu is opened.
|
|
18
|
+
*/
|
|
19
|
+
function useKeyboard(config, ref, isActive) {
|
|
20
|
+
const document = useDocument();
|
|
21
|
+
const handleKeyboard = (event) => {
|
|
22
|
+
if (!isActive)
|
|
23
|
+
return;
|
|
24
|
+
if (document.activeElement !== ref.current &&
|
|
25
|
+
!ref.current.contains(document.activeElement))
|
|
26
|
+
return;
|
|
27
|
+
const targetConfigKey = Object.keys(config).find((targetKeys) => targetKeys.split(" ").includes(event.code));
|
|
28
|
+
if (!targetConfigKey)
|
|
29
|
+
return;
|
|
30
|
+
event.preventDefault();
|
|
31
|
+
const res = config[targetConfigKey](event);
|
|
32
|
+
if (res === false) {
|
|
33
|
+
event.stopPropagation();
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
document.addEventListener("keydown", handleKeyboard);
|
|
38
|
+
return () => {
|
|
39
|
+
document.removeEventListener("keydown", handleKeyboard);
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { useKeyboard };
|
|
45
|
+
//# sourceMappingURL=useKeyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeyboard.js","sources":["../../../../src/shared/useKeyboard.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;;;;;;;;AAcG;SAEa,WAAW,CACzB,MAA4D,EAC5D,GAAmB,EACnB,QAAiB,EAAA;AAEjB,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,IAAA,MAAM,cAAc,GAAG,CAAC,KAAoB,KAAI;AAC9C,QAAA,IAAI,CAAC,QAAQ;YAAE,OAAO;AAEtB,QAAA,IACE,QAAQ,CAAC,aAAa,KAAK,GAAG,CAAC,OAAO;YACtC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;YAE7C,OAAO;AAET,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAkB,KAClE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAC3C,CAAC;AACF,QAAA,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,SAAA;AACH,KAAC,CAAC;IAEF,SAAS,CAAC,MAAK;AACb,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAErD,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAC1D,SAAC,CAAC;AACJ,KAAC,CAAC,CAAC;AACL;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
2
|
+
import { useWindow } from './useWindow.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* useOutsideClick handles outside click of a given element.
|
|
6
|
+
* @param {RefObject} ref - Reference to a DOM element.
|
|
7
|
+
* @param {e: Event) => void} handler - Function invoked when a click is triggered outside the referenced element.
|
|
8
|
+
* @param {boolean} isActive - A flag to determine when the outside click event needs to be applied.
|
|
9
|
+
*
|
|
10
|
+
* Example: useOutsideClick(menuRef, closeMenu, menuIsOpen)
|
|
11
|
+
* Means that when a menu is opened, clicking outside of the menu will close the mneu.
|
|
12
|
+
*/
|
|
13
|
+
const useOutsideClick = (ref, handler, isActive) => {
|
|
14
|
+
const window = useWindow();
|
|
15
|
+
const outsideClickEvent = useCallback((e) => {
|
|
16
|
+
if (ref && ref.current && !ref.current.contains(e.target)) {
|
|
17
|
+
handler(e);
|
|
18
|
+
}
|
|
19
|
+
}, [handler, ref]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (isActive) {
|
|
22
|
+
window.addEventListener("click", outsideClickEvent);
|
|
23
|
+
}
|
|
24
|
+
return () => {
|
|
25
|
+
window.removeEventListener("click", outsideClickEvent);
|
|
26
|
+
};
|
|
27
|
+
}, [isActive, window, outsideClickEvent]);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { useOutsideClick };
|
|
31
|
+
//# sourceMappingURL=useOutsideClick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOutsideClick.js","sources":["../../../../src/shared/useOutsideClick.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;;;;AAQG;AAEU,MAAA,eAAe,GAAG,CAC7B,GAAmB,EACnB,OAA2B,EAC3B,QAAiB,KACT;AACR,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAE3B,IAAA,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,CAAQ,KAAI;AACX,QAAA,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YACzD,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ,SAAA;AACH,KAAC,EACD,CAAC,OAAO,EAAE,GAAG,CAAC,CACf,CAAC;IAEF,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACrD,SAAA;AAED,QAAA,OAAO,MAAK;AACV,YAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACzD,SAAC,CAAC;KACH,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAC5C;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWindow.js","sources":["../../../../src/shared/useWindow.ts"],"sourcesContent":[null],"names":[],"mappings":"SAAgB,SAAS,GAAA;AACvB,IAAA,OAAO,MAAM,CAAC;AAChB;;;;"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amboss/design-system",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.20",
|
|
4
4
|
"description": "the design system for AMBOSS products",
|
|
5
5
|
"author": "Bagrat Gobedashvili",
|
|
6
6
|
"license": "ISC",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./build/src/index.d.ts",
|
|
11
|
+
"import": "./build/src/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
7
14
|
"bugs": {
|
|
8
15
|
"url": "https://github.com/amboss-mededu/amboss-design-system/issues"
|
|
9
16
|
},
|
|
10
|
-
"
|
|
17
|
+
"browser": {
|
|
18
|
+
"./node_modules/@storybook/client-api": "./node_modules/@storybook/client-api/dist/esm/index.js",
|
|
19
|
+
"./node_modules/@storybook/client-logger": "./node_modules/@storybook/client-logger/dist/esm/index.js"
|
|
20
|
+
},
|
|
21
|
+
"main": "build/src/index.js",
|
|
11
22
|
"types": "build/src/index.d.ts",
|
|
12
23
|
"files": [
|
|
13
24
|
"build/**/*"
|
|
@@ -39,8 +50,8 @@
|
|
|
39
50
|
},
|
|
40
51
|
"scripts": {
|
|
41
52
|
"prebuild": "rm -rf build && npm run tokens",
|
|
42
|
-
"build": "
|
|
43
|
-
"postbuild": "
|
|
53
|
+
"build": "npx rollup --c",
|
|
54
|
+
"postbuild": "mkdir -p ./build/build-tokens/assets && cp -R ./build-tokens/assets ./build/build-tokens/",
|
|
44
55
|
"prestart": "npm run tokens",
|
|
45
56
|
"start": "npm run tokens:watch & npm run storybook",
|
|
46
57
|
"static": "http-server storybook-static/ -p 6006",
|
|
@@ -50,7 +61,7 @@
|
|
|
50
61
|
"test:watch": "jest --watch",
|
|
51
62
|
"test:coverage": "TZ=Europe/Berlin jest --coverage",
|
|
52
63
|
"test:ci": "npm run test:coverage -- --ci --maxWorkers=2 --reporters=jest-junit",
|
|
53
|
-
"tokens": "node style-dictionary/style-dictionary.build.
|
|
64
|
+
"tokens": "node style-dictionary/style-dictionary.build.cjs",
|
|
54
65
|
"tokens:watch": "chokidar \"tokens/**/*.json\" -c \"npm run tokens\"",
|
|
55
66
|
"tokens:prettier": "prettier --write \"build-tokens/*.(t|j)s*\"",
|
|
56
67
|
"chromatic": "npx chromatic --project-token ${CHROMATIC_TOKEN} --exit-zero-on-changes",
|
|
@@ -58,7 +69,7 @@
|
|
|
58
69
|
"chromatic:master": "npx chromatic --project-token ${CHROMATIC_TOKEN} --auto-accept-changes",
|
|
59
70
|
"lint": "npm run lint:eslint && npm run lint:prettier",
|
|
60
71
|
"lint:eslint": "eslint -c .eslintrc --fix src .storybook",
|
|
61
|
-
"lint:prettier": "prettier --write \"{src,tokens,.storybook}/**/*.(t|j)s*\" \"webpack*.
|
|
72
|
+
"lint:prettier": "prettier --write \"{src,tokens,.storybook}/**/*.(t|j)s*\" \"webpack*.cjs\"",
|
|
62
73
|
"component": "DS_ROOT=/src/components DS_COMP_FOLDER=/components node scripts/createComponent/createComponent.js",
|
|
63
74
|
"link-ds": "./scripts/link-ds.sh"
|
|
64
75
|
},
|
|
@@ -102,6 +113,8 @@
|
|
|
102
113
|
"@babel/preset-typescript": "^7.15.0",
|
|
103
114
|
"@emotion/babel-plugin": "^11.3.0",
|
|
104
115
|
"@geometricpanda/storybook-addon-badges": "0.2.1",
|
|
116
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
117
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
105
118
|
"@storybook/addon-a11y": "^6.5.9",
|
|
106
119
|
"@storybook/addon-docs": "^6.5.9",
|
|
107
120
|
"@storybook/addon-essentials": "^6.5.9",
|
|
@@ -145,6 +158,7 @@
|
|
|
145
158
|
"jest-junit": "^12.0.0",
|
|
146
159
|
"prettier": "^2.2.1",
|
|
147
160
|
"react-is": "^17.0.1",
|
|
161
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
148
162
|
"slackify-markdown": "^4.1.0",
|
|
149
163
|
"storybook-addon-multi-theme": "^0.0.9",
|
|
150
164
|
"style-dictionary": "^3.0.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare type SubThemeTypes = 'dimmed' | 'error' | 'info' | 'success';
|