@plasmicpkgs/antd5 0.0.186 → 0.0.187

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/antd5",
3
- "version": "0.0.186",
3
+ "version": "0.0.187",
4
4
  "description": "Plasmic registration calls for antd components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -108,5 +108,5 @@
108
108
  "publishConfig": {
109
109
  "access": "public"
110
110
  },
111
- "gitHead": "9216f61b95565cb9ff8639fa7f2d2640a320e731"
111
+ "gitHead": "e7f9b83b5b6788a53a9a9ca8b2922cb7c3725ca1"
112
112
  }
@@ -2,8 +2,8 @@
2
2
 
3
3
  var antd = require('antd');
4
4
  var React = require('react');
5
- var utils = require('./utils-174b9d45.cjs.js');
6
5
  var registerMenu = require('./registerMenu.cjs.js');
6
+ var utils = require('./utils-174b9d45.cjs.js');
7
7
  require('@plasmicapp/host/registerComponent');
8
8
  require('@plasmicapp/host/registerGlobalContext');
9
9
 
@@ -42,13 +42,34 @@ var __objRest = (source, exclude) => {
42
42
  }
43
43
  return target;
44
44
  };
45
+ function addKeysToUnkeyedMenuItems(unkeyedMenuItems, maybeGenKey) {
46
+ const genKey = maybeGenKey != null ? maybeGenKey : (() => {
47
+ let key = 0;
48
+ return () => {
49
+ return `${key++}`;
50
+ };
51
+ })();
52
+ return unkeyedMenuItems == null ? void 0 : unkeyedMenuItems.map((item) => {
53
+ if (!item) {
54
+ return null;
55
+ }
56
+ const newItem = __spreadValues({}, item);
57
+ if (!newItem.key) {
58
+ newItem.key = genKey();
59
+ }
60
+ if ("children" in newItem && newItem.children) {
61
+ newItem.children = addKeysToUnkeyedMenuItems(newItem.children, genKey);
62
+ }
63
+ return newItem;
64
+ });
65
+ }
45
66
  function AntdDropdown(props) {
46
67
  const _a = props, {
47
68
  children,
48
69
  onAction,
49
70
  menuItems,
50
71
  useMenuItemsSlot = false,
51
- menuItemsJson,
72
+ menuItemsJson: unkeyedMenuItems,
52
73
  trigger = "click",
53
74
  dropdownMenuScopeClassName
54
75
  } = _a, rest = __objRest(_a, [
@@ -60,6 +81,7 @@ function AntdDropdown(props) {
60
81
  "trigger",
61
82
  "dropdownMenuScopeClassName"
62
83
  ]);
84
+ const keyedMenuItems = addKeysToUnkeyedMenuItems(unkeyedMenuItems);
63
85
  return /* @__PURE__ */ React__default.default.createElement(
64
86
  antd.Dropdown,
65
87
  __spreadProps(__spreadValues({}, rest), {
@@ -67,7 +89,7 @@ function AntdDropdown(props) {
67
89
  overlay: () => {
68
90
  var _a2;
69
91
  const itemsChildren = useMenuItemsSlot ? (_a2 = menuItems == null ? void 0 : menuItems()) != null ? _a2 : [] : void 0;
70
- const items = useMenuItemsSlot ? void 0 : menuItemsJson;
92
+ const items = useMenuItemsSlot ? void 0 : keyedMenuItems;
71
93
  return /* @__PURE__ */ React__default.default.createElement(
72
94
  antd.Menu,
73
95
  {
@@ -1 +1 @@
1
- {"version":3,"file":"registerDropdown.cjs.js","sources":["../src/registerDropdown.tsx"],"sourcesContent":["import { Dropdown, Menu } from \"antd\";\nimport React from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\nimport { UNKEYED_MENU_ITEM_TYPE } from \"./registerMenu\";\n\nexport function AntdDropdown(\n props: Omit<React.ComponentProps<typeof Dropdown>, \"menu\" | \"overlay\"> & {\n onAction?: (key: string) => void;\n menuItems?: () => React.ReactNode;\n useMenuItemsSlot?: boolean;\n menuItemsJson?: React.ComponentProps<typeof Menu>[\"items\"];\n trigger?: \"click\" | \"hover\" | \"contextMenu\";\n dropdownMenuScopeClassName?: string;\n }\n) {\n const {\n children,\n onAction,\n menuItems,\n useMenuItemsSlot = false,\n menuItemsJson,\n trigger = \"click\",\n dropdownMenuScopeClassName,\n ...rest\n } = props;\n return (\n <Dropdown\n {...rest}\n trigger={[trigger]}\n overlay={() => {\n const itemsChildren = useMenuItemsSlot\n ? menuItems?.() ?? []\n : undefined;\n const items = useMenuItemsSlot ? undefined : menuItemsJson;\n return (\n <Menu\n className={`${dropdownMenuScopeClassName}`}\n onClick={(event) => onAction?.(event.key)}\n items={items}\n >\n {itemsChildren}\n </Menu>\n );\n }}\n >\n {typeof children === \"string\" ? <div>{children}</div> : children}\n </Dropdown>\n );\n}\n\n/**\n * Note that we don't yet support the simpler `items` prop for configuration.\n */\nexport function registerDropdown(loader?: Registerable) {\n registerComponentHelper(loader, AntdDropdown, {\n name: \"plasmic-antd5-dropdown\",\n displayName: \"Dropdown\",\n props: {\n menuItems: {\n type: \"slot\",\n displayName: \"Menu items\",\n hidden: (ps) => !ps.useMenuItemsSlot,\n allowedComponents: [\n \"plasmic-antd5-menu-item\",\n \"plasmic-antd5-menu-item-group\",\n \"plasmic-antd5-menu-divider\",\n \"plasmic-antd5-submenu\",\n ],\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-1\",\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-2\",\n },\n },\n ],\n renderPropParams: [],\n },\n menuItemsJson: {\n type: \"array\",\n displayName: \"Menu Items\",\n hidden: (ps) => !!ps.useMenuItemsSlot,\n itemType: UNKEYED_MENU_ITEM_TYPE as any,\n defaultValue: [\n {\n type: \"item\",\n value: \"action1\",\n label: \"Action 1\",\n },\n {\n type: \"item\",\n value: \"action2\",\n label: \"Action 2\",\n },\n ],\n },\n dropdownMenuScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"dropdownMenu\",\n } as any,\n menuClassName: {\n type: \"class\",\n displayName: \"Menu\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu\",\n label: \"Base\",\n },\n ],\n },\n menuItemClassName: {\n type: \"class\",\n displayName: \"Menu item\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item\",\n label: \"Base\",\n },\n {\n selector:\n \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item-active\",\n label: \"Focused\",\n },\n ],\n },\n open: {\n type: \"boolean\",\n description: \"Toggle visibility of dropdown menu in Plasmic Editor\",\n editOnly: true,\n uncontrolledProp: \"fakeOpen\",\n defaultValueHint: false,\n },\n disabled: {\n type: \"boolean\",\n description: \"Whether the dropdown menu is disabled\",\n defaultValueHint: false,\n },\n placement: {\n type: \"choice\",\n options: [\n \"bottomLeft\",\n \"bottomCenter\",\n \"bottomRight\",\n \"topLeft\",\n \"topCenter\",\n \"topRight\",\n ],\n description: \"Placement of popup menu\",\n defaultValueHint: \"bottomLeft\",\n advanced: true,\n },\n trigger: {\n type: \"choice\",\n options: [\n { value: \"click\", label: \"Click\" },\n { value: \"hover\", label: \"Hover\" },\n { value: \"contextMenu\", label: \"Right-click\" },\n ],\n description: \"The trigger mode which executes the dropdown action\",\n defaultValueHint: \"click\",\n },\n useMenuItemsSlot: {\n type: \"boolean\",\n displayName: \"Use menu items slot\",\n advanced: true,\n description:\n \"Instead of configuring a list of menu items, build the menu items using MenuItem elements. This gives you greater control over item styling.\",\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Dropdown\",\n },\n },\n },\n ],\n ...({ mergeWithParent: true } as any),\n },\n onAction: {\n type: \"eventHandler\",\n argTypes: [{ name: \"key\", type: \"string\" }],\n } as any,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerDropdown\",\n importName: \"AntdDropdown\",\n });\n}\n"],"names":["React","Dropdown","_a","Menu","registerComponentHelper","UNKEYED_MENU_ITEM_TYPE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,SAAS,aACd,KAQA,EAAA;AACA,EAAA,MASI,EARF,GAAA,KAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAmB,GAAA,KAAA;AAAA,IACnB,aAAA;AAAA,IACA,OAAU,GAAA,OAAA;AAAA,IACV,0BAAA;AAAA,GAtBJ,GAwBM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAPH,UAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,kBAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,4BAAA;AAAA,GAAA,CAAA,CAAA;AAGF,EACE,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAACC,aAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,MAEC,OAAA,EAAS,CAAC,OAAO,CAAA;AAAA,MACjB,SAAS,MAAM;AA7BrB,QAAAC,IAAAA,GAAAA,CAAAA;AA8BQ,QAAA,MAAM,gBAAgB,gBAClBA,GAAAA,CAAAA,GAAAA,GAAA,SAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAAA,EAAAA,KAAAA,IAAAA,GAAAA,GAAAA,GAAiB,EACjB,GAAA,KAAA,CAAA,CAAA;AACJ,QAAM,MAAA,KAAA,GAAQ,mBAAmB,KAAY,CAAA,GAAA,aAAA,CAAA;AAC7C,QACE,uBAAAF,sBAAA,CAAA,aAAA;AAAA,UAACG,SAAA;AAAA,UAAA;AAAA,YACC,WAAW,CAAG,EAAA,0BAAA,CAAA,CAAA;AAAA,YACd,OAAS,EAAA,CAAC,KAAU,KAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,KAAM,CAAA,GAAA,CAAA;AAAA,YACrC,KAAA;AAAA,WAAA;AAAA,UAEC,aAAA;AAAA,SACH,CAAA;AAAA,OAEJ;AAAA,KAAA,CAAA;AAAA,IAEC,OAAO,QAAa,KAAA,QAAA,mBAAYH,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAK,QAAS,CAAS,GAAA,QAAA;AAAA,GAC1D,CAAA;AAEJ,CAAA;AAKO,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAAI,6BAAA,CAAwB,QAAQ,YAAc,EAAA;AAAA,IAC5C,IAAM,EAAA,wBAAA;AAAA,IACN,WAAa,EAAA,UAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,EAAG,CAAA,gBAAA;AAAA,QACpB,iBAAmB,EAAA;AAAA,UACjB,yBAAA;AAAA,UACA,+BAAA;AAAA,UACA,4BAAA;AAAA,UACA,uBAAA;AAAA,SACF;AAAA,QACA,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,GAAK,EAAA,aAAA;AAAA,aACP;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,GAAK,EAAA,aAAA;AAAA,aACP;AAAA,WACF;AAAA,SACF;AAAA,QACA,kBAAkB,EAAC;AAAA,OACrB;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,CAAC,EAAG,CAAA,gBAAA;AAAA,QACrB,QAAU,EAAAC,mCAAA;AAAA,QACV,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,UAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,UAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,0BAA4B,EAAA;AAAA,QAC1B,IAAM,EAAA,iBAAA;AAAA,QACN,SAAW,EAAA,cAAA;AAAA,OACb;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,SAAW,EAAA;AAAA,UACT;AAAA,YACE,QAAU,EAAA,iCAAA;AAAA,YACV,KAAO,EAAA,MAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,iBAAmB,EAAA;AAAA,QACjB,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,WAAA;AAAA,QACb,SAAW,EAAA;AAAA,UACT;AAAA,YACE,QAAU,EAAA,yDAAA;AAAA,YACV,KAAO,EAAA,MAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,QACE,EAAA,gEAAA;AAAA,YACF,KAAO,EAAA,SAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,sDAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,UAAA;AAAA,QAClB,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,uCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,YAAA;AAAA,UACA,cAAA;AAAA,UACA,aAAA;AAAA,UACA,SAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA;AAAA,SACF;AAAA,QACA,WAAa,EAAA,yBAAA;AAAA,QACb,gBAAkB,EAAA,YAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,UACjC,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,UACjC,EAAE,KAAA,EAAO,aAAe,EAAA,KAAA,EAAO,aAAc,EAAA;AAAA,SAC/C;AAAA,QACA,WAAa,EAAA,qDAAA;AAAA,QACb,gBAAkB,EAAA,OAAA;AAAA,OACpB;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,qBAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,QACV,WACE,EAAA,8IAAA;AAAA,OACJ;AAAA,MACA,QAAU,EAAA,cAAA,CAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,sBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,UAAA;AAAA,eACT;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACI,EAAA,EAAE,iBAAiB,IAAK,EAAA,CAAA;AAAA,MAE9B,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,KAAO,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,OAC5C;AAAA,KACF;AAAA,IACA,UAAY,EAAA,4CAAA;AAAA,IACZ,UAAY,EAAA,cAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;;"}
1
+ {"version":3,"file":"registerDropdown.cjs.js","sources":["../src/registerDropdown.tsx"],"sourcesContent":["import { Dropdown, Menu } from \"antd\";\nimport React from \"react\";\nimport { UNKEYED_MENU_ITEM_TYPE } from \"./registerMenu\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nfunction addKeysToUnkeyedMenuItems(\n unkeyedMenuItems: React.ComponentProps<typeof Menu>[\"items\"],\n maybeGenKey?: () => string\n) {\n const genKey =\n maybeGenKey ??\n (() => {\n let key = 0;\n return () => {\n return `${key++}`;\n };\n })();\n return unkeyedMenuItems?.map((item) => {\n if (!item) {\n return null;\n }\n const newItem = { ...item };\n if (!newItem.key) {\n newItem.key = genKey();\n }\n if (\"children\" in newItem && newItem.children) {\n newItem.children = addKeysToUnkeyedMenuItems(newItem.children, genKey);\n }\n return newItem;\n });\n}\n\nexport function AntdDropdown(\n props: Omit<React.ComponentProps<typeof Dropdown>, \"menu\" | \"overlay\"> & {\n onAction?: (key: string) => void;\n menuItems?: () => React.ReactNode;\n useMenuItemsSlot?: boolean;\n menuItemsJson?: React.ComponentProps<typeof Menu>[\"items\"];\n trigger?: \"click\" | \"hover\" | \"contextMenu\";\n dropdownMenuScopeClassName?: string;\n }\n) {\n const {\n children,\n onAction,\n menuItems,\n useMenuItemsSlot = false,\n menuItemsJson: unkeyedMenuItems,\n trigger = \"click\",\n dropdownMenuScopeClassName,\n ...rest\n } = props;\n\n const keyedMenuItems = addKeysToUnkeyedMenuItems(unkeyedMenuItems);\n\n return (\n <Dropdown\n {...rest}\n trigger={[trigger]}\n overlay={() => {\n const itemsChildren = useMenuItemsSlot\n ? menuItems?.() ?? []\n : undefined;\n const items = useMenuItemsSlot ? undefined : keyedMenuItems;\n return (\n <Menu\n className={`${dropdownMenuScopeClassName}`}\n onClick={(event) => onAction?.(event.key)}\n items={items}\n >\n {itemsChildren}\n </Menu>\n );\n }}\n >\n {typeof children === \"string\" ? <div>{children}</div> : children}\n </Dropdown>\n );\n}\n\n/**\n * Note that we don't yet support the simpler `items` prop for configuration.\n */\nexport function registerDropdown(loader?: Registerable) {\n registerComponentHelper(loader, AntdDropdown, {\n name: \"plasmic-antd5-dropdown\",\n displayName: \"Dropdown\",\n props: {\n menuItems: {\n type: \"slot\",\n displayName: \"Menu items\",\n hidden: (ps) => !ps.useMenuItemsSlot,\n allowedComponents: [\n \"plasmic-antd5-menu-item\",\n \"plasmic-antd5-menu-item-group\",\n \"plasmic-antd5-menu-divider\",\n \"plasmic-antd5-submenu\",\n ],\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-1\",\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-2\",\n },\n },\n ],\n renderPropParams: [],\n },\n menuItemsJson: {\n type: \"array\",\n displayName: \"Menu Items\",\n hidden: (ps) => !!ps.useMenuItemsSlot,\n itemType: UNKEYED_MENU_ITEM_TYPE as any,\n defaultValue: [\n {\n type: \"item\",\n value: \"action1\",\n label: \"Action 1\",\n },\n {\n type: \"item\",\n value: \"action2\",\n label: \"Action 2\",\n },\n ],\n },\n dropdownMenuScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"dropdownMenu\",\n } as any,\n menuClassName: {\n type: \"class\",\n displayName: \"Menu\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu\",\n label: \"Base\",\n },\n ],\n },\n menuItemClassName: {\n type: \"class\",\n displayName: \"Menu item\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item\",\n label: \"Base\",\n },\n {\n selector:\n \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item-active\",\n label: \"Focused\",\n },\n ],\n },\n open: {\n type: \"boolean\",\n description: \"Toggle visibility of dropdown menu in Plasmic Editor\",\n editOnly: true,\n uncontrolledProp: \"fakeOpen\",\n defaultValueHint: false,\n },\n disabled: {\n type: \"boolean\",\n description: \"Whether the dropdown menu is disabled\",\n defaultValueHint: false,\n },\n placement: {\n type: \"choice\",\n options: [\n \"bottomLeft\",\n \"bottomCenter\",\n \"bottomRight\",\n \"topLeft\",\n \"topCenter\",\n \"topRight\",\n ],\n description: \"Placement of popup menu\",\n defaultValueHint: \"bottomLeft\",\n advanced: true,\n },\n trigger: {\n type: \"choice\",\n options: [\n { value: \"click\", label: \"Click\" },\n { value: \"hover\", label: \"Hover\" },\n { value: \"contextMenu\", label: \"Right-click\" },\n ],\n description: \"The trigger mode which executes the dropdown action\",\n defaultValueHint: \"click\",\n },\n useMenuItemsSlot: {\n type: \"boolean\",\n displayName: \"Use menu items slot\",\n advanced: true,\n description:\n \"Instead of configuring a list of menu items, build the menu items using MenuItem elements. This gives you greater control over item styling.\",\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Dropdown\",\n },\n },\n },\n ],\n ...({ mergeWithParent: true } as any),\n },\n onAction: {\n type: \"eventHandler\",\n argTypes: [{ name: \"key\", type: \"string\" }],\n } as any,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerDropdown\",\n importName: \"AntdDropdown\",\n });\n}\n"],"names":["React","Dropdown","_a","Menu","registerComponentHelper","UNKEYED_MENU_ITEM_TYPE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,yBAAA,CACP,kBACA,WACA,EAAA;AACA,EAAM,MAAA,MAAA,GACJ,qCACC,MAAM;AACL,IAAA,IAAI,GAAM,GAAA,CAAA,CAAA;AACV,IAAA,OAAO,MAAM;AACX,MAAA,OAAO,CAAG,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;AAAA,KACZ,CAAA;AAAA,GACC,GAAA,CAAA;AACL,EAAO,OAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAkB,GAAI,CAAA,CAAC,IAAS,KAAA;AACrC,IAAA,IAAI,CAAC,IAAM,EAAA;AACT,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AACA,IAAA,MAAM,UAAU,cAAK,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;AACrB,IAAI,IAAA,CAAC,QAAQ,GAAK,EAAA;AAChB,MAAA,OAAA,CAAQ,MAAM,MAAO,EAAA,CAAA;AAAA,KACvB;AACA,IAAI,IAAA,UAAA,IAAc,OAAW,IAAA,OAAA,CAAQ,QAAU,EAAA;AAC7C,MAAA,OAAA,CAAQ,QAAW,GAAA,yBAAA,CAA0B,OAAQ,CAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,KACvE;AACA,IAAO,OAAA,OAAA,CAAA;AAAA,GACT,CAAA,CAAA;AACF,CAAA;AAEO,SAAS,aACd,KAQA,EAAA;AACA,EAAA,MASI,EARF,GAAA,KAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAmB,GAAA,KAAA;AAAA,IACnB,aAAe,EAAA,gBAAA;AAAA,IACf,OAAU,GAAA,OAAA;AAAA,IACV,0BAAA;AAAA,GAjDJ,GAmDM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAPH,UAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,kBAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,4BAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAM,MAAA,cAAA,GAAiB,0BAA0B,gBAAgB,CAAA,CAAA;AAEjE,EACE,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAACC,aAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,MAEC,OAAA,EAAS,CAAC,OAAO,CAAA;AAAA,MACjB,SAAS,MAAM;AA3DrB,QAAAC,IAAAA,GAAAA,CAAAA;AA4DQ,QAAA,MAAM,gBAAgB,gBAClBA,GAAAA,CAAAA,GAAAA,GAAA,SAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAAA,EAAAA,KAAAA,IAAAA,GAAAA,GAAAA,GAAiB,EACjB,GAAA,KAAA,CAAA,CAAA;AACJ,QAAM,MAAA,KAAA,GAAQ,mBAAmB,KAAY,CAAA,GAAA,cAAA,CAAA;AAC7C,QACE,uBAAAF,sBAAA,CAAA,aAAA;AAAA,UAACG,SAAA;AAAA,UAAA;AAAA,YACC,WAAW,CAAG,EAAA,0BAAA,CAAA,CAAA;AAAA,YACd,OAAS,EAAA,CAAC,KAAU,KAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,KAAM,CAAA,GAAA,CAAA;AAAA,YACrC,KAAA;AAAA,WAAA;AAAA,UAEC,aAAA;AAAA,SACH,CAAA;AAAA,OAEJ;AAAA,KAAA,CAAA;AAAA,IAEC,OAAO,QAAa,KAAA,QAAA,mBAAYH,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAK,QAAS,CAAS,GAAA,QAAA;AAAA,GAC1D,CAAA;AAEJ,CAAA;AAKO,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAAI,6BAAA,CAAwB,QAAQ,YAAc,EAAA;AAAA,IAC5C,IAAM,EAAA,wBAAA;AAAA,IACN,WAAa,EAAA,UAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,EAAG,CAAA,gBAAA;AAAA,QACpB,iBAAmB,EAAA;AAAA,UACjB,yBAAA;AAAA,UACA,+BAAA;AAAA,UACA,4BAAA;AAAA,UACA,uBAAA;AAAA,SACF;AAAA,QACA,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,GAAK,EAAA,aAAA;AAAA,aACP;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,GAAK,EAAA,aAAA;AAAA,aACP;AAAA,WACF;AAAA,SACF;AAAA,QACA,kBAAkB,EAAC;AAAA,OACrB;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,CAAC,EAAG,CAAA,gBAAA;AAAA,QACrB,QAAU,EAAAC,mCAAA;AAAA,QACV,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,UAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,UAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,0BAA4B,EAAA;AAAA,QAC1B,IAAM,EAAA,iBAAA;AAAA,QACN,SAAW,EAAA,cAAA;AAAA,OACb;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,SAAW,EAAA;AAAA,UACT;AAAA,YACE,QAAU,EAAA,iCAAA;AAAA,YACV,KAAO,EAAA,MAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,iBAAmB,EAAA;AAAA,QACjB,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,WAAA;AAAA,QACb,SAAW,EAAA;AAAA,UACT;AAAA,YACE,QAAU,EAAA,yDAAA;AAAA,YACV,KAAO,EAAA,MAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,QACE,EAAA,gEAAA;AAAA,YACF,KAAO,EAAA,SAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,sDAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,UAAA;AAAA,QAClB,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,uCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,YAAA;AAAA,UACA,cAAA;AAAA,UACA,aAAA;AAAA,UACA,SAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA;AAAA,SACF;AAAA,QACA,WAAa,EAAA,yBAAA;AAAA,QACb,gBAAkB,EAAA,YAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,UACjC,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,UACjC,EAAE,KAAA,EAAO,aAAe,EAAA,KAAA,EAAO,aAAc,EAAA;AAAA,SAC/C;AAAA,QACA,WAAa,EAAA,qDAAA;AAAA,QACb,gBAAkB,EAAA,OAAA;AAAA,OACpB;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,qBAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,QACV,WACE,EAAA,8IAAA;AAAA,OACJ;AAAA,MACA,QAAU,EAAA,cAAA,CAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,sBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,UAAA;AAAA,eACT;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACI,EAAA,EAAE,iBAAiB,IAAK,EAAA,CAAA;AAAA,MAE9B,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,KAAO,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,OAC5C;AAAA,KACF;AAAA,IACA,UAAY,EAAA,4CAAA;AAAA,IACZ,UAAY,EAAA,cAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { Dropdown, Menu } from 'antd';
2
2
  import React from 'react';
3
- import { r as registerComponentHelper } from './utils-7d8f2418.esm.js';
4
3
  import { UNKEYED_MENU_ITEM_TYPE } from './registerMenu.esm.js';
4
+ import { r as registerComponentHelper } from './utils-7d8f2418.esm.js';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
  import '@plasmicapp/host/registerGlobalContext';
7
7
 
@@ -36,13 +36,34 @@ var __objRest = (source, exclude) => {
36
36
  }
37
37
  return target;
38
38
  };
39
+ function addKeysToUnkeyedMenuItems(unkeyedMenuItems, maybeGenKey) {
40
+ const genKey = maybeGenKey != null ? maybeGenKey : (() => {
41
+ let key = 0;
42
+ return () => {
43
+ return `${key++}`;
44
+ };
45
+ })();
46
+ return unkeyedMenuItems == null ? void 0 : unkeyedMenuItems.map((item) => {
47
+ if (!item) {
48
+ return null;
49
+ }
50
+ const newItem = __spreadValues({}, item);
51
+ if (!newItem.key) {
52
+ newItem.key = genKey();
53
+ }
54
+ if ("children" in newItem && newItem.children) {
55
+ newItem.children = addKeysToUnkeyedMenuItems(newItem.children, genKey);
56
+ }
57
+ return newItem;
58
+ });
59
+ }
39
60
  function AntdDropdown(props) {
40
61
  const _a = props, {
41
62
  children,
42
63
  onAction,
43
64
  menuItems,
44
65
  useMenuItemsSlot = false,
45
- menuItemsJson,
66
+ menuItemsJson: unkeyedMenuItems,
46
67
  trigger = "click",
47
68
  dropdownMenuScopeClassName
48
69
  } = _a, rest = __objRest(_a, [
@@ -54,6 +75,7 @@ function AntdDropdown(props) {
54
75
  "trigger",
55
76
  "dropdownMenuScopeClassName"
56
77
  ]);
78
+ const keyedMenuItems = addKeysToUnkeyedMenuItems(unkeyedMenuItems);
57
79
  return /* @__PURE__ */ React.createElement(
58
80
  Dropdown,
59
81
  __spreadProps(__spreadValues({}, rest), {
@@ -61,7 +83,7 @@ function AntdDropdown(props) {
61
83
  overlay: () => {
62
84
  var _a2;
63
85
  const itemsChildren = useMenuItemsSlot ? (_a2 = menuItems == null ? void 0 : menuItems()) != null ? _a2 : [] : void 0;
64
- const items = useMenuItemsSlot ? void 0 : menuItemsJson;
86
+ const items = useMenuItemsSlot ? void 0 : keyedMenuItems;
65
87
  return /* @__PURE__ */ React.createElement(
66
88
  Menu,
67
89
  {
@@ -1 +1 @@
1
- {"version":3,"file":"registerDropdown.esm.js","sources":["../src/registerDropdown.tsx"],"sourcesContent":["import { Dropdown, Menu } from \"antd\";\nimport React from \"react\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\nimport { UNKEYED_MENU_ITEM_TYPE } from \"./registerMenu\";\n\nexport function AntdDropdown(\n props: Omit<React.ComponentProps<typeof Dropdown>, \"menu\" | \"overlay\"> & {\n onAction?: (key: string) => void;\n menuItems?: () => React.ReactNode;\n useMenuItemsSlot?: boolean;\n menuItemsJson?: React.ComponentProps<typeof Menu>[\"items\"];\n trigger?: \"click\" | \"hover\" | \"contextMenu\";\n dropdownMenuScopeClassName?: string;\n }\n) {\n const {\n children,\n onAction,\n menuItems,\n useMenuItemsSlot = false,\n menuItemsJson,\n trigger = \"click\",\n dropdownMenuScopeClassName,\n ...rest\n } = props;\n return (\n <Dropdown\n {...rest}\n trigger={[trigger]}\n overlay={() => {\n const itemsChildren = useMenuItemsSlot\n ? menuItems?.() ?? []\n : undefined;\n const items = useMenuItemsSlot ? undefined : menuItemsJson;\n return (\n <Menu\n className={`${dropdownMenuScopeClassName}`}\n onClick={(event) => onAction?.(event.key)}\n items={items}\n >\n {itemsChildren}\n </Menu>\n );\n }}\n >\n {typeof children === \"string\" ? <div>{children}</div> : children}\n </Dropdown>\n );\n}\n\n/**\n * Note that we don't yet support the simpler `items` prop for configuration.\n */\nexport function registerDropdown(loader?: Registerable) {\n registerComponentHelper(loader, AntdDropdown, {\n name: \"plasmic-antd5-dropdown\",\n displayName: \"Dropdown\",\n props: {\n menuItems: {\n type: \"slot\",\n displayName: \"Menu items\",\n hidden: (ps) => !ps.useMenuItemsSlot,\n allowedComponents: [\n \"plasmic-antd5-menu-item\",\n \"plasmic-antd5-menu-item-group\",\n \"plasmic-antd5-menu-divider\",\n \"plasmic-antd5-submenu\",\n ],\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-1\",\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-2\",\n },\n },\n ],\n renderPropParams: [],\n },\n menuItemsJson: {\n type: \"array\",\n displayName: \"Menu Items\",\n hidden: (ps) => !!ps.useMenuItemsSlot,\n itemType: UNKEYED_MENU_ITEM_TYPE as any,\n defaultValue: [\n {\n type: \"item\",\n value: \"action1\",\n label: \"Action 1\",\n },\n {\n type: \"item\",\n value: \"action2\",\n label: \"Action 2\",\n },\n ],\n },\n dropdownMenuScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"dropdownMenu\",\n } as any,\n menuClassName: {\n type: \"class\",\n displayName: \"Menu\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu\",\n label: \"Base\",\n },\n ],\n },\n menuItemClassName: {\n type: \"class\",\n displayName: \"Menu item\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item\",\n label: \"Base\",\n },\n {\n selector:\n \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item-active\",\n label: \"Focused\",\n },\n ],\n },\n open: {\n type: \"boolean\",\n description: \"Toggle visibility of dropdown menu in Plasmic Editor\",\n editOnly: true,\n uncontrolledProp: \"fakeOpen\",\n defaultValueHint: false,\n },\n disabled: {\n type: \"boolean\",\n description: \"Whether the dropdown menu is disabled\",\n defaultValueHint: false,\n },\n placement: {\n type: \"choice\",\n options: [\n \"bottomLeft\",\n \"bottomCenter\",\n \"bottomRight\",\n \"topLeft\",\n \"topCenter\",\n \"topRight\",\n ],\n description: \"Placement of popup menu\",\n defaultValueHint: \"bottomLeft\",\n advanced: true,\n },\n trigger: {\n type: \"choice\",\n options: [\n { value: \"click\", label: \"Click\" },\n { value: \"hover\", label: \"Hover\" },\n { value: \"contextMenu\", label: \"Right-click\" },\n ],\n description: \"The trigger mode which executes the dropdown action\",\n defaultValueHint: \"click\",\n },\n useMenuItemsSlot: {\n type: \"boolean\",\n displayName: \"Use menu items slot\",\n advanced: true,\n description:\n \"Instead of configuring a list of menu items, build the menu items using MenuItem elements. This gives you greater control over item styling.\",\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Dropdown\",\n },\n },\n },\n ],\n ...({ mergeWithParent: true } as any),\n },\n onAction: {\n type: \"eventHandler\",\n argTypes: [{ name: \"key\", type: \"string\" }],\n } as any,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerDropdown\",\n importName: \"AntdDropdown\",\n });\n}\n"],"names":["_a"],"mappings":"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"}
1
+ {"version":3,"file":"registerDropdown.esm.js","sources":["../src/registerDropdown.tsx"],"sourcesContent":["import { Dropdown, Menu } from \"antd\";\nimport React from \"react\";\nimport { UNKEYED_MENU_ITEM_TYPE } from \"./registerMenu\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nfunction addKeysToUnkeyedMenuItems(\n unkeyedMenuItems: React.ComponentProps<typeof Menu>[\"items\"],\n maybeGenKey?: () => string\n) {\n const genKey =\n maybeGenKey ??\n (() => {\n let key = 0;\n return () => {\n return `${key++}`;\n };\n })();\n return unkeyedMenuItems?.map((item) => {\n if (!item) {\n return null;\n }\n const newItem = { ...item };\n if (!newItem.key) {\n newItem.key = genKey();\n }\n if (\"children\" in newItem && newItem.children) {\n newItem.children = addKeysToUnkeyedMenuItems(newItem.children, genKey);\n }\n return newItem;\n });\n}\n\nexport function AntdDropdown(\n props: Omit<React.ComponentProps<typeof Dropdown>, \"menu\" | \"overlay\"> & {\n onAction?: (key: string) => void;\n menuItems?: () => React.ReactNode;\n useMenuItemsSlot?: boolean;\n menuItemsJson?: React.ComponentProps<typeof Menu>[\"items\"];\n trigger?: \"click\" | \"hover\" | \"contextMenu\";\n dropdownMenuScopeClassName?: string;\n }\n) {\n const {\n children,\n onAction,\n menuItems,\n useMenuItemsSlot = false,\n menuItemsJson: unkeyedMenuItems,\n trigger = \"click\",\n dropdownMenuScopeClassName,\n ...rest\n } = props;\n\n const keyedMenuItems = addKeysToUnkeyedMenuItems(unkeyedMenuItems);\n\n return (\n <Dropdown\n {...rest}\n trigger={[trigger]}\n overlay={() => {\n const itemsChildren = useMenuItemsSlot\n ? menuItems?.() ?? []\n : undefined;\n const items = useMenuItemsSlot ? undefined : keyedMenuItems;\n return (\n <Menu\n className={`${dropdownMenuScopeClassName}`}\n onClick={(event) => onAction?.(event.key)}\n items={items}\n >\n {itemsChildren}\n </Menu>\n );\n }}\n >\n {typeof children === \"string\" ? <div>{children}</div> : children}\n </Dropdown>\n );\n}\n\n/**\n * Note that we don't yet support the simpler `items` prop for configuration.\n */\nexport function registerDropdown(loader?: Registerable) {\n registerComponentHelper(loader, AntdDropdown, {\n name: \"plasmic-antd5-dropdown\",\n displayName: \"Dropdown\",\n props: {\n menuItems: {\n type: \"slot\",\n displayName: \"Menu items\",\n hidden: (ps) => !ps.useMenuItemsSlot,\n allowedComponents: [\n \"plasmic-antd5-menu-item\",\n \"plasmic-antd5-menu-item-group\",\n \"plasmic-antd5-menu-divider\",\n \"plasmic-antd5-submenu\",\n ],\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-1\",\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-menu-item\",\n props: {\n key: \"menu-item-2\",\n },\n },\n ],\n renderPropParams: [],\n },\n menuItemsJson: {\n type: \"array\",\n displayName: \"Menu Items\",\n hidden: (ps) => !!ps.useMenuItemsSlot,\n itemType: UNKEYED_MENU_ITEM_TYPE as any,\n defaultValue: [\n {\n type: \"item\",\n value: \"action1\",\n label: \"Action 1\",\n },\n {\n type: \"item\",\n value: \"action2\",\n label: \"Action 2\",\n },\n ],\n },\n dropdownMenuScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"dropdownMenu\",\n } as any,\n menuClassName: {\n type: \"class\",\n displayName: \"Menu\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu\",\n label: \"Base\",\n },\n ],\n },\n menuItemClassName: {\n type: \"class\",\n displayName: \"Menu item\",\n selectors: [\n {\n selector: \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item\",\n label: \"Base\",\n },\n {\n selector:\n \":dropdownMenu.ant-dropdown-menu .ant-dropdown-menu-item-active\",\n label: \"Focused\",\n },\n ],\n },\n open: {\n type: \"boolean\",\n description: \"Toggle visibility of dropdown menu in Plasmic Editor\",\n editOnly: true,\n uncontrolledProp: \"fakeOpen\",\n defaultValueHint: false,\n },\n disabled: {\n type: \"boolean\",\n description: \"Whether the dropdown menu is disabled\",\n defaultValueHint: false,\n },\n placement: {\n type: \"choice\",\n options: [\n \"bottomLeft\",\n \"bottomCenter\",\n \"bottomRight\",\n \"topLeft\",\n \"topCenter\",\n \"topRight\",\n ],\n description: \"Placement of popup menu\",\n defaultValueHint: \"bottomLeft\",\n advanced: true,\n },\n trigger: {\n type: \"choice\",\n options: [\n { value: \"click\", label: \"Click\" },\n { value: \"hover\", label: \"Hover\" },\n { value: \"contextMenu\", label: \"Right-click\" },\n ],\n description: \"The trigger mode which executes the dropdown action\",\n defaultValueHint: \"click\",\n },\n useMenuItemsSlot: {\n type: \"boolean\",\n displayName: \"Use menu items slot\",\n advanced: true,\n description:\n \"Instead of configuring a list of menu items, build the menu items using MenuItem elements. This gives you greater control over item styling.\",\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-button\",\n props: {\n children: {\n type: \"text\",\n value: \"Dropdown\",\n },\n },\n },\n ],\n ...({ mergeWithParent: true } as any),\n },\n onAction: {\n type: \"eventHandler\",\n argTypes: [{ name: \"key\", type: \"string\" }],\n } as any,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerDropdown\",\n importName: \"AntdDropdown\",\n });\n}\n"],"names":["_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,yBAAA,CACP,kBACA,WACA,EAAA;AACA,EAAM,MAAA,MAAA,GACJ,qCACC,MAAM;AACL,IAAA,IAAI,GAAM,GAAA,CAAA,CAAA;AACV,IAAA,OAAO,MAAM;AACX,MAAA,OAAO,CAAG,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;AAAA,KACZ,CAAA;AAAA,GACC,GAAA,CAAA;AACL,EAAO,OAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAkB,GAAI,CAAA,CAAC,IAAS,KAAA;AACrC,IAAA,IAAI,CAAC,IAAM,EAAA;AACT,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AACA,IAAA,MAAM,UAAU,cAAK,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;AACrB,IAAI,IAAA,CAAC,QAAQ,GAAK,EAAA;AAChB,MAAA,OAAA,CAAQ,MAAM,MAAO,EAAA,CAAA;AAAA,KACvB;AACA,IAAI,IAAA,UAAA,IAAc,OAAW,IAAA,OAAA,CAAQ,QAAU,EAAA;AAC7C,MAAA,OAAA,CAAQ,QAAW,GAAA,yBAAA,CAA0B,OAAQ,CAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,KACvE;AACA,IAAO,OAAA,OAAA,CAAA;AAAA,GACT,CAAA,CAAA;AACF,CAAA;AAEO,SAAS,aACd,KAQA,EAAA;AACA,EAAA,MASI,EARF,GAAA,KAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAmB,GAAA,KAAA;AAAA,IACnB,aAAe,EAAA,gBAAA;AAAA,IACf,OAAU,GAAA,OAAA;AAAA,IACV,0BAAA;AAAA,GAjDJ,GAmDM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAPH,UAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,kBAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,4BAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAM,MAAA,cAAA,GAAiB,0BAA0B,gBAAgB,CAAA,CAAA;AAEjE,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,IADL,CAAA,EAAA;AAAA,MAEC,OAAA,EAAS,CAAC,OAAO,CAAA;AAAA,MACjB,SAAS,MAAM;AA3DrB,QAAAA,IAAAA,GAAAA,CAAAA;AA4DQ,QAAA,MAAM,gBAAgB,gBAClBA,GAAAA,CAAAA,GAAAA,GAAA,SAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAAA,EAAAA,KAAAA,IAAAA,GAAAA,GAAAA,GAAiB,EACjB,GAAA,KAAA,CAAA,CAAA;AACJ,QAAM,MAAA,KAAA,GAAQ,mBAAmB,KAAY,CAAA,GAAA,cAAA,CAAA;AAC7C,QACE,uBAAA,KAAA,CAAA,aAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,WAAW,CAAG,EAAA,0BAAA,CAAA,CAAA;AAAA,YACd,OAAS,EAAA,CAAC,KAAU,KAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,KAAM,CAAA,GAAA,CAAA;AAAA,YACrC,KAAA;AAAA,WAAA;AAAA,UAEC,aAAA;AAAA,SACH,CAAA;AAAA,OAEJ;AAAA,KAAA,CAAA;AAAA,IAEC,OAAO,QAAa,KAAA,QAAA,mBAAY,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAK,QAAS,CAAS,GAAA,QAAA;AAAA,GAC1D,CAAA;AAEJ,CAAA;AAKO,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAA,uBAAA,CAAwB,QAAQ,YAAc,EAAA;AAAA,IAC5C,IAAM,EAAA,wBAAA;AAAA,IACN,WAAa,EAAA,UAAA;AAAA,IACb,KAAO,EAAA;AAAA,MACL,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,EAAG,CAAA,gBAAA;AAAA,QACpB,iBAAmB,EAAA;AAAA,UACjB,yBAAA;AAAA,UACA,+BAAA;AAAA,UACA,4BAAA;AAAA,UACA,uBAAA;AAAA,SACF;AAAA,QACA,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,GAAK,EAAA,aAAA;AAAA,aACP;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,yBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,GAAK,EAAA,aAAA;AAAA,aACP;AAAA,WACF;AAAA,SACF;AAAA,QACA,kBAAkB,EAAC;AAAA,OACrB;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,CAAC,EAAG,CAAA,gBAAA;AAAA,QACrB,QAAU,EAAA,sBAAA;AAAA,QACV,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,UAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,SAAA;AAAA,YACP,KAAO,EAAA,UAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,0BAA4B,EAAA;AAAA,QAC1B,IAAM,EAAA,iBAAA;AAAA,QACN,SAAW,EAAA,cAAA;AAAA,OACb;AAAA,MACA,aAAe,EAAA;AAAA,QACb,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,SAAW,EAAA;AAAA,UACT;AAAA,YACE,QAAU,EAAA,iCAAA;AAAA,YACV,KAAO,EAAA,MAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,iBAAmB,EAAA;AAAA,QACjB,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,WAAA;AAAA,QACb,SAAW,EAAA;AAAA,UACT;AAAA,YACE,QAAU,EAAA,yDAAA;AAAA,YACV,KAAO,EAAA,MAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,QACE,EAAA,gEAAA;AAAA,YACF,KAAO,EAAA,SAAA;AAAA,WACT;AAAA,SACF;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,sDAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,QACV,gBAAkB,EAAA,UAAA;AAAA,QAClB,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,uCAAA;AAAA,QACb,gBAAkB,EAAA,KAAA;AAAA,OACpB;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,YAAA;AAAA,UACA,cAAA;AAAA,UACA,aAAA;AAAA,UACA,SAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA;AAAA,SACF;AAAA,QACA,WAAa,EAAA,yBAAA;AAAA,QACb,gBAAkB,EAAA,YAAA;AAAA,QAClB,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,UACjC,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,OAAQ,EAAA;AAAA,UACjC,EAAE,KAAA,EAAO,aAAe,EAAA,KAAA,EAAO,aAAc,EAAA;AAAA,SAC/C;AAAA,QACA,WAAa,EAAA,qDAAA;AAAA,QACb,gBAAkB,EAAA,OAAA;AAAA,OACpB;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,qBAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,QACV,WACE,EAAA,8IAAA;AAAA,OACJ;AAAA,MACA,QAAU,EAAA,cAAA,CAAA;AAAA,QACR,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,IAAM,EAAA,sBAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,QAAU,EAAA;AAAA,gBACR,IAAM,EAAA,MAAA;AAAA,gBACN,KAAO,EAAA,UAAA;AAAA,eACT;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACI,EAAA,EAAE,iBAAiB,IAAK,EAAA,CAAA;AAAA,MAE9B,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,KAAO,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,OAC5C;AAAA,KACF;AAAA,IACA,UAAY,EAAA,4CAAA;AAAA,IACZ,UAAY,EAAA,cAAA;AAAA,GACb,CAAA,CAAA;AACH;;;;"}