@plasmicpkgs/react-aria 0.0.112 → 0.0.113

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.
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/react-aria",
3
- "version": "0.0.112",
3
+ "version": "0.0.113",
4
4
  "description": "Plasmic registration calls for react-aria based components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -50,7 +50,6 @@
50
50
  "@react-aria/utils": "^3.24.0",
51
51
  "react-aria": "^3.33.0",
52
52
  "react-aria-components": "^1.2.0",
53
- "react-is": "^19.0.0",
54
53
  "react-keyed-flatten-children": "^3.0.0",
55
54
  "react-stately": "^3.31.0"
56
55
  },
@@ -61,7 +60,6 @@
61
60
  "@rollup/plugin-node-resolve": "^9.0.0",
62
61
  "@types/react": "^18.0.27",
63
62
  "@types/react-dom": "^18.0.10",
64
- "@types/react-is": "^19.0.0",
65
63
  "glob": "^8.1.0",
66
64
  "react": "^18.2.0",
67
65
  "react-dom": "^18.2.0",
@@ -76,5 +74,5 @@
76
74
  "publishConfig": {
77
75
  "access": "public"
78
76
  },
79
- "gitHead": "5250c8e2b194c67672d34c4366cd7de1ac842a49"
77
+ "gitHead": "426729813db7458ccbaced054ec11ba5ef8ae027"
80
78
  }
@@ -2,14 +2,14 @@
2
2
 
3
3
  var host = require('@plasmicapp/host');
4
4
  var React = require('react');
5
+ var reactAria = require('react-aria');
5
6
  var reactAriaComponents = require('react-aria-components');
7
+ var common = require('./common-b3b54c72.cjs.js');
6
8
  var contexts = require('./contexts-6d0cb2b1.cjs.js');
7
9
  var registerButton = require('./registerButton.cjs.js');
8
10
  var registerDialog = require('./registerDialog.cjs.js');
9
11
  var registerModal = require('./registerModal.cjs.js');
10
12
  var utils = require('./utils-7d000fa4.cjs.js');
11
- require('react-aria');
12
- require('./common-b3b54c72.cjs.js');
13
13
  require('./variant-utils-0ad70db8.cjs.js');
14
14
  require('@plasmicapp/host/registerComponent');
15
15
 
@@ -48,15 +48,26 @@ 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
63
  var _b, _c;
53
- const _a = props, { trigger, dialog, isOpen } = _a, rest = __objRest(_a, ["trigger", "dialog", "isOpen"]);
64
+ const _a = props, { trigger, dialog, isOpen, className } = _a, rest = __objRest(_a, ["trigger", "dialog", "isOpen", "className"]);
54
65
  const { isSelected, selectedSlotName } = (_c = (_b = host.usePlasmicCanvasComponentInfo) == null ? void 0 : _b(props)) != null ? _c : {};
55
66
  const isAutoOpen = selectedSlotName !== "trigger" && isSelected;
56
67
  const mergedProps = __spreadProps(__spreadValues({}, rest), {
57
68
  isOpen: isAutoOpen || isOpen
58
69
  });
59
- return /* @__PURE__ */ React__default.default.createElement(contexts.PlasmicDialogTriggerContext.Provider, { value: mergedProps }, /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.DialogTrigger, __spreadValues({}, mergedProps), trigger, dialog));
70
+ 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
71
  }
