@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.
Files changed (132) hide show
  1. package/build/build-tokens/_breakpoints.json.js +23 -0
  2. package/build/build-tokens/_breakpoints.json.js.map +1 -0
  3. package/build/build-tokens/_icon_sizes_map.json.js +8 -0
  4. package/build/build-tokens/_icon_sizes_map.json.js.map +1 -0
  5. package/build/build-tokens/assets/icons.json.js +199 -0
  6. package/build/build-tokens/assets/icons.json.js.map +1 -0
  7. package/build/build-tokens/assets/icons16.json.js +214 -0
  8. package/build/build-tokens/assets/icons16.json.js.map +1 -0
  9. package/build/build-tokens/assets/logo.json +1 -1
  10. package/build/build-tokens/assets/logo.json.js +6 -0
  11. package/build/build-tokens/assets/logo.json.js.map +1 -0
  12. package/build/build-tokens/visualConfig.js +1417 -0
  13. package/build/build-tokens/visualConfig.js.map +1 -0
  14. package/build/node_modules/tslib/tslib.es6.js +29 -0
  15. package/build/node_modules/tslib/tslib.es6.js.map +1 -0
  16. package/build/src/components/Badge/Badge.js +36 -0
  17. package/build/src/components/Badge/Badge.js.map +1 -0
  18. package/build/src/components/Box/Box.js +30 -0
  19. package/build/src/components/Box/Box.js.map +1 -0
  20. package/build/src/components/Button/Button.js +116 -0
  21. package/build/src/components/Button/Button.js.map +1 -0
  22. package/build/src/components/Card/Card.js +30 -0
  23. package/build/src/components/Card/Card.js.map +1 -0
  24. package/build/src/components/Card/CardBox.js +9 -0
  25. package/build/src/components/Card/CardBox.js.map +1 -0
  26. package/build/src/components/Card/CardHeader/CardHeader.js +30 -0
  27. package/build/src/components/Card/CardHeader/CardHeader.js.map +1 -0
  28. package/build/src/components/Collapsible/Collapsible.js +44 -0
  29. package/build/src/components/Collapsible/Collapsible.js.map +1 -0
  30. package/build/src/components/Column/Columns.js +78 -0
  31. package/build/src/components/Column/Columns.js.map +1 -0
  32. package/build/src/components/Container/Container.js +30 -0
  33. package/build/src/components/Container/Container.js.map +1 -0
  34. package/build/src/components/Divider/Divider.js +33 -0
  35. package/build/src/components/Divider/Divider.js.map +1 -0
  36. package/build/src/components/DropdownMenu/DropdownMenu.js +128 -0
  37. package/build/src/components/DropdownMenu/DropdownMenu.js.map +1 -0
  38. package/build/src/components/DropdownMenu/MenuItem.js +37 -0
  39. package/build/src/components/DropdownMenu/MenuItem.js.map +1 -0
  40. package/build/src/components/Form/Checkbox/Checkbox.js +86 -0
  41. package/build/src/components/Form/Checkbox/Checkbox.js.map +1 -0
  42. package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js +10 -0
  43. package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js.map +1 -0
  44. package/build/src/components/Form/FormField/FormField.js +26 -0
  45. package/build/src/components/Form/FormField/FormField.js.map +1 -0
  46. package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js +22 -0
  47. package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js.map +1 -0
  48. package/build/src/components/Form/FormLabelText/FormLabelText.js +22 -0
  49. package/build/src/components/Form/FormLabelText/FormLabelText.js.map +1 -0
  50. package/build/src/components/Form/Input/Input.js +81 -0
  51. package/build/src/components/Form/Input/Input.js.map +1 -0
  52. package/build/src/components/Form/PasswordInput/PasswordInput.js +126 -0
  53. package/build/src/components/Form/PasswordInput/PasswordInput.js.map +1 -0
  54. package/build/src/components/Form/Radio/Radio.js +82 -0
  55. package/build/src/components/Form/Radio/Radio.js.map +1 -0
  56. package/build/src/components/Form/RadioButton/RadioButton.js +87 -0
  57. package/build/src/components/Form/RadioButton/RadioButton.js.map +1 -0
  58. package/build/src/components/Form/Select/Select.js +162 -0
  59. package/build/src/components/Form/Select/Select.js.map +1 -0
  60. package/build/src/components/Form/Textarea/Textarea.js +39 -0
  61. package/build/src/components/Form/Textarea/Textarea.js.map +1 -0
  62. package/build/src/components/Form/Toggle/Toggle.js +86 -0
  63. package/build/src/components/Form/Toggle/Toggle.js.map +1 -0
  64. package/build/src/components/Form/ToggleButton/ToggleButton.js +80 -0
  65. package/build/src/components/Form/ToggleButton/ToggleButton.js.map +1 -0
  66. package/build/src/components/Icon/Icon.js +40 -0
  67. package/build/src/components/Icon/Icon.js.map +1 -0
  68. package/build/src/components/Inline/Inline.js +54 -0
  69. package/build/src/components/Inline/Inline.js.map +1 -0
  70. package/build/src/components/Link/Link.js +47 -0
  71. package/build/src/components/Link/Link.js.map +1 -0
  72. package/build/src/components/Logo/Logo.js +15 -0
  73. package/build/src/components/Logo/Logo.js.map +1 -0
  74. package/build/src/components/MediaItem/MediaItem.js +41 -0
  75. package/build/src/components/MediaItem/MediaItem.js.map +1 -0
  76. package/build/src/components/MediaViewerBar/MediaViewerBar.js +36 -0
  77. package/build/src/components/MediaViewerBar/MediaViewerBar.js.map +1 -0
  78. package/build/src/components/Notification/Notification.js +46 -0
  79. package/build/src/components/Notification/Notification.js.map +1 -0
  80. package/build/src/components/PictogramButton/PictogramButton.js +56 -0
  81. package/build/src/components/PictogramButton/PictogramButton.js.map +1 -0
  82. package/build/src/components/ProgressBar/ProgressBar.js +15 -0
  83. package/build/src/components/ProgressBar/ProgressBar.js.map +1 -0
  84. package/build/src/components/RoundButton/RoundButton.js +53 -0
  85. package/build/src/components/RoundButton/RoundButton.js.map +1 -0
  86. package/build/src/components/SearchResult/SearchResult.js +81 -0
  87. package/build/src/components/SearchResult/SearchResult.js.map +1 -0
  88. package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js +57 -0
  89. package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js.map +1 -0
  90. package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js +35 -0
  91. package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js.map +1 -0
  92. package/build/src/components/Stack/Stack.js +34 -0
  93. package/build/src/components/Stack/Stack.js.map +1 -0
  94. package/build/src/components/SubThemeProvider/SubThemeProvider.js +35 -0
  95. package/build/src/components/SubThemeProvider/SubThemeProvider.js.map +1 -0
  96. package/build/src/components/Tabs/Tabs.js +53 -0
  97. package/build/src/components/Tabs/Tabs.js.map +1 -0
  98. package/build/src/components/Typography/Header/Header.js +17 -0
  99. package/build/src/components/Typography/Header/Header.js.map +1 -0
  100. package/build/src/components/Typography/StyledText/StyledText.js +74 -0
  101. package/build/src/components/Typography/StyledText/StyledText.js.map +1 -0
  102. package/build/src/components/Typography/Text/Text.js +26 -0
  103. package/build/src/components/Typography/Text/Text.js.map +1 -0
  104. package/build/src/components/Typography/TextClamped/TextClamped.js +25 -0
  105. package/build/src/components/Typography/TextClamped/TextClamped.js.map +1 -0
  106. package/build/src/components/VirtualScrollList/VirtualScrollList.js +62 -0
  107. package/build/src/components/VirtualScrollList/VirtualScrollList.js.map +1 -0
  108. package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js +96 -0
  109. package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js.map +1 -0
  110. package/build/src/index.js +47 -0
  111. package/build/src/index.js.map +1 -0
  112. package/build/src/shared/informDeprecation.js +11 -0
  113. package/build/src/shared/informDeprecation.js.map +1 -0
  114. package/build/src/shared/mediaQueries.js +39 -0
  115. package/build/src/shared/mediaQueries.js.map +1 -0
  116. package/build/src/shared/useAutoPosition.js +52 -0
  117. package/build/src/shared/useAutoPosition.js.map +1 -0
  118. package/build/src/shared/useDocument.js +6 -0
  119. package/build/src/shared/useDocument.js.map +1 -0
  120. package/build/src/shared/useHover.js +27 -0
  121. package/build/src/shared/useHover.js.map +1 -0
  122. package/build/src/shared/useKeyboard.js +45 -0
  123. package/build/src/shared/useKeyboard.js.map +1 -0
  124. package/build/src/shared/useOutsideClick.js +31 -0
  125. package/build/src/shared/useOutsideClick.js.map +1 -0
  126. package/build/src/shared/useWindow.js +6 -0
  127. package/build/src/shared/useWindow.js.map +1 -0
  128. package/package.json +20 -6
  129. package/build/build-tokens/_subThemeType.d.ts +0 -1
  130. package/build/index.js +0 -3
  131. package/build/index.js.LICENSE.txt +0 -8
  132. 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,6 @@
1
+ function useDocument() {
2
+ return document;
3
+ }
4
+
5
+ export { useDocument };
6
+ //# sourceMappingURL=useDocument.js.map
@@ -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,6 @@
1
+ function useWindow() {
2
+ return window;
3
+ }
4
+
5
+ export { useWindow };
6
+ //# sourceMappingURL=useWindow.js.map
@@ -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.19",
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
- "main": "build/index.js",
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": "webpack",
43
- "postbuild": "tsc --emitDeclarationOnly && mkdir -p ./build/build-tokens/assets && cp -R ./build-tokens/assets ./build/build-tokens/",
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.js",
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*.js\"",
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';