@plasmicapp/react-web 0.2.101 → 0.2.104

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 (91) hide show
  1. package/README.md +13 -0
  2. package/dist/all.d.ts +140 -105
  3. package/dist/index.d.ts +2 -0
  4. package/dist/plume/menu-button/menu-trigger.d.ts +1 -1
  5. package/dist/react-web.cjs.development.js +566 -91
  6. package/dist/react-web.cjs.development.js.map +1 -1
  7. package/dist/react-web.cjs.production.min.js +1 -1
  8. package/dist/react-web.cjs.production.min.js.map +1 -1
  9. package/dist/react-web.esm.js +564 -92
  10. package/dist/react-web.esm.js.map +1 -1
  11. package/dist/render/triggers.d.ts +4 -4
  12. package/dist/states/helpers.d.ts +9 -0
  13. package/dist/states/index.d.ts +15 -0
  14. package/dist/stories/PlasmicImg.stories.d.ts +2 -2
  15. package/dist/stories/UseDollarState.stories.d.ts +40 -0
  16. package/package.json +31 -22
  17. package/skinny/dist/{collection-utils-3487dd27.js → collection-utils-57c273dc.js} +5 -5
  18. package/skinny/dist/collection-utils-57c273dc.js.map +1 -0
  19. package/skinny/dist/common-182a0b0c.js +201 -0
  20. package/skinny/dist/common-182a0b0c.js.map +1 -0
  21. package/skinny/dist/index.d.ts +2 -0
  22. package/skinny/dist/index.js +68 -45
  23. package/skinny/dist/index.js.map +1 -1
  24. package/skinny/dist/plume/button/index.js +5 -5
  25. package/skinny/dist/plume/button/index.js.map +1 -1
  26. package/skinny/dist/plume/checkbox/index.js +6 -6
  27. package/skinny/dist/plume/checkbox/index.js.map +1 -1
  28. package/skinny/dist/plume/menu/index.js +11 -11
  29. package/skinny/dist/plume/menu/index.js.map +1 -1
  30. package/skinny/dist/plume/menu-button/index.js +6 -6
  31. package/skinny/dist/plume/menu-button/index.js.map +1 -1
  32. package/skinny/dist/plume/menu-button/menu-trigger.d.ts +1 -1
  33. package/skinny/dist/plume/select/index.js +11 -11
  34. package/skinny/dist/plume/select/index.js.map +1 -1
  35. package/skinny/dist/plume/switch/index.js +6 -6
  36. package/skinny/dist/plume/switch/index.js.map +1 -1
  37. package/skinny/dist/plume/text-input/index.js +5 -5
  38. package/skinny/dist/plume/text-input/index.js.map +1 -1
  39. package/skinny/dist/plume/triggered-overlay/index.js +7 -7
  40. package/skinny/dist/plume/triggered-overlay/index.js.map +1 -1
  41. package/skinny/dist/{plume-utils-5c413fd1.js → plume-utils-623b91cc.js} +2 -2
  42. package/skinny/dist/{plume-utils-5c413fd1.js.map → plume-utils-623b91cc.js.map} +1 -1
  43. package/skinny/dist/{props-utils-4633caf6.js → props-utils-b2ad4997.js} +2 -2
  44. package/skinny/dist/{props-utils-4633caf6.js.map → props-utils-b2ad4997.js.map} +1 -1
  45. package/skinny/dist/{react-utils-2d70bbbe.js → react-utils-35cb2a4e.js} +43 -14
  46. package/skinny/dist/{react-utils-2d70bbbe.js.map → react-utils-35cb2a4e.js.map} +1 -1
  47. package/skinny/dist/render/PlasmicImg/index.js +3 -3
  48. package/skinny/dist/render/PlasmicImg/index.js.map +1 -1
  49. package/skinny/dist/render/triggers.d.ts +4 -4
  50. package/skinny/dist/states/helpers.d.ts +9 -0
  51. package/skinny/dist/states/index.d.ts +15 -0
  52. package/skinny/dist/stories/UseDollarState.stories.d.ts +41 -0
  53. package/README +0 -8
  54. package/skinny/dist/collection-utils-3487dd27.js.map +0 -1
  55. package/skinny/dist/collection-utils-47e89cbe.js +0 -238
  56. package/skinny/dist/collection-utils-47e89cbe.js.map +0 -1
  57. package/skinny/dist/collection-utils-4dae6efa.js +0 -292
  58. package/skinny/dist/collection-utils-4dae6efa.js.map +0 -1
  59. package/skinny/dist/collection-utils-57ec40f9.js +0 -292
  60. package/skinny/dist/collection-utils-57ec40f9.js.map +0 -1
  61. package/skinny/dist/collection-utils-96cde83c.js +0 -238
  62. package/skinny/dist/collection-utils-96cde83c.js.map +0 -1
  63. package/skinny/dist/collection-utils-b0b8f30e.js +0 -291
  64. package/skinny/dist/collection-utils-b0b8f30e.js.map +0 -1
  65. package/skinny/dist/props-utils-5c0ad25a.js +0 -59
  66. package/skinny/dist/props-utils-5c0ad25a.js.map +0 -1
  67. package/skinny/dist/props-utils-754f655a.js +0 -39
  68. package/skinny/dist/props-utils-754f655a.js.map +0 -1
  69. package/skinny/dist/props-utils-c632595f.js +0 -59
  70. package/skinny/dist/props-utils-c632595f.js.map +0 -1
  71. package/skinny/dist/props-utils-fd5f444e.js +0 -59
  72. package/skinny/dist/props-utils-fd5f444e.js.map +0 -1
  73. package/skinny/dist/react-utils-118d8539.js +0 -190
  74. package/skinny/dist/react-utils-118d8539.js.map +0 -1
  75. package/skinny/dist/react-utils-2a2fd6c9.js +0 -339
  76. package/skinny/dist/react-utils-2a2fd6c9.js.map +0 -1
  77. package/skinny/dist/react-utils-675565b4.js +0 -334
  78. package/skinny/dist/react-utils-675565b4.js.map +0 -1
  79. package/skinny/dist/render/PlasmicImg.d.ts +0 -62
  80. package/skinny/dist/ssr-64e38713.js +0 -108
  81. package/skinny/dist/ssr-64e38713.js.map +0 -1
  82. package/skinny/dist/ssr-902d1292.js +0 -105
  83. package/skinny/dist/ssr-902d1292.js.map +0 -1
  84. package/skinny/dist/ssr-a8081074.js +0 -108
  85. package/skinny/dist/ssr-a8081074.js.map +0 -1
  86. package/skinny/dist/ssr-d2fd94f2.js +0 -31
  87. package/skinny/dist/ssr-d2fd94f2.js.map +0 -1
  88. package/skinny/dist/tslib.es6-00014098.js +0 -148
  89. package/skinny/dist/tslib.es6-00014098.js.map +0 -1
  90. package/skinny/dist/tslib.es6-73236e8e.js +0 -141
  91. package/skinny/dist/tslib.es6-73236e8e.js.map +0 -1
@@ -1,12 +1,13 @@
1
1
  import classNames$1 from 'classnames';
2
2
  import * as React from 'react';
3
3
  import React__default from 'react';
4
- import { c as createElementWithChildren, m as mergeProps, e as ensureNotArray, N as NONE, a as mergePropVals, i as isReactNode, b as isBrowser, u as useIsomorphicLayoutEffect } from './react-utils-7c01e440.js';
5
- import { _ as __rest, a as __assign, b as __spreadArray, o as omit, p as pick, i as isSubset, c as chainSingleArgFuncs, n as notNil } from './tslib.es6-d26ffe68.js';
6
- export { o as omit, p as pick } from './tslib.es6-d26ffe68.js';
4
+ import { c as createElementWithChildren, m as mergeProps, e as ensureNotArray, N as NONE, a as mergePropVals, i as isReactNode, b as isBrowser, u as useIsomorphicLayoutEffect } from './react-utils-35cb2a4e.js';
5
+ import { _ as __rest, a as __assign, b as __spreadArray, c as __read, o as omit, p as pick, d as __values, i as isSubset, e as chainSingleArgFuncs, n as notNil } from './common-182a0b0c.js';
6
+ export { o as omit, p as pick } from './common-182a0b0c.js';
7
7
  export { PlasmicImg } from './render/PlasmicImg/index.js';
8
- import ReactDOM__default from 'react-dom';
8
+ import { T as Trans } from './ssr-fbf922f6.js';
9
9
  export { P as PlasmicRootProvider, T as Trans, g as genTranslatableString, u as useIsSSR } from './ssr-fbf922f6.js';
10
+ import ReactDOM__default from 'react-dom';
10
11
  import { useFocusRing } from '@react-aria/focus';
11
12
  import '@react-aria/ssr';
12
13
 
@@ -78,7 +79,7 @@ function wrapFlexContainerChildren(children, hasGap) {
78
79
  return null;
79
80
  }
80
81
  else if (Array.isArray(children)) {
81
- return React.createElement.apply(React, __spreadArray(["div", { className: className }], children));
82
+ return React.createElement.apply(React, __spreadArray(["div", { className: className }], __read(children)));
82
83
  }
83
84
  else {
84
85
  return React.createElement("div", { className: className }, children);
@@ -151,7 +152,7 @@ function createPlasmicElementProxy(defaultElement, props) {
151
152
  delete props["data-plasmic-root"];
152
153
  delete props["data-plasmic-for-node"];
153
154
  var element = createPlasmicElementFromJsx.apply(void 0, __spreadArray([defaultElement,
154
- props], children));
155
+ props], __read(children)));
155
156
  if (name) {
156
157
  seenElements.set(name, element);
157
158
  }
@@ -180,42 +181,52 @@ function createPlasmicElementFromJsx(defaultElement, props) {
180
181
  delete props["data-plasmic-wrap-flex-child"];
181
182
  delete props["data-plasmic-trigger-props"];
182
183
  return createPlasmicElement(override, defaultElement, mergeProps.apply(void 0, __spreadArray([props,
183
- children.length === 0 ? {} : { children: children.length === 1 ? children[0] : children }], triggerProps)), wrapFlexChild);
184
+ children.length === 0 ? {} : { children: children.length === 1 ? children[0] : children }], __read(triggerProps))), wrapFlexChild);
184
185
  }
185
186
  function makeFragment() {
186
187
  var children = [];
187
188
  for (var _i = 0; _i < arguments.length; _i++) {
188
189
  children[_i] = arguments[_i];
189
190
  }
190
- return React.createElement.apply(React, __spreadArray([React.Fragment, {}], children));
191
+ return React.createElement.apply(React, __spreadArray([React.Fragment, {}], __read(children)));
191
192
  }
192
193
  var UNSET = Symbol("UNSET");
