@primer/components 32.1.1-rc.b4502a34 → 33.0.0-rc.956a1af6

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 (240) hide show
  1. package/.devcontainer/devcontainer.json +1 -1
  2. package/.github/workflows/ci.yml +1 -1
  3. package/.github/workflows/release.yml +1 -1
  4. package/.github/workflows/release_canary.yml +1 -1
  5. package/.github/workflows/release_candidate.yml +1 -1
  6. package/.github/workflows/statuses.yml +32 -0
  7. package/.gitignore +1 -0
  8. package/.nvmrc +1 -1
  9. package/CHANGELOG.md +17 -1
  10. package/contributor-docs/CONTRIBUTING.md +14 -58
  11. package/dist/browser.esm.js +2 -2213
  12. package/dist/browser.esm.js.map +1 -1
  13. package/dist/browser.umd.js +2 -2213
  14. package/dist/browser.umd.js.map +1 -1
  15. package/docs/content/BranchName.md +6 -5
  16. package/docs/content/Details.md +4 -8
  17. package/docs/content/Heading.md +5 -10
  18. package/docs/content/Label.md +6 -7
  19. package/docs/content/ProgressBar.mdx +7 -6
  20. package/docs/content/Text.md +0 -6
  21. package/docs/content/{ActionList2.mdx → drafts/ActionList2.mdx} +5 -9
  22. package/docs/content/drafts/ActionMenu2.mdx +251 -0
  23. package/docs/content/status.mdx +1 -1
  24. package/docs/content/system-props.mdx +1 -1
  25. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +9 -1
  26. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +1 -1
  27. package/docs/src/component-checklist.js +10 -2
  28. package/lib/ActionList/Header.js +1 -1
  29. package/lib/ActionList/Item.js +10 -10
  30. package/lib/ActionList/List.js +1 -1
  31. package/lib/ActionList2/Divider.d.ts +3 -2
  32. package/lib/ActionList2/Divider.js +10 -5
  33. package/lib/ActionList2/Item.js +22 -6
  34. package/lib/ActionList2/List.js +12 -2
  35. package/lib/ActionList2/MenuContext.d.ts +10 -0
  36. package/lib/ActionList2/MenuContext.js +15 -0
  37. package/lib/ActionList2/Selection.js +11 -0
  38. package/lib/ActionList2/index.d.ts +1 -2
  39. package/lib/ActionMenu2.d.ts +313 -0
  40. package/lib/ActionMenu2.js +91 -0
  41. package/lib/Autocomplete/Autocomplete.d.ts +2 -1
  42. package/lib/Autocomplete/AutocompleteInput.d.ts +2 -1
  43. package/lib/Avatar.d.ts +1 -2
  44. package/lib/Avatar.js +1 -1
  45. package/lib/BaseStyles.js +2 -20
  46. package/lib/BorderBox.js +1 -1
  47. package/lib/Box.js +1 -1
  48. package/lib/BranchName.d.ts +1 -2
  49. package/lib/BranchName.js +1 -1
  50. package/lib/Breadcrumbs.js +3 -3
  51. package/lib/Button/Button.d.ts +2 -2
  52. package/lib/Button/Button.js +1 -1
  53. package/lib/Button/ButtonClose.d.ts +2 -2
  54. package/lib/Button/ButtonDanger.d.ts +2 -2
  55. package/lib/Button/ButtonGroup.js +1 -1
  56. package/lib/Button/ButtonInvisible.d.ts +2 -2
  57. package/lib/Button/ButtonOutline.d.ts +2 -2
  58. package/lib/Button/ButtonPrimary.d.ts +2 -2
  59. package/lib/Checkbox.js +1 -1
  60. package/lib/CircleOcticon.d.ts +35 -35
  61. package/lib/Details.d.ts +1 -2
  62. package/lib/Details.js +2 -4
  63. package/lib/Dialog.d.ts +37 -37
  64. package/lib/Dropdown.d.ts +8 -72
  65. package/lib/DropdownMenu/DropdownButton.d.ts +6 -3
  66. package/lib/FilterList.d.ts +1 -1
  67. package/lib/FilteredActionList/FilteredActionList.js +1 -1
  68. package/lib/Flex.js +1 -1
  69. package/lib/Heading.d.ts +1 -2
  70. package/lib/Heading.js +1 -6
  71. package/lib/LabelGroup.js +1 -1
  72. package/lib/Overlay.js +1 -1
  73. package/lib/Pagination/Pagination.js +2 -2
  74. package/lib/Position.d.ts +4 -4
  75. package/lib/Position.js +1 -1
  76. package/lib/ProgressBar.d.ts +16 -11
  77. package/lib/ProgressBar.js +6 -10
  78. package/lib/SelectMenu/SelectMenu.d.ts +11 -10
  79. package/lib/SelectMenu/SelectMenu.js +1 -1
  80. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  81. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  82. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  83. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  84. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  85. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  86. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  87. package/lib/SelectMenu/SelectMenuTabs.js +1 -1
  88. package/lib/Spinner.d.ts +1 -2
  89. package/lib/Spinner.js +1 -3
  90. package/lib/StateLabel.js +1 -1
  91. package/lib/StyledOcticon.js +1 -1
  92. package/lib/SubNav.js +3 -3
  93. package/lib/TextInputWithTokens.d.ts +2 -1
  94. package/lib/Timeline.js +4 -4
  95. package/lib/Token/AvatarToken.d.ts +1 -1
  96. package/lib/Token/AvatarToken.js +1 -1
  97. package/lib/Token/IssueLabelToken.d.ts +1 -1
  98. package/lib/Token/Token.d.ts +1 -1
  99. package/lib/Token/TokenBase.js +1 -1
  100. package/lib/Tooltip.js +1 -1
  101. package/lib/UnderlineNav.js +2 -2
  102. package/lib/__tests__/Avatar.test.js +4 -2
  103. package/lib/__tests__/Avatar.types.test.d.ts +3 -0
  104. package/lib/__tests__/Avatar.types.test.js +31 -0
  105. package/lib/__tests__/BranchName.types.test.d.ts +3 -0
  106. package/lib/__tests__/BranchName.types.test.js +28 -0
  107. package/lib/__tests__/Details.types.test.d.ts +3 -0
  108. package/lib/__tests__/Details.types.test.js +28 -0
  109. package/lib/__tests__/Heading.test.js +63 -30
  110. package/lib/__tests__/Heading.types.test.d.ts +3 -0
  111. package/lib/__tests__/Heading.types.test.js +28 -0
  112. package/lib/drafts.d.ts +1 -0
  113. package/lib/drafts.js +13 -0
  114. package/lib/stories/ActionList.stories.js +3 -3
  115. package/lib/stories/ActionList2.stories.js +1 -1
  116. package/lib/stories/ActionMenu2.stories.js +433 -0
  117. package/lib/stories/Checkbox.stories.js +2 -2
  118. package/lib/stories/ThemeProvider.stories.js +1 -5
  119. package/lib/stories/useFocusTrap.stories.js +1 -11
  120. package/lib/stories/useFocusZone.stories.js +2 -6
  121. package/lib-esm/ActionList/Header.js +1 -1
  122. package/lib-esm/ActionList/Item.js +10 -10
  123. package/lib-esm/ActionList/List.js +1 -1
  124. package/lib-esm/ActionList2/Divider.d.ts +3 -2
  125. package/lib-esm/ActionList2/Divider.js +8 -5
  126. package/lib-esm/ActionList2/Item.js +20 -6
  127. package/lib-esm/ActionList2/List.js +10 -2
  128. package/lib-esm/ActionList2/MenuContext.d.ts +10 -0
  129. package/lib-esm/ActionList2/MenuContext.js +3 -0
  130. package/lib-esm/ActionList2/Selection.js +9 -0
  131. package/lib-esm/ActionList2/index.d.ts +1 -2
  132. package/lib-esm/ActionMenu2.d.ts +313 -0
  133. package/lib-esm/ActionMenu2.js +67 -0
  134. package/lib-esm/Autocomplete/Autocomplete.d.ts +2 -1
  135. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +2 -1
  136. package/lib-esm/Avatar.d.ts +1 -2
  137. package/lib-esm/Avatar.js +2 -2
  138. package/lib-esm/BaseStyles.js +2 -20
  139. package/lib-esm/BorderBox.js +1 -1
  140. package/lib-esm/Box.js +1 -1
  141. package/lib-esm/BranchName.d.ts +1 -2
  142. package/lib-esm/BranchName.js +2 -2
  143. package/lib-esm/Breadcrumbs.js +3 -3
  144. package/lib-esm/Button/Button.d.ts +2 -2
  145. package/lib-esm/Button/Button.js +1 -1
  146. package/lib-esm/Button/ButtonClose.d.ts +2 -2
  147. package/lib-esm/Button/ButtonDanger.d.ts +2 -2
  148. package/lib-esm/Button/ButtonGroup.js +1 -1
  149. package/lib-esm/Button/ButtonInvisible.d.ts +2 -2
  150. package/lib-esm/Button/ButtonOutline.d.ts +2 -2
  151. package/lib-esm/Button/ButtonPrimary.d.ts +2 -2
  152. package/lib-esm/Checkbox.js +1 -1
  153. package/lib-esm/CircleOcticon.d.ts +35 -35
  154. package/lib-esm/Details.d.ts +1 -2
  155. package/lib-esm/Details.js +2 -3
  156. package/lib-esm/Dialog.d.ts +37 -37
  157. package/lib-esm/Dropdown.d.ts +8 -72
  158. package/lib-esm/DropdownMenu/DropdownButton.d.ts +6 -3
  159. package/lib-esm/FilterList.d.ts +1 -1
  160. package/lib-esm/FilteredActionList/FilteredActionList.js +1 -1
  161. package/lib-esm/Flex.js +1 -1
  162. package/lib-esm/Heading.d.ts +1 -2
  163. package/lib-esm/Heading.js +2 -6
  164. package/lib-esm/LabelGroup.js +1 -1
  165. package/lib-esm/Overlay.js +1 -1
  166. package/lib-esm/Pagination/Pagination.js +2 -2
  167. package/lib-esm/Position.d.ts +4 -4
  168. package/lib-esm/Position.js +1 -1
  169. package/lib-esm/ProgressBar.d.ts +16 -11
  170. package/lib-esm/ProgressBar.js +7 -11
  171. package/lib-esm/SelectMenu/SelectMenu.d.ts +11 -10
  172. package/lib-esm/SelectMenu/SelectMenu.js +1 -1
  173. package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
  174. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  175. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  176. package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
  177. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  178. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  179. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  180. package/lib-esm/SelectMenu/SelectMenuTabs.js +1 -1
  181. package/lib-esm/Spinner.d.ts +1 -2
  182. package/lib-esm/Spinner.js +1 -2
  183. package/lib-esm/StateLabel.js +1 -1
  184. package/lib-esm/StyledOcticon.js +1 -1
  185. package/lib-esm/SubNav.js +3 -3
  186. package/lib-esm/TextInputWithTokens.d.ts +2 -1
  187. package/lib-esm/Timeline.js +4 -4
  188. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  189. package/lib-esm/Token/AvatarToken.js +1 -1
  190. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  191. package/lib-esm/Token/Token.d.ts +1 -1
  192. package/lib-esm/Token/TokenBase.js +1 -1
  193. package/lib-esm/Tooltip.js +1 -1
  194. package/lib-esm/UnderlineNav.js +2 -2
  195. package/lib-esm/__tests__/Avatar.test.js +4 -2
  196. package/lib-esm/__tests__/Avatar.types.test.d.ts +3 -0
  197. package/lib-esm/__tests__/Avatar.types.test.js +16 -0
  198. package/lib-esm/__tests__/BranchName.types.test.d.ts +3 -0
  199. package/lib-esm/__tests__/BranchName.types.test.js +13 -0
  200. package/lib-esm/__tests__/Details.types.test.d.ts +3 -0
  201. package/lib-esm/__tests__/Details.types.test.js +13 -0
  202. package/lib-esm/__tests__/Heading.test.js +62 -30
  203. package/lib-esm/__tests__/Heading.types.test.d.ts +3 -0
  204. package/lib-esm/__tests__/Heading.types.test.js +13 -0
  205. package/lib-esm/drafts.d.ts +1 -0
  206. package/lib-esm/drafts.js +2 -1
  207. package/lib-esm/stories/ActionList.stories.js +3 -3
  208. package/lib-esm/stories/ActionList2.stories.js +1 -1
  209. package/lib-esm/stories/ActionMenu2.stories.js +376 -0
  210. package/lib-esm/stories/Checkbox.stories.js +2 -2
  211. package/lib-esm/stories/ThemeProvider.stories.js +1 -5
  212. package/lib-esm/stories/useFocusTrap.stories.js +1 -11
  213. package/lib-esm/stories/useFocusZone.stories.js +2 -6
  214. package/package-lock.json +1366 -3544
  215. package/package.json +14 -8
  216. package/script/component-status-project/build.ts +100 -0
  217. package/script/component-status-project/deploy.rb +142 -0
  218. package/src/ActionList2/Divider.tsx +13 -8
  219. package/src/ActionList2/Item.tsx +13 -3
  220. package/src/ActionList2/List.tsx +6 -2
  221. package/src/ActionList2/MenuContext.tsx +6 -0
  222. package/src/ActionList2/Selection.tsx +9 -0
  223. package/src/ActionMenu2.tsx +94 -0
  224. package/src/Avatar.tsx +2 -4
  225. package/src/BranchName.tsx +3 -3
  226. package/src/Details.tsx +1 -5
  227. package/src/Heading.tsx +2 -9
  228. package/src/ProgressBar.tsx +11 -10
  229. package/src/Spinner.tsx +1 -3
  230. package/src/__tests__/Avatar.test.tsx +1 -1
  231. package/src/__tests__/Avatar.types.test.tsx +11 -0
  232. package/src/__tests__/BranchName.types.test.tsx +11 -0
  233. package/src/__tests__/Details.types.test.tsx +11 -0
  234. package/src/__tests__/Heading.test.tsx +71 -25
  235. package/src/__tests__/Heading.types.test.tsx +11 -0
  236. package/src/drafts.ts +1 -0
  237. package/src/stories/ActionMenu2.stories.tsx +551 -0
  238. package/stats.html +1 -1
  239. package/tsconfig.build.json +1 -1
  240. package/tsconfig.json +1 -1
