@primer/components 0.0.0-2021111225614 → 0.0.0-202111136954

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 (174) hide show
  1. package/dist/browser.esm.js +2 -2209
  2. package/dist/browser.esm.js.map +1 -1
  3. package/dist/browser.umd.js +2 -2209
  4. package/dist/browser.umd.js.map +1 -1
  5. package/lib/ActionList/Header.js +1 -1
  6. package/lib/ActionList/Item.js +10 -10
  7. package/lib/ActionList/List.js +1 -1
  8. package/lib/ActionList2/{MenuContext.d.ts → ActionListContainerContext.d.ts} +3 -3
  9. package/lib/ActionList2/{MenuContext.js → ActionListContainerContext.js} +3 -3
  10. package/lib/ActionList2/Item.js +5 -7
  11. package/lib/ActionList2/List.js +3 -3
  12. package/lib/ActionList2/Selection.js +4 -4
  13. package/lib/ActionMenu2.d.ts +19 -12
  14. package/lib/ActionMenu2.js +63 -29
  15. package/lib/Autocomplete/Autocomplete.d.ts +2 -1
  16. package/lib/Autocomplete/AutocompleteInput.d.ts +2 -1
  17. package/lib/BaseStyles.js +2 -20
  18. package/lib/BorderBox.js +1 -1
  19. package/lib/Box.js +1 -1
  20. package/lib/BranchName.js +1 -1
  21. package/lib/Breadcrumbs.js +3 -3
  22. package/lib/Button/Button.d.ts +2 -2
  23. package/lib/Button/Button.js +1 -1
  24. package/lib/Button/ButtonClose.d.ts +2 -2
  25. package/lib/Button/ButtonDanger.d.ts +2 -2
  26. package/lib/Button/ButtonGroup.js +1 -1
  27. package/lib/Button/ButtonInvisible.d.ts +2 -2
  28. package/lib/Button/ButtonOutline.d.ts +2 -2
  29. package/lib/Button/ButtonPrimary.d.ts +2 -2
  30. package/lib/Checkbox.d.ts +1 -1
  31. package/lib/Checkbox.js +1 -1
  32. package/lib/CircleOcticon.d.ts +35 -35
  33. package/lib/Details.js +1 -1
  34. package/lib/Dialog.d.ts +37 -37
  35. package/lib/Dropdown.d.ts +6 -6
  36. package/lib/DropdownMenu/DropdownButton.d.ts +6 -3
  37. package/lib/FilterList.d.ts +1 -1
  38. package/lib/FilteredActionList/FilteredActionList.js +1 -1
  39. package/lib/Flex.js +1 -1
  40. package/lib/LabelGroup.js +1 -1
  41. package/lib/NewButton/button-base.d.ts +6 -0
  42. package/lib/NewButton/button-base.js +69 -0
  43. package/lib/NewButton/button-link.d.ts +27 -0
  44. package/lib/NewButton/button-link.js +31 -0
  45. package/lib/NewButton/button.d.ts +2 -11
  46. package/lib/NewButton/button.js +6 -283
  47. package/lib/NewButton/icon-button.d.ts +4 -0
  48. package/lib/NewButton/icon-button.js +62 -0
  49. package/lib/NewButton/index.d.ts +6 -11
  50. package/lib/NewButton/index.js +18 -0
  51. package/lib/NewButton/styles.d.ts +202 -0
  52. package/lib/NewButton/styles.js +248 -0
  53. package/lib/NewButton/types.d.ts +28 -8
  54. package/lib/NewButton/types.js +19 -1
  55. package/lib/Overlay.js +1 -1
  56. package/lib/Pagination/Pagination.js +2 -2
  57. package/lib/Position.d.ts +4 -4
  58. package/lib/Position.js +1 -1
  59. package/lib/Radio.d.ts +38 -0
  60. package/lib/Radio.js +55 -0
  61. package/lib/SelectMenu/SelectMenu.d.ts +11 -10
  62. package/lib/SelectMenu/SelectMenu.js +1 -1
  63. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  64. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  65. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  66. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  67. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  68. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  69. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  70. package/lib/SelectMenu/SelectMenuTabs.js +1 -1
  71. package/lib/StateLabel.js +1 -1
  72. package/lib/StyledOcticon.js +1 -1
  73. package/lib/SubNav.js +3 -3
  74. package/lib/TextInputWithTokens.d.ts +2 -1
  75. package/lib/ThemeProvider.d.ts +1 -0
  76. package/lib/ThemeProvider.js +17 -4
  77. package/lib/Timeline.js +4 -4
  78. package/lib/Token/AvatarToken.d.ts +1 -1
  79. package/lib/Token/AvatarToken.js +1 -1
  80. package/lib/Token/IssueLabelToken.d.ts +1 -1
  81. package/lib/Token/Token.d.ts +1 -1
  82. package/lib/Token/TokenBase.js +1 -1
  83. package/lib/Tooltip.js +1 -1
  84. package/lib/UnderlineNav.js +2 -2
  85. package/lib/hooks/index.d.ts +1 -0
  86. package/lib/hooks/index.js +9 -1
  87. package/lib/index.d.ts +2 -0
  88. package/lib/index.js +8 -0
  89. package/lib-esm/ActionList/Header.js +1 -1
  90. package/lib-esm/ActionList/Item.js +10 -10
  91. package/lib-esm/ActionList/List.js +1 -1
  92. package/lib-esm/ActionList2/{MenuContext.d.ts → ActionListContainerContext.d.ts} +3 -3
  93. package/lib-esm/ActionList2/{MenuContext.js → ActionListContainerContext.js} +1 -1
  94. package/lib-esm/ActionList2/Item.js +5 -7
  95. package/lib-esm/ActionList2/List.js +3 -3
  96. package/lib-esm/ActionList2/Selection.js +4 -4
  97. package/lib-esm/ActionMenu2.d.ts +19 -12
  98. package/lib-esm/ActionMenu2.js +60 -27
  99. package/lib-esm/Autocomplete/Autocomplete.d.ts +2 -1
  100. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +2 -1
  101. package/lib-esm/BaseStyles.js +2 -20
  102. package/lib-esm/BorderBox.js +1 -1
  103. package/lib-esm/Box.js +1 -1
  104. package/lib-esm/BranchName.js +1 -1
  105. package/lib-esm/Breadcrumbs.js +3 -3
  106. package/lib-esm/Button/Button.d.ts +2 -2
  107. package/lib-esm/Button/Button.js +1 -1
  108. package/lib-esm/Button/ButtonClose.d.ts +2 -2
  109. package/lib-esm/Button/ButtonDanger.d.ts +2 -2
  110. package/lib-esm/Button/ButtonGroup.js +1 -1
  111. package/lib-esm/Button/ButtonInvisible.d.ts +2 -2
  112. package/lib-esm/Button/ButtonOutline.d.ts +2 -2
  113. package/lib-esm/Button/ButtonPrimary.d.ts +2 -2
  114. package/lib-esm/Checkbox.d.ts +1 -1
  115. package/lib-esm/Checkbox.js +1 -1
  116. package/lib-esm/CircleOcticon.d.ts +35 -35
  117. package/lib-esm/Details.js +1 -1
  118. package/lib-esm/Dialog.d.ts +37 -37
  119. package/lib-esm/Dropdown.d.ts +6 -6
  120. package/lib-esm/DropdownMenu/DropdownButton.d.ts +6 -3
  121. package/lib-esm/FilterList.d.ts +1 -1
  122. package/lib-esm/FilteredActionList/FilteredActionList.js +1 -1
  123. package/lib-esm/Flex.js +1 -1
  124. package/lib-esm/LabelGroup.js +1 -1
  125. package/lib-esm/NewButton/button-base.d.ts +6 -0
  126. package/lib-esm/NewButton/button-base.js +47 -0
  127. package/lib-esm/NewButton/button-link.d.ts +27 -0
  128. package/lib-esm/NewButton/button-link.js +15 -0
  129. package/lib-esm/NewButton/button.d.ts +2 -11
  130. package/lib-esm/NewButton/button.js +4 -275
  131. package/lib-esm/NewButton/icon-button.d.ts +4 -0
  132. package/lib-esm/NewButton/icon-button.js +39 -0
  133. package/lib-esm/NewButton/index.d.ts +6 -11
  134. package/lib-esm/NewButton/index.js +4 -1
  135. package/lib-esm/NewButton/styles.d.ts +202 -0
  136. package/lib-esm/NewButton/styles.js +229 -0
  137. package/lib-esm/NewButton/types.d.ts +28 -8
  138. package/lib-esm/NewButton/types.js +6 -1
  139. package/lib-esm/Overlay.js +1 -1
  140. package/lib-esm/Pagination/Pagination.js +2 -2
  141. package/lib-esm/Position.d.ts +4 -4
  142. package/lib-esm/Position.js +1 -1
  143. package/lib-esm/Radio.d.ts +38 -0
  144. package/lib-esm/Radio.js +40 -0
  145. package/lib-esm/SelectMenu/SelectMenu.d.ts +11 -10
  146. package/lib-esm/SelectMenu/SelectMenu.js +1 -1
  147. package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
  148. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  149. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  150. package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
  151. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  152. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  153. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  154. package/lib-esm/SelectMenu/SelectMenuTabs.js +1 -1
  155. package/lib-esm/StateLabel.js +1 -1
  156. package/lib-esm/StyledOcticon.js +1 -1
  157. package/lib-esm/SubNav.js +3 -3
  158. package/lib-esm/TextInputWithTokens.d.ts +2 -1
  159. package/lib-esm/ThemeProvider.d.ts +1 -0
  160. package/lib-esm/ThemeProvider.js +17 -4
  161. package/lib-esm/Timeline.js +4 -4
  162. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  163. package/lib-esm/Token/AvatarToken.js +1 -1
  164. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  165. package/lib-esm/Token/Token.d.ts +1 -1
  166. package/lib-esm/Token/TokenBase.js +1 -1
  167. package/lib-esm/Tooltip.js +1 -1
  168. package/lib-esm/UnderlineNav.js +2 -2
  169. package/lib-esm/hooks/index.d.ts +1 -0
  170. package/lib-esm/hooks/index.js +2 -1
  171. package/lib-esm/index.d.ts +2 -0
  172. package/lib-esm/index.js +1 -0
  173. package/package.json +14 -8
  174. package/CHANGELOG.md +0 -996