193
194
  function mergeOverrideProps(defaults, overrides) {
195
+ var e_1, _a;
194
196
  if (!overrides) {
195
197
  return defaults;
196
198
  }
197
199
  var result = __assign({}, defaults);
198
- for (var _i = 0, _a = Object.keys(overrides); _i < _a.length; _i++) {
199
- var key = _a[_i];
200
- var defaultVal = defaults[key];
201
- var overrideVal = overrides[key];
202
- if (overrideVal === UNSET) {
203
- delete result[key];
204
- }
205
- else {
206
- // We use the NONE sentinel if the overrideVal is nil, and is not one of the
207
- // props that we merge by default -- which are className, style, and
208
- // event handlers. This means for all other "normal" props -- like children,
209
- // title, etc -- a nil value will unset the default.
210
- if (overrideVal == null &&
211
- key !== "className" &&
212
- key !== "style" &&
213
- !(key.startsWith("on") && typeof defaultVal === "function")) {
214
- overrideVal = NONE;
200
+ try {
201
+ for (var _b = __values(Object.keys(overrides)), _c = _b.next(); !_c.done; _c = _b.next()) {
202
+ var key = _c.value;
203
+ var defaultVal = defaults[key];
204
+ var overrideVal = overrides[key];
205
+ if (overrideVal === UNSET) {
206
+ delete result[key];
207
+ }
208
+ else {
209
+ // We use the NONE sentinel if the overrideVal is nil, and is not one of the
210
+ // props that we merge by default -- which are className, style, and
211
+ // event handlers. This means for all other "normal" props -- like children,
212
+ // title, etc -- a nil value will unset the default.
213
+ if (overrideVal == null &&
214
+ key !== "className" &&
215
+ key !== "style" &&
216
+ !(key.startsWith("on") && typeof defaultVal === "function")) {
217
+ overrideVal = NONE;
218
+ }
219
+ result[key] = mergePropVals(key, defaultVal, overrideVal);
215
220
  }
216
- result[key] = mergePropVals(key, defaultVal, overrideVal);
217
221
  }
218
222
  }
223
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
224
+ finally {
225
+ try {
226
+ if (_c && !_c.done && (_a = _b["return"])) _a.call(_b);
227
+ }
228
+ finally { if (e_1) throw e_1.error; }
229
+ }
219
230
  return result;
220
231
  }
221
232
  function wrapWithClassName(element, className) {
@@ -291,14 +302,24 @@ function mergeArgs(a1, a2) {
291
302
  return __assign(__assign({}, a1), a2);
292
303
  }
293
304
  function mergeFlexOverrides(o1, o2) {
305
+ var e_2, _a;
294
306
  if (!o2) {
295
307
  return o1;
296
308
  }
297
- var keys = Array.from(new Set(__spreadArray(__spreadArray([], Object.keys(o1)), Object.keys(o2))));
309
+ var keys = Array.from(new Set(__spreadArray(__spreadArray([], __read(Object.keys(o1))), __read(Object.keys(o2)))));
298
310
  var merged = {};
299
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
300
- var key = keys_1[_i];
301
- merged[key] = mergeFlexOverride(o1[key], o2[key]);
311
+ try {
312
+ for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
313
+ var key = keys_1_1.value;
314
+ merged[key] = mergeFlexOverride(o1[key], o2[key]);
315
+ }
316
+ }
317
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
318
+ finally {
319
+ try {
320
+ if (keys_1_1 && !keys_1_1.done && (_a = keys_1["return"])) _a.call(keys_1);
321
+ }
322
+ finally { if (e_2) throw e_2.error; }
302
323
  }
303
324
  return merged;
304
325
  }
@@ -312,8 +333,8 @@ function mergeFlexOverride(fo1, fo2) {
312
333
  }
313
334
  var o1 = deriveOverride(fo1);
314
335
  var o2 = deriveOverride(fo2);
315
- var wrap = chainSingleArgFuncs.apply(void 0, [o1.wrap, o2.wrap].filter(notNil));
316
- var wrapChildren = chainSingleArgFuncs.apply(void 0, [o1.wrapChildren, o2.wrapChildren].filter(notNil));
336
+ var wrap = chainSingleArgFuncs.apply(void 0, __spreadArray([], __read([o1.wrap, o2.wrap].filter(notNil))));
337
+ var wrapChildren = chainSingleArgFuncs.apply(void 0, __spreadArray([], __read([o1.wrapChildren, o2.wrapChildren].filter(notNil))));
317
338
  // "render" type always takes precedence, but we still merge the props
318
339
  var props = mergeOverrideProps((_a = o1.props) !== null && _a !== void 0 ? _a : {}, o2.props);
319
340
  if (o2.type === "render") {
@@ -342,13 +363,13 @@ function deriveRenderOpts(props, config) {
342
363
  var _a;
343
364
  var name = config.name, descendantNames = config.descendantNames, internalVariantPropNames = config.internalVariantPropNames, internalArgPropNames = config.internalArgPropNames;
344
365
  var reservedPropNames = ["variants", "args", "overrides"];
345
- var variants = mergeVariants(omit.apply(void 0, __spreadArray([pick.apply(void 0, __spreadArray([props], internalVariantPropNames))], reservedPropNames)), props.variants);
346
- var args = mergeArgs(omit.apply(void 0, __spreadArray([pick.apply(void 0, __spreadArray([props], internalArgPropNames))], reservedPropNames)), props.args);
347
- var overrides = mergeFlexOverrides(omit.apply(void 0, __spreadArray(__spreadArray(__spreadArray([pick.apply(void 0, __spreadArray([props], descendantNames))], internalArgPropNames), internalVariantPropNames), reservedPropNames)), props.overrides);
366
+ var variants = mergeVariants(omit.apply(void 0, __spreadArray([pick.apply(void 0, __spreadArray([props], __read(internalVariantPropNames)))], __read(reservedPropNames))), props.variants);
367
+ var args = mergeArgs(omit.apply(void 0, __spreadArray([pick.apply(void 0, __spreadArray([props], __read(internalArgPropNames)))], __read(reservedPropNames))), props.args);
368
+ var overrides = mergeFlexOverrides(omit.apply(void 0, __spreadArray(__spreadArray(__spreadArray([pick.apply(void 0, __spreadArray([props], __read(descendantNames)))], __read(internalArgPropNames)), __read(internalVariantPropNames)), __read(reservedPropNames))), props.overrides);
348
369
  var leftoverProps = omit.apply(void 0, __spreadArray(__spreadArray(__spreadArray([props,
349
370
  "variants",
350
371
  "args",
351
- "overrides"], descendantNames), internalVariantPropNames), internalArgPropNames));
372
+ "overrides"], __read(descendantNames)), __read(internalVariantPropNames)), __read(internalArgPropNames)));
352
373
  if (Object.keys(leftoverProps).length > 0) {
353
374
  overrides = mergeFlexOverrides(overrides, (_a = {},
354
375
  _a[name] = {
@@ -364,11 +385,11 @@ var seenDefaultVariants = {};
364
385
  function ensureGlobalVariants(globalVariantValues) {
365
386
  Object.entries(globalVariantValues)
366
387
  .filter(function (_a) {
367
- _a[0]; var value = _a[1];
388
+ var _b = __read(_a, 2); _b[0]; var value = _b[1];
368
389
  return isDefaultValue(value);
369
390
  })
370
391
  .forEach(function (_a) {
371
- var key = _a[0]; _a[1];
392
+ var _b = __read(_a, 2), key = _b[0]; _b[1];
372
393
  globalVariantValues[key] = undefined;
373
394
  if (!seenDefaultVariants[key] && process.env.NODE_ENV === "development") {
374
395
  seenDefaultVariants[key] = true;
@@ -397,7 +418,7 @@ var PlasmicLink = React__default.forwardRef(function PlasmicLink(props, ref) {
397
418
  "prefetch",
398
419
  "locale",
399
420
  ];
400
- return React__default.createElement(props.component, pick.apply(void 0, __spreadArray([props], nextjsProps)), React__default.createElement("a", __assign({}, omit.apply(void 0, __spreadArray([props, "component", "platform"], nextjsProps)), { ref: ref })));
421
+ return React__default.createElement(props.component, pick.apply(void 0, __spreadArray([props], __read(nextjsProps))), React__default.createElement("a", __assign({}, omit.apply(void 0, __spreadArray([props, "component", "platform"], __read(nextjsProps))), { ref: ref })));
401
422
  }
402
423
  if (props.platform === "gatsby" && isInternalHref(props.href)) {
403
424
  return React__default.createElement(props.component, __assign(__assign({}, omit(props, "component", "platform", "href")), { to: props.href, ref: ref }));
@@ -434,7 +455,9 @@ function renderPlasmicSlot(opts) {
434
455
  }
435
456
  function maybeAsString(node) {
436
457
  // Unwrap fragments
437
- if (React.isValidElement(node) && node.type === React.Fragment) {
458
+ if (React.isValidElement(node) &&
459
+ // Fragment and Trans don't render DOM elements
460
+ (node.type === React.Fragment || node.type === Trans)) {
438
461
  return maybeAsString(node.props.children);
439
462
  }
440
463
  if (typeof node === "string") {
@@ -454,11 +477,11 @@ function matchScreenVariants() {
454
477
  }
455
478
  return Object.entries(queries)
456
479
  .filter(function (_a) {
457
- var query = _a[1];
480
+ var _b = __read(_a, 2), query = _b[1];
458
481
  return window.matchMedia(query).matches;
459
482
  })
460
483
  .map(function (_a) {
461
- var name = _a[0];
484
+ var _b = __read(_a, 1), name = _b[0];
462
485
  return name;
463
486
  });
464
487
  }
@@ -492,7 +515,7 @@ function createUseScreenVariants(isMulti, screenQueries) {
492
515
  // that is what SSR will use, and the client must match. In an effect (which
493
516
  // only happens on the client), we then actually ask for the real screen variant
494
517
  // and, if different from [] or undefined, forces a re-render.
495
- var _a = React.useState(), updateState = _a[1];
518
+ var _a = __read(React.useState(), 2), updateState = _a[1];
496
519
  var lastScreenVariantsRef = React.useRef(curScreenVariants || []);
497
520
  // We do useLayoutEffect instead of useEffect to immediately
498
521
  // register our forceUpdate. This ensures that if there was
@@ -563,7 +586,7 @@ function useFocusVisibleWithin(opts) {
563
586
  return [isFocusVisible, focusProps];
564
587
  }
565
588
  function useHover() {
566
- var _a = React.useState(false), isHover = _a[0], setHover = _a[1];
589
+ var _a = __read(React.useState(false), 2), isHover = _a[0], setHover = _a[1];
567
590
  return [
568
591
  isHover,
569
592
  {
@@ -573,7 +596,7 @@ function useHover() {
573
596
  ];
574
597
  }
575
598
  function usePressed() {
576
- var _a = React.useState(false), isPressed = _a[0], setPressed = _a[1];
599
+ var _a = __read(React.useState(false), 2), isPressed = _a[0], setPressed = _a[1];
577
600
  return [
578
601
  isPressed,
579
602
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/render/Stack.tsx","../../src/render/elements.ts","../../src/render/global-variants.ts","../../src/render/PlasmicIcon.tsx","../../src/render/PlasmicLink.tsx","../../src/render/PlasmicSlot.tsx","../../src/render/screen-variants.ts","../../src/render/triggers.ts","../../src/index-common.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { createElementWithChildren } from \"../react-utils\";\nimport { wrapFlexContainerChildren } from \"./elements\";\n\nfunction renderStack<T extends keyof JSX.IntrinsicElements>(\n as: T,\n props: React.ComponentProps<T>,\n hasGap: boolean | undefined,\n ref: React.Ref<any>\n) {\n const { children, ...rest } = props;\n const wrappedChildren = wrapFlexContainerChildren(children, hasGap ?? false);\n return createElementWithChildren(as, { ref, ...rest }, wrappedChildren);\n}\n\nfunction FlexStack_<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>,\n outerRef: React.Ref<any>\n) {\n const { as, hasGap, ...rest } = props;\n return renderStack(\n as ?? \"div\",\n rest as React.ComponentProps<T>,\n hasGap,\n outerRef\n );\n}\n\nconst FlexStack = React.forwardRef(FlexStack_) as <\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>\n) => React.ReactElement;\n\nconst makeStackImpl = <T extends keyof JSX.IntrinsicElements>(as: T) => {\n return React.forwardRef(\n (\n props: React.ComponentProps<T> & { hasGap?: boolean },\n ref: React.Ref<any>\n ) => {\n const { hasGap, ...rest } = props;\n return renderStack(as, rest as React.ComponentProps<T>, hasGap, ref);\n }\n ) as React.FC<React.ComponentProps<T> & { hasGap?: boolean }>;\n};\n\nexport const Stack = Object.assign(FlexStack, {\n div: makeStackImpl(\"div\"),\n a: makeStackImpl(\"a\"),\n button: makeStackImpl(\"button\"),\n h1: makeStackImpl(\"h1\"),\n h2: makeStackImpl(\"h2\"),\n h3: makeStackImpl(\"h3\"),\n h4: makeStackImpl(\"h4\"),\n h5: makeStackImpl(\"h5\"),\n h6: makeStackImpl(\"h6\"),\n label: makeStackImpl(\"label\"),\n form: makeStackImpl(\"form\"),\n section: makeStackImpl(\"section\"),\n head: makeStackImpl(\"head\"),\n main: makeStackImpl(\"main\"),\n nav: makeStackImpl(\"nav\"),\n});\n","import * as React from \"react\";\nimport { chainSingleArgFuncs, isSubset, notNil, omit, pick } from \"../common\";\nimport {\n createElementWithChildren,\n ensureNotArray,\n isReactNode,\n mergeProps,\n mergePropVals,\n NONE,\n} from \"../react-utils\";\nimport { Stack } from \"./Stack\";\n\ninterface Variants {\n [vg: string]: any;\n}\n\nexport type MultiChoiceArg<M extends string> = M | M[] | { [v in M]?: boolean };\nexport type SingleChoiceArg<M extends string> = M;\nexport type SingleBooleanChoiceArg<M extends string> = M | boolean;\n\ninterface OverrideTwiddle {\n wrapChildren?: (children: React.ReactNode) => React.ReactNode;\n wrap?: (node: React.ReactNode) => React.ReactNode;\n}\n\nexport type DefaultOverride<C extends React.ElementType> = {\n type: \"default\";\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type AsOverride<C extends React.ElementType> = {\n type: \"as\";\n as: C;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type RenderOverride<C extends React.ElementType> = {\n type: \"render\";\n render: (props: React.ComponentProps<C>, Comp: C) => React.ReactNode;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type Override<DefaultElementType extends React.ElementType> =\n | DefaultOverride<DefaultElementType>\n | AsOverride<any>\n | RenderOverride<DefaultElementType>;\n\nexport type Overrides = Record<string, Flex<any>>;\nexport type Args = Record<string, any>;\n\n// Flex provides a more \"flexible\" way to specify bindings.\nexport type Flex<DefaultElementType extends React.ElementType> =\n // Fully-specified bindings\n | (Omit<DefaultOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n render?: never;\n })\n | Omit<AsOverride<any>, \"type\">\n | (Omit<RenderOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n })\n\n // Valid ReactNode, used as children.\n // Note: We use React.ReactChild instead of React.ReactNode because we don't want to include\n // React.ReactFragment, which includes {}, which would allow any object to be passed in,\n // defeating any attempt to type-check!\n | React.ReactChild\n\n // Ignored\n | null\n | undefined\n\n // dict of props for the DefaultElementType\n | (Partial<React.ComponentProps<DefaultElementType>> & {\n wrap?: never;\n wrapChildren?: never;\n props?: never;\n as?: never;\n render?: never;\n })\n\n // render function taking in dict of props for the DefaultElementType\n | ((props: React.ComponentProps<DefaultElementType>) => React.ReactNode);\n\nexport function hasVariant<V extends Variants>(\n variants: V | undefined,\n groupName: keyof V,\n variant: string\n) {\n if (variants == null) {\n return false;\n }\n const groupVariants = variants[groupName];\n if (groupVariants == null) {\n return false;\n } else if (groupVariants === true) {\n return variant === groupName;\n } else if (groupVariants === false) {\n return false;\n } else if (Array.isArray(groupVariants)) {\n return groupVariants.includes(variant);\n } else if (typeof groupVariants === \"string\") {\n return groupVariants === variant;\n } else {\n return (\n groupVariants[variant] !== undefined && groupVariants[variant] !== false\n );\n }\n}\n\nexport function wrapFlexContainerChildren(\n children: React.ReactNode,\n hasGap: boolean\n) {\n // We need to always wrap the children, even if there are no gaps, because\n // otherwise if we toggle between with and without gap, React reconciliation\n // will blow away the children tree and all state if we switch from having\n // a wrapper and not.\n const className = hasGap ? \"__wab_flex-container\" : \"__wab_passthrough\";\n if (!children) {\n return null;\n } else if (Array.isArray(children)) {\n return React.createElement(\"div\", { className }, ...children);\n } else {\n return React.createElement(\"div\", { className }, children);\n }\n}\n\nfunction createPlasmicElement<DefaultElementType extends React.ElementType>(\n override: Flex<DefaultElementType>,\n defaultRoot: DefaultElementType,\n defaultProps: Partial<React.ComponentProps<DefaultElementType>>,\n wrapChildrenInFlex?: boolean\n): React.ReactNode | null {\n if (!override || Object.keys(override).length === 0) {\n return createElementWithChildren(defaultRoot, defaultProps, defaultProps.children)\n }\n const override2 = deriveOverride(override);\n const props = mergeOverrideProps(defaultProps, override2.props);\n if (override2.type === \"render\") {\n return override2.render(\n props as React.ComponentProps<DefaultElementType>,\n defaultRoot\n );\n }\n\n let root = defaultRoot;\n if (override2.type === \"as\" && override2.as) {\n if (defaultRoot === (Stack as React.ElementType)) {\n // If there was an \"as\" override specified, but the default type is\n // a Stack, then we don't want to switch to using \"as\" as the root,\n // because then we'd lose the flex wrapper that Stack provides.\n // Instead, we specify the \"as\" as the \"as\" prop to Stack.\n props.as = override2.as;\n } else {\n root = override2.as;\n }\n }\n\n let children = props.children;\n\n if (override2.wrapChildren) {\n children = override2.wrapChildren(ensureNotArray(children));\n }\n\n if (wrapChildrenInFlex) {\n // For legacy, we still support data-plasmic-wrap-flex-children\n children = wrapFlexContainerChildren(children, true);\n }\n\n let result = createElementWithChildren(root, props, children);\n\n if (override2.wrap) {\n result = override2.wrap(result) as React.ReactElement;\n }\n\n return result;\n}\n\n// We use data-plasmic-XXX attributes for custom properties since Typescript doesn't\n// support type check on jsx pragma. See https://github.com/microsoft/TypeScript/issues/21699\n// for more info.\nconst seenElements = new Map<string, React.ReactNode>();\nexport function createPlasmicElementProxy<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n // We use seenElements to keep track of elements that has been rendered by\n // createPlasmicElementProxy(). When a JSX tree is evaluated, the JSX factory\n // is invoked from the leaf to the root as the last call. So we can store\n // all the elements we've created until we encounter the leaf, at which point\n // we will clear this map. We are guaranteed that this map will only contain\n // elements from one Plasmic* component at a time, because we're just creating\n // elements and not \"rendering\" at this point; even if this JSX tree references\n // other Plasmic* elements, we'll just create an element referencing that component,\n // rather than following into the content of that component.\n //\n // TODO: is this ConcurrentMode friendly?\n\n if (props == null) {\n props = {};\n }\n\n const name = props[\"data-plasmic-name\"];\n const isRoot = props[\"data-plasmic-root\"];\n const forNodeName = props[\"data-plasmic-for-node\"];\n\n delete props[\"data-plasmic-name\"];\n delete props[\"data-plasmic-root\"];\n delete props[\"data-plasmic-for-node\"];\n\n const element = createPlasmicElementFromJsx(\n defaultElement,\n props,\n ...children\n );\n if (name) {\n seenElements.set(name, element);\n }\n\n if (isRoot) {\n // If this is the root, and we requested a specific node by specifying data-plasmic-for-node,\n // then return that node instead\n const forNode = forNodeName\n ? seenElements.get(forNodeName) ?? null\n : element;\n\n // Clear out the seenElements map, as we're done rendering this Plasmic* component.\n seenElements.clear();\n return forNode;\n }\n return element;\n}\n\nfunction createPlasmicElementFromJsx<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n const override = props[\"data-plasmic-override\"];\n const wrapFlexChild = props[\"data-plasmic-wrap-flex-child\"];\n const triggerProps = (props[\"data-plasmic-trigger-props\"] ??\n []) as React.HTMLAttributes<HTMLElement>[];\n delete props[\"data-plasmic-override\"];\n delete props[\"data-plasmic-wrap-flex-child\"];\n delete props[\"data-plasmic-trigger-props\"];\n return createPlasmicElement(\n override,\n defaultElement,\n mergeProps(\n props,\n children.length === 0 ? {} : { children: children.length === 1 ? children[0] : children },\n ...triggerProps\n ) as any,\n wrapFlexChild\n );\n}\n\nexport function makeFragment(...children: React.ReactNode[]) {\n return React.createElement(React.Fragment, {}, ...children);\n}\n\nexport const UNSET = Symbol(\"UNSET\");\n\nfunction mergeOverrideProps(\n defaults: Record<string, any>,\n overrides?: Record<string, any>\n): Record<string, any> {\n if (!overrides) {\n return defaults;\n }\n\n const result = { ...defaults };\n\n for (const key of Object.keys(overrides)) {\n const defaultVal = defaults[key];\n let overrideVal = overrides[key];\n if (overrideVal === UNSET) {\n delete result[key];\n } else {\n // We use the NONE sentinel if the overrideVal is nil, and is not one of the\n // props that we merge by default -- which are className, style, and\n // event handlers. This means for all other \"normal\" props -- like children,\n // title, etc -- a nil value will unset the default.\n if (\n overrideVal == null &&\n key !== \"className\" &&\n key !== \"style\" &&\n !(key.startsWith(\"on\") && typeof defaultVal === \"function\")\n ) {\n overrideVal = NONE;\n }\n result[key] = mergePropVals(key, defaultVal, overrideVal);\n }\n }\n\n return result;\n}\n\nexport function wrapWithClassName(element: React.ReactNode, className: string) {\n const key = React.isValidElement(element)\n ? element.key || undefined\n : undefined;\n return React.createElement(\n \"div\",\n {\n key,\n className,\n style: {\n display: \"grid\",\n },\n },\n element\n );\n}\n\nfunction deriveOverride<C extends React.ElementType>(x: Flex<C>): Override<C> {\n if (!x) {\n // undefined Binding is an empty Binding\n return {\n type: \"default\",\n props: {} as any,\n };\n } else if (isReactNode(x)) {\n // If ReactNode, then assume this is the children\n return {\n type: \"default\",\n props: {\n children: x,\n } as any,\n };\n } else if (typeof x === \"object\") {\n // If any of the overrideKeys is a key of this object, then assume\n // this is a full Override\n if (\"as\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"as\",\n } as any;\n } else if (\"render\" in x) {\n return {\n ...x,\n type: \"render\",\n } as any;\n } else if (\"props\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"default\",\n };\n } else if (isSubset(Object.keys(x), [\"wrap\", \"wrapChildren\"])) {\n // Only twiddling functions present, so assume no props overrides\n // (otherwise we'd assume these were props).\n return {\n ...x,\n props: {},\n type: \"default\",\n };\n }\n\n // Else, assume this is just a props object.\n return {\n type: \"default\",\n props: x as any,\n };\n } else if (typeof x === \"function\") {\n return {\n type: \"render\",\n render: x,\n };\n }\n\n throw new Error(`Unexpected override: ${x}`);\n}\n\nfunction mergeVariants<V extends Variants>(\n v1: Partial<V> | undefined,\n v2: Partial<V> | undefined\n): Partial<V> {\n if (!v1 || !v2) {\n return v1 || v2 || {};\n }\n return { ...v1, ...v2 };\n}\n\nfunction mergeArgs<A extends Args>(a1: Partial<A> | undefined, a2: Partial<A> | undefined): Partial<A> {\n if (!a1 || !a2) {\n return a1 || a2 || {};\n }\n return { ...a1, ...a2 };\n}\n\nfunction mergeFlexOverrides<O extends Overrides>(\n o1: Partial<O>,\n o2: Partial<O> | undefined\n): Partial<O> {\n if (!o2) {\n return o1;\n }\n const keys = Array.from(new Set([...Object.keys(o1), ...Object.keys(o2)]));\n const merged: Record<string, any> = {};\n for (const key of keys) {\n merged[key] = mergeFlexOverride(o1[key], o2[key]);\n }\n return merged as Partial<O>;\n}\n\nfunction mergeFlexOverride<C extends React.ElementType<any>>(\n fo1: Flex<C> | undefined,\n fo2: Flex<C> | undefined\n): Flex<C> | undefined {\n if (!fo1) {\n return fo2;\n }\n if (!fo2) {\n return fo1;\n }\n\n const o1 = deriveOverride(fo1);\n const o2 = deriveOverride(fo2);\n const wrap = chainSingleArgFuncs(...[o1.wrap, o2.wrap].filter(notNil));\n const wrapChildren = chainSingleArgFuncs(\n ...[o1.wrapChildren, o2.wrapChildren].filter(notNil)\n );\n\n // \"render\" type always takes precedence, but we still merge the props\n const props = mergeOverrideProps(o1.props ?? {}, o2.props) as Partial<\n React.ComponentProps<C>\n >;\n if (o2.type === \"render\") {\n return {\n render: o2.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n if (o1.type === \"render\") {\n return {\n render: o1.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n // \"as\" will take precedence\n const as =\n (o2.type === \"as\" ? o2.as : undefined) ??\n (o1.type === \"as\" ? o1.as : undefined);\n\n return {\n props,\n wrap,\n wrapChildren,\n ...(as ? { as } : {}),\n };\n}\n\nexport function deriveRenderOpts(\n props: Record<string, any>,\n config: {\n name: string;\n descendantNames: string[];\n internalVariantPropNames: string[];\n internalArgPropNames: string[];\n }\n) {\n const {\n name,\n descendantNames,\n internalVariantPropNames,\n internalArgPropNames,\n } = config;\n const reservedPropNames = [\"variants\", \"args\", \"overrides\"];\n const variants = mergeVariants(\n omit(pick(props, ...internalVariantPropNames), ...reservedPropNames),\n props.variants\n );\n const args = mergeArgs(\n omit(pick(props, ...internalArgPropNames), ...reservedPropNames),\n props.args\n );\n let overrides = mergeFlexOverrides(\n omit(\n pick(props, ...descendantNames),\n ...internalArgPropNames,\n ...internalVariantPropNames,\n ...reservedPropNames\n ),\n props.overrides\n );\n\n const leftoverProps = omit(\n props,\n \"variants\",\n \"args\",\n \"overrides\",\n ...descendantNames,\n ...internalVariantPropNames,\n ...internalArgPropNames\n ) as Partial<React.ComponentProps<\"button\">>;\n\n if (Object.keys(leftoverProps).length > 0) {\n overrides = mergeFlexOverrides(overrides, {\n [name]: {\n props: leftoverProps,\n },\n });\n }\n return { variants, args, overrides };\n}\n","const isDefaultValue = (val: string) => val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\nexport function ensureGlobalVariants<T extends Record<string, any>>(\n globalVariantValues: T\n) {\n Object.entries(globalVariantValues)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariantValues as any)[key] = undefined;\n\n if (!seenDefaultVariants[key] && process.env.NODE_ENV === \"development\") {\n seenDefaultVariants[key] = true;\n const providerName = `${key[0].toUpperCase()}${key.substring(\n 1\n )}Context.Provider`;\n console.warn(\n `Plasmic context value for global variant \"${key}\" was not provided; please use ${providerName} at the root of your React app. Learn More: https://www.plasmic.app/learn/other-assets/#global-variants`\n );\n }\n });\n return globalVariantValues;\n}\n","import * as React from \"react\";\n\nexport function PlasmicIcon(\n props: React.ComponentProps<\"svg\"> & {\n PlasmicIconType: React.ComponentType;\n }\n) {\n const { PlasmicIconType, ...rest } = props;\n return <PlasmicIconType {...rest} />;\n}\n","import React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n return React.createElement(\n props.component,\n pick(props, ...nextjsProps),\n <a {...omit(props, \"component\", \"platform\", ...nextjsProps)} ref={ref} />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n});\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\n}\n","import * as React from \"react\";\nimport { mergeProps } from \"../react-utils\";\n\nexport function PlasmicSlot<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: React.ComponentProps<T> & {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n }\n) {\n return renderPlasmicSlot(props);\n}\n\nexport function renderPlasmicSlot<\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(opts: {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n}) {\n const { as, defaultContents, value, ...rest } = opts;\n\n let content = value === undefined ? defaultContents : value;\n if (!content || (Array.isArray(content) && content.length === 0)) {\n return null;\n }\n\n // If the content is a raw string, then we need to wrap the raw string\n // into an element, in case the slot is inside a flex-gap\n // container (you cannot apply margin to just a text node).\n const maybeString = maybeAsString(content);\n if (maybeString) {\n content = <div className=\"__wab_slot-string-wrapper\">{maybeString}</div>;\n }\n\n const nonEmptyProps = Object.keys(rest).filter((p) => !!(rest as any)[p]);\n if (nonEmptyProps.length === 0) {\n // No attrs to apply to the slot (which means the slot is unstyled), then\n // just render the content directly; no need for style wrapper.\n return <>{content}</>;\n }\n\n return React.createElement(\n as || \"div\",\n mergeProps({ className: \"__wab_slot\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(node: React.ReactNode): string | undefined {\n // Unwrap fragments\n if (React.isValidElement(node) && node.type === React.Fragment) {\n return maybeAsString(node.props.children);\n }\n\n if (typeof node === \"string\") {\n return node;\n }\n\n if (Array.isArray(node) && node.length === 1 && typeof node[0] === \"string\") {\n return node[0];\n }\n\n return undefined;\n}\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { isBrowser, useIsomorphicLayoutEffect } from \"../react-utils\";\n\ntype Queries = { [name: string]: string };\n\nconst listeners: Array<() => void> = [];\nconst queries: Queries = {};\n\nfunction matchScreenVariants() {\n if (!isBrowser) {\n return [];\n }\n return Object.entries(queries)\n .filter(([, query]) => window.matchMedia(query).matches)\n .map(([name]) => name);\n}\n\n// undefined if screen variants have never been calculated\nlet curScreenVariants: string[] | undefined = undefined;\n\nfunction recalculateScreenVariants() {\n const screenVariant = matchScreenVariants();\n if (\n !curScreenVariants ||\n screenVariant.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n curScreenVariants = screenVariant;\n ReactDOM.unstable_batchedUpdates(() =>\n listeners.forEach((listener) => listener())\n );\n }\n}\n\nfunction ensureInitCurScreenVariants() {\n // Initializes curScreenVariants if it hadn't been before. Note that this must\n // be called from within an effect.\n if (curScreenVariants === undefined) {\n curScreenVariants = matchScreenVariants();\n }\n}\n\nif (isBrowser) {\n window.addEventListener(\"resize\", recalculateScreenVariants);\n}\n\nexport function createUseScreenVariants(\n isMulti: boolean,\n screenQueries: Queries\n) {\n Object.assign(queries, screenQueries);\n curScreenVariants = undefined;\n\n return function () {\n // It is important that upon first render, we return [] or undefined, because\n // that is what SSR will use, and the client must match. In an effect (which\n // only happens on the client), we then actually ask for the real screen variant\n // and, if different from [] or undefined, forces a re-render.\n\n const [, updateState] = React.useState<{}>();\n const lastScreenVariantsRef = React.useRef<string[]>(\n curScreenVariants || []\n );\n\n // We do useLayoutEffect instead of useEffect to immediately\n // register our forceUpdate. This ensures that if there was\n // a window resize event between render and effects, that the\n // listener will be registered in time\n useIsomorphicLayoutEffect(() => {\n const updateIfChanged = () => {\n if (\n curScreenVariants &&\n lastScreenVariantsRef.current.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n lastScreenVariantsRef.current = curScreenVariants;\n // Force update\n updateState({});\n }\n };\n\n // Listeners are invoked whenever the window is resized\n listeners.push(updateIfChanged);\n\n // Initialize the curScreenVariants for the first time. We don't need\n // to invoke the listeners here because all components will already\n // have this effect running and will re-render if the real screen\n // variant is non-empty.\n ensureInitCurScreenVariants();\n\n // Now, if the curScreenVariants differs from what we returned last,\n // then force a re-render.\n updateIfChanged();\n return () => {\n // Remove our listener on unmount\n listeners.splice(listeners.indexOf(updateIfChanged), 1);\n };\n }, []);\n\n if (isMulti) {\n return curScreenVariants || [];\n } else if (curScreenVariants) {\n return curScreenVariants[curScreenVariants.length - 1];\n } else {\n return undefined;\n }\n };\n}\n","import * as React from \"react\";\nimport { useFocusRing as useAriaFocusRing } from \"@react-aria/focus\";\n\nfunction useFocused(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisible(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useFocusedWithin(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover() {\n const [isHover, setHover] = React.useState(false);\n return [\n isHover,\n {\n onMouseEnter: () => setHover(true),\n onMouseLeave: () => setHover(false),\n },\n ];\n}\n\nfunction usePressed() {\n const [isPressed, setPressed] = React.useState(false);\n return [\n isPressed,\n {\n onMouseDown: () => setPressed(true),\n onMouseUp: () => setPressed(false),\n },\n ];\n}\n\nconst TRIGGER_TO_HOOK = {\n useHover,\n useFocused,\n useFocusVisible,\n useFocusedWithin,\n useFocusVisibleWithin,\n usePressed,\n} as const;\n\ntype TriggerType = keyof typeof TRIGGER_TO_HOOK;\n\ninterface TriggerOpts {\n isTextInput?: boolean;\n}\n\n/**\n * Installs argment trigger. All the useTrigger calls must use hardcoded `trigger` arg,\n * as it's not valid to install variable React hooks!\n */\nexport function useTrigger(trigger: TriggerType, opts: TriggerOpts) {\n return TRIGGER_TO_HOOK[trigger](opts) as [\n boolean,\n React.HTMLAttributes<HTMLElement>\n ];\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport const classNames = _classNames;\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport {\n createPlasmicElementProxy,\n deriveRenderOpts,\n Flex,\n hasVariant,\n makeFragment,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n wrapWithClassName,\n} from \"./render/elements\";\nexport { ensureGlobalVariants } from \"./render/global-variants\";\nexport { PlasmicIcon } from \"./render/PlasmicIcon\";\nexport { PlasmicImg } from \"./render/PlasmicImg\";\nexport { PlasmicLink } from \"./render/PlasmicLink\";\nexport { PlasmicSlot, renderPlasmicSlot } from \"./render/PlasmicSlot\";\nexport { createUseScreenVariants } from \"./render/screen-variants\";\nexport { PlasmicRootProvider, useIsSSR } from \"./render/ssr\";\nexport { Stack } from \"./render/Stack\";\nexport { useTrigger } from \"./render/triggers\";\nexport { Trans, genTranslatableString } from \"./render/translation\";\n"],"names":["React","ReactDOM","useAriaFocusRing","_classNames"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/render/Stack.tsx","../../src/render/elements.ts","../../src/render/global-variants.ts","../../src/render/PlasmicIcon.tsx","../../src/render/PlasmicLink.tsx","../../src/render/PlasmicSlot.tsx","../../src/render/screen-variants.ts","../../src/render/triggers.ts","../../src/index-common.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { createElementWithChildren } from \"../react-utils\";\nimport { wrapFlexContainerChildren } from \"./elements\";\n\nfunction renderStack<T extends keyof JSX.IntrinsicElements>(\n as: T,\n props: React.ComponentProps<T>,\n hasGap: boolean | undefined,\n ref: React.Ref<any>\n) {\n const { children, ...rest } = props;\n const wrappedChildren = wrapFlexContainerChildren(children, hasGap ?? false);\n return createElementWithChildren(as, { ref, ...rest }, wrappedChildren);\n}\n\nfunction FlexStack_<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>,\n outerRef: React.Ref<any>\n) {\n const { as, hasGap, ...rest } = props;\n return renderStack(\n as ?? \"div\",\n rest as React.ComponentProps<T>,\n hasGap,\n outerRef\n );\n}\n\nconst FlexStack = React.forwardRef(FlexStack_) as <\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>\n) => React.ReactElement;\n\nconst makeStackImpl = <T extends keyof JSX.IntrinsicElements>(as: T) => {\n return React.forwardRef(\n (\n props: React.ComponentProps<T> & { hasGap?: boolean },\n ref: React.Ref<any>\n ) => {\n const { hasGap, ...rest } = props;\n return renderStack(as, rest as React.ComponentProps<T>, hasGap, ref);\n }\n ) as React.FC<React.ComponentProps<T> & { hasGap?: boolean }>;\n};\n\nexport const Stack = Object.assign(FlexStack, {\n div: makeStackImpl(\"div\"),\n a: makeStackImpl(\"a\"),\n button: makeStackImpl(\"button\"),\n h1: makeStackImpl(\"h1\"),\n h2: makeStackImpl(\"h2\"),\n h3: makeStackImpl(\"h3\"),\n h4: makeStackImpl(\"h4\"),\n h5: makeStackImpl(\"h5\"),\n h6: makeStackImpl(\"h6\"),\n label: makeStackImpl(\"label\"),\n form: makeStackImpl(\"form\"),\n section: makeStackImpl(\"section\"),\n head: makeStackImpl(\"head\"),\n main: makeStackImpl(\"main\"),\n nav: makeStackImpl(\"nav\"),\n});\n","import * as React from \"react\";\nimport { chainSingleArgFuncs, isSubset, notNil, omit, pick } from \"../common\";\nimport {\n createElementWithChildren,\n ensureNotArray,\n isReactNode,\n mergeProps,\n mergePropVals,\n NONE,\n} from \"../react-utils\";\nimport { Stack } from \"./Stack\";\n\ninterface Variants {\n [vg: string]: any;\n}\n\nexport type MultiChoiceArg<M extends string> = M | M[] | { [v in M]?: boolean };\nexport type SingleChoiceArg<M extends string> = M;\nexport type SingleBooleanChoiceArg<M extends string> = M | boolean;\n\ninterface OverrideTwiddle {\n wrapChildren?: (children: React.ReactNode) => React.ReactNode;\n wrap?: (node: React.ReactNode) => React.ReactNode;\n}\n\nexport type DefaultOverride<C extends React.ElementType> = {\n type: \"default\";\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type AsOverride<C extends React.ElementType> = {\n type: \"as\";\n as: C;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type RenderOverride<C extends React.ElementType> = {\n type: \"render\";\n render: (props: React.ComponentProps<C>, Comp: C) => React.ReactNode;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type Override<DefaultElementType extends React.ElementType> =\n | DefaultOverride<DefaultElementType>\n | AsOverride<any>\n | RenderOverride<DefaultElementType>;\n\nexport type Overrides = Record<string, Flex<any>>;\nexport type Args = Record<string, any>;\n\n// Flex provides a more \"flexible\" way to specify bindings.\nexport type Flex<DefaultElementType extends React.ElementType> =\n // Fully-specified bindings\n | (Omit<DefaultOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n render?: never;\n })\n | Omit<AsOverride<any>, \"type\">\n | (Omit<RenderOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n })\n\n // Valid ReactNode, used as children.\n // Note: We use React.ReactChild instead of React.ReactNode because we don't want to include\n // React.ReactFragment, which includes {}, which would allow any object to be passed in,\n // defeating any attempt to type-check!\n | React.ReactChild\n\n // Ignored\n | null\n | undefined\n\n // dict of props for the DefaultElementType\n | (Partial<React.ComponentProps<DefaultElementType>> & {\n wrap?: never;\n wrapChildren?: never;\n props?: never;\n as?: never;\n render?: never;\n })\n\n // render function taking in dict of props for the DefaultElementType\n | ((props: React.ComponentProps<DefaultElementType>) => React.ReactNode);\n\nexport function hasVariant<V extends Variants>(\n variants: V | undefined,\n groupName: keyof V,\n variant: string\n) {\n if (variants == null) {\n return false;\n }\n const groupVariants = variants[groupName];\n if (groupVariants == null) {\n return false;\n } else if (groupVariants === true) {\n return variant === groupName;\n } else if (groupVariants === false) {\n return false;\n } else if (Array.isArray(groupVariants)) {\n return groupVariants.includes(variant);\n } else if (typeof groupVariants === \"string\") {\n return groupVariants === variant;\n } else {\n return (\n groupVariants[variant] !== undefined && groupVariants[variant] !== false\n );\n }\n}\n\nexport function wrapFlexContainerChildren(\n children: React.ReactNode,\n hasGap: boolean\n) {\n // We need to always wrap the children, even if there are no gaps, because\n // otherwise if we toggle between with and without gap, React reconciliation\n // will blow away the children tree and all state if we switch from having\n // a wrapper and not.\n const className = hasGap ? \"__wab_flex-container\" : \"__wab_passthrough\";\n if (!children) {\n return null;\n } else if (Array.isArray(children)) {\n return React.createElement(\"div\", { className }, ...children);\n } else {\n return React.createElement(\"div\", { className }, children);\n }\n}\n\nfunction createPlasmicElement<DefaultElementType extends React.ElementType>(\n override: Flex<DefaultElementType>,\n defaultRoot: DefaultElementType,\n defaultProps: Partial<React.ComponentProps<DefaultElementType>>,\n wrapChildrenInFlex?: boolean\n): React.ReactNode | null {\n if (!override || Object.keys(override).length === 0) {\n return createElementWithChildren(defaultRoot, defaultProps, defaultProps.children)\n }\n const override2 = deriveOverride(override);\n const props = mergeOverrideProps(defaultProps, override2.props);\n if (override2.type === \"render\") {\n return override2.render(\n props as React.ComponentProps<DefaultElementType>,\n defaultRoot\n );\n }\n\n let root = defaultRoot;\n if (override2.type === \"as\" && override2.as) {\n if (defaultRoot === (Stack as React.ElementType)) {\n // If there was an \"as\" override specified, but the default type is\n // a Stack, then we don't want to switch to using \"as\" as the root,\n // because then we'd lose the flex wrapper that Stack provides.\n // Instead, we specify the \"as\" as the \"as\" prop to Stack.\n props.as = override2.as;\n } else {\n root = override2.as;\n }\n }\n\n let children = props.children;\n\n if (override2.wrapChildren) {\n children = override2.wrapChildren(ensureNotArray(children));\n }\n\n if (wrapChildrenInFlex) {\n // For legacy, we still support data-plasmic-wrap-flex-children\n children = wrapFlexContainerChildren(children, true);\n }\n\n let result = createElementWithChildren(root, props, children);\n\n if (override2.wrap) {\n result = override2.wrap(result) as React.ReactElement;\n }\n\n return result;\n}\n\n// We use data-plasmic-XXX attributes for custom properties since Typescript doesn't\n// support type check on jsx pragma. See https://github.com/microsoft/TypeScript/issues/21699\n// for more info.\nconst seenElements = new Map<string, React.ReactNode>();\nexport function createPlasmicElementProxy<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n // We use seenElements to keep track of elements that has been rendered by\n // createPlasmicElementProxy(). When a JSX tree is evaluated, the JSX factory\n // is invoked from the leaf to the root as the last call. So we can store\n // all the elements we've created until we encounter the leaf, at which point\n // we will clear this map. We are guaranteed that this map will only contain\n // elements from one Plasmic* component at a time, because we're just creating\n // elements and not \"rendering\" at this point; even if this JSX tree references\n // other Plasmic* elements, we'll just create an element referencing that component,\n // rather than following into the content of that component.\n //\n // TODO: is this ConcurrentMode friendly?\n\n if (props == null) {\n props = {};\n }\n\n const name = props[\"data-plasmic-name\"];\n const isRoot = props[\"data-plasmic-root\"];\n const forNodeName = props[\"data-plasmic-for-node\"];\n\n delete props[\"data-plasmic-name\"];\n delete props[\"data-plasmic-root\"];\n delete props[\"data-plasmic-for-node\"];\n\n const element = createPlasmicElementFromJsx(\n defaultElement,\n props,\n ...children\n );\n if (name) {\n seenElements.set(name, element);\n }\n\n if (isRoot) {\n // If this is the root, and we requested a specific node by specifying data-plasmic-for-node,\n // then return that node instead\n const forNode = forNodeName\n ? seenElements.get(forNodeName) ?? null\n : element;\n\n // Clear out the seenElements map, as we're done rendering this Plasmic* component.\n seenElements.clear();\n return forNode;\n }\n return element;\n}\n\nfunction createPlasmicElementFromJsx<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n const override = props[\"data-plasmic-override\"];\n const wrapFlexChild = props[\"data-plasmic-wrap-flex-child\"];\n const triggerProps = (props[\"data-plasmic-trigger-props\"] ??\n []) as React.HTMLAttributes<HTMLElement>[];\n delete props[\"data-plasmic-override\"];\n delete props[\"data-plasmic-wrap-flex-child\"];\n delete props[\"data-plasmic-trigger-props\"];\n return createPlasmicElement(\n override,\n defaultElement,\n mergeProps(\n props,\n children.length === 0 ? {} : { children: children.length === 1 ? children[0] : children },\n ...triggerProps\n ) as any,\n wrapFlexChild\n );\n}\n\nexport function makeFragment(...children: React.ReactNode[]) {\n return React.createElement(React.Fragment, {}, ...children);\n}\n\nexport const UNSET = Symbol(\"UNSET\");\n\nfunction mergeOverrideProps(\n defaults: Record<string, any>,\n overrides?: Record<string, any>\n): Record<string, any> {\n if (!overrides) {\n return defaults;\n }\n\n const result = { ...defaults };\n\n for (const key of Object.keys(overrides)) {\n const defaultVal = defaults[key];\n let overrideVal = overrides[key];\n if (overrideVal === UNSET) {\n delete result[key];\n } else {\n // We use the NONE sentinel if the overrideVal is nil, and is not one of the\n // props that we merge by default -- which are className, style, and\n // event handlers. This means for all other \"normal\" props -- like children,\n // title, etc -- a nil value will unset the default.\n if (\n overrideVal == null &&\n key !== \"className\" &&\n key !== \"style\" &&\n !(key.startsWith(\"on\") && typeof defaultVal === \"function\")\n ) {\n overrideVal = NONE;\n }\n result[key] = mergePropVals(key, defaultVal, overrideVal);\n }\n }\n\n return result;\n}\n\nexport function wrapWithClassName(element: React.ReactNode, className: string) {\n const key = React.isValidElement(element)\n ? element.key || undefined\n : undefined;\n return React.createElement(\n \"div\",\n {\n key,\n className,\n style: {\n display: \"grid\",\n },\n },\n element\n );\n}\n\nfunction deriveOverride<C extends React.ElementType>(x: Flex<C>): Override<C> {\n if (!x) {\n // undefined Binding is an empty Binding\n return {\n type: \"default\",\n props: {} as any,\n };\n } else if (isReactNode(x)) {\n // If ReactNode, then assume this is the children\n return {\n type: \"default\",\n props: {\n children: x,\n } as any,\n };\n } else if (typeof x === \"object\") {\n // If any of the overrideKeys is a key of this object, then assume\n // this is a full Override\n if (\"as\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"as\",\n } as any;\n } else if (\"render\" in x) {\n return {\n ...x,\n type: \"render\",\n } as any;\n } else if (\"props\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"default\",\n };\n } else if (isSubset(Object.keys(x), [\"wrap\", \"wrapChildren\"])) {\n // Only twiddling functions present, so assume no props overrides\n // (otherwise we'd assume these were props).\n return {\n ...x,\n props: {},\n type: \"default\",\n };\n }\n\n // Else, assume this is just a props object.\n return {\n type: \"default\",\n props: x as any,\n };\n } else if (typeof x === \"function\") {\n return {\n type: \"render\",\n render: x,\n };\n }\n\n throw new Error(`Unexpected override: ${x}`);\n}\n\nfunction mergeVariants<V extends Variants>(\n v1: Partial<V> | undefined,\n v2: Partial<V> | undefined\n): Partial<V> {\n if (!v1 || !v2) {\n return v1 || v2 || {};\n }\n return { ...v1, ...v2 };\n}\n\nfunction mergeArgs<A extends Args>(a1: Partial<A> | undefined, a2: Partial<A> | undefined): Partial<A> {\n if (!a1 || !a2) {\n return a1 || a2 || {};\n }\n return { ...a1, ...a2 };\n}\n\nfunction mergeFlexOverrides<O extends Overrides>(\n o1: Partial<O>,\n o2: Partial<O> | undefined\n): Partial<O> {\n if (!o2) {\n return o1;\n }\n const keys = Array.from(new Set([...Object.keys(o1), ...Object.keys(o2)]));\n const merged: Record<string, any> = {};\n for (const key of keys) {\n merged[key] = mergeFlexOverride(o1[key], o2[key]);\n }\n return merged as Partial<O>;\n}\n\nfunction mergeFlexOverride<C extends React.ElementType<any>>(\n fo1: Flex<C> | undefined,\n fo2: Flex<C> | undefined\n): Flex<C> | undefined {\n if (!fo1) {\n return fo2;\n }\n if (!fo2) {\n return fo1;\n }\n\n const o1 = deriveOverride(fo1);\n const o2 = deriveOverride(fo2);\n const wrap = chainSingleArgFuncs(...[o1.wrap, o2.wrap].filter(notNil));\n const wrapChildren = chainSingleArgFuncs(\n ...[o1.wrapChildren, o2.wrapChildren].filter(notNil)\n );\n\n // \"render\" type always takes precedence, but we still merge the props\n const props = mergeOverrideProps(o1.props ?? {}, o2.props) as Partial<\n React.ComponentProps<C>\n >;\n if (o2.type === \"render\") {\n return {\n render: o2.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n if (o1.type === \"render\") {\n return {\n render: o1.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n // \"as\" will take precedence\n const as =\n (o2.type === \"as\" ? o2.as : undefined) ??\n (o1.type === \"as\" ? o1.as : undefined);\n\n return {\n props,\n wrap,\n wrapChildren,\n ...(as ? { as } : {}),\n };\n}\n\nexport function deriveRenderOpts(\n props: Record<string, any>,\n config: {\n name: string;\n descendantNames: string[];\n internalVariantPropNames: string[];\n internalArgPropNames: string[];\n }\n) {\n const {\n name,\n descendantNames,\n internalVariantPropNames,\n internalArgPropNames,\n } = config;\n const reservedPropNames = [\"variants\", \"args\", \"overrides\"];\n const variants = mergeVariants(\n omit(pick(props, ...internalVariantPropNames), ...reservedPropNames),\n props.variants\n );\n const args = mergeArgs(\n omit(pick(props, ...internalArgPropNames), ...reservedPropNames),\n props.args\n );\n let overrides = mergeFlexOverrides(\n omit(\n pick(props, ...descendantNames),\n ...internalArgPropNames,\n ...internalVariantPropNames,\n ...reservedPropNames\n ),\n props.overrides\n );\n\n const leftoverProps = omit(\n props,\n \"variants\",\n \"args\",\n \"overrides\",\n ...descendantNames,\n ...internalVariantPropNames,\n ...internalArgPropNames\n ) as Partial<React.ComponentProps<\"button\">>;\n\n if (Object.keys(leftoverProps).length > 0) {\n overrides = mergeFlexOverrides(overrides, {\n [name]: {\n props: leftoverProps,\n },\n });\n }\n return { variants, args, overrides };\n}\n","const isDefaultValue = (val: string) => val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\nexport function ensureGlobalVariants<T extends Record<string, any>>(\n globalVariantValues: T\n) {\n Object.entries(globalVariantValues)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariantValues as any)[key] = undefined;\n\n if (!seenDefaultVariants[key] && process.env.NODE_ENV === \"development\") {\n seenDefaultVariants[key] = true;\n const providerName = `${key[0].toUpperCase()}${key.substring(\n 1\n )}Context.Provider`;\n console.warn(\n `Plasmic context value for global variant \"${key}\" was not provided; please use ${providerName} at the root of your React app. Learn More: https://www.plasmic.app/learn/other-assets/#global-variants`\n );\n }\n });\n return globalVariantValues;\n}\n","import * as React from \"react\";\n\nexport function PlasmicIcon(\n props: React.ComponentProps<\"svg\"> & {\n PlasmicIconType: React.ComponentType;\n }\n) {\n const { PlasmicIconType, ...rest } = props;\n return <PlasmicIconType {...rest} />;\n}\n","import React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n return React.createElement(\n props.component,\n pick(props, ...nextjsProps),\n <a {...omit(props, \"component\", \"platform\", ...nextjsProps)} ref={ref} />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n});\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\n}\n","import * as React from \"react\";\nimport { mergeProps } from \"../react-utils\";\nimport { Trans } from \"./translation\";\n\nexport function PlasmicSlot<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: React.ComponentProps<T> & {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n }\n) {\n return renderPlasmicSlot(props);\n}\n\nexport function renderPlasmicSlot<\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(opts: {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n}) {\n const { as, defaultContents, value, ...rest } = opts;\n\n let content = value === undefined ? defaultContents : value;\n if (!content || (Array.isArray(content) && content.length === 0)) {\n return null;\n }\n\n // If the content is a raw string, then we need to wrap the raw string\n // into an element, in case the slot is inside a flex-gap\n // container (you cannot apply margin to just a text node).\n const maybeString = maybeAsString(content);\n if (maybeString) {\n content = <div className=\"__wab_slot-string-wrapper\">{maybeString}</div>;\n }\n\n const nonEmptyProps = Object.keys(rest).filter((p) => !!(rest as any)[p]);\n if (nonEmptyProps.length === 0) {\n // No attrs to apply to the slot (which means the slot is unstyled), then\n // just render the content directly; no need for style wrapper.\n return <>{content}</>;\n }\n\n return React.createElement(\n as || \"div\",\n mergeProps({ className: \"__wab_slot\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(node: React.ReactNode): string | undefined {\n // Unwrap fragments\n if (\n React.isValidElement(node) &&\n // Fragment and Trans don't render DOM elements\n (node.type === React.Fragment || node.type === Trans)\n ) {\n return maybeAsString(node.props.children);\n }\n\n if (typeof node === \"string\") {\n return node;\n }\n\n if (Array.isArray(node) && node.length === 1 && typeof node[0] === \"string\") {\n return node[0];\n }\n\n return undefined;\n}\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { isBrowser, useIsomorphicLayoutEffect } from \"../react-utils\";\n\ntype Queries = { [name: string]: string };\n\nconst listeners: Array<() => void> = [];\nconst queries: Queries = {};\n\nfunction matchScreenVariants() {\n if (!isBrowser) {\n return [];\n }\n return Object.entries(queries)\n .filter(([, query]) => window.matchMedia(query).matches)\n .map(([name]) => name);\n}\n\n// undefined if screen variants have never been calculated\nlet curScreenVariants: string[] | undefined = undefined;\n\nfunction recalculateScreenVariants() {\n const screenVariant = matchScreenVariants();\n if (\n !curScreenVariants ||\n screenVariant.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n curScreenVariants = screenVariant;\n ReactDOM.unstable_batchedUpdates(() =>\n listeners.forEach((listener) => listener())\n );\n }\n}\n\nfunction ensureInitCurScreenVariants() {\n // Initializes curScreenVariants if it hadn't been before. Note that this must\n // be called from within an effect.\n if (curScreenVariants === undefined) {\n curScreenVariants = matchScreenVariants();\n }\n}\n\nif (isBrowser) {\n window.addEventListener(\"resize\", recalculateScreenVariants);\n}\n\nexport function createUseScreenVariants(\n isMulti: boolean,\n screenQueries: Queries\n) {\n Object.assign(queries, screenQueries);\n curScreenVariants = undefined;\n\n return function () {\n // It is important that upon first render, we return [] or undefined, because\n // that is what SSR will use, and the client must match. In an effect (which\n // only happens on the client), we then actually ask for the real screen variant\n // and, if different from [] or undefined, forces a re-render.\n\n const [, updateState] = React.useState<{}>();\n const lastScreenVariantsRef = React.useRef<string[]>(\n curScreenVariants || []\n );\n\n // We do useLayoutEffect instead of useEffect to immediately\n // register our forceUpdate. This ensures that if there was\n // a window resize event between render and effects, that the\n // listener will be registered in time\n useIsomorphicLayoutEffect(() => {\n const updateIfChanged = () => {\n if (\n curScreenVariants &&\n lastScreenVariantsRef.current.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n lastScreenVariantsRef.current = curScreenVariants;\n // Force update\n updateState({});\n }\n };\n\n // Listeners are invoked whenever the window is resized\n listeners.push(updateIfChanged);\n\n // Initialize the curScreenVariants for the first time. We don't need\n // to invoke the listeners here because all components will already\n // have this effect running and will re-render if the real screen\n // variant is non-empty.\n ensureInitCurScreenVariants();\n\n // Now, if the curScreenVariants differs from what we returned last,\n // then force a re-render.\n updateIfChanged();\n return () => {\n // Remove our listener on unmount\n listeners.splice(listeners.indexOf(updateIfChanged), 1);\n };\n }, []);\n\n if (isMulti) {\n return curScreenVariants || [];\n } else if (curScreenVariants) {\n return curScreenVariants[curScreenVariants.length - 1];\n } else {\n return undefined;\n }\n };\n}\n","import * as React from \"react\";\nimport { useFocusRing as useAriaFocusRing } from \"@react-aria/focus\";\n\nfunction useFocused(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisible(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useFocusedWithin(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover() {\n const [isHover, setHover] = React.useState(false);\n return [\n isHover,\n {\n onMouseEnter: () => setHover(true),\n onMouseLeave: () => setHover(false),\n },\n ];\n}\n\nfunction usePressed() {\n const [isPressed, setPressed] = React.useState(false);\n return [\n isPressed,\n {\n onMouseDown: () => setPressed(true),\n onMouseUp: () => setPressed(false),\n },\n ];\n}\n\nconst TRIGGER_TO_HOOK = {\n useHover,\n useFocused,\n useFocusVisible,\n useFocusedWithin,\n useFocusVisibleWithin,\n usePressed,\n} as const;\n\ntype TriggerType = keyof typeof TRIGGER_TO_HOOK;\n\ninterface TriggerOpts {\n isTextInput?: boolean;\n}\n\n/**\n * Installs argment trigger. All the useTrigger calls must use hardcoded `trigger` arg,\n * as it's not valid to install variable React hooks!\n */\nexport function useTrigger(trigger: TriggerType, opts: TriggerOpts) {\n return TRIGGER_TO_HOOK[trigger](opts) as [\n boolean,\n React.HTMLAttributes<HTMLElement>\n ];\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport const classNames = _classNames;\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport {\n createPlasmicElementProxy,\n deriveRenderOpts,\n Flex,\n hasVariant,\n makeFragment,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n wrapWithClassName,\n} from \"./render/elements\";\nexport { ensureGlobalVariants } from \"./render/global-variants\";\nexport { PlasmicIcon } from \"./render/PlasmicIcon\";\nexport { PlasmicImg } from \"./render/PlasmicImg\";\nexport { PlasmicLink } from \"./render/PlasmicLink\";\nexport { PlasmicSlot, renderPlasmicSlot } from \"./render/PlasmicSlot\";\nexport { createUseScreenVariants } from \"./render/screen-variants\";\nexport { PlasmicRootProvider, useIsSSR } from \"./render/ssr\";\nexport { Stack } from \"./render/Stack\";\nexport { useTrigger } from \"./render/triggers\";\nexport { Trans, genTranslatableString } from \"./render/translation\";\n"],"names":["React","ReactDOM","useAriaFocusRing","_classNames"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import { _ as __rest, a as __assign, p as pick, b as __spreadArray, o as omit } from '../../tslib.es6-d26ffe68.js';
2
- import { m as mergeVariantToggles } from '../../plume-utils-27cd384f.js';
1
+ import { _ as __rest, a as __assign, p as pick, b as __spreadArray, c as __read, o as omit } from '../../common-182a0b0c.js';
2
+ import { m as mergeVariantToggles } from '../../plume-utils-623b91cc.js';
3
3
  import 'react';
4
4
 
5
5
  function useButton(plasmicClass, props, config, ref) {
6
6
  var _a, _b, _c, _d;
7
7
  if (ref === void 0) { ref = null; }
8
8
  var link = props.link, isDisabled = props.isDisabled, startIcon = props.startIcon, endIcon = props.endIcon, showStartIcon = props.showStartIcon, showEndIcon = props.showEndIcon, children = props.children, rest = __rest(props, ["link", "isDisabled", "startIcon", "endIcon", "showStartIcon", "showEndIcon", "children"]);
9
- var variants = __assign(__assign({}, pick.apply(void 0, __spreadArray([props], plasmicClass.internalVariantProps))), mergeVariantToggles({ def: config.showStartIconVariant, active: showStartIcon }, { def: config.showEndIconVariant, active: showEndIcon }, { def: config.isDisabledVariant, active: isDisabled }));
10
- var args = __assign(__assign(__assign(__assign({}, pick.apply(void 0, __spreadArray([props], plasmicClass.internalArgProps))), (config.startIconSlot && (_a = {}, _a[config.startIconSlot] = startIcon, _a))), (config.endIconSlot && (_b = {}, _b[config.endIconSlot] = endIcon, _b))), (_c = {}, _c[config.contentSlot] = children, _c));
9
+ var variants = __assign(__assign({}, pick.apply(void 0, __spreadArray([props], __read(plasmicClass.internalVariantProps)))), mergeVariantToggles({ def: config.showStartIconVariant, active: showStartIcon }, { def: config.showEndIconVariant, active: showEndIcon }, { def: config.isDisabledVariant, active: isDisabled }));
10
+ var args = __assign(__assign(__assign(__assign({}, pick.apply(void 0, __spreadArray([props], __read(plasmicClass.internalArgProps)))), (config.startIconSlot && (_a = {}, _a[config.startIconSlot] = startIcon, _a))), (config.endIconSlot && (_b = {}, _b[config.endIconSlot] = endIcon, _b))), (_c = {}, _c[config.contentSlot] = children, _c));
11
11
  var overrides = (_d = {},
12
12
  _d[config.root] = {
13
13
  as: !!link ? "a" : "button",
14
- props: __assign(__assign(__assign({}, omit.apply(void 0, __spreadArray(__spreadArray([rest], plasmicClass.internalArgProps), plasmicClass.internalVariantProps))), { ref: ref, disabled: isDisabled }), (!!link && { href: link })),
14
+ props: __assign(__assign(__assign({}, omit.apply(void 0, __spreadArray(__spreadArray([rest], __read(plasmicClass.internalArgProps)), __read(plasmicClass.internalVariantProps)))), { ref: ref, disabled: isDisabled }), (!!link && { href: link })),
15
15
  },
16
16
  _d);
17
17
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/plume/button/index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { omit, pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\n\ninterface CommonProps {\n showStartIcon?: boolean;\n showEndIcon?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n children?: React.ReactNode;\n isDisabled?: boolean;\n}\n\ninterface HtmlButtonProps\n extends Omit<React.ComponentProps<\"button\">, \"ref\" | \"disabled\"> {}\n\ninterface HtmlAnchorProps\n extends Omit<React.ComponentProps<\"a\">, \"ref\" | \"href\"> {\n link?: string;\n}\n\nexport type BaseButtonProps = CommonProps & HtmlButtonProps & HtmlAnchorProps;\n\nexport type HtmlAnchorOnlyProps = Exclude<\n keyof HtmlAnchorProps,\n keyof HtmlButtonProps\n>;\nexport type HtmlButtonOnlyProps = Exclude<\n keyof HtmlButtonProps,\n keyof HtmlAnchorProps\n>;\n\nexport type ButtonRef = React.Ref<HTMLButtonElement | HTMLAnchorElement>;\n\ninterface ButtonConfig<C extends AnyPlasmicClass> {\n showStartIconVariant: VariantDef<PlasmicClassVariants<C>>;\n showEndIconVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n startIconSlot?: keyof PlasmicClassArgs<C>;\n endIconSlot?: keyof PlasmicClassArgs<C>;\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useButton<P extends BaseButtonProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: ButtonConfig<C>,\n ref: ButtonRef = null\n) {\n const {\n link,\n isDisabled,\n startIcon,\n endIcon,\n showStartIcon,\n showEndIcon,\n children,\n ...rest\n } = props;\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.showStartIconVariant, active: showStartIcon },\n { def: config.showEndIconVariant, active: showEndIcon },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.startIconSlot && { [config.startIconSlot]: startIcon }),\n ...(config.endIconSlot && { [config.endIconSlot]: endIcon }),\n [config.contentSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n as: !!link ? \"a\" : \"button\",\n props: {\n ...omit(\n rest as any,\n ...plasmicClass.internalArgProps,\n ...plasmicClass.internalVariantProps\n ),\n ref: ref,\n disabled: isDisabled,\n ...(!!link && { href: link }),\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":[],"mappings":";;;;SAoDgB,SAAS,CACvB,YAAe,EACf,KAAQ,EACR,MAAuB,EACvB,GAAqB;;IAArB,oBAAA,EAAA,UAAqB;IAGnB,IAAA,IAAI,GAQF,KAAK,KARH,EACJ,UAAU,GAOR,KAAK,WAPG,EACV,SAAS,GAMP,KAAK,UANE,EACT,OAAO,GAKL,KAAK,QALA,EACP,aAAa,GAIX,KAAK,cAJM,EACb,WAAW,GAGT,KAAK,YAHI,EACX,QAAQ,GAEN,KAAK,SAFC,EACL,IAAI,UACL,KAAK,EATH,0FASL,CADQ,CACC;IACV,IAAM,QAAQ,yBACT,IAAI,8BAAC,KAAK,GAAK,YAAY,CAAC,oBAAoB,KAChD,mBAAmB,CACpB,EAAE,GAAG,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,EAC3D,EAAE,GAAG,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,EACvD,EAAE,GAAG,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,CACtD,CACF,CAAC;IAEF,IAAM,IAAI,2CACL,IAAI,8BAAC,KAAK,GAAK,YAAY,CAAC,gBAAgB,MAC3C,MAAM,CAAC,aAAa,cAAM,GAAC,MAAM,CAAC,aAAa,IAAG,SAAS,KAAE,KAC7D,MAAM,CAAC,WAAW,cAAM,GAAC,MAAM,CAAC,WAAW,IAAG,OAAO,KAAE,iBAC1D,MAAM,CAAC,WAAW,IAAG,QAAQ,MAC/B,CAAC;IAEF,IAAM,SAAS;QACb,GAAC,MAAM,CAAC,IAAI,IAAG;YACb,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ;YAC3B,KAAK,iCACA,IAAI,4CACL,IAAW,GACR,YAAY,CAAC,gBAAgB,GAC7B,YAAY,CAAC,oBAAoB,OAEtC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,UAAU,MAChB,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAC7B;SACF;WACF,CAAC;IAEF,OAAO;QACL,YAAY,EAAE;YACZ,QAAQ,EAAE,QAAmC;YAC7C,IAAI,EAAE,IAA2B;YACjC,SAAS,EAAE,SAAqC;SACjD;KACF,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/plume/button/index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { omit, pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\n\ninterface CommonProps {\n showStartIcon?: boolean;\n showEndIcon?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n children?: React.ReactNode;\n isDisabled?: boolean;\n}\n\ninterface HtmlButtonProps\n extends Omit<React.ComponentProps<\"button\">, \"ref\" | \"disabled\"> {}\n\ninterface HtmlAnchorProps\n extends Omit<React.ComponentProps<\"a\">, \"ref\" | \"href\"> {\n link?: string;\n}\n\nexport type BaseButtonProps = CommonProps & HtmlButtonProps & HtmlAnchorProps;\n\nexport type HtmlAnchorOnlyProps = Exclude<\n keyof HtmlAnchorProps,\n keyof HtmlButtonProps\n>;\nexport type HtmlButtonOnlyProps = Exclude<\n keyof HtmlButtonProps,\n keyof HtmlAnchorProps\n>;\n\nexport type ButtonRef = React.Ref<HTMLButtonElement | HTMLAnchorElement>;\n\ninterface ButtonConfig<C extends AnyPlasmicClass> {\n showStartIconVariant: VariantDef<PlasmicClassVariants<C>>;\n showEndIconVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n startIconSlot?: keyof PlasmicClassArgs<C>;\n endIconSlot?: keyof PlasmicClassArgs<C>;\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useButton<P extends BaseButtonProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: ButtonConfig<C>,\n ref: ButtonRef = null\n) {\n const {\n link,\n isDisabled,\n startIcon,\n endIcon,\n showStartIcon,\n showEndIcon,\n children,\n ...rest\n } = props;\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.showStartIconVariant, active: showStartIcon },\n { def: config.showEndIconVariant, active: showEndIcon },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.startIconSlot && { [config.startIconSlot]: startIcon }),\n ...(config.endIconSlot && { [config.endIconSlot]: endIcon }),\n [config.contentSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n as: !!link ? \"a\" : \"button\",\n props: {\n ...omit(\n rest as any,\n ...plasmicClass.internalArgProps,\n ...plasmicClass.internalVariantProps\n ),\n ref: ref,\n disabled: isDisabled,\n ...(!!link && { href: link }),\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":[],"mappings":";;;;SAoDgB,SAAS,CACvB,YAAe,EACf,KAAQ,EACR,MAAuB,EACvB,GAAqB;;IAArB,oBAAA,EAAA,UAAqB;IAGnB,IAAA,IAAI,GAQF,KAAK,KARH,EACJ,UAAU,GAOR,KAAK,WAPG,EACV,SAAS,GAMP,KAAK,UANE,EACT,OAAO,GAKL,KAAK,QALA,EACP,aAAa,GAIX,KAAK,cAJM,EACb,WAAW,GAGT,KAAK,YAHI,EACX,QAAQ,GAEN,KAAK,SAFC,EACL,IAAI,UACL,KAAK,EATH,0FASL,CADQ,CACC;IACV,IAAM,QAAQ,yBACT,IAAI,8BAAC,KAAK,UAAK,YAAY,CAAC,oBAAoB,MAChD,mBAAmB,CACpB,EAAE,GAAG,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,EAC3D,EAAE,GAAG,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,EACvD,EAAE,GAAG,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,CACtD,CACF,CAAC;IAEF,IAAM,IAAI,2CACL,IAAI,8BAAC,KAAK,UAAK,YAAY,CAAC,gBAAgB,OAC3C,MAAM,CAAC,aAAa,cAAM,GAAC,MAAM,CAAC,aAAa,IAAG,SAAS,KAAE,KAC7D,MAAM,CAAC,WAAW,cAAM,GAAC,MAAM,CAAC,WAAW,IAAG,OAAO,KAAE,iBAC1D,MAAM,CAAC,WAAW,IAAG,QAAQ,MAC/B,CAAC;IAEF,IAAM,SAAS;QACb,GAAC,MAAM,CAAC,IAAI,IAAG;YACb,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ;YAC3B,KAAK,iCACA,IAAI,4CACL,IAAW,UACR,YAAY,CAAC,gBAAgB,WAC7B,YAAY,CAAC,oBAAoB,QAEtC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,UAAU,MAChB,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAC7B;SACF;WACF,CAAC;IAEF,OAAO;QACL,YAAY,EAAE;YACZ,QAAQ,EAAE,QAAmC;YAC7C,IAAI,EAAE,IAA2B;YACjC,SAAS,EAAE,SAAqC;SACjD;KACF,CAAC;AACJ;;;;"}
@@ -1,12 +1,12 @@
1
- import { a as __assign, p as pick, b as __spreadArray } from '../../tslib.es6-d26ffe68.js';
1
+ import { a as __assign, p as pick, b as __spreadArray, c as __read } from '../../common-182a0b0c.js';
2
2
  import * as React from 'react';
3
3
  import { useCheckbox as useCheckbox$1 } from '@react-aria/checkbox';
4
4
  import { VisuallyHidden } from '@react-aria/visually-hidden';
5
5
  import { useToggleState } from '@react-stately/toggle';
6
- import { m as mergeProps } from '../../react-utils-7c01e440.js';
6
+ import { m as mergeProps } from '../../react-utils-35cb2a4e.js';
7
7
  import { a as useEnsureSSRProvider } from '../../ssr-fbf922f6.js';
8
- import { m as mergeVariantToggles } from '../../plume-utils-27cd384f.js';
9
- import { g as getStyleProps } from '../../props-utils-7c02c0a8.js';
8
+ import { m as mergeVariantToggles } from '../../plume-utils-623b91cc.js';
9
+ import { g as getStyleProps } from '../../props-utils-b2ad4997.js';
10
10
  import 'classnames';
11
11
  import '@react-aria/ssr';
12
12
 
@@ -26,7 +26,7 @@ function useCheckbox(plasmicClass, props, config, ref) {
26
26
  var ariaProps = asAriaCheckboxProps(props);
27
27
  var state = useToggleState(ariaProps);
28
28
  var inputProps = useCheckbox$1(ariaProps, state, inputRef).inputProps;
29
- var variants = __assign(__assign({}, pick.apply(void 0, __spreadArray([props], plasmicClass.internalVariantProps))), mergeVariantToggles({
29
+ var variants = __assign(__assign({}, pick.apply(void 0, __spreadArray([props], __read(plasmicClass.internalVariantProps)))), mergeVariantToggles({
30
30
  def: config.isDisabledVariant,
31
31
  active: isDisabled,
32
32
  }, {
@@ -51,7 +51,7 @@ function useCheckbox(plasmicClass, props, config, ref) {
51
51
  children)); },
52
52
  },
53
53
  _a);
54
- var args = __assign(__assign({}, pick.apply(void 0, __spreadArray([props], plasmicClass.internalArgProps))), (config.labelSlot ? (_b = {}, _b[config.labelSlot] = children, _b) : {}));
54
+ var args = __assign(__assign({}, pick.apply(void 0, __spreadArray([props], __read(plasmicClass.internalArgProps)))), (config.labelSlot ? (_b = {}, _b[config.labelSlot] = children, _b) : {}));
55
55
  var plumeState = React.useMemo(function () { return ({
56
56
  setChecked: function (checked) { return state.setSelected(checked); },
57
57
  }); }, [state]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/plume/checkbox/index.tsx"],"sourcesContent":["import { AriaCheckboxProps } from \"@react-types/checkbox\";\nimport * as React from \"react\";\nimport { useCheckbox as useAriaCheckbox } from \"@react-aria/checkbox\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type CheckboxRef = React.Ref<CheckboxRefValue>;\nexport interface CheckboxRefValue extends CheckboxState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface CheckboxState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface CheckboxProps\n extends Omit<AriaCheckboxProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Checkbox is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Checkbox is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n\n /**\n * Whether the Checkbox is in an \"indeterminate\" state; this usually\n * refers to a \"check all\" that is used to check / uncheck many other\n * checkboxes, and is visually indeterminate if some of its controlled\n * checkboxes are checked and some are not.\n */\n isIndeterminate?: boolean;\n}\n\nfunction asAriaCheckboxProps(props: CheckboxProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface CheckboxConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isIndeterminateVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useCheckbox<P extends CheckboxProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: CheckboxConfig<C>,\n ref: CheckboxRef = null\n) {\n const { children, isDisabled, isIndeterminate } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaCheckboxProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaCheckbox(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.isIndeterminateVariant,\n active: isIndeterminate,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children) => (\n <>\n <VisuallyHidden isFocusable>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: CheckboxState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n"],"names":["useAriaCheckbox"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/plume/checkbox/index.tsx"],"sourcesContent":["import { AriaCheckboxProps } from \"@react-types/checkbox\";\nimport * as React from \"react\";\nimport { useCheckbox as useAriaCheckbox } from \"@react-aria/checkbox\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type CheckboxRef = React.Ref<CheckboxRefValue>;\nexport interface CheckboxRefValue extends CheckboxState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface CheckboxState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface CheckboxProps\n extends Omit<AriaCheckboxProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Checkbox is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Checkbox is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n\n /**\n * Whether the Checkbox is in an \"indeterminate\" state; this usually\n * refers to a \"check all\" that is used to check / uncheck many other\n * checkboxes, and is visually indeterminate if some of its controlled\n * checkboxes are checked and some are not.\n */\n isIndeterminate?: boolean;\n}\n\nfunction asAriaCheckboxProps(props: CheckboxProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface CheckboxConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isIndeterminateVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useCheckbox<P extends CheckboxProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: CheckboxConfig<C>,\n ref: CheckboxRef = null\n) {\n const { children, isDisabled, isIndeterminate } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaCheckboxProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaCheckbox(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.isIndeterminateVariant,\n active: isIndeterminate,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children) => (\n <>\n <VisuallyHidden isFocusable>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: CheckboxState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n"],"names":["useAriaCheckbox"],"mappings":"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"}