@@ -0,0 +1,376 @@
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 { ThemeProvider } from '..';
5
+ import BaseStyles from '../BaseStyles';
6
+ import { ActionMenu } from '../ActionMenu2';
7
+ import { ActionList } from '../ActionList2';
8
+ import Button, { ButtonInvisible } from '../Button';
9
+ import Box from '../Box';
10
+ import Text from '../Text';
11
+ import TextInput from '../TextInput';
12
+ import StyledOcticon from '../StyledOcticon';
13
+ import FormGroup from '../FormGroup';
14
+ import { ServerIcon, PlusCircleIcon, TriangleDownIcon, KebabHorizontalIcon, PencilIcon, ArchiveIcon, TrashIcon, ProjectIcon, ListUnorderedIcon, ArrowDownIcon, SearchIcon, VersionsIcon, TableIcon } from '@primer/octicons-react';
15
+ const meta = {
16
+ title: 'Composite components/ActionMenu2',
17
+ component: ActionMenu,
18
+ decorators: [Story => /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(BaseStyles, null, /*#__PURE__*/React.createElement(Story, null)))],
19
+ parameters: {
20
+ controls: {
21
+ disabled: true
22
+ }
23
+ }
24
+ };
25
+ export default meta;
26
+ export function SimpleListStory() {
27
+ const [actionFired, fireAction] = React.useState('');
28
+
29
+ const onSelect = name => fireAction(name);
30
+
31
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Simple Menu"), /*#__PURE__*/React.createElement("h2", null, "Last option activated: ", actionFired), /*#__PURE__*/React.createElement(ActionMenu, null, /*#__PURE__*/React.createElement(ActionMenu.Button, null, "Menu"), /*#__PURE__*/React.createElement(ActionList, null, /*#__PURE__*/React.createElement(ActionList.Item, {
32
+ onSelect: () => onSelect('Copy link')
33
+ }, "Copy link", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318C")), /*#__PURE__*/React.createElement(ActionList.Item, {
34
+ onSelect: () => onSelect('Quote reply')
35
+ }, "Quote reply", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318Q")), /*#__PURE__*/React.createElement(ActionList.Item, {
36
+ onSelect: () => onSelect('Edit comment')
37
+ }, "Edit comment", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318E")), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Item, {
38
+ variant: "danger",
39
+ onSelect: () => onSelect('Delete file')
40
+ }, "Delete file", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318D")))));
41
+ }
42
+ SimpleListStory.storyName = 'Simple Menu';
43
+ export function ActionsStory() {
44
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Actions"), /*#__PURE__*/React.createElement(ActionMenu, {
45
+ overlayProps: {
46
+ width: 'medium'
47
+ }
48
+ }, /*#__PURE__*/React.createElement(ActionMenu.Button, {
49
+ "aria-label": "Open Actions Menu"
50
+ }, /*#__PURE__*/React.createElement(ServerIcon, null)), /*#__PURE__*/React.createElement(ActionList, null, /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(ServerIcon, null)), "Open current Codespace", /*#__PURE__*/React.createElement(ActionList.Description, {
51
+ variant: "block"
52
+ }, "Your existing Codespace will be opened to its previous state, and you'll be asked to manually switch to new-branch."), /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318O")), /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(PlusCircleIcon, null)), "Create new Codespace", /*#__PURE__*/React.createElement(ActionList.Description, {
53
+ variant: "block"
54
+ }, "Create a brand new Codespace with a fresh image and checkout this branch."), /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318C")))));
55
+ }
56
+ ActionsStory.storyName = 'Actions';
57
+ export function ExternalAnchor() {
58
+ const [actionFired, fireAction] = React.useState('');
59
+
60
+ const onSelect = name => fireAction(name);
61
+
62
+ const [open, setOpen] = React.useState(false);
63
+ const triggerRef = /*#__PURE__*/React.createRef();
64
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "External Anchor"), /*#__PURE__*/React.createElement("h2", null, "External Open State: ", open ? 'Open' : 'Closed'), /*#__PURE__*/React.createElement("h2", null, "Last option activated: ", actionFired), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
65
+ ref: triggerRef,
66
+ onClick: () => setOpen(!open)
67
+ }, open ? 'Close Menu' : 'Open Menu')), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(ActionMenu, {
68
+ open: open,
69
+ onOpenChange: setOpen,
70
+ anchorRef: triggerRef
71
+ }, /*#__PURE__*/React.createElement(ActionList, null, /*#__PURE__*/React.createElement(ActionList.Item, {
72
+ onSelect: () => onSelect('Copy link')
73
+ }, "Copy link", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318C")), /*#__PURE__*/React.createElement(ActionList.Item, {
74
+ onSelect: () => onSelect('Quote reply')
75
+ }, "Quote reply", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318Q")), /*#__PURE__*/React.createElement(ActionList.Item, {
76
+ onSelect: () => onSelect('Edit comment')
77
+ }, "Edit comment", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318E")), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Item, {
78
+ variant: "danger",
79
+ onSelect: () => onSelect('Delete file')
80
+ }, "Delete file", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318D")))));
81
+ }
82
+ ExternalAnchor.storyName = 'External Anchor';
83
+ export function ControlledMenu() {
84
+ const [actionFired, fireAction] = React.useState('');
85
+
86
+ const onSelect = name => fireAction(name);
87
+
88
+ const [open, setOpen] = React.useState(false);
89
+ const triggerRef = /*#__PURE__*/React.createRef();
90
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Controlled Menu"), /*#__PURE__*/React.createElement("h2", null, "External Open State: ", open ? 'Open' : 'Closed'), /*#__PURE__*/React.createElement("h2", null, "Last option activated: ", actionFired), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
91
+ ref: triggerRef,
92
+ onClick: () => setOpen(!open)
93
+ }, open ? 'Close Menu' : 'Open Menu')), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(ActionMenu, {
94
+ open: open,
95
+ onOpenChange: setOpen,
96
+ overlayProps: {
97
+ // Because the component is controlled from outside, but the anchor is still internal,
98
+ // clicking the external button should not be counted as "clicking outside"
99
+ ignoreClickRefs: [triggerRef]
100
+ }
101
+ }, /*#__PURE__*/React.createElement(ActionMenu.Button, null, "Anchor"), /*#__PURE__*/React.createElement(ActionList, null, /*#__PURE__*/React.createElement(ActionList.Item, {
102
+ onSelect: () => onSelect('Copy link')
103
+ }, "Copy link", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318C")), /*#__PURE__*/React.createElement(ActionList.Item, {
104
+ onSelect: () => onSelect('Quote reply')
105
+ }, "Quote reply", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318Q")), /*#__PURE__*/React.createElement(ActionList.Item, {
106
+ onSelect: () => onSelect('Edit comment')
107
+ }, "Edit comment", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318E")), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Item, {
108
+ variant: "danger",
109
+ onSelect: () => onSelect('Delete file')
110
+ }, "Delete file", /*#__PURE__*/React.createElement(ActionList.TrailingVisual, null, "\u2318D")))));
111
+ }
112
+ ControlledMenu.storyName = 'Controlled Menu';
113
+ export function CustomAnchor() {
114
+ const [actionFired, fireAction] = React.useState('');
115
+
116
+ const onSelect = name => fireAction(name);
117
+
118
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Custom Anchor"), /*#__PURE__*/React.createElement("h2", null, "Last option activated: ", actionFired), /*#__PURE__*/React.createElement(ActionMenu, null, /*#__PURE__*/React.createElement(ActionMenu.Anchor, null, /*#__PURE__*/React.createElement("summary", {
119
+ style: {
120
+ cursor: 'pointer'
121
+ },
122
+ "aria-label": "Open column options"
123
+ }, /*#__PURE__*/React.createElement(KebabHorizontalIcon, null))), /*#__PURE__*/React.createElement(ActionList, null, /*#__PURE__*/React.createElement(ActionList.Item, {
124
+ onSelect: () => onSelect('Rename')
125
+ }, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(PencilIcon, null)), "Rename"), /*#__PURE__*/React.createElement(ActionList.Item, {
126
+ onSelect: () => onSelect('Archive')
127
+ }, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(ArchiveIcon, null)), "Archive all cards"), /*#__PURE__*/React.createElement(ActionList.Item, {
128
+ variant: "danger",
129
+ onSelect: () => onSelect('Delete file')
130
+ }, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(TrashIcon, null)), "Delete"))));
131
+ }
132
+ CustomAnchor.storyName = 'Custom Anchor';
133
+ export function MemexTableMenu() {
134
+ const [name, setName] = React.useState('Estimate');
135
+ const inputRef = /*#__PURE__*/React.createRef();
136
+ /** To add custom components to the Menu,
137
+ * you need to switch to a controlled menu
138
+ */
139
+
140
+ const [open, setOpen] = React.useState(false);
141
+
142
+ const handleKeyPress = event => {
143
+ if (event.key === 'Enter') {
144
+ setName(event.currentTarget.value);
145
+ setOpen(false);
146
+ }
147
+ };
148
+ /** This requires inside knowledge. If you to do this with onBlur
149
+ * on the input, it doesn't work :(
150
+ */
151
+
152
+
153
+ const handleClickOutside = () => {
154
+ if (inputRef.current) setName(inputRef.current.value);
155
+ setOpen(false);
156
+ };
157
+
158
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Memex Table Menu"), /*#__PURE__*/React.createElement(Box, {
159
+ sx: {
160
+ width: 200,
161
+ display: 'flex',
162
+ justifyContent: 'space-between',
163
+ p: 2,
164
+ border: '1px solid',
165
+ borderColor: 'border.default'
166
+ }
167
+ }, /*#__PURE__*/React.createElement(Text, {
168
+ sx: {
169
+ fontSize: 0,
170
+ fontWeight: 'bold'
171
+ }
172
+ }, name), /*#__PURE__*/React.createElement(ActionMenu, {
173
+ open: open,
174
+ onOpenChange: setOpen,
175
+ overlayProps: {
176
+ onClickOutside: handleClickOutside
177
+ }
178
+ }, /*#__PURE__*/React.createElement(ActionMenu.Button, {
179
+ "aria-label": "Open Estimate column options menu",
180
+ sx: {
181
+ p: 0,
182
+ display: 'flex',
183
+ alignItems: 'center',
184
+ justifyContent: 'center'
185
+ }
186
+ }, /*#__PURE__*/React.createElement(TriangleDownIcon, null)), /*#__PURE__*/React.createElement(TextInput, {
187
+ ref: inputRef,
188
+ sx: {
189
+ m: 2
190
+ },
191
+ defaultValue: name,
192
+ onKeyPress: handleKeyPress
193
+ }), /*#__PURE__*/React.createElement(ActionMenu.Divider, {
194
+ sx: {
195
+ m: 0
196
+ }
197
+ }), /*#__PURE__*/React.createElement(ActionList, null, /*#__PURE__*/React.createElement(ActionList.Item, null, "Sort ascending (123...)"), /*#__PURE__*/React.createElement(ActionList.Item, null, "Sort descending (123...)"), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Item, null, "Filter by values"), /*#__PURE__*/React.createElement(ActionList.Item, null, "Group by values"), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Item, {
198
+ disabled: true
199
+ }, "Hide field"), /*#__PURE__*/React.createElement(ActionList.Item, {
200
+ variant: "danger"
201
+ }, "Delete file")))));
202
+ }
203
+ MemexTableMenu.storyName = 'Memex Table Menu';
204
+ /* copied from github/memex */
205
+
206
+ const LayoutToggleItem = ({
207
+ selected,
208
+ children,
209
+ Icon,
210
+ ...props
211
+ }) => {
212
+ return /*#__PURE__*/React.createElement(FormGroup, {
213
+ sx: {
214
+ flex: 'auto',
215
+ borderRadius: 2,
216
+ border: '1px solid',
217
+ borderColor: selected ? 'accent.emphasis' : 'border.default',
218
+ textAlign: 'center',
219
+ cursor: 'pointer',
220
+ backgroundColor: selected ? 'accent.subtle' : '',
221
+ boxShadow: selected ? theme => `inset 0 0 0 1px ${theme.colors.accent.emphasis}` : '',
222
+ mb: 2,
223
+ mt: 1,
224
+ '&:hover': {
225
+ backgroundColor: !selected ? 'canvas.subtle' : ''
226
+ },
227
+ '&:first-of-type': {
228
+ borderTopRightRadius: '0px',
229
+ borderBottomRightRadius: '0px',
230
+ borderRight: selected ? undefined : '0'
231
+ },
232
+ '&:last-of-type': {
233
+ borderTopLeftRadius: '0px',
234
+ borderBottomLeftRadius: '0px',
235
+ borderLeft: selected ? undefined : '0'
236
+ }
237
+ }
238
+ }, /*#__PURE__*/React.createElement(FormGroup.Label, _extends({
239
+ htmlFor: "layout-selector",
240
+ sx: {
241
+ fontWeight: 'normal',
242
+ cursor: 'pointer',
243
+ px: 3,
244
+ py: 2,
245
+ mb: 0
246
+ }
247
+ }, props), /*#__PURE__*/React.createElement(Box, {
248
+ sx: {
249
+ textAlign: 'center',
250
+ flexDirection: 'column',
251
+ m: 'auto',
252
+ alignItems: 'center',
253
+ display: 'flex'
254
+ }
255
+ }, /*#__PURE__*/React.createElement(Icon, {
256
+ size: "medium"
257
+ }), /*#__PURE__*/React.createElement(Text, {
258
+ sx: {
259
+ color: selected ? 'fg.default' : 'fg.muted',
260
+ fontSize: 0
261
+ }
262
+ }, children))));
263
+ };
264
+
265
+ LayoutToggleItem.displayName = "LayoutToggleItem";
266
+
267
+ /* copied from github/memex */
268
+ const ViewChangeButtons = ({
269
+ setOpen
270
+ }) => /*#__PURE__*/React.createElement(Box, {
271
+ sx: {
272
+ display: 'flex'
273
+ }
274
+ }, /*#__PURE__*/React.createElement(ButtonInvisible, {
275
+ onClick: () => setOpen(false),
276
+ sx: {
277
+ flex: 'auto',
278
+ minWidth: '50%',
279
+ borderRight: '1px solid',
280
+ borderColor: 'border.default',
281
+ borderRadius: 0,
282
+ mt: -2,
283
+ mb: -2,
284
+ py: 3,
285
+ '&:hover': {
286
+ bg: 'canvas.inset'
287
+ }
288
+ }
289
+ }, "Save changes"), /*#__PURE__*/React.createElement(ButtonInvisible, {
290
+ onClick: () => setOpen(false),
291
+ sx: {
292
+ flex: 'auto',
293
+ color: 'fg.muted',
294
+ borderRadius: 0,
295
+ mt: -2,
296
+ mb: -2,
297
+ py: 3,
298
+ fontWeight: 'normal',
299
+ '&:hover': {
300
+ bg: 'canvas.inset'
301
+ }
302
+ }
303
+ }, "Discard changes"));
304
+
305
+ ViewChangeButtons.displayName = "ViewChangeButtons";
306
+ export function MemexViewOptionsMenu() {
307
+ const [open, setOpen] = React.useState(false);
308
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Memex View Options Menu"), /*#__PURE__*/React.createElement(Box, {
309
+ sx: {
310
+ display: 'flex',
311
+ alignItems: 'center'
312
+ }
313
+ }, /*#__PURE__*/React.createElement(Text, {
314
+ sx: {
315
+ fontSize: 1,
316
+ mr: 3
317
+ }
318
+ }, /*#__PURE__*/React.createElement(StyledOcticon, {
319
+ icon: ProjectIcon,
320
+ sx: {
321
+ mr: 2
322
+ }
323
+ }), "React"), /*#__PURE__*/React.createElement(ActionMenu, {
324
+ open: open,
325
+ onOpenChange: setOpen,
326
+ overlayProps: {
327
+ width: 'medium'
328
+ }
329
+ }, /*#__PURE__*/React.createElement(ActionMenu.Button, {
330
+ "aria-label": "Open View options menu",
331
+ sx: {
332
+ p: 0,
333
+ width: 18,
334
+ height: 18,
335
+ display: 'flex',
336
+ alignItems: 'center',
337
+ justifyContent: 'center'
338
+ }
339
+ }, /*#__PURE__*/React.createElement(TriangleDownIcon, null)), /*#__PURE__*/React.createElement(ActionList, null, /*#__PURE__*/React.createElement(ActionList.Group, {
340
+ title: "Layout"
341
+ }, /*#__PURE__*/React.createElement("li", {
342
+ style: {
343
+ listStyle: 'none'
344
+ }
345
+ }, /*#__PURE__*/React.createElement(Box, {
346
+ sx: {
347
+ mx: 3,
348
+ display: 'flex'
349
+ }
350
+ }, /*#__PURE__*/React.createElement(LayoutToggleItem, {
351
+ selected: true,
352
+ Icon: TableIcon
353
+ }, "Table"), /*#__PURE__*/React.createElement(LayoutToggleItem, {
354
+ selected: false,
355
+ Icon: ProjectIcon
356
+ }, "Board")))), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Group, {
357
+ title: "Configuration"
358
+ }, /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(ListUnorderedIcon, null)), "Title, Assignees, Status, Labels, Repositories"), /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(ListUnorderedIcon, null)), "group: none"), /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(ArrowDownIcon, null)), "sort: manual"), /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(SearchIcon, null)), "Search or filter this view")), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(PencilIcon, null)), "Rename view"), /*#__PURE__*/React.createElement(ActionList.Item, null, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(VersionsIcon, null)), "Save changes to new view"), /*#__PURE__*/React.createElement(ActionList.Item, {
359
+ disabled: true
360
+ }, /*#__PURE__*/React.createElement(ActionList.LeadingVisual, null, /*#__PURE__*/React.createElement(TrashIcon, null)), "Delete view"), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement("li", {
361
+ style: {
362
+ listStyle: 'none'
363
+ }
364
+ }, /*#__PURE__*/React.createElement(ViewChangeButtons, {
365
+ setOpen: setOpen
366
+ }))))));
367
+ }
368
+ MemexViewOptionsMenu.storyName = 'Memex View Options Menu';
369
+ export function UnexpectedSelectionVariant() {
370
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Expect error if selectionVariant is passed"), /*#__PURE__*/React.createElement(ActionMenu, null, /*#__PURE__*/React.createElement(ActionMenu.Button, null, "Menu"), /*#__PURE__*/React.createElement(ActionList, {
371
+ selectionVariant: "multiple"
372
+ }, /*#__PURE__*/React.createElement(ActionList.Item, null, "Copy link"), /*#__PURE__*/React.createElement(ActionList.Item, null, "Quote reply"), /*#__PURE__*/React.createElement(ActionList.Item, null, "Edit comment"), /*#__PURE__*/React.createElement(ActionList.Divider, null), /*#__PURE__*/React.createElement(ActionList.Item, {
373
+ variant: "danger"
374
+ }, "Delete file"))));
375
+ }
376
+ UnexpectedSelectionVariant.storyName = 'Unexpected selectionVariant';
@@ -30,11 +30,11 @@ export default {
30
30
  };
