@charcuterie/ui 4.5.0 → 4.6.0
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.
- package/README.md +7 -2
- package/dist/Card/Card.d.ts +5 -2
- package/dist/Card/Card.d.ts.map +1 -1
- package/dist/Card/Card.js +23 -3
- package/dist/Card/Card.js.map +1 -1
- package/dist/Overlay/OverlayPanel.d.ts.map +1 -1
- package/dist/Overlay/OverlayPanel.js +54 -2
- package/dist/Overlay/OverlayPanel.js.map +1 -1
- package/dist/Overlay/OverlayStack.d.ts +5 -0
- package/dist/Overlay/OverlayStack.d.ts.map +1 -1
- package/dist/Overlay/OverlayStack.js +2 -0
- package/dist/Overlay/OverlayStack.js.map +1 -1
- package/dist/Toast/ToastRegion.d.ts +61 -0
- package/dist/Toast/ToastRegion.d.ts.map +1 -1
- package/dist/Toast/ToastRegion.js +80 -3
- package/dist/Toast/ToastRegion.js.map +1 -1
- package/dist/Toolbar/useToolbarOverflow.d.ts.map +1 -1
- package/dist/Toolbar/useToolbarOverflow.js +39 -0
- package/dist/Toolbar/useToolbarOverflow.js.map +1 -1
- package/package.json +3 -2
- package/src/Accordion/Accordion.mdx +1 -1
- package/src/Accordion/Accordion.stories.tsx +3 -1
- package/src/Accordion/Accordion.test.tsx +4 -4
- package/src/ActionTiles/ActionTiles.mdx +1 -1
- package/src/ActionTiles/ActionTiles.stories.tsx +3 -1
- package/src/ActionTiles/ActionTiles.test.tsx +3 -3
- package/src/AdaptiveGrid/AdaptiveGrid.mdx +1 -1
- package/src/AdaptiveGrid/AdaptiveGrid.stories.tsx +3 -1
- package/src/AdaptiveGrid/AdaptiveGrid.test.tsx +5 -5
- package/src/Alert/Alert.mdx +1 -1
- package/src/Alert/Alert.stories.tsx +3 -1
- package/src/Alert/Alert.test.tsx +2 -2
- package/src/Avatar/Avatar.mdx +1 -1
- package/src/Avatar/Avatar.stories.tsx +4 -1
- package/src/Avatar/Avatar.test.tsx +2 -2
- package/src/Badge/Badge.mdx +1 -1
- package/src/Badge/Badge.stories.tsx +3 -1
- package/src/Badge/Badge.test.tsx +3 -3
- package/src/BadgeButton/BadgeButton.mdx +1 -1
- package/src/BadgeButton/BadgeButton.stories.tsx +3 -1
- package/src/BadgeButton/BadgeButton.test.tsx +2 -2
- package/src/Board/Board.mdx +1 -1
- package/src/Board/Board.stories.tsx +4 -1
- package/src/Board/Board.test.tsx +2 -2
- package/src/Button/Button.mdx +1 -1
- package/src/Button/Button.stories.tsx +3 -1
- package/src/Button/Button.test.tsx +2 -2
- package/src/ButtonLink/ButtonLink.mdx +1 -1
- package/src/ButtonLink/ButtonLink.stories.tsx +3 -1
- package/src/ButtonLink/ButtonLink.test.tsx +3 -3
- package/src/Card/Card.mdx +21 -1
- package/src/Card/Card.stories.tsx +91 -1
- package/src/Card/Card.test.tsx +60 -3
- package/src/Card/Card.tsx +24 -2
- package/src/Checkbox/Checkbox.mdx +1 -1
- package/src/Checkbox/Checkbox.stories.tsx +3 -1
- package/src/Checkbox/Checkbox.test.tsx +4 -4
- package/src/ColorSchemeSwitcher/ColorSchemeSwitcher.mdx +1 -1
- package/src/ColorSchemeSwitcher/ColorSchemeSwitcher.stories.tsx +3 -1
- package/src/ColorSchemeSwitcher/ColorSchemeSwitcher.test.tsx +5 -5
- package/src/ColorSchemeToggle/ColorSchemeToggle.mdx +1 -1
- package/src/ColorSchemeToggle/ColorSchemeToggle.stories.tsx +3 -1
- package/src/ColorSchemeToggle/ColorSchemeToggle.test.tsx +5 -5
- package/src/Combobox/Combobox.mdx +1 -1
- package/src/Combobox/Combobox.stories.tsx +3 -1
- package/src/Combobox/Combobox.test.tsx +2 -2
- package/src/CopyButton/CopyButton.mdx +1 -1
- package/src/CopyButton/CopyButton.stories.tsx +4 -1
- package/src/CopyButton/CopyButton.test.tsx +3 -3
- package/src/DataTable/DataTable.mdx +1 -1
- package/src/DataTable/DataTable.stories.tsx +3 -1
- package/src/DataTable/DataTable.test.tsx +3 -3
- package/src/DatePicker/DatePicker.mdx +1 -1
- package/src/DatePicker/DatePicker.stories.tsx +3 -1
- package/src/DatePicker/DatePicker.test.tsx +3 -3
- package/src/DatePicker/plainDate.test.ts +21 -3
- package/src/Dialog/Dialog.mdx +1 -1
- package/src/Dialog/Dialog.stories.tsx +3 -1
- package/src/Dialog/Dialog.test.tsx +2 -2
- package/src/DropRail/DropRail.mdx +1 -1
- package/src/DropRail/DropRail.stories.tsx +4 -1
- package/src/DropRail/DropRail.test.tsx +4 -4
- package/src/EmptyState/EmptyState.mdx +1 -1
- package/src/EmptyState/EmptyState.stories.tsx +3 -1
- package/src/EmptyState/EmptyState.test.tsx +2 -2
- package/src/Field/Field.mdx +1 -1
- package/src/Field/Field.stories.tsx +3 -1
- package/src/Field/Field.test.tsx +4 -4
- package/src/FileDropZone/FileDropZone.mdx +1 -1
- package/src/FileDropZone/FileDropZone.stories.tsx +3 -1
- package/src/FileDropZone/FileDropZone.test.tsx +3 -3
- package/src/Header/Header.mdx +1 -1
- package/src/Header/Header.stories.tsx +3 -1
- package/src/IconButton/IconButton.mdx +1 -1
- package/src/IconButton/IconButton.stories.tsx +3 -1
- package/src/IconButton/IconButton.test.tsx +2 -2
- package/src/Lightbox/Lightbox.mdx +1 -1
- package/src/Lightbox/Lightbox.stories.tsx +3 -1
- package/src/Lightbox/Lightbox.test.tsx +2 -2
- package/src/Listbox/Listbox.mdx +1 -1
- package/src/Listbox/Listbox.stories.tsx +3 -1
- package/src/Listbox/Listbox.test.tsx +5 -5
- package/src/LiveStatusIndicator/LiveStatusIndicator.mdx +1 -1
- package/src/LiveStatusIndicator/LiveStatusIndicator.stories.tsx +3 -1
- package/src/LiveStatusIndicator/LiveStatusIndicator.test.tsx +2 -2
- package/src/LogViewer/LogViewer.mdx +1 -1
- package/src/LogViewer/LogViewer.stories.tsx +3 -1
- package/src/LogViewer/LogViewer.test.tsx +2 -2
- package/src/Main/Main.mdx +1 -1
- package/src/Main/Main.stories.tsx +3 -1
- package/src/Main/Main.test.tsx +3 -3
- package/src/MarkdownEditor/MarkdownEditor.mdx +1 -1
- package/src/MarkdownEditor/MarkdownEditor.stories.tsx +3 -1
- package/src/MarkdownEditor/MarkdownEditor.test.tsx +4 -4
- package/src/MarkdownLine/MarkdownLine.mdx +1 -1
- package/src/MarkdownLine/MarkdownLine.stories.tsx +4 -1
- package/src/MarkdownLine/MarkdownLine.test.tsx +3 -3
- package/src/MediaTile/MediaTile.stories.tsx +3 -1
- package/src/MediaTile/MediaTile.test.tsx +2 -2
- package/src/Menu/Menu.mdx +1 -1
- package/src/Menu/Menu.stories.tsx +3 -1
- package/src/Modal/Modal.mdx +1 -1
- package/src/Modal/Modal.stories.tsx +3 -1
- package/src/Modal/Modal.test.tsx +3 -3
- package/src/Nav/Nav.mdx +1 -1
- package/src/Nav/Nav.stories.tsx +3 -1
- package/src/Nav/Nav.test.tsx +6 -6
- package/src/NavBar/NavBar.mdx +1 -1
- package/src/NavBar/NavBar.stories.tsx +3 -1
- package/src/NavBar/NavBar.test.tsx +3 -3
- package/src/Overlay/OverlayPanel.tsx +63 -2
- package/src/Overlay/OverlayStack.tsx +7 -1
- package/src/Picker/Picker.mdx +1 -1
- package/src/Picker/Picker.stories.tsx +3 -1
- package/src/Picker/Picker.test.tsx +2 -2
- package/src/Popover/Popover.mdx +1 -1
- package/src/Popover/Popover.stories.tsx +3 -1
- package/src/Popover/Popover.test.tsx +2 -2
- package/src/PortraitTiles/PortraitTiles.mdx +1 -1
- package/src/PortraitTiles/PortraitTiles.stories.tsx +3 -1
- package/src/PortraitTiles/PortraitTiles.test.tsx +5 -5
- package/src/ProgressBar/ProgressBar.mdx +1 -1
- package/src/ProgressBar/ProgressBar.stories.tsx +3 -1
- package/src/ProgressBar/ProgressBar.test.tsx +2 -2
- package/src/QueryBuilder/QueryBuilder.mdx +1 -1
- package/src/QueryBuilder/QueryBuilder.stories.tsx +3 -1
- package/src/QueryBuilder/QueryBuilder.test.tsx +2 -2
- package/src/RadioGroup/RadioGroup.mdx +1 -1
- package/src/RadioGroup/RadioGroup.stories.tsx +3 -1
- package/src/RadioGroup/RadioGroup.test.tsx +2 -2
- package/src/Rail/Rail.mdx +1 -1
- package/src/Rail/Rail.stories.tsx +3 -1
- package/src/Rail/Rail.test.tsx +2 -2
- package/src/RangeSlider/RangeSlider.mdx +1 -1
- package/src/RangeSlider/RangeSlider.stories.tsx +3 -1
- package/src/RangeSlider/RangeSlider.test.tsx +7 -3
- package/src/ReorderList/ReorderList.mdx +1 -1
- package/src/ReorderList/ReorderList.stories.tsx +3 -1
- package/src/ReorderList/ReorderList.test.tsx +7 -7
- package/src/RouterLink/UnstyledLink.stories.tsx +4 -1
- package/src/RouterLink/UnstyledLink.test.tsx +2 -2
- package/src/SearchInput/SearchInput.mdx +1 -1
- package/src/SearchInput/SearchInput.stories.tsx +3 -1
- package/src/SegmentedControl/SegmentedControl.mdx +1 -1
- package/src/SegmentedControl/SegmentedControl.stories.tsx +3 -1
- package/src/SegmentedControl/SegmentedControl.test.tsx +2 -2
- package/src/Select/Select.mdx +1 -1
- package/src/Select/Select.stories.tsx +3 -1
- package/src/Select/Select.test.tsx +4 -4
- package/src/Shell/Shell.mdx +1 -1
- package/src/Shell/Shell.stories.tsx +3 -1
- package/src/Shell/Shell.test.tsx +2 -2
- package/src/Skeleton/Skeleton.mdx +1 -1
- package/src/Skeleton/Skeleton.stories.tsx +3 -1
- package/src/Skeleton/Skeleton.test.tsx +2 -2
- package/src/Slider/Slider.mdx +1 -1
- package/src/Slider/Slider.stories.tsx +3 -1
- package/src/Slider/Slider.test.tsx +2 -2
- package/src/SortableTableHeader/SortableTableHeader.mdx +1 -1
- package/src/SortableTableHeader/SortableTableHeader.stories.tsx +3 -1
- package/src/SortableTableHeader/SortableTableHeader.test.tsx +3 -3
- package/src/Spinner/Spinner.mdx +1 -1
- package/src/Spinner/Spinner.stories.tsx +3 -1
- package/src/Spinner/Spinner.test.tsx +2 -2
- package/src/Stepper/Stepper.mdx +1 -1
- package/src/Stepper/Stepper.stories.tsx +4 -1
- package/src/Stepper/Stepper.test.tsx +7 -7
- package/src/Swatch/Swatch.mdx +1 -1
- package/src/Swatch/Swatch.stories.tsx +4 -1
- package/src/Swatch/Swatch.test.tsx +3 -3
- package/src/Switch/Switch.mdx +1 -1
- package/src/Switch/Switch.stories.tsx +3 -1
- package/src/Switch/Switch.test.tsx +2 -2
- package/src/Tabs/Tabs.mdx +1 -1
- package/src/Tabs/Tabs.stories.tsx +3 -1
- package/src/Tabs/Tabs.test.tsx +3 -3
- package/src/TextLink/TextLink.mdx +1 -1
- package/src/TextLink/TextLink.stories.tsx +3 -1
- package/src/TextLink/TextLink.test.tsx +4 -4
- package/src/TimecodeInput/TimecodeInput.mdx +1 -1
- package/src/TimecodeInput/TimecodeInput.stories.tsx +3 -1
- package/src/Toast/Toast.mdx +1 -1
- package/src/Toast/Toast.stories.tsx +157 -1
- package/src/Toast/Toast.test.tsx +2 -2
- package/src/Toast/ToastRegion.test.tsx +172 -0
- package/src/Toast/ToastRegion.tsx +120 -32
- package/src/Toolbar/Toolbar.mdx +1 -1
- package/src/Toolbar/Toolbar.stories.tsx +3 -1
- package/src/Toolbar/Toolbar.test.tsx +89 -5
- package/src/Toolbar/useToolbarOverflow.ts +43 -0
- package/src/Tooltip/Tooltip.mdx +1 -1
- package/src/Tooltip/Tooltip.stories.tsx +3 -1
- package/src/Tooltip/Tooltip.test.tsx +2 -2
- package/src/VirtualizedGrid/VirtualizedGrid.mdx +1 -1
- package/src/VirtualizedGrid/VirtualizedGrid.stories.tsx +4 -1
- package/src/VirtualizedGrid/VirtualizedGrid.test.tsx +5 -5
- package/src/VisuallyHidden/VisuallyHidden.mdx +1 -1
- package/src/VisuallyHidden/VisuallyHidden.stories.tsx +3 -1
- package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.mdx +1 -1
- package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.stories.tsx +3 -1
- package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.test.tsx +3 -3
- package/src/markdownEditorCodeMirror/MarkdownView.mdx +1 -1
- package/src/markdownEditorCodeMirror/MarkdownView.stories.tsx +4 -1
- package/src/markdownEditorCodeMirror/MarkdownView.test.tsx +44 -20
- package/src/reactRouter/ReactRouterAdapter.stories.tsx +3 -1
- package/src/reactRouter/ReactRouterAdapter.test.tsx +2 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
|
|
3
4
|
import {
|
|
@@ -26,7 +27,8 @@ export default meta
|
|
|
26
27
|
|
|
27
28
|
type Story = StoryObj<typeof meta>
|
|
28
29
|
|
|
29
|
-
export const
|
|
30
|
+
export const Playground: Story = {
|
|
31
|
+
parameters: playgroundParameters,
|
|
30
32
|
args: {
|
|
31
33
|
children: (
|
|
32
34
|
<input className={TEXT_INPUT_CLASS} type="text" />
|
package/src/Field/Field.test.tsx
CHANGED
|
@@ -12,7 +12,7 @@ const {
|
|
|
12
12
|
AdoptsOverlayTriggerId,
|
|
13
13
|
AllStates,
|
|
14
14
|
AllVariants,
|
|
15
|
-
|
|
15
|
+
Playground,
|
|
16
16
|
ForwardsRestProps,
|
|
17
17
|
Group,
|
|
18
18
|
Nested,
|
|
@@ -79,7 +79,7 @@ test("an overlay trigger keeps the id the label points at", async () => {
|
|
|
79
79
|
|
|
80
80
|
test("the label names the control it points at", async () => {
|
|
81
81
|
const { canvas, canvasElement } =
|
|
82
|
-
await mountStory(
|
|
82
|
+
await mountStory(Playground)
|
|
83
83
|
|
|
84
84
|
// The whole point of the component in one query: the control is
|
|
85
85
|
// findable by the *label's* text, which is only true if `htmlFor`
|
|
@@ -112,7 +112,7 @@ test("the label names the control it points at", async () => {
|
|
|
112
112
|
* the other component's suite.
|
|
113
113
|
*/
|
|
114
114
|
test("the label carries a derivable id for non-labelable controls", async () => {
|
|
115
|
-
const { canvas } = await mountStory(
|
|
115
|
+
const { canvas } = await mountStory(Playground)
|
|
116
116
|
|
|
117
117
|
const control = expectAgentDrivable(canvas, {
|
|
118
118
|
name: "Output directory",
|
|
@@ -133,7 +133,7 @@ test("the label carries a derivable id for non-labelable controls", async () =>
|
|
|
133
133
|
})
|
|
134
134
|
|
|
135
135
|
test("a description is announced with the control", async () => {
|
|
136
|
-
const { canvas } = await mountStory(
|
|
136
|
+
const { canvas } = await mountStory(Playground)
|
|
137
137
|
|
|
138
138
|
const control = expectAgentDrivable(canvas, {
|
|
139
139
|
name: "Output directory",
|
|
@@ -9,7 +9,7 @@ import * as FileDropZoneStories from "./FileDropZone.stories";
|
|
|
9
9
|
The one drag target in the fleet is gallery-downloader's, and it **gets the hard part
|
|
10
10
|
right** — credit where it is due, and the fix is reproduced here.
|
|
11
11
|
|
|
12
|
-
<Canvas of={FileDropZoneStories.
|
|
12
|
+
<Canvas of={FileDropZoneStories.Playground} />
|
|
13
13
|
|
|
14
14
|
## Props
|
|
15
15
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
import { useState } from "react"
|
|
3
4
|
|
|
@@ -25,7 +26,8 @@ export default meta
|
|
|
25
26
|
|
|
26
27
|
type Story = StoryObj<typeof meta>
|
|
27
28
|
|
|
28
|
-
export const
|
|
29
|
+
export const Playground: Story = {
|
|
30
|
+
parameters: playgroundParameters,
|
|
29
31
|
args: {
|
|
30
32
|
description: "ISO or MKV, up to 50 GB.",
|
|
31
33
|
label: "Drop a disc image here",
|
|
@@ -6,7 +6,7 @@ import { expectNoAxeViolations } from "../expectNoAxeViolations.testHelpers.ts"
|
|
|
6
6
|
import { mountStory } from "../mountStory.testHelpers.ts"
|
|
7
7
|
import * as stories from "./FileDropZone.stories.tsx"
|
|
8
8
|
|
|
9
|
-
const { AllStates, AllVariants,
|
|
9
|
+
const { AllStates, AllVariants, Playground, Interactive } =
|
|
10
10
|
composeStories(stories)
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -45,7 +45,7 @@ const { AllStates, AllVariants, Default, Interactive } =
|
|
|
45
45
|
*/
|
|
46
46
|
test("the zone is a real file input, reachable and named", async () => {
|
|
47
47
|
const { canvas, canvasElement } =
|
|
48
|
-
await mountStory(
|
|
48
|
+
await mountStory(Playground)
|
|
49
49
|
|
|
50
50
|
const input = canvas.getByLabelText(
|
|
51
51
|
"Drop a disc image here",
|
|
@@ -198,7 +198,7 @@ test("a dropped link reports as text", async () => {
|
|
|
198
198
|
* the correct fix and is reproduced here.
|
|
199
199
|
*/
|
|
200
200
|
test("the highlight survives crossing a child element", async () => {
|
|
201
|
-
const { canvas } = await mountStory(
|
|
201
|
+
const { canvas } = await mountStory(Playground)
|
|
202
202
|
|
|
203
203
|
const zone = canvas
|
|
204
204
|
.getByLabelText("Drop a disc image here")
|
package/src/Header/Header.mdx
CHANGED
|
@@ -9,7 +9,7 @@ import * as HeaderStories from "./Header.stories";
|
|
|
9
9
|
The `<header>` landmark, the app's name, and the controls that belong to the frame rather
|
|
10
10
|
than to the page. Ten repos hand-roll this row; two of them wrote the same string.
|
|
11
11
|
|
|
12
|
-
<Canvas of={HeaderStories.
|
|
12
|
+
<Canvas of={HeaderStories.Playground} />
|
|
13
13
|
|
|
14
14
|
## Props
|
|
15
15
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
|
|
3
4
|
import { Badge } from "../Badge/Badge.tsx"
|
|
@@ -41,7 +42,8 @@ type Story = StoryObj<typeof meta>
|
|
|
41
42
|
* and a fill that is `surface-raised` rather than the page's own
|
|
42
43
|
* colour.
|
|
43
44
|
*/
|
|
44
|
-
export const
|
|
45
|
+
export const Playground: Story = {
|
|
46
|
+
parameters: playgroundParameters,
|
|
45
47
|
args: { heading: "Rip Deck" },
|
|
46
48
|
render: (headerProps) => (
|
|
47
49
|
<Shell>
|
|
@@ -15,7 +15,7 @@ A screen reader announces the last of those as "↶", and
|
|
|
15
15
|
the fleet is not agent-drivable today, and the reason this component exists as something
|
|
16
16
|
other than `<Button sizing="icon">`.
|
|
17
17
|
|
|
18
|
-
<Canvas of={IconButtonStories.
|
|
18
|
+
<Canvas of={IconButtonStories.Playground} />
|
|
19
19
|
|
|
20
20
|
## Props
|
|
21
21
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
|
|
3
4
|
import { controlSizeArgType } from "../argTypes.storyHelpers.ts"
|
|
@@ -48,7 +49,8 @@ type Story = StoryObj<typeof meta>
|
|
|
48
49
|
* bare `<button>` today, so a screen reader announces "↶" and
|
|
49
50
|
* `getByRole("button", { name: "Undo" })` finds nothing.
|
|
50
51
|
*/
|
|
51
|
-
export const
|
|
52
|
+
export const Playground: Story = {
|
|
53
|
+
parameters: playgroundParameters,
|
|
52
54
|
args: { children: UNDO_ICON, label: "Undo" },
|
|
53
55
|
}
|
|
54
56
|
|
|
@@ -10,7 +10,7 @@ import { mountStory } from "../mountStory.testHelpers.ts"
|
|
|
10
10
|
import { expectAgentDrivable } from "../testing/index.ts"
|
|
11
11
|
import meta, * as stories from "./IconButton.stories.tsx"
|
|
12
12
|
|
|
13
|
-
const {
|
|
13
|
+
const { Playground, RawGlyph } = composeStories(stories)
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* The assertion the fleet fails today: plex-channels renders `↶`
|
|
@@ -18,7 +18,7 @@ const { Default, RawGlyph } = composeStories(stories)
|
|
|
18
18
|
* query finds nothing.
|
|
19
19
|
*/
|
|
20
20
|
test("a glyph gets a name", async () => {
|
|
21
|
-
const { canvas } = await mountStory(
|
|
21
|
+
const { canvas } = await mountStory(Playground)
|
|
22
22
|
|
|
23
23
|
expectAgentDrivable(canvas, {
|
|
24
24
|
name: "Undo",
|
|
@@ -16,7 +16,7 @@ So a `Lightbox` is a **skin over `Dialog`**, not a second dialog. `Dialog` (thro
|
|
|
16
16
|
`object-contain` image clamped to the viewport, so a 2:3 poster and a 16:9 still both land
|
|
17
17
|
whole.
|
|
18
18
|
|
|
19
|
-
<Canvas of={LightboxStories.
|
|
19
|
+
<Canvas of={LightboxStories.Playground} />
|
|
20
20
|
|
|
21
21
|
## Props
|
|
22
22
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useVisibility } from "@charcuterie/logic"
|
|
2
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
2
3
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
4
|
import type { ReactNode } from "react"
|
|
4
5
|
|
|
@@ -51,7 +52,8 @@ type Story = StoryObj<typeof meta>
|
|
|
51
52
|
* component owns its open state. This is what a rip card passes —
|
|
52
53
|
* one `Lightbox` with the poster as its `thumbnail`.
|
|
53
54
|
*/
|
|
54
|
-
export const
|
|
55
|
+
export const Playground: Story = {
|
|
56
|
+
parameters: playgroundParameters,
|
|
55
57
|
args: {
|
|
56
58
|
thumbnail: <PosterThumb />,
|
|
57
59
|
},
|
|
@@ -7,11 +7,11 @@ import { mountStory } from "../mountStory.testHelpers.ts"
|
|
|
7
7
|
import { expectAgentDrivable } from "../testing/index.ts"
|
|
8
8
|
import * as stories from "./Lightbox.stories.tsx"
|
|
9
9
|
|
|
10
|
-
const { Controlled,
|
|
10
|
+
const { Controlled, Playground, Interactive, WithCaption } =
|
|
11
11
|
composeStories(stories)
|
|
12
12
|
|
|
13
13
|
test("the thumbnail opens the enlarged image", async () => {
|
|
14
|
-
const { body, canvas } = await mountStory(
|
|
14
|
+
const { body, canvas } = await mountStory(Playground)
|
|
15
15
|
|
|
16
16
|
await userEvent.click(
|
|
17
17
|
expectAgentDrivable(canvas, {
|
package/src/Listbox/Listbox.mdx
CHANGED
|
@@ -12,7 +12,7 @@ type-ahead, Home/End, the mobile wheel picker, form submission, `:invalid` and a
|
|
|
12
12
|
`Listbox` is for the cases `<option>` cannot render — a leading icon, two lines, a trailing
|
|
13
13
|
badge ([decision](../../../docs/decisions/2026-08-03-listbox-and-combobox-are-siblings-of-select.md)).
|
|
14
14
|
|
|
15
|
-
<Canvas of={ListboxStories.
|
|
15
|
+
<Canvas of={ListboxStories.Playground} />
|
|
16
16
|
|
|
17
17
|
## Props
|
|
18
18
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useVisibility } from "@charcuterie/logic"
|
|
2
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
2
3
|
import type { ControlSize } from "@charcuterie/tokens"
|
|
3
4
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
4
5
|
import type { ReactNode } from "react"
|
|
@@ -142,7 +143,8 @@ const ListboxHarness = ({
|
|
|
142
143
|
)
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
export const
|
|
146
|
+
export const Playground: Story = {
|
|
147
|
+
parameters: playgroundParameters,
|
|
146
148
|
args: {
|
|
147
149
|
isVisible: false,
|
|
148
150
|
onDismiss: () => {},
|
|
@@ -7,11 +7,11 @@ import { mountStory } from "../mountStory.testHelpers.ts"
|
|
|
7
7
|
import { expectAgentDrivable } from "../testing/index.ts"
|
|
8
8
|
import * as stories from "./Listbox.stories.tsx"
|
|
9
9
|
|
|
10
|
-
const { AllStates, AllVariants,
|
|
10
|
+
const { AllStates, AllVariants, Playground, Interactive } =
|
|
11
11
|
composeStories(stories)
|
|
12
12
|
|
|
13
13
|
test("a button opens a listbox whose rows are options", async () => {
|
|
14
|
-
const { body, canvas } = await mountStory(
|
|
14
|
+
const { body, canvas } = await mountStory(Playground)
|
|
15
15
|
|
|
16
16
|
const trigger = expectAgentDrivable(canvas, {
|
|
17
17
|
name: "Choose a language",
|
|
@@ -74,7 +74,7 @@ test("opening focuses the seeded selection, which reads selected", async () => {
|
|
|
74
74
|
})
|
|
75
75
|
|
|
76
76
|
test("the arrow keys move focus and skip the disabled option", async () => {
|
|
77
|
-
const { body, canvas } = await mountStory(
|
|
77
|
+
const { body, canvas } = await mountStory(Playground)
|
|
78
78
|
|
|
79
79
|
await userEvent.click(
|
|
80
80
|
expectAgentDrivable(canvas, {
|
|
@@ -116,7 +116,7 @@ test("the arrow keys move focus and skip the disabled option", async () => {
|
|
|
116
116
|
})
|
|
117
117
|
|
|
118
118
|
test("type-ahead jumps to the first match", async () => {
|
|
119
|
-
const { body, canvas } = await mountStory(
|
|
119
|
+
const { body, canvas } = await mountStory(Playground)
|
|
120
120
|
|
|
121
121
|
await userEvent.click(
|
|
122
122
|
expectAgentDrivable(canvas, {
|
|
@@ -163,7 +163,7 @@ test("Enter selects the focused option and closes", async () => {
|
|
|
163
163
|
})
|
|
164
164
|
|
|
165
165
|
test("Escape dismisses without choosing, and there is one tab stop", async () => {
|
|
166
|
-
const { body, canvas } = await mountStory(
|
|
166
|
+
const { body, canvas } = await mountStory(Playground)
|
|
167
167
|
|
|
168
168
|
await userEvent.click(
|
|
169
169
|
expectAgentDrivable(canvas, {
|
|
@@ -9,7 +9,7 @@ import * as LiveStatusIndicatorStories from "./LiveStatusIndicator.stories";
|
|
|
9
9
|
Four repos, four implementations, and **it is the thing users read most** — a wall-mounted
|
|
10
10
|
panel showing stale data under a green dot is worse than one showing nothing.
|
|
11
11
|
|
|
12
|
-
<Canvas of={LiveStatusIndicatorStories.
|
|
12
|
+
<Canvas of={LiveStatusIndicatorStories.Playground} />
|
|
13
13
|
|
|
14
14
|
## Props
|
|
15
15
|
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
connectionTransitions,
|
|
3
3
|
useStatus,
|
|
4
4
|
} from "@charcuterie/logic"
|
|
5
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
5
6
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
6
7
|
|
|
7
8
|
import { connectionStatusArgType } from "../argTypes.storyHelpers.ts"
|
|
@@ -40,7 +41,8 @@ type Story = StoryObj<typeof meta>
|
|
|
40
41
|
* handle for a Playwright assertion, because it survives translation
|
|
41
42
|
* where the visible wording does not.
|
|
42
43
|
*/
|
|
43
|
-
export const
|
|
44
|
+
export const Playground: Story = {
|
|
45
|
+
parameters: playgroundParameters,
|
|
44
46
|
args: { status: "connected" },
|
|
45
47
|
}
|
|
46
48
|
|
|
@@ -6,10 +6,10 @@ import { mountStory } from "../mountStory.testHelpers.ts"
|
|
|
6
6
|
import { expectAgentDrivable } from "../testing/index.ts"
|
|
7
7
|
import * as stories from "./LiveStatusIndicator.stories.tsx"
|
|
8
8
|
|
|
9
|
-
const {
|
|
9
|
+
const { Playground, Interactive } = composeStories(stories)
|
|
10
10
|
|
|
11
11
|
test("it is a named live region with a stable status handle", async () => {
|
|
12
|
-
const { canvas } = await mountStory(
|
|
12
|
+
const { canvas } = await mountStory(Playground)
|
|
13
13
|
|
|
14
14
|
const indicator = expectAgentDrivable(canvas, {
|
|
15
15
|
name: "Connected",
|
|
@@ -11,7 +11,7 @@ rip-deck's `LogModal` — and between them they have four defects this component
|
|
|
11
11
|
have. The fifth below is not theirs: it is defect 1 coming back through the front door, in
|
|
12
12
|
this component, found by the first app to consume it.
|
|
13
13
|
|
|
14
|
-
<Canvas of={LogViewerStories.
|
|
14
|
+
<Canvas of={LogViewerStories.Playground} />
|
|
15
15
|
|
|
16
16
|
## Props
|
|
17
17
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
|
|
3
4
|
import { Accordion } from "../Accordion/Accordion.tsx"
|
|
@@ -61,7 +62,8 @@ export default meta
|
|
|
61
62
|
|
|
62
63
|
type Story = StoryObj<typeof meta>
|
|
63
64
|
|
|
64
|
-
export const
|
|
65
|
+
export const Playground: Story = {
|
|
66
|
+
parameters: playgroundParameters,
|
|
65
67
|
args: { label: "Bay 3 rip log", lines: RIP_LINES },
|
|
66
68
|
}
|
|
67
69
|
|
|
@@ -10,14 +10,14 @@ import * as stories from "./LogViewer.stories.tsx"
|
|
|
10
10
|
const {
|
|
11
11
|
AllStates,
|
|
12
12
|
AllVariants,
|
|
13
|
-
|
|
13
|
+
Playground,
|
|
14
14
|
InsideDisclosure,
|
|
15
15
|
Interactive,
|
|
16
16
|
} = composeStories(stories)
|
|
17
17
|
|
|
18
18
|
test("the pane is named, and is a log", async () => {
|
|
19
19
|
const { canvas, canvasElement } =
|
|
20
|
-
await mountStory(
|
|
20
|
+
await mountStory(Playground)
|
|
21
21
|
|
|
22
22
|
// Found by its name, not by a `data-log-id`. mux-magic's pane
|
|
23
23
|
// carries one of those — a `data-testid` under a different name,
|
package/src/Main/Main.mdx
CHANGED
|
@@ -15,7 +15,7 @@ The owner's complaint, verbatim:
|
|
|
15
15
|
> Rip-Deck where the app has a narrower main column but the wrapping grids are all
|
|
16
16
|
> full-width in most of these apps only when you have too many items."
|
|
17
17
|
|
|
18
|
-
<Canvas of={MainStories.
|
|
18
|
+
<Canvas of={MainStories.Playground} />
|
|
19
19
|
|
|
20
20
|
## Props
|
|
21
21
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
import { useEffect, useState } from "react"
|
|
3
4
|
|
|
@@ -55,7 +56,8 @@ type Story = StoryObj<typeof meta>
|
|
|
55
56
|
* tell apart and the reason the fleet's poster grids look wrong
|
|
56
57
|
* at intermediate widths.
|
|
57
58
|
*/
|
|
58
|
-
export const
|
|
59
|
+
export const Playground: Story = {
|
|
60
|
+
parameters: playgroundParameters,
|
|
59
61
|
render: (mainProps) => (
|
|
60
62
|
<Shell>
|
|
61
63
|
<Header
|
package/src/Main/Main.test.tsx
CHANGED
|
@@ -14,7 +14,7 @@ import * as stories from "./Main.stories.tsx"
|
|
|
14
14
|
import { forgetScrollOffsets } from "./scrollMemory.ts"
|
|
15
15
|
|
|
16
16
|
const {
|
|
17
|
-
|
|
17
|
+
Playground,
|
|
18
18
|
Interactive,
|
|
19
19
|
Responsive,
|
|
20
20
|
ScrollMemory,
|
|
@@ -34,7 +34,7 @@ afterEach(() => {
|
|
|
34
34
|
test("the content column is capped at the token, not at the window", async () => {
|
|
35
35
|
await setViewport(DESKTOP)
|
|
36
36
|
|
|
37
|
-
const { canvas } = await mountStory(
|
|
37
|
+
const { canvas } = await mountStory(Playground)
|
|
38
38
|
|
|
39
39
|
const column = canvas.getByRole("main")
|
|
40
40
|
.firstElementChild as HTMLElement
|
|
@@ -63,7 +63,7 @@ test("the content column is capped at the token, not at the window", async () =>
|
|
|
63
63
|
test("main is the query container its content responds to", async () => {
|
|
64
64
|
await setViewport(DESKTOP)
|
|
65
65
|
|
|
66
|
-
const { canvas } = await mountStory(
|
|
66
|
+
const { canvas } = await mountStory(Playground)
|
|
67
67
|
|
|
68
68
|
const column = canvas.getByRole("main")
|
|
69
69
|
.firstElementChild as HTMLElement
|
|
@@ -13,7 +13,7 @@ replaces destroyed data by storing HTML in a field it later read back as text. S
|
|
|
13
13
|
constraint is not "prefer markdown" — it is that an HTML tag must not be *able* to reach the
|
|
14
14
|
stored string.
|
|
15
15
|
|
|
16
|
-
<Canvas of={MarkdownEditorStories.
|
|
16
|
+
<Canvas of={MarkdownEditorStories.Playground} />
|
|
17
17
|
|
|
18
18
|
> **Reading rather than editing?** `isReadOnly` here leaves the toolbar on screen, because it
|
|
19
19
|
> means "an editor you cannot type in". A surface with no toolbar in the DOM is
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
import { useState } from "react"
|
|
3
4
|
|
|
@@ -61,7 +62,8 @@ export default meta
|
|
|
61
62
|
|
|
62
63
|
type Story = StoryObj<typeof meta>
|
|
63
64
|
|
|
64
|
-
export const
|
|
65
|
+
export const Playground: Story = {
|
|
66
|
+
parameters: playgroundParameters,
|
|
65
67
|
args: {
|
|
66
68
|
defaultValue: SAMPLE,
|
|
67
69
|
label: "Description",
|
|
@@ -11,7 +11,7 @@ const {
|
|
|
11
11
|
AllStates,
|
|
12
12
|
AllVariants,
|
|
13
13
|
Blank,
|
|
14
|
-
|
|
14
|
+
Playground,
|
|
15
15
|
Interactive,
|
|
16
16
|
NoUpload,
|
|
17
17
|
Responsive,
|
|
@@ -59,7 +59,7 @@ const resyncHarness = (editor: HTMLTextAreaElement) => {
|
|
|
59
59
|
*/
|
|
60
60
|
test("the surface is a real textbox an agent can find", async () => {
|
|
61
61
|
const { canvas, canvasElement } =
|
|
62
|
-
await mountStory(
|
|
62
|
+
await mountStory(Playground)
|
|
63
63
|
|
|
64
64
|
expectAgentDrivable(canvas, {
|
|
65
65
|
name: "Description",
|
|
@@ -77,7 +77,7 @@ test("the surface is a real textbox an agent can find", async () => {
|
|
|
77
77
|
|
|
78
78
|
test("the toolbar is one tab stop with arrow keys inside it", async () => {
|
|
79
79
|
const { canvas, canvasElement } =
|
|
80
|
-
await mountStory(
|
|
80
|
+
await mountStory(Playground)
|
|
81
81
|
|
|
82
82
|
expectAgentDrivable(canvas, {
|
|
83
83
|
name: "Markdown formatting",
|
|
@@ -133,7 +133,7 @@ test("markdown goes in and the same markdown comes out", async () => {
|
|
|
133
133
|
* drifts away from the glyphs it is supposed to be sitting between.
|
|
134
134
|
*/
|
|
135
135
|
test("the painted layer holds exactly the textarea's text", async () => {
|
|
136
|
-
const { canvas } = await mountStory(
|
|
136
|
+
const { canvas } = await mountStory(Playground)
|
|
137
137
|
|
|
138
138
|
const editor = getEditor(canvas, "Description")
|
|
139
139
|
|
|
@@ -10,7 +10,7 @@ import * as MarkdownLineStories from "./MarkdownLine.stories";
|
|
|
10
10
|
wherever a stored string is a *name* rather than a document — a card title, a lane heading,
|
|
11
11
|
a table cell, a breadcrumb.
|
|
12
12
|
|
|
13
|
-
<Canvas of={MarkdownLineStories.
|
|
13
|
+
<Canvas of={MarkdownLineStories.Playground} />
|
|
14
14
|
|
|
15
15
|
## Props
|
|
16
16
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
import type { ReactNode } from "react"
|
|
3
4
|
|
|
@@ -52,7 +53,9 @@ export default meta
|
|
|
52
53
|
|
|
53
54
|
type Story = StoryObj<typeof meta>
|
|
54
55
|
|
|
55
|
-
export const
|
|
56
|
+
export const Playground: Story = {
|
|
57
|
+
parameters: playgroundParameters,
|
|
58
|
+
}
|
|
56
59
|
|
|
57
60
|
/**
|
|
58
61
|
* The four marks, each in the shape a title actually uses it for.
|
|
@@ -22,7 +22,7 @@ import * as stories from "./MarkdownLine.stories.tsx"
|
|
|
22
22
|
const {
|
|
23
23
|
AllMarks,
|
|
24
24
|
AsALink,
|
|
25
|
-
|
|
25
|
+
Playground,
|
|
26
26
|
FileNames,
|
|
27
27
|
InsideACardLink,
|
|
28
28
|
RefusedUrl,
|
|
@@ -31,7 +31,7 @@ const {
|
|
|
31
31
|
} = composeStories(stories)
|
|
32
32
|
|
|
33
33
|
test("a code span is a `code` element, and the backticks are gone", async () => {
|
|
34
|
-
const { canvasElement } = await mountStory(
|
|
34
|
+
const { canvasElement } = await mountStory(Playground)
|
|
35
35
|
|
|
36
36
|
await expect(
|
|
37
37
|
[...canvasElement.querySelectorAll("code")].map(
|
|
@@ -80,7 +80,7 @@ test("an underscore inside a word marks nothing", async () => {
|
|
|
80
80
|
})
|
|
81
81
|
|
|
82
82
|
test("a line with no href has nothing to click", async () => {
|
|
83
|
-
const { canvasElement } = await mountStory(
|
|
83
|
+
const { canvasElement } = await mountStory(Playground)
|
|
84
84
|
|
|
85
85
|
await expect(canvasElement.querySelector("a")).toBe(null)
|
|
86
86
|
})
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
3
|
|
|
3
4
|
import { Badge } from "../Badge/Badge.tsx"
|
|
@@ -35,7 +36,8 @@ export default meta
|
|
|
35
36
|
|
|
36
37
|
type Story = StoryObj<typeof meta>
|
|
37
38
|
|
|
38
|
-
export const
|
|
39
|
+
export const Playground: Story = {
|
|
40
|
+
parameters: playgroundParameters,
|
|
39
41
|
args: {
|
|
40
42
|
alt: "Blade Runner (1982) poster",
|
|
41
43
|
src: toPosterSrc("Blade Runner"),
|
|
@@ -6,11 +6,11 @@ import { mountStory } from "../mountStory.testHelpers.ts"
|
|
|
6
6
|
import { expectAgentDrivable } from "../testing/index.ts"
|
|
7
7
|
import * as stories from "./MediaTile.stories.tsx"
|
|
8
8
|
|
|
9
|
-
const {
|
|
9
|
+
const { Playground, Interactive, InteractiveButton } =
|
|
10
10
|
composeStories(stories)
|
|
11
11
|
|
|
12
12
|
test("an unlinked tile's poster carries the name", async () => {
|
|
13
|
-
const { canvas } = await mountStory(
|
|
13
|
+
const { canvas } = await mountStory(Playground)
|
|
14
14
|
|
|
15
15
|
expectAgentDrivable(canvas, {
|
|
16
16
|
name: "Blade Runner (1982) poster",
|
package/src/Menu/Menu.mdx
CHANGED
|
@@ -10,7 +10,7 @@ A menu is **not** a listbox, and mux-magic's `TypePicker` is the fleet's one att
|
|
|
10
10
|
telling them apart — it renders `role="menu"` over items that set a value, which is a
|
|
11
11
|
listbox wearing the wrong role.
|
|
12
12
|
|
|
13
|
-
<Canvas of={MenuStories.
|
|
13
|
+
<Canvas of={MenuStories.Playground} />
|
|
14
14
|
|
|
15
15
|
## Props
|
|
16
16
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useVisibility } from "@charcuterie/logic"
|
|
2
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
2
3
|
import type { ControlSize } from "@charcuterie/tokens"
|
|
3
4
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
4
5
|
import type { ReactNode } from "react"
|
|
@@ -166,7 +167,8 @@ export default meta
|
|
|
166
167
|
|
|
167
168
|
type Story = StoryObj<typeof meta>
|
|
168
169
|
|
|
169
|
-
export const
|
|
170
|
+
export const Playground: Story = {
|
|
171
|
+
parameters: playgroundParameters,
|
|
170
172
|
args: {
|
|
171
173
|
isVisible: false,
|
|
172
174
|
onDismiss: noop,
|
package/src/Modal/Modal.mdx
CHANGED
|
@@ -12,7 +12,7 @@ anything else that wants a scrim over the page. `Modal` is that foundation, and
|
|
|
12
12
|
[`Dialog`](?path=/docs/components-dialog--docs) is `Modal` plus the
|
|
13
13
|
heading/Close/footer/size chrome the component shipped with before the M8 rebuild.
|
|
14
14
|
|
|
15
|
-
<Canvas of={ModalStories.
|
|
15
|
+
<Canvas of={ModalStories.Playground} />
|
|
16
16
|
|
|
17
17
|
## Props
|
|
18
18
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useVisibility } from "@charcuterie/logic"
|
|
2
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
2
3
|
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
4
|
import type { ReactNode } from "react"
|
|
4
5
|
|
|
@@ -73,7 +74,8 @@ const ModalDemo = ({
|
|
|
73
74
|
)
|
|
74
75
|
}
|
|
75
76
|
|
|
76
|
-
export const
|
|
77
|
+
export const Playground: Story = {
|
|
78
|
+
parameters: playgroundParameters,
|
|
77
79
|
args: {
|
|
78
80
|
"aria-label": "Read error on title 4",
|
|
79
81
|
children: null,
|
package/src/Modal/Modal.test.tsx
CHANGED
|
@@ -7,12 +7,12 @@ import { mountStory } from "../mountStory.testHelpers.ts"
|
|
|
7
7
|
import { expectAgentDrivable } from "../testing/index.ts"
|
|
8
8
|
import * as stories from "./Modal.stories.tsx"
|
|
9
9
|
|
|
10
|
-
const { Alert,
|
|
10
|
+
const { Alert, Playground, Interactive } =
|
|
11
11
|
composeStories(stories)
|
|
12
12
|
|
|
13
13
|
test("the base modal portals to the body, named by its aria-label", async () => {
|
|
14
14
|
const { body, canvas, canvasElement } =
|
|
15
|
-
await mountStory(
|
|
15
|
+
await mountStory(Playground)
|
|
16
16
|
|
|
17
17
|
await userEvent.click(
|
|
18
18
|
expectAgentDrivable(canvas, {
|
|
@@ -50,7 +50,7 @@ test("an alertdialog role is carried through", async () => {
|
|
|
50
50
|
})
|
|
51
51
|
|
|
52
52
|
test("Escape and an outside press both close through onClose", async () => {
|
|
53
|
-
const { body, canvas } = await mountStory(
|
|
53
|
+
const { body, canvas } = await mountStory(Playground)
|
|
54
54
|
|
|
55
55
|
const trigger = expectAgentDrivable(canvas, {
|
|
56
56
|
name: "Open the base modal",
|