@@ -3,6 +3,7 @@ import { ButtonProps } from '../Button/Button';
3
3
  export declare type DropdownButtonProps = ButtonProps;
4
4
  export declare const DropdownButton: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<{
5
5
  color?: string | undefined;
6
+ property?: string | undefined;
6
7
  translate?: "yes" | "no" | undefined;
7
8
  hidden?: boolean | undefined;
8
9
  children?: React.ReactNode;
@@ -38,7 +39,6 @@ export declare const DropdownButton: React.ForwardRefExoticComponent<Pick<React.
38
39
  datatype?: string | undefined;
39
40
  inlist?: any;
40
41
  prefix?: string | undefined;
41
- property?: string | undefined;
42
42
  resource?: string | undefined;
43
43
  typeof?: string | undefined;
44
44
  vocab?: string | undefined;
@@ -267,8 +267,8 @@ export declare const DropdownButton: React.ForwardRefExoticComponent<Pick<React.
267
267
  onTransitionEnd?: React.TransitionEventHandler<HTMLButtonElement> | undefined;
268
268
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLButtonElement> | undefined;
269
269
  css?: import("@emotion/core").InterpolationWithTheme<any>;
270
- as?: string | React.ComponentClass<any, any> | React.FunctionComponent<any> | undefined;
271
270
  disabled?: boolean | undefined;
271
+ as?: string | React.ComponentClass<any, any> | React.FunctionComponent<any> | undefined;
272
272
  autoFocus?: boolean | undefined;
273
273
  formAction?: string | undefined;
274
274
  formEncType?: string | undefined;
@@ -277,4 +277,7 @@ export declare const DropdownButton: React.ForwardRefExoticComponent<Pick<React.
277
277
  formTarget?: string | undefined;
278
278
  } & {
279
279
  theme?: any;
280
- }>, "color" | "translate" | "hidden" | "children" | "theme" | "value" | "form" | "slot" | "style" | "title" | "variant" | "role" | "sx" | "type" | "name" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "as" | "disabled" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget"> & React.RefAttributes<HTMLElement>>;
280
+ }>, "theme" | "sx" | "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement> | keyof {
281
+ as?: string | React.ComponentClass<any, any> | React.FunctionComponent<any> | undefined;
282
+ variant?: "small" | "medium" | "large" | undefined;
283
+ }> & React.RefAttributes<HTMLElement>>;
@@ -16,6 +16,7 @@ declare namespace FilterListItem {
16
16
  }