31
31
  const StyledLabel = styled.label.withConfig({
32
32
  displayName: "Checkboxstories__StyledLabel",
33
- componentId: "sdupvr-0"
33
+ componentId: "sc-sdupvr-0"
34
34
  })(["user-select:none;font-weight:600;font-size:14px;line-height:18px;margin-left:16px;", ""], COMMON);
35
35
  const StyledSubLabel = styled(Text).withConfig({
36
36
  displayName: "Checkboxstories__StyledSubLabel",
37
- componentId: "sdupvr-1"
37
+ componentId: "sc-sdupvr-1"
38
38
  })(["color:", ";font-size:13px;", ""], get('colors.fg.muted'), COMMON);
39
39
  export const Default = args => {
40
40
  const [isChecked, setChecked] = useState(false);
@@ -12,11 +12,7 @@ export default {
12
12
  }
13
13
  }
14
14
  };
15
- const GlobalStyle = createGlobalStyle`
16
- body {
17
- background-color: ${themeGet('colors.bg.canvas')};
18
- }
19
- `;
15
+ const GlobalStyle = createGlobalStyle(["body{background-color:", ";}"], themeGet('colors.bg.canvas'));
20
16
 
21
17
  function ActiveColorScheme() {
22
18
  const {
@@ -11,17 +11,7 @@ export default {
11
11
  }; // NOTE: the below styles are solely intended as a visual aid for
12
12
  // this Storybook story, but they're not recommended for a real site!
13
13
 
14
- const HelperGlobalStyling = createGlobalStyle`
15
- *:focus {
16
- outline: 2px solid ${themeGet('colors.auto.blue.3')} !important;
17
- }
18
- [data-focus-trap='active'] {
19
- background-color: ${themeGet('colors.auto.green.2')}
20
- }
21
- [data-focus-trap='suspended'] {
22
- background-color: ${themeGet('colors.auto.yellow.2')}
23
- }
24
- `;
14
+ const HelperGlobalStyling = createGlobalStyle(["*:focus{outline:2px solid ", " !important;}[data-focus-trap='active']{background-color:", "}[data-focus-trap='suspended']{background-color:", "}"], themeGet('colors.auto.blue.3'), themeGet('colors.auto.green.2'), themeGet('colors.auto.yellow.2'));
25
15
  const MarginButton = styled(Button).withConfig({
26
16
  displayName: "useFocusTrapstories__MarginButton",
27
17
  componentId: "sc-12zkn1e-0"
@@ -16,14 +16,10 @@ export default {
16
16
  }; // NOTE: the below styles are solely intended as a visual aid for
17
17
  // this Storybook story, but they're not recommended for a real site!
18
18
 
19
- const HelperGlobalStyling = createGlobalStyle`
20
- *:focus {
21
- outline: 2px solid ${themeGet('colors.border.info')} !important;
22
- }
23
- `;
19
+ const HelperGlobalStyling = createGlobalStyle(["*:focus{outline:2px solid ", " !important;}"], themeGet('colors.border.info'));
24
20
  const MarginButton = styled(Button).withConfig({
25
21
  displayName: "useFocusZonestories__MarginButton",
26
- componentId: "e94kdz-0"
22
+ componentId: "sc-e94kdz-0"
27
23
  })(["margin:", ";"], themeGet('space.1'));
28
24
  export const BasicFocusZone = () => {
29
25
  // Display each key press in the top-right corner of the page as a visual aid