@primer/components 0.0.0-202192701132 → 0.0.0-202192711181

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 (88) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/browser.esm.js +615 -615
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +176 -176
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList2/Description.d.ts +6 -0
  7. package/lib/ActionList2/Description.js +53 -0
  8. package/lib/ActionList2/Divider.d.ts +8 -0
  9. package/lib/ActionList2/Divider.js +42 -0
  10. package/lib/ActionList2/Group.d.ts +8 -0
  11. package/lib/ActionList2/Group.js +39 -0
  12. package/lib/ActionList2/Header.d.ts +26 -0
  13. package/lib/ActionList2/Header.js +55 -0
  14. package/lib/ActionList2/Item.d.ts +48 -0
  15. package/lib/ActionList2/Item.js +205 -0
  16. package/lib/ActionList2/List.d.ts +12 -0
  17. package/lib/ActionList2/List.js +55 -0
  18. package/lib/ActionList2/Selection.d.ts +5 -0
  19. package/lib/ActionList2/Selection.js +67 -0
  20. package/lib/ActionList2/Visuals.d.ts +11 -0
  21. package/lib/ActionList2/Visuals.js +90 -0
  22. package/lib/ActionList2/hacks.d.ts +30 -0
  23. package/lib/ActionList2/hacks.js +38 -0
  24. package/lib/ActionList2/index.d.ts +26 -0
  25. package/lib/ActionList2/index.js +36 -0
  26. package/lib/Autocomplete/Autocomplete.d.ts +1 -1
  27. package/lib/Autocomplete/AutocompleteInput.d.ts +1 -1
  28. package/lib/Button/ButtonClose.d.ts +1 -1
  29. package/lib/CircleOcticon.d.ts +1 -1
  30. package/lib/Dialog.d.ts +1 -1
  31. package/lib/Dropdown.d.ts +4 -4
  32. package/lib/DropdownMenu/DropdownButton.d.ts +1 -1
  33. package/lib/FilterList.d.ts +1 -1
  34. package/lib/SelectMenu/SelectMenu.d.ts +5 -5
  35. package/lib/TextInputWithTokens.d.ts +1 -1
  36. package/lib/Timeline.d.ts +1 -1
  37. package/lib/index.d.ts +1 -0
  38. package/lib/index.js +8 -0
  39. package/lib/sx.d.ts +4 -8
  40. package/lib/sx.js +8 -0
  41. package/lib/theme.d.ts +0 -4
  42. package/lib/theme.js +1 -96
  43. package/lib/utils/create-slots.d.ts +17 -0
  44. package/lib/utils/create-slots.js +105 -0
  45. package/lib/utils/use-force-update.d.ts +1 -0
  46. package/lib/utils/use-force-update.js +19 -0
  47. package/lib-esm/ActionList2/Description.d.ts +6 -0
  48. package/lib-esm/ActionList2/Description.js +37 -0
  49. package/lib-esm/ActionList2/Divider.d.ts +8 -0
  50. package/lib-esm/ActionList2/Divider.js +30 -0
  51. package/lib-esm/ActionList2/Group.d.ts +8 -0
  52. package/lib-esm/ActionList2/Group.js +29 -0
  53. package/lib-esm/ActionList2/Header.d.ts +26 -0
  54. package/lib-esm/ActionList2/Header.js +45 -0
  55. package/lib-esm/ActionList2/Item.d.ts +48 -0
  56. package/lib-esm/ActionList2/Item.js +198 -0
  57. package/lib-esm/ActionList2/List.d.ts +12 -0
  58. package/lib-esm/ActionList2/List.js +37 -0
  59. package/lib-esm/ActionList2/Selection.d.ts +5 -0
  60. package/lib-esm/ActionList2/Selection.js +50 -0
  61. package/lib-esm/ActionList2/Visuals.d.ts +11 -0
  62. package/lib-esm/ActionList2/Visuals.js +68 -0
  63. package/lib-esm/ActionList2/hacks.d.ts +30 -0
  64. package/lib-esm/ActionList2/hacks.js +30 -0
  65. package/lib-esm/ActionList2/index.d.ts +26 -0
  66. package/lib-esm/ActionList2/index.js +23 -0
  67. package/lib-esm/Autocomplete/Autocomplete.d.ts +1 -1
  68. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +1 -1
  69. package/lib-esm/Button/ButtonClose.d.ts +1 -1
  70. package/lib-esm/CircleOcticon.d.ts +1 -1
  71. package/lib-esm/Dialog.d.ts +1 -1
  72. package/lib-esm/Dropdown.d.ts +4 -4
  73. package/lib-esm/DropdownMenu/DropdownButton.d.ts +1 -1
  74. package/lib-esm/FilterList.d.ts +1 -1
  75. package/lib-esm/SelectMenu/SelectMenu.d.ts +5 -5
  76. package/lib-esm/TextInputWithTokens.d.ts +1 -1
  77. package/lib-esm/Timeline.d.ts +1 -1
  78. package/lib-esm/index.d.ts +1 -0
  79. package/lib-esm/index.js +1 -0
  80. package/lib-esm/sx.d.ts +4 -8
  81. package/lib-esm/sx.js +3 -1
  82. package/lib-esm/theme.d.ts +0 -4
  83. package/lib-esm/theme.js +1 -95
  84. package/lib-esm/utils/create-slots.d.ts +17 -0
  85. package/lib-esm/utils/create-slots.js +84 -0
  86. package/lib-esm/utils/use-force-update.d.ts +1 -0
  87. package/lib-esm/utils/use-force-update.js +6 -0
  88. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { SxProp } from '../sx';
