@primer/components 31.2.0-rc.85bcb6e0 → 31.2.0-rc.881e6b2d

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 (134) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/browser.esm.js +620 -618
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +188 -186
  5. package/dist/browser.umd.js.map +1 -1
  6. package/docs/content/ActionList2.mdx +354 -0
  7. package/docs/content/StateLabel.md +5 -4
  8. package/docs/content/getting-started.md +1 -1
  9. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +1 -3
  10. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +1 -1
  11. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +17 -0
  12. package/lib/ActionList2/Description.d.ts +12 -0
  13. package/lib/ActionList2/Description.js +53 -0
  14. package/lib/ActionList2/Divider.d.ts +5 -0
  15. package/lib/ActionList2/Divider.js +35 -0
  16. package/lib/ActionList2/Group.d.ts +11 -0
  17. package/lib/ActionList2/Group.js +57 -0
  18. package/lib/ActionList2/Header.d.ts +26 -0
  19. package/lib/ActionList2/Header.js +55 -0
  20. package/lib/ActionList2/Item.d.ts +63 -0
  21. package/lib/ActionList2/Item.js +244 -0
  22. package/lib/ActionList2/LinkItem.d.ts +17 -0
  23. package/lib/ActionList2/LinkItem.js +57 -0
  24. package/lib/ActionList2/List.d.ts +26 -0
  25. package/lib/ActionList2/List.js +59 -0
  26. package/lib/ActionList2/Selection.d.ts +5 -0
  27. package/lib/ActionList2/Selection.js +70 -0
  28. package/lib/ActionList2/Visuals.d.ts +9 -0
  29. package/lib/ActionList2/Visuals.js +90 -0
  30. package/lib/ActionList2/index.d.ts +36 -0
  31. package/lib/ActionList2/index.js +47 -0
  32. package/lib/StateLabel.d.ts +1 -1
  33. package/lib/StateLabel.js +6 -1
  34. package/lib/_TextInputWrapper.js +2 -2
  35. package/lib/__tests__/ActionList2.test.d.ts +1 -0
  36. package/lib/__tests__/ActionList2.test.js +53 -0
  37. package/lib/__tests__/AnchoredOverlay.test.js +4 -2
  38. package/lib/__tests__/TextInputWithTokens.test.js +1 -10
  39. package/lib/__tests__/utils/createSlots.test.d.ts +1 -0
  40. package/lib/__tests__/utils/createSlots.test.js +75 -0
  41. package/lib/stories/ActionList2.stories.js +907 -0
  42. package/lib/stories/TextInput.stories.js +144 -0
  43. package/lib/sx.d.ts +2 -0
  44. package/lib/sx.js +8 -0
  45. package/lib/theme-preval.js +81 -2
  46. package/lib/unreleased.d.ts +7 -0
  47. package/lib/unreleased.js +18 -0
  48. package/lib/utils/create-slots.d.ts +17 -0
  49. package/lib/utils/create-slots.js +105 -0
  50. package/lib/utils/testing.d.ts +14 -1
  51. package/lib/utils/use-force-update.d.ts +1 -0
  52. package/lib/utils/use-force-update.js +19 -0
  53. package/lib-esm/ActionList2/Description.d.ts +12 -0
  54. package/lib-esm/ActionList2/Description.js +37 -0
  55. package/lib-esm/ActionList2/Divider.d.ts +5 -0
  56. package/lib-esm/ActionList2/Divider.js +23 -0
  57. package/lib-esm/ActionList2/Group.d.ts +11 -0
  58. package/lib-esm/ActionList2/Group.js +40 -0
  59. package/lib-esm/ActionList2/Header.d.ts +26 -0
  60. package/lib-esm/ActionList2/Header.js +44 -0
  61. package/lib-esm/ActionList2/Item.d.ts +63 -0
  62. package/lib-esm/ActionList2/Item.js +210 -0
  63. package/lib-esm/ActionList2/LinkItem.d.ts +17 -0
  64. package/lib-esm/ActionList2/LinkItem.js +43 -0
  65. package/lib-esm/ActionList2/List.d.ts +26 -0
  66. package/lib-esm/ActionList2/List.js +37 -0
  67. package/lib-esm/ActionList2/Selection.d.ts +5 -0
  68. package/lib-esm/ActionList2/Selection.js +52 -0
  69. package/lib-esm/ActionList2/Visuals.d.ts +9 -0
  70. package/lib-esm/ActionList2/Visuals.js +68 -0
  71. package/lib-esm/ActionList2/index.d.ts +36 -0
  72. package/lib-esm/ActionList2/index.js +33 -0
  73. package/lib-esm/StateLabel.d.ts +1 -1
  74. package/lib-esm/StateLabel.js +7 -2
  75. package/lib-esm/_TextInputWrapper.js +2 -2
  76. package/lib-esm/__tests__/ActionList2.test.d.ts +1 -0
  77. package/lib-esm/__tests__/ActionList2.test.js +41 -0
  78. package/lib-esm/__tests__/AnchoredOverlay.test.js +4 -2
  79. package/lib-esm/__tests__/TextInputWithTokens.test.js +1 -10
  80. package/lib-esm/__tests__/utils/createSlots.test.d.ts +1 -0
  81. package/lib-esm/__tests__/utils/createSlots.test.js +67 -0
  82. package/lib-esm/stories/ActionList2.stories.js +796 -0
  83. package/lib-esm/stories/TextInput.stories.js +117 -0
  84. package/lib-esm/sx.d.ts +2 -0
  85. package/lib-esm/sx.js +3 -1
  86. package/lib-esm/theme-preval.js +81 -2
  87. package/lib-esm/unreleased.d.ts +7 -0
  88. package/lib-esm/unreleased.js +8 -0
  89. package/lib-esm/utils/create-slots.d.ts +17 -0
  90. package/lib-esm/utils/create-slots.js +84 -0
  91. package/lib-esm/utils/testing.d.ts +14 -1
  92. package/lib-esm/utils/use-force-update.d.ts +1 -0
  93. package/lib-esm/utils/use-force-update.js +6 -0
  94. package/migrating.md +1 -1
  95. package/package-lock.json +153 -14
  96. package/package.json +6 -4
  97. package/src/ActionList2/Description.tsx +49 -0
  98. package/src/ActionList2/Divider.tsx +24 -0
  99. package/src/ActionList2/Group.tsx +34 -0
  100. package/src/ActionList2/Header.tsx +58 -0
  101. package/src/ActionList2/Item.tsx +245 -0
  102. package/src/ActionList2/LinkItem.tsx +49 -0
  103. package/src/ActionList2/List.tsx +55 -0
  104. package/src/ActionList2/Selection.tsx +40 -0
  105. package/src/ActionList2/Visuals.tsx +76 -0
  106. package/src/ActionList2/index.ts +39 -0
  107. package/src/StateLabel.tsx +14 -2
  108. package/src/_TextInputWrapper.tsx +7 -0
  109. package/src/__tests__/ActionList2.test.tsx +47 -0
  110. package/src/__tests__/AnchoredOverlay.test.tsx +2 -2
  111. package/src/__tests__/TextInputWithTokens.test.tsx +0 -10
  112. package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +14 -0
  113. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +35 -135
  114. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +1 -0
  115. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +1 -0
  116. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +1 -0
  117. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +1 -0
  118. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +1 -0
  119. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +4 -0
  120. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +1 -0
  121. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +13 -6
  122. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +1 -0
  123. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +66 -0
  124. package/src/__tests__/__snapshots__/Token.test.tsx.snap +17 -0
  125. package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +55 -0
  126. package/src/__tests__/utils/createSlots.test.tsx +74 -0
  127. package/src/stories/ActionList2.stories.tsx +1288 -0
  128. package/src/stories/TextInput.stories.tsx +113 -0
  129. package/src/sx.ts +3 -0
  130. package/src/theme-preval.js +1 -0
  131. package/src/unreleased.ts +9 -0
  132. package/src/utils/create-slots.tsx +96 -0
  133. package/src/utils/use-force-update.ts +7 -0
  134. package/stats.html +1 -1