17
17
  declare const _default: (({ children, ...rest }: React.PropsWithChildren<{
18
18
  color?: string | undefined;
19
+ property?: string | undefined;
19
20
  translate?: "yes" | "no" | undefined;
20
21
  hidden?: boolean | undefined;
21
22
  children?: React.ReactNode;
@@ -46,7 +47,6 @@ declare const _default: (({ children, ...rest }: React.PropsWithChildren<{
46
47
  datatype?: string | undefined;
47
48
  inlist?: any;
48
49
  prefix?: string | undefined;
49
- property?: string | undefined;
50
50
  resource?: string | undefined;
51
51
  typeof?: string | undefined;
52
52
  vocab?: string | undefined;
@@ -15,7 +15,7 @@ import useScrollFlash from '../hooks/useScrollFlash';
15
15
  import { scrollIntoViewingArea } from '../behaviors/scrollIntoViewingArea';
16
16
  const StyledHeader = styled.div.withConfig({
17
17
  displayName: "FilteredActionList__StyledHeader",
18
- componentId: "yg3jkv-0"
18
+ componentId: "sc-yg3jkv-0"
19
19
  })(["box-shadow:0 1px 0 ", ";z-index:1;"], get('colors.border.default'));
20
20
  export function FilteredActionList({
21
21
  loading = false,
package/lib-esm/Flex.js CHANGED
@@ -6,7 +6,7 @@ import Box from './Box';
6
6
  */
7
7
  const Flex = styled(Box).withConfig({
8
8
  displayName: "Flex",
9
- componentId: "arghxi-0"
9
+ componentId: "sc-arghxi-0"
10
10
  })([""]);
11
11
  Flex.defaultProps = {
12
12
  display: 'flex'
@@ -3,6 +3,6 @@ import { get } from './constants';
3
3
  import sx from './sx';
4
4
  const LabelGroup = styled.span.withConfig({
5
5
  displayName: "LabelGroup",
6
- componentId: "k6k3qa-0"
6
+ componentId: "sc-k6k3qa-0"
7
7
  })(["& *{margin-right:", ";}& *:last-child{margin-right:0;}", ";"], get('space.1'), sx);
8
8
  export default LabelGroup;
@@ -0,0 +1,6 @@
1
+ import { ComponentPropsWithRef } from 'react';
2
+ import { ForwardRefComponent as PolymorphicForwardRefComponent } from '@radix-ui/react-polymorphic';
3
+ import { ButtonProps } from './types';
4
+ declare const ButtonBase: PolymorphicForwardRefComponent<"a" | "button", ButtonProps>;
5
+ export declare type ButtonBaseProps = ComponentPropsWithRef<typeof ButtonBase>;
6
+ export default ButtonBase;
@@ -0,0 +1,47 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React, { forwardRef } from 'react';
4
+ import Box from '../Box';
5
+ import { merge } from '../sx';
6
+ import { useTheme } from '../ThemeProvider';
7
+ import { StyledButton } from './types';
8
+ import { getVariantStyles, getSizeStyles, getButtonStyles } from './styles';
9
+ const ButtonBase = /*#__PURE__*/forwardRef(({
10
+ children,
11
+ as: Component = 'button',
12
+ sx: sxProp = {},
13
+ ...props
14
+ }, forwardedRef) => {
15
+ const {
16
+ leadingIcon: LeadingIcon,
17
+ trailingIcon: TrailingIcon,
18
+ variant = 'default',
19
+ size = 'medium'
20
+ } = props;
21
+ const {
22
+ theme
23
+ } = useTheme();
24
+ const iconWrapStyles = {
25
+ display: 'inline-block'
26
+ };
27
+ const sxStyles = merge.all([getButtonStyles(theme), getSizeStyles(size, variant, false), getVariantStyles(variant, theme), sxProp]);
28
+ return /*#__PURE__*/React.createElement(StyledButton, _extends({
29
+ as: Component,
30
+ sx: sxStyles
31
+ }, props, {
32
+ ref: forwardedRef
33
+ }), LeadingIcon && /*#__PURE__*/React.createElement(Box, {
34
+ as: "span",
35
+ "data-component": "leadingIcon",
36
+ sx: iconWrapStyles
37
+ }, /*#__PURE__*/React.createElement(LeadingIcon, null)), /*#__PURE__*/React.createElement("span", {
38
+ "data-component": "text"
39
+ }, children), TrailingIcon && /*#__PURE__*/React.createElement(Box, {
40
+ as: "span",
41
+ "data-component": "trailingIcon",
42
+ sx: { ...iconWrapStyles,
43
+ ml: 2
44
+ }
45
+ }, /*#__PURE__*/React.createElement(TrailingIcon, null)));
46
+ });
47
+ export default ButtonBase;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { ForwardRefComponent as PolymorphicForwardRefComponent } from '@radix-ui/react-polymorphic';
3
+ declare const LinkButton: PolymorphicForwardRefComponent<"a", Omit<(Pick<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "key" | keyof React.AnchorHTMLAttributes<HTMLAnchorElement>> & {
4
+ ref?: ((instance: HTMLAnchorElement | null) => void) | React.RefObject<HTMLAnchorElement> | null | undefined;
5
+ }) | (Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & {
6
+ ref?: ((instance: HTMLButtonElement | null) => void) | React.RefObject<HTMLButtonElement> | null | undefined;
7
+ }), string | number | symbol> & {
8
+ leadingIcon?: React.FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
9
+ trailingIcon?: React.FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
10
+ children: React.ReactNode;
11
+ } & {
12
+ variant?: import("./types").VariantType | undefined;
13
+ size?: import("./types").Size | undefined;
14
+ disabled?: boolean | undefined;
15
+ } & import("../sx").SxProp & React.HTMLAttributes<HTMLButtonElement> & {
16
+ [x: string]: any;
17
+ [x: number]: any;
18
+ [x: symbol]: any;
19
+ } & {
20
+ theme?: any;
21
+ } & {
22
+ as?: string | React.ComponentType<any> | undefined;
23
+ forwardedAs?: string | React.ComponentType<any> | undefined;
24
+ } & {
25
+ as?: "a" | "button" | undefined;
26
+ }>;
27
+ export default LinkButton;
@@ -0,0 +1,15 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React, { forwardRef } from 'react';
4
+ import ButtonBase from './button-base';
5
+ const LinkButton = /*#__PURE__*/forwardRef(({
6
+ children,
7
+ as: Component = 'a',
8
+ ...props
9
+ }, forwardedRef) => {
10
+ return /*#__PURE__*/React.createElement(ButtonBase, _extends({
11
+ as: Component,
12
+ ref: forwardedRef
13
+ }, props), children);
14
+ });
15
+ export default LinkButton;
@@ -1,13 +1,4 @@
1
1
  import React from 'react';
2
- import { SxProp } from '../sx';
3
- import { VariantType } from './types';
4
- declare const Button: React.ForwardRefExoticComponent<{
5
- variant?: VariantType | undefined;
6
- size?: import("./types").Size | undefined;
7
- icon?: React.FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
8
- leadingIcon?: React.FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
9
- trailingIcon?: React.FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
10
- disabled?: boolean | undefined;
11
- children: React.ReactNode;
12
- } & SxProp & React.HTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
2
+ import { ButtonProps } from './types';
3
+ declare const Button: React.ForwardRefExoticComponent<Pick<ButtonProps, string | number | symbol> & React.RefAttributes<HTMLButtonElement>>;
13
4
  export { Button };
@@ -1,287 +1,16 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
3
  import React, { forwardRef } from 'react';
4
- import Box from '../Box';
5
- import styled from 'styled-components';
6
- import sx, { merge } from '../sx';
7
- import { useTheme } from '../ThemeProvider';
8
- const TEXT_ROW_HEIGHT = '20px'; // custom value off the scale
9
-
10
- const getVariantStyles = (variant = 'default', theme) => {
11
- const style = {
12
- default: {
13
- color: 'btn.text',
14
- backgroundColor: 'btn.bg',
15
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}, ${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.insetShadow}`,
16
- '&:hover:not([disabled])': {
17
- backgroundColor: 'btn.hoverBg'
18
- },
19
- // focus must come before :active so that the active box shadow overrides
20
- '&:focus:not([disabled])': {
21
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.focusShadow}`
22
- },
23
- '&:active:not([disabled])': {
24
- backgroundColor: 'btn.selectedBg',
25
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadowActive}`
26
- },
27
- '&:disabled': {
28
- color: 'primer.fg.disabled',
29
- backgroundColor: 'btn.disabledBg'
30
- }
31
- },
32
- primary: {
33
- color: 'btn.primary.text',
34
- backgroundColor: 'btn.primary.bg',
35
- borderColor: 'border.subtle',
36
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.shadow}`,
37
- '&:hover:not([disabled])': {
38
- color: 'btn.primary.hoverText',
39
- backgroundColor: 'btn.primary.hoverBg'
40
- },
41
- // focus must come before :active so that the active box shadow overrides
42
- '&:focus:not([disabled])': {
43
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.focusShadow}`
44
- },
45
- '&:active:not([disabled])': {
46
- backgroundColor: 'btn.primary.selectedBg',
47
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.selectedShadow}`
48
- },
49
- '&:disabled': {
50
- color: 'btn.primary.disabledText',
51
- backgroundColor: 'btn.primary.disabledBg'
52
- },
53
- '[data-component="ButtonCounter"]': {
54
- backgroundColor: 'btn.primary.counterBg',
55
- color: 'btn.primary.text'
56
- }
57
- },
58
- danger: {
59
- color: 'btn.danger.text',
60
- backgroundColor: 'btn.bg',
61
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}`,
62
- '&:hover:not([disabled])': {
63
- color: 'btn.danger.hoverText',
64
- backgroundColor: 'btn.danger.hoverBg',
65
- borderColor: 'btn.danger.hoverBorder',
66
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.hoverShadow}`,
67
- '[data-component="ButtonCounter"]': {
68
- backgroundColor: 'btn.danger.hoverCounterBg',
69
- color: 'btn.danger.hoverText'
70
- }
71
- },
72
- // focus must come before :active so that the active box shadow overrides
73
- '&:focus:not([disabled])': {
74
- borderColor: 'btn.danger.focusBorder',
75
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.focusShadow}`
76
- },
77
- '&:active:not([disabled])': {
78
- color: 'btn.danger.selectedText',
79
- backgroundColor: 'btn.danger.selectedBg',
80
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.selectedShadow}`,
81
- borderColor: 'btn.danger.selectedBorder'
82
- },
83
- '&:disabled': {
84
- color: 'btn.danger.disabledText',
85
- backgroundColor: 'btn.danger.disabledBg',
86
- borderColor: 'btn.danger.disabledBorder',
87
- '[data-component="ButtonCounter"]': {
88
- backgroundColor: 'btn.danger.disabledCounterBg'
89
- }
90
- },
91
- '[data-component="ButtonCounter"]': {
92
- color: 'btn.danger.text',
93
- backgroundColor: 'btn.danger.counterBg'
94
- }
95
- },
96
- invisible: {
97
- color: 'accent.fg',
98
- backgroundColor: 'transparent',
99
- border: '0',
100
- boxShadow: 'none',
101
- '&:hover:not([disabled])': {
102
- backgroundColor: 'btn.hoverBg'
103
- },
104
- // focus must come before :active so that the active box shadow overrides
105
- '&:focus:not([disabled])': {
106
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.focusShadow}`
107
- },
108
- '&:active:not([disabled])': {
109
- backgroundColor: 'btn.selectedBg'
110
- },
111
- '&:disabled': {
112
- color: 'primer.fg.disabled'
113
- }
114
- },
115
- outline: {
116
- color: 'btn.outline.text',
117
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}`,
118
- '&:hover': {
119
- color: 'btn.outline.hoverText',
120
- backgroundColor: 'btn.outline.hoverBg',
121
- borderColor: 'outline.hoverBorder',
122
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.hoverShadow}`,
123
- '[data-component="ButtonCounter"]': {
124
- backgroundColor: 'btn.outline.hoverCounterBg',
125
- color: 'btn.outline.hoverText'
126
- }
127
- },
128
- // focus must come before :active so that the active box shadow overrides
129
- '&:focus': {
130
- borderColor: 'btn.outline.focusBorder',
131
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.focusShadow}`
132
- },
133
- '&:active:not([disabled])': {
134
- color: 'btn.outline.selectedText',
135
- backgroundColor: 'btn.outline.selectedBg',
136
- boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.selectedShadow}`,
137
- borderColor: 'btn.outline.selectedBorder'
138
- },
139
- '&:disabled': {
140
- color: 'btn.outline.disabledText',
141
- backgroundColor: 'btn.outline.disabledBg',
142
- borderColor: 'btn.border',
143
- '[data-component="ButtonCounter"]': {
144
- backgroundColor: 'btn.outline.disabledCounterBg'
145
- }
146
- },
147
- '[data-component="ButtonCounter"]': {
148
- backgroundColor: 'btn.outline.counterBg',
149
- color: 'btn.outline.text'
150
- }
151
- }
152
- };
153
- return style[variant];
154
- };
155
-
156
- const getSizeStyles = (size = 'medium', variant = 'default', iconOnly) => {
157
- let paddingY, paddingX, fontSize;
158
-
159
- switch (size) {
160
- case 'small':
161
- paddingY = 3;
162
- paddingX = 12;
163
- fontSize = 0;
164
- break;
165
-
166
- case 'large':
167
- paddingY = 9;
168
- paddingX = 20;
169
- fontSize = 2;
170
- break;
171
-
172
- case 'medium':
173
- default:
174
- paddingY = 5;
175
- paddingX = 16;
176
- fontSize = 1;
177
- }
178
-
179
- if (iconOnly) {
180
- paddingX = paddingY + 2;
181
- }
182
-
183
- if (variant === 'invisible') {
184
- paddingY = paddingY + 1;
185
- }
186
-
187
- return {
188
- paddingY: `${paddingY}px`,
189
- paddingX: `${paddingX}px`,
190
- fontSize,
191
- '[data-component="ButtonCounter"]': {
192
- fontSize
193
- }
194
- };
195
- };
196
-
197
- const ButtonBase = styled.button.withConfig({
198
- displayName: "button__ButtonBase",
199
- componentId: "sc-15k5iqk-0"
200
- })(sx);
4
+ import ButtonBase from './button-base';
201
5
  const Button = /*#__PURE__*/forwardRef(({
202
6
  children,
203
- sx: sxProp = {},
204
7
  ...props
205
8
  }, forwardedRef) => {
206
- const {
207
- icon: Icon,
208
- leadingIcon: LeadingIcon,
209
- trailingIcon: TrailingIcon,
210
- variant = 'default',
211
- size = 'medium'
212
- } = props;
213
- const iconOnly = !!Icon;
214
- const {
215
- theme
216
- } = useTheme();
217
- const styles = {
218
- borderRadius: '2',
219
- border: '1px solid',
220
- borderColor: theme === null || theme === void 0 ? void 0 : theme.colors.btn.border,
221
- display: 'grid',
222
- gridTemplateAreas: '"leadingIcon text trailingIcon"',
223
- fontWeight: 'bold',
224
- lineHeight: TEXT_ROW_HEIGHT,
225
- whiteSpace: 'nowrap',
226
- verticalAlign: 'middle',
227
- cursor: 'pointer',
228
- appearance: 'none',
229
- userSelect: 'none',
230
- textDecoration: 'none',
231
- textAlign: 'center',
232
- '& > :not(:last-child)': {
233
- mr: '2'
234
- },
235
- '&:focus': {
236
- outline: 'none'
237
- },
238
- '&:disabled': {
239
- cursor: 'default'
240
- },
241
- '&:disabled svg': {
242
- opacity: '0.6'
243
- },
244
- '[data-component="leadingIcon"]': {
245
- gridArea: 'leadingIcon'
246
- },
247
- '[data-component="text"]': {
248
- gridArea: 'text'
249
- },
250
- '[data-component="trailingIcon"]': {
251
- gridArea: 'trailingIcon'
252
- }
253
- };
254
- const iconWrapStyles = {
255
- display: 'inline-block'
256
- };
257
- const sxStyles = merge.all([styles, getSizeStyles(size, variant, iconOnly), getVariantStyles(variant, theme), sxProp]);
258
9
  return /*#__PURE__*/React.createElement(ButtonBase, _extends({
259
- sx: sxStyles,
260
10
  ref: forwardedRef
261
- }, props), LeadingIcon && /*#__PURE__*/React.createElement(Box, {
262
- as: "span",
263
- "data-component": "leadingIcon",
264
- sx: iconWrapStyles,
265
- "aria-hidden": !iconOnly
266
- }, /*#__PURE__*/React.createElement(LeadingIcon, null)), /*#__PURE__*/React.createElement("span", {
267
- "data-component": "text",
268
- hidden: Icon ? true : false
269
- }, children), Icon && /*#__PURE__*/React.createElement(Box, {
270
- "data-component": "icon-only",
271
- as: "span",
272
- sx: {
273
- display: 'inline-block'
274
- },
275
- "aria-hidden": !iconOnly
276
- }, /*#__PURE__*/React.createElement(Icon, null)), TrailingIcon && /*#__PURE__*/React.createElement(Box, {
277
- as: "span",
278
- "data-component": "trailingIcon",
279
- sx: { ...iconWrapStyles,
280
- ml: 2
281
- },
282
- "aria-hidden": !iconOnly
283
- }, /*#__PURE__*/React.createElement(TrailingIcon, null)));
11
+ }, props, {
12
+ as: "button"
13
+ }), children);
284
14
  });
285
15
  Button.displayName = 'Button';
286
- Object.assign(Button, {});
287
16
  export { Button };
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { IconButtonProps } from './types';
3
+ declare const IconButton: React.ForwardRefExoticComponent<Pick<IconButtonProps, string | number | symbol> & React.RefAttributes<HTMLButtonElement>>;
4
+ export default IconButton;
@@ -0,0 +1,39 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React, { forwardRef } from 'react';
4
+ import { merge } from '../sx';
5
+ import { useTheme } from '../ThemeProvider';
6
+ import Box from '../Box';
7
+ import { StyledButton } from './types';
8
+ import { getBaseStyles, getSizeStyles, getVariantStyles } from './styles';
9
+ import { useSSRSafeId } from '@react-aria/ssr';
10
+ const IconButton = /*#__PURE__*/forwardRef((props, forwardedRef) => {
11
+ const {
12
+ variant = 'default',
13
+ size = 'medium',
14
+ sx: sxProp = {},
15
+ icon: Icon,
16
+ iconLabel
17
+ } = props;
18
+ const iconLabelId = useSSRSafeId();
19
+ const {
20
+ theme
21
+ } = useTheme();
22
+ const styles = { ...getBaseStyles(theme)
23
+ };
24
+ const sxStyles = merge.all([styles, getSizeStyles(size, variant, true), getVariantStyles(variant, theme), sxProp]);
25
+ return /*#__PURE__*/React.createElement(StyledButton, _extends({
26
+ "aria-labelledBy": iconLabelId,
27
+ sx: sxStyles,
28
+ ref: forwardedRef
29
+ }, props), /*#__PURE__*/React.createElement("span", {
30
+ id: iconLabelId,
31
+ hidden: true
32
+ }, iconLabel), /*#__PURE__*/React.createElement(Box, {
33
+ as: "span",
34
+ sx: {
35
+ display: 'inline-block'
36
+ }
37
+ }, /*#__PURE__*/React.createElement(Icon, null)));
38
+ });
39
+ export default IconButton;
@@ -1,14 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { ButtonProps } from './types';
3
- export type { ButtonProps as NewButtonProps };
4
- export declare const NewButton: import("react").ForwardRefExoticComponent<{
5
- variant?: import("./types").VariantType | undefined;
6
- size?: import("./types").Size | undefined;
7
- icon?: import("react").FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
8
- leadingIcon?: import("react").FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
9
- trailingIcon?: import("react").FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
10
- disabled?: boolean | undefined;
11
- children: import("react").ReactNode;
12
- } & import("../sx").SxProp & import("react").HTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>> & {
2
+ import IconButton from './icon-button';
3
+ import ButtonLink from './button-link';
4
+ import { ButtonProps, IconButtonProps } from './types';
5
+ export type { ButtonProps as NewButtonProps, IconButtonProps };
6
+ export declare const NewButton: import("react").ForwardRefExoticComponent<Pick<ButtonProps, string | number | symbol> & import("react").RefAttributes<HTMLButtonElement>> & {
13
7
  Counter: ({ children, sx: sxProp, ...props }: import("./button-counter").CounterProps) => JSX.Element;
14
8
  };
9
+ export { IconButton, ButtonLink };
@@ -1,5 +1,8 @@
1
1
  import { Button } from './button';
2
2
  import { Counter } from './button-counter';
3
+ import IconButton from './icon-button';
4
+ import ButtonLink from './button-link';
3
5
  export const NewButton = Object.assign(Button, {
4
6
  Counter
5
- });
7
+ });
8
+ export { IconButton, ButtonLink };