@primer/components 0.0.0-2021109221452 → 0.0.0-2021109223232

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 (175) hide show
  1. package/CHANGELOG.md +5 -3
  2. package/dist/browser.esm.js +178 -178
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +179 -179
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/index.js +23 -12
  7. package/lib/AnchoredOverlay/index.js +12 -4
  8. package/lib/Autocomplete/index.js +14 -7
  9. package/lib/Button/index.js +70 -21
  10. package/lib/DropdownMenu/index.js +20 -6
  11. package/lib/DropdownStyles.js +26 -18
  12. package/lib/FilteredActionList/index.js +12 -4
  13. package/lib/Overlay.js +3 -1
  14. package/lib/Pagination/index.js +12 -6
  15. package/lib/Portal/Portal.js +3 -2
  16. package/lib/Portal/index.js +16 -5
  17. package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
  18. package/lib/SelectMenu/index.js +14 -7
  19. package/lib/SelectPanel/index.js +12 -4
  20. package/lib/Token/index.js +30 -11
  21. package/lib/behaviors/anchoredPosition.js +234 -205
  22. package/lib/behaviors/focusTrap.js +157 -121
  23. package/lib/behaviors/focusZone.js +509 -434
  24. package/lib/behaviors/scrollIntoViewingArea.js +35 -18
  25. package/lib/constants.js +43 -39
  26. package/lib/hooks/index.js +60 -16
  27. package/lib/hooks/useAnchoredPosition.js +40 -31
  28. package/lib/hooks/useCombinedRefs.d.ts +2 -2
  29. package/lib/hooks/useCombinedRefs.js +35 -46
  30. package/lib/hooks/useDialog.js +96 -72
  31. package/lib/hooks/useFocusTrap.js +60 -43
  32. package/lib/hooks/useFocusZone.js +50 -54
  33. package/lib/hooks/useOnEscapePress.js +36 -25
  34. package/lib/hooks/useOpenAndCloseFocus.js +34 -22
  35. package/lib/hooks/useProvidedRefOrCreate.js +14 -10
  36. package/lib/hooks/useProvidedStateOrCreate.js +16 -13
  37. package/lib/hooks/useRenderForcingRef.js +17 -13
  38. package/lib/hooks/useResizeObserver.js +18 -15
  39. package/lib/hooks/useSafeTimeout.js +30 -22
  40. package/lib/hooks/useScrollFlash.js +23 -16
  41. package/lib/index.js +636 -161
  42. package/lib/polyfills/eventListenerSignal.js +45 -37
  43. package/lib/sx.js +14 -7
  44. package/lib/theme-preval.js +2945 -64
  45. package/lib/theme.js +12 -3
  46. package/lib/utils/iterateFocusableElements.js +85 -63
  47. package/lib/utils/theme.js +47 -33
  48. package/lib/utils/types/AriaRole.js +1 -2
  49. package/lib/utils/types/ComponentProps.js +1 -2
  50. package/lib/utils/types/Flatten.js +1 -2
  51. package/lib/utils/types/KeyPaths.js +1 -2
  52. package/lib/utils/types/MandateProps.js +1 -16
  53. package/lib/utils/types/Merge.js +1 -2
  54. package/lib/utils/types/index.js +69 -16
  55. package/lib/utils/uniqueId.js +8 -5
  56. package/lib/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  57. package/lib/utils/useIsomorphicLayoutEffect.js +12 -0
  58. package/lib/utils/userAgent.js +12 -8
  59. package/lib-esm/Overlay.js +2 -1
  60. package/lib-esm/Portal/Portal.js +2 -1
  61. package/lib-esm/hooks/useAnchoredPosition.js +2 -1
  62. package/lib-esm/hooks/useCombinedRefs.d.ts +2 -2
  63. package/lib-esm/hooks/useCombinedRefs.js +3 -2
  64. package/lib-esm/hooks/useResizeObserver.js +2 -2
  65. package/lib-esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  66. package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
  67. package/package.json +2 -3
  68. package/lib/ActionList/Divider.jsx +0 -29
  69. package/lib/ActionList/Group.jsx +0 -23
  70. package/lib/ActionList/Header.jsx +0 -66
  71. package/lib/ActionList/Item.jsx +0 -301
  72. package/lib/ActionList/List.jsx +0 -138
  73. package/lib/ActionMenu.jsx +0 -73
  74. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
  75. package/lib/Autocomplete/Autocomplete.jsx +0 -100
  76. package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
  77. package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
  78. package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
  79. package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
  80. package/lib/Avatar.jsx +0 -34
  81. package/lib/AvatarPair.jsx +0 -29
  82. package/lib/AvatarStack.jsx +0 -151
  83. package/lib/BaseStyles.jsx +0 -65
  84. package/lib/BorderBox.jsx +0 -18
  85. package/lib/Box.jsx +0 -10
  86. package/lib/BranchName.jsx +0 -20
  87. package/lib/Breadcrumbs.jsx +0 -74
  88. package/lib/Button/Button.jsx +0 -60
  89. package/lib/Button/ButtonBase.jsx +0 -36
  90. package/lib/Button/ButtonClose.jsx +0 -55
  91. package/lib/Button/ButtonDanger.jsx +0 -63
  92. package/lib/Button/ButtonGroup.jsx +0 -55
  93. package/lib/Button/ButtonInvisible.jsx +0 -52
  94. package/lib/Button/ButtonOutline.jsx +0 -63
  95. package/lib/Button/ButtonPrimary.jsx +0 -62
  96. package/lib/Button/ButtonStyles.jsx +0 -37
  97. package/lib/Button/ButtonTableList.jsx +0 -49
  98. package/lib/Caret.jsx +0 -93
  99. package/lib/CircleBadge.jsx +0 -43
  100. package/lib/CircleOcticon.jsx +0 -21
  101. package/lib/CounterLabel.jsx +0 -44
  102. package/lib/Details.jsx +0 -21
  103. package/lib/Dialog/ConfirmationDialog.jsx +0 -146
  104. package/lib/Dialog/Dialog.jsx +0 -273
  105. package/lib/Dialog.jsx +0 -131
  106. package/lib/Dropdown.jsx +0 -134
  107. package/lib/DropdownMenu/DropdownButton.jsx +0 -14
  108. package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
  109. package/lib/FilterList.jsx +0 -63
  110. package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
  111. package/lib/FilteredSearch.jsx +0 -29
  112. package/lib/Flash.jsx +0 -70
  113. package/lib/Flex.jsx +0 -15
  114. package/lib/FormGroup.jsx +0 -25
  115. package/lib/Grid.jsx +0 -15
  116. package/lib/Header.jsx +0 -90
  117. package/lib/Heading.jsx +0 -21
  118. package/lib/Label.jsx +0 -84
  119. package/lib/LabelGroup.jsx +0 -19
  120. package/lib/Link.jsx +0 -38
  121. package/lib/Overlay.jsx +0 -155
  122. package/lib/Pagehead.jsx +0 -18
  123. package/lib/Pagination/Pagination.jsx +0 -163
  124. package/lib/Pagination/model.jsx +0 -174
  125. package/lib/PointerBox.jsx +0 -25
  126. package/lib/Popover.jsx +0 -210
  127. package/lib/Portal/Portal.jsx +0 -78
  128. package/lib/Position.jsx +0 -46
  129. package/lib/ProgressBar.jsx +0 -39
  130. package/lib/SelectMenu/SelectMenu.jsx +0 -114
  131. package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
  132. package/lib/SelectMenu/SelectMenuDivider.jsx +0 -43
  133. package/lib/SelectMenu/SelectMenuFilter.jsx +0 -59
  134. package/lib/SelectMenu/SelectMenuFooter.jsx +0 -46
  135. package/lib/SelectMenu/SelectMenuHeader.jsx +0 -44
  136. package/lib/SelectMenu/SelectMenuItem.jsx +0 -143
  137. package/lib/SelectMenu/SelectMenuList.jsx +0 -60
  138. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -21
  139. package/lib/SelectMenu/SelectMenuModal.jsx +0 -119
  140. package/lib/SelectMenu/SelectMenuTab.jsx +0 -93
  141. package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -43
  142. package/lib/SelectMenu/SelectMenuTabs.jsx +0 -58
  143. package/lib/SelectPanel/SelectPanel.jsx +0 -105
  144. package/lib/SideNav.jsx +0 -177
  145. package/lib/Spinner.jsx +0 -35
  146. package/lib/StateLabel.jsx +0 -89
  147. package/lib/StyledOcticon.jsx +0 -20
  148. package/lib/SubNav.jsx +0 -104
  149. package/lib/TabNav.jsx +0 -60
  150. package/lib/Text.jsx +0 -14
  151. package/lib/TextInput.jsx +0 -23
  152. package/lib/TextInputWithTokens.jsx +0 -218
  153. package/lib/ThemeProvider.jsx +0 -130
  154. package/lib/Timeline.jsx +0 -124
  155. package/lib/Token/AvatarToken.jsx +0 -54
  156. package/lib/Token/IssueLabelToken.jsx +0 -125
  157. package/lib/Token/Token.jsx +0 -103
  158. package/lib/Token/TokenBase.jsx +0 -88
  159. package/lib/Token/_RemoveTokenButton.jsx +0 -108
  160. package/lib/Token/_TokenTextContainer.jsx +0 -49
  161. package/lib/Tooltip.jsx +0 -246
  162. package/lib/Truncate.jsx +0 -27
  163. package/lib/UnderlineNav.jsx +0 -90
  164. package/lib/_TextInputWrapper.jsx +0 -114
  165. package/lib/_UnstyledTextInput.jsx +0 -22
  166. package/lib/hooks/useDetails.jsx +0 -39
  167. package/lib/hooks/useOnOutsideClick.jsx +0 -61
  168. package/lib/hooks/useOverlay.jsx +0 -15
  169. package/lib/utils/deprecate.jsx +0 -59
  170. package/lib/utils/isNumeric.jsx +0 -7
  171. package/lib/utils/ssr.jsx +0 -6
  172. package/lib/utils/test-deprecations.jsx +0 -20
  173. package/lib/utils/test-helpers.jsx +0 -8
  174. package/lib/utils/test-matchers.jsx +0 -100
  175. package/lib/utils/testing.jsx +0 -206
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- const styled_components_1 = __importDefault(require("styled-components"));
26
- const constants_1 = require("../constants");
27
- const sx_1 = __importDefault(require("../sx"));
28
- const ButtonBase_1 = __importStar(require("./ButtonBase"));
29
- const ButtonOutline = styled_components_1.default(ButtonBase_1.default) `
30
- color: ${constants_1.get('colors.btn.outline.text')};
31
- border: 1px solid ${constants_1.get('colors.btn.border')};
32
- background-color: ${constants_1.get('colors.btn.bg')};
33
- box-shadow: ${constants_1.get('shadows.btn.shadow')};
34
-
35
- &:hover {
36
- color: ${constants_1.get('colors.btn.outline.hoverText')};
37
- background-color: ${constants_1.get('colors.btn.outline.hoverBg')};
38
- border-color: ${constants_1.get('colors.btn.outline.hoverBorder')};
39
- box-shadow: ${constants_1.get('shadows.btn.outline.hoverShadow')};
40
- }
41
- // focus must come before :active so that the active box shadow overrides
42
- &:focus {
43
- border-color: ${constants_1.get('colors.btn.outline.focusBorder')};
44
- box-shadow: ${constants_1.get('shadows.btn.outline.focusShadow')};
45
- }
46
-
47
- &:active {
48
- color: ${constants_1.get('colors.btn.outline.selectedText')};
49
- background-color: ${constants_1.get('colors.btn.outline.selectedBg')};
50
- box-shadow: ${constants_1.get('shadows.btn.outline.selectedShadow')};
51
- border-color: ${constants_1.get('colors.btn.outline.selectedBorder')};
52
- }
53
-
54
- &:disabled {
55
- color: ${constants_1.get('colors.btn.outline.disabledText')};
56
- background-color: ${constants_1.get('colors.btn.outline.disabledBg')};
57
- border-color: ${constants_1.get('colors.btn.border')};
58
- }
59
-
60
- ${ButtonBase_1.buttonSystemProps};
61
- ${sx_1.default};
62
- `;
63
- exports.default = ButtonOutline;
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.ButtonPrimary = void 0;
26
- const styled_components_1 = __importDefault(require("styled-components"));
27
- const constants_1 = require("../constants");
28
- const sx_1 = __importDefault(require("../sx"));
29
- const ButtonBase_1 = __importStar(require("./ButtonBase"));
30
- exports.ButtonPrimary = styled_components_1.default(ButtonBase_1.default) `
31
- color: ${constants_1.get('colors.btn.primary.text')};
32
- border: 1px solid ${constants_1.get('colors.btn.primary.border')};
33
- background-color: ${constants_1.get('colors.btn.primary.bg')};
34
- box-shadow: ${constants_1.get('shadows.btn.primary.shadow')};
35
-
36
- &:hover {
37
- color: ${constants_1.get('colors.btn.primary.hoverText')};
38
- background-color: ${constants_1.get('colors.btn.primary.hoverBg')};
39
- border-color: ${constants_1.get('colors.btn.primary.hoverBorder')};
40
- box-shadow: ${constants_1.get('shadows.btn.primary.hoverShadow')};
41
- }
42
- // focus must come before :active so that the active box shadow overrides
43
- &:focus {
44
- border-color: ${constants_1.get('colors.btn.primary.focusBorder')};
45
- box-shadow: ${constants_1.get('shadows.btn.primary.focusShadow')};
46
- }
47
-
48
- &:active {
49
- background-color: ${constants_1.get('colors.btn.primary.selectedBg')};
50
- box-shadow: ${constants_1.get('shadows.btn.primary.selectedShadow')};
51
- }
52
-
53
- &:disabled {
54
- color: ${constants_1.get('colors.btn.primary.disabledText')};
55
- background-color: ${constants_1.get('colors.btn.primary.disabledBg')};
56
- border-color: ${constants_1.get('colors.btn.primary.disabledBorder')};
57
- }
58
-
59
- ${ButtonBase_1.buttonSystemProps};
60
- ${sx_1.default};
61
- `;
62
- exports.default = exports.ButtonPrimary;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const styled_components_1 = require("styled-components");
4
- const constants_1 = require("../constants");
5
- exports.default = styled_components_1.css `
6
- position: relative;
7
- display: inline-block;
8
- padding: 6px 16px;
9
- font-family: inherit;
10
- font-weight: ${constants_1.get('fontWeights.bold')};
11
- line-height: 20px;
12
- white-space: nowrap;
13
- vertical-align: middle;
14
- cursor: pointer;
15
- user-select: none;
16
- border-radius: ${constants_1.get('radii.2')};
17
- appearance: none;
18
- text-decoration: none;
19
- text-align: center;
20
-
21
- &:hover {
22
- // needed to override link styles
23
- text-decoration: none;
24
- }
25
-
26
- &:focus {
27
- outline: none;
28
- }
29
-
30
- &:disabled {
31
- cursor: default;
32
- }
33
-
34
- &:disabled svg {
35
- opacity: 0.6;
36
- }
37
- `;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const styled_components_1 = __importDefault(require("styled-components"));
7
- const constants_1 = require("../constants");
8
- const sx_1 = __importDefault(require("../sx"));
9
- const ButtonTableList = styled_components_1.default.summary `
10
- display: inline-block;
11
- padding: 0;
12
- font-size: ${constants_1.get('fontSizes.1')};
13
- color: ${constants_1.get('colors.fg.muted')};
14
- text-decoration: none;
15
- white-space: nowrap;
16
- cursor: pointer;
17
- user-select: none;
18
- background-color: transparent;
19
- border: 0;
20
- appearance: none; // Corrects inability to style clickable input types in iOS.
21
-
22
- &:hover {
23
- text-decoration: underline;
24
- }
25
-
26
- &:disabled {
27
- &,
28
- &:hover {
29
- color: ${constants_1.get('colors.primer.fg.disabled')};
30
- cursor: default;
31
- }
32
- }
33
-
34
- &:after {
35
- display: inline-block;
36
- margin-left: ${constants_1.get('space.1')};
37
- width: 0;
38
- height: 0;
39
- vertical-align: -2px;
40
- content: '';
41
- border: 4px solid transparent;
42
- border-top-color: currentcolor;
43
- }
44
- ${constants_1.COMMON}
45
- ${constants_1.TYPOGRAPHY}
46
- ${constants_1.LAYOUT}
47
- ${sx_1.default};
48
- `;
49
- exports.default = ButtonTableList;
package/lib/Caret.jsx DELETED
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const styled_components_1 = require("styled-components");
8
- const styled_system_1 = require("styled-system");
9
- const oppositeEdge = {
10
- top: 'Bottom',
11
- right: 'Left',
12
- bottom: 'Top',
13
- left: 'Right'
14
- };
15
- const perpendicularEdge = {
16
- top: 'Left',
17
- right: 'Top',
18
- bottom: 'Left',
19
- left: 'Top'
20
- };
21
- function getEdgeAlign(location) {
22
- const [edge, align] = location.split('-');
23
- return [edge, align];
24
- }
25
- function getPosition(edge, align, spacing) {
26
- const opposite = oppositeEdge[edge].toLowerCase();
27
- const perp = perpendicularEdge[edge].toLowerCase();
28
- return {
29
- [opposite]: '100%',
30
- [align || perp]: align ? spacing : '50%'
31
- };
32
- }
33
- const getBg = styled_system_1.style({ prop: 'bg', key: 'colors' });
34
- const getBorderColor = styled_system_1.style({ prop: 'borderColor', key: 'colors' });
35
- const getBorderWidth = styled_system_1.style({ prop: 'borderWidth', key: 'borderWidths', scale: [0, 1] });
36
- function Caret(props) {
37
- const theme = react_1.default.useContext(styled_components_1.ThemeContext);
38
- const propsWithTheme = { ...props, theme: props.theme ?? theme };
39
- const { bg } = getBg(propsWithTheme);
40
- const { borderColor } = getBorderColor(propsWithTheme);
41
- const { borderWidth } = getBorderWidth(propsWithTheme);
42
- const { size = 8, location = 'bottom' } = props;
43
- const [edge, align] = getEdgeAlign(location);
44
- const perp = perpendicularEdge[edge];
45
- // note: these arrays represent points in the form [x, y]
46
- const a = [-size, 0];
47
- const b = [0, size];
48
- const c = [size, 0];
49
- // spaces are optional in path `d` attribute, and points are
50
- // represented in the form `x,y` -- which is what the arrays above
51
- // become when stringified!
52
- const triangle = `M${a}L${b}L${c}L${a}Z`;
53
- const line = `M${a}L${b}L${c}`;
54
- const transform = {
55
- top: `translate(${[size, size * 2]}) rotate(180)`,
56
- right: `translate(${[0, size]}) rotate(-90)`,
57
- bottom: `translate(${[size, 0]})`,
58
- left: `translate(${[size * 2, size]}) rotate(90)`
59
- }[edge];
60
- return (<svg width={size * 2} height={size * 2} style={{
61
- pointerEvents: 'none',
62
- position: 'absolute',
63
- ...getPosition(edge, align, size),
64
- // if align is set (top|right|bottom|left),
65
- // then we don't need an offset margin
66
- [`margin${perp}`]: align ? null : -size
67
- }}>
68
- <g transform={transform}>
69
- <path d={triangle} fill={bg}/>
70
- <path d={line} fill="none" stroke={borderColor} strokeWidth={borderWidth}/>
71
- </g>
72
- </svg>);
73
- }
74
- Caret.locations = [
75
- 'top',
76
- 'top-left',
77
- 'top-right',
78
- 'right',
79
- 'right-top',
80
- 'right-bottom',
81
- 'bottom',
82
- 'bottom-left',
83
- 'bottom-right',
84
- 'left',
85
- 'left-top',
86
- 'left-bottom'
87
- ];
88
- Caret.defaultProps = {
89
- bg: 'canvas.default',
90
- borderColor: 'border.default',
91
- borderWidth: 1
92
- };
93
- exports.default = Caret;
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const styled_components_1 = __importDefault(require("styled-components"));
7
- const constants_1 = require("./constants");
8
- const StyledOcticon_1 = __importDefault(require("./StyledOcticon"));
9
- const sx_1 = __importDefault(require("./sx"));
10
- const isNumeric_1 = __importDefault(require("./utils/isNumeric"));
11
- const variantSizes = {
12
- small: 56,
13
- medium: 96,
14
- large: 128
15
- };
16
- const sizeStyles = ({ size, variant = 'medium' }) => {
17
- const calc = isNumeric_1.default(size) ? size : variantSizes[variant];
18
- return {
19
- width: calc,
20
- height: calc
21
- };
22
- };
23
- const CircleBadge = styled_components_1.default.div `
24
- display: ${props => (props.inline ? 'inline-flex' : 'flex')};
25
- align-items: center;
26
- justify-content: center;
27
- background-color: ${constants_1.get('colors.canvas.default')};
28
- border-radius: 50%;
29
- box-shadow: ${constants_1.get('shadows.shadow.medium')};
30
- ${constants_1.COMMON};
31
- ${sizeStyles};
32
- ${sx_1.default};
33
- `;
34
- const CircleBadgeIcon = styled_components_1.default(StyledOcticon_1.default) `
35
- height: auto;
36
- max-width: 60%;
37
- max-height: 55%;
38
- `;
39
- CircleBadge.defaultProps = {
40
- inline: false
41
- };
42
- CircleBadgeIcon.displayName = 'CircleBadge.Icon';
43
- exports.default = Object.assign(CircleBadge, { Icon: CircleBadgeIcon });
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const Box_1 = __importDefault(require("./Box"));
8
- function CircleOcticon(props) {
9
- const { size, as } = props;
10
- const { icon: IconComponent, bg, ...rest } = props;
11
- return (<Box_1.default as={as} bg={bg} overflow="hidden" borderWidth={0} size={size} borderRadius="50%" borderStyle="solid" borderColor="border.default">
12
- <Box_1.default display="flex" {...rest} alignItems="center" justifyContent="center">
13
- <IconComponent size={size}/>
14
- </Box_1.default>
15
- </Box_1.default>);
16
- }
17
- CircleOcticon.defaultProps = {
18
- ...Box_1.default.defaultProps,
19
- size: 32
20
- };
21
- exports.default = CircleOcticon;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const styled_components_1 = __importDefault(require("styled-components"));
7
- const constants_1 = require("./constants");
8
- const sx_1 = __importDefault(require("./sx"));
9
- const colorStyles = ({ scheme, ...props }) => {
10
- return {
11
- color: scheme === 'secondary'
12
- ? constants_1.get('colors.fg.default')(props)
13
- : scheme === 'primary'
14
- ? constants_1.get('colors.fg.onEmphasis')(props)
15
- : constants_1.get('colors.fg.default')(props)
16
- };
17
- };
18
- const bgStyles = ({ scheme, ...props }) => {
19
- return {
20
- backgroundColor: scheme === 'secondary'
21
- ? constants_1.get('colors.neutral.muted')(props)
22
- : scheme === 'primary'
23
- ? constants_1.get('colors.neutral.emphasis')(props)
24
- : constants_1.get('colors.neutral.muted')(props)
25
- };
26
- };
27
- const CounterLabel = styled_components_1.default.span `
28
- display: inline-block;
29
- padding: 2px 5px;
30
- font-size: ${constants_1.get('fontSizes.0')};
31
- font-weight: ${constants_1.get('fontWeights.bold')};
32
- line-height: ${constants_1.get('lineHeights.condensedUltra')};
33
- border-radius: 20px;
34
- ${colorStyles};
35
- ${bgStyles};
36
- ${constants_1.COMMON};
37
-
38
- &:empty {
39
- display: none;
40
- }
41
-
42
- ${sx_1.default};
43
- `;
44
- exports.default = CounterLabel;
package/lib/Details.jsx DELETED
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const styled_components_1 = __importDefault(require("styled-components"));
7
- const constants_1 = require("./constants");
8
- const sx_1 = __importDefault(require("./sx"));
9
- const Details = styled_components_1.default.details `
10
- & > summary {
11
- list-style: none;
12
- }
13
- & > summary::-webkit-details-marker {
14
- display: none;
15
- }
16
-
17
- ${constants_1.COMMON}
18
- ${sx_1.default};
19
- `;
20
- Details.displayName = 'Details';
21
- exports.default = Details;
@@ -1,146 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.useConfirm = exports.ConfirmationDialog = void 0;
26
- const react_1 = __importStar(require("react"));
27
- const react_dom_1 = __importDefault(require("react-dom"));
28
- const styled_components_1 = __importDefault(require("styled-components"));
29
- const Box_1 = __importDefault(require("../Box"));
30
- const ThemeProvider_1 = require("../ThemeProvider");
31
- const focusZone_1 = require("../behaviors/focusZone");
32
- const constants_1 = require("../constants");
33
- const Dialog_1 = require("../Dialog/Dialog");
34
- const useFocusZone_1 = require("../hooks/useFocusZone");
35
- const StyledConfirmationHeader = styled_components_1.default.header `
36
- padding: ${constants_1.get('space.2')};
37
- display: flex;
38
- flex-direction: row;
39
- `;
40
- const StyledTitle = styled_components_1.default(Box_1.default) `
41
- font-size: ${constants_1.get('fontSizes.3')};
42
- font-weight: ${constants_1.get('fontWeights.bold')};
43
- padding: 6px ${constants_1.get('space.2')};
44
- flex-grow: 1;
45
- `;
46
- const ConfirmationHeader = ({ title, onClose, dialogLabelId }) => {
47
- const onCloseClick = react_1.useCallback(() => {
48
- onClose('close-button');
49
- }, [onClose]);
50
- return (<StyledConfirmationHeader>
51
- <StyledTitle id={dialogLabelId}>{title}</StyledTitle>
52
- <Dialog_1.Dialog.CloseButton onClose={onCloseClick}/>
53
- </StyledConfirmationHeader>);
54
- };
55
- const StyledConfirmationBody = styled_components_1.default(Box_1.default) `
56
- font-size: ${constants_1.get('fontSizes.1')};
57
- padding: 0 ${constants_1.get('space.3')} ${constants_1.get('space.3')} ${constants_1.get('space.3')};
58
- color: ${constants_1.get('colors.fg.muted')};
59
- flex-grow: 1;
60
- `;
61
- const ConfirmationBody = ({ children }) => {
62
- return <StyledConfirmationBody>{children}</StyledConfirmationBody>;
63
- };
64
- const StyledConfirmationFooter = styled_components_1.default(Box_1.default) `
65
- display: grid;
66
- grid-auto-flow: column;
67
- grid-auto-columns: max-content;
68
- grid-gap: ${constants_1.get('space.2')};
69
- align-items: end;
70
- justify-content: end;
71
- padding: ${constants_1.get('space.1')} ${constants_1.get('space.3')} ${constants_1.get('space.3')};
72
- `;
73
- const ConfirmationFooter = ({ footerButtons }) => {
74
- const { containerRef: footerRef } = useFocusZone_1.useFocusZone({
75
- bindKeys: focusZone_1.FocusKeys.ArrowHorizontal | focusZone_1.FocusKeys.Tab,
76
- focusInStrategy: 'closest'
77
- });
78
- // Must have exactly 2 buttons!
79
- return (<StyledConfirmationFooter ref={footerRef}>
80
- <Dialog_1.Dialog.Buttons buttons={footerButtons ?? []}/>
81
- </StyledConfirmationFooter>);
82
- };
83
- /**
84
- * A ConfirmationDialog is a special kind of dialog with more rigid behavior. It
85
- * is used to confirm a user action. ConfirmationDialogs always have exactly
86
- * two buttons: one to cancel the action and one to confirm it. No custom
87
- * rendering capabilities are provided for ConfirmationDialog.
88
- */
89
- const ConfirmationDialog = props => {
90
- const { onClose, title, cancelButtonContent = 'Cancel', confirmButtonContent = 'OK', confirmButtonType = 'normal', children } = props;
91
- const onCancelButtonClick = react_1.useCallback(() => {
92
- onClose('cancel');
93
- }, [onClose]);
94
- const onConfirmButtonClick = react_1.useCallback(() => {
95
- onClose('confirm');
96
- }, [onClose]);
97
- const cancelButton = {
98
- content: cancelButtonContent,
99
- onClick: onCancelButtonClick
100
- };
101
- const confirmButton = {
102
- content: confirmButtonContent,
103
- buttonType: confirmButtonType,
104
- onClick: onConfirmButtonClick,
105
- autoFocus: true
106
- };
107
- const footerButtons = [cancelButton, confirmButton];
108
- return (<Dialog_1.Dialog onClose={onClose} title={title} footerButtons={footerButtons} role="alertdialog" width="medium" renderHeader={ConfirmationHeader} renderBody={ConfirmationBody} renderFooter={ConfirmationFooter}>
109
- {children}
110
- </Dialog_1.Dialog>);
111
- };
112
- exports.ConfirmationDialog = ConfirmationDialog;
113
- async function confirm(themeProps, options) {
114
- const { content, ...confirmationDialogProps } = options;
115
- return new Promise(resolve => {
116
- const hostElement = document.createElement('div');
117
- const onClose = gesture => {
118
- react_dom_1.default.unmountComponentAtNode(hostElement);
119
- if (gesture === 'confirm') {
120
- resolve(true);
121
- }
122
- else {
123
- resolve(false);
124
- }
125
- };
126
- react_dom_1.default.render(<ThemeProvider_1.ThemeProvider {...themeProps}>
127
- <exports.ConfirmationDialog {...confirmationDialogProps} onClose={onClose}>
128
- {content}
129
- </exports.ConfirmationDialog>
130
- </ThemeProvider_1.ThemeProvider>, hostElement);
131
- });
132
- }
133
- /**
134
- * This hook takes no parameters and returns an `async` function, `confirm`. When `confirm`
135
- * is called, it shows the confirmation dialog. When the dialog is dismissed, a promise is
136
- * resolved with `true` or `false` depending on whether or not the confirm button was used.
137
- */
138
- function useConfirm() {
139
- const { theme, colorMode, dayScheme, nightScheme } = ThemeProvider_1.useTheme();
140
- const result = react_1.useCallback((options) => {
141
- const themeProps = { theme, colorMode, dayScheme, nightScheme };
142
- return confirm(themeProps, options);
143
- }, [theme, colorMode, dayScheme, nightScheme]);
144
- return result;
145
- }
146
- exports.useConfirm = useConfirm;