@plasmicpkgs/react-aria 0.0.112 → 0.0.114
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/dist/.tsbuildinfo +1 -1
- package/dist/react-aria.esm.js +60 -27
- package/dist/react-aria.esm.js.map +1 -1
- package/dist/react-aria.js +59 -26
- package/dist/react-aria.js.map +1 -1
- package/dist/registerDialogTrigger.d.ts +6 -0
- package/dist/utils.d.ts +19 -2
- package/package.json +2 -4
- package/skinny/{common-ceebbaea.esm.js → common-10d1b069.esm.js} +2 -2
- package/skinny/{common-ceebbaea.esm.js.map → common-10d1b069.esm.js.map} +1 -1
- package/skinny/{common-b3b54c72.cjs.js → common-c8beb360.cjs.js} +2 -2
- package/skinny/{common-b3b54c72.cjs.js.map → common-c8beb360.cjs.js.map} +1 -1
- package/skinny/registerButton.cjs.js +2 -2
- package/skinny/registerButton.esm.js +2 -2
- package/skinny/registerButton.stories.cjs.js +2 -2
- package/skinny/registerButton.stories.esm.js +2 -2
- package/skinny/registerCheckbox.cjs.js +2 -2
- package/skinny/registerCheckbox.esm.js +2 -2
- package/skinny/registerCheckboxGroup.cjs.js +2 -2
- package/skinny/registerCheckboxGroup.esm.js +2 -2
- package/skinny/registerCheckboxGroup.stories.cjs.js +2 -2
- package/skinny/registerCheckboxGroup.stories.esm.js +2 -2
- package/skinny/registerComboBox.cjs.js +3 -3
- package/skinny/registerComboBox.esm.js +3 -3
- package/skinny/registerComboBox.stories.cjs.js +3 -3
- package/skinny/registerComboBox.stories.esm.js +3 -3
- package/skinny/registerDescription.cjs.js +2 -2
- package/skinny/registerDescription.esm.js +2 -2
- package/skinny/registerDialog.cjs.js +2 -2
- package/skinny/registerDialog.esm.js +2 -2
- package/skinny/registerDialogTrigger.cjs.js +24 -11
- package/skinny/registerDialogTrigger.cjs.js.map +1 -1
- package/skinny/registerDialogTrigger.d.ts +6 -0
- package/skinny/registerDialogTrigger.esm.js +24 -12
- package/skinny/registerDialogTrigger.esm.js.map +1 -1
- package/skinny/registerDialogTrigger.stories.cjs.js +260 -18
- package/skinny/registerDialogTrigger.stories.cjs.js.map +1 -1
- package/skinny/registerDialogTrigger.stories.esm.js +257 -20
- package/skinny/registerDialogTrigger.stories.esm.js.map +1 -1
- package/skinny/registerFieldError.cjs.js +1 -1
- package/skinny/registerFieldError.esm.js +1 -1
- package/skinny/registerForm.cjs.js +1 -1
- package/skinny/registerForm.esm.js +1 -1
- package/skinny/registerHeading.cjs.js +2 -2
- package/skinny/registerHeading.esm.js +2 -2
- package/skinny/registerInput.cjs.js +2 -2
- package/skinny/registerInput.esm.js +2 -2
- package/skinny/registerLabel.cjs.js +2 -2
- package/skinny/registerLabel.esm.js +2 -2
- package/skinny/{registerListBox-a99736df.cjs.js → registerListBox-87d0e61a.cjs.js} +3 -3
- package/skinny/{registerListBox-a99736df.cjs.js.map → registerListBox-87d0e61a.cjs.js.map} +1 -1
- package/skinny/{registerListBox-49626f55.esm.js → registerListBox-a5fd72be.esm.js} +3 -3
- package/skinny/{registerListBox-49626f55.esm.js.map → registerListBox-a5fd72be.esm.js.map} +1 -1
- package/skinny/registerListBox.cjs.js +3 -3
- package/skinny/registerListBox.esm.js +3 -3
- package/skinny/registerListBoxItem.cjs.js +2 -2
- package/skinny/registerListBoxItem.esm.js +2 -2
- package/skinny/registerListbox.stories.cjs.js +3 -3
- package/skinny/registerListbox.stories.esm.js +3 -3
- package/skinny/registerModal.cjs.js +18 -14
- package/skinny/registerModal.cjs.js.map +1 -1
- package/skinny/registerModal.esm.js +19 -15
- package/skinny/registerModal.esm.js.map +1 -1
- package/skinny/registerModal.stories.cjs.js +2 -2
- package/skinny/registerModal.stories.esm.js +2 -2
- package/skinny/registerOverlayArrow.cjs.js +2 -2
- package/skinny/registerOverlayArrow.esm.js +2 -2
- package/skinny/registerPopover.cjs.js +2 -2
- package/skinny/registerPopover.esm.js +2 -2
- package/skinny/registerPopover.stories.cjs.js +2 -2
- package/skinny/registerPopover.stories.esm.js +2 -2
- package/skinny/registerRadio.cjs.js +2 -2
- package/skinny/registerRadio.esm.js +2 -2
- package/skinny/registerRadioGroup.cjs.js +2 -2
- package/skinny/registerRadioGroup.esm.js +2 -2
- package/skinny/registerRadioGroup.stories.cjs.js +2 -2
- package/skinny/registerRadioGroup.stories.esm.js +2 -2
- package/skinny/registerSection.cjs.js +3 -3
- package/skinny/registerSection.esm.js +3 -3
- package/skinny/registerSelect.cjs.js +3 -3
- package/skinny/registerSelect.esm.js +3 -3
- package/skinny/registerSelect.stories.cjs.js +3 -3
- package/skinny/registerSelect.stories.esm.js +3 -3
- package/skinny/registerSlider.cjs.js +2 -2
- package/skinny/registerSlider.esm.js +2 -2
- package/skinny/registerSlider.stories.cjs.js +2 -2
- package/skinny/registerSlider.stories.esm.js +2 -2
- package/skinny/registerSliderOutput.cjs.js +2 -2
- package/skinny/registerSliderOutput.esm.js +2 -2
- package/skinny/registerSliderThumb.cjs.js +2 -2
- package/skinny/registerSliderThumb.esm.js +2 -2
- package/skinny/registerSliderTrack.cjs.js +2 -2
- package/skinny/registerSliderTrack.esm.js +2 -2
- package/skinny/registerSwitch.cjs.js +2 -2
- package/skinny/registerSwitch.esm.js +2 -2
- package/skinny/registerSwitch.stories.cjs.js +2 -2
- package/skinny/registerSwitch.stories.esm.js +2 -2
- package/skinny/registerText.cjs.js +2 -2
- package/skinny/registerText.esm.js +2 -2
- package/skinny/registerTextArea.cjs.js +2 -2
- package/skinny/registerTextArea.esm.js +2 -2
- package/skinny/registerTextField-common-stories.cjs.js +2 -2
- package/skinny/registerTextField-common-stories.esm.js +2 -2
- package/skinny/registerTextField-input.stories.cjs.js +2 -2
- package/skinny/registerTextField-input.stories.esm.js +2 -2
- package/skinny/registerTextField-textarea.stories.cjs.js +2 -2
- package/skinny/registerTextField-textarea.stories.esm.js +2 -2
- package/skinny/registerTextField.cjs.js +2 -2
- package/skinny/registerTextField.esm.js +2 -2
- package/skinny/registerTooltip.cjs.js +12 -10
- package/skinny/registerTooltip.cjs.js.map +1 -1
- package/skinny/registerTooltip.esm.js +12 -10
- package/skinny/registerTooltip.esm.js.map +1 -1
- package/skinny/registerTooltip.stories.cjs.js +2 -2
- package/skinny/registerTooltip.stories.esm.js +2 -2
- package/skinny/{utils-5d1b4c6b.esm.js → utils-59f72eb9.esm.js} +17 -2
- package/skinny/utils-59f72eb9.esm.js.map +1 -0
- package/skinny/{utils-7d000fa4.cjs.js → utils-91eee672.cjs.js} +17 -1
- package/skinny/utils-91eee672.cjs.js.map +1 -0
- package/skinny/utils.d.ts +19 -2
- package/skinny/utils-5d1b4c6b.esm.js.map +0 -1
- package/skinny/utils-7d000fa4.cjs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerDialogTrigger.stories.cjs.js","sources":["../src/registerDialogTrigger.stories.tsx"],"sourcesContent":["import { PlasmicCanvasContext } from \"@plasmicapp/host\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, userEvent, waitFor, within } from \"@storybook/test\";\nimport React, { useEffect, useState } from \"react\";\nimport { BaseButton } from \"./registerButton\";\nimport { BaseDialog } from \"./registerDialog\";\nimport { BaseDialogTrigger } from \"./registerDialogTrigger\";\nimport { BaseModal } from \"./registerModal\";\nimport { BasePopover } from \"./registerPopover\";\n\nconst meta: Meta<typeof BaseDialogTrigger> = {\n title: \"Components/BaseDialogTrigger\",\n component: BaseDialogTrigger,\n args: {\n defaultOpen: false,\n onOpenChange: fn(),\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseDialogTrigger>;\n\nconst DefaultContent = () => (\n <div data-testid=\"dialog-content\">\n <h2>Dialog Title</h2>\n <p>Dialog content goes here</p>\n </div>\n);\n\nexport const WithModal: Story = {\n args: {\n trigger: <BaseButton>Open modal</BaseButton>,\n dialog: (\n <BaseModal isDismissable={true} isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BaseModal>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const button = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation, press Escape to dismiss\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\nexport const WithPopover: Story = {\n args: {\n trigger: <BaseButton>Open popover</BaseButton>,\n dialog: (\n <BasePopover isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const button = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation, press Escape to dismiss\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\nexport const WithPopoverNonModal: Story = {\n args: {\n trigger: <BaseButton>Open popover</BaseButton>,\n dialog: (\n <BasePopover isNonModal={true} isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const button = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\nexport const SelectedInCanvas: Story = {\n args: {\n trigger: <BaseButton>Open popover</BaseButton>,\n dialog: (\n <BasePopover isNonModal={true} isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n ),\n },\n render: ({ __plasmic_selection_prop__, ...args }) => {\n const [selected, setSelected] = useState(false);\n const [selectedSlotName, setSelectedSlotName] = useState(\"\");\n useEffect(() => {\n setTimeout(() => {\n setSelected(true);\n setTimeout(() => {\n // Simulate trigger slot selection in Plasmic canvas\n setSelectedSlotName(\"trigger\");\n }, 1000);\n }, 1000);\n }, []);\n\n return (\n // Simulate Plasmic canvas envirnment\n <PlasmicCanvasContext.Provider\n value={{\n componentName: \"test\",\n globalVariants: {},\n }}\n >\n <BaseDialogTrigger\n // Simulate node selection in Plasmic canvas\n __plasmic_selection_prop__={{\n isSelected: selected,\n selectedSlotName,\n }}\n {...args}\n />\n </PlasmicCanvasContext.Provider>\n );\n },\n play: async () => {\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n },\n { timeout: 1100 }\n );\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n },\n { timeout: 1100 }\n ); // the slot selected is trigger, so the popover should close\n },\n};\n"],"names":["BaseDialogTrigger","fn","React","BaseButton","BaseModal","BaseDialog","within","waitFor","expect","userEvent","BasePopover","useState","useEffect","PlasmicCanvasContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerDialogTrigger.stories.cjs.js","sources":["../src/registerDialogTrigger.stories.tsx"],"sourcesContent":["import { PlasmicCanvasContext } from \"@plasmicapp/host\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, spyOn, userEvent, waitFor, within } from \"@storybook/test\";\nimport React, { useEffect, useState } from \"react\";\nimport { BaseButton } from \"./registerButton\";\nimport { BaseDialog } from \"./registerDialog\";\nimport { BaseDialogTrigger } from \"./registerDialogTrigger\";\nimport { BaseModal, BaseModalProps } from \"./registerModal\";\nimport { BasePopover, BasePopoverProps } from \"./registerPopover\";\n\nconst meta: Meta<typeof BaseDialogTrigger> = {\n title: \"Components/BaseDialogTrigger\",\n component: BaseDialogTrigger,\n args: {\n defaultOpen: false,\n onOpenChange: fn(),\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseDialogTrigger>;\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nconst DefaultContent = () => (\n <div data-testid=\"dialog-content\">\n <h2>Dialog Title</h2>\n <p>Dialog content goes here</p>\n </div>\n);\n\nconst DefaultPopoverContent = (props: BasePopoverProps) => (\n <BasePopover {...props}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n);\n\nconst DefaultModalContent = (props: BaseModalProps) => (\n <BaseModal {...props}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BaseModal>\n);\n\nexport const WithModal: Story = {\n args: {\n trigger: <span tabIndex={0}>Open modal</span>, // anything can be used as a trigger\n dialog: (\n <DefaultModalContent\n // The test ensures that isOpen and defaultOpen are disregarded when inside a dialog trigger\n defaultOpen={true}\n isOpen={true}\n isDismissable={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation\n await userEvent.tab();\n expect(trigger).toHaveFocus();\n\n // Still not open because a click/press is required\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"[Space]\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n // press Escape to dismiss\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\n// Ensures that any custom event handlers on the trigger are called, and any custom props passed to it are passed through.\nexport const TriggerWithCustomEventHandler: Story = {\n args: {\n dialog: (\n <DefaultModalContent\n isDismissable={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n },\n parameters: {\n customOnClick: fn(),\n },\n render: (args, { parameters }) => {\n return (\n <BaseDialogTrigger\n {...args}\n trigger={\n <span className=\"custom-class\" onClick={parameters.customOnClick}>\n Open modal\n </span>\n }\n />\n );\n },\n play: async ({ canvasElement, args, parameters }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(trigger).toHaveClass(\"custom-class\");\n\n expect(parameters.customOnClick).toHaveBeenCalledTimes(0);\n await userEvent.click(trigger);\n expect(parameters.customOnClick).toHaveBeenCalledTimes(1);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\n// tests that a trigger that's nested in a div (e.g. a <span>) can trigger open the dialog on click\n// Also tests that either of nested triggers can be made non-triggerable via e.stopPropagation\nexport const WithNestedTrigger: Story = {\n args: {\n dialog: (\n <DefaultModalContent\n isDismissable={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n trigger: (\n <div>\n <span tabIndex={0}>Open modal</span>\n <span tabIndex={0} onClick={(e) => e.stopPropagation()}>\n Open modal\n </span>\n <span tabIndex={0}>Open modal</span>\n </div>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const triggers = canvas.getAllByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(triggers[0]);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n // Click again to dismiss\n await userEvent.click(triggers[0]);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n\n await userEvent.click(triggers[1]);\n\n // trigger # 2 stops propagation via e.stopPropagation. So, clicking on trigger # 2 should not open the dialog\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2); // not changed\n\n await userEvent.click(triggers[2]);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n expect(args.onOpenChange).toHaveBeenCalledTimes(3);\n\n await userEvent.keyboard(\"{Escape}\");\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n await userEvent.click(triggers[2]);\n expect(args.onOpenChange).toHaveBeenCalledTimes(5);\n },\n};\n\nexport const WithPopover: Story = {\n args: {\n trigger: <span tabIndex={0}>Open popover</span>, // anything can be used as a trigger\n dialog: <DefaultPopoverContent isKeyboardDismissDisabled={false} />,\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation, press Space to open and Escape to dismiss\n await userEvent.tab();\n await expect(trigger).toHaveFocus();\n await userEvent.keyboard(\"[Space]\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\nexport const WithPopoverNonModal: Story = {\n args: {\n trigger: <span>Open popover</span>, // anything can be used as a trigger\n dialog: (\n <DefaultPopoverContent\n isNonModal={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should NOT close, because the outside can be interacted with without affecting the popover's open state\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\nexport const ControlledDialog: Story = {\n args: {\n trigger: undefined,\n dialog: <DefaultPopoverContent />,\n },\n render: ({ isOpen, dialog }) => {\n const [open, setOpen] = useState(isOpen);\n return (\n <>\n <span onClick={() => setOpen((prev) => !prev)}>Toggle</span>\n <BaseDialogTrigger\n isOpen={open}\n onOpenChange={setOpen}\n dialog={dialog}\n />\n </>\n );\n },\n play: async ({ canvasElement }) => {\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n const canvas = within(canvasElement);\n const trigger = canvas.getByText(\"Toggle\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await trigger.click();\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await trigger.click();\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n },\n};\n\nexport const AriaButtonTrigger: Story = {\n args: {\n dialog: <DefaultModalContent isDismissable={true} />,\n trigger: <BaseButton>Open modal</BaseButton>,\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\nexport const SelectedInCanvas: Story = {\n args: {\n trigger: undefined,\n dialog: <DefaultPopoverContent isKeyboardDismissDisabled={false} />,\n },\n render: ({ __plasmic_selection_prop__, ...args }) => {\n const [selected, setSelected] = useState(false);\n const [selectedSlotName, setSelectedSlotName] = useState(\"\");\n useEffect(() => {\n setTimeout(() => {\n setSelected(true);\n setTimeout(() => {\n // Simulate trigger slot selection in Plasmic canvas\n setSelectedSlotName(\"trigger\");\n }, 1000);\n }, 1000);\n }, []);\n\n return (\n // Simulate Plasmic canvas envirnment\n <PlasmicCanvasContext.Provider\n value={{\n componentName: \"test\",\n globalVariants: {},\n }}\n >\n <BaseDialogTrigger\n // Simulate node selection in Plasmic canvas\n __plasmic_selection_prop__={{\n isSelected: selected,\n selectedSlotName,\n }}\n {...args}\n />\n </PlasmicCanvasContext.Provider>\n );\n },\n play: async () => {\n const consoleWarnSpy = spyOn(console, \"warn\").mockImplementation(() => { });\n\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n },\n { timeout: 1100 }\n );\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n },\n { timeout: 1100 }\n ); // the slot selected is trigger, so the popover should close\n\n // This is to ensure that the warning \"A component changed from controlled to uncontrolled\" is not logged\n expect(consoleWarnSpy).not.toHaveBeenCalled();\n },\n};\n\nexport const PopoverPosition: Story = {\n args: {\n trigger: <span>Open popover</span>, // anything can be used as a trigger\n dialog: <DefaultPopoverContent />,\n },\n render: (args) => {\n const [className, setClassName] = useState<string | undefined>(\"popover\");\n useEffect(() => {\n setTimeout(() => {\n setClassName((prev) => `${prev} popover-right`);\n }, 1000);\n }, []);\n\n return (\n <>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n .popover {\n display: inline-block;\n }\n .popover-right {\n position: absolute;\n right: 0;\n }\n `,\n }}\n />\n <BaseDialogTrigger {...args} className={className} />\n </>\n );\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n let initialPopoverLeftPosition: number;\n\n // Check that tooltip appears\n await waitFor(() => {\n const popover = doc.getByTestId(\"dialog-content\");\n initialPopoverLeftPosition = popover.getBoundingClientRect().left;\n });\n\n await userEvent.click(trigger); // toggle close\n\n await sleep(500);\n await userEvent.click(trigger);\n\n await waitFor(async () => {\n const popover = doc.getByTestId(\"dialog-content\");\n expect(initialPopoverLeftPosition).toEqual(\n popover.getBoundingClientRect().left\n ); // opens again at exactly the same position\n });\n\n await userEvent.click(trigger); // toggle close\n\n await sleep(500);\n await userEvent.click(trigger);\n\n await waitFor(() => {\n const popover = doc.getByTestId(\"dialog-content\");\n expect(initialPopoverLeftPosition).not.toEqual(\n popover.getBoundingClientRect().left\n ); // opens at a different position because the position of the trigger changed\n });\n },\n};\n"],"names":["BaseDialogTrigger","fn","React","BasePopover","BaseDialog","BaseModal","within","waitFor","expect","userEvent","useState","BaseButton","useEffect","PlasmicCanvasContext","spyOn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,IAAuC,GAAA;AAAA,EAC3C,KAAO,EAAA,8BAAA;AAAA,EACP,SAAW,EAAAA,uCAAA;AAAA,EACX,IAAM,EAAA;AAAA,IACJ,WAAa,EAAA,KAAA;AAAA,IACb,cAAcC,OAAG,EAAA;AAAA,GACnB;AACF,EAAA;AAKA,MAAM,KAAA,GAAQ,CAAC,EAAA,KAAe,IAAI,OAAA,CAAQ,CAAC,OAAY,KAAA,UAAA,CAAW,OAAS,EAAA,EAAE,CAAC,CAAA,CAAA;AAE9E,MAAM,cAAiB,GAAA,sBACpBC,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,aAAY,EAAA,gBAAA,EAAA,kBACdA,sBAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAG,cAAY,CAAA,kBACfA,sBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,EAAE,0BAAwB,CAC7B,CAAA,CAAA;AAGF,MAAM,qBAAA,GAAwB,CAAC,KAAA,qBAC5BA,sBAAA,CAAA,aAAA,CAAAC,2BAAA,EAAA,cAAA,CAAA,EAAA,EAAgB,KACf,CAAA,kBAAAD,sBAAA,CAAA,aAAA,CAACE,yBACC,EAAA,IAAA,kBAAAF,sBAAA,CAAA,aAAA,CAAC,cAAe,EAAA,IAAA,CAClB,CACF,CAAA,CAAA;AAGF,MAAM,mBAAA,GAAsB,CAAC,KAAA,qBAC1BA,sBAAA,CAAA,aAAA,CAAAG,uBAAA,EAAA,cAAA,CAAA,EAAA,EAAc,KACb,CAAA,kBAAAH,sBAAA,CAAA,aAAA,CAACE,yBACC,EAAA,IAAA,kBAAAF,sBAAA,CAAA,aAAA,CAAC,cAAe,EAAA,IAAA,CAClB,CACF,CAAA,CAAA;AAGK,MAAM,SAAmB,GAAA;AAAA,EAC9B,IAAM,EAAA;AAAA,IACJ,OAAS,kBAAAA,sBAAA,CAAA,aAAA,CAAC,MAAK,EAAA,EAAA,QAAA,EAAU,KAAG,YAAU,CAAA;AAAA;AAAA,IACtC,MACE,kBAAAA,sBAAA,CAAA,aAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QAEC,WAAa,EAAA,IAAA;AAAA,QACb,MAAQ,EAAA,IAAA;AAAA,QACR,aAAe,EAAA,IAAA;AAAA,QACf,yBAA2B,EAAA,KAAA;AAAA,OAAA;AAAA,KAC7B;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAASI,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAMA,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,SAAA,CAAU,YAAY,CAAA,CAAA;AAE7C,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAGD,IAAA,MAAMC,eAAU,GAAI,EAAA,CAAA;AACpB,IAAOD,WAAA,CAAA,OAAO,EAAE,WAAY,EAAA,CAAA;AAG5B,IAAA,MAAMD,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,SAAS,SAAS,CAAA,CAAA;AAElC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAGD,IAAM,MAAAC,cAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AAEnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAGO,MAAM,6BAAuC,GAAA;AAAA,EAClD,IAAM,EAAA;AAAA,IACJ,MACE,kBAAAN,sBAAA,CAAA,aAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,aAAe,EAAA,IAAA;AAAA,QACf,yBAA2B,EAAA,KAAA;AAAA,OAAA;AAAA,KAC7B;AAAA,GAEJ;AAAA,EACA,UAAY,EAAA;AAAA,IACV,eAAeD,OAAG,EAAA;AAAA,GACpB;AAAA,EACA,MAAQ,EAAA,CAAC,IAAM,EAAA,EAAE,YAAiB,KAAA;AAChC,IACE,uBAAAC,sBAAA,CAAA,aAAA;AAAA,MAACF,uCAAA;AAAA,MAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,QAEC,OAAA,uDACG,MAAK,EAAA,EAAA,SAAA,EAAU,gBAAe,OAAS,EAAA,UAAA,CAAW,iBAAe,YAElE,CAAA;AAAA,OAAA,CAAA;AAAA,KAEJ,CAAA;AAAA,GAEJ;AAAA,EACA,MAAM,OAAO,EAAE,aAAe,EAAA,IAAA,EAAM,YAAiB,KAAA;AACnD,IAAM,MAAA,MAAA,GAASM,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAMA,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,SAAA,CAAU,YAAY,CAAA,CAAA;AAE7C,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAOA,WAAA,CAAA,OAAO,CAAE,CAAA,WAAA,CAAY,cAAc,CAAA,CAAA;AAE1C,IAAAA,WAAA,CAAO,UAAW,CAAA,aAAa,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AACxD,IAAM,MAAAC,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAC7B,IAAAD,WAAA,CAAO,UAAW,CAAA,aAAa,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAExD,IAAA,MAAMD,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAIO,MAAM,iBAA2B,GAAA;AAAA,EACtC,IAAM,EAAA;AAAA,IACJ,MACE,kBAAAN,sBAAA,CAAA,aAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,aAAe,EAAA,IAAA;AAAA,QACf,yBAA2B,EAAA,KAAA;AAAA,OAAA;AAAA,KAC7B;AAAA,IAEF,OAAA,kBACGA,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,kBACEA,sBAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAK,QAAU,EAAA,CAAA,EAAA,EAAG,YAAU,CAAA,kBAC5BA,sBAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAK,QAAU,EAAA,CAAA,EAAG,SAAS,CAAC,CAAA,KAAM,CAAE,CAAA,eAAA,EAAmB,EAAA,EAAA,YAExD,CACA,kBAAAA,sBAAA,CAAA,aAAA,CAAC,MAAK,EAAA,EAAA,QAAA,EAAU,CAAG,EAAA,EAAA,YAAU,CAC/B,CAAA;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAASI,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAMA,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,QAAA,GAAW,MAAO,CAAA,YAAA,CAAa,YAAY,CAAA,CAAA;AAEjD,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAA,MAAMC,cAAU,CAAA,KAAA,CAAM,QAAS,CAAA,CAAC,CAAC,CAAA,CAAA;AAEjC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAGD,IAAA,MAAMC,cAAU,CAAA,KAAA,CAAM,QAAS,CAAA,CAAC,CAAC,CAAA,CAAA;AAGjC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAEjD,IAAA,MAAMC,cAAU,CAAA,KAAA,CAAM,QAAS,CAAA,CAAC,CAAC,CAAA,CAAA;AAGjC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAEjD,IAAA,MAAMC,cAAU,CAAA,KAAA,CAAM,QAAS,CAAA,CAAC,CAAC,CAAA,CAAA;AAEjC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AACD,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAEjD,IAAM,MAAAC,cAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AACnC,IAAAD,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AACjD,IAAA,MAAMC,cAAU,CAAA,KAAA,CAAM,QAAS,CAAA,CAAC,CAAC,CAAA,CAAA;AACjC,IAAAD,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAEO,MAAM,WAAqB,GAAA;AAAA,EAChC,IAAM,EAAA;AAAA,IACJ,OAAS,kBAAAN,sBAAA,CAAA,aAAA,CAAC,MAAK,EAAA,EAAA,QAAA,EAAU,KAAG,cAAY,CAAA;AAAA;AAAA,IACxC,MAAQ,kBAAAA,sBAAA,CAAA,aAAA,CAAC,qBAAsB,EAAA,EAAA,yBAAA,EAA2B,KAAO,EAAA,CAAA;AAAA,GACnE;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAASI,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAMA,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,SAAA,CAAU,cAAc,CAAA,CAAA;AAE/C,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAGD,IAAA,MAAMC,eAAU,GAAI,EAAA,CAAA;AACpB,IAAM,MAAAD,WAAA,CAAO,OAAO,CAAA,CAAE,WAAY,EAAA,CAAA;AAClC,IAAM,MAAAC,cAAA,CAAU,SAAS,SAAS,CAAA,CAAA;AAElC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AAEnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAEO,MAAM,mBAA6B,GAAA;AAAA,EACxC,IAAM,EAAA;AAAA,IACJ,OAAA,kBAAUN,sBAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAK,cAAY,CAAA;AAAA;AAAA,IAC3B,MACE,kBAAAA,sBAAA,CAAA,aAAA;AAAA,MAAC,qBAAA;AAAA,MAAA;AAAA,QACC,UAAY,EAAA,IAAA;AAAA,QACZ,yBAA2B,EAAA,KAAA;AAAA,OAAA;AAAA,KAC7B;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAASI,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAMA,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,SAAA,CAAU,cAAc,CAAA,CAAA;AAE/C,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AAEnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAEO,MAAM,gBAA0B,GAAA;AAAA,EACrC,IAAM,EAAA;AAAA,IACJ,OAAS,EAAA,KAAA,CAAA;AAAA,IACT,MAAA,uDAAS,qBAAsB,EAAA,IAAA,CAAA;AAAA,GACjC;AAAA,EACA,MAAQ,EAAA,CAAC,EAAE,MAAA,EAAQ,QAAa,KAAA;AAC9B,IAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIE,eAAS,MAAM,CAAA,CAAA;AACvC,IAAA,uBAEIR,sBAAA,CAAA,aAAA,CAAAA,sBAAA,CAAA,QAAA,EAAA,IAAA,kBAAAA,sBAAA,CAAA,aAAA,CAAC,MAAK,EAAA,EAAA,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,IAAA,KAAS,CAAC,IAAI,CAAG,EAAA,EAAA,QAAM,CACrD,kBAAAA,sBAAA,CAAA,aAAA;AAAA,MAACF,uCAAA;AAAA,MAAA;AAAA,QACC,MAAQ,EAAA,IAAA;AAAA,QACR,YAAc,EAAA,OAAA;AAAA,QACd,MAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAoB,KAAA;AAEjC,IAAM,MAAA,GAAA,GAAMM,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,MAAA,GAASA,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,SAAA,CAAU,QAAQ,CAAA,CAAA;AAEzC,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAA,MAAM,QAAQ,KAAM,EAAA,CAAA;AAEpB,IAAA,MAAMD,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAA,MAAM,QAAQ,KAAM,EAAA,CAAA;AAEpB,IAAA,MAAMD,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAAA,GACH;AACF,EAAA;AAEO,MAAM,iBAA2B,GAAA;AAAA,EACtC,IAAM,EAAA;AAAA,IACJ,MAAQ,kBAAAN,sBAAA,CAAA,aAAA,CAAC,mBAAoB,EAAA,EAAA,aAAA,EAAe,IAAM,EAAA,CAAA;AAAA,IAClD,OAAA,kBAAUA,sBAAA,CAAA,aAAA,CAAAS,yBAAA,EAAA,IAAA,EAAW,YAAU,CAAA;AAAA,GACjC;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAASL,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAMA,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,SAAA,CAAU,YAAY,CAAA,CAAA;AAE7C,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAAA,WAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAEO,MAAM,gBAA0B,GAAA;AAAA,EACrC,IAAM,EAAA;AAAA,IACJ,OAAS,EAAA,KAAA,CAAA;AAAA,IACT,MAAQ,kBAAAN,sBAAA,CAAA,aAAA,CAAC,qBAAsB,EAAA,EAAA,yBAAA,EAA2B,KAAO,EAAA,CAAA;AAAA,GACnE;AAAA,EACA,MAAA,EAAQ,CAAC,EAA4C,KAAA;AAA5C,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,CAAiC,IAAA,GAAA,SAAA,CAAjC,IAAiC,CAA/B,4BAAA,CAAA,EAAA;AACT,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIQ,eAAS,KAAK,CAAA,CAAA;AAC9C,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,eAAS,EAAE,CAAA,CAAA;AAC3D,IAAAE,eAAA,CAAU,MAAM;AACd,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAChB,QAAA,UAAA,CAAW,MAAM;AAEf,UAAA,mBAAA,CAAoB,SAAS,CAAA,CAAA;AAAA,WAC5B,GAAI,CAAA,CAAA;AAAA,SACN,GAAI,CAAA,CAAA;AAAA,KACT,EAAG,EAAE,CAAA,CAAA;AAEL,IAAA;AAAA;AAAA,sBAEEV,sBAAA,CAAA,aAAA;AAAA,QAACW,yBAAqB,CAAA,QAAA;AAAA,QAArB;AAAA,UACC,KAAO,EAAA;AAAA,YACL,aAAe,EAAA,MAAA;AAAA,YACf,gBAAgB,EAAC;AAAA,WACnB;AAAA,SAAA;AAAA,wBAEAX,sBAAA,CAAA,aAAA;AAAA,UAACF,uCAAA;AAAA,UAAA,cAAA,CAAA;AAAA,YAEC,0BAA4B,EAAA;AAAA,cAC1B,UAAY,EAAA,QAAA;AAAA,cACZ,gBAAA;AAAA,aACF;AAAA,WACI,EAAA,IAAA,CAAA;AAAA,SACN;AAAA,OACF;AAAA,MAAA;AAAA,GAEJ;AAAA,EACA,MAAM,YAAY;AAChB,IAAA,MAAM,iBAAiBc,UAAM,CAAA,OAAA,EAAS,MAAM,CAAA,CAAE,mBAAmB,MAAM;AAAA,KAAG,CAAA,CAAA;AAG1E,IAAM,MAAA,GAAA,GAAMR,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAEhC,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAAD,YAAA;AAAA,MACJ,MAAM;AACJ,QAAAC,WAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,OAChE;AAAA,MACA,EAAE,SAAS,IAAK,EAAA;AAAA,KAClB,CAAA;AAEA,IAAM,MAAAD,YAAA;AAAA,MACJ,MAAM;AACJ,QAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,OACpE;AAAA,MACA,EAAE,SAAS,IAAK,EAAA;AAAA,KAClB,CAAA;AAGA,IAAOA,WAAA,CAAA,cAAc,CAAE,CAAA,GAAA,CAAI,gBAAiB,EAAA,CAAA;AAAA,GAC9C;AACF,EAAA;AAEO,MAAM,eAAyB,GAAA;AAAA,EACpC,IAAM,EAAA;AAAA,IACJ,OAAA,kBAAUN,sBAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAK,cAAY,CAAA;AAAA;AAAA,IAC3B,MAAA,uDAAS,qBAAsB,EAAA,IAAA,CAAA;AAAA,GACjC;AAAA,EACA,MAAA,EAAQ,CAAC,IAAS,KAAA;AAChB,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIQ,eAA6B,SAAS,CAAA,CAAA;AACxE,IAAAE,eAAA,CAAU,MAAM;AACd,MAAA,UAAA,CAAW,MAAM;AACf,QAAa,YAAA,CAAA,CAAC,IAAS,KAAA,CAAA,EAAG,IAAoB,CAAA,cAAA,CAAA,CAAA,CAAA;AAAA,SAC7C,GAAI,CAAA,CAAA;AAAA,KACT,EAAG,EAAE,CAAA,CAAA;AAEL,IAAA,uBAEIV,sBAAA,CAAA,aAAA,CAAAA,sBAAA,CAAA,QAAA,EAAA,IAAA,kBAAAA,sBAAA,CAAA,aAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,uBAAyB,EAAA;AAAA,UACvB,MAAQ,EAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAA,CAAA;AAAA,SASV;AAAA,OAAA;AAAA,uBAEDA,sBAAA,CAAA,aAAA,CAAAF,uCAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAsB,IAAtB,CAAA,EAAA,EAA4B,YAAsB,CACrD,CAAA,CAAA;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAoB,KAAA;AACjC,IAAM,MAAA,MAAA,GAASM,YAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAMA,WAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,SAAA,CAAU,cAAc,CAAA,CAAA;AAE/C,IAAA,MAAMC,aAAQ,MAAM;AAClB,MAAAC,WAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAI,IAAA,0BAAA,CAAA;AAGJ,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAM,MAAA,OAAA,GAAU,GAAI,CAAA,WAAA,CAAY,gBAAgB,CAAA,CAAA;AAChD,MAA6B,0BAAA,GAAA,OAAA,CAAQ,uBAAwB,CAAA,IAAA,CAAA;AAAA,KAC9D,CAAA,CAAA;AAED,IAAM,MAAAE,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAM,MAAM,GAAG,CAAA,CAAA;AACf,IAAM,MAAAA,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAMF,aAAQ,YAAY;AACxB,MAAM,MAAA,OAAA,GAAU,GAAI,CAAA,WAAA,CAAY,gBAAgB,CAAA,CAAA;AAChD,MAAAC,WAAA,CAAO,0BAA0B,CAAE,CAAA,OAAA;AAAA,QACjC,OAAA,CAAQ,uBAAwB,CAAA,IAAA;AAAA,OAClC,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAAC,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAM,MAAM,GAAG,CAAA,CAAA;AACf,IAAM,MAAAA,cAAA,CAAU,MAAM,OAAO,CAAA,CAAA;AAE7B,IAAA,MAAMF,aAAQ,MAAM;AAClB,MAAM,MAAA,OAAA,GAAU,GAAI,CAAA,WAAA,CAAY,gBAAgB,CAAA,CAAA;AAChD,MAAOC,WAAA,CAAA,0BAA0B,EAAE,GAAI,CAAA,OAAA;AAAA,QACrC,OAAA,CAAQ,uBAAwB,CAAA,IAAA;AAAA,OAClC,CAAA;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACF;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PlasmicCanvasContext } from '@plasmicapp/host';
|
|
2
|
-
import { fn, within, waitFor, expect, userEvent } from '@storybook/test';
|
|
2
|
+
import { fn, within, waitFor, expect, userEvent, spyOn } from '@storybook/test';
|
|
3
3
|
import React, { useState, useEffect } from 'react';
|
|
4
4
|
import { BaseButton } from './registerButton.esm.js';
|
|
5
5
|
import { BaseDialog } from './registerDialog.esm.js';
|
|
@@ -8,14 +8,16 @@ import { BaseModal } from './registerModal.esm.js';
|
|
|
8
8
|
import { BasePopover } from './registerPopover.esm.js';
|
|
9
9
|
import 'react-aria';
|
|
10
10
|
import 'react-aria-components';
|
|
11
|
-
import './common-
|
|
12
|
-
import './utils-
|
|
11
|
+
import './common-10d1b069.esm.js';
|
|
12
|
+
import './utils-59f72eb9.esm.js';
|
|
13
13
|
import '@plasmicapp/host/registerComponent';
|
|
14
14
|
import './variant-utils-4405ebb0.esm.js';
|
|
15
15
|
import './contexts-5cb81c2f.esm.js';
|
|
16
16
|
import '@react-aria/utils';
|
|
17
17
|
|
|
18
18
|
var __defProp = Object.defineProperty;
|
|
19
|
+
var __defProps = Object.defineProperties;
|
|
20
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
19
21
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
20
22
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
21
23
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -31,6 +33,7 @@ var __spreadValues = (a, b) => {
|
|
|
31
33
|
}
|
|
32
34
|
return a;
|
|
33
35
|
};
|
|
36
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
34
37
|
var __objRest = (source, exclude) => {
|
|
35
38
|
var target = {};
|
|
36
39
|
for (var prop in source)
|
|
@@ -51,20 +54,32 @@ const meta = {
|
|
|
51
54
|
onOpenChange: fn()
|
|
52
55
|
}
|
|
53
56
|
};
|
|
57
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
54
58
|
const DefaultContent = () => /* @__PURE__ */ React.createElement("div", { "data-testid": "dialog-content" }, /* @__PURE__ */ React.createElement("h2", null, "Dialog Title"), /* @__PURE__ */ React.createElement("p", null, "Dialog content goes here"));
|
|
59
|
+
const DefaultPopoverContent = (props) => /* @__PURE__ */ React.createElement(BasePopover, __spreadValues({}, props), /* @__PURE__ */ React.createElement(BaseDialog, null, /* @__PURE__ */ React.createElement(DefaultContent, null)));
|
|
60
|
+
const DefaultModalContent = (props) => /* @__PURE__ */ React.createElement(BaseModal, __spreadValues({}, props), /* @__PURE__ */ React.createElement(BaseDialog, null, /* @__PURE__ */ React.createElement(DefaultContent, null)));
|
|
55
61
|
const WithModal = {
|
|
56
62
|
args: {
|
|
57
|
-
trigger: /* @__PURE__ */ React.createElement(
|
|
58
|
-
|
|
63
|
+
trigger: /* @__PURE__ */ React.createElement("span", { tabIndex: 0 }, "Open modal"),
|
|
64
|
+
// anything can be used as a trigger
|
|
65
|
+
dialog: /* @__PURE__ */ React.createElement(
|
|
66
|
+
DefaultModalContent,
|
|
67
|
+
{
|
|
68
|
+
defaultOpen: true,
|
|
69
|
+
isOpen: true,
|
|
70
|
+
isDismissable: true,
|
|
71
|
+
isKeyboardDismissDisabled: false
|
|
72
|
+
}
|
|
73
|
+
)
|
|
59
74
|
},
|
|
60
75
|
play: async ({ canvasElement, args }) => {
|
|
61
76
|
const canvas = within(canvasElement);
|
|
62
77
|
const doc = within(document.body);
|
|
63
|
-
const
|
|
78
|
+
const trigger = canvas.getByText("Open modal");
|
|
64
79
|
await waitFor(() => {
|
|
65
80
|
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
66
81
|
});
|
|
67
|
-
await userEvent.click(
|
|
82
|
+
await userEvent.click(trigger);
|
|
68
83
|
await waitFor(() => {
|
|
69
84
|
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
70
85
|
});
|
|
@@ -72,7 +87,12 @@ const WithModal = {
|
|
|
72
87
|
await waitFor(() => {
|
|
73
88
|
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
74
89
|
});
|
|
75
|
-
await userEvent.
|
|
90
|
+
await userEvent.tab();
|
|
91
|
+
expect(trigger).toHaveFocus();
|
|
92
|
+
await waitFor(() => {
|
|
93
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
94
|
+
});
|
|
95
|
+
await userEvent.keyboard("[Space]");
|
|
76
96
|
await waitFor(() => {
|
|
77
97
|
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
78
98
|
});
|
|
@@ -83,19 +103,105 @@ const WithModal = {
|
|
|
83
103
|
expect(args.onOpenChange).toHaveBeenCalledTimes(4);
|
|
84
104
|
}
|
|
85
105
|
};
|
|
106
|
+
const TriggerWithCustomEventHandler = {
|
|
107
|
+
args: {
|
|
108
|
+
dialog: /* @__PURE__ */ React.createElement(
|
|
109
|
+
DefaultModalContent,
|
|
110
|
+
{
|
|
111
|
+
isDismissable: true,
|
|
112
|
+
isKeyboardDismissDisabled: false
|
|
113
|
+
}
|
|
114
|
+
)
|
|
115
|
+
},
|
|
116
|
+
parameters: {
|
|
117
|
+
customOnClick: fn()
|
|
118
|
+
},
|
|
119
|
+
render: (args, { parameters }) => {
|
|
120
|
+
return /* @__PURE__ */ React.createElement(
|
|
121
|
+
BaseDialogTrigger,
|
|
122
|
+
__spreadProps(__spreadValues({}, args), {
|
|
123
|
+
trigger: /* @__PURE__ */ React.createElement("span", { className: "custom-class", onClick: parameters.customOnClick }, "Open modal")
|
|
124
|
+
})
|
|
125
|
+
);
|
|
126
|
+
},
|
|
127
|
+
play: async ({ canvasElement, args, parameters }) => {
|
|
128
|
+
const canvas = within(canvasElement);
|
|
129
|
+
const doc = within(document.body);
|
|
130
|
+
const trigger = canvas.getByText("Open modal");
|
|
131
|
+
await waitFor(() => {
|
|
132
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
133
|
+
});
|
|
134
|
+
expect(trigger).toHaveClass("custom-class");
|
|
135
|
+
expect(parameters.customOnClick).toHaveBeenCalledTimes(0);
|
|
136
|
+
await userEvent.click(trigger);
|
|
137
|
+
expect(parameters.customOnClick).toHaveBeenCalledTimes(1);
|
|
138
|
+
await waitFor(() => {
|
|
139
|
+
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
140
|
+
});
|
|
141
|
+
await userEvent.click(document.body);
|
|
142
|
+
await waitFor(() => {
|
|
143
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
144
|
+
});
|
|
145
|
+
expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const WithNestedTrigger = {
|
|
149
|
+
args: {
|
|
150
|
+
dialog: /* @__PURE__ */ React.createElement(
|
|
151
|
+
DefaultModalContent,
|
|
152
|
+
{
|
|
153
|
+
isDismissable: true,
|
|
154
|
+
isKeyboardDismissDisabled: false
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
trigger: /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", { tabIndex: 0 }, "Open modal"), /* @__PURE__ */ React.createElement("span", { tabIndex: 0, onClick: (e) => e.stopPropagation() }, "Open modal"), /* @__PURE__ */ React.createElement("span", { tabIndex: 0 }, "Open modal"))
|
|
158
|
+
},
|
|
159
|
+
play: async ({ canvasElement, args }) => {
|
|
160
|
+
const canvas = within(canvasElement);
|
|
161
|
+
const doc = within(document.body);
|
|
162
|
+
const triggers = canvas.getAllByText("Open modal");
|
|
163
|
+
await waitFor(() => {
|
|
164
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
165
|
+
});
|
|
166
|
+
await userEvent.click(triggers[0]);
|
|
167
|
+
await waitFor(() => {
|
|
168
|
+
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
169
|
+
});
|
|
170
|
+
await userEvent.click(triggers[0]);
|
|
171
|
+
await waitFor(() => {
|
|
172
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
173
|
+
});
|
|
174
|
+
expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
175
|
+
await userEvent.click(triggers[1]);
|
|
176
|
+
await waitFor(() => {
|
|
177
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
178
|
+
});
|
|
179
|
+
expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
180
|
+
await userEvent.click(triggers[2]);
|
|
181
|
+
await waitFor(() => {
|
|
182
|
+
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
183
|
+
});
|
|
184
|
+
expect(args.onOpenChange).toHaveBeenCalledTimes(3);
|
|
185
|
+
await userEvent.keyboard("{Escape}");
|
|
186
|
+
expect(args.onOpenChange).toHaveBeenCalledTimes(4);
|
|
187
|
+
await userEvent.click(triggers[2]);
|
|
188
|
+
expect(args.onOpenChange).toHaveBeenCalledTimes(5);
|
|
189
|
+
}
|
|
190
|
+
};
|
|
86
191
|
const WithPopover = {
|
|
87
192
|
args: {
|
|
88
|
-
trigger: /* @__PURE__ */ React.createElement(
|
|
89
|
-
|
|
193
|
+
trigger: /* @__PURE__ */ React.createElement("span", { tabIndex: 0 }, "Open popover"),
|
|
194
|
+
// anything can be used as a trigger
|
|
195
|
+
dialog: /* @__PURE__ */ React.createElement(DefaultPopoverContent, { isKeyboardDismissDisabled: false })
|
|
90
196
|
},
|
|
91
197
|
play: async ({ canvasElement, args }) => {
|
|
92
198
|
const canvas = within(canvasElement);
|
|
93
199
|
const doc = within(document.body);
|
|
94
|
-
const
|
|
200
|
+
const trigger = canvas.getByText("Open popover");
|
|
95
201
|
await waitFor(() => {
|
|
96
202
|
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
97
203
|
});
|
|
98
|
-
await userEvent.click(
|
|
204
|
+
await userEvent.click(trigger);
|
|
99
205
|
await waitFor(() => {
|
|
100
206
|
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
101
207
|
});
|
|
@@ -103,7 +209,9 @@ const WithPopover = {
|
|
|
103
209
|
await waitFor(() => {
|
|
104
210
|
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
105
211
|
});
|
|
106
|
-
await userEvent.
|
|
212
|
+
await userEvent.tab();
|
|
213
|
+
await expect(trigger).toHaveFocus();
|
|
214
|
+
await userEvent.keyboard("[Space]");
|
|
107
215
|
await waitFor(() => {
|
|
108
216
|
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
109
217
|
});
|
|
@@ -116,17 +224,24 @@ const WithPopover = {
|
|
|
116
224
|
};
|
|
117
225
|
const WithPopoverNonModal = {
|
|
118
226
|
args: {
|
|
119
|
-
trigger: /* @__PURE__ */ React.createElement(
|
|
120
|
-
|
|
227
|
+
trigger: /* @__PURE__ */ React.createElement("span", null, "Open popover"),
|
|
228
|
+
// anything can be used as a trigger
|
|
229
|
+
dialog: /* @__PURE__ */ React.createElement(
|
|
230
|
+
DefaultPopoverContent,
|
|
231
|
+
{
|
|
232
|
+
isNonModal: true,
|
|
233
|
+
isKeyboardDismissDisabled: false
|
|
234
|
+
}
|
|
235
|
+
)
|
|
121
236
|
},
|
|
122
237
|
play: async ({ canvasElement, args }) => {
|
|
123
238
|
const canvas = within(canvasElement);
|
|
124
239
|
const doc = within(document.body);
|
|
125
|
-
const
|
|
240
|
+
const trigger = canvas.getByText("Open popover");
|
|
126
241
|
await waitFor(() => {
|
|
127
242
|
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
128
243
|
});
|
|
129
|
-
await userEvent.click(
|
|
244
|
+
await userEvent.click(trigger);
|
|
130
245
|
await waitFor(() => {
|
|
131
246
|
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
132
247
|
});
|
|
@@ -141,10 +256,66 @@ const WithPopoverNonModal = {
|
|
|
141
256
|
expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
142
257
|
}
|
|
143
258
|
};
|
|
259
|
+
const ControlledDialog = {
|
|
260
|
+
args: {
|
|
261
|
+
trigger: void 0,
|
|
262
|
+
dialog: /* @__PURE__ */ React.createElement(DefaultPopoverContent, null)
|
|
263
|
+
},
|
|
264
|
+
render: ({ isOpen, dialog }) => {
|
|
265
|
+
const [open, setOpen] = useState(isOpen);
|
|
266
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { onClick: () => setOpen((prev) => !prev) }, "Toggle"), /* @__PURE__ */ React.createElement(
|
|
267
|
+
BaseDialogTrigger,
|
|
268
|
+
{
|
|
269
|
+
isOpen: open,
|
|
270
|
+
onOpenChange: setOpen,
|
|
271
|
+
dialog
|
|
272
|
+
}
|
|
273
|
+
));
|
|
274
|
+
},
|
|
275
|
+
play: async ({ canvasElement }) => {
|
|
276
|
+
const doc = within(document.body);
|
|
277
|
+
const canvas = within(canvasElement);
|
|
278
|
+
const trigger = canvas.getByText("Toggle");
|
|
279
|
+
await waitFor(() => {
|
|
280
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
281
|
+
});
|
|
282
|
+
await trigger.click();
|
|
283
|
+
await waitFor(() => {
|
|
284
|
+
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
285
|
+
});
|
|
286
|
+
await trigger.click();
|
|
287
|
+
await waitFor(() => {
|
|
288
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
const AriaButtonTrigger = {
|
|
293
|
+
args: {
|
|
294
|
+
dialog: /* @__PURE__ */ React.createElement(DefaultModalContent, { isDismissable: true }),
|
|
295
|
+
trigger: /* @__PURE__ */ React.createElement(BaseButton, null, "Open modal")
|
|
296
|
+
},
|
|
297
|
+
play: async ({ canvasElement, args }) => {
|
|
298
|
+
const canvas = within(canvasElement);
|
|
299
|
+
const doc = within(document.body);
|
|
300
|
+
const trigger = canvas.getByText("Open modal");
|
|
301
|
+
await waitFor(() => {
|
|
302
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
303
|
+
});
|
|
304
|
+
await userEvent.click(trigger);
|
|
305
|
+
await waitFor(() => {
|
|
306
|
+
expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
307
|
+
});
|
|
308
|
+
await userEvent.click(document.body);
|
|
309
|
+
await waitFor(() => {
|
|
310
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
311
|
+
});
|
|
312
|
+
expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
313
|
+
}
|
|
314
|
+
};
|
|
144
315
|
const SelectedInCanvas = {
|
|
145
316
|
args: {
|
|
146
|
-
trigger:
|
|
147
|
-
dialog: /* @__PURE__ */ React.createElement(
|
|
317
|
+
trigger: void 0,
|
|
318
|
+
dialog: /* @__PURE__ */ React.createElement(DefaultPopoverContent, { isKeyboardDismissDisabled: false })
|
|
148
319
|
},
|
|
149
320
|
render: (_a) => {
|
|
150
321
|
var _b = _a, args = __objRest(_b, ["__plasmic_selection_prop__"]);
|
|
@@ -181,6 +352,8 @@ const SelectedInCanvas = {
|
|
|
181
352
|
);
|
|
182
353
|
},
|
|
183
354
|
play: async () => {
|
|
355
|
+
const consoleWarnSpy = spyOn(console, "warn").mockImplementation(() => {
|
|
356
|
+
});
|
|
184
357
|
const doc = within(document.body);
|
|
185
358
|
await waitFor(() => {
|
|
186
359
|
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
@@ -197,8 +370,72 @@ const SelectedInCanvas = {
|
|
|
197
370
|
},
|
|
198
371
|
{ timeout: 1100 }
|
|
199
372
|
);
|
|
373
|
+
expect(consoleWarnSpy).not.toHaveBeenCalled();
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
const PopoverPosition = {
|
|
377
|
+
args: {
|
|
378
|
+
trigger: /* @__PURE__ */ React.createElement("span", null, "Open popover"),
|
|
379
|
+
// anything can be used as a trigger
|
|
380
|
+
dialog: /* @__PURE__ */ React.createElement(DefaultPopoverContent, null)
|
|
381
|
+
},
|
|
382
|
+
render: (args) => {
|
|
383
|
+
const [className, setClassName] = useState("popover");
|
|
384
|
+
useEffect(() => {
|
|
385
|
+
setTimeout(() => {
|
|
386
|
+
setClassName((prev) => `${prev} popover-right`);
|
|
387
|
+
}, 1e3);
|
|
388
|
+
}, []);
|
|
389
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
390
|
+
"style",
|
|
391
|
+
{
|
|
392
|
+
dangerouslySetInnerHTML: {
|
|
393
|
+
__html: `
|
|
394
|
+
.popover {
|
|
395
|
+
display: inline-block;
|
|
396
|
+
}
|
|
397
|
+
.popover-right {
|
|
398
|
+
position: absolute;
|
|
399
|
+
right: 0;
|
|
400
|
+
}
|
|
401
|
+
`
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
), /* @__PURE__ */ React.createElement(BaseDialogTrigger, __spreadProps(__spreadValues({}, args), { className })));
|
|
405
|
+
},
|
|
406
|
+
play: async ({ canvasElement }) => {
|
|
407
|
+
const canvas = within(canvasElement);
|
|
408
|
+
const doc = within(document.body);
|
|
409
|
+
const trigger = canvas.getByText("Open popover");
|
|
410
|
+
await waitFor(() => {
|
|
411
|
+
expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
412
|
+
});
|
|
413
|
+
await userEvent.click(trigger);
|
|
414
|
+
let initialPopoverLeftPosition;
|
|
415
|
+
await waitFor(() => {
|
|
416
|
+
const popover = doc.getByTestId("dialog-content");
|
|
417
|
+
initialPopoverLeftPosition = popover.getBoundingClientRect().left;
|
|
418
|
+
});
|
|
419
|
+
await userEvent.click(trigger);
|
|
420
|
+
await sleep(500);
|
|
421
|
+
await userEvent.click(trigger);
|
|
422
|
+
await waitFor(async () => {
|
|
423
|
+
const popover = doc.getByTestId("dialog-content");
|
|
424
|
+
expect(initialPopoverLeftPosition).toEqual(
|
|
425
|
+
popover.getBoundingClientRect().left
|
|
426
|
+
);
|
|
427
|
+
});
|
|
428
|
+
await userEvent.click(trigger);
|
|
429
|
+
await sleep(500);
|
|
430
|
+
await userEvent.click(trigger);
|
|
431
|
+
await waitFor(() => {
|
|
432
|
+
const popover = doc.getByTestId("dialog-content");
|
|
433
|
+
expect(initialPopoverLeftPosition).not.toEqual(
|
|
434
|
+
popover.getBoundingClientRect().left
|
|
435
|
+
);
|
|
436
|
+
});
|
|
200
437
|
}
|
|
201
438
|
};
|
|
202
439
|
|
|
203
|
-
export { SelectedInCanvas, WithModal, WithPopover, WithPopoverNonModal, meta as default };
|
|
440
|
+
export { AriaButtonTrigger, ControlledDialog, PopoverPosition, SelectedInCanvas, TriggerWithCustomEventHandler, WithModal, WithNestedTrigger, WithPopover, WithPopoverNonModal, meta as default };
|
|
204
441
|
//# sourceMappingURL=registerDialogTrigger.stories.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerDialogTrigger.stories.esm.js","sources":["../src/registerDialogTrigger.stories.tsx"],"sourcesContent":["import { PlasmicCanvasContext } from \"@plasmicapp/host\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, userEvent, waitFor, within } from \"@storybook/test\";\nimport React, { useEffect, useState } from \"react\";\nimport { BaseButton } from \"./registerButton\";\nimport { BaseDialog } from \"./registerDialog\";\nimport { BaseDialogTrigger } from \"./registerDialogTrigger\";\nimport { BaseModal } from \"./registerModal\";\nimport { BasePopover } from \"./registerPopover\";\n\nconst meta: Meta<typeof BaseDialogTrigger> = {\n title: \"Components/BaseDialogTrigger\",\n component: BaseDialogTrigger,\n args: {\n defaultOpen: false,\n onOpenChange: fn(),\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseDialogTrigger>;\n\nconst DefaultContent = () => (\n <div data-testid=\"dialog-content\">\n <h2>Dialog Title</h2>\n <p>Dialog content goes here</p>\n </div>\n);\n\nexport const WithModal: Story = {\n args: {\n trigger: <BaseButton>Open modal</BaseButton>,\n dialog: (\n <BaseModal isDismissable={true} isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BaseModal>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const button = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation, press Escape to dismiss\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\nexport const WithPopover: Story = {\n args: {\n trigger: <BaseButton>Open popover</BaseButton>,\n dialog: (\n <BasePopover isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const button = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation, press Escape to dismiss\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\nexport const WithPopoverNonModal: Story = {\n args: {\n trigger: <BaseButton>Open popover</BaseButton>,\n dialog: (\n <BasePopover isNonModal={true} isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const button = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(button);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\nexport const SelectedInCanvas: Story = {\n args: {\n trigger: <BaseButton>Open popover</BaseButton>,\n dialog: (\n <BasePopover isNonModal={true} isKeyboardDismissDisabled={false}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n ),\n },\n render: ({ __plasmic_selection_prop__, ...args }) => {\n const [selected, setSelected] = useState(false);\n const [selectedSlotName, setSelectedSlotName] = useState(\"\");\n useEffect(() => {\n setTimeout(() => {\n setSelected(true);\n setTimeout(() => {\n // Simulate trigger slot selection in Plasmic canvas\n setSelectedSlotName(\"trigger\");\n }, 1000);\n }, 1000);\n }, []);\n\n return (\n // Simulate Plasmic canvas envirnment\n <PlasmicCanvasContext.Provider\n value={{\n componentName: \"test\",\n globalVariants: {},\n }}\n >\n <BaseDialogTrigger\n // Simulate node selection in Plasmic canvas\n __plasmic_selection_prop__={{\n isSelected: selected,\n selectedSlotName,\n }}\n {...args}\n />\n </PlasmicCanvasContext.Provider>\n );\n },\n play: async () => {\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n },\n { timeout: 1100 }\n );\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n },\n { timeout: 1100 }\n ); // the slot selected is trigger, so the popover should close\n },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,IAAuC,GAAA;AAAA,EAC3C,KAAO,EAAA,8BAAA;AAAA,EACP,SAAW,EAAA,iBAAA;AAAA,EACX,IAAM,EAAA;AAAA,IACJ,WAAa,EAAA,KAAA;AAAA,IACb,cAAc,EAAG,EAAA;AAAA,GACnB;AACF,EAAA;AAKA,MAAM,cAAiB,GAAA,sBACpB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,aAAY,EAAA,gBAAA,EAAA,kBACd,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAG,cAAY,CAAA,kBACf,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,EAAE,0BAAwB,CAC7B,CAAA,CAAA;AAGK,MAAM,SAAmB,GAAA;AAAA,EAC9B,IAAM,EAAA;AAAA,IACJ,OAAA,kBAAU,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,IAAA,EAAW,YAAU,CAAA;AAAA,IAC/B,MACE,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAU,EAAA,EAAA,aAAA,EAAe,IAAM,EAAA,yBAAA,EAA2B,KACzD,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAe,EAAA,IAAA,CAClB,CACF,CAAA;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAAS,OAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,MAAA,GAAS,MAAO,CAAA,SAAA,CAAU,YAAY,CAAA,CAAA;AAE5C,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,MAAM,MAAM,CAAA,CAAA;AAE5B,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAGD,IAAM,MAAA,SAAA,CAAU,MAAM,MAAM,CAAA,CAAA;AAE5B,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AAEnC,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAEO,MAAM,WAAqB,GAAA;AAAA,EAChC,IAAM,EAAA;AAAA,IACJ,OAAA,kBAAU,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,IAAA,EAAW,cAAY,CAAA;AAAA,IACjC,MAAA,kBACG,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,yBAA2B,EAAA,KAAA,EAAA,sCACrC,UACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAe,EAAA,IAAA,CAClB,CACF,CAAA;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAAS,OAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,MAAA,GAAS,MAAO,CAAA,SAAA,CAAU,cAAc,CAAA,CAAA;AAE9C,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,MAAM,MAAM,CAAA,CAAA;AAE5B,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAGD,IAAM,MAAA,SAAA,CAAU,MAAM,MAAM,CAAA,CAAA;AAE5B,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AAEnC,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAEO,MAAM,mBAA6B,GAAA;AAAA,EACxC,IAAM,EAAA;AAAA,IACJ,OAAA,kBAAU,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,IAAA,EAAW,cAAY,CAAA;AAAA,IACjC,MACE,kBAAA,KAAA,CAAA,aAAA,CAAC,WAAY,EAAA,EAAA,UAAA,EAAY,IAAM,EAAA,yBAAA,EAA2B,KACxD,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAe,EAAA,IAAA,CAClB,CACF,CAAA;AAAA,GAEJ;AAAA,EACA,IAAM,EAAA,OAAO,EAAE,aAAA,EAAe,MAAW,KAAA;AACvC,IAAM,MAAA,MAAA,GAAS,OAAO,aAAa,CAAA,CAAA;AACnC,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAM,MAAA,MAAA,GAAS,MAAO,CAAA,SAAA,CAAU,cAAc,CAAA,CAAA;AAE9C,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,MAAM,MAAM,CAAA,CAAA;AAE5B,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGnC,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,KAC/D,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AAEnC,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;AAAA,GACnD;AACF,EAAA;AAEO,MAAM,gBAA0B,GAAA;AAAA,EACrC,IAAM,EAAA;AAAA,IACJ,OAAA,kBAAU,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,IAAA,EAAW,cAAY,CAAA;AAAA,IACjC,MACE,kBAAA,KAAA,CAAA,aAAA,CAAC,WAAY,EAAA,EAAA,UAAA,EAAY,IAAM,EAAA,yBAAA,EAA2B,KACxD,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAe,EAAA,IAAA,CAClB,CACF,CAAA;AAAA,GAEJ;AAAA,EACA,MAAA,EAAQ,CAAC,EAA4C,KAAA;AAA5C,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,CAAiC,IAAA,GAAA,SAAA,CAAjC,IAAiC,CAA/B,4BAAA,CAAA,EAAA;AACT,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAC9C,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,EAAE,CAAA,CAAA;AAC3D,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAChB,QAAA,UAAA,CAAW,MAAM;AAEf,UAAA,mBAAA,CAAoB,SAAS,CAAA,CAAA;AAAA,WAC5B,GAAI,CAAA,CAAA;AAAA,SACN,GAAI,CAAA,CAAA;AAAA,KACT,EAAG,EAAE,CAAA,CAAA;AAEL,IAAA;AAAA;AAAA,sBAEE,KAAA,CAAA,aAAA;AAAA,QAAC,oBAAqB,CAAA,QAAA;AAAA,QAArB;AAAA,UACC,KAAO,EAAA;AAAA,YACL,aAAe,EAAA,MAAA;AAAA,YACf,gBAAgB,EAAC;AAAA,WACnB;AAAA,SAAA;AAAA,wBAEA,KAAA,CAAA,aAAA;AAAA,UAAC,iBAAA;AAAA,UAAA,cAAA,CAAA;AAAA,YAEC,0BAA4B,EAAA;AAAA,cAC1B,UAAY,EAAA,QAAA;AAAA,cACZ,gBAAA;AAAA,aACF;AAAA,WACI,EAAA,IAAA,CAAA;AAAA,SACN;AAAA,OACF;AAAA,MAAA;AAAA,GAEJ;AAAA,EACA,MAAM,YAAY;AAEhB,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAEhC,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,KACnE,CAAA,CAAA;AAED,IAAM,MAAA,OAAA;AAAA,MACJ,MAAM;AACJ,QAAA,MAAA,CAAO,GAAI,CAAA,aAAA,CAAc,gBAAgB,CAAC,EAAE,iBAAkB,EAAA,CAAA;AAAA,OAChE;AAAA,MACA,EAAE,SAAS,IAAK,EAAA;AAAA,KAClB,CAAA;AAEA,IAAM,MAAA,OAAA;AAAA,MACJ,MAAM;AACJ,QAAA,MAAA,CAAO,IAAI,aAAc,CAAA,gBAAgB,CAAC,CAAA,CAAE,IAAI,iBAAkB,EAAA,CAAA;AAAA,OACpE;AAAA,MACA,EAAE,SAAS,IAAK,EAAA;AAAA,KAClB,CAAA;AAAA,GACF;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"registerDialogTrigger.stories.esm.js","sources":["../src/registerDialogTrigger.stories.tsx"],"sourcesContent":["import { PlasmicCanvasContext } from \"@plasmicapp/host\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, spyOn, userEvent, waitFor, within } from \"@storybook/test\";\nimport React, { useEffect, useState } from \"react\";\nimport { BaseButton } from \"./registerButton\";\nimport { BaseDialog } from \"./registerDialog\";\nimport { BaseDialogTrigger } from \"./registerDialogTrigger\";\nimport { BaseModal, BaseModalProps } from \"./registerModal\";\nimport { BasePopover, BasePopoverProps } from \"./registerPopover\";\n\nconst meta: Meta<typeof BaseDialogTrigger> = {\n title: \"Components/BaseDialogTrigger\",\n component: BaseDialogTrigger,\n args: {\n defaultOpen: false,\n onOpenChange: fn(),\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseDialogTrigger>;\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nconst DefaultContent = () => (\n <div data-testid=\"dialog-content\">\n <h2>Dialog Title</h2>\n <p>Dialog content goes here</p>\n </div>\n);\n\nconst DefaultPopoverContent = (props: BasePopoverProps) => (\n <BasePopover {...props}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BasePopover>\n);\n\nconst DefaultModalContent = (props: BaseModalProps) => (\n <BaseModal {...props}>\n <BaseDialog>\n <DefaultContent />\n </BaseDialog>\n </BaseModal>\n);\n\nexport const WithModal: Story = {\n args: {\n trigger: <span tabIndex={0}>Open modal</span>, // anything can be used as a trigger\n dialog: (\n <DefaultModalContent\n // The test ensures that isOpen and defaultOpen are disregarded when inside a dialog trigger\n defaultOpen={true}\n isOpen={true}\n isDismissable={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation\n await userEvent.tab();\n expect(trigger).toHaveFocus();\n\n // Still not open because a click/press is required\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"[Space]\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n // press Escape to dismiss\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\n// Ensures that any custom event handlers on the trigger are called, and any custom props passed to it are passed through.\nexport const TriggerWithCustomEventHandler: Story = {\n args: {\n dialog: (\n <DefaultModalContent\n isDismissable={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n },\n parameters: {\n customOnClick: fn(),\n },\n render: (args, { parameters }) => {\n return (\n <BaseDialogTrigger\n {...args}\n trigger={\n <span className=\"custom-class\" onClick={parameters.customOnClick}>\n Open modal\n </span>\n }\n />\n );\n },\n play: async ({ canvasElement, args, parameters }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(trigger).toHaveClass(\"custom-class\");\n\n expect(parameters.customOnClick).toHaveBeenCalledTimes(0);\n await userEvent.click(trigger);\n expect(parameters.customOnClick).toHaveBeenCalledTimes(1);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\n// tests that a trigger that's nested in a div (e.g. a <span>) can trigger open the dialog on click\n// Also tests that either of nested triggers can be made non-triggerable via e.stopPropagation\nexport const WithNestedTrigger: Story = {\n args: {\n dialog: (\n <DefaultModalContent\n isDismissable={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n trigger: (\n <div>\n <span tabIndex={0}>Open modal</span>\n <span tabIndex={0} onClick={(e) => e.stopPropagation()}>\n Open modal\n </span>\n <span tabIndex={0}>Open modal</span>\n </div>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const triggers = canvas.getAllByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(triggers[0]);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n // Click again to dismiss\n await userEvent.click(triggers[0]);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n\n await userEvent.click(triggers[1]);\n\n // trigger # 2 stops propagation via e.stopPropagation. So, clicking on trigger # 2 should not open the dialog\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2); // not changed\n\n await userEvent.click(triggers[2]);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n expect(args.onOpenChange).toHaveBeenCalledTimes(3);\n\n await userEvent.keyboard(\"{Escape}\");\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n await userEvent.click(triggers[2]);\n expect(args.onOpenChange).toHaveBeenCalledTimes(5);\n },\n};\n\nexport const WithPopover: Story = {\n args: {\n trigger: <span tabIndex={0}>Open popover</span>, // anything can be used as a trigger\n dialog: <DefaultPopoverContent isKeyboardDismissDisabled={false} />,\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n // With keyboard navigation, press Space to open and Escape to dismiss\n await userEvent.tab();\n await expect(trigger).toHaveFocus();\n await userEvent.keyboard(\"[Space]\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(4);\n },\n};\n\nexport const WithPopoverNonModal: Story = {\n args: {\n trigger: <span>Open popover</span>, // anything can be used as a trigger\n dialog: (\n <DefaultPopoverContent\n isNonModal={true}\n isKeyboardDismissDisabled={false}\n />\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // popover should NOT close, because the outside can be interacted with without affecting the popover's open state\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.keyboard(\"{Escape}\");\n // dialog should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\nexport const ControlledDialog: Story = {\n args: {\n trigger: undefined,\n dialog: <DefaultPopoverContent />,\n },\n render: ({ isOpen, dialog }) => {\n const [open, setOpen] = useState(isOpen);\n return (\n <>\n <span onClick={() => setOpen((prev) => !prev)}>Toggle</span>\n <BaseDialogTrigger\n isOpen={open}\n onOpenChange={setOpen}\n dialog={dialog}\n />\n </>\n );\n },\n play: async ({ canvasElement }) => {\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n const canvas = within(canvasElement);\n const trigger = canvas.getByText(\"Toggle\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await trigger.click();\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await trigger.click();\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n },\n};\n\nexport const AriaButtonTrigger: Story = {\n args: {\n dialog: <DefaultModalContent isDismissable={true} />,\n trigger: <BaseButton>Open modal</BaseButton>,\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open modal\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n });\n\n await userEvent.click(document.body);\n\n // Modal should close\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n expect(args.onOpenChange).toHaveBeenCalledTimes(2);\n },\n};\n\nexport const SelectedInCanvas: Story = {\n args: {\n trigger: undefined,\n dialog: <DefaultPopoverContent isKeyboardDismissDisabled={false} />,\n },\n render: ({ __plasmic_selection_prop__, ...args }) => {\n const [selected, setSelected] = useState(false);\n const [selectedSlotName, setSelectedSlotName] = useState(\"\");\n useEffect(() => {\n setTimeout(() => {\n setSelected(true);\n setTimeout(() => {\n // Simulate trigger slot selection in Plasmic canvas\n setSelectedSlotName(\"trigger\");\n }, 1000);\n }, 1000);\n }, []);\n\n return (\n // Simulate Plasmic canvas envirnment\n <PlasmicCanvasContext.Provider\n value={{\n componentName: \"test\",\n globalVariants: {},\n }}\n >\n <BaseDialogTrigger\n // Simulate node selection in Plasmic canvas\n __plasmic_selection_prop__={{\n isSelected: selected,\n selectedSlotName,\n }}\n {...args}\n />\n </PlasmicCanvasContext.Provider>\n );\n },\n play: async () => {\n const consoleWarnSpy = spyOn(console, \"warn\").mockImplementation(() => { });\n\n // popovers are rendered outside canvas, so we need to use document.body\n const doc = within(document.body);\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).toBeInTheDocument();\n },\n { timeout: 1100 }\n );\n\n await waitFor(\n () => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n },\n { timeout: 1100 }\n ); // the slot selected is trigger, so the popover should close\n\n // This is to ensure that the warning \"A component changed from controlled to uncontrolled\" is not logged\n expect(consoleWarnSpy).not.toHaveBeenCalled();\n },\n};\n\nexport const PopoverPosition: Story = {\n args: {\n trigger: <span>Open popover</span>, // anything can be used as a trigger\n dialog: <DefaultPopoverContent />,\n },\n render: (args) => {\n const [className, setClassName] = useState<string | undefined>(\"popover\");\n useEffect(() => {\n setTimeout(() => {\n setClassName((prev) => `${prev} popover-right`);\n }, 1000);\n }, []);\n\n return (\n <>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n .popover {\n display: inline-block;\n }\n .popover-right {\n position: absolute;\n right: 0;\n }\n `,\n }}\n />\n <BaseDialogTrigger {...args} className={className} />\n </>\n );\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const doc = within(document.body);\n const trigger = canvas.getByText(\"Open popover\");\n\n await waitFor(() => {\n expect(doc.queryByTestId(\"dialog-content\")).not.toBeInTheDocument();\n });\n\n await userEvent.click(trigger);\n\n let initialPopoverLeftPosition: number;\n\n // Check that tooltip appears\n await waitFor(() => {\n const popover = doc.getByTestId(\"dialog-content\");\n initialPopoverLeftPosition = popover.getBoundingClientRect().left;\n });\n\n await userEvent.click(trigger); // toggle close\n\n await sleep(500);\n await userEvent.click(trigger);\n\n await waitFor(async () => {\n const popover = doc.getByTestId(\"dialog-content\");\n expect(initialPopoverLeftPosition).toEqual(\n popover.getBoundingClientRect().left\n ); // opens again at exactly the same position\n });\n\n await userEvent.click(trigger); // toggle close\n\n await sleep(500);\n await userEvent.click(trigger);\n\n await waitFor(() => {\n const popover = doc.getByTestId(\"dialog-content\");\n expect(initialPopoverLeftPosition).not.toEqual(\n popover.getBoundingClientRect().left\n ); // opens at a different position because the position of the trigger changed\n });\n },\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var reactAriaComponents = require('react-aria-components');
|
|
5
|
-
var utils = require('./utils-
|
|
5
|
+
var utils = require('./utils-91eee672.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@plasmicapp/host/registerComponent');
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FieldError } from 'react-aria-components';
|
|
3
|
-
import { r as registerComponentHelper, m as makeComponentName } from './utils-
|
|
3
|
+
import { r as registerComponentHelper, m as makeComponentName } from './utils-59f72eb9.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@plasmicapp/host/registerComponent';
|
|
6
6
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var reactAriaComponents = require('react-aria-components');
|
|
5
|
-
var utils = require('./utils-
|
|
5
|
+
var utils = require('./utils-91eee672.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@plasmicapp/host/registerComponent');
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Form } from 'react-aria-components';
|
|
3
|
-
import { r as registerComponentHelper, m as makeComponentName } from './utils-
|
|
3
|
+
import { r as registerComponentHelper, m as makeComponentName } from './utils-59f72eb9.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@plasmicapp/host/registerComponent';
|
|
6
6
|
|