3
+ declare type VisualProps = SxProp & {
4
+ children: React.ReactNode;
5
+ };
6
+ export declare const LeadingVisualContainer: React.FC<SxProp>;
7
+ export declare type LeadingVisualProps = VisualProps;
8
+ export declare const LeadingVisual: React.FC<VisualProps>;
9
+ export declare type TrailingVisualProps = VisualProps;
10
+ export declare const TrailingVisual: React.FC<VisualProps>;
11
+ export {};
@@ -0,0 +1,68 @@
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 from 'react';
4
+ import Box from '../Box';
5
+ import { merge } from '../sx';
6
+ import { get } from '../constants';
7
+ import { getVariantStyles, Slot } from './Item';
8
+ export const LeadingVisualContainer = ({
9
+ sx = {},
10
+ ...props
11
+ }) => {
12
+ return /*#__PURE__*/React.createElement(Box, _extends({
13
+ as: "span",
14
+ sx: merge({
15
+ height: '20px',
16
+ // match height of text row
17
+ minWidth: get('space.3'),
18
+ maxWidth: '20px',
19
+ // square (same as height)
20
+ display: 'flex',
21
+ justifyContent: 'center',
22
+ alignItems: 'center',
23
+ flexShrink: 0,
24
+ marginRight: 2
25
+ }, sx)
26
+ }, props));
27
+ };
28
+ LeadingVisualContainer.displayName = "LeadingVisualContainer";
29
+ export const LeadingVisual = ({
30
+ sx = {},
31
+ ...props
32
+ }) => {
33
+ return /*#__PURE__*/React.createElement(Slot, {
34
+ name: "LeadingVisual"
35
+ }, ({
36
+ variant,
37
+ disabled
38
+ }) => /*#__PURE__*/React.createElement(LeadingVisualContainer, _extends({
39
+ sx: merge({
40
+ color: getVariantStyles(variant, disabled).iconColor,
41
+ svg: {
42
+ fontSize: 0
43
+ }
44
+ }, sx)
45
+ }, props), props.children));
46
+ };
47
+ LeadingVisual.displayName = "LeadingVisual";
48
+ export const TrailingVisual = ({
49
+ sx = {},
50
+ ...props
51
+ }) => {
52
+ return /*#__PURE__*/React.createElement(Slot, {
53
+ name: "TrailingVisual"
54
+ }, ({
55
+ variant,
56
+ disabled
57
+ }) => /*#__PURE__*/React.createElement(Box, _extends({
58
+ as: "span",
59
+ sx: merge({
60
+ height: '20px',
61
+ // match height of text row
62
+ flexShrink: 0,
63
+ color: getVariantStyles(variant, disabled).annotationColor,
64
+ marginLeft: 2
65
+ }, sx)
66
+ }, props), props.children));
67
+ };
68
+ TrailingVisual.displayName = "TrailingVisual";
@@ -0,0 +1,30 @@
1
+ /**
2
+ * These colors are not yet in our default theme.
3
+ * TODO: Need to remove this once they are added.
4
+ */
5
+ export declare const customItemThemes: {
6
+ default: {
7
+ hover: {
8
+ light: string;
9
+ dark: string;
10
+ dark_dimmed: string;
11
+ };
12
+ focus: {
13
+ light: string;
14
+ dark: string;
15
+ dark_dimmed: string;
16
+ };
17
+ };
18
+ danger: {
19
+ hover: {
20
+ light: string;
21
+ dark: string;
22
+ dark_dimmed: string;
23
+ };
24
+ focus: {
25
+ light: string;
26
+ dark: string;
27
+ dark_dimmed: string;
28
+ };
29
+ };
30
+ };
@@ -0,0 +1,30 @@
1
+ /**
2
+ * These colors are not yet in our default theme.
3
+ * TODO: Need to remove this once they are added.
4
+ */
5
+ export const customItemThemes = {
6
+ default: {
7
+ hover: {
8
+ light: 'rgba(46, 77, 108, 0.06)',
9
+ dark: 'rgba(201, 206, 212, 0.12)',
10
+ dark_dimmed: 'rgba(201, 206, 212, 0.12)'
11
+ },
12
+ focus: {
13
+ light: 'rgba(54, 77, 100, 0.16)',
14
+ dark: 'rgba(201, 206, 212, 0.24)',
15
+ dark_dimmed: 'rgba(201, 206, 212, 0.24)'
16
+ }
17
+ },
18
+ danger: {
19
+ hover: {
20
+ light: 'rgba(234, 74, 90, 0.08)',
21
+ dark: 'rgba(248, 81, 73, 0.16)',
22
+ dark_dimmed: 'rgba(248, 81, 73, 0.16)'
23
+ },
24
+ focus: {
25
+ light: 'rgba(234, 74, 90, 0.14)',
26
+ dark: 'rgba(248, 81, 73, 0.24)',
27
+ dark_dimmed: 'rgba(248, 81, 73, 0.24)'
28
+ }
29
+ }
30
+ };
@@ -0,0 +1,26 @@
1
+ /// <reference types="react" />
2
+ import { Group } from './Group';
3
+ import { Divider } from './Divider';
4
+ export type { ListProps as ActionListProps } from './List';
5
+ export type { GroupProps } from './Group';
6
+ export type { ItemProps } from './Item';
7
+ export type { DescriptionProps } from './Description';
8
+ export type { LeadingVisualProps, TrailingVisualProps } from './Visuals';
9
+ /**
10
+ * Collection of list-related components.
11
+ */
12
+ export declare const ActionList: import("@radix-ui/react-polymorphic").ForwardRefComponent<"ul", import("./List").ListProps> & {
13
+ /** Collects related `Items` in an `ActionList`. */
14
+ Group: typeof Group;
15
+ /** An actionable or selectable `Item` with an optional icon and description. */
16
+ Item: import("@radix-ui/react-polymorphic").ForwardRefComponent<"li", import("./Item").ItemProps>;
17
+ /** Visually separates `Item`s or `Group`s in an `ActionList`. */
18
+ Divider: typeof Divider;
19
+ Description: import("react").FC<import("./Description").DescriptionProps>;
20
+ LeadingVisual: import("react").FC<import("../sx").SxProp & {
21
+ children: import("react").ReactNode;
22
+ }>;
23
+ TrailingVisual: import("react").FC<import("../sx").SxProp & {
24
+ children: import("react").ReactNode;
25
+ }>;
26
+ };
@@ -0,0 +1,23 @@
1
+ import { List } from './List';
2
+ import { Group } from './Group';
3
+ import { Item } from './Item';
4
+ import { Divider } from './Divider';
5
+ import { Description } from './Description';
6
+ import { LeadingVisual, TrailingVisual } from './Visuals';
7
+
8
+ /**
9
+ * Collection of list-related components.
10
+ */
11
+ export const ActionList = Object.assign(List, {
12
+ /** Collects related `Items` in an `ActionList`. */
13
+ Group,
14
+
15
+ /** An actionable or selectable `Item` with an optional icon and description. */
16
+ Item,
17
+
18
+ /** Visually separates `Item`s or `Group`s in an `ActionList`. */
19
+ Divider,
20
+ Description,
21
+ LeadingVisual,
22
+ TrailingVisual
23
+ });
@@ -288,7 +288,7 @@ declare const _default: React.FC<{
288
288
  onTransitionEnd?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
289
289
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
290
290
  block?: boolean | undefined;
291
- sx?: import("../sx").BetterSystemStyleObject | undefined;
291
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
292
292
  disabled?: boolean | undefined;
293
293
  variant?: "large" | "small" | undefined;
294
294
  hasIcon?: boolean | undefined;
@@ -280,7 +280,7 @@ declare const AutocompleteInput: PolymorphicForwardRefComponent<React.ForwardRef
280
280
  onTransitionEnd?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
281
281
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
282
282
  block?: boolean | undefined;
283
- sx?: import("../sx").BetterSystemStyleObject | undefined;
283
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
284
284
  disabled?: boolean | undefined;
285
285
  variant?: "large" | "small" | undefined;
286
286
  hasIcon?: boolean | undefined;
@@ -306,7 +306,7 @@ declare const ButtonClose: React.ForwardRefExoticComponent<Pick<{
306
306
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
307
307
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
308
308
  size?: import("styled-system").ResponsiveValue<import("csstype").Property.Height<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
309
- sx?: import("../sx").BetterSystemStyleObject | undefined;
309
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
310
310
  autoFocus?: boolean | undefined;
311
311
  disabled?: boolean | undefined;
312
312
  formAction?: string | undefined;
@@ -384,7 +384,7 @@ declare namespace CircleOcticon {
384
384
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
385
385
  borderX?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
386
386
  borderY?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
387
- sx?: import("./sx").BetterSystemStyleObject | undefined;
387
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
388
388
  theme?: any;
389
389
  };
390
390
  }
@@ -387,7 +387,7 @@ declare namespace DialogHeader {
387
387
  size?: React.Validator<import("styled-system").ResponsiveValue<import("csstype").Property.Height<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined> | undefined;
388
388
  borderX?: React.Validator<import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined> | undefined;
389
389
  borderY?: React.Validator<import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined> | undefined;
390
- sx?: React.Validator<import("./sx").BetterSystemStyleObject | undefined> | undefined;
390
+ sx?: React.Validator<import("@styled-system/css").SystemStyleObject | undefined> | undefined;
391
391
  theme?: React.Validator<any> | undefined;
392
392
  };
393
393
  var displayName: string;
@@ -307,7 +307,7 @@ declare const _default: {
307
307
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
308
308
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
309
309
  open?: boolean | undefined;
310
- sx?: import("./sx").BetterSystemStyleObject | undefined;
310
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
311
311
  onToggle?: React.ReactEventHandler<HTMLElement> | undefined;
312
312
  } & {
313
313
  theme?: any;
@@ -604,7 +604,7 @@ declare const _default: {
604
604
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
605
605
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
606
606
  open?: boolean | undefined;
607
- sx?: import("./sx").BetterSystemStyleObject | undefined;
607
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
608
608
  onToggle?: React.ReactEventHandler<HTMLElement> | undefined;
609
609
  } & {
610
610
  theme?: any;
@@ -923,7 +923,7 @@ declare const _default: {
923
923
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
924
924
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
925
925
  size?: import("styled-system").ResponsiveValue<import("csstype").Property.Height<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
926
- sx?: import("./sx").BetterSystemStyleObject | undefined;
926
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
927
927
  autoFocus?: boolean | undefined;
928
928
  disabled?: boolean | undefined;
929
929
  formAction?: string | undefined;
@@ -1243,7 +1243,7 @@ declare const _default: {
1243
1243
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1244
1244
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1245
1245
  size?: import("styled-system").ResponsiveValue<import("csstype").Property.Height<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1246
- sx?: import("./sx").BetterSystemStyleObject | undefined;
1246
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
1247
1247
  autoFocus?: boolean | undefined;
1248
1248
  disabled?: boolean | undefined;
1249
1249
  formAction?: string | undefined;
@@ -308,7 +308,7 @@ export declare const DropdownButton: React.ForwardRefExoticComponent<Pick<React.
308
308
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
309
309
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
310
310
  size?: import("styled-system").ResponsiveValue<import("csstype").Property.Height<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
311
- sx?: import("../sx").BetterSystemStyleObject | undefined;
311
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
312
312
  autoFocus?: boolean | undefined;
313
313
  disabled?: boolean | undefined;
314
314
  formAction?: string | undefined;
@@ -307,7 +307,7 @@ declare const _default: {
307
307
  paddingX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
308
308
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
309
309
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
310
- sx?: import("./sx").BetterSystemStyleObject | undefined;
310
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
311
311
  } & {
312
312
  theme?: any;
313
313
  }>): JSX.Element;
@@ -308,7 +308,7 @@ declare const _default: React.ForwardRefExoticComponent<Pick<SelectMenuInternalP
308
308
  onTransitionEnd?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
309
309
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
310
310
  block?: boolean | undefined;
311
- sx?: import("../sx").BetterSystemStyleObject | undefined;
311
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
312
312
  disabled?: boolean | undefined;
313
313
  variant?: "large" | "small" | undefined;
314
314
  hasIcon?: boolean | undefined;
@@ -612,7 +612,7 @@ declare const _default: React.ForwardRefExoticComponent<Pick<SelectMenuInternalP
612
612
  paddingX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
613
613
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
614
614
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
615
- sx?: import("../sx").BetterSystemStyleObject | undefined;
615
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
616
616
  media?: string | undefined;
617
617
  target?: string | undefined;
618
618
  href?: string | undefined;
@@ -917,7 +917,7 @@ declare const _default: React.ForwardRefExoticComponent<Pick<SelectMenuInternalP
917
917
  paddingX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
918
918
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
919
919
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
920
- sx?: import("../sx").BetterSystemStyleObject | undefined;
920
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
921
921
  align?: "left" | "right" | undefined;
922
922
  } & {
923
923
  theme?: any;
@@ -1214,7 +1214,7 @@ declare const _default: React.ForwardRefExoticComponent<Pick<SelectMenuInternalP
1214
1214
  paddingX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1215
1215
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1216
1216
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1217
- sx?: import("../sx").BetterSystemStyleObject | undefined;
1217
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
1218
1218
  } & {
1219
1219
  theme?: any;
1220
1220
  }): JSX.Element;
@@ -1528,7 +1528,7 @@ declare const _default: React.ForwardRefExoticComponent<Pick<SelectMenuInternalP
1528
1528
  paddingX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1529
1529
  py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1530
1530
  paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
1531
- sx?: import("../sx").BetterSystemStyleObject | undefined;
1531
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
1532
1532
  } & {
1533
1533
  theme?: any;
1534
1534
  }): JSX.Element;