61
72
  function registerDialogTrigger(loader, overrides) {
62
73
  utils.registerComponentHelper(
@@ -67,7 +78,6 @@ function registerDialogTrigger(loader, overrides) {
67
78
  displayName: "Aria Dialog Trigger",
68
79
  importPath: "@plasmicpkgs/react-aria/skinny/registerDialogTrigger",
69
80
  importName: "BaseDialogTrigger",
70
- styleSections: false,
71
81
  props: {
72
82
  trigger: {
73
83
  type: "slot",
@@ -128,5 +138,6 @@ function registerDialogTrigger(loader, overrides) {
128
138
  }
129
139
 
130
140
  exports.BaseDialogTrigger = BaseDialogTrigger;
141
+ exports.TriggerWrapper = TriggerWrapper;
131
142
  exports.registerDialogTrigger = registerDialogTrigger;
132
143
  //# sourceMappingURL=registerDialogTrigger.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerDialogTrigger.cjs.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import { usePlasmicCanvasComponentInfo } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { DialogTrigger, DialogTriggerProps } from \"react-aria-components\";\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} from \"./utils\";\n\nexport interface BaseDialogTriggerProps\n extends Omit<DialogTriggerProps, \"children\">,\n WithPlasmicCanvasComponentInfo {\n trigger?: React.ReactNode;\n dialog?: React.ReactNode;\n}\n\nexport function BaseDialogTrigger(props: BaseDialogTriggerProps) {\n const { trigger, dialog, isOpen, ...rest } = props;\n\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.(props) ?? {};\n const isAutoOpen = selectedSlotName !== \"trigger\" && isSelected;\n\n const mergedProps = {\n ...rest,\n isOpen: isAutoOpen || isOpen,\n };\n\n return (\n <PlasmicDialogTriggerContext.Provider value={mergedProps}>\n <DialogTrigger {...mergedProps}>\n {trigger}\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 styleSections: false,\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":["usePlasmicCanvasComponentInfo","React","PlasmicDialogTriggerContext","DialogTrigger","registerComponentHelper","makeComponentName","BUTTON_COMPONENT_NAME","MODAL_COMPONENT_NAME","DIALOG_COMPONENT_NAME","MODAL_DEFAULT_SLOT_CONTENT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,SAAS,kBAAkB,KAA+B,EAAA;AAzBjE,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA0BE,EAA6C,MAAA,EAAA,GAAA,KAAA,EAArC,EAAS,OAAA,EAAA,MAAA,EAAQ,MA1B3B,EAAA,GA0B+C,IAAT,IAAS,GAAA,SAAA,CAAA,EAAA,EAAT,CAA5B,SAAA,EAAS,QAAQ,EAAA,QAAA,CAAA,CAAA,CAAA;AAEzB,EAAA,MAAM,EAAE,UAAY,EAAA,gBAAA,MAClB,EAAgC,GAAA,CAAA,EAAA,GAAAA,kCAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA,KAAhC,YAA0C,EAAC,CAAA;AAC7C,EAAM,MAAA,UAAA,GAAa,qBAAqB,SAAa,IAAA,UAAA,CAAA;AAErD,EAAM,MAAA,WAAA,GAAc,iCACf,IADe,CAAA,EAAA;AAAA,IAElB,QAAQ,UAAc,IAAA,MAAA;AAAA,GACxB,CAAA,CAAA;AAEA,EACE,uBAAAC,sBAAA,CAAA,aAAA,CAACC,oCAA4B,CAAA,QAAA,EAA5B,EAAqC,KAAA,EAAO,WAC3C,EAAA,kBAAAD,sBAAA,CAAA,aAAA,CAACE,iCAAkB,EAAA,cAAA,CAAA,EAAA,EAAA,WAAA,CAAA,EAChB,OACA,EAAA,MACH,CACF,CAAA,CAAA;AAEJ,CAAA;AAEgB,SAAA,qBAAA,CACd,QACA,SACA,EAAA;AACA,EAAAC,6BAAA;AAAA,IACE,MAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAMC,wBAAkB,eAAe,CAAA;AAAA,MACvC,WAAa,EAAA,qBAAA;AAAA,MACb,UAAY,EAAA,sDAAA;AAAA,MACZ,UAAY,EAAA,mBAAA;AAAA,MACZ,aAAe,EAAA,KAAA;AAAA,MACf,KAAO,EAAA;AAAA,QACL,OAAS,EAAA;AAAA,UACP,IAAM,EAAA,MAAA;AAAA,UACN,eAAiB,EAAA,IAAA;AAAA,UACjB,YAAc,EAAA;AAAA,YACZ,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAAC,oCAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,aAAA;AAAA,eACT;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,QACA,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,MAAA;AAAA,UACN,eAAiB,EAAA,IAAA;AAAA,UACjB,YAAc,EAAA;AAAA,YACZ;AAAA,cACE,IAAM,EAAA,WAAA;AAAA,cACN,IAAM,EAAAC,kCAAA;AAAA,cACN,KAAO,EAAA;AAAA,gBACL,QAAU,EAAA;AAAA,kBACR,IAAM,EAAA,WAAA;AAAA,kBACN,IAAM,EAAAC,oCAAA;AAAA,kBACN,KAAO,EAAA;AAAA,oBACL,QAAU,EAAAC,wCAAA;AAAA,mBACZ;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,QACA,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,SAAA;AAAA,UACN,gBAAkB,EAAA,KAAA;AAAA,UAClB,QAAU,EAAA,IAAA;AAAA,UACV,gBAAkB,EAAA,aAAA;AAAA,SACpB;AAAA,QACA,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,cAAA;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,QAAU,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,SAChD;AAAA,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,UAAA;AAAA,UACN,SAAW,EAAA,QAAA;AAAA,UACX,YAAc,EAAA,cAAA;AAAA,UACd,YAAc,EAAA,SAAA;AAAA,SAChB;AAAA,OACF;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;;"}
1
+ {"version":3,"file":"registerDialogTrigger.cjs.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import { usePlasmicCanvasComponentInfo } from \"@plasmicapp/host\";\nimport 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} 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, ...rest } = props;\n\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.(props) ?? {};\n const isAutoOpen = selectedSlotName !== \"trigger\" && isSelected;\n\n const mergedProps = {\n ...rest,\n isOpen: isAutoOpen || isOpen,\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","usePlasmicCanvasComponentInfo","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
1
  import { usePlasmicCanvasComponentInfo } from '@plasmicapp/host';
2
2
  import React from 'react';
3
+ import { useButton, mergeProps } from 'react-aria';
3
4
  import { DialogTrigger } from 'react-aria-components';
5
+ import { C as COMMON_STYLES } from './common-ceebbaea.esm.js';
4
6
  import { d as PlasmicDialogTriggerContext } from './contexts-5cb81c2f.esm.js';
5
7
  import { BUTTON_COMPONENT_NAME } from './registerButton.esm.js';
6
8
  import { DIALOG_COMPONENT_NAME } from './registerDialog.esm.js';
7
9
  import { MODAL_COMPONENT_NAME, MODAL_DEFAULT_SLOT_CONTENT } from './registerModal.esm.js';
8
10
  import { r as registerComponentHelper, m as makeComponentName } from './utils-5d1b4c6b.esm.js';
9
- import 'react-aria';
10
- import './common-ceebbaea.esm.js';
11
11
  import './variant-utils-4405ebb0.esm.js';
12
12
  import '@plasmicapp/host/registerComponent';
13
13
 
@@ -42,15 +42,26 @@ 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
57
  var _b, _c;
47
- const _a = props, { trigger, dialog, isOpen } = _a, rest = __objRest(_a, ["trigger", "dialog", "isOpen"]);
58
+ const _a = props, { trigger, dialog, isOpen, className } = _a, rest = __objRest(_a, ["trigger", "dialog", "isOpen", "className"]);
48
59
  const { isSelected, selectedSlotName } = (_c = (_b = usePlasmicCanvasComponentInfo) == null ? void 0 : _b(props)) != null ? _c : {};
49
60
  const isAutoOpen = selectedSlotName !== "trigger" && isSelected;
50
61
  const mergedProps = __spreadProps(__spreadValues({}, rest), {
51
62
  isOpen: isAutoOpen || isOpen
52
63
  });
53
- return /* @__PURE__ */ React.createElement(PlasmicDialogTriggerContext.Provider, { value: mergedProps }, /* @__PURE__ */ React.createElement(DialogTrigger, __spreadValues({}, mergedProps), trigger, dialog));
64
+ return /* @__PURE__ */ React.createElement(PlasmicDialogTriggerContext.Provider, { value: mergedProps }, /* @__PURE__ */ React.createElement(DialogTrigger, __spreadValues({}, mergedProps), trigger && /* @__PURE__ */ React.createElement(TriggerWrapper, { className }, trigger), dialog));
54
65
  }
55
66
  function registerDialogTrigger(loader, overrides) {
56
67
  registerComponentHelper(
@@ -61,7 +72,6 @@ function registerDialogTrigger(loader, overrides) {
61
72
  displayName: "Aria Dialog Trigger",
62
73
  importPath: "@plasmicpkgs/react-aria/skinny/registerDialogTrigger",
63
74
  importName: "BaseDialogTrigger",
64
- styleSections: false,
65
75
  props: {
66
76
  trigger: {
67
77
  type: "slot",
@@ -121,5 +131,5 @@ function registerDialogTrigger(loader, overrides) {
121
131
  );
122
132
  }
123
133
 
124
- export { BaseDialogTrigger, registerDialogTrigger };
134
+ export { BaseDialogTrigger, TriggerWrapper, registerDialogTrigger };
125
135
  //# sourceMappingURL=registerDialogTrigger.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerDialogTrigger.esm.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import { usePlasmicCanvasComponentInfo } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { DialogTrigger, DialogTriggerProps } from \"react-aria-components\";\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} from \"./utils\";\n\nexport interface BaseDialogTriggerProps\n extends Omit<DialogTriggerProps, \"children\">,\n WithPlasmicCanvasComponentInfo {\n trigger?: React.ReactNode;\n dialog?: React.ReactNode;\n}\n\nexport function BaseDialogTrigger(props: BaseDialogTriggerProps) {\n const { trigger, dialog, isOpen, ...rest } = props;\n\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.(props) ?? {};\n const isAutoOpen = selectedSlotName !== \"trigger\" && isSelected;\n\n const mergedProps = {\n ...rest,\n isOpen: isAutoOpen || isOpen,\n };\n\n return (\n <PlasmicDialogTriggerContext.Provider value={mergedProps}>\n <DialogTrigger {...mergedProps}>\n {trigger}\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 styleSections: false,\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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"}
1
+ {"version":3,"file":"registerDialogTrigger.esm.js","sources":["../src/registerDialogTrigger.tsx"],"sourcesContent":["import { usePlasmicCanvasComponentInfo } from \"@plasmicapp/host\";\nimport 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} 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, ...rest } = props;\n\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.(props) ?? {};\n const isAutoOpen = selectedSlotName !== \"trigger\" && isSelected;\n\n const mergedProps = {\n ...rest,\n isOpen: isAutoOpen || isOpen,\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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"}
@@ -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,30 @@ 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(registerButton.BaseButton, null, "Open modal"),
66
- dialog: /* @__PURE__ */ React__default.default.createElement(registerModal.BaseModal, { isDismissable: true, isKeyboardDismissDisabled: false }, /* @__PURE__ */ React__default.default.createElement(registerDialog.BaseDialog, null, /* @__PURE__ */ React__default.default.createElement(DefaultContent, null)))
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
+ isDismissable: true,
77
+ isKeyboardDismissDisabled: false
78
+ }
79
+ )
67
80
  },
68
81
  play: async ({ canvasElement, args }) => {
69
82
  const canvas = test.within(canvasElement);
70
83
  const doc = test.within(document.body);
71
- const button = canvas.getByText("Open modal");
84
+ const trigger = canvas.getByText("Open modal");
72
85
  await test.waitFor(() => {
73
86
  test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
74
87
  });
75
- await test.userEvent.click(button);
88
+ await test.userEvent.click(trigger);
76
89
  await test.waitFor(() => {
77
90
  test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
78
91
  });
@@ -80,7 +93,12 @@ const WithModal = {
80
93
  await test.waitFor(() => {
81
94
  test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
82
95
  });
83
- await test.userEvent.click(button);
96
+ await test.userEvent.tab();
97
+ test.expect(trigger).toHaveFocus();
98
+ await test.waitFor(() => {
99
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
100
+ });
101
+ await test.userEvent.keyboard("[Space]");
84
102
  await test.waitFor(() => {
85
103
  test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
86
104
  });
@@ -91,19 +109,105 @@ const WithModal = {
91
109
  test.expect(args.onOpenChange).toHaveBeenCalledTimes(4);
92
110
  }
93
111
  };
112
+ const TriggerWithCustomEventHandler = {
113
+ args: {
114
+ dialog: /* @__PURE__ */ React__default.default.createElement(
115
+ DefaultModalContent,
116
+ {
117
+ isDismissable: true,
118
+ isKeyboardDismissDisabled: false
119
+ }
120
+ )
121
+ },
122
+ parameters: {
123
+ customOnClick: test.fn()
124
+ },
125
+ render: (args, { parameters }) => {
126
+ return /* @__PURE__ */ React__default.default.createElement(
127
+ registerDialogTrigger.BaseDialogTrigger,
128
+ __spreadProps(__spreadValues({}, args), {
129
+ trigger: /* @__PURE__ */ React__default.default.createElement("span", { className: "custom-class", onClick: parameters.customOnClick }, "Open modal")
130
+ })
131
+ );
132
+ },
133
+ play: async ({ canvasElement, args, parameters }) => {
134
+ const canvas = test.within(canvasElement);
135
+ const doc = test.within(document.body);
136
+ const trigger = canvas.getByText("Open modal");
137
+ await test.waitFor(() => {
138
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
139
+ });
140
+ test.expect(trigger).toHaveClass("custom-class");
141
+ test.expect(parameters.customOnClick).toHaveBeenCalledTimes(0);
142
+ await test.userEvent.click(trigger);
143
+ test.expect(parameters.customOnClick).toHaveBeenCalledTimes(1);
144
+ await test.waitFor(() => {
145
+ test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
146
+ });
147
+ await test.userEvent.click(document.body);
148
+ await test.waitFor(() => {
149
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
150
+ });
151
+ test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
152
+ }
153
+ };
154
+ const WithNestedTrigger = {
155
+ args: {
156
+ dialog: /* @__PURE__ */ React__default.default.createElement(
157
+ DefaultModalContent,
158
+ {
159
+ isDismissable: true,
160
+ isKeyboardDismissDisabled: false
161
+ }
162
+ ),
163
+ 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"))
164
+ },
165
+ play: async ({ canvasElement, args }) => {
166
+ const canvas = test.within(canvasElement);
167
+ const doc = test.within(document.body);
168
+ const triggers = canvas.getAllByText("Open modal");
169
+ await test.waitFor(() => {
170
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
171
+ });
172
+ await test.userEvent.click(triggers[0]);
173
+ await test.waitFor(() => {
174
+ test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
175
+ });
176
+ await test.userEvent.click(triggers[0]);
177
+ await test.waitFor(() => {
178
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
179
+ });
180
+ test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
181
+ await test.userEvent.click(triggers[1]);
182
+ await test.waitFor(() => {
183
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
184
+ });
185
+ test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
186
+ await test.userEvent.click(triggers[2]);
187
+ await test.waitFor(() => {
188
+ test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
189
+ });
190
+ test.expect(args.onOpenChange).toHaveBeenCalledTimes(3);
191
+ await test.userEvent.keyboard("{Escape}");
192
+ test.expect(args.onOpenChange).toHaveBeenCalledTimes(4);
193
+ await test.userEvent.click(triggers[2]);
194
+ test.expect(args.onOpenChange).toHaveBeenCalledTimes(5);
195
+ }
196
+ };
94
197
  const WithPopover = {
95
198
  args: {
96
- trigger: /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, null, "Open popover"),
97
- dialog: /* @__PURE__ */ React__default.default.createElement(registerPopover.BasePopover, { isKeyboardDismissDisabled: false }, /* @__PURE__ */ React__default.default.createElement(registerDialog.BaseDialog, null, /* @__PURE__ */ React__default.default.createElement(DefaultContent, null)))
199
+ trigger: /* @__PURE__ */ React__default.default.createElement("span", { tabIndex: 0 }, "Open popover"),
200
+ // anything can be used as a trigger
201
+ dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, { isKeyboardDismissDisabled: false })
98
202
  },
99
203
  play: async ({ canvasElement, args }) => {
100
204
  const canvas = test.within(canvasElement);
101
205
  const doc = test.within(document.body);
102
- const button = canvas.getByText("Open popover");
206
+ const trigger = canvas.getByText("Open popover");
103
207
  await test.waitFor(() => {
104
208
  test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
105
209
  });
106
- await test.userEvent.click(button);
210
+ await test.userEvent.click(trigger);
107
211
  await test.waitFor(() => {
108
212
  test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
109
213
  });
@@ -111,7 +215,9 @@ const WithPopover = {
111
215
  await test.waitFor(() => {
112
216
  test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
113
217
  });
114
- await test.userEvent.click(button);
218
+ await test.userEvent.tab();
219
+ await test.expect(trigger).toHaveFocus();
220
+ await test.userEvent.keyboard("[Space]");
115
221
  await test.waitFor(() => {
116
222
  test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
117
223
  });
@@ -124,17 +230,24 @@ const WithPopover = {
124
230
  };
125
231
  const WithPopoverNonModal = {
126
232
  args: {
127
- trigger: /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, null, "Open popover"),
128
- dialog: /* @__PURE__ */ React__default.default.createElement(registerPopover.BasePopover, { isNonModal: true, isKeyboardDismissDisabled: false }, /* @__PURE__ */ React__default.default.createElement(registerDialog.BaseDialog, null, /* @__PURE__ */ React__default.default.createElement(DefaultContent, null)))
233
+ trigger: /* @__PURE__ */ React__default.default.createElement("span", null, "Open popover"),
234
+ // anything can be used as a trigger
235
+ dialog: /* @__PURE__ */ React__default.default.createElement(
236
+ DefaultPopoverContent,
237
+ {
238
+ isNonModal: true,
239
+ isKeyboardDismissDisabled: false
240
+ }
241
+ )
129
242
  },
130
243
  play: async ({ canvasElement, args }) => {
131
244
  const canvas = test.within(canvasElement);
132
245
  const doc = test.within(document.body);
133
- const button = canvas.getByText("Open popover");
246
+ const trigger = canvas.getByText("Open popover");
134
247
  await test.waitFor(() => {
135
248
  test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
136
249
  });
137
- await test.userEvent.click(button);
250
+ await test.userEvent.click(trigger);
138
251
  await test.waitFor(() => {
139
252
  test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
140
253
  });
@@ -149,10 +262,66 @@ const WithPopoverNonModal = {
149
262
  test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
150
263
  }
151
264
  };
265
+ const ControlledDialog = {
266
+ args: {
267
+ trigger: void 0,
268
+ dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, null)
269
+ },
270
+ render: ({ isOpen, dialog }) => {
271
+ const [open, setOpen] = React.useState(isOpen);
272
+ 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(
273
+ registerDialogTrigger.BaseDialogTrigger,
274
+ {
275
+ isOpen: open,
276
+ onOpenChange: setOpen,
277
+ dialog
278
+ }
279
+ ));
280
+ },
281
+ play: async ({ canvasElement }) => {
282
+ const doc = test.within(document.body);
283
+ const canvas = test.within(canvasElement);
284
+ const trigger = canvas.getByText("Toggle");
285
+ await test.waitFor(() => {
286
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
287
+ });
288
+ await trigger.click();
289
+ await test.waitFor(() => {
290
+ test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
291
+ });
292
+ await trigger.click();
293
+ await test.waitFor(() => {
294
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
295
+ });
296
+ }
297
+ };
298
+ const AriaButtonTrigger = {
299
+ args: {
300
+ dialog: /* @__PURE__ */ React__default.default.createElement(DefaultModalContent, { isDismissable: true }),
301
+ trigger: /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, null, "Open modal")
302
+ },
303
+ play: async ({ canvasElement, args }) => {
304
+ const canvas = test.within(canvasElement);
305
+ const doc = test.within(document.body);
306
+ const trigger = canvas.getByText("Open modal");
307
+ await test.waitFor(() => {
308
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
309
+ });
310
+ await test.userEvent.click(trigger);
311
+ await test.waitFor(() => {
312
+ test.expect(doc.queryByTestId("dialog-content")).toBeInTheDocument();
313
+ });
314
+ await test.userEvent.click(document.body);
315
+ await test.waitFor(() => {
316
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
317
+ });
318
+ test.expect(args.onOpenChange).toHaveBeenCalledTimes(2);
319
+ }
320
+ };
152
321
  const SelectedInCanvas = {
153
322
  args: {
154
- trigger: /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, null, "Open popover"),
155
- dialog: /* @__PURE__ */ React__default.default.createElement(registerPopover.BasePopover, { isNonModal: true, isKeyboardDismissDisabled: false }, /* @__PURE__ */ React__default.default.createElement(registerDialog.BaseDialog, null, /* @__PURE__ */ React__default.default.createElement(DefaultContent, null)))
323
+ trigger: void 0,
324
+ dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, { isKeyboardDismissDisabled: false })
156
325
  },
157
326
  render: (_a) => {
158
327
  var _b = _a, args = __objRest(_b, ["__plasmic_selection_prop__"]);
@@ -207,9 +376,77 @@ const SelectedInCanvas = {
207
376
  );
208
377
  }
209
378
  };
379
+ const PopoverPosition = {
380
+ args: {
381
+ trigger: /* @__PURE__ */ React__default.default.createElement("span", null, "Open popover"),
382
+ // anything can be used as a trigger
383
+ dialog: /* @__PURE__ */ React__default.default.createElement(DefaultPopoverContent, null)
384
+ },
385
+ render: (args) => {
386
+ const [className, setClassName] = React.useState("popover");
387
+ React.useEffect(() => {
388
+ setTimeout(() => {
389
+ setClassName((prev) => `${prev} popover-right`);
390
+ }, 1e3);
391
+ }, []);
392
+ return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(
393
+ "style",
394
+ {
395
+ dangerouslySetInnerHTML: {
396
+ __html: `
397
+ .popover {
398
+ display: inline-block;
399
+ }
400
+ .popover-right {
401
+ position: absolute;
402
+ right: 0;
403
+ }
404
+ `
405
+ }
406
+ }
407
+ ), /* @__PURE__ */ React__default.default.createElement(registerDialogTrigger.BaseDialogTrigger, __spreadProps(__spreadValues({}, args), { className })));
408
+ },
409
+ play: async ({ canvasElement }) => {
410
+ const canvas = test.within(canvasElement);
411
+ const doc = test.within(document.body);
412
+ const trigger = canvas.getByText("Open popover");
413
+ await test.waitFor(() => {
414
+ test.expect(doc.queryByTestId("dialog-content")).not.toBeInTheDocument();
415
+ });
416
+ await test.userEvent.click(trigger);
417
+ let initialPopoverLeftPosition;
418
+ await test.waitFor(() => {
419
+ const popover = doc.getByTestId("dialog-content");
420
+ initialPopoverLeftPosition = popover.getBoundingClientRect().left;
421
+ });
422
+ await test.userEvent.click(trigger);
423
+ await sleep(500);
424
+ await test.userEvent.click(trigger);
425
+ await test.waitFor(async () => {
426
+ const popover = doc.getByTestId("dialog-content");
427
+ test.expect(initialPopoverLeftPosition).toEqual(
428
+ popover.getBoundingClientRect().left
429
+ );
430
+ });
431
+ await test.userEvent.click(trigger);
432
+ await sleep(500);
433
+ await test.userEvent.click(trigger);
434
+ await test.waitFor(() => {
435
+ const popover = doc.getByTestId("dialog-content");
436
+ test.expect(initialPopoverLeftPosition).not.toEqual(
437
+ popover.getBoundingClientRect().left
438
+ );
439
+ });
440
+ }
441
+ };
210
442
 
443
+ exports.AriaButtonTrigger = AriaButtonTrigger;
444
+ exports.ControlledDialog = ControlledDialog;
445
+ exports.PopoverPosition = PopoverPosition;
211
446
  exports.SelectedInCanvas = SelectedInCanvas;
447
+ exports.TriggerWithCustomEventHandler = TriggerWithCustomEventHandler;
212
448
  exports.WithModal = WithModal;
449
+ exports.WithNestedTrigger = WithNestedTrigger;
213
450
  exports.WithPopover = WithPopover;
214
451
  exports.WithPopoverNonModal = WithPopoverNonModal;
215
452
  exports.default = meta;