@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
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var host = require('@plasmicapp/host');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var reactAriaComponents = require('react-aria-components');
|
|
6
|
-
var common = require('./common-
|
|
7
|
-
var utils = require('./utils-
|
|
6
|
+
var common = require('./common-c8beb360.cjs.js');
|
|
7
|
+
var utils = require('./utils-91eee672.cjs.js');
|
|
8
8
|
require('@plasmicapp/host/registerComponent');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { usePlasmicCanvasContext } from '@plasmicapp/host';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Dialog } from 'react-aria-components';
|
|
4
|
-
import { C as COMMON_STYLES } from './common-
|
|
5
|
-
import { m as makeComponentName, r as registerComponentHelper } from './utils-
|
|
4
|
+
import { C as COMMON_STYLES } from './common-10d1b069.esm.js';
|
|
5
|
+
import { m as makeComponentName, r as registerComponentHelper } from './utils-59f72eb9.esm.js';
|
|
6
6
|
import '@plasmicapp/host/registerComponent';
|
|
7
7
|
|
|
8
8
|
function BaseDialog({ children, className }) {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var host = require('@plasmicapp/host');
|
|
4
3
|
var React = require('react');
|
|
4
|
+
var reactAria = require('react-aria');
|
|
5
5
|
var reactAriaComponents = require('react-aria-components');
|
|
6
|
+
var common = require('./common-c8beb360.cjs.js');
|
|
6
7
|
var contexts = require('./contexts-6d0cb2b1.cjs.js');
|
|
7
8
|
var registerButton = require('./registerButton.cjs.js');
|
|
8
9
|
var registerDialog = require('./registerDialog.cjs.js');
|
|
9
10
|
var registerModal = require('./registerModal.cjs.js');
|
|
10
|
-
var utils = require('./utils-
|
|
11
|
-
require('
|
|
12
|
-
require('./common-b3b54c72.cjs.js');
|
|
11
|
+
var utils = require('./utils-91eee672.cjs.js');
|
|
12
|
+
require('@plasmicapp/host');
|
|
13
13
|
require('./variant-utils-0ad70db8.cjs.js');
|
|
14
14
|
require('@plasmicapp/host/registerComponent');
|
|
15
15
|
|
|
@@ -48,15 +48,28 @@ var __objRest = (source, exclude) => {
|
|
|
48
48
|
}
|
|
49
49
|
return target;
|
|
50
50
|
};
|
|
51
|
+
function TriggerWrapper({ children, className }) {
|
|
52
|
+
const ref = React__default.default.useRef(null);
|
|
53
|
+
const { buttonProps } = reactAria.useButton({}, ref);
|
|
54
|
+
const mergedProps = reactAria.mergeProps(buttonProps, {
|
|
55
|
+
ref,
|
|
56
|
+
// We expose className to allow user control over the wrapper div's styling.
|
|
57
|
+
className,
|
|
58
|
+
style: common.COMMON_STYLES
|
|
59
|
+
});
|
|
60
|
+
return /* @__PURE__ */ React__default.default.createElement("div", __spreadValues({}, mergedProps), children);
|
|
61
|
+
}
|
|
51
62
|
function BaseDialogTrigger(props) {
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
63
|
+
const _a = props, { trigger, dialog, isOpen, className, __plasmic_selection_prop__ } = _a, rest = __objRest(_a, ["trigger", "dialog", "isOpen", "className", "__plasmic_selection_prop__"]);
|
|
64
|
+
const isOpen2 = utils.useIsOpen({
|
|
65
|
+
triggerSlotName: "trigger",
|
|
66
|
+
isOpen,
|
|
67
|
+
__plasmic_selection_prop__
|
|
68
|
+
});
|
|
56
69
|
const mergedProps = __spreadProps(__spreadValues({}, rest), {
|
|
57
|
-
isOpen:
|
|
70
|
+
isOpen: isOpen2
|
|
58
71
|
});
|
|
59
|
-
return /* @__PURE__ */ React__default.default.createElement(contexts.PlasmicDialogTriggerContext.Provider, { value: mergedProps }, /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.DialogTrigger, __spreadValues({}, mergedProps), trigger, dialog));
|
|
72
|
+
return /* @__PURE__ */ React__default.default.createElement(contexts.PlasmicDialogTriggerContext.Provider, { value: mergedProps }, /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.DialogTrigger, __spreadValues({}, mergedProps), trigger && /* @__PURE__ */ React__default.default.createElement(TriggerWrapper, { className }, trigger), dialog));
|
|
60
73
|
}
|
|
61
74
|
function registerDialogTrigger(loader, overrides) {
|
|
62
75
|
utils.registerComponentHelper(
|
|
@@ -67,7 +80,6 @@ function registerDialogTrigger(loader, overrides) {
|
|
|
67
80
|
displayName: "Aria Dialog Trigger",
|
|
68
81
|
importPath: "@plasmicpkgs/react-aria/skinny/registerDialogTrigger",
|
|
69
82
|
importName: "BaseDialogTrigger",
|
|
70
|
-
styleSections: false,
|
|
71
83
|
props: {
|
|
72
84
|
trigger: {
|
|
73
85
|
type: "slot",
|
|
@@ -128,5 +140,6 @@ function registerDialogTrigger(loader, overrides) {
|
|
|
128
140
|
}
|
|
129
141
|
|
|
130
142
|
exports.BaseDialogTrigger = BaseDialogTrigger;
|
|
143
|
+
exports.TriggerWrapper = TriggerWrapper;
|
|
131
144
|
exports.registerDialogTrigger = registerDialogTrigger;
|
|
132
145
|
//# sourceMappingURL=registerDialogTrigger.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerDialogTrigger.cjs.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"registerDialogTrigger.cjs.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { mergeProps, useButton } from \"react-aria\";\nimport { DialogTrigger, DialogTriggerProps } from \"react-aria-components\";\nimport { COMMON_STYLES } from \"./common\";\nimport { PlasmicDialogTriggerContext } from \"./contexts\";\nimport { BUTTON_COMPONENT_NAME } from \"./registerButton\";\nimport { DIALOG_COMPONENT_NAME } from \"./registerDialog\";\nimport {\n MODAL_COMPONENT_NAME,\n MODAL_DEFAULT_SLOT_CONTENT,\n} from \"./registerModal\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n WithPlasmicCanvasComponentInfo,\n makeComponentName,\n registerComponentHelper,\n useIsOpen,\n} from \"./utils\";\n\nexport interface TriggerWrapperProps {\n children?: React.ReactNode;\n className?: string;\n}\n\n/*\n React Aria's DialogTrigger requires a Aria Button as trigger.\n (Aria Button works as a trigger because it uses useButton behind the scenes).\n So we use useButton as well for our custom trigger.\n\n Discussion (React-aria-components DialogTrigger with custom button):\n https://github.com/adobe/react-spectrum/discussions/5119#discussioncomment-7084661\n\n */\nexport function TriggerWrapper({ children, className }: TriggerWrapperProps) {\n const ref = React.useRef<HTMLDivElement | null>(null);\n const { buttonProps } = useButton({}, ref);\n\n const mergedProps = mergeProps(buttonProps, {\n ref,\n // We expose className to allow user control over the wrapper div's styling.\n className,\n style: COMMON_STYLES,\n });\n\n return <div {...mergedProps}>{children}</div>;\n}\n\nexport interface BaseDialogTriggerProps\n extends Omit<DialogTriggerProps, \"children\">,\n WithPlasmicCanvasComponentInfo {\n trigger?: React.ReactNode;\n dialog?: React.ReactNode;\n className?: string;\n}\n\nexport function BaseDialogTrigger(props: BaseDialogTriggerProps) {\n const { trigger, dialog, isOpen, className, __plasmic_selection_prop__, ...rest } =\n props;\n\n const isOpen2 = useIsOpen({\n triggerSlotName: \"trigger\",\n isOpen,\n __plasmic_selection_prop__,\n });\n\n const mergedProps = {\n ...rest,\n isOpen: isOpen2,\n };\n\n return (\n <PlasmicDialogTriggerContext.Provider value={mergedProps}>\n <DialogTrigger {...mergedProps}>\n {trigger && (\n <TriggerWrapper className={className}>{trigger}</TriggerWrapper>\n )}\n {dialog}\n </DialogTrigger>\n </PlasmicDialogTriggerContext.Provider>\n );\n}\n\nexport function registerDialogTrigger(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseDialogTrigger>\n) {\n registerComponentHelper(\n loader,\n BaseDialogTrigger,\n {\n name: makeComponentName(\"dialogTrigger\"),\n displayName: \"Aria Dialog Trigger\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerDialogTrigger\",\n importName: \"BaseDialogTrigger\",\n props: {\n trigger: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"component\",\n name: BUTTON_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Open Dialog\",\n },\n },\n },\n },\n dialog: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: [\n {\n type: \"component\",\n name: MODAL_COMPONENT_NAME,\n props: {\n children: {\n type: \"component\",\n name: DIALOG_COMPONENT_NAME,\n props: {\n children: MODAL_DEFAULT_SLOT_CONTENT,\n },\n },\n },\n },\n ],\n },\n isOpen: {\n type: \"boolean\",\n defaultValueHint: false,\n editOnly: true,\n uncontrolledProp: \"defaultOpen\",\n },\n onOpenChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isOpen\", type: \"boolean\" }],\n },\n },\n states: {\n isOpen: {\n type: \"writable\",\n valueProp: \"isOpen\",\n onChangeProp: \"onOpenChange\",\n variableType: \"boolean\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["React","useButton","mergeProps","COMMON_STYLES","useIsOpen","PlasmicDialogTriggerContext","DialogTrigger","registerComponentHelper","makeComponentName","BUTTON_COMPONENT_NAME","MODAL_COMPONENT_NAME","DIALOG_COMPONENT_NAME","MODAL_DEFAULT_SLOT_CONTENT"],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { DialogTriggerProps } from "react-aria-components";
|
|
3
3
|
import { CodeComponentMetaOverrides, Registerable, WithPlasmicCanvasComponentInfo } from "./utils";
|
|
4
|
+
export interface TriggerWrapperProps {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function TriggerWrapper({ children, className }: TriggerWrapperProps): React.JSX.Element;
|
|
4
9
|
export interface BaseDialogTriggerProps extends Omit<DialogTriggerProps, "children">, WithPlasmicCanvasComponentInfo {
|
|
5
10
|
trigger?: React.ReactNode;
|
|
6
11
|
dialog?: React.ReactNode;
|
|
12
|
+
className?: string;
|
|
7
13
|
}
|
|
8
14
|
export declare function BaseDialogTrigger(props: BaseDialogTriggerProps): React.JSX.Element;
|
|
9
15
|
export declare function registerDialogTrigger(loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseDialogTrigger>): void;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { usePlasmicCanvasComponentInfo } from '@plasmicapp/host';
|
|
2
1
|
import React from 'react';
|
|
2
|
+
import { useButton, mergeProps } from 'react-aria';
|
|
3
3
|
import { DialogTrigger } from 'react-aria-components';
|
|
4
|
+
import { C as COMMON_STYLES } from './common-10d1b069.esm.js';
|
|
4
5
|
import { d as PlasmicDialogTriggerContext } from './contexts-5cb81c2f.esm.js';
|
|
5
6
|
import { BUTTON_COMPONENT_NAME } from './registerButton.esm.js';
|
|
6
7
|
import { DIALOG_COMPONENT_NAME } from './registerDialog.esm.js';
|
|
7
8
|
import { MODAL_COMPONENT_NAME, MODAL_DEFAULT_SLOT_CONTENT } from './registerModal.esm.js';
|
|
8
|
-
import { r as registerComponentHelper, m as makeComponentName } from './utils-
|
|
9
|
-
import '
|
|
10
|
-
import './common-ceebbaea.esm.js';
|
|
9
|
+
import { a as useIsOpen, r as registerComponentHelper, m as makeComponentName } from './utils-59f72eb9.esm.js';
|
|
10
|
+
import '@plasmicapp/host';
|
|
11
11
|
import './variant-utils-4405ebb0.esm.js';
|
|
12
12
|
import '@plasmicapp/host/registerComponent';
|
|
13
13
|
|
|
@@ -42,15 +42,28 @@ var __objRest = (source, exclude) => {
|
|
|
42
42
|
}
|
|
43
43
|
return target;
|
|
44
44
|
};
|
|
45
|
+
function TriggerWrapper({ children, className }) {
|
|
46
|
+
const ref = React.useRef(null);
|
|
47
|
+
const { buttonProps } = useButton({}, ref);
|
|
48
|
+
const mergedProps = mergeProps(buttonProps, {
|
|
49
|
+
ref,
|
|
50
|
+
// We expose className to allow user control over the wrapper div's styling.
|
|
51
|
+
className,
|
|
52
|
+
style: COMMON_STYLES
|
|
53
|
+
});
|
|
54
|
+
return /* @__PURE__ */ React.createElement("div", __spreadValues({}, mergedProps), children);
|
|
55
|
+
}
|
|
45
56
|
function BaseDialogTrigger(props) {
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
const _a = props, { trigger, dialog, isOpen, className, __plasmic_selection_prop__ } = _a, rest = __objRest(_a, ["trigger", "dialog", "isOpen", "className", "__plasmic_selection_prop__"]);
|
|
58
|
+
const isOpen2 = useIsOpen({
|
|
59
|
+
triggerSlotName: "trigger",
|
|
60
|
+
isOpen,
|
|
61
|
+
__plasmic_selection_prop__
|
|
62
|
+
});
|
|
50
63
|
const mergedProps = __spreadProps(__spreadValues({}, rest), {
|
|
51
|
-
isOpen:
|
|
64
|
+
isOpen: isOpen2
|
|
52
65
|
});
|
|
53
|
-
return /* @__PURE__ */ React.createElement(PlasmicDialogTriggerContext.Provider, { value: mergedProps }, /* @__PURE__ */ React.createElement(DialogTrigger, __spreadValues({}, mergedProps), trigger, dialog));
|
|
66
|
+
return /* @__PURE__ */ React.createElement(PlasmicDialogTriggerContext.Provider, { value: mergedProps }, /* @__PURE__ */ React.createElement(DialogTrigger, __spreadValues({}, mergedProps), trigger && /* @__PURE__ */ React.createElement(TriggerWrapper, { className }, trigger), dialog));
|
|
54
67
|
}
|
|
55
68
|
function registerDialogTrigger(loader, overrides) {
|
|
56
69
|
registerComponentHelper(
|
|
@@ -61,7 +74,6 @@ function registerDialogTrigger(loader, overrides) {
|
|
|
61
74
|
displayName: "Aria Dialog Trigger",
|
|
62
75
|
importPath: "@plasmicpkgs/react-aria/skinny/registerDialogTrigger",
|
|
63
76
|
importName: "BaseDialogTrigger",
|
|
64
|
-
styleSections: false,
|
|
65
77
|
props: {
|
|
66
78
|
trigger: {
|
|
67
79
|
type: "slot",
|
|
@@ -121,5 +133,5 @@ function registerDialogTrigger(loader, overrides) {
|
|
|
121
133
|
);
|
|
122
134
|
}
|
|
123
135
|
|
|
124
|
-
export { BaseDialogTrigger, registerDialogTrigger };
|
|
136
|
+
export { BaseDialogTrigger, TriggerWrapper, registerDialogTrigger };
|
|
125
137
|
//# sourceMappingURL=registerDialogTrigger.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerDialogTrigger.esm.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"registerDialogTrigger.esm.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { mergeProps, useButton } from \"react-aria\";\nimport { DialogTrigger, DialogTriggerProps } from \"react-aria-components\";\nimport { COMMON_STYLES } from \"./common\";\nimport { PlasmicDialogTriggerContext } from \"./contexts\";\nimport { BUTTON_COMPONENT_NAME } from \"./registerButton\";\nimport { DIALOG_COMPONENT_NAME } from \"./registerDialog\";\nimport {\n MODAL_COMPONENT_NAME,\n MODAL_DEFAULT_SLOT_CONTENT,\n} from \"./registerModal\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n WithPlasmicCanvasComponentInfo,\n makeComponentName,\n registerComponentHelper,\n useIsOpen,\n} from \"./utils\";\n\nexport interface TriggerWrapperProps {\n children?: React.ReactNode;\n className?: string;\n}\n\n/*\n React Aria's DialogTrigger requires a Aria Button as trigger.\n (Aria Button works as a trigger because it uses useButton behind the scenes).\n So we use useButton as well for our custom trigger.\n\n Discussion (React-aria-components DialogTrigger with custom button):\n https://github.com/adobe/react-spectrum/discussions/5119#discussioncomment-7084661\n\n */\nexport function TriggerWrapper({ children, className }: TriggerWrapperProps) {\n const ref = React.useRef<HTMLDivElement | null>(null);\n const { buttonProps } = useButton({}, ref);\n\n const mergedProps = mergeProps(buttonProps, {\n ref,\n // We expose className to allow user control over the wrapper div's styling.\n className,\n style: COMMON_STYLES,\n });\n\n return <div {...mergedProps}>{children}</div>;\n}\n\nexport interface BaseDialogTriggerProps\n extends Omit<DialogTriggerProps, \"children\">,\n WithPlasmicCanvasComponentInfo {\n trigger?: React.ReactNode;\n dialog?: React.ReactNode;\n className?: string;\n}\n\nexport function BaseDialogTrigger(props: BaseDialogTriggerProps) {\n const { trigger, dialog, isOpen, className, __plasmic_selection_prop__, ...rest } =\n props;\n\n const isOpen2 = useIsOpen({\n triggerSlotName: \"trigger\",\n isOpen,\n __plasmic_selection_prop__,\n });\n\n const mergedProps = {\n ...rest,\n isOpen: isOpen2,\n };\n\n return (\n <PlasmicDialogTriggerContext.Provider value={mergedProps}>\n <DialogTrigger {...mergedProps}>\n {trigger && (\n <TriggerWrapper className={className}>{trigger}</TriggerWrapper>\n )}\n {dialog}\n </DialogTrigger>\n </PlasmicDialogTriggerContext.Provider>\n );\n}\n\nexport function registerDialogTrigger(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseDialogTrigger>\n) {\n registerComponentHelper(\n loader,\n BaseDialogTrigger,\n {\n name: makeComponentName(\"dialogTrigger\"),\n displayName: \"Aria Dialog Trigger\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerDialogTrigger\",\n importName: \"BaseDialogTrigger\",\n props: {\n trigger: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"component\",\n name: BUTTON_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Open Dialog\",\n },\n },\n },\n },\n dialog: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: [\n {\n type: \"component\",\n name: MODAL_COMPONENT_NAME,\n props: {\n children: {\n type: \"component\",\n name: DIALOG_COMPONENT_NAME,\n props: {\n children: MODAL_DEFAULT_SLOT_CONTENT,\n },\n },\n },\n },\n ],\n },\n isOpen: {\n type: \"boolean\",\n defaultValueHint: false,\n editOnly: true,\n uncontrolledProp: \"defaultOpen\",\n },\n onOpenChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isOpen\", type: \"boolean\" }],\n },\n },\n states: {\n isOpen: {\n type: \"writable\",\n valueProp: \"isOpen\",\n onChangeProp: \"onOpenChange\",\n variableType: \"boolean\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ var registerModal = require('./registerModal.cjs.js');
|
|
|
12
12
|
var registerPopover = require('./registerPopover.cjs.js');
|
|
13
13
|
require('react-aria');
|
|
14
14
|
require('react-aria-components');
|
|
15
|
-
require('./common-
|
|
16
|
-
require('./utils-
|
|
15
|
+
require('./common-c8beb360.cjs.js');
|
|
16
|
+
require('./utils-91eee672.cjs.js');
|
|
17
17
|
require('@plasmicapp/host/registerComponent');
|
|
18
18
|
require('./variant-utils-0ad70db8.cjs.js');
|
|
19
19
|
require('./contexts-6d0cb2b1.cjs.js');
|
|
@@ -24,6 +24,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
24
24
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
25
25
|
|
|
26
26
|
var __defProp = Object.defineProperty;
|
|
27
|
+
var __defProps = Object.defineProperties;
|
|
28
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
27
29
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
28
30
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
29
31
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -39,6 +41,7 @@ var __spreadValues = (a, b) => {
|
|
|
39
41
|
}
|
|
40
42
|
return a;
|
|
41
43
|
};
|
|
44
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
42
45
|
var __objRest = (source, exclude) => {
|
|
43
46
|
var target = {};
|
|
44
47
|
for (var prop in source)
|
|
@@ -59,20 +62,32 @@ const meta = {
|
|
|
59
62
|
onOpenChange: test.fn()
|
|
60
63
|
}
|
|
61
64
|
};
|
|
65
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
62
66
|
const DefaultContent = () => /* @__PURE__ */ React__default.default.createElement("div", { "data-testid": "dialog-content" }, /* @__PURE__ */ React__default.default.createElement("h2", null, "Dialog Title"), /* @__PURE__ */ React__default.default.createElement("p", null, "Dialog content goes here"));
|
|
67
|
+
const DefaultPopoverContent = (props) => /* @__PURE__ */ React__default.default.createElement(registerPopover.BasePopover, __spreadValues({}, props), /* @__PURE__ */ React__default.default.createElement(registerDialog.BaseDialog, null, /* @__PURE__ */ React__default.default.createElement(DefaultContent, null)));
|
|
68
|
+
const DefaultModalContent = (props) => /* @__PURE__ */ React__default.default.createElement(registerModal.BaseModal, __spreadValues({}, props), /* @__PURE__ */ React__default.default.createElement(registerDialog.BaseDialog, null, /* @__PURE__ */ React__default.default.createElement(DefaultContent, null)));
|
|
63
69
|
const WithModal = {
|
|
64
70
|
args: {
|
|
65
|
-
trigger: /* @__PURE__ */ React__default.default.createElement(
|
|
66
|
-
|
|
71
|
+
trigger: /* @__PURE__ */ React__default.default.createElement("span", { tabIndex: 0 }, "Open modal"),
|
|
72
|
+
// anything can be used as a trigger
|
|
73
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(
|
|
74
|
+
DefaultModalContent,
|
|
75
|
+
{
|
|
76
|
+
defaultOpen: true,
|
|
77
|
+
isOpen: true,
|
|
78
|
+
isDismissable: true,
|
|
79
|
+
isKeyboardDismissDisabled: false
|
|
80
|
+
}
|
|
81
|
+
)
|
|
67
82
|
},
|
|
68
83
|
play: async ({ canvasElement, args }) => {
|
|
69
84
|
const canvas = test.within(canvasElement);
|
|
70
85
|
const doc = test.within(document.body);
|
|
71
|
-
const
|
|
86
|
+
const trigger = canvas.getByText("Open modal");
|
|
72
87
|
await test.waitFor(() => {
|
|
73
88
|
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
74
89
|
});
|
|
75
|
-
await test.userEvent.click(
|
|
90
|
+
await test.userEvent.click(trigger);
|
|
76
91
|
await test.waitFor(() => {
|
|
77
92
|
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
78
93
|
});
|
|
@@ -80,7 +95,12 @@ const WithModal = {
|
|
|
80
95
|
await test.waitFor(() => {
|
|
81
96
|
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
82
97
|
});
|
|
83
|
-
await test.userEvent.
|
|
98
|
+
await test.userEvent.tab();
|
|
99
|
+
test.expect(trigger).toHaveFocus();
|
|
100
|
+
await test.waitFor(() => {
|
|
101
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
102
|
+
});
|
|
103
|
+
await test.userEvent.keyboard("[Space]");
|
|
84
104
|
await test.waitFor(() => {
|
|
85
105
|
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
86
106
|
});
|
|
@@ -91,19 +111,105 @@ const WithModal = {
|
|
|
91
111
|
test.expect(args.onOpenChange).toHaveBeenCalledTimes(4);
|
|
92
112
|
}
|
|
93
113
|
};
|
|
114
|
+
const TriggerWithCustomEventHandler = {
|
|
115
|
+
args: {
|
|
116
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(
|
|
117
|
+
DefaultModalContent,
|
|
118
|
+
{
|
|
119
|
+
isDismissable: true,
|
|
120
|
+
isKeyboardDismissDisabled: false
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
},
|
|
124
|
+
parameters: {
|
|
125
|
+
customOnClick: test.fn()
|
|
126
|
+
},
|
|
127
|
+
render: (args, { parameters }) => {
|
|
128
|
+
return /* @__PURE__ */ React__default.default.createElement(
|
|
129
|
+
registerDialogTrigger.BaseDialogTrigger,
|
|
130
|
+
__spreadProps(__spreadValues({}, args), {
|
|
131
|
+
trigger: /* @__PURE__ */ React__default.default.createElement("span", { className: "custom-class", onClick: parameters.customOnClick }, "Open modal")
|
|
132
|
+
})
|
|
133
|
+
);
|
|
134
|
+
},
|
|
135
|
+
play: async ({ canvasElement, args, parameters }) => {
|
|
136
|
+
const canvas = test.within(canvasElement);
|
|
137
|
+
const doc = test.within(document.body);
|
|
138
|
+
const trigger = canvas.getByText("Open modal");
|
|
139
|
+
await test.waitFor(() => {
|
|
140
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
141
|
+
});
|
|
142
|
+
test.expect(trigger).toHaveClass("custom-class");
|
|
143
|
+
test.expect(parameters.customOnClick).toHaveBeenCalledTimes(0);
|
|
144
|
+
await test.userEvent.click(trigger);
|
|
145
|
+
test.expect(parameters.customOnClick).toHaveBeenCalledTimes(1);
|
|
146
|
+
await test.waitFor(() => {
|
|
147
|
+
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
148
|
+
});
|
|
149
|
+
await test.userEvent.click(document.body);
|
|
150
|
+
await test.waitFor(() => {
|
|
151
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
152
|
+
});
|
|
153
|
+
test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
const WithNestedTrigger = {
|
|
157
|
+
args: {
|
|
158
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(
|
|
159
|
+
DefaultModalContent,
|
|
160
|
+
{
|
|
161
|
+
isDismissable: true,
|
|
162
|
+
isKeyboardDismissDisabled: false
|
|
163
|
+
}
|
|
164
|
+
),
|
|
165
|
+
trigger: /* @__PURE__ */ React__default.default.createElement("div", null, /* @__PURE__ */ React__default.default.createElement("span", { tabIndex: 0 }, "Open modal"), /* @__PURE__ */ React__default.default.createElement("span", { tabIndex: 0, onClick: (e) => e.stopPropagation() }, "Open modal"), /* @__PURE__ */ React__default.default.createElement("span", { tabIndex: 0 }, "Open modal"))
|
|
166
|
+
},
|
|
167
|
+
play: async ({ canvasElement, args }) => {
|
|
168
|
+
const canvas = test.within(canvasElement);
|
|
169
|
+
const doc = test.within(document.body);
|
|
170
|
+
const triggers = canvas.getAllByText("Open modal");
|
|
171
|
+
await test.waitFor(() => {
|
|
172
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
173
|
+
});
|
|
174
|
+
await test.userEvent.click(triggers[0]);
|
|
175
|
+
await test.waitFor(() => {
|
|
176
|
+
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
177
|
+
});
|
|
178
|
+
await test.userEvent.click(triggers[0]);
|
|
179
|
+
await test.waitFor(() => {
|
|
180
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
181
|
+
});
|
|
182
|
+
test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
183
|
+
await test.userEvent.click(triggers[1]);
|
|
184
|
+
await test.waitFor(() => {
|
|
185
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
186
|
+
});
|
|
187
|
+
test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
188
|
+
await test.userEvent.click(triggers[2]);
|
|
189
|
+
await test.waitFor(() => {
|
|
190
|
+
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
191
|
+
});
|
|
192
|
+
test.expect(args.onOpenChange).toHaveBeenCalledTimes(3);
|
|
193
|
+
await test.userEvent.keyboard("{Escape}");
|
|
194
|
+
test.expect(args.onOpenChange).toHaveBeenCalledTimes(4);
|
|
195
|
+
await test.userEvent.click(triggers[2]);
|
|
196
|
+
test.expect(args.onOpenChange).toHaveBeenCalledTimes(5);
|
|
197
|
+
}
|
|
198
|
+
};
|
|
94
199
|
const WithPopover = {
|
|
95
200
|
args: {
|
|
96
|
-
trigger: /* @__PURE__ */ React__default.default.createElement(
|
|
97
|
-
|
|
201
|
+
trigger: /* @__PURE__ */ React__default.default.createElement("span", { tabIndex: 0 }, "Open popover"),
|
|
202
|
+
// anything can be used as a trigger
|
|
203
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, { isKeyboardDismissDisabled: false })
|
|
98
204
|
},
|
|
99
205
|
play: async ({ canvasElement, args }) => {
|
|
100
206
|
const canvas = test.within(canvasElement);
|
|
101
207
|
const doc = test.within(document.body);
|
|
102
|
-
const
|
|
208
|
+
const trigger = canvas.getByText("Open popover");
|
|
103
209
|
await test.waitFor(() => {
|
|
104
210
|
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
105
211
|
});
|
|
106
|
-
await test.userEvent.click(
|
|
212
|
+
await test.userEvent.click(trigger);
|
|
107
213
|
await test.waitFor(() => {
|
|
108
214
|
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
109
215
|
});
|
|
@@ -111,7 +217,9 @@ const WithPopover = {
|
|
|
111
217
|
await test.waitFor(() => {
|
|
112
218
|
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
113
219
|
});
|
|
114
|
-
await test.userEvent.
|
|
220
|
+
await test.userEvent.tab();
|
|
221
|
+
await test.expect(trigger).toHaveFocus();
|
|
222
|
+
await test.userEvent.keyboard("[Space]");
|
|
115
223
|
await test.waitFor(() => {
|
|
116
224
|
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
117
225
|
});
|
|
@@ -124,17 +232,24 @@ const WithPopover = {
|
|
|
124
232
|
};
|
|
125
233
|
const WithPopoverNonModal = {
|
|
126
234
|
args: {
|
|
127
|
-
trigger: /* @__PURE__ */ React__default.default.createElement(
|
|
128
|
-
|
|
235
|
+
trigger: /* @__PURE__ */ React__default.default.createElement("span", null, "Open popover"),
|
|
236
|
+
// anything can be used as a trigger
|
|
237
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(
|
|
238
|
+
DefaultPopoverContent,
|
|
239
|
+
{
|
|
240
|
+
isNonModal: true,
|
|
241
|
+
isKeyboardDismissDisabled: false
|
|
242
|
+
}
|
|
243
|
+
)
|
|
129
244
|
},
|
|
130
245
|
play: async ({ canvasElement, args }) => {
|
|
131
246
|
const canvas = test.within(canvasElement);
|
|
132
247
|
const doc = test.within(document.body);
|
|
133
|
-
const
|
|
248
|
+
const trigger = canvas.getByText("Open popover");
|
|
134
249
|
await test.waitFor(() => {
|
|
135
250
|
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
136
251
|
});
|
|
137
|
-
await test.userEvent.click(
|
|
252
|
+
await test.userEvent.click(trigger);
|
|
138
253
|
await test.waitFor(() => {
|
|
139
254
|
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
140
255
|
});
|
|
@@ -149,10 +264,66 @@ const WithPopoverNonModal = {
|
|
|
149
264
|
test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
150
265
|
}
|
|
151
266
|
};
|
|
267
|
+
const ControlledDialog = {
|
|
268
|
+
args: {
|
|
269
|
+
trigger: void 0,
|
|
270
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, null)
|
|
271
|
+
},
|
|
272
|
+
render: ({ isOpen, dialog }) => {
|
|
273
|
+
const [open, setOpen] = React.useState(isOpen);
|
|
274
|
+
return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement("span", { onClick: () => setOpen((prev) => !prev) }, "Toggle"), /* @__PURE__ */ React__default.default.createElement(
|
|
275
|
+
registerDialogTrigger.BaseDialogTrigger,
|
|
276
|
+
{
|
|
277
|
+
isOpen: open,
|
|
278
|
+
onOpenChange: setOpen,
|
|
279
|
+
dialog
|
|
280
|
+
}
|
|
281
|
+
));
|
|
282
|
+
},
|
|
283
|
+
play: async ({ canvasElement }) => {
|
|
284
|
+
const doc = test.within(document.body);
|
|
285
|
+
const canvas = test.within(canvasElement);
|
|
286
|
+
const trigger = canvas.getByText("Toggle");
|
|
287
|
+
await test.waitFor(() => {
|
|
288
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
289
|
+
});
|
|
290
|
+
await trigger.click();
|
|
291
|
+
await test.waitFor(() => {
|
|
292
|
+
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
293
|
+
});
|
|
294
|
+
await trigger.click();
|
|
295
|
+
await test.waitFor(() => {
|
|
296
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
const AriaButtonTrigger = {
|
|
301
|
+
args: {
|
|
302
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(DefaultModalContent, { isDismissable: true }),
|
|
303
|
+
trigger: /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, null, "Open modal")
|
|
304
|
+
},
|
|
305
|
+
play: async ({ canvasElement, args }) => {
|
|
306
|
+
const canvas = test.within(canvasElement);
|
|
307
|
+
const doc = test.within(document.body);
|
|
308
|
+
const trigger = canvas.getByText("Open modal");
|
|
309
|
+
await test.waitFor(() => {
|
|
310
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
311
|
+
});
|
|
312
|
+
await test.userEvent.click(trigger);
|
|
313
|
+
await test.waitFor(() => {
|
|
314
|
+
test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
|
|
315
|
+
});
|
|
316
|
+
await test.userEvent.click(document.body);
|
|
317
|
+
await test.waitFor(() => {
|
|
318
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
319
|
+
});
|
|
320
|
+
test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
152
323
|
const SelectedInCanvas = {
|
|
153
324
|
args: {
|
|
154
|
-
trigger:
|
|
155
|
-
dialog: /* @__PURE__ */ React__default.default.createElement(
|
|
325
|
+
trigger: void 0,
|
|
326
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, { isKeyboardDismissDisabled: false })
|
|
156
327
|
},
|
|
157
328
|
render: (_a) => {
|
|
158
329
|
var _b = _a, args = __objRest(_b, ["__plasmic_selection_prop__"]);
|
|
@@ -189,6 +360,8 @@ const SelectedInCanvas = {
|
|
|
189
360
|
);
|
|
190
361
|
},
|
|
191
362
|
play: async () => {
|
|
363
|
+
const consoleWarnSpy = test.spyOn(console, "warn").mockImplementation(() => {
|
|
364
|
+
});
|
|
192
365
|
const doc = test.within(document.body);
|
|
193
366
|
await test.waitFor(() => {
|
|
194
367
|
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
@@ -205,11 +378,80 @@ const SelectedInCanvas = {
|
|
|
205
378
|
},
|
|
206
379
|
{ timeout: 1100 }
|
|
207
380
|
);
|
|
381
|
+
test.expect(consoleWarnSpy).not.toHaveBeenCalled();
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
const PopoverPosition = {
|
|
385
|
+
args: {
|
|
386
|
+
trigger: /* @__PURE__ */ React__default.default.createElement("span", null, "Open popover"),
|
|
387
|
+
// anything can be used as a trigger
|
|
388
|
+
dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, null)
|
|
389
|
+
},
|
|
390
|
+
render: (args) => {
|
|
391
|
+
const [className, setClassName] = React.useState("popover");
|
|
392
|
+
React.useEffect(() => {
|
|
393
|
+
setTimeout(() => {
|
|
394
|
+
setClassName((prev) => `${prev} popover-right`);
|
|
395
|
+
}, 1e3);
|
|
396
|
+
}, []);
|
|
397
|
+
return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(
|
|
398
|
+
"style",
|
|
399
|
+
{
|
|
400
|
+
dangerouslySetInnerHTML: {
|
|
401
|
+
__html: `
|
|
402
|
+
.popover {
|
|
403
|
+
display: inline-block;
|
|
404
|
+
}
|
|
405
|
+
.popover-right {
|
|
406
|
+
position: absolute;
|
|
407
|
+
right: 0;
|
|
408
|
+
}
|
|
409
|
+
`
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
), /* @__PURE__ */ React__default.default.createElement(registerDialogTrigger.BaseDialogTrigger, __spreadProps(__spreadValues({}, args), { className })));
|
|
413
|
+
},
|
|
414
|
+
play: async ({ canvasElement }) => {
|
|
415
|
+
const canvas = test.within(canvasElement);
|
|
416
|
+
const doc = test.within(document.body);
|
|
417
|
+
const trigger = canvas.getByText("Open popover");
|
|
418
|
+
await test.waitFor(() => {
|
|
419
|
+
test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
|
|
420
|
+
});
|
|
421
|
+
await test.userEvent.click(trigger);
|
|
422
|
+
let initialPopoverLeftPosition;
|
|
423
|
+
await test.waitFor(() => {
|
|
424
|
+
const popover = doc.getByTestId("dialog-content");
|
|
425
|
+
initialPopoverLeftPosition = popover.getBoundingClientRect().left;
|
|
426
|
+
});
|
|
427
|
+
await test.userEvent.click(trigger);
|
|
428
|
+
await sleep(500);
|
|
429
|
+
await test.userEvent.click(trigger);
|
|
430
|
+
await test.waitFor(async () => {
|
|
431
|
+
const popover = doc.getByTestId("dialog-content");
|
|
432
|
+
test.expect(initialPopoverLeftPosition).toEqual(
|
|
433
|
+
popover.getBoundingClientRect().left
|
|
434
|
+
);
|
|
435
|
+
});
|
|
436
|
+
await test.userEvent.click(trigger);
|
|
437
|
+
await sleep(500);
|
|
438
|
+
await test.userEvent.click(trigger);
|
|
439
|
+
await test.waitFor(() => {
|
|
440
|
+
const popover = doc.getByTestId("dialog-content");
|
|
441
|
+
test.expect(initialPopoverLeftPosition).not.toEqual(
|
|
442
|
+
popover.getBoundingClientRect().left
|
|
443
|
+
);
|
|
444
|
+
});
|
|
208
445
|
}
|
|
209
446
|
};
|
|
210
447
|
|
|
448
|
+
exports.AriaButtonTrigger = AriaButtonTrigger;
|
|
449
|
+
exports.ControlledDialog = ControlledDialog;
|
|
450
|
+
exports.PopoverPosition = PopoverPosition;
|
|
211
451
|
exports.SelectedInCanvas = SelectedInCanvas;
|
|
452
|
+
exports.TriggerWithCustomEventHandler = TriggerWithCustomEventHandler;
|
|
212
453
|
exports.WithModal = WithModal;
|
|
454
|
+
exports.WithNestedTrigger = WithNestedTrigger;
|
|
213
455
|
exports.WithPopover = WithPopover;
|
|
214
456
|
exports.WithPopoverNonModal = WithPopoverNonModal;
|
|
215
457
|
exports.default = meta;
|