@plasmicpkgs/antd5 0.0.51 → 0.0.52

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.
Files changed (72) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/antd.esm.js +3448 -0
  3. package/dist/antd.esm.js.map +1 -0
  4. package/dist/index.js +6 -5
  5. package/dist/index.js.map +1 -1
  6. package/package.json +17 -3
  7. package/skinny/package.json +1 -3
  8. package/skinny/{registerButton.js → registerButton.cjs.js} +2 -2
  9. package/skinny/registerButton.cjs.js.map +1 -0
  10. package/skinny/registerButton.esm.js +138 -0
  11. package/skinny/registerButton.esm.js.map +1 -0
  12. package/skinny/{registerCheckbox.js → registerCheckbox.cjs.js} +2 -2
  13. package/skinny/registerCheckbox.cjs.js.map +1 -0
  14. package/skinny/registerCheckbox.esm.js +165 -0
  15. package/skinny/registerCheckbox.esm.js.map +1 -0
  16. package/skinny/{registerConfigProvider.js → registerConfigProvider.cjs.js} +8 -7
  17. package/skinny/registerConfigProvider.cjs.js.map +1 -0
  18. package/skinny/registerConfigProvider.esm.js +526 -0
  19. package/skinny/registerConfigProvider.esm.js.map +1 -0
  20. package/skinny/{registerDropdown.js → registerDropdown.cjs.js} +2 -2
  21. package/skinny/registerDropdown.cjs.js.map +1 -0
  22. package/skinny/registerDropdown.esm.js +147 -0
  23. package/skinny/registerDropdown.esm.js.map +1 -0
  24. package/skinny/{registerForm.js → registerForm.cjs.js} +2 -2
  25. package/skinny/registerForm.cjs.js.map +1 -0
  26. package/skinny/registerForm.esm.js +864 -0
  27. package/skinny/registerForm.esm.js.map +1 -0
  28. package/skinny/{registerInput.js → registerInput.cjs.js} +2 -2
  29. package/skinny/registerInput.cjs.js.map +1 -0
  30. package/skinny/registerInput.esm.js +265 -0
  31. package/skinny/registerInput.esm.js.map +1 -0
  32. package/skinny/{registerMenu.js → registerMenu.cjs.js} +2 -2
  33. package/skinny/registerMenu.cjs.js.map +1 -0
  34. package/skinny/registerMenu.esm.js +206 -0
  35. package/skinny/registerMenu.esm.js.map +1 -0
  36. package/skinny/{registerModal.js → registerModal.cjs.js} +2 -2
  37. package/skinny/registerModal.cjs.js.map +1 -0
  38. package/skinny/registerModal.esm.js +165 -0
  39. package/skinny/registerModal.esm.js.map +1 -0
  40. package/skinny/{registerRadio.js → registerRadio.cjs.js} +2 -2
  41. package/skinny/registerRadio.cjs.js.map +1 -0
  42. package/skinny/registerRadio.esm.js +175 -0
  43. package/skinny/registerRadio.esm.js.map +1 -0
  44. package/skinny/{registerSelect.js → registerSelect.cjs.js} +2 -2
  45. package/skinny/registerSelect.cjs.js.map +1 -0
  46. package/skinny/registerSelect.esm.js +333 -0
  47. package/skinny/registerSelect.esm.js.map +1 -0
  48. package/skinny/{registerTable.js → registerTable.cjs.js} +2 -2
  49. package/skinny/registerTable.cjs.js.map +1 -0
  50. package/skinny/registerTable.esm.js +280 -0
  51. package/skinny/registerTable.esm.js.map +1 -0
  52. package/skinny/{registerUpload.js → registerUpload.cjs.js} +2 -2
  53. package/skinny/registerUpload.cjs.js.map +1 -0
  54. package/skinny/registerUpload.esm.js +187 -0
  55. package/skinny/registerUpload.esm.js.map +1 -0
  56. package/skinny/utils-94b1c934.esm.js +71 -0
  57. package/skinny/utils-94b1c934.esm.js.map +1 -0
  58. package/skinny/{utils-dff55ae0.js → utils-dff55ae0.cjs.js} +1 -1
  59. package/skinny/utils-dff55ae0.cjs.js.map +1 -0
  60. package/skinny/registerButton.js.map +0 -1
  61. package/skinny/registerCheckbox.js.map +0 -1
  62. package/skinny/registerConfigProvider.js.map +0 -1
  63. package/skinny/registerDropdown.js.map +0 -1
  64. package/skinny/registerForm.js.map +0 -1
  65. package/skinny/registerInput.js.map +0 -1
  66. package/skinny/registerMenu.js.map +0 -1
  67. package/skinny/registerModal.js.map +0 -1
  68. package/skinny/registerRadio.js.map +0 -1
  69. package/skinny/registerSelect.js.map +0 -1
  70. package/skinny/registerTable.js.map +0 -1
  71. package/skinny/registerUpload.js.map +0 -1
  72. package/skinny/utils-dff55ae0.js.map +0 -1