@@ -308,7 +308,7 @@ declare const TextInputWithTokens: React.ForwardRefExoticComponent<Pick<{
308
308
  onTransitionEnd?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
309
309
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
310
310
  block?: boolean | undefined;
311
- sx?: import("./sx").BetterSystemStyleObject | undefined;
311
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
312
312
  disabled?: boolean | undefined;
313
313
  variant?: "large" | "small" | undefined;
314
314
  hasIcon?: boolean | undefined;
@@ -395,7 +395,7 @@ declare const _default: string & import("styled-components").StyledComponentBase
395
395
  size?: import("styled-system").ResponsiveValue<import("csstype").Property.Height<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
396
396
  borderX?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
397
397
  borderY?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
398
- sx?: import("./sx").BetterSystemStyleObject | undefined;
398
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
399
399
  } & {
400
400
  theme?: any;
401
401
  }): JSX.Element;
@@ -22,6 +22,7 @@ export { useOnEscapePress } from './hooks/useOnEscapePress';
22
22
  export { useOverlay } from './hooks/useOverlay';
23
23
  export { useConfirm } from './Dialog/ConfirmationDialog';
24
24
  export { ActionList } from './ActionList';
25
+ export { ActionList as ActionList2 } from './ActionList2';
25
26
  export { ActionMenu } from './ActionMenu';