@@ -0,0 +1,74 @@
1
+ import React from 'react'
2
+ import 'babel-polyfill'
3
+ import {render, waitFor} from '@testing-library/react'
4
+ import createSlots from '../../utils/create-slots'
5
+
6
+ // setup a component with slots
7
+ const {Slots, Slot} = createSlots(['One', 'Two', 'Three'])
8
+ type ContextTypes = {salutation?: string}
9
+
10
+ const ComponentWithSlots: React.FC<ContextTypes> = ({salutation, children}) => {
11
+ return (
12
+ <Slots context={{salutation}}>
13
+ {slots => (
14
+ <div>
15
+ {slots.One}
16
+ <span>
17
+ {children} {slots.Two} {slots.Three}
18
+ </span>
19
+ </div>
20
+ )}
21
+ </Slots>
22
+ )
23
+ }
24
+ const SlotItem1: React.FC = ({children}) => <Slot name="One">{children}</Slot>
25
+ const SlotItem2: React.FC = ({children}) => <Slot name="Two">{children}</Slot>
26
+ const SlotItem3: React.FC = ({children}) => (
27
+ <Slot name="Three">
28
+ {(context: ContextTypes) => (
29
+ <>
30
+ {context.salutation} {children}
31
+ </>
32
+ )}
33
+ </Slot>
34
+ )
35
+
36
+ describe('ComponentWithSlots', () => {
37
+ it('renders all slots', async () => {
38
+ const component = render(
39
+ <ComponentWithSlots>
40
+ <SlotItem1>first</SlotItem1>
41
+ <SlotItem2>second</SlotItem2>
42
+ free form
43
+ </ComponentWithSlots>
44
+ )
45
+
46
+ await waitFor(() => component.getByText('first'))
47
+ expect(component.container).toMatchSnapshot()
48
+ })
49
+
50
+ it('renders without any slots', async () => {
51
+ const component = render(<ComponentWithSlots>free form</ComponentWithSlots>)
52
+ expect(component.container).toMatchSnapshot()
53
+ })
54
+
55
+ it('renders with just one slot', async () => {
56
+ const component = render(
57
+ <ComponentWithSlots>
58
+ <SlotItem1>first</SlotItem1>
59
+ free form
60
+ </ComponentWithSlots>
61
+ )
62
+ expect(component.container).toMatchSnapshot()
63
+ })
64
+
65
+ it('renders with context passed to children', async () => {
66
+ const component = render(
67
+ <ComponentWithSlots salutation="hi">
68
+ <SlotItem3>third</SlotItem3>
69
+ free form
70
+ </ComponentWithSlots>
71
+ )
72
+ expect(component.container).toMatchSnapshot()
73
+ })
74
+ })