@@ -0,0 +1,3448 @@
1
+ import React, { isValidElement, cloneElement } from 'react';
2
+ import { Button, Checkbox, ConfigProvider, theme, message, notification, Dropdown, Menu, Form, Input, InputNumber, Modal, Radio, Select, Table, Upload } from 'antd';
3
+ import registerComponent from '@plasmicapp/host/registerComponent';
4
+ import registerGlobalContext from '@plasmicapp/host/registerGlobalContext';
5
+ import { GlobalActionsProvider, usePlasmicCanvasContext, DataProvider, repeatedElement } from '@plasmicapp/host';
6
+ import registerToken from '@plasmicapp/host/registerToken';
7
+ import { addLoadingStateListener } from '@plasmicapp/query';
8
+ import enUS from 'antd/lib/locale/en_US.js';
9
+ import equal from 'fast-deep-equal';
10
+ import classNames from 'classnames';
11
+
12
+ function makeRegisterGlobalContext(component, meta) {
13
+ return function(loader) {
14
+ if (loader) {
15
+ loader.registerGlobalContext(component, meta);
16
+ } else {
17
+ registerGlobalContext(component, meta);
18
+ }
19
+ };
20
+ }
21
+ function registerComponentHelper(loader, component, meta) {
22
+ if (loader) {
23
+ loader.registerComponent(component, meta);
24
+ } else {
25
+ registerComponent(component, meta);
26
+ }
27
+ }
28
+ function traverseReactEltTree(children, callback) {
29
+ const rec = (elts) => {
30
+ (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {
31
+ var _a;
32
+ if (elt) {
33
+ callback(elt);
34
+ if (elt.children) {
35
+ rec(elt.children);
36
+ }
37
+ if (((_a = elt.props) == null ? void 0 : _a.children) && elt.props.children !== elt.children) {
38
+ rec(elt.props.children);
39
+ }
40
+ }
41
+ });
42
+ };
43
+ rec(children);
44
+ }
45
+ function asArray(x) {
46
+ if (Array.isArray(x)) {
47
+ return x;
48
+ } else if (x == null) {
49
+ return [];
50
+ } else {
51
+ return [x];
52
+ }
53
+ }
54
+ function omit(obj, ...keys) {
55
+ if (Object.keys(obj).length === 0) {
56
+ return obj;
57
+ }
58
+ const res = {};
59
+ for (const key of Object.keys(obj)) {
60
+ if (!keys.includes(key)) {
61
+ res[key] = obj[key];
62
+ }
63
+ }
64
+ return res;
65
+ }
66
+ function usePrevious(value) {
67
+ const prevValue = React.useRef(void 0);
68
+ React.useEffect(() => {
69
+ prevValue.current = value;
70
+ return () => {
71
+ prevValue.current = void 0;
72
+ };
73
+ });
74
+ return prevValue.current;
75
+ }
76
+
77
+ var __defProp$b = Object.defineProperty;
78
+ var __defProps$9 = Object.defineProperties;
79
+ var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
80
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
81
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
82
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
83
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
84
+ var __spreadValues$b = (a, b) => {
85
+ for (var prop in b || (b = {}))
86
+ if (__hasOwnProp$b.call(b, prop))
87
+ __defNormalProp$b(a, prop, b[prop]);
88
+ if (__getOwnPropSymbols$b)
89
+ for (var prop of __getOwnPropSymbols$b(b)) {
90
+ if (__propIsEnum$b.call(b, prop))
91
+ __defNormalProp$b(a, prop, b[prop]);
92
+ }
93
+ return a;
94
+ };
95
+ var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
96
+ var __objRest$9 = (source, exclude) => {
97
+ var target = {};
98
+ for (var prop in source)
99
+ if (__hasOwnProp$b.call(source, prop) && exclude.indexOf(prop) < 0)
100
+ target[prop] = source[prop];
101
+ if (source != null && __getOwnPropSymbols$b)
102
+ for (var prop of __getOwnPropSymbols$b(source)) {
103
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$b.call(source, prop))
104
+ target[prop] = source[prop];
105
+ }
106
+ return target;
107
+ };
108
+ function AntdButton(props) {
109
+ const _a = props, { submitsForm = false } = _a, rest = __objRest$9(_a, ["submitsForm"]);
110
+ const target = props.target === true ? "_blank" : props.target === false ? void 0 : props.target;
111
+ return /* @__PURE__ */ React.createElement(
112
+ Button,
113
+ __spreadProps$9(__spreadValues$b(__spreadProps$9(__spreadValues$b({}, rest), {
114
+ htmlType: submitsForm ? "submit" : "button"
115
+ }), rest), {
116
+ target
117
+ })
118
+ );
119
+ }
120
+ function registerButton(loader) {
121
+ registerComponentHelper(loader, AntdButton, {
122
+ name: "plasmic-antd5-button",
123
+ displayName: "Button",
124
+ props: {
125
+ type: {
126
+ type: "choice",
127
+ options: ["default", "primary", "ghost", "dashed", "link", "text"],
128
+ description: "Can be set to primary, ghost, dashed, link, text, default",
129
+ defaultValueHint: "default"
130
+ },
131
+ size: {
132
+ type: "choice",
133
+ options: ["small", "medium", "large"],
134
+ description: "Set the size of button",
135
+ defaultValueHint: "medium"
136
+ },
137
+ shape: {
138
+ type: "choice",
139
+ options: ["default", "circle", "round"],
140
+ description: "Set the button shape",
141
+ defaultValueHint: "default"
142
+ },
143
+ disabled: {
144
+ type: "boolean",
145
+ description: "Whether the button is disabled",
146
+ defaultValueHint: false
147
+ },
148
+ submitsForm: {
149
+ type: "boolean",
150
+ displayName: "Submits form?",
151
+ defaultValueHint: false,
152
+ description: "whether clicking this button should submit the enclosing form.",
153
+ advanced: true
154
+ },
155
+ ghost: {
156
+ type: "boolean",
157
+ description: "Make background transparent and invert text and border colors",
158
+ defaultValueHint: false,
159
+ advanced: true
160
+ },
161
+ danger: {
162
+ type: "boolean",
163
+ description: "Set the danger status of button",
164
+ defaultValueHint: false,
165
+ advanced: true
166
+ },
167
+ loading: {
168
+ type: "boolean",
169
+ description: "Set the loading status of button",
170
+ defaultValueHint: false,
171
+ advanced: true
172
+ },
173
+ href: {
174
+ type: "string",
175
+ description: "Redirect url of link button"
176
+ },
177
+ target: {
178
+ type: "boolean",
179
+ description: "Whether to open the link in a new window",
180
+ hidden: (props) => !props.href,
181
+ defaultValueHint: false
182
+ },
183
+ children: {
184
+ type: "slot",
185
+ defaultValue: [
186
+ {
187
+ type: "text",
188
+ value: "Button"
189
+ }
190
+ ]
191
+ },
192
+ icon: {
193
+ type: "slot",
194
+ hidePlaceholder: true,
195
+ hidden: () => true
196
+ },
197
+ onClick: {
198
+ type: "eventHandler",
199
+ argTypes: []
200
+ }
201
+ },
202
+ importPath: "@plasmicpkgs/antd5/skinny/registerButton",
203
+ importName: "AntdButton"
204
+ });
205
+ }
206
+
207
+ var __defProp$a = Object.defineProperty;
208
+ var __defProps$8 = Object.defineProperties;
209
+ var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
210
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
211
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
212
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
213
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
214
+ var __spreadValues$a = (a, b) => {
215
+ for (var prop in b || (b = {}))
216
+ if (__hasOwnProp$a.call(b, prop))
217
+ __defNormalProp$a(a, prop, b[prop]);
218
+ if (__getOwnPropSymbols$a)
219
+ for (var prop of __getOwnPropSymbols$a(b)) {
220
+ if (__propIsEnum$a.call(b, prop))
221
+ __defNormalProp$a(a, prop, b[prop]);
222
+ }
223
+ return a;
224
+ };
225
+ var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
226
+ var __objRest$8 = (source, exclude) => {
227
+ var target = {};
228
+ for (var prop in source)
229
+ if (__hasOwnProp$a.call(source, prop) && exclude.indexOf(prop) < 0)
230
+ target[prop] = source[prop];
231
+ if (source != null && __getOwnPropSymbols$a)
232
+ for (var prop of __getOwnPropSymbols$a(source)) {
233
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$a.call(source, prop))
234
+ target[prop] = source[prop];
235
+ }
236
+ return target;
237
+ };
238
+ function AntdCheckbox(props) {
239
+ const _a = props, { onChange } = _a, rest = __objRest$8(_a, ["onChange"]);
240
+ const wrappedOnChange = React.useMemo(() => {
241
+ if (onChange) {
242
+ return (event) => onChange(event.target.checked);
243
+ } else {
244
+ return void 0;
245
+ }
246
+ }, [onChange]);
247
+ return /* @__PURE__ */ React.createElement(Checkbox, __spreadProps$8(__spreadValues$a({}, rest), { onChange: wrappedOnChange }));
248
+ }
249
+ const AntdCheckboxGroup = Checkbox.Group;
250
+ function registerCheckbox(loader) {
251
+ registerComponentHelper(loader, AntdCheckbox, {
252
+ name: "plasmic-antd5-checkbox",
253
+ displayName: "Checkbox",
254
+ props: {
255
+ checked: {
256
+ type: "boolean",
257
+ editOnly: true,
258
+ uncontrolledProp: "defaultChecked",
259
+ description: "Specifies the initial state: whether or not the checkbox is selected",
260
+ defaultValueHint: false
261
+ },
262
+ disabled: {
263
+ type: "boolean",
264
+ description: "If disable checkbox",
265
+ defaultValueHint: false
266
+ },
267
+ indeterminate: {
268
+ type: "boolean",
269
+ description: "The indeterminate checked state of checkbox",
270
+ defaultValueHint: false
271
+ },
272
+ value: {
273
+ type: "string",
274
+ description: "The checkbox value",
275
+ advanced: true
276
+ },
277
+ autoFocus: {
278
+ type: "boolean",
279
+ description: "If get focus when component mounted",
280
+ defaultValueHint: false,
281
+ advanced: true
282
+ },
283
+ children: {
284
+ type: "slot",
285
+ defaultValue: [
286
+ {
287
+ type: "text",
288
+ value: "Checkbox"
289
+ }
290
+ ]
291
+ },
292
+ onChange: {
293
+ type: "eventHandler",
294
+ argTypes: [{ name: "checked", type: "boolean" }]
295
+ }
296
+ },
297
+ states: {
298
+ checked: {
299
+ type: "writable",
300
+ valueProp: "checked",
301
+ onChangeProp: "onChange",
302
+ variableType: "boolean"
303
+ }
304
+ },
305
+ importPath: "@plasmicpkgs/antd5/skinny/registerCheckbox",
306
+ importName: "AntdCheckbox"
307
+ });
308
+ registerComponentHelper(loader, AntdCheckboxGroup, {
309
+ name: "plasmic-antd5-checkbox-group",
310
+ displayName: "Checkbox Group",
311
+ props: {
312
+ value: {
313
+ type: "choice",
314
+ editOnly: true,
315
+ uncontrolledProp: "defaultValue",
316
+ description: "Default selected value",
317
+ multiSelect: true,
318
+ options: (ps) => {
319
+ const options = /* @__PURE__ */ new Set();
320
+ traverseReactEltTree(ps.children, (elt) => {
321
+ var _a;
322
+ if ((elt == null ? void 0 : elt.type) === AntdCheckbox && typeof ((_a = elt == null ? void 0 : elt.props) == null ? void 0 : _a.value) === "string") {
323
+ options.add(elt.props.value);
324
+ }
325
+ });
326
+ return Array.from(options.keys());
327
+ }
328
+ },
329
+ disabled: {
330
+ type: "boolean",
331
+ description: "Disables all checkboxes",
332
+ defaultValueHint: false
333
+ },
334
+ children: {
335
+ type: "slot",
336
+ allowedComponents: ["plasmic-antd5-checkbox"]
337
+ // Error right now when using default slot content with stateful instances
338
+ // defaultValue: [
339
+ // {
340
+ // type: "component",
341
+ // name: "plasmic-antd5-checkbox",
342
+ // },
343
+ // ],
344
+ },
345
+ onChange: {
346
+ type: "eventHandler",
347
+ argTypes: [{ name: "value", type: "object" }]
348
+ }
349
+ },
350
+ states: {
351
+ value: {
352
+ type: "writable",
353
+ valueProp: "value",
354
+ onChangeProp: "onChange",
355
+ variableType: "boolean"
356
+ }
357
+ },
358
+ importPath: "@plasmicpkgs/antd5/skinny/registerCheckbox",
359
+ importName: "AntdCheckboxGroup",
360
+ parentComponentName: "plasmic-antd5-checkbox"
361
+ });
362
+ }
363
+
364
+ var __defProp$9 = Object.defineProperty;
365
+ var __defProps$7 = Object.defineProperties;
366
+ var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
367
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
368
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
369
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
370
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
371
+ var __spreadValues$9 = (a, b) => {
372
+ for (var prop in b || (b = {}))
373
+ if (__hasOwnProp$9.call(b, prop))
374
+ __defNormalProp$9(a, prop, b[prop]);
375
+ if (__getOwnPropSymbols$9)
376
+ for (var prop of __getOwnPropSymbols$9(b)) {
377
+ if (__propIsEnum$9.call(b, prop))
378
+ __defNormalProp$9(a, prop, b[prop]);
379
+ }
380
+ return a;
381
+ };
382
+ var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
383
+ var __objRest$7 = (source, exclude) => {
384
+ var target = {};
385
+ for (var prop in source)
386
+ if (__hasOwnProp$9.call(source, prop) && exclude.indexOf(prop) < 0)
387
+ target[prop] = source[prop];
388
+ if (source != null && __getOwnPropSymbols$9)
389
+ for (var prop of __getOwnPropSymbols$9(source)) {
390
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$9.call(source, prop))
391
+ target[prop] = source[prop];
392
+ }
393
+ return target;
394
+ };
395
+ let defaultLocale = enUS;
396
+ if ("default" in enUS) {
397
+ defaultLocale = enUS.default;
398
+ }
399
+ function themeToAntdConfig(opts) {
400
+ const {
401
+ colorTextBase,
402
+ colorPrimary,
403
+ colorSuccess,
404
+ colorWarning,
405
+ colorInfo,
406
+ fontFamily,
407
+ fontSize,
408
+ lineWidth,
409
+ borderRadius,
410
+ controlHeight,
411
+ sizeUnit,
412
+ sizeStep,
413
+ wireframe
414
+ } = opts;
415
+ return {
416
+ theme: {
417
+ token: Object.fromEntries(
418
+ Object.entries({
419
+ colorTextBase,
420
+ colorPrimary,
421
+ colorSuccess,
422
+ colorWarning,
423
+ colorInfo,
424
+ fontFamily,
425
+ fontSize,
426
+ lineWidth,
427
+ borderRadius,
428
+ controlHeight,
429
+ sizeUnit,
430
+ sizeStep,
431
+ wireframe
432
+ }).filter(([_key, val]) => !!val)
433
+ )
434
+ }
435
+ };
436
+ }
437
+ function AntdConfigProvider(props) {
438
+ const _a = props, { children, themeStyles } = _a, rest = __objRest$7(_a, ["children", "themeStyles"]);
439
+ return /* @__PURE__ */ React.createElement(
440
+ ConfigProvider,
441
+ __spreadValues$9({
442
+ locale: defaultLocale
443
+ }, themeToAntdConfig(__spreadProps$7(__spreadValues$9({}, rest), {
444
+ fontFamily: themeStyles.fontFamily,
445
+ fontSize: themeStyles.fontSize ? parseInt(themeStyles.fontSize) : void 0,
446
+ lineHeight: themeStyles.lineHeight ? parseInt(themeStyles.lineHeight) : void 0,
447
+ colorTextBase: themeStyles.color
448
+ }))),
449
+ /* @__PURE__ */ React.createElement(ForkedApp, null, /* @__PURE__ */ React.createElement(InnerConfigProvider, null, children))
450
+ );
451
+ }
452
+ function normTokenValue(val) {
453
+ if (typeof val === "string") {
454
+ return val.trim();
455
+ } else if (typeof val === "number") {
456
+ return `${val}px`;
457
+ } else {
458
+ return val;
459
+ }
460
+ }
461
+ function InnerConfigProvider(props) {
462
+ const { children } = props;
463
+ const { token } = theme.useToken();
464
+ const makeVarName = (name) => `--antd-${name}`;
465
+ const cssStyles = React.useMemo(
466
+ () => `
467
+ :root {
468
+ ${Object.entries(token).map(([key, val]) => `${makeVarName(key)}:${normTokenValue(val)};`).join("\n")}
469
+ }
470
+ `,
471
+ [token]
472
+ );
473
+ const app = useAppContext();
474
+ const actions = React.useMemo(
475
+ () => ({
476
+ showNotification: (opts) => {
477
+ var _b;
478
+ const _a = opts, rest = __objRest$7(_a, ["type"]);
479
+ app.notification[(_b = opts.type) != null ? _b : "info"](__spreadValues$9({}, rest));
480
+ },
481
+ hideNotifications: () => {
482
+ app.notification.destroy();
483
+ }
484
+ }),
485
+ [app]
486
+ );
487
+ if (!GlobalActionsProvider) {
488
+ warnOutdatedDeps();
489
+ }
490
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("style", { dangerouslySetInnerHTML: { __html: cssStyles } }), GlobalActionsProvider ? /* @__PURE__ */ React.createElement(
491
+ GlobalActionsProvider,
492
+ {
493
+ contextName: "plasmic-antd5-config-provider",
494
+ actions
495
+ },
496
+ children
497
+ ) : children, /* @__PURE__ */ React.createElement(GlobalLoadingIndicator, null));
498
+ }
499
+ let warned = false;
500
+ function warnOutdatedDeps() {
501
+ if (!warned) {
502
+ console.log(
503
+ `You are using a version of @plasmicapp/* that is too old. Please upgrade to the latest version.`
504
+ );
505
+ warned = true;
506
+ }
507
+ }
508
+ function GlobalLoadingIndicator() {
509
+ const app = useAppContext();
510
+ React.useEffect(() => {
511
+ if (addLoadingStateListener) {
512
+ return addLoadingStateListener(
513
+ (isLoading) => {
514
+ if (isLoading) {
515
+ app.message.open({
516
+ content: "Loading...",
517
+ duration: 0,
518
+ key: `plasmic-antd5-global-loading-indicator`
519
+ });
520
+ } else {
521
+ app.message.destroy(`plasmic-antd5-global-loading-indicator`);
522
+ }
523
+ },
524
+ { immediate: true }
525
+ );
526
+ } else {
527
+ warnOutdatedDeps();
528
+ return () => {
529
+ };
530
+ }
531
+ }, [app]);
532
+ return null;
533
+ }
534
+ const ForkedAppContext = React.createContext(void 0);
535
+ function useAppContext() {
536
+ const context = React.useContext(ForkedAppContext);
537
+ if (!context) {
538
+ throw new Error("Must call useAppContext from under ForkedApp");
539
+ }
540
+ return context;
541
+ }
542
+ function ForkedApp(props) {
543
+ const [messageApi, messageContextHolder] = message.useMessage();
544
+ const [notificationApi, notificationContextHolder] = notification.useNotification();
545
+ const appContext = React.useMemo(
546
+ () => ({
547
+ message: messageApi,
548
+ notification: notificationApi
549
+ }),
550
+ [messageApi, notificationApi]
551
+ );
552
+ return /* @__PURE__ */ React.createElement(ForkedAppContext.Provider, { value: appContext }, messageContextHolder, notificationContextHolder, props.children);
553
+ }
554
+ function registerTokens(loader) {
555
+ const regs = [];
556
+ const withoutPrefix = (name, prefix) => {
557
+ if (!prefix) {
558
+ return name;
559
+ }
560
+ const index = name.indexOf(prefix);
561
+ return index === 0 ? name.substring(prefix.length) : name;
562
+ };
563
+ function makeNiceName(name) {
564
+ name = name[0].toUpperCase() + name.substring(1);
565
+ return name.replace(/([a-z])([A-Z])/g, "$1 $2");
566
+ }
567
+ const makeGenericToken = (name, type, removePrefix) => {
568
+ const tokenName = Array.isArray(name) ? name[0] : name;
569
+ const displayName = Array.isArray(name) ? name[1] : makeNiceName(withoutPrefix(name, removePrefix));
570
+ return {
571
+ name: tokenName,
572
+ displayName: `System: ${displayName}`,
573
+ value: `var(--antd-${tokenName})`,
574
+ type
575
+ };
576
+ };
577
+ const colorTokens = [
578
+ // Seed tokens
579
+ "colorPrimary",
580
+ "colorSuccess",
581
+ "colorWarning",
582
+ "colorError",
583
+ "colorInfo",
584
+ // Map tokens
585
+ // - neutral
586
+ "colorText",
587
+ "colorTextSecondary",
588
+ "colorTextTertiary",
589
+ "colorTextQuaternary",
590
+ "colorBorder",
591
+ "colorBorderSecondary",
592
+ "colorFill",
593
+ "colorFillSecondary",
594
+ "colorFillTertiary",
595
+ "colorFillQuaternary",
596
+ "colorBgLayout",
597
+ "colorBgContainer",
598
+ "colorBgElevated",
599
+ "colorBgSpotlight",
600
+ // - primary
601
+ "colorPrimaryBg",
602
+ "colorPrimaryBgHover",
603
+ "colorPrimaryBorder",
604
+ "colorPrimaryBorderHover",
605
+ "colorPrimaryHover",
606
+ "colorPrimaryActive",
607
+ "colorPrimaryTextHover",
608
+ "colorPrimaryText",
609
+ "colorPrimaryTextActive",
610
+ // - success
611
+ "colorSuccessBg",
612
+ "colorSuccessBgHover",
613
+ "colorSuccessBorder",
614
+ "colorSuccessBorderHover",
615
+ "colorSuccessHover",
616
+ "colorSuccessActive",
617
+ "colorSuccessTextHover",
618
+ "colorSuccessText",
619
+ "colorSuccessTextActive",
620
+ // - warning
621
+ "colorWarningBg",
622
+ "colorWarningBgHover",
623
+ "colorWarningBorder",
624
+ "colorWarningBorderHover",
625
+ "colorWarningHover",
626
+ "colorWarningActive",
627
+ "colorWarningTextHover",
628
+ "colorWarningText",
629
+ "colorWarningTextActive",
630
+ // - info
631
+ "colorInfoBg",
632
+ "colorInfoBgHover",
633
+ "colorInfoBorder",
634
+ "colorInfoBorderHover",
635
+ "colorInfoHover",
636
+ "colorInfoActive",
637
+ "colorInfoTextHover",
638
+ "colorInfoText",
639
+ "colorInfoTextActive",
640
+ // - error
641
+ "colorErrorBg",
642
+ "colorErrorBgHover",
643
+ "colorErrorBorder",
644
+ "colorErrorBorderHover",
645
+ "colorErrorHover",
646
+ "colorErrorActive",
647
+ "colorErrorTextHover",
648
+ "colorErrorText",
649
+ "colorErrorTextActive",
650
+ // - other
651
+ "colorWhite",
652
+ "colorBgMask",
653
+ // Alias tokens
654
+ // "colorFillContentHover",
655
+ // "colorFillAlter",
656
+ // "colorFillContent",
657
+ // "colorBgContainerDisabled",
658
+ // "colorBgTextHover",
659
+ // "colorBgTextActive",
660
+ // "colorBorderBg",
661
+ // "colorSplit",
662
+ // "colorTextPlaceholder",
663
+ // "colorTextDisabled",
664
+ // "colorTextHeading",
665
+ // "colorTextLabel",
666
+ // "colorTextDescription",
667
+ // "colorTextLightSolid",
668
+ "colorIcon",
669
+ "colorIconHover",
670
+ "colorLink",
671
+ "colorLinkHover"
672
+ // "colorLinkActive",
673
+ // "colorLinkHighlight",
674
+ // "controlOutline",
675
+ // "controlWarningOutline",
676
+ // "controlErrorOutline",
677
+ // "controlItemBgHover",
678
+ // "controlItemBgActive",
679
+ // "controlItemBgActiveHover",
680
+ // "controlItemBgActiveDisabled",
681
+ ];
682
+ colorTokens.forEach(
683
+ (name) => regs.push(makeGenericToken(name, "color", "color"))
684
+ );
685
+ const spacingTokens = [
686
+ // Seed
687
+ // "lineWidth",
688
+ // "borderRadius",
689
+ // "controlHeight",
690
+ // Map tokens
691
+ // "sizeXXL",
692
+ // "sizeXL",
693
+ // "sizeLG",
694
+ // "sizeMD",
695
+ // "sizeMS",
696
+ // "size",
697
+ // "sizeSM",
698
+ // "sizeXS",
699
+ // "sizeXXS",
700
+ // "controlHeightXS",
701
+ // "controlHeightSM",
702
+ // "controlHeightLG",
703
+ // "lineWidthBold",
704
+ // "borderRadiusXS",
705
+ // "borderRadiusSM",
706
+ // "borderRadiusLG",
707
+ // "borderRadiusOuter",
708
+ // Alias tokens
709
+ // "controlOutlineWidth",
710
+ // "controlInteractiveSize",
711
+ "paddingXXS",
712
+ "paddingXS",
713
+ "paddingSM",
714
+ ["padding", "Padding M"],
715
+ "paddingMD",
716
+ "paddingLG",
717
+ "paddingXL",
718
+ // "paddingContentHorizontalLG",
719
+ // "paddingContentHorizontal",
720
+ // "paddingContentHorizontalSM",
721
+ // "paddingContentVerticalLG",
722
+ // "paddingContentVertical",
723
+ // "paddingContentVerticalSM",
724
+ "marginXXS",
725
+ "marginXS",
726
+ "marginSM",
727
+ ["margin", "Margin M"],
728
+ "marginMD",
729
+ "marginLG",
730
+ "marginXL",
731
+ "marginXXL"
732
+ // "controlPaddingHorizontal",
733
+ // "controlPaddingHorizontalSM",
734
+ ];
735
+ spacingTokens.forEach(
736
+ (token) => regs.push(makeGenericToken(token, "spacing"))
737
+ );
738
+ const fontSizeTokens = [
739
+ // Seed token
740
+ ["fontSize", "M"],
741
+ // Map tokens
742
+ "fontSizeSM",
743
+ "fontSizeLG",
744
+ "fontSizeXL",
745
+ "fontSizeHeading1",
746
+ "fontSizeHeading2",
747
+ "fontSizeHeading3",
748
+ "fontSizeHeading4",
749
+ "fontSizeHeading5"
750
+ ];
751
+ fontSizeTokens.forEach(
752
+ (token) => regs.push(makeGenericToken(token, "font-size", "fontSize"))
753
+ );
754
+ const lineHeightTokens = [
755
+ // Map tokens
756
+ ["lineHeight", "M"],
757
+ "lineHeightLG",
758
+ "lineHeightSM",
759
+ "lineHeightHeading1",
760
+ "lineHeightHeading2",
761
+ "lineHeightHeading3",
762
+ "lineHeightHeading4",
763
+ "lineHeightHeading5"
764
+ ];
765
+ lineHeightTokens.forEach(
766
+ (token) => regs.push(makeGenericToken(token, "line-height", "lineHeight"))
767
+ );
768
+ if (loader) {
769
+ regs.forEach((t) => loader.registerToken(t));
770
+ } else {
771
+ regs.forEach((t) => registerToken(t));
772
+ }
773
+ }
774
+ const registerConfigProvider = makeRegisterGlobalContext(
775
+ AntdConfigProvider,
776
+ __spreadProps$7(__spreadValues$9({
777
+ name: "plasmic-antd5-config-provider",
778
+ displayName: "Ant Design System Settings",
779
+ props: {
780
+ colorPrimary: {
781
+ type: "color",
782
+ defaultValue: "#1677ff"
783
+ },
784
+ colorSuccess: {
785
+ type: "color",
786
+ defaultValue: "#52c41a"
787
+ },
788
+ colorWarning: {
789
+ type: "color",
790
+ defaultValue: "#faad14"
791
+ },
792
+ colorError: {
793
+ type: "color",
794
+ defaultValue: "#ff4d4f"
795
+ },
796
+ colorInfo: {
797
+ type: "color",
798
+ defaultValue: "#1677ff"
799
+ },
800
+ colorBgBase: {
801
+ type: "color",
802
+ defaultValue: "#ffffff"
803
+ },
804
+ lineWidth: {
805
+ type: "number",
806
+ defaultValue: 1
807
+ },
808
+ borderRadius: {
809
+ type: "number",
810
+ defaultValue: 6
811
+ },
812
+ controlHeight: {
813
+ type: "number",
814
+ defaultValue: 32
815
+ },
816
+ sizeUnit: {
817
+ type: "number",
818
+ defaultValue: 4
819
+ },
820
+ sizeStep: {
821
+ type: "number",
822
+ defaultValue: 4
823
+ },
824
+ wireframe: {
825
+ type: "boolean",
826
+ defaultValue: false
827
+ },
828
+ themeStyles: {
829
+ type: "themeStyles"
830
+ }
831
+ }
832
+ }, {
833
+ unstable__globalActions: {
834
+ showNotification: {
835
+ displayName: "Show notification",
836
+ parameters: {
837
+ type: {
838
+ type: "choice",
839
+ options: ["success", "error", "info", "warning"],
840
+ defaultValue: "info"
841
+ },
842
+ message: {
843
+ type: "string",
844
+ defaultValue: "A message for you!"
845
+ },
846
+ description: {
847
+ type: "string",
848
+ defaultValue: "Would you like to learn more?"
849
+ },
850
+ duration: {
851
+ type: "number",
852
+ defaultValueHint: 5
853
+ },
854
+ placement: {
855
+ type: "choice",
856
+ options: [
857
+ "top",
858
+ "topLeft",
859
+ "topRight",
860
+ "bottom",
861
+ "bottomLeft",
862
+ "bottomRight"
863
+ ],
864
+ defaultValueHint: "topRight"
865
+ }
866
+ }
867
+ },
868
+ hideNotifications: {
869
+ displayName: "Hide notifications"
870
+ }
871
+ }
872
+ }), {
873
+ importPath: "@plasmicpkgs/antd5/skinny/registerConfigProvider",
874
+ importName: "AntdConfigProvider"
875
+ })
876
+ );
877
+
878
+ var __defProp$8 = Object.defineProperty;
879
+ var __defProps$6 = Object.defineProperties;
880
+ var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
881
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
882
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
883
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
884
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
885
+ var __spreadValues$8 = (a, b) => {
886
+ for (var prop in b || (b = {}))
887
+ if (__hasOwnProp$8.call(b, prop))
888
+ __defNormalProp$8(a, prop, b[prop]);
889
+ if (__getOwnPropSymbols$8)
890
+ for (var prop of __getOwnPropSymbols$8(b)) {
891
+ if (__propIsEnum$8.call(b, prop))
892
+ __defNormalProp$8(a, prop, b[prop]);
893
+ }
894
+ return a;
895
+ };
896
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
897
+ var __objRest$6 = (source, exclude) => {
898
+ var target = {};
899
+ for (var prop in source)
900
+ if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
901
+ target[prop] = source[prop];
902
+ if (source != null && __getOwnPropSymbols$8)
903
+ for (var prop of __getOwnPropSymbols$8(source)) {
904
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
905
+ target[prop] = source[prop];
906
+ }
907
+ return target;
908
+ };
909
+ function AntdDropdown(props) {
910
+ const _a = props, { children, onAction, menuItems } = _a, rest = __objRest$6(_a, ["children", "onAction", "menuItems"]);
911
+ return /* @__PURE__ */ React.createElement(
912
+ Dropdown,
913
+ __spreadProps$6(__spreadValues$8({}, rest), {
914
+ overlay: () => {
915
+ var _a2;
916
+ const items = (_a2 = menuItems == null ? void 0 : menuItems()) != null ? _a2 : [];
917
+ return /* @__PURE__ */ React.createElement(Menu, { onClick: (event) => onAction == null ? void 0 : onAction(event.key) }, items);
918
+ }
919
+ }),
920
+ typeof children === "string" ? /* @__PURE__ */ React.createElement("div", null, children) : children
921
+ );
922
+ }
923
+ function registerDropdown(loader) {
924
+ registerComponentHelper(loader, AntdDropdown, {
925
+ name: "plasmic-antd5-dropdown",
926
+ displayName: "Dropdown",
927
+ props: {
928
+ open: {
929
+ type: "boolean",
930
+ description: "Toggle visibility of dropdown menu in Plasmic Editor",
931
+ editOnly: true,
932
+ uncontrolledProp: "fakeOpen",
933
+ defaultValueHint: false
934
+ },
935
+ disabled: {
936
+ type: "boolean",
937
+ description: "Whether the dropdown menu is disabled",
938
+ defaultValueHint: false
939
+ },
940
+ arrow: {
941
+ type: "boolean",
942
+ description: "Whether the dropdown arrow should be visible",
943
+ defaultValueHint: false,
944
+ advanced: true
945
+ },
946
+ placement: {
947
+ type: "choice",
948
+ options: [
949
+ "bottomLeft",
950
+ "bottomCenter",
951
+ "bottomRight",
952
+ "topLeft",
953
+ "topCenter",
954
+ "topRight"
955
+ ],
956
+ description: "Placement of popup menu",
957
+ defaultValueHint: "bottomLeft",
958
+ advanced: true
959
+ },
960
+ menuItems: {
961
+ type: "slot",
962
+ allowedComponents: [
963
+ "plasmic-antd5-menu-item",
964
+ "plasmic-antd5-menu-item-group",
965
+ "plasmic-antd5-menu-divider",
966
+ "plasmic-antd5-submenu"
967
+ ],
968
+ defaultValue: [
969
+ {
970
+ type: "component",
971
+ name: "plasmic-antd5-menu-item",
972
+ props: {
973
+ key: "menu-item-1"
974
+ }
975
+ },
976
+ {
977
+ type: "component",
978
+ name: "plasmic-antd5-menu-item",
979
+ props: {
980
+ key: "menu-item-2"
981
+ }
982
+ }
983
+ ],
984
+ renderPropParams: []
985
+ },
986
+ trigger: {
987
+ type: "choice",
988
+ options: ["click", "hover", "contextMenu"],
989
+ description: "The trigger mode which executes the dropdown action",
990
+ defaultValueHint: "hover"
991
+ },
992
+ children: {
993
+ type: "slot",
994
+ defaultValue: [
995
+ {
996
+ type: "component",
997
+ name: "plasmic-antd5-button",
998
+ props: {
999
+ children: {
1000
+ type: "text",
1001
+ value: "Dropdown"
1002
+ }
1003
+ }
1004
+ }
1005
+ ]
1006
+ },
1007
+ onAction: {
1008
+ type: "eventHandler",
1009
+ argTypes: [{ name: "key", type: "string" }]
1010
+ }
1011
+ },
1012
+ importPath: "@plasmicpkgs/antd5/skinny/registerDropdown",
1013
+ importName: "AntdDropdown"
1014
+ });
1015
+ }
1016
+
1017
+ var __defProp$7 = Object.defineProperty;
1018
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
1019
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
1020
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
1021
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1022
+ var __spreadValues$7 = (a, b) => {
1023
+ for (var prop in b || (b = {}))
1024
+ if (__hasOwnProp$7.call(b, prop))
1025
+ __defNormalProp$7(a, prop, b[prop]);
1026
+ if (__getOwnPropSymbols$7)
1027
+ for (var prop of __getOwnPropSymbols$7(b)) {
1028
+ if (__propIsEnum$7.call(b, prop))
1029
+ __defNormalProp$7(a, prop, b[prop]);
1030
+ }
1031
+ return a;
1032
+ };
1033
+ const isBrowser = typeof window !== "undefined";
1034
+ const NONE = Symbol("NONE");
1035
+ isBrowser ? React.useLayoutEffect : React.useEffect;
1036
+ function mergeProps(props, ...restProps) {
1037
+ if (restProps.every((rest) => Object.keys(rest).length === 0)) {
1038
+ return props;
1039
+ }
1040
+ const result = __spreadValues$7({}, props);
1041
+ for (const rest of restProps) {
1042
+ for (const key of Object.keys(rest)) {
1043
+ result[key] = mergePropVals(key, result[key], rest[key]);
1044
+ }
1045
+ }
1046
+ return result;
1047
+ }
1048
+ function updateRef(ref, value) {
1049
+ if (!ref) {
1050
+ return;
1051
+ }
1052
+ if (typeof ref === "function") {
1053
+ ref(value);
1054
+ } else {
1055
+ if (!Object.isFrozen(ref)) {
1056
+ ref.current = value;
1057
+ }
1058
+ }
1059
+ }
1060
+ function mergeRefs(...refs) {
1061
+ return (value) => {
1062
+ for (const ref of refs) {
1063
+ updateRef(ref, value);
1064
+ }
1065
+ };
1066
+ }
1067
+ function mergePropVals(name, val1, val2) {
1068
+ if (val1 === NONE || val2 === NONE) {
1069
+ return null;
1070
+ } else if (val1 == null) {
1071
+ return val2;
1072
+ } else if (val2 == null) {
1073
+ return val1;
1074
+ } else if (name === "className") {
1075
+ return classNames(val1, val2);
1076
+ } else if (name === "style") {
1077
+ return __spreadValues$7(__spreadValues$7({}, val1), val2);
1078
+ } else if (name === "ref") {
1079
+ return mergeRefs(val1, val2);
1080
+ } else if (typeof val1 !== typeof val2) {
1081
+ return val2;
1082
+ } else if (name.startsWith("on") && typeof val1 === "function") {
1083
+ return (...args) => {
1084
+ let res;
1085
+ if (typeof val1 === "function") {
1086
+ res = val1(...args);
1087
+ }
1088
+ if (typeof val2 === "function") {
1089
+ res = val2(...args);
1090
+ }
1091
+ return res;
1092
+ };
1093
+ } else {
1094
+ return val2;
1095
+ }
1096
+ }
1097
+
1098
+ var __defProp$6 = Object.defineProperty;
1099
+ var __defProps$5 = Object.defineProperties;
1100
+ var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
1101
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
1102
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
1103
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
1104
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1105
+ var __spreadValues$6 = (a, b) => {
1106
+ for (var prop in b || (b = {}))
1107
+ if (__hasOwnProp$6.call(b, prop))
1108
+ __defNormalProp$6(a, prop, b[prop]);
1109
+ if (__getOwnPropSymbols$6)
1110
+ for (var prop of __getOwnPropSymbols$6(b)) {
1111
+ if (__propIsEnum$6.call(b, prop))
1112
+ __defNormalProp$6(a, prop, b[prop]);
1113
+ }
1114
+ return a;
1115
+ };
1116
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
1117
+ var __objRest$5 = (source, exclude) => {
1118
+ var target = {};
1119
+ for (var prop in source)
1120
+ if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
1121
+ target[prop] = source[prop];
1122
+ if (source != null && __getOwnPropSymbols$6)
1123
+ for (var prop of __getOwnPropSymbols$6(source)) {
1124
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))
1125
+ target[prop] = source[prop];
1126
+ }
1127
+ return target;
1128
+ };
1129
+ const FormItem = Form.Item;
1130
+ const FormList = Form.List;
1131
+ const PathContext = React.createContext({ relativePath: [], fullPath: [] });
1132
+ const InternalFormInstanceContext = React.createContext(void 0);
1133
+ const Internal = (props) => {
1134
+ var _b, _c;
1135
+ const [form] = Form.useForm();
1136
+ const values = form.getFieldsValue(true);
1137
+ const lastValue = React.useRef(values);
1138
+ const _a = props, { extendedOnValuesChange, setRemountKey } = _a, rest = __objRest$5(_a, ["extendedOnValuesChange", "setRemountKey"]);
1139
+ const childrenNode = typeof props.children === "function" ? props.children(values, form) : props.children;
1140
+ const fireOnValuesChange = React.useCallback(() => {
1141
+ const values2 = form.getFieldsValue(true);
1142
+ if (!equal(values2, lastValue.current)) {
1143
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(values2);
1144
+ lastValue.current = values2;
1145
+ }
1146
+ }, [form, lastValue]);
1147
+ React.useEffect(() => {
1148
+ fireOnValuesChange();
1149
+ }, []);
1150
+ return /* @__PURE__ */ React.createElement(
1151
+ InternalFormInstanceContext.Provider,
1152
+ {
1153
+ value: {
1154
+ fireOnValuesChange,
1155
+ forceRemount: () => setRemountKey((k) => k + 1)
1156
+ }
1157
+ },
1158
+ /* @__PURE__ */ React.createElement(
1159
+ Form,
1160
+ __spreadProps$5(__spreadValues$6({}, rest), {
1161
+ key: props.initialValues ? JSON.stringify(props.initialValues) : void 0,
1162
+ onValuesChange: (...args) => {
1163
+ var _a2;
1164
+ (_a2 = props.onValuesChange) == null ? void 0 : _a2.call(props, ...args);
1165
+ extendedOnValuesChange == null ? void 0 : extendedOnValuesChange(args[1]);
1166
+ },
1167
+ form,
1168
+ labelCol: ((_b = props.labelCol) == null ? void 0 : _b.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.labelCol,
1169
+ wrapperCol: ((_c = props.wrapperCol) == null ? void 0 : _c.horizontalOnly) && props.layout !== "horizontal" ? void 0 : props.wrapperCol
1170
+ }),
1171
+ /* @__PURE__ */ React.createElement("style", null, `
1172
+ .ant-form-item-explain + div, .ant-form-item-margin-offset {
1173
+ display: none;
1174
+ }
1175
+ `),
1176
+ childrenNode
1177
+ )
1178
+ );
1179
+ };
1180
+ function FormWrapper(props) {
1181
+ const [remountKey, setRemountKey] = React.useState(0);
1182
+ const previousInitialValues = usePrevious(props.initialValues);
1183
+ React.useEffect(() => {
1184
+ if (previousInitialValues !== props.initialValues && JSON.stringify(previousInitialValues) !== JSON.stringify(props.initialValues)) {
1185
+ setRemountKey((k) => k + 1);
1186
+ }
1187
+ }, [previousInitialValues, props.initialValues]);
1188
+ return /* @__PURE__ */ React.createElement(Internal, __spreadProps$5(__spreadValues$6({ key: remountKey }, props), { setRemountKey }));
1189
+ }
1190
+ const COMMON_ACTIONS = [
1191
+ {
1192
+ type: "button-action",
1193
+ label: "Append new Form Item",
1194
+ onClick: ({ studioOps }) => {
1195
+ studioOps.appendToSlot(
1196
+ {
1197
+ type: "component",
1198
+ name: "plasmic-antd5-form-item"
1199
+ },
1200
+ "children"
1201
+ );
1202
+ }
1203
+ }
1204
+ // {
1205
+ // type: "button-action" as const,
1206
+ // label: "Append new Form Group",
1207
+ // onClick: ({ studioOps }: ActionProps<any>) => {
1208
+ // studioOps.appendToSlot(
1209
+ // {
1210
+ // type: "component",
1211
+ // name: "plasmic-antd5-form-group",
1212
+ // },
1213
+ // "children"
1214
+ // );
1215
+ // },
1216
+ // },
1217
+ // {
1218
+ // type: "button-action" as const,
1219
+ // label: "Append new Form List",
1220
+ // onClick: ({ studioOps }: ActionProps<any>) => {
1221
+ // studioOps.appendToSlot(
1222
+ // {
1223
+ // type: "component",
1224
+ // name: "plasmic-antd5-form-list",
1225
+ // },
1226
+ // "children"
1227
+ // );
1228
+ // },
1229
+ // },
1230
+ ];
1231
+ function registerForm(loader) {
1232
+ const colProp = (displayName, defaultValue) => ({
1233
+ type: "object",
1234
+ displayName,
1235
+ advanced: true,
1236
+ fields: {
1237
+ span: {
1238
+ type: "number",
1239
+ displayName: "Grid columns",
1240
+ description: "The number of grid columns to span (24 columns available)",
1241
+ min: 1,
1242
+ max: 24
1243
+ },
1244
+ offset: {
1245
+ type: "number",
1246
+ displayName: "Offset columns",
1247
+ description: "Number of grid columns to skip from the left",
1248
+ min: 0,
1249
+ max: 23
1250
+ },
1251
+ horizontalOnly: {
1252
+ type: "boolean",
1253
+ displayName: "Horizontal only",
1254
+ description: "Only apply to horizontal layout"
1255
+ }
1256
+ },
1257
+ defaultValue
1258
+ });
1259
+ registerComponentHelper(loader, FormWrapper, {
1260
+ name: "plasmic-antd5-form",
1261
+ displayName: "Form",
1262
+ defaultStyles: {
1263
+ display: "plasmic-content-layout",
1264
+ gridRowGap: "10px"
1265
+ },
1266
+ props: {
1267
+ children: {
1268
+ type: "slot",
1269
+ defaultValue: [
1270
+ {
1271
+ type: "component",
1272
+ name: "plasmic-antd5-form-item",
1273
+ props: {
1274
+ label: {
1275
+ type: "text",
1276
+ value: "Name"
1277
+ },
1278
+ name: "name",
1279
+ children: {
1280
+ type: "component",
1281
+ name: "plasmic-antd5-input"
1282
+ }
1283
+ }
1284
+ },
1285
+ {
1286
+ type: "component",
1287
+ name: "plasmic-antd5-form-item",
1288
+ props: {
1289
+ label: {
1290
+ type: "text",
1291
+ value: "Message"
1292
+ },
1293
+ name: "message",
1294
+ children: {
1295
+ type: "component",
1296
+ name: "plasmic-antd5-textarea"
1297
+ }
1298
+ }
1299
+ },
1300
+ {
1301
+ type: "component",
1302
+ name: "plasmic-antd5-button",
1303
+ props: {
1304
+ children: {
1305
+ type: "text",
1306
+ value: "Submit"
1307
+ },
1308
+ submitsForm: true
1309
+ }
1310
+ }
1311
+ ]
1312
+ },
1313
+ initialValues: {
1314
+ type: "object"
1315
+ },
1316
+ layout: {
1317
+ type: "choice",
1318
+ options: ["horizontal", "vertical", "inline"],
1319
+ defaultValue: "vertical"
1320
+ },
1321
+ labelAlign: {
1322
+ type: "choice",
1323
+ options: ["left", "right"],
1324
+ defaultValueHint: "right",
1325
+ advanced: true
1326
+ },
1327
+ labelCol: colProp("Label layout", {
1328
+ span: 8,
1329
+ horizontalOnly: true
1330
+ }),
1331
+ wrapperCol: colProp("Field layout", {
1332
+ span: 16,
1333
+ horizontalOnly: true
1334
+ }),
1335
+ colon: {
1336
+ type: "boolean",
1337
+ description: `Show a colon after labels by default (only for horizontal layout)`,
1338
+ defaultValueHint: true,
1339
+ advanced: true,
1340
+ hidden: (props) => {
1341
+ var _a;
1342
+ return ((_a = props.layout) != null ? _a : "horizontal") !== "horizontal";
1343
+ }
1344
+ },
1345
+ requiredMark: {
1346
+ displayName: "Required/optional mark",
1347
+ type: "choice",
1348
+ options: [
1349
+ {
1350
+ value: "optional",
1351
+ label: "Indicate optional fields"
1352
+ },
1353
+ {
1354
+ value: true,
1355
+ label: "Indicate required fields with asterisk"
1356
+ },
1357
+ {
1358
+ value: false,
1359
+ label: "Show no indicators"
1360
+ }
1361
+ ],
1362
+ advanced: true,
1363
+ defaultValueHint: true
1364
+ },
1365
+ extendedOnValuesChange: {
1366
+ type: "eventHandler",
1367
+ displayName: "On values change",
1368
+ argTypes: [
1369
+ {
1370
+ name: "changedValues",
1371
+ type: "object"
1372
+ },
1373
+ {
1374
+ name: "allValues",
1375
+ type: "object"
1376
+ }
1377
+ ]
1378
+ },
1379
+ onFinish: {
1380
+ type: "eventHandler",
1381
+ displayName: "On submit",
1382
+ argTypes: [
1383
+ {
1384
+ name: "values",
1385
+ type: "object"
1386
+ }
1387
+ ]
1388
+ },
1389
+ onFinishFailed: {
1390
+ // function({ values, errorFields, outOfDate })
1391
+ type: "eventHandler",
1392
+ displayName: "On invalid submit",
1393
+ argTypes: [
1394
+ {
1395
+ name: "data",
1396
+ type: "object"
1397
+ }
1398
+ ]
1399
+ },
1400
+ validateTrigger: {
1401
+ type: "choice",
1402
+ options: ["onSubmit", "onChange", "onBlur"],
1403
+ multiSelect: true,
1404
+ defaultValueHint: ["onChange"],
1405
+ advanced: true
1406
+ }
1407
+ },
1408
+ actions: COMMON_ACTIONS,
1409
+ states: {
1410
+ value: {
1411
+ type: "readonly",
1412
+ variableType: "object",
1413
+ onChangeProp: "extendedOnValuesChange"
1414
+ }
1415
+ },
1416
+ importPath: "@plasmicpkgs/antd5/skinny/registerForm",
1417
+ importName: "FormWrapper"
1418
+ });
1419
+ }
1420
+ function plasmicRulesToAntdRules(plasmicRules) {
1421
+ var _a, _b, _c;
1422
+ const rules = [];
1423
+ for (const plasmicRule of plasmicRules) {
1424
+ switch (plasmicRule.ruleType) {
1425
+ case "enum":
1426
+ rules.push({
1427
+ type: "enum",
1428
+ enum: (_b = (_a = plasmicRule.options) == null ? void 0 : _a.map((opt) => opt.value)) != null ? _b : [],
1429
+ message: plasmicRule.message
1430
+ });
1431
+ break;
1432
+ case "required":
1433
+ rules.push({
1434
+ required: true,
1435
+ message: plasmicRule.message
1436
+ });
1437
+ break;
1438
+ case "regex":
1439
+ rules.push({
1440
+ pattern: new RegExp((_c = plasmicRule.pattern) != null ? _c : ""),
1441
+ message: plasmicRule.message
1442
+ });
1443
+ break;
1444
+ case "whitespace":
1445
+ rules.push({
1446
+ whitespace: true,
1447
+ message: plasmicRule.message
1448
+ });
1449
+ break;
1450
+ case "min":
1451
+ case "max":
1452
+ rules.push({
1453
+ [plasmicRule.ruleType]: plasmicRule.length,
1454
+ message: plasmicRule.message
1455
+ });
1456
+ break;
1457
+ case "advanced":
1458
+ rules.push({
1459
+ validator: (...args) => {
1460
+ var _a2;
1461
+ return ((_a2 = plasmicRule.custom) == null ? void 0 : _a2.apply(null, args)) ? Promise.resolve() : Promise.reject();
1462
+ },
1463
+ message: plasmicRule.message
1464
+ });
1465
+ }
1466
+ }
1467
+ return rules;
1468
+ }
1469
+ const useFormItemRelativeName = (name) => {
1470
+ const pathCtx = React.useContext(PathContext);
1471
+ return typeof name === "object" ? [...pathCtx.relativePath, ...name] : typeof name === "string" ? [...pathCtx.relativePath, name] : void 0;
1472
+ };
1473
+ const useFormItemFullName = (name) => {
1474
+ const pathCtx = React.useContext(PathContext);
1475
+ return typeof name === "object" ? [...pathCtx.fullPath, ...name] : typeof name === "string" ? [...pathCtx.fullPath, name] : void 0;
1476
+ };
1477
+ function useFormInstanceMaybe() {
1478
+ return Form.useFormInstance();
1479
+ }
1480
+ function FormItemWrapper(props) {
1481
+ var _a, _b;
1482
+ const relativeFormItemName = useFormItemRelativeName(props.name);
1483
+ const fullFormItemName = useFormItemFullName(props.name);
1484
+ const rules = props.rules ? plasmicRulesToAntdRules(props.rules) : void 0;
1485
+ const inCanvas = !!usePlasmicCanvasContext();
1486
+ if (inCanvas) {
1487
+ const form = useFormInstanceMaybe();
1488
+ const prevPropValues = React.useRef({
1489
+ initialValue: props.initialValue,
1490
+ name: props.name
1491
+ });
1492
+ const internalFormCtx = React.useContext(InternalFormInstanceContext);
1493
+ const { fireOnValuesChange, forceRemount } = internalFormCtx != null ? internalFormCtx : {};
1494
+ (_a = props.setControlContextData) == null ? void 0 : _a.call(props, {
1495
+ internalFormCtx
1496
+ });
1497
+ React.useEffect(() => {
1498
+ if (prevPropValues.current.name !== props.name) {
1499
+ forceRemount == null ? void 0 : forceRemount();
1500
+ }
1501
+ if (!fullFormItemName || (form == null ? void 0 : form.getFieldValue(fullFormItemName)) !== prevPropValues.current.initialValue) {
1502
+ return;
1503
+ }
1504
+ form == null ? void 0 : form.setFieldValue(fullFormItemName, props.initialValue);
1505
+ prevPropValues.current.initialValue = props.initialValue;
1506
+ fireOnValuesChange == null ? void 0 : fireOnValuesChange();
1507
+ }, [form, props.initialValue, fullFormItemName]);
1508
+ }
1509
+ return /* @__PURE__ */ React.createElement(
1510
+ FormItem,
1511
+ __spreadValues$6(__spreadProps$5(__spreadValues$6({}, omit(props, "rules")), {
1512
+ label: props.noLabel ? void 0 : props.label,
1513
+ name: relativeFormItemName,
1514
+ rules
1515
+ }), props.helpTextMode === "extra" ? { extra: props.help } : props.helpTextMode === "help" ? (
1516
+ // Never show validation errors in this mode, even if user didn't specify help
1517
+ { help: (_b = props.help) != null ? _b : "" }
1518
+ ) : {}),
1519
+ props.customizeProps ? /* @__PURE__ */ React.createElement(FormItemForwarder, { formItemProps: props }) : props.children
1520
+ );
1521
+ }
1522
+ function FormItemForwarder(_a) {
1523
+ var _b = _a, { formItemProps } = _b, props = __objRest$5(_b, ["formItemProps"]);
1524
+ var _a2;
1525
+ const status = Form.Item.useStatus();
1526
+ const internalFormCtx = React.useContext(InternalFormInstanceContext);
1527
+ const data = {
1528
+ status: status.status
1529
+ };
1530
+ (_a2 = props.setControlContextData) == null ? void 0 : _a2.call(props, {
1531
+ internalFormCtx,
1532
+ status
1533
+ });
1534
+ return React.Children.map(formItemProps.children, (child, i) => {
1535
+ var _a3;
1536
+ const baseProps = __spreadValues$6(__spreadValues$6({}, (_a3 = child.props) != null ? _a3 : {}), props);
1537
+ return i === 0 && isValidElement(child) ? cloneElement(
1538
+ child,
1539
+ mergeProps(baseProps, formItemProps.customizeProps(data, baseProps))
1540
+ ) : child;
1541
+ });
1542
+ }
1543
+ function registerFormItem(loader) {
1544
+ registerComponentHelper(loader, FormItemWrapper, {
1545
+ name: "plasmic-antd5-form-item",
1546
+ displayName: "Form Item",
1547
+ parentComponentName: "plasmic-antd5-form",
1548
+ props: {
1549
+ label: {
1550
+ type: "slot",
1551
+ defaultValue: {
1552
+ type: "text",
1553
+ value: "Label"
1554
+ }
1555
+ },
1556
+ children: {
1557
+ type: "slot",
1558
+ defaultValue: {
1559
+ type: "component",
1560
+ name: "plasmic-antd5-input"
1561
+ }
1562
+ },
1563
+ name: {
1564
+ type: "string"
1565
+ },
1566
+ initialValue: {
1567
+ type: "string"
1568
+ },
1569
+ rules: {
1570
+ type: "formValidationRules"
1571
+ },
1572
+ noLabel: {
1573
+ type: "boolean",
1574
+ advanced: true
1575
+ },
1576
+ colon: {
1577
+ type: "boolean",
1578
+ defaultValueHint: true,
1579
+ advanced: true,
1580
+ hidden: () => true
1581
+ },
1582
+ labelAlign: {
1583
+ type: "choice",
1584
+ options: ["left", "right"],
1585
+ advanced: true
1586
+ },
1587
+ hidden: {
1588
+ type: "boolean",
1589
+ advanced: true
1590
+ },
1591
+ validateTrigger: {
1592
+ type: "choice",
1593
+ options: ["onSubmit", "onChange", "onBlur"],
1594
+ multiSelect: true,
1595
+ advanced: true
1596
+ },
1597
+ shouldUpdate: {
1598
+ type: "boolean",
1599
+ advanced: true,
1600
+ displayName: "Always re-render",
1601
+ description: "Form items normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render."
1602
+ },
1603
+ dependencies: {
1604
+ type: "array",
1605
+ advanced: true,
1606
+ displayName: "Dependencies",
1607
+ description: "Form items can depend on other form items. This forces it to reevaluate the validation rules when the other form item changes."
1608
+ },
1609
+ helpTextMode: {
1610
+ type: "choice",
1611
+ displayName: "Help text",
1612
+ options: [
1613
+ {
1614
+ value: "errors",
1615
+ label: "Validation errors"
1616
+ },
1617
+ {
1618
+ value: "extra",
1619
+ label: "Custom help text and validation errors"
1620
+ },
1621
+ {
1622
+ value: "help",
1623
+ label: "Custom help text, no validation errors"
1624
+ }
1625
+ ],
1626
+ defaultValueHint: "Show validation errors",
1627
+ description: "What to show in the help text. Edit help text by editing the 'help' slot in the outline."
1628
+ },
1629
+ help: {
1630
+ type: "slot",
1631
+ hidden: (ps) => {
1632
+ var _a;
1633
+ return !["extra", "help"].includes((_a = ps.helpTextMode) != null ? _a : "");
1634
+ },
1635
+ hidePlaceholder: true
1636
+ // advanced: true,
1637
+ },
1638
+ customizeProps: {
1639
+ type: "function",
1640
+ description: "Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)",
1641
+ argNames: ["fieldData"],
1642
+ argValues: (_ps, ctx) => {
1643
+ var _a;
1644
+ return [
1645
+ {
1646
+ status: (_a = ctx == null ? void 0 : ctx.status) == null ? void 0 : _a.status
1647
+ }
1648
+ ];
1649
+ },
1650
+ advanced: true
1651
+ },
1652
+ noStyle: {
1653
+ type: "boolean",
1654
+ displayName: "Field only",
1655
+ description: "Don't render anything but the wrapped field component - so no label, help text, validation error, etc.",
1656
+ advanced: true
1657
+ }
1658
+ },
1659
+ importPath: "@plasmicpkgs/antd5/skinny/registerForm",
1660
+ importName: "FormItemWrapper"
1661
+ });
1662
+ }
1663
+ function FormGroup(props) {
1664
+ const pathCtx = React.useContext(PathContext);
1665
+ return /* @__PURE__ */ React.createElement(
1666
+ PathContext.Provider,
1667
+ {
1668
+ value: {
1669
+ relativePath: [...pathCtx.relativePath, props.name],
1670
+ fullPath: [...pathCtx.fullPath, props.name]
1671
+ }
1672
+ },
1673
+ props.children
1674
+ );
1675
+ }
1676
+ function registerFormGroup(loader) {
1677
+ registerComponentHelper(loader, FormGroup, {
1678
+ name: "plasmic-antd5-form-group",
1679
+ displayName: "Form Group",
1680
+ parentComponentName: "plasmic-antd5-form",
1681
+ actions: COMMON_ACTIONS,
1682
+ props: {
1683
+ name: {
1684
+ type: "string"
1685
+ },
1686
+ children: {
1687
+ type: "slot"
1688
+ }
1689
+ },
1690
+ importPath: "@plasmicpkgs/antd5/skinny/registerForm",
1691
+ importName: "FormGroup"
1692
+ });
1693
+ }
1694
+ const FormListWrapper = React.forwardRef(function FormListWrapper2(props, ref) {
1695
+ var _a;
1696
+ const relativeFormItemName = useFormItemRelativeName(props.name);
1697
+ const fullFormItemName = useFormItemFullName(props.name);
1698
+ const operationsRef = React.useRef(
1699
+ void 0
1700
+ );
1701
+ React.useImperativeHandle(
1702
+ ref,
1703
+ () => ({
1704
+ add(defaultValue, insertIndex) {
1705
+ if (operationsRef.current) {
1706
+ const { add } = operationsRef.current[1];
1707
+ add(defaultValue, insertIndex);
1708
+ }
1709
+ },
1710
+ remove(index) {
1711
+ if (operationsRef.current) {
1712
+ const { remove } = operationsRef.current[1];
1713
+ remove(index);
1714
+ }
1715
+ },
1716
+ move(from, to) {
1717
+ if (operationsRef.current) {
1718
+ const { move } = operationsRef.current[1];
1719
+ move(from, to);
1720
+ }
1721
+ }
1722
+ }),
1723
+ [operationsRef]
1724
+ );
1725
+ const inCanvas = !!usePlasmicCanvasContext();
1726
+ if (inCanvas) {
1727
+ const form = useFormInstanceMaybe();
1728
+ const prevPropValues = React.useRef({
1729
+ initialValue: props.initialValue,
1730
+ name: props.name
1731
+ });
1732
+ const { fireOnValuesChange, forceRemount } = (_a = React.useContext(InternalFormInstanceContext)) != null ? _a : {};
1733
+ React.useEffect(() => {
1734
+ if (prevPropValues.current.name !== props.name) {
1735
+ forceRemount == null ? void 0 : forceRemount();
1736
+ }
1737
+ if (fullFormItemName) {
1738
+ form == null ? void 0 : form.setFieldValue(fullFormItemName, props.initialValue);
1739
+ prevPropValues.current.initialValue = props.initialValue;
1740
+ fireOnValuesChange == null ? void 0 : fireOnValuesChange();
1741
+ }
1742
+ }, [props.initialValue, fullFormItemName]);
1743
+ }
1744
+ return /* @__PURE__ */ React.createElement(FormList, __spreadProps$5(__spreadValues$6({}, props), { name: relativeFormItemName != null ? relativeFormItemName : [] }), (...args) => {
1745
+ operationsRef.current = args;
1746
+ return args[0].map((field, index) => /* @__PURE__ */ React.createElement(
1747
+ PathContext.Provider,
1748
+ {
1749
+ value: {
1750
+ relativePath: [field.name],
1751
+ fullPath: [...fullFormItemName != null ? fullFormItemName : [], field.name]
1752
+ }
1753
+ },
1754
+ /* @__PURE__ */ React.createElement(DataProvider, { name: "currentField", data: field }, /* @__PURE__ */ React.createElement(DataProvider, { name: "currentFieldIndex", data: index }, repeatedElement(index, props.children)))
1755
+ ));
1756
+ });
1757
+ });
1758
+ function registerFormList(loader) {
1759
+ registerComponentHelper(loader, FormListWrapper, {
1760
+ name: "plasmic-antd5-form-list",
1761
+ parentComponentName: "plasmic-antd5-form",
1762
+ displayName: "Form List",
1763
+ actions: COMMON_ACTIONS,
1764
+ props: {
1765
+ children: {
1766
+ type: "slot",
1767
+ defaultValue: [
1768
+ {
1769
+ type: "hbox",
1770
+ children: [
1771
+ {
1772
+ type: "component",
1773
+ name: "plasmic-antd5-form-item",
1774
+ props: {
1775
+ name: "firstName",
1776
+ label: {
1777
+ type: "text",
1778
+ value: "First name"
1779
+ },
1780
+ children: {
1781
+ type: "component",
1782
+ name: "plasmic-antd5-input"
1783
+ }
1784
+ }
1785
+ },
1786
+ {
1787
+ type: "component",
1788
+ name: "plasmic-antd5-form-item",
1789
+ props: {
1790
+ name: "lastName",
1791
+ label: {
1792
+ type: "text",
1793
+ value: "Last name"
1794
+ },
1795
+ children: {
1796
+ type: "component",
1797
+ name: "plasmic-antd5-input"
1798
+ }
1799
+ }
1800
+ }
1801
+ ]
1802
+ }
1803
+ ]
1804
+ },
1805
+ name: {
1806
+ type: "string",
1807
+ defaultValue: "guests"
1808
+ },
1809
+ initialValue: {
1810
+ type: "array",
1811
+ defaultValue: [
1812
+ {
1813
+ firstName: "Jane",
1814
+ lastName: "Doe"
1815
+ },
1816
+ {
1817
+ firstName: "John",
1818
+ lastName: "Smith"
1819
+ }
1820
+ ]
1821
+ }
1822
+ },
1823
+ unstable__refActions: {
1824
+ add: {
1825
+ displayName: "Add an item",
1826
+ parameters: [
1827
+ {
1828
+ name: "defaultValue",
1829
+ displayName: "Default value",
1830
+ type: "object"
1831
+ },
1832
+ {
1833
+ name: "insertIndex",
1834
+ displayName: "Insert index",
1835
+ type: "number"
1836
+ }
1837
+ ]
1838
+ },
1839
+ remove: {
1840
+ displayName: "Remove an item",
1841
+ parameters: [
1842
+ {
1843
+ name: "index",
1844
+ displayName: "Index",
1845
+ type: "number"
1846
+ }
1847
+ ]
1848
+ },
1849
+ move: {
1850
+ displayName: "Move field",
1851
+ parameters: [
1852
+ {
1853
+ name: "from",
1854
+ displayName: "From",
1855
+ type: "number"
1856
+ },
1857
+ {
1858
+ name: "to",
1859
+ displayName: "To",
1860
+ type: "number"
1861
+ }
1862
+ ]
1863
+ }
1864
+ },
1865
+ importPath: "@plasmicpkgs/antd5/skinny/registerForm",
1866
+ importName: "FormListWrapper"
1867
+ });
1868
+ }
1869
+
1870
+ var __defProp$5 = Object.defineProperty;
1871
+ var __defProps$4 = Object.defineProperties;
1872
+ var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
1873
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
1874
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
1875
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
1876
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1877
+ var __spreadValues$5 = (a, b) => {
1878
+ for (var prop in b || (b = {}))
1879
+ if (__hasOwnProp$5.call(b, prop))
1880
+ __defNormalProp$5(a, prop, b[prop]);
1881
+ if (__getOwnPropSymbols$5)
1882
+ for (var prop of __getOwnPropSymbols$5(b)) {
1883
+ if (__propIsEnum$5.call(b, prop))
1884
+ __defNormalProp$5(a, prop, b[prop]);
1885
+ }
1886
+ return a;
1887
+ };
1888
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
1889
+ const AntdInput = Input;
1890
+ const AntdTextArea = Input.TextArea;
1891
+ const AntdPassword = Input.Password;
1892
+ const AntdInputNumber = InputNumber;
1893
+ const inputHelpers = {
1894
+ states: {
1895
+ value: {
1896
+ onChangeArgsToValue: (e) => {
1897
+ return e.target.value;
1898
+ }
1899
+ }
1900
+ }
1901
+ };
1902
+ const COMMON_HELPERS_CONFIG = {
1903
+ helpers: inputHelpers,
1904
+ importName: "inputHelpers",
1905
+ importPath: "@plasmicpkgs/antd5/skinny/registerInput"
1906
+ };
1907
+ const COMMON_STATES = {
1908
+ value: {
1909
+ type: "writable",
1910
+ valueProp: "value",
1911
+ variableType: "text",
1912
+ onChangeProp: "onChange"
1913
+ }
1914
+ };
1915
+ const COMMON_DECORATOR_PROPS = {
1916
+ prefix: {
1917
+ type: "slot",
1918
+ hidePlaceholder: true
1919
+ },
1920
+ suffix: {
1921
+ type: "slot",
1922
+ hidePlaceholder: true
1923
+ },
1924
+ addonAfter: {
1925
+ type: "slot",
1926
+ hidePlaceholder: true
1927
+ },
1928
+ addonBefore: {
1929
+ type: "slot",
1930
+ hidePlaceholder: true
1931
+ }
1932
+ };
1933
+ const COMMON_ADVANCED_PROPS = {
1934
+ maxLength: {
1935
+ type: "number",
1936
+ advanced: true
1937
+ },
1938
+ bordered: {
1939
+ type: "boolean",
1940
+ advanced: true,
1941
+ defaultValueHint: true
1942
+ },
1943
+ allowClear: {
1944
+ type: "boolean",
1945
+ advanced: true
1946
+ },
1947
+ autoFocus: {
1948
+ type: "boolean",
1949
+ advanced: true
1950
+ },
1951
+ readOnly: {
1952
+ type: "boolean",
1953
+ advanced: true
1954
+ }
1955
+ };
1956
+ const COMMON_EVENT_HANDLERS = {
1957
+ onChange: {
1958
+ type: "eventHandler",
1959
+ argTypes: [
1960
+ {
1961
+ name: "event",
1962
+ type: "object"
1963
+ }
1964
+ ]
1965
+ },
1966
+ onPressEnter: {
1967
+ type: "eventHandler",
1968
+ argTypes: [
1969
+ {
1970
+ name: "event",
1971
+ type: "object"
1972
+ }
1973
+ ]
1974
+ }
1975
+ };
1976
+ function registerInput(loader) {
1977
+ registerComponentHelper(loader, AntdInput, {
1978
+ name: "plasmic-antd5-input",
1979
+ displayName: "Input",
1980
+ props: __spreadValues$5(__spreadValues$5(__spreadValues$5({
1981
+ value: {
1982
+ type: "string"
1983
+ },
1984
+ placholder: {
1985
+ type: "string"
1986
+ },
1987
+ size: {
1988
+ type: "choice",
1989
+ options: ["large", "middle", "small"]
1990
+ },
1991
+ disabled: {
1992
+ type: "boolean"
1993
+ },
1994
+ type: {
1995
+ type: "choice",
1996
+ options: [
1997
+ "text",
1998
+ "password",
1999
+ "number",
2000
+ "date",
2001
+ "datetime-local",
2002
+ "time",
2003
+ "email",
2004
+ "tel",
2005
+ "hidden"
2006
+ ],
2007
+ defaultValueHint: "text"
2008
+ }
2009
+ }, COMMON_ADVANCED_PROPS), COMMON_DECORATOR_PROPS), COMMON_EVENT_HANDLERS),
2010
+ states: __spreadValues$5({}, COMMON_STATES),
2011
+ componentHelpers: COMMON_HELPERS_CONFIG,
2012
+ importPath: "@plasmicpkgs/antd5/skinny/registerInput",
2013
+ importName: "AntdInput"
2014
+ });
2015
+ }
2016
+ function registerTextArea(loader) {
2017
+ registerComponentHelper(loader, AntdTextArea, {
2018
+ name: "plasmic-antd5-textarea",
2019
+ parentComponentName: "plasmic-antd5-input",
2020
+ displayName: "Text Area",
2021
+ props: __spreadValues$5({
2022
+ value: {
2023
+ type: "string"
2024
+ },
2025
+ placholder: {
2026
+ type: "string"
2027
+ },
2028
+ disabled: {
2029
+ type: "boolean"
2030
+ },
2031
+ maxLength: {
2032
+ type: "number",
2033
+ advanced: true
2034
+ },
2035
+ bordered: {
2036
+ type: "boolean",
2037
+ advanced: true,
2038
+ defaultValueHint: true
2039
+ }
2040
+ }, COMMON_EVENT_HANDLERS),
2041
+ states: __spreadValues$5({}, COMMON_STATES),
2042
+ componentHelpers: COMMON_HELPERS_CONFIG,
2043
+ importPath: "@plasmicpkgs/antd5/skinny/registerInput",
2044
+ importName: "AntdTextArea"
2045
+ });
2046
+ }
2047
+ function registerPasswordInput(loader) {
2048
+ registerComponentHelper(loader, AntdPassword, {
2049
+ name: "plasmic-antd5-input-password",
2050
+ parentComponentName: "plasmic-antd5-input",
2051
+ displayName: "Password Input",
2052
+ props: __spreadValues$5({
2053
+ value: {
2054
+ type: "string"
2055
+ },
2056
+ placholder: {
2057
+ type: "string"
2058
+ },
2059
+ disabled: {
2060
+ type: "boolean"
2061
+ },
2062
+ maxLength: {
2063
+ type: "number",
2064
+ advanced: true
2065
+ },
2066
+ bordered: {
2067
+ type: "boolean",
2068
+ advanced: true,
2069
+ defaultValueHint: true
2070
+ }
2071
+ }, COMMON_EVENT_HANDLERS),
2072
+ states: __spreadValues$5({}, COMMON_STATES),
2073
+ componentHelpers: COMMON_HELPERS_CONFIG,
2074
+ importPath: "@plasmicpkgs/antd5/skinny/registerInput",
2075
+ importName: "AntdPassword"
2076
+ });
2077
+ }
2078
+ function registerNumberInput(loader) {
2079
+ registerComponentHelper(loader, AntdInputNumber, {
2080
+ name: "plasmic-antd5-input-number",
2081
+ parentComponentName: "plasmic-antd5-input",
2082
+ displayName: "Number Input",
2083
+ props: __spreadProps$4(__spreadValues$5(__spreadValues$5(__spreadValues$5({
2084
+ value: {
2085
+ type: "number"
2086
+ },
2087
+ placholder: {
2088
+ type: "string"
2089
+ },
2090
+ disabled: {
2091
+ type: "boolean"
2092
+ },
2093
+ max: {
2094
+ type: "number"
2095
+ },
2096
+ min: {
2097
+ type: "number"
2098
+ },
2099
+ step: {
2100
+ type: "number",
2101
+ helpText: "Increment or decrement step"
2102
+ },
2103
+ controls: {
2104
+ type: "boolean",
2105
+ displayName: "Show add/minus controls?",
2106
+ advanced: true
2107
+ }
2108
+ }, COMMON_DECORATOR_PROPS), COMMON_ADVANCED_PROPS), COMMON_EVENT_HANDLERS), {
2109
+ // onChange directly called with the number
2110
+ onChange: {
2111
+ type: "eventHandler",
2112
+ argTypes: [
2113
+ {
2114
+ name: "value",
2115
+ type: "number"
2116
+ }
2117
+ ]
2118
+ }
2119
+ }),
2120
+ states: __spreadValues$5({}, COMMON_STATES),
2121
+ // don't need component helpers
2122
+ importPath: "@plasmicpkgs/antd5/skinny/registerInput",
2123
+ importName: "AntdInputNumber"
2124
+ });
2125
+ }
2126
+
2127
+ const AntdMenu = Menu;
2128
+ const AntdMenuDivider = Menu.Divider;
2129
+ const AntdMenuItem = Menu.Item;
2130
+ const AntdMenuItemGroup = Menu.ItemGroup;
2131
+ const AntdSubMenu = Menu.SubMenu;
2132
+ const allowedMenuComponents = [
2133
+ "plasmic-antd5-menu-item",
2134
+ "plasmic-antd5-menu-divider",
2135
+ "plasmic-antd5-submenu",
2136
+ "plasmic-antd5-menu-item-group"
2137
+ ];
2138
+ function registerMenu(loader) {
2139
+ registerComponentHelper(loader, AntdMenu, {
2140
+ name: "plasmic-antd5-menu",
2141
+ displayName: "Menu",
2142
+ props: {
2143
+ expandIcon: {
2144
+ type: "slot",
2145
+ hidePlaceholder: true
2146
+ },
2147
+ mode: {
2148
+ type: "choice",
2149
+ options: ["horizontal", "vertical", "inline"],
2150
+ description: "Type of menu",
2151
+ defaultValueHint: "vertical"
2152
+ },
2153
+ multiple: {
2154
+ type: "boolean",
2155
+ description: "Allows selection of multiple items",
2156
+ defaultValueHint: false
2157
+ },
2158
+ triggerSubMenuAction: {
2159
+ type: "choice",
2160
+ options: ["hover", "click"],
2161
+ description: "Which action can trigger submenu open/close",
2162
+ defaultValueHint: "hover",
2163
+ advanced: true
2164
+ },
2165
+ children: {
2166
+ type: "slot",
2167
+ allowedComponents: allowedMenuComponents,
2168
+ defaultValue: [
2169
+ {
2170
+ type: "component",
2171
+ name: "plasmic-antd5-menu-item",
2172
+ props: {
2173
+ key: "menuItemKey1"
2174
+ }
2175
+ },
2176
+ {
2177
+ type: "component",
2178
+ name: "plasmic-antd5-menu-item",
2179
+ props: {
2180
+ key: "menuItemKey2"
2181
+ }
2182
+ }
2183
+ ]
2184
+ },
2185
+ onSelect: {
2186
+ type: "eventHandler",
2187
+ argTypes: [{ name: "key", type: "string" }]
2188
+ }
2189
+ },
2190
+ importPath: "@plasmicpkgs/antd5/skinny/registerMenu",
2191
+ importName: "AntdMenu"
2192
+ });
2193
+ registerComponentHelper(loader, AntdMenuItem, {
2194
+ name: "plasmic-antd5-menu-item",
2195
+ displayName: "Menu Item",
2196
+ props: {
2197
+ danger: {
2198
+ type: "boolean",
2199
+ description: "Display the danger style",
2200
+ defaultValueHint: false
2201
+ },
2202
+ disabled: {
2203
+ type: "boolean",
2204
+ description: "Whether disabled select",
2205
+ defaultValueHint: false
2206
+ },
2207
+ key: {
2208
+ type: "string",
2209
+ displayName: "Unique key",
2210
+ description: "Unique ID of the menu item. Used to determine which item is selected.",
2211
+ defaultValue: "menuItemKey"
2212
+ },
2213
+ title: {
2214
+ type: "string",
2215
+ description: "Set display title for collapsed item"
2216
+ },
2217
+ children: {
2218
+ type: "slot",
2219
+ defaultValue: [
2220
+ {
2221
+ type: "text",
2222
+ value: "Menu item"
2223
+ }
2224
+ ]
2225
+ },
2226
+ onClick: {
2227
+ type: "eventHandler",
2228
+ argTypes: []
2229
+ }
2230
+ },
2231
+ importPath: "@plasmicpkgs/antd5/skinny/registerMenu",
2232
+ importName: "AntdMenuItem",
2233
+ parentComponentName: "plasmic-antd5-menu"
2234
+ });
2235
+ registerComponentHelper(loader, AntdMenuItemGroup, {
2236
+ name: "plasmic-antd5-menu-item-group",
2237
+ displayName: "Item Group",
2238
+ props: {
2239
+ title: {
2240
+ type: "slot",
2241
+ defaultValue: [
2242
+ {
2243
+ type: "text",
2244
+ value: "Group"
2245
+ }
2246
+ ]
2247
+ },
2248
+ children: {
2249
+ type: "slot",
2250
+ allowedComponents: allowedMenuComponents,
2251
+ defaultValue: [
2252
+ {
2253
+ type: "component",
2254
+ name: "plasmic-antd5-menu-item"
2255
+ }
2256
+ ]
2257
+ }
2258
+ },
2259
+ importPath: "@plasmicpkgs/antd5/skinny/registerMenu",
2260
+ importName: "AntdMenuItemGroup",
2261
+ parentComponentName: "plasmic-antd5-menu"
2262
+ });
2263
+ registerComponentHelper(loader, AntdMenuDivider, {
2264
+ name: "plasmic-antd5-menu-divider",
2265
+ displayName: "Menu Divider",
2266
+ props: {
2267
+ dashed: {
2268
+ type: "boolean",
2269
+ description: "Whether line is dashed",
2270
+ defaultValueHint: false
2271
+ }
2272
+ },
2273
+ importPath: "@plasmicpkgs/antd5/skinny/registerMenu",
2274
+ importName: "AntdMenuDivider",
2275
+ parentComponentName: "plasmic-antd5-menu"
2276
+ });
2277
+ registerComponentHelper(loader, AntdSubMenu, {
2278
+ name: "plasmic-antd5-submenu",
2279
+ displayName: "Sub Menu",
2280
+ props: {
2281
+ disabled: {
2282
+ type: "boolean",
2283
+ description: "Whether sub-menu is disabled",
2284
+ defaultValueHint: false
2285
+ },
2286
+ key: {
2287
+ type: "string",
2288
+ displayName: "Unique key",
2289
+ description: "Unique ID of the sub-menu. Used to determine which item is selected.",
2290
+ advanced: true
2291
+ },
2292
+ title: {
2293
+ type: "slot",
2294
+ defaultValue: [
2295
+ {
2296
+ type: "text",
2297
+ value: "Sub-menu"
2298
+ }
2299
+ ]
2300
+ },
2301
+ children: {
2302
+ type: "slot",
2303
+ allowedComponents: allowedMenuComponents,
2304
+ defaultValue: [1, 2].map((i) => ({
2305
+ type: "component",
2306
+ name: "plasmic-antd5-menu-item",
2307
+ props: {
2308
+ key: `subMenuItemKey${i}`,
2309
+ children: [
2310
+ {
2311
+ type: "text",
2312
+ value: `Sub-menu item ${i}`
2313
+ }
2314
+ ]
2315
+ }
2316
+ }))
2317
+ }
2318
+ },
2319
+ importPath: "@plasmicpkgs/antd5/skinny/registerMenu",
2320
+ importName: "AntdSubMenu",
2321
+ parentComponentName: "plasmic-antd5-menu"
2322
+ });
2323
+ }
2324
+
2325
+ var __defProp$4 = Object.defineProperty;
2326
+ var __defProps$3 = Object.defineProperties;
2327
+ var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
2328
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2329
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2330
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2331
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2332
+ var __spreadValues$4 = (a, b) => {
2333
+ for (var prop in b || (b = {}))
2334
+ if (__hasOwnProp$4.call(b, prop))
2335
+ __defNormalProp$4(a, prop, b[prop]);
2336
+ if (__getOwnPropSymbols$4)
2337
+ for (var prop of __getOwnPropSymbols$4(b)) {
2338
+ if (__propIsEnum$4.call(b, prop))
2339
+ __defNormalProp$4(a, prop, b[prop]);
2340
+ }
2341
+ return a;
2342
+ };
2343
+ var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
2344
+ var __objRest$4 = (source, exclude) => {
2345
+ var target = {};
2346
+ for (var prop in source)
2347
+ if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
2348
+ target[prop] = source[prop];
2349
+ if (source != null && __getOwnPropSymbols$4)
2350
+ for (var prop of __getOwnPropSymbols$4(source)) {
2351
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
2352
+ target[prop] = source[prop];
2353
+ }
2354
+ return target;
2355
+ };
2356
+ function AntdModal(props) {
2357
+ const _a = props, { onOpenChange, onOk, onCancel, open, footer } = _a, rest = __objRest$4(_a, ["onOpenChange", "onOk", "onCancel", "open", "footer"]);
2358
+ const memoOnOk = React.useMemo(() => {
2359
+ if (onOpenChange || onOk) {
2360
+ return (e) => {
2361
+ onOpenChange == null ? void 0 : onOpenChange(false);
2362
+ onOk == null ? void 0 : onOk(e);
2363
+ };
2364
+ } else {
2365
+ return void 0;
2366
+ }
2367
+ }, [onOpenChange, onOk]);
2368
+ const memoOnCancel = React.useMemo(() => {
2369
+ if (onOpenChange || onCancel) {
2370
+ return (e) => {
2371
+ onOpenChange == null ? void 0 : onOpenChange(false);
2372
+ onCancel == null ? void 0 : onCancel(e);
2373
+ };
2374
+ } else {
2375
+ return void 0;
2376
+ }
2377
+ }, [onOpenChange, onCancel]);
2378
+ return /* @__PURE__ */ React.createElement(
2379
+ Modal,
2380
+ __spreadProps$3(__spreadValues$4({}, rest), {
2381
+ onOk: memoOnOk,
2382
+ onCancel: memoOnCancel,
2383
+ open,
2384
+ footer: footer != null ? footer : void 0
2385
+ })
2386
+ );
2387
+ }
2388
+ function registerModal(loader) {
2389
+ registerComponentHelper(loader, AntdModal, {
2390
+ name: "plasmic-antd5-modal",
2391
+ displayName: "Modal",
2392
+ props: {
2393
+ open: {
2394
+ type: "boolean"
2395
+ },
2396
+ children: {
2397
+ type: "slot",
2398
+ defaultValue: {
2399
+ type: "vbox",
2400
+ children: ["Modal content"]
2401
+ }
2402
+ },
2403
+ title: {
2404
+ type: "slot",
2405
+ defaultValue: "Modal title"
2406
+ },
2407
+ footer: {
2408
+ type: "slot",
2409
+ hidePlaceholder: true
2410
+ },
2411
+ closeIcon: {
2412
+ type: "slot",
2413
+ hidePlaceholder: true
2414
+ },
2415
+ onOk: {
2416
+ type: "eventHandler",
2417
+ argTypes: []
2418
+ },
2419
+ onCancel: {
2420
+ type: "eventHandler",
2421
+ argTypes: []
2422
+ },
2423
+ okText: {
2424
+ type: "string",
2425
+ hidden: (ps) => !!ps.footer,
2426
+ advanced: true
2427
+ },
2428
+ cancelText: {
2429
+ type: "string",
2430
+ hidden: (ps) => !!ps.footer,
2431
+ advanced: true
2432
+ },
2433
+ onOpenChange: {
2434
+ type: "eventHandler",
2435
+ argTypes: [{ name: "open", type: "boolean" }]
2436
+ },
2437
+ modalScopeClassName: {
2438
+ type: "styleScopeClass",
2439
+ scopeName: "modal"
2440
+ },
2441
+ modalClassName: {
2442
+ type: "class",
2443
+ displayName: "Modal content styles",
2444
+ noSelf: true,
2445
+ selectors: [
2446
+ {
2447
+ selector: ":modal .ant-modal .ant-modal-content",
2448
+ label: "Base"
2449
+ }
2450
+ ],
2451
+ advanced: true
2452
+ },
2453
+ closeButtonClassName: {
2454
+ type: "class",
2455
+ displayName: "Close button styles",
2456
+ noSelf: true,
2457
+ selectors: [
2458
+ {
2459
+ selector: ":modal .ant-modal .ant-modal-close",
2460
+ label: "Base"
2461
+ }
2462
+ ],
2463
+ advanced: true
2464
+ },
2465
+ defaultStylesClassName: {
2466
+ type: "themeResetClass"
2467
+ }
2468
+ },
2469
+ states: {
2470
+ open: {
2471
+ type: "writable",
2472
+ valueProp: "open",
2473
+ onChangeProp: "onOpenChange",
2474
+ variableType: "boolean"
2475
+ }
2476
+ },
2477
+ importPath: "@plasmicpkgs/antd5/skinny/registerModal",
2478
+ importName: "AntdModal"
2479
+ });
2480
+ }
2481
+
2482
+ var __defProp$3 = Object.defineProperty;
2483
+ var __defProps$2 = Object.defineProperties;
2484
+ var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
2485
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
2486
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
2487
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
2488
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2489
+ var __spreadValues$3 = (a, b) => {
2490
+ for (var prop in b || (b = {}))
2491
+ if (__hasOwnProp$3.call(b, prop))
2492
+ __defNormalProp$3(a, prop, b[prop]);
2493
+ if (__getOwnPropSymbols$3)
2494
+ for (var prop of __getOwnPropSymbols$3(b)) {
2495
+ if (__propIsEnum$3.call(b, prop))
2496
+ __defNormalProp$3(a, prop, b[prop]);
2497
+ }
2498
+ return a;
2499
+ };
2500
+ var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
2501
+ var __objRest$3 = (source, exclude) => {
2502
+ var target = {};
2503
+ for (var prop in source)
2504
+ if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
2505
+ target[prop] = source[prop];
2506
+ if (source != null && __getOwnPropSymbols$3)
2507
+ for (var prop of __getOwnPropSymbols$3(source)) {
2508
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
2509
+ target[prop] = source[prop];
2510
+ }
2511
+ return target;
2512
+ };
2513
+ const RadioGroup = Radio.Group;
2514
+ const AntdRadio = Radio;
2515
+ Radio.Button;
2516
+ function AntdRadioGroup(props) {
2517
+ const _a = props, { onChange } = _a, rest = __objRest$3(_a, ["onChange"]);
2518
+ const wrappedOnChange = React.useMemo(() => {
2519
+ if (onChange) {
2520
+ return (event) => onChange(event.target.value);
2521
+ } else {
2522
+ return void 0;
2523
+ }
2524
+ }, [onChange]);
2525
+ return /* @__PURE__ */ React.createElement(RadioGroup, __spreadProps$2(__spreadValues$3({}, rest), { onChange: wrappedOnChange }));
2526
+ }
2527
+ function registerRadio(loader) {
2528
+ registerComponentHelper(loader, AntdRadio, {
2529
+ name: "plasmic-antd5-radio",
2530
+ displayName: "Radio",
2531
+ props: {
2532
+ value: {
2533
+ type: "string",
2534
+ description: "The radio option value"
2535
+ },
2536
+ disabled: {
2537
+ type: "boolean",
2538
+ defaultValueHint: false
2539
+ },
2540
+ autoFocus: {
2541
+ type: "boolean",
2542
+ description: "If focused when first shown",
2543
+ defaultValueHint: false,
2544
+ advanced: true
2545
+ },
2546
+ children: {
2547
+ type: "slot",
2548
+ defaultValue: [
2549
+ {
2550
+ type: "text",
2551
+ value: "Radio"
2552
+ }
2553
+ ]
2554
+ }
2555
+ },
2556
+ importPath: "@plasmicpkgs/antd5/skinny/registerRadio",
2557
+ importName: "AntdRadio",
2558
+ parentComponentName: "plasmic-antd5-radio-group"
2559
+ });
2560
+ registerComponentHelper(loader, AntdRadio, {
2561
+ name: "plasmic-antd5-radio-button",
2562
+ displayName: "Radio Button",
2563
+ props: {
2564
+ value: {
2565
+ type: "string",
2566
+ description: "The radio option value"
2567
+ },
2568
+ disabled: {
2569
+ type: "boolean",
2570
+ defaultValueHint: false
2571
+ },
2572
+ autoFocus: {
2573
+ type: "boolean",
2574
+ description: "If focused when first shown",
2575
+ defaultValueHint: false,
2576
+ advanced: true
2577
+ },
2578
+ children: {
2579
+ type: "slot",
2580
+ defaultValue: [
2581
+ {
2582
+ type: "text",
2583
+ value: "Radio"
2584
+ }
2585
+ ]
2586
+ }
2587
+ },
2588
+ importPath: "@plasmicpkgs/antd5/skinny/registerRadio",
2589
+ importName: "AntdRadioButton",
2590
+ parentComponentName: "plasmic-antd5-radio-group"
2591
+ });
2592
+ registerComponentHelper(loader, AntdRadioGroup, {
2593
+ name: "plasmic-antd5-radio-group",
2594
+ displayName: "Radio Group",
2595
+ props: {
2596
+ value: {
2597
+ type: "choice",
2598
+ editOnly: true,
2599
+ uncontrolledProp: "defaultValue",
2600
+ description: "Default selected value",
2601
+ options: (ps) => {
2602
+ const options = /* @__PURE__ */ new Set();
2603
+ traverseReactEltTree(ps.children, (elt) => {
2604
+ var _a;
2605
+ if (typeof ((_a = elt == null ? void 0 : elt.props) == null ? void 0 : _a.value) === "string") {
2606
+ options.add(elt.props.value);
2607
+ }
2608
+ });
2609
+ return Array.from(options.keys());
2610
+ }
2611
+ },
2612
+ disabled: {
2613
+ type: "boolean",
2614
+ description: "Disables all radios",
2615
+ defaultValueHint: false
2616
+ },
2617
+ children: {
2618
+ type: "slot",
2619
+ allowedComponents: [
2620
+ "plasmic-antd5-radio",
2621
+ "plasmic-antd5-radio-button"
2622
+ ]
2623
+ // Error right now when using default slot content with stateful instances
2624
+ // defaultValue: [
2625
+ // {
2626
+ // type: "component",
2627
+ // name: "plasmic-antd5-radio",
2628
+ // },
2629
+ // ],
2630
+ },
2631
+ onChange: {
2632
+ type: "eventHandler",
2633
+ argTypes: [{ name: "value", type: "string" }]
2634
+ }
2635
+ },
2636
+ states: {
2637
+ value: {
2638
+ type: "writable",
2639
+ valueProp: "value",
2640
+ onChangeProp: "onChange",
2641
+ variableType: "text"
2642
+ }
2643
+ },
2644
+ importPath: "@plasmicpkgs/antd5/skinny/registerRadio",
2645
+ importName: "AntdRadioGroup"
2646
+ });
2647
+ }
2648
+
2649
+ var __defProp$2 = Object.defineProperty;
2650
+ var __defProps$1 = Object.defineProperties;
2651
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
2652
+ var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
2653
+ var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
2654
+ var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
2655
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2656
+ var __spreadValues$2 = (a, b) => {
2657
+ for (var prop in b || (b = {}))
2658
+ if (__hasOwnProp$2.call(b, prop))
2659
+ __defNormalProp$2(a, prop, b[prop]);
2660
+ if (__getOwnPropSymbols$2)
2661
+ for (var prop of __getOwnPropSymbols$2(b)) {
2662
+ if (__propIsEnum$2.call(b, prop))
2663
+ __defNormalProp$2(a, prop, b[prop]);
2664
+ }
2665
+ return a;
2666
+ };
2667
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
2668
+ var __objRest$2 = (source, exclude) => {
2669
+ var target = {};
2670
+ for (var prop in source)
2671
+ if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
2672
+ target[prop] = source[prop];
2673
+ if (source != null && __getOwnPropSymbols$2)
2674
+ for (var prop of __getOwnPropSymbols$2(source)) {
2675
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
2676
+ target[prop] = source[prop];
2677
+ }
2678
+ return target;
2679
+ };
2680
+ const AntdOption = Select.Option;
2681
+ const AntdOptionGroup = Select.OptGroup;
2682
+ function AntdSelect(props) {
2683
+ const _a = props, {
2684
+ popupClassName,
2685
+ popupScopeClassName,
2686
+ defaultStylesClassName,
2687
+ suffixIcon,
2688
+ mode,
2689
+ useChildren
2690
+ } = _a, rest = __objRest$2(_a, [
2691
+ "popupClassName",
2692
+ "popupScopeClassName",
2693
+ "defaultStylesClassName",
2694
+ "suffixIcon",
2695
+ "mode",
2696
+ "useChildren"
2697
+ ]);
2698
+ const curated = __spreadValues$2({}, rest);
2699
+ if (useChildren) {
2700
+ curated.options = void 0;
2701
+ }
2702
+ return /* @__PURE__ */ React.createElement(
2703
+ Select,
2704
+ __spreadValues$2(__spreadProps$1(__spreadValues$2({}, curated), {
2705
+ mode: !mode || mode === "single" ? void 0 : mode,
2706
+ popupClassName: `${defaultStylesClassName} ${popupScopeClassName} ${popupClassName}`
2707
+ }), suffixIcon && { suffixIcon })
2708
+ );
2709
+ }
2710
+ function registerSelect(loader) {
2711
+ registerComponentHelper(loader, AntdSelect, {
2712
+ name: "plasmic-antd5-select",
2713
+ displayName: "Select",
2714
+ props: {
2715
+ options: {
2716
+ type: "array",
2717
+ hidden: (ps) => !!ps.useChildren,
2718
+ itemType: {
2719
+ type: "object",
2720
+ nameFunc: (item) => item.label,
2721
+ fields: {
2722
+ value: "string",
2723
+ label: "string"
2724
+ }
2725
+ },
2726
+ defaultValue: [
2727
+ {
2728
+ value: "option1",
2729
+ label: "Option 1"
2730
+ },
2731
+ {
2732
+ value: "option2",
2733
+ label: "Option 2"
2734
+ }
2735
+ ]
2736
+ },
2737
+ useChildren: {
2738
+ displayName: "Use slot",
2739
+ type: "boolean",
2740
+ defaultValueHint: false,
2741
+ description: "Instead of configuring a list of options, customize the contents of the Select by dragging and dropping options in the outline/canvas, inside the 'children' slot. Lets you use any content or formatting within the Options, and also use Option Groups."
2742
+ },
2743
+ children: {
2744
+ type: "slot",
2745
+ allowedComponents: [
2746
+ "plasmic-antd5-option",
2747
+ "plasmic-antd5-option-group"
2748
+ ],
2749
+ hidden: (ps) => !ps.useChildren
2750
+ },
2751
+ placeholder: {
2752
+ type: "slot",
2753
+ defaultValue: "Select..."
2754
+ },
2755
+ suffixIcon: {
2756
+ type: "slot",
2757
+ hidePlaceholder: true
2758
+ },
2759
+ open: {
2760
+ type: "boolean",
2761
+ editOnly: true,
2762
+ uncontrolledProp: "defaultOpen"
2763
+ },
2764
+ value: {
2765
+ type: "choice",
2766
+ displayName: "Selected value",
2767
+ editOnly: true,
2768
+ uncontrolledProp: "defaultValue",
2769
+ description: "Initial selected option",
2770
+ multiSelect: (ps) => ps.mode === "multiple",
2771
+ options: (ps) => {
2772
+ var _a;
2773
+ const options = /* @__PURE__ */ new Set();
2774
+ if (!ps.useChildren) {
2775
+ return ((_a = ps.options) != null ? _a : []).map((o) => {
2776
+ var _a2;
2777
+ return {
2778
+ value: o.value || "",
2779
+ label: (_a2 = o.label) != null ? _a2 : o.value || ""
2780
+ };
2781
+ });
2782
+ } else {
2783
+ traverseReactEltTree(ps.children, (elt) => {
2784
+ var _a2;
2785
+ if ((elt == null ? void 0 : elt.type) === Select.Option && typeof ((_a2 = elt == null ? void 0 : elt.props) == null ? void 0 : _a2.value) === "string") {
2786
+ options.add(elt.props.value);
2787
+ }
2788
+ });
2789
+ }
2790
+ return Array.from(options.keys());
2791
+ }
2792
+ },
2793
+ mode: {
2794
+ type: "choice",
2795
+ options: ["single", "multiple"],
2796
+ defaultValueHint: "single"
2797
+ },
2798
+ size: {
2799
+ type: "choice",
2800
+ options: ["small", "middle", "large"]
2801
+ },
2802
+ disabled: {
2803
+ type: "boolean",
2804
+ defaultValueHint: false
2805
+ },
2806
+ showSearch: {
2807
+ type: "boolean",
2808
+ defaultValueHint: false,
2809
+ advanced: true
2810
+ },
2811
+ status: {
2812
+ type: "choice",
2813
+ options: ["error", "warning"],
2814
+ advanced: true
2815
+ },
2816
+ bordered: {
2817
+ type: "boolean",
2818
+ defaultValueHint: true
2819
+ },
2820
+ autoFocus: {
2821
+ type: "boolean",
2822
+ displayName: "Focus automatically",
2823
+ defaultValueHint: false,
2824
+ advanced: true
2825
+ },
2826
+ onChange: {
2827
+ type: "eventHandler",
2828
+ argTypes: [
2829
+ { name: "value", type: "string" },
2830
+ { name: "option", type: "object" }
2831
+ ]
2832
+ },
2833
+ dropdownMatchSelectWidth: {
2834
+ type: "boolean",
2835
+ displayName: "Should dropdown match trigger button width?",
2836
+ defaultValueHint: true,
2837
+ advanced: true
2838
+ },
2839
+ triggerClassName: {
2840
+ type: "class",
2841
+ displayName: "Trigger styles",
2842
+ noSelf: true,
2843
+ selectors: [
2844
+ {
2845
+ selector: ":component .ant-select-selector.ant-select-selector",
2846
+ label: "Base"
2847
+ },
2848
+ {
2849
+ selector: ":component .ant-select-selector:hover",
2850
+ label: "Hovered"
2851
+ }
2852
+ ],
2853
+ advanced: true
2854
+ },
2855
+ popupScopeClassName: {
2856
+ type: "styleScopeClass",
2857
+ scopeName: "popup"
2858
+ },
2859
+ popupClassName: {
2860
+ type: "class",
2861
+ displayName: "Popup styles",
2862
+ selectors: [],
2863
+ advanced: true
2864
+ },
2865
+ optionClassName: {
2866
+ type: "class",
2867
+ displayName: "Option styles",
2868
+ noSelf: true,
2869
+ selectors: [
2870
+ {
2871
+ selector: ":popup.ant-select-dropdown .ant-select-item-option",
2872
+ label: "Base"
2873
+ },
2874
+ {
2875
+ selector: ":popup.ant-select-dropdown .ant-select-item-option-active",
2876
+ label: "Focused"
2877
+ },
2878
+ {
2879
+ selector: ":popup.ant-select-dropdown .ant-select-item-option-selected",
2880
+ label: "Selected"
2881
+ }
2882
+ ],
2883
+ advanced: true
2884
+ },
2885
+ placeholderClassName: {
2886
+ type: "class",
2887
+ displayName: "Placeholder styles",
2888
+ selectors: [
2889
+ {
2890
+ selector: ":component .ant-select-selector .ant-select-selection-placeholder",
2891
+ label: "Base"
2892
+ }
2893
+ ],
2894
+ advanced: true
2895
+ },
2896
+ defaultStylesClassName: {
2897
+ type: "themeResetClass"
2898
+ },
2899
+ tagRender: {
2900
+ type: "slot",
2901
+ renderPropParams: ["tagProps"],
2902
+ hidePlaceholder: true
2903
+ }
2904
+ },
2905
+ states: {
2906
+ value: {
2907
+ type: "writable",
2908
+ valueProp: "value",
2909
+ onChangeProp: "onChange",
2910
+ variableType: "text"
2911
+ }
2912
+ },
2913
+ importPath: "@plasmicpkgs/antd5/skinny/registerSelect",
2914
+ importName: "AntdSelect"
2915
+ });
2916
+ registerComponentHelper(loader, AntdOption, {
2917
+ name: "plasmic-antd5-option",
2918
+ displayName: "Option",
2919
+ parentComponentName: "plasmic-antd5-select",
2920
+ props: {
2921
+ children: {
2922
+ type: "slot",
2923
+ defaultValue: "Option"
2924
+ },
2925
+ value: {
2926
+ type: "string"
2927
+ }
2928
+ },
2929
+ importPath: "@plasmicpkgs/antd5/skinny/registerSelect",
2930
+ importName: "AntdOption"
2931
+ });
2932
+ registerComponentHelper(loader, AntdOptionGroup, {
2933
+ name: "plasmic-antd5-option-group",
2934
+ displayName: "Option Group",
2935
+ parentComponentName: "plasmic-antd5-select",
2936
+ props: {
2937
+ children: {
2938
+ type: "slot",
2939
+ defaultValue: [
2940
+ {
2941
+ type: "component",
2942
+ name: "plasmic-antd5-option",
2943
+ props: {
2944
+ value: "option1",
2945
+ children: {
2946
+ type: "text",
2947
+ value: "Option 1"
2948
+ }
2949
+ }
2950
+ },
2951
+ {
2952
+ type: "component",
2953
+ name: "plasmic-antd5-option",
2954
+ props: {
2955
+ value: "option2",
2956
+ children: {
2957
+ type: "text",
2958
+ value: "Option 1"
2959
+ }
2960
+ }
2961
+ }
2962
+ ]
2963
+ },
2964
+ label: {
2965
+ type: "slot",
2966
+ defaultValue: "Group label"
2967
+ }
2968
+ },
2969
+ importPath: "@plasmicpkgs/antd5/skinny/registerSelect",
2970
+ importName: "AntdOptionGroup"
2971
+ });
2972
+ }
2973
+
2974
+ var __defProp$1 = Object.defineProperty;
2975
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
2976
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
2977
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
2978
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2979
+ var __spreadValues$1 = (a, b) => {
2980
+ for (var prop in b || (b = {}))
2981
+ if (__hasOwnProp$1.call(b, prop))
2982
+ __defNormalProp$1(a, prop, b[prop]);
2983
+ if (__getOwnPropSymbols$1)
2984
+ for (var prop of __getOwnPropSymbols$1(b)) {
2985
+ if (__propIsEnum$1.call(b, prop))
2986
+ __defNormalProp$1(a, prop, b[prop]);
2987
+ }
2988
+ return a;
2989
+ };
2990
+ var __objRest$1 = (source, exclude) => {
2991
+ var target = {};
2992
+ for (var prop in source)
2993
+ if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
2994
+ target[prop] = source[prop];
2995
+ if (source != null && __getOwnPropSymbols$1)
2996
+ for (var prop of __getOwnPropSymbols$1(source)) {
2997
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
2998
+ target[prop] = source[prop];
2999
+ }
3000
+ return target;
3001
+ };
3002
+ const AntdTable = React.forwardRef(function AntdTable2(props, ref) {
3003
+ const _a = props, {
3004
+ data,
3005
+ onSelectedRowKeysChange,
3006
+ onSelectedRowsChange,
3007
+ isSelectable,
3008
+ rowKey,
3009
+ setControlContextData,
3010
+ selectedRowKeys,
3011
+ defaultSelectedRowKeys
3012
+ } = _a, rest = __objRest$1(_a, [
3013
+ "data",
3014
+ "onSelectedRowKeysChange",
3015
+ "onSelectedRowsChange",
3016
+ "isSelectable",
3017
+ "rowKey",
3018
+ "setControlContextData",
3019
+ "selectedRowKeys",
3020
+ "defaultSelectedRowKeys"
3021
+ ]);
3022
+ setControlContextData == null ? void 0 : setControlContextData(data);
3023
+ const isControlled = !!selectedRowKeys;
3024
+ const [
3025
+ uncontrolledSelectedRowKeys,
3026
+ setUncontrolledSelectedRowKeys
3027
+ ] = React.useState(defaultSelectedRowKeys != null ? defaultSelectedRowKeys : []);
3028
+ const selection = isSelectable && rowKey ? {
3029
+ onChange: (rowKeys, rows) => {
3030
+ onSelectedRowsChange == null ? void 0 : onSelectedRowsChange(rows);
3031
+ onSelectedRowKeysChange == null ? void 0 : onSelectedRowKeysChange(rowKeys);
3032
+ },
3033
+ type: isSelectable === "single" ? "radio" : "checkbox",
3034
+ selectedRowKeys: isControlled ? asArray(selectedRowKeys) : uncontrolledSelectedRowKeys
3035
+ } : void 0;
3036
+ React.useImperativeHandle(
3037
+ ref,
3038
+ () => ({
3039
+ selectRowByIndex(index) {
3040
+ if (data.data && rowKey) {
3041
+ const row = data.data[index];
3042
+ const rows = row ? [row] : [];
3043
+ this._setSelectedRows(rows);
3044
+ }
3045
+ },
3046
+ selectRowsByIndexes(indexes) {
3047
+ if (data.data && rowKey) {
3048
+ const rows = indexes.map((x) => data.data[x]).filter((x) => !!x);
3049
+ this._setSelectedRows(rows);
3050
+ }
3051
+ },
3052
+ selectRowByKey(key) {
3053
+ if (data.data && rowKey) {
3054
+ const rows = data.data.filter((r) => r[rowKey] === key);
3055
+ this._setSelectedRows(rows);
3056
+ }
3057
+ },
3058
+ selectRowsByKeys(keys) {
3059
+ if (data.data && rowKey) {
3060
+ const rows = data.data.filter((r) => keys.includes(r[rowKey]));
3061
+ this._setSelectedRows(rows);
3062
+ }
3063
+ },
3064
+ clearSelection() {
3065
+ this._setSelectedRows([]);
3066
+ },
3067
+ _setSelectedRows(rows) {
3068
+ onSelectedRowsChange == null ? void 0 : onSelectedRowsChange(rows);
3069
+ if (rowKey) {
3070
+ onSelectedRowKeysChange == null ? void 0 : onSelectedRowKeysChange(rows.map((r) => r[rowKey]));
3071
+ }
3072
+ if (!isControlled) {
3073
+ setUncontrolledSelectedRowKeys(rows.map((r) => r[rowKey]));
3074
+ }
3075
+ }
3076
+ }),
3077
+ [data, onSelectedRowKeysChange, onSelectedRowsChange, isSelectable, rowKey]
3078
+ );
3079
+ return /* @__PURE__ */ React.createElement(
3080
+ Table,
3081
+ __spreadValues$1({
3082
+ loading: data == null ? void 0 : data.isLoading,
3083
+ dataSource: data == null ? void 0 : data.data,
3084
+ rowSelection: selection,
3085
+ rowKey
3086
+ }, rest)
3087
+ );
3088
+ });
3089
+ const AntdColumnGroup = Table.ColumnGroup;
3090
+ const AntdColumn = Table.Column;
3091
+ function registerTable(loader) {
3092
+ registerComponentHelper(loader, AntdTable, {
3093
+ name: "plasmic-antd5-table",
3094
+ displayName: "Table",
3095
+ props: {
3096
+ data: {
3097
+ type: "dataSourceOpData",
3098
+ displayName: "Data"
3099
+ },
3100
+ children: {
3101
+ type: "slot",
3102
+ allowedComponents: [
3103
+ "plasmic-antd5-table-column",
3104
+ "plasmic-antd5-table-column-group"
3105
+ ]
3106
+ },
3107
+ bordered: {
3108
+ type: "boolean",
3109
+ defaultValueHint: false,
3110
+ advanced: true
3111
+ },
3112
+ isSelectable: {
3113
+ type: "choice",
3114
+ options: ["single", "multiple"],
3115
+ displayName: "Select rows?"
3116
+ },
3117
+ rowKey: {
3118
+ type: "choice",
3119
+ options: (ps, ctx) => {
3120
+ if (ctx.schema) {
3121
+ return ctx.schema.fields.map((f) => ({
3122
+ value: f.id,
3123
+ label: f.label || f.id
3124
+ }));
3125
+ }
3126
+ return [];
3127
+ },
3128
+ hidden: (ps) => !ps.isSelectable
3129
+ },
3130
+ selectedRowKeys: {
3131
+ type: "choice",
3132
+ multiSelect: (ps) => ps.isSelectable === "multiple",
3133
+ options: (ps, ctx) => {
3134
+ const key = ps.rowKey;
3135
+ if (key && ctx.data) {
3136
+ return ctx.data.map((r) => r[key]);
3137
+ }
3138
+ return [];
3139
+ },
3140
+ hidden: (ps) => !ps.rowKey
3141
+ },
3142
+ onSelectedRowKeysChange: {
3143
+ type: "eventHandler",
3144
+ argTypes: [{ name: "keys", type: "object" }],
3145
+ hidden: (ps) => !ps.isSelectable
3146
+ },
3147
+ onSelectedRowsChange: {
3148
+ type: "eventHandler",
3149
+ argTypes: [{ name: "rows", type: "object" }],
3150
+ hidden: (ps) => !ps.isSelectable
3151
+ }
3152
+ },
3153
+ importPath: "@plasmicpkgs/antd5/skinny/registerTable",
3154
+ importName: "AntdTable",
3155
+ states: {
3156
+ selectedRowKeys: {
3157
+ type: "writable",
3158
+ valueProp: "selectedRowKeys",
3159
+ onChangeProp: "onSelectedRowKeysChange",
3160
+ variableType: "array"
3161
+ }
3162
+ // selectedRows: {
3163
+ // type: "readonly",
3164
+ // onChangeProp: "onSelectedRowsChange",
3165
+ // },
3166
+ },
3167
+ unstable__refActions: {
3168
+ selectRowByIndex: {
3169
+ displayName: "Select row by index",
3170
+ parameters: [
3171
+ {
3172
+ name: "index",
3173
+ displayName: "Index",
3174
+ type: "number"
3175
+ }
3176
+ ]
3177
+ },
3178
+ selectRowByKey: {
3179
+ displayName: "Select row by key",
3180
+ parameters: [
3181
+ {
3182
+ name: "key",
3183
+ displayName: "Row key",
3184
+ type: "string"
3185
+ }
3186
+ ]
3187
+ }
3188
+ }
3189
+ });
3190
+ registerComponentHelper(loader, AntdColumn, __spreadValues$1({
3191
+ name: "plasmic-antd5-table-column",
3192
+ displayName: "Column",
3193
+ parentComponentName: "plasmic-antd5-table",
3194
+ props: {
3195
+ title: {
3196
+ type: "slot",
3197
+ defaultValue: "Column Name"
3198
+ },
3199
+ dataIndex: {
3200
+ type: "string",
3201
+ displayName: "Column key"
3202
+ },
3203
+ render: {
3204
+ type: "slot",
3205
+ renderPropParams: ["cell", "row", "index"],
3206
+ hidePlaceholder: true,
3207
+ displayName: "Custom render"
3208
+ },
3209
+ align: {
3210
+ type: "choice",
3211
+ options: ["left", "right", "center"],
3212
+ defaultValueHint: "left"
3213
+ },
3214
+ fixed: {
3215
+ type: "choice",
3216
+ options: ["left", "right"],
3217
+ advanced: true
3218
+ },
3219
+ colSpan: {
3220
+ type: "number",
3221
+ advanced: true
3222
+ }
3223
+ },
3224
+ importPath: "@plasmicpkgs/antd5/skinny/registerTable",
3225
+ importName: "AntdColumn"
3226
+ }, { isRenderless: true }));
3227
+ registerComponentHelper(loader, AntdColumnGroup, __spreadValues$1({
3228
+ name: "plasmic-antd5-table-column-group",
3229
+ displayName: "Column Group",
3230
+ parentComponentName: "plasmic-antd5-table",
3231
+ props: {
3232
+ title: {
3233
+ type: "slot",
3234
+ defaultValue: "Column Group Name"
3235
+ },
3236
+ children: {
3237
+ type: "slot",
3238
+ allowedComponents: ["plasmic-antd5-table-column"]
3239
+ }
3240
+ },
3241
+ importPath: "@plasmicpkgs/antd5/skinny/registerTable",
3242
+ importName: "AntdColumnGroup"
3243
+ }, { isRenderless: true }));
3244
+ }
3245
+
3246
+ var __defProp = Object.defineProperty;
3247
+ var __defProps = Object.defineProperties;
3248
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
3249
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3250
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3251
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
3252
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3253
+ var __spreadValues = (a, b) => {
3254
+ for (var prop in b || (b = {}))
3255
+ if (__hasOwnProp.call(b, prop))
3256
+ __defNormalProp(a, prop, b[prop]);
3257
+ if (__getOwnPropSymbols)
3258
+ for (var prop of __getOwnPropSymbols(b)) {
3259
+ if (__propIsEnum.call(b, prop))
3260
+ __defNormalProp(a, prop, b[prop]);
3261
+ }
3262
+ return a;
3263
+ };
3264
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3265
+ var __objRest = (source, exclude) => {
3266
+ var target = {};
3267
+ for (var prop in source)
3268
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
3269
+ target[prop] = source[prop];
3270
+ if (source != null && __getOwnPropSymbols)
3271
+ for (var prop of __getOwnPropSymbols(source)) {
3272
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
3273
+ target[prop] = source[prop];
3274
+ }
3275
+ return target;
3276
+ };
3277
+ function UploadWrapper(props) {
3278
+ const _a = props, { files, onFilesChange } = _a, rest = __objRest(_a, ["files", "onFilesChange"]);
3279
+ const handleChange = (info) => {
3280
+ const { file } = info;
3281
+ if (file.status === "removed") {
3282
+ return;
3283
+ }
3284
+ const metadata = {
3285
+ uid: file.uid,
3286
+ name: file.name,
3287
+ size: file.size,
3288
+ type: file.type,
3289
+ lastModified: file.lastModified
3290
+ };
3291
+ onFilesChange == null ? void 0 : onFilesChange([
3292
+ ...files,
3293
+ __spreadProps(__spreadValues({}, metadata), {
3294
+ status: "uploading"
3295
+ })
3296
+ ]);
3297
+ const reader = new FileReader();
3298
+ reader.onload = () => {
3299
+ onFilesChange == null ? void 0 : onFilesChange([
3300
+ ...files.filter((f) => f.uid !== file.uid),
3301
+ __spreadProps(__spreadValues({}, metadata), {
3302
+ contents: reader.result.replace(
3303
+ /^data:[^;]+;base64,/,
3304
+ ""
3305
+ ),
3306
+ status: "success"
3307
+ })
3308
+ ]);
3309
+ };
3310
+ reader.onerror = (error) => {
3311
+ onFilesChange == null ? void 0 : onFilesChange([
3312
+ ...files.filter((f) => f.uid !== file.uid),
3313
+ __spreadProps(__spreadValues({}, metadata), {
3314
+ status: "error"
3315
+ })
3316
+ ]);
3317
+ };
3318
+ reader.readAsDataURL(info.file);
3319
+ };
3320
+ const handleRemove = (file) => {
3321
+ onFilesChange == null ? void 0 : onFilesChange(files.filter((f) => f.uid !== file.uid));
3322
+ };
3323
+ return /* @__PURE__ */ React.createElement(
3324
+ Upload,
3325
+ __spreadProps(__spreadValues({}, rest), {
3326
+ fileList: files,
3327
+ beforeUpload: () => {
3328
+ return false;
3329
+ },
3330
+ onChange: (info) => {
3331
+ handleChange(info);
3332
+ },
3333
+ onRemove: (file) => {
3334
+ handleRemove(file);
3335
+ }
3336
+ })
3337
+ );
3338
+ }
3339
+ function registerUpload(loader) {
3340
+ registerComponentHelper(loader, UploadWrapper, {
3341
+ name: "plasmic-antd5-upload",
3342
+ displayName: "Upload",
3343
+ props: {
3344
+ accept: {
3345
+ type: "choice",
3346
+ displayName: "Allowed types",
3347
+ options: [
3348
+ {
3349
+ value: "",
3350
+ label: "Any kind of file"
3351
+ },
3352
+ {
3353
+ value: "image/*",
3354
+ label: "Image"
3355
+ },
3356
+ {
3357
+ value: "video/*",
3358
+ label: "Video"
3359
+ },
3360
+ {
3361
+ value: "audio/*",
3362
+ label: "Audio"
3363
+ },
3364
+ {
3365
+ value: "application/pdf",
3366
+ label: "PDF"
3367
+ }
3368
+ ],
3369
+ defaultValue: ""
3370
+ },
3371
+ files: {
3372
+ type: "object",
3373
+ displayName: "Files",
3374
+ defaultValue: []
3375
+ },
3376
+ children: {
3377
+ type: "slot",
3378
+ defaultValue: [
3379
+ {
3380
+ type: "component",
3381
+ name: "plasmic-antd5-button",
3382
+ props: {
3383
+ children: {
3384
+ type: "text",
3385
+ value: "Upload"
3386
+ }
3387
+ }
3388
+ }
3389
+ ]
3390
+ },
3391
+ maxCount: {
3392
+ type: "number",
3393
+ displayName: "Limit of files",
3394
+ advanced: true
3395
+ },
3396
+ onFilesChange: {
3397
+ type: "eventHandler",
3398
+ displayName: "On file uploaded",
3399
+ argTypes: [
3400
+ {
3401
+ name: "files",
3402
+ type: "object"
3403
+ }
3404
+ ]
3405
+ },
3406
+ showUploadList: {
3407
+ type: "boolean",
3408
+ displayName: "List files",
3409
+ defaultValue: true
3410
+ }
3411
+ },
3412
+ states: {
3413
+ files: {
3414
+ type: "writable",
3415
+ valueProp: "files",
3416
+ variableType: "array",
3417
+ onChangeProp: "onFilesChange"
3418
+ }
3419
+ },
3420
+ importPath: "@plasmicpkgs/antd5/skinny/registerUpload",
3421
+ importName: "UploadWrapper"
3422
+ });
3423
+ }
3424
+
3425
+ function registerAll(loader) {
3426
+ registerConfigProvider(loader);
3427
+ registerTokens(loader);
3428
+ registerSelect(loader);
3429
+ registerTable(loader);
3430
+ registerCheckbox(loader);
3431
+ registerRadio(loader);
3432
+ registerModal(loader);
3433
+ registerButton(loader);
3434
+ registerMenu(loader);
3435
+ registerDropdown(loader);
3436
+ registerForm(loader);
3437
+ registerFormItem(loader);
3438
+ registerFormGroup(loader);
3439
+ registerFormList(loader);
3440
+ registerInput(loader);
3441
+ registerPasswordInput(loader);
3442
+ registerTextArea(loader);
3443
+ registerNumberInput(loader);
3444
+ registerUpload(loader);
3445
+ }
3446
+
3447
+ export { registerAll };
3448
+ //# sourceMappingURL=antd.esm.js.map