26
27
  export type { ActionMenuProps } from './ActionMenu';
27
28
  export { default as Autocomplete } from './Autocomplete';
package/lib-esm/index.js CHANGED
@@ -18,6 +18,7 @@ export { useOverlay } from './hooks/useOverlay';
18
18
  export { useConfirm } from './Dialog/ConfirmationDialog'; // Components
19
19
 
20
20
  export { ActionList } from './ActionList';
21
+ export { ActionList as ActionList2 } from './ActionList2';
21
22
  export { ActionMenu } from './ActionMenu';
22
23
  export { default as Autocomplete } from './Autocomplete';
23
24
  export { default as Avatar } from './Avatar';
package/lib-esm/sx.d.ts CHANGED
@@ -1,12 +1,8 @@
1
- import { SystemCssProperties, SystemStyleObject } from '@styled-system/css';
2
- import { ThemeColorPaths, ThemeShadowPaths } from './theme';
3
- import { ColorProps, ShadowProps } from 'styled-system';
4
- export declare type BetterCssProperties = {
5
- [K in keyof SystemCssProperties]: K extends keyof ColorProps ? ThemeColorPaths | SystemCssProperties[K] : K extends keyof ShadowProps ? ThemeShadowPaths | SystemCssProperties[K] : SystemCssProperties[K];
6
- };
7
- export declare type BetterSystemStyleObject = BetterCssProperties | SystemStyleObject;
1
+ import { SystemStyleObject } from '@styled-system/css';
2
+ import merge from 'deepmerge';
8
3
  export interface SxProp {
9
- sx?: BetterSystemStyleObject;
4
+ sx?: SystemStyleObject;
10
5
  }
11
6
  declare const sx: (props: SxProp) => import("@styled-system/css").CssFunctionReturnType;
12
7
  export default sx;
8
+ export { merge };
package/lib-esm/sx.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import css from '@styled-system/css';
2
+ import merge from 'deepmerge';
2
3
 
3
4
  const sx = props => css(props.sx);
4
5
 
5
- export default sx;
6
+ export default sx;
7
+ export { merge };
@@ -1,6 +1,2 @@
1
1
  import { theme } from './theme-preval';
2
2
  export default theme;
3
- export interface Theme {
4
- }
5
- export declare type ThemeColorPaths = 'fg.default' | 'fg.muted' | 'fg.subtle' | 'fg.onEmphasis' | 'canvas.default' | 'canvas.overlay' | 'canvas.inset' | 'canvas.subtle' | 'border.default' | 'border.muted' | 'border.subtle' | 'neutral.emphasisPlus' | 'neutral.emphasis' | 'neutral.muted' | 'neutral.subtle' | 'accent.fg' | 'accent.emphasis' | 'accent.muted' | 'accent.subtle' | 'success.fg' | 'success.emphasis' | 'success.muted' | 'success.subtle' | 'attention.fg' | 'attention.emphasis' | 'attention.muted' | 'attention.subtle' | 'severe.fg' | 'severe.emphasis' | 'severe.muted' | 'severe.subtle' | 'danger.fg' | 'danger.emphasis' | 'danger.muted' | 'danger.subtle' | 'done.fg' | 'done.emphasis' | 'done.muted' | 'done.subtle' | 'sponsors.fg' | 'sponsors.emphasis' | 'sponsors.muted' | 'sponsors.subtle' | 'primer.fg.disabled' | 'primer.canvas.backdrop' | 'primer.canvas.sticky' | 'primer.border.active' | 'primer.border.contrast';
6
- export declare type ThemeShadowPaths = 'shadow.small' | 'shadow.medium' | 'shadow.large' | 'shadow.extraLarge' | 'primer.shadow.highlight' | 'primer.shadow.inset' | 'primer.shadow.focus';
package/lib-esm/theme.js CHANGED
@@ -1,96 +1,2 @@
1
1
  import { theme } from './theme-preval';
2
- export default theme; // typecheck our theme instance:
3
- // theme as Theme
4
- // type ThemeColors = {
5
- // fg: {
6
- // default: 'XXXXXXXXXXX',
7
- // muted: 'XXXXXXXXXXX',
8
- // subtle: 'XXXXXXXXXXX',
9
- // onEmphasis: 'XXXXXXXXXXX'
10
- // },
11
- // canvas: {
12
- // default: 'XXXXXXXXXXX',
13
- // overlay: 'XXXXXXXXXXX',
14
- // inset: 'XXXXXXXXXXX',
15
- // subtle: 'XXXXXXXXXXX'
16
- // },
17
- // border: {
18
- // default: 'XXXXXXXXXXX',
19
- // muted: 'XXXXXXXXXXX',
20
- // subtle: 'XXXXXXXXXXX'
21
- // },
22
- // shadow: {
23
- // small: 'XXXXXXXXXXX',
24
- // medium: 'XXXXXXXXXXX',
25
- // large: 'XXXXXXXXXXX',
26
- // extraLarge: 'XXXXXXXXXXX'
27
- // },
28
- // // Roles
29
- // neutral: {
30
- // emphasisPlus: string,
31
- // emphasis: string,
32
- // muted: string,
33
- // subtle: string
34
- // },
35
- // accent: {
36
- // fg: string,
37
- // emphasis: string,
38
- // muted: string,
39
- // subtle: string
40
- // },
41
- // success: {
42
- // fg: string,
43
- // emphasis: string,
44
- // muted: string,
45
- // subtle: string
46
- // },
47
- // attention: {
48
- // fg: string,
49
- // emphasis: string,
50
- // muted: string,
51
- // subtle: string
52
- // },
53
- // severe: {
54
- // fg: string,
55
- // emphasis: string,
56
- // muted: string,
57
- // subtle: string
58
- // },
59
- // danger: {
60
- // fg: string,
61
- // emphasis: string,
62
- // muted: string,
63
- // subtle: string
64
- // },
65
- // done: {
66
- // fg: string,
67
- // emphasis: string,
68
- // muted: string,
69
- // subtle: string
70
- // },
71
- // sponsors: {
72
- // fg: string,
73
- // emphasis: string,
74
- // muted: string,
75
- // subtle: string
76
- // },
77
- // // Only meant for Primer components
78
- // primer: {
79
- // fg: {
80
- // disabled: string
81
- // },
82
- // canvas: {
83
- // backdrop: string,
84
- // sticky: string
85
- // },
86
- // border: {
87
- // active: string,
88
- // contrast: string
89
- // },
90
- // shadow: {
91
- // highlight: string,
92
- // inset: string,
93
- // focus: string
94
- // }
95
- // }
96
- // }
2
+ export default theme;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ /** createSlots is a factory that can create a
3
+ * typesafe Slots + Slot pair to use in a component definition
4
+ * For example: ActionList.Item uses createSlots to get a Slots wrapper
5
+ * + Slot component that is used by LeadingVisual, Description
6
+ */
7
+ declare const createSlots: <SlotNames extends string>(slotNames: SlotNames[]) => {
8
+ Slots: React.FC<{
9
+ context: Record<string, unknown>;
10
+ children: (slots: { [key in SlotNames]?: React.ReactNode; }) => React.ReactNode;
11
+ }>;
12
+ Slot: React.FC<{
13
+ name: SlotNames;
14
+ children: React.ReactNode | ((context: Record<string, unknown>) => React.ReactNode);
15
+ }>;
16
+ };
17
+ export default createSlots;
@@ -0,0 +1,84 @@
1
+ import React from 'react';
2
+ import { useForceUpdate } from './use-force-update';
3
+ /** createSlots is a factory that can create a
4
+ * typesafe Slots + Slot pair to use in a component definition
5
+ * For example: ActionList.Item uses createSlots to get a Slots wrapper
6
+ * + Slot component that is used by LeadingVisual, Description
7
+ */
8
+
9
+ const createSlots = slotNames => {
10
+ const SlotsContext = /*#__PURE__*/React.createContext({
11
+ registerSlot: () => null,
12
+ unregisterSlot: () => null,
13
+ context: {}
14
+ });
15
+ /** Slots uses a Double render strategy inspired by [reach-ui/descendants](https://github.com/reach/reach-ui/tree/develop/packages/descendants)
16
+ * Slot registers themself with the Slots parent.
17
+ * When all the children have mounted = registered themselves in slot,
18
+ * we re-render the parent component to render with slots
19
+ */
20
+
21
+ const Slots = ({
22
+ context,
23
+ children
24
+ }) => {
25
+ // initialise slots
26
+ const slotsDefinition = {};
27
+ slotNames.map(name => slotsDefinition[name] = null);
28
+ const slotsRef = React.useRef(slotsDefinition);
29
+ const rerenderWithSlots = useForceUpdate();
30
+ const [isMounted, setIsMounted] = React.useState(false); // fires after all the effects in children
31
+
32
+ React.useEffect(() => {
33
+ rerenderWithSlots();
34
+ setIsMounted(true);
35
+ }, [rerenderWithSlots]);
36
+ const registerSlot = React.useCallback((name, contents) => {
37
+ slotsRef.current[name] = contents; // don't render until the component mounts = all slots are registered
38
+
39
+ if (isMounted) rerenderWithSlots();
40
+ }, [isMounted, rerenderWithSlots]); // Slot can be removed from the tree as well,
41
+ // we need to unregister them from the slot
42
+
43
+ const unregisterSlot = React.useCallback(name => {
44
+ slotsRef.current[name] = null;
45
+ rerenderWithSlots();
46
+ }, [rerenderWithSlots]);
47
+ /**
48
+ * Slots uses a render prop API so abstract the
49
+ * implementation detail of using a context provider.
50
+ */
51
+
52
+ const slots = slotsRef.current;
53
+ return /*#__PURE__*/React.createElement(SlotsContext.Provider, {
54
+ value: {
55
+ registerSlot,
56
+ unregisterSlot,
57
+ context
58
+ }
59
+ }, children(slots));
60
+ };
61
+
62
+ const Slot = ({
63
+ name,
64
+ children
65
+ }) => {
66
+ const {
67
+ registerSlot,
68
+ unregisterSlot,
69
+ context
70
+ } = React.useContext(SlotsContext);
71
+ React.useEffect(() => {
72
+ registerSlot(name, typeof children === 'function' ? children(context) : children);
73
+ return () => unregisterSlot(name);
74
+ }, [name, children, registerSlot, unregisterSlot, context]);
75
+ return null;
76
+ };
77
+
78
+ return {
79
+ Slots,
80
+ Slot
81
+ };
82
+ };
83
+
84
+ export default createSlots;
@@ -0,0 +1 @@
1
+ export declare const useForceUpdate: () => () => void;
@@ -0,0 +1,6 @@
1
+ // Inspired from reach-ui: https://github.com/reach/reach-ui/blob/develop/packages/utils/src/use-force-update.ts
2
+ import React from 'react';
3
+ export const useForceUpdate = () => {
4
+ const [, rerender] = React.useState({});
5
+ return React.useCallback(() => rerender({}), []);
6
+ };