@makeswift/runtime 0.5.0 → 0.5.2

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 (88) hide show
  1. package/dist/Box.cjs.js +30 -270
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +29 -269
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +1 -1
  6. package/dist/Button.es.js +2 -2
  7. package/dist/Carousel.cjs.js +3 -4
  8. package/dist/Carousel.cjs.js.map +1 -1
  9. package/dist/Carousel.es.js +2 -3
  10. package/dist/Carousel.es.js.map +1 -1
  11. package/dist/Countdown.es.js +1 -1
  12. package/dist/Divider.es.js +1 -1
  13. package/dist/Embed.cjs.js +2 -1
  14. package/dist/Embed.cjs.js.map +1 -1
  15. package/dist/Embed.es.js +2 -1
  16. package/dist/Embed.es.js.map +1 -1
  17. package/dist/Form.cjs.js +1 -1
  18. package/dist/Form.es.js +2 -2
  19. package/dist/Image.cjs.js +1 -1
  20. package/dist/Image.es.js +2 -2
  21. package/dist/LiveProvider.es.js +1 -1
  22. package/dist/Navigation.cjs.js +4 -3
  23. package/dist/Navigation.cjs.js.map +1 -1
  24. package/dist/Navigation.es.js +4 -3
  25. package/dist/Navigation.es.js.map +1 -1
  26. package/dist/PreviewProvider.es.js +1 -1
  27. package/dist/Root.cjs.js +5 -5
  28. package/dist/Root.cjs.js.map +1 -1
  29. package/dist/Root.es.js +3 -3
  30. package/dist/SocialLinks.cjs.js +2 -2
  31. package/dist/SocialLinks.es.js +3 -3
  32. package/dist/Text.cjs.js +1 -1
  33. package/dist/Text.es.js +2 -2
  34. package/dist/Video.es.js +1 -1
  35. package/dist/api.cjs.js +11 -20
  36. package/dist/api.cjs.js.map +1 -1
  37. package/dist/api.es.js +11 -20
  38. package/dist/api.es.js.map +1 -1
  39. package/dist/components.cjs.js +10 -9
  40. package/dist/components.cjs.js.map +1 -1
  41. package/dist/components.es.js +9 -8
  42. package/dist/components.es.js.map +1 -1
  43. package/dist/index.cjs.js +73 -43
  44. package/dist/index.cjs.js.map +1 -1
  45. package/dist/index.cjs2.js +711 -92
  46. package/dist/index.cjs2.js.map +1 -1
  47. package/dist/index.cjs3.js +107 -20
  48. package/dist/index.cjs3.js.map +1 -1
  49. package/dist/index.cjs4.js +59 -0
  50. package/dist/index.cjs4.js.map +1 -0
  51. package/dist/index.es.js +74 -43
  52. package/dist/index.es.js.map +1 -1
  53. package/dist/index.es2.js +708 -93
  54. package/dist/index.es2.js.map +1 -1
  55. package/dist/index.es3.js +103 -21
  56. package/dist/index.es3.js.map +1 -1
  57. package/dist/index.es4.js +58 -0
  58. package/dist/index.es4.js.map +1 -0
  59. package/dist/next.es.js +1 -1
  60. package/dist/types/src/api/graphql/documents/fragments.d.ts +7 -1
  61. package/dist/types/src/api/graphql/documents/fragments.d.ts.map +1 -1
  62. package/dist/types/src/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -1
  63. package/dist/types/src/components/builtin/Box/Box.d.ts +18 -26
  64. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  65. package/dist/types/src/components/builtin/Box/animations.d.ts +13 -60
  66. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -1
  67. package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
  68. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  69. package/dist/types/src/components/hooks/useMediaQuery.d.ts +1 -1
  70. package/dist/types/src/components/hooks/useMediaQuery.d.ts.map +1 -1
  71. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +1 -254
  72. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  73. package/dist/types/src/components/shared/grid-item.d.ts +9 -6
  74. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -1
  75. package/dist/types/src/state/modules/api-resources.d.ts.map +1 -1
  76. package/dist/useIsomorphicLayoutEffect.cjs.js +6 -0
  77. package/dist/useIsomorphicLayoutEffect.cjs.js.map +1 -0
  78. package/dist/useIsomorphicLayoutEffect.es.js +5 -0
  79. package/dist/useIsomorphicLayoutEffect.es.js.map +1 -0
  80. package/package.json +1 -1
  81. package/dist/grid-item.cjs.js +0 -603
  82. package/dist/grid-item.cjs.js.map +0 -1
  83. package/dist/grid-item.es.js +0 -595
  84. package/dist/grid-item.es.js.map +0 -1
  85. package/dist/useMediaQuery.cjs.js +0 -26
  86. package/dist/useMediaQuery.cjs.js.map +0 -1
  87. package/dist/useMediaQuery.es.js +0 -25
  88. package/dist/useMediaQuery.es.js.map +0 -1
package/dist/Box.es.js CHANGED
@@ -29,25 +29,24 @@ var __objRest = (source, exclude) => {
29
29
  }
30
30
  return target;
31
31
  };
32
- import { forwardRef, useCallback, useEffect, useState, useRef, useImperativeHandle } from "react";
33
- import { useReducedMotion, useAnimation, motion } from "framer-motion";
32
+ import { forwardRef, useRef, useState, useImperativeHandle, useEffect } from "react";
34
33
  import { cx } from "@emotion/css";
35
- import { n as useStyle, c as DEFAULT_BOX_ANIMATE_TYPE, e as DEFAULT_BOX_ANIMATE_DURATION, d as DEFAULT_BOX_ANIMATE_DELAY, f as DEFAULT_ITEM_ANIMATE_TYPE, h as DEFAULT_ITEM_ANIMATE_DURATION, g as DEFAULT_ITEM_ANIMATE_DELAY, i as DEFAULT_ITEM_STAGGER_DURATION, r as responsiveStyle, E as Element } from "./index.es.js";
34
+ import { v4 } from "uuid";
35
+ import { o as useStyle, r as responsiveStyle, E as Element } from "./index.es.js";
36
36
  import { jsx } from "react/jsx-runtime";
37
- import "use-sync-external-store/shim";
38
- import "./slot.es.js";
39
- import { u as useMediaQuery } from "./useMediaQuery.es.js";
37
+ import { a as useBoxAnimation, b as areBoxAnimationPropsEqual, B as BackgroundsContainer, G as GridItem } from "./index.es2.js";
40
38
  import { p as parse, c as createBox } from "./box-models.es.js";
41
- import { B as BackgroundsContainer, G as GridItem } from "./grid-item.es.js";
42
39
  import "use-sync-external-store/shim/with-selector";
43
40
  import "next/dynamic";
44
41
  import "./react-page.es.js";
45
42
  import "redux";
46
43
  import "redux-thunk";
47
44
  import "./actions.es.js";
45
+ import "./slot.es.js";
48
46
  import "./control.es.js";
49
47
  import "./text-input.es.js";
50
48
  import "./combobox.es.js";
49
+ import "use-sync-external-store/shim";
51
50
  import "slate";
52
51
  import "./types.es.js";
53
52
  import "color";
@@ -63,11 +62,12 @@ import "http-proxy";
63
62
  import "set-cookie-parser";
64
63
  import "uuid/v4";
65
64
  import "corporate-ipsum";
66
- import "css-box-model";
67
65
  import "next/image";
66
+ import "./useIsomorphicLayoutEffect.es.js";
68
67
  import "react-player";
69
68
  import "./next-version.es.js";
70
69
  import "next/package.json";
70
+ import "css-box-model";
71
71
  var Placeholder = forwardRef(function Placeholder2(_a, ref) {
72
72
  var _b = _a, {
73
73
  hide = false
@@ -107,238 +107,6 @@ var Placeholder = forwardRef(function Placeholder2(_a, ref) {
107
107
  })
108
108
  }));
109
109
  });
110
- const defaultExitedProps = {
111
- opacity: 0,
112
- x: 0,
113
- y: 0,
114
- scale: 1
115
- };
116
- const boxAnimations = {
117
- none: {
118
- entered: {
119
- opacity: 1
120
- },
121
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
122
- opacity: 1
123
- }),
124
- transition: {}
125
- },
126
- fadeIn: {
127
- exited: defaultExitedProps,
128
- entered: {
129
- opacity: 1
130
- },
131
- transition: {}
132
- },
133
- fadeLeft: {
134
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
135
- x: 60
136
- }),
137
- entered: {
138
- opacity: 1,
139
- x: 0
140
- },
141
- transition: {
142
- x: {
143
- type: "tween",
144
- ease: [0.165, 0.84, 0.44, 1]
145
- }
146
- }
147
- },
148
- fadeRight: {
149
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
150
- x: -60
151
- }),
152
- entered: {
153
- opacity: 1,
154
- x: 0
155
- },
156
- transition: {
157
- x: {
158
- type: "tween",
159
- ease: [0.165, 0.84, 0.44, 1]
160
- }
161
- }
162
- },
163
- fadeUp: {
164
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
165
- y: 80
166
- }),
167
- entered: {
168
- opacity: 1,
169
- y: 0
170
- },
171
- transition: {
172
- y: {
173
- type: "tween",
174
- ease: [0.165, 0.84, 0.44, 1]
175
- }
176
- }
177
- },
178
- fadeDown: {
179
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
180
- y: -80
181
- }),
182
- entered: {
183
- opacity: 1,
184
- y: 0
185
- },
186
- transition: {
187
- y: {
188
- type: "tween",
189
- ease: [0.165, 0.84, 0.44, 1]
190
- }
191
- }
192
- },
193
- blurIn: {
194
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
195
- filter: "blur(20px)"
196
- }),
197
- entered: {
198
- opacity: 1,
199
- filter: "blur(0px)"
200
- },
201
- transition: {}
202
- },
203
- scaleDown: {
204
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
205
- scale: 1.2
206
- }),
207
- entered: {
208
- opacity: 1,
209
- scale: 1
210
- },
211
- transition: {
212
- scale: {
213
- type: "tween",
214
- ease: [0.165, 0.84, 0.44, 1]
215
- }
216
- }
217
- },
218
- scaleUp: {
219
- exited: __spreadProps(__spreadValues({}, defaultExitedProps), {
220
- scale: 0.75
221
- }),
222
- entered: {
223
- opacity: 1,
224
- scale: 1
225
- },
226
- transition: {
227
- scale: {
228
- type: "tween",
229
- ease: [0.165, 0.84, 0.44, 1]
230
- }
231
- }
232
- }
233
- };
234
- const mergeCustomTransitionWithDefault = (transitions, props) => transitions ? Object.keys(transitions).reduce((a, c) => __spreadProps(__spreadValues({}, a), {
235
- [c]: __spreadValues(__spreadValues({}, transitions[c]), props)
236
- }), props) : props;
237
- const useElementOnScreen = (element, options) => {
238
- const [isVisible, setIsVisible] = useState(false);
239
- useEffect(() => {
240
- const observer = new IntersectionObserver(intersectionCallback, options);
241
- if (element)
242
- observer.observe(element);
243
- return () => {
244
- if (element)
245
- observer.unobserve(element);
246
- };
247
- function intersectionCallback([entry]) {
248
- if (entry == null ? void 0 : entry.isIntersecting) {
249
- setIsVisible(true);
250
- }
251
- }
252
- }, [element, options]);
253
- return isVisible;
254
- };
255
- const useBoxAnimations = (_c) => {
256
- var _d = _c, {
257
- boxElement,
258
- elements
259
- } = _d, props = __objRest(_d, [
260
- "boxElement",
261
- "elements"
262
- ]);
263
- const reducedMotion = useReducedMotion();
264
- const boxAnimateType = useMediaQuery(props.boxAnimateType) || DEFAULT_BOX_ANIMATE_TYPE;
265
- const boxAnimateDuration = useMediaQuery(props.boxAnimateDuration) || DEFAULT_BOX_ANIMATE_DURATION;
266
- const boxAnimateDelay = useMediaQuery(props.boxAnimateDelay) || DEFAULT_BOX_ANIMATE_DELAY;
267
- const itemAnimateType = useMediaQuery(props.itemAnimateType) || DEFAULT_ITEM_ANIMATE_TYPE;
268
- const itemAnimateDuration = useMediaQuery(props.itemAnimateDuration) || DEFAULT_ITEM_ANIMATE_DURATION;
269
- const itemAnimateDelay = useMediaQuery(props.itemAnimateDelay) || DEFAULT_ITEM_ANIMATE_DELAY;
270
- const itemStaggerDuration = useMediaQuery(props.itemStaggerDuration) || DEFAULT_ITEM_STAGGER_DURATION;
271
- const isBoxVisible = useElementOnScreen(boxElement, {
272
- root: null,
273
- rootMargin: `0px 0px -10% 0px`,
274
- threshold: 0.2
275
- });
276
- const itemControls = useAnimation();
277
- const boxControls = useAnimation();
278
- const setSequence = useCallback((variant) => {
279
- boxControls.stop();
280
- itemControls.stop();
281
- boxControls.set(variant);
282
- itemControls.set(variant);
283
- }, [boxControls, itemControls]);
284
- const playSequence = useCallback(() => {
285
- boxControls.stop();
286
- itemControls.stop();
287
- boxControls.set("exited");
288
- itemControls.set("exited");
289
- boxControls.start("entered");
290
- itemControls.start("entered");
291
- }, [boxControls, itemControls]);
292
- useEffect(() => {
293
- if (isBoxVisible) {
294
- setSequence("entered");
295
- }
296
- }, [elements == null ? void 0 : elements.map((e) => e.key).sort().join(), setSequence]);
297
- useEffect(() => {
298
- if (isBoxVisible) {
299
- playSequence();
300
- }
301
- }, [isBoxVisible, boxAnimateType, boxAnimateDuration, boxAnimateDelay, itemAnimateType, itemAnimateDuration, itemAnimateDelay, itemStaggerDuration, reducedMotion, playSequence]);
302
- const boxVariant = boxAnimations[boxAnimateType];
303
- const itemVariant = boxAnimations[itemAnimateType];
304
- return {
305
- initial: {
306
- container: reducedMotion ? "entered" : "exited",
307
- parent: reducedMotion ? "entered" : "exited"
308
- },
309
- animate: {
310
- container: reducedMotion ? void 0 : boxControls,
311
- parent: reducedMotion ? void 0 : itemControls
312
- },
313
- variants: {
314
- container: {
315
- exited: boxVariant.exited,
316
- entered: boxVariant.entered
317
- },
318
- child: {
319
- exited: itemVariant.exited,
320
- entered: itemVariant.entered
321
- }
322
- },
323
- transition: {
324
- container: mergeCustomTransitionWithDefault(boxVariant.transition, {
325
- delay: boxAnimateDelay,
326
- duration: boxAnimateDuration
327
- }),
328
- parent: {
329
- delayChildren: itemAnimateDelay,
330
- staggerChildren: itemStaggerDuration,
331
- duration: itemAnimateDuration
332
- },
333
- child: mergeCustomTransitionWithDefault(itemVariant.transition, {
334
- duration: itemAnimateDuration
335
- })
336
- },
337
- key: {
338
- container: boxAnimateType + boxAnimateDuration + boxAnimateDelay + itemAnimateType + itemAnimateDuration + itemAnimateDelay + itemStaggerDuration + reducedMotion
339
- }
340
- };
341
- };
342
110
  const Box = forwardRef(function Box2({
343
111
  id,
344
112
  backgrounds,
@@ -364,8 +132,6 @@ const Box = forwardRef(function Box2({
364
132
  }, ref) {
365
133
  const innerRef = useRef(null);
366
134
  const [boxElement, setBoxElement] = useState(null);
367
- const hasAnimations = boxAnimateType != null || itemAnimateType != null;
368
- const Grid = hasAnimations ? motion.div : "div";
369
135
  useImperativeHandle(ref, () => ({
370
136
  getBoxModel() {
371
137
  var _a, _b, _c, _d;
@@ -405,38 +171,35 @@ const Box = forwardRef(function Box2({
405
171
  const gridItemClassName = useStyle(responsiveStyle([verticalAlign], ([alignItems = "flex-start"]) => ({
406
172
  alignItems
407
173
  })));
408
- const {
409
- initial,
410
- animate,
411
- variants,
412
- transition,
413
- key
414
- } = useBoxAnimations({
174
+ const [animationClassName, replayAnimation] = useBoxAnimation(boxElement, boxAnimateType, boxAnimateDuration, boxAnimateDelay, itemAnimateType);
175
+ const [key, setKey] = useState(() => v4());
176
+ const animationProps = {
415
177
  boxAnimateType,
416
178
  boxAnimateDuration,
417
179
  boxAnimateDelay,
418
- itemAnimateDelay,
419
180
  itemAnimateType,
420
181
  itemAnimateDuration,
421
- itemStaggerDuration,
422
- boxElement,
423
- elements: children == null ? void 0 : children.elements
424
- });
182
+ itemAnimateDelay,
183
+ itemStaggerDuration
184
+ };
185
+ const prevAnimationProps = useRef(animationProps);
186
+ useEffect(() => {
187
+ if (!areBoxAnimationPropsEqual(prevAnimationProps.current, animationProps)) {
188
+ replayAnimation();
189
+ setKey(v4());
190
+ prevAnimationProps.current = animationProps;
191
+ }
192
+ }, [replayAnimation, animationProps]);
425
193
  return /* @__PURE__ */ jsx(BackgroundsContainer, {
426
194
  ref: setBoxElement,
427
- hasAnimations,
428
195
  id,
429
196
  className: cx(width, margin, borderRadius, useStyle({
430
197
  display: "flex"
431
198
  }), useStyle(responsiveStyle([height], ([alignSelf = "auto"]) => ({
432
199
  alignSelf
433
- })))),
200
+ }))), animationClassName),
434
201
  backgrounds,
435
- animate: animate == null ? void 0 : animate.container,
436
- initial: initial == null ? void 0 : initial.container,
437
- variants: variants == null ? void 0 : variants.container,
438
- transition: transition == null ? void 0 : transition.container,
439
- children: /* @__PURE__ */ jsx(Grid, {
202
+ children: /* @__PURE__ */ jsx("div", {
440
203
  ref: innerRef,
441
204
  className: cx(padding, boxShadow, border, useStyle({
442
205
  display: "flex",
@@ -445,26 +208,23 @@ const Box = forwardRef(function Box2({
445
208
  }), useStyle(responsiveStyle([verticalAlign], ([alignContent = "flex-start"]) => ({
446
209
  alignContent
447
210
  })))),
448
- animate: animate == null ? void 0 : animate.parent,
449
- initial: initial == null ? void 0 : initial.parent,
450
- transition: transition == null ? void 0 : transition.parent,
451
211
  children: children && children.elements.length > 0 ? children.elements.map((child, index) => /* @__PURE__ */ jsx(GridItem, {
452
- as: hasAnimations ? motion.div : "div",
453
212
  className: gridItemClassName,
454
213
  grid: children.columns,
455
214
  index,
215
+ itemAnimateDuration,
216
+ itemAnimateDelay,
217
+ itemStaggerDuration,
456
218
  columnGap,
457
219
  rowGap,
458
- variants: variants == null ? void 0 : variants.child,
459
- transition: transition == null ? void 0 : transition.child,
460
220
  children: /* @__PURE__ */ jsx(Element, {
461
221
  element: child
462
222
  })
463
223
  }, child.key)) : /* @__PURE__ */ jsx(Placeholder, {
464
224
  hide: hidePlaceholder
465
225
  })
466
- })
467
- }, key == null ? void 0 : key.container);
226
+ }, key)
227
+ });
468
228
  });
469
229
  export { Box as default };
470
230
  //# sourceMappingURL=Box.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Box.es.js","sources":["../src/components/builtin/Box/components/Placeholder/index.tsx","../src/components/builtin/Box/animations.tsx","../src/components/builtin/Box/Box.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\n\ntype Props = { hide?: boolean }\n\nexport default forwardRef(function Placeholder(\n { hide = false, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <div\n {...restOfProps}\n ref={ref}\n style={{ visibility: hide ? 'hidden' : 'initial' }}\n className={useStyle({\n width: '100%',\n background: 'rgba(161, 168, 194, 0.18)',\n height: 80,\n padding: 8,\n })}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </div>\n )\n})\n","import {\n TargetAndTransition,\n Transition,\n useAnimation,\n useReducedMotion,\n Variants,\n MotionProps,\n} from 'framer-motion'\nimport { TransitionMap } from 'framer-motion/types/types'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { ResponsiveValue } from '../../../prop-controllers'\nimport { useMediaQuery } from '../../hooks'\nimport { Element } from '../../../state/react-page'\nimport {\n BoxAnimateIn,\n DEFAULT_BOX_ANIMATE_DELAY,\n DEFAULT_BOX_ANIMATE_DURATION,\n DEFAULT_BOX_ANIMATE_TYPE,\n DEFAULT_ITEM_ANIMATE_DELAY,\n DEFAULT_ITEM_ANIMATE_DURATION,\n DEFAULT_ITEM_ANIMATE_TYPE,\n DEFAULT_ITEM_STAGGER_DURATION,\n} from './constants'\n\nconst defaultExitedProps = {\n opacity: 0,\n x: 0,\n y: 0,\n scale: 1,\n}\n\ntype BoxAnimationVariants = {\n entered: TargetAndTransition\n exited: TargetAndTransition\n}\n\nexport const boxAnimations: {\n [key in BoxAnimateIn]: {\n transition: TransitionMap\n } & BoxAnimationVariants\n} = {\n none: {\n entered: {\n opacity: 1,\n },\n exited: {\n ...defaultExitedProps,\n opacity: 1,\n },\n transition: {},\n },\n fadeIn: {\n exited: defaultExitedProps,\n entered: {\n opacity: 1,\n },\n transition: {},\n },\n fadeLeft: {\n exited: {\n ...defaultExitedProps,\n x: 60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeRight: {\n exited: {\n ...defaultExitedProps,\n x: -60,\n },\n entered: {\n opacity: 1,\n x: 0,\n },\n transition: {\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeUp: {\n exited: {\n ...defaultExitedProps,\n y: 80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n fadeDown: {\n exited: {\n ...defaultExitedProps,\n y: -80,\n },\n entered: {\n opacity: 1,\n y: 0,\n },\n transition: {\n y: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n blurIn: {\n exited: {\n ...defaultExitedProps,\n filter: 'blur(20px)',\n },\n entered: {\n opacity: 1,\n filter: 'blur(0px)',\n },\n transition: {},\n },\n scaleDown: {\n exited: {\n ...defaultExitedProps,\n scale: 1.2,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n scaleUp: {\n exited: {\n ...defaultExitedProps,\n scale: 0.75,\n },\n entered: {\n opacity: 1,\n scale: 1,\n },\n transition: {\n scale: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n },\n },\n },\n}\n\nconst mergeCustomTransitionWithDefault = (\n transitions: TransitionMap,\n props: Transition,\n): TransitionMap | Transition =>\n transitions\n ? Object.keys(transitions).reduce(\n (a, c) => ({\n ...a,\n [c]: {\n ...transitions[c as string],\n ...props,\n },\n }),\n props,\n )\n : props\n\nexport type BoxAnimationType = {\n containerAnimationProps: {\n transition: Transition\n variants: Variants\n }\n parentAnimationProps: {\n transition: Transition\n }\n childAnimationProps: {\n transition: Transition\n variants: Variants\n }\n}\n\nconst useElementOnScreen = (element: HTMLElement | null, options: IntersectionObserverInit) => {\n const [isVisible, setIsVisible] = useState(false)\n\n useEffect(() => {\n const observer = new IntersectionObserver(intersectionCallback, options)\n\n if (element) observer.observe(element)\n\n return () => {\n if (element) observer.unobserve(element)\n }\n\n function intersectionCallback([entry]: IntersectionObserverEntry[]) {\n if (entry?.isIntersecting) {\n setIsVisible(true)\n }\n }\n }, [element, options])\n\n return isVisible\n}\n\ntype UseBoxAnimationsPayload = {\n initial?: { container: MotionProps['initial']; parent: MotionProps['initial'] }\n animate?: { container: MotionProps['animate']; parent: MotionProps['animate'] }\n variants?: { container: MotionProps['variants']; child: MotionProps['variants'] }\n transition?: {\n container: MotionProps['transition']\n parent: MotionProps['transition']\n child: MotionProps['transition']\n }\n key?: { container: string }\n}\n\nexport const useBoxAnimations = ({\n boxElement,\n elements,\n ...props\n}: {\n boxAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n boxAnimateDuration: ResponsiveValue<number> | undefined\n boxAnimateDelay: ResponsiveValue<number> | undefined\n itemAnimateType: ResponsiveValue<BoxAnimateIn> | undefined\n itemAnimateDuration: ResponsiveValue<number> | undefined\n itemAnimateDelay: ResponsiveValue<number> | undefined\n itemStaggerDuration: ResponsiveValue<number> | undefined\n boxElement: HTMLElement | null\n elements: Element[] | undefined\n}): UseBoxAnimationsPayload => {\n const reducedMotion = useReducedMotion()\n const boxAnimateType = useMediaQuery(props.boxAnimateType) || DEFAULT_BOX_ANIMATE_TYPE\n const boxAnimateDuration = useMediaQuery(props.boxAnimateDuration) || DEFAULT_BOX_ANIMATE_DURATION\n const boxAnimateDelay = useMediaQuery(props.boxAnimateDelay) || DEFAULT_BOX_ANIMATE_DELAY\n const itemAnimateType = useMediaQuery(props.itemAnimateType) || DEFAULT_ITEM_ANIMATE_TYPE\n const itemAnimateDuration =\n useMediaQuery(props.itemAnimateDuration) || DEFAULT_ITEM_ANIMATE_DURATION\n const itemAnimateDelay = useMediaQuery(props.itemAnimateDelay) || DEFAULT_ITEM_ANIMATE_DELAY\n const itemStaggerDuration =\n useMediaQuery(props.itemStaggerDuration) || DEFAULT_ITEM_STAGGER_DURATION\n\n const isBoxVisible = useElementOnScreen(boxElement, {\n root: null,\n rootMargin: `0px 0px -10% 0px`,\n threshold: 0.2,\n })\n\n const itemControls = useAnimation()\n const boxControls = useAnimation()\n\n const setSequence = useCallback(\n (variant: keyof BoxAnimationVariants) => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set(variant)\n itemControls.set(variant)\n },\n [boxControls, itemControls],\n )\n\n const playSequence = useCallback(() => {\n boxControls.stop()\n itemControls.stop()\n boxControls.set('exited')\n itemControls.set('exited')\n boxControls.start('entered')\n itemControls.start('entered')\n }, [boxControls, itemControls])\n\n useEffect(() => {\n if (isBoxVisible) {\n setSequence('entered')\n }\n }, [\n elements\n ?.map(e => e.key)\n .sort()\n .join(),\n setSequence,\n ])\n\n useEffect(() => {\n if (isBoxVisible) {\n playSequence()\n }\n }, [\n isBoxVisible,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemAnimateDelay,\n itemStaggerDuration,\n reducedMotion,\n playSequence,\n ])\n\n const boxVariant = boxAnimations[boxAnimateType]\n const itemVariant = boxAnimations[itemAnimateType]\n\n return {\n initial: {\n container: reducedMotion ? 'entered' : 'exited',\n parent: reducedMotion ? 'entered' : 'exited',\n },\n animate: {\n container: reducedMotion ? undefined : boxControls,\n parent: reducedMotion ? undefined : itemControls,\n },\n variants: {\n container: {\n exited: boxVariant.exited,\n entered: boxVariant.entered,\n },\n child: {\n exited: itemVariant.exited,\n entered: itemVariant.entered,\n },\n },\n transition: {\n container: mergeCustomTransitionWithDefault(boxVariant.transition, {\n delay: boxAnimateDelay,\n duration: boxAnimateDuration,\n }),\n parent: {\n delayChildren: itemAnimateDelay,\n staggerChildren: itemStaggerDuration,\n duration: itemAnimateDuration,\n },\n child: mergeCustomTransitionWithDefault(itemVariant.transition, {\n duration: itemAnimateDuration,\n }),\n },\n key: {\n container:\n boxAnimateType +\n boxAnimateDuration +\n boxAnimateDelay +\n itemAnimateType +\n itemAnimateDuration +\n itemAnimateDelay +\n itemStaggerDuration +\n reducedMotion,\n },\n }\n}\n","import { forwardRef, Ref, useImperativeHandle, useRef, useState } from 'react'\nimport { motion } from 'framer-motion'\nimport { cx } from '@emotion/css'\n\nimport { Element } from '../../../runtimes/react'\nimport Placeholder from './components/Placeholder'\nimport { useBoxAnimations } from './animations'\nimport {\n ElementIDValue,\n ResponsiveIconRadioGroupValue,\n GridValue,\n GapYValue,\n GapXValue,\n CheckboxValue,\n ResponsiveSelectValue,\n ResponsiveNumberValue,\n BackgroundsValue,\n} from '../../../prop-controllers/descriptors'\nimport { BoxModelHandle, parse, createBox } from '../../../box-model'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport { BoxAnimateIn } from './constants'\nimport { responsiveStyle } from '../../utils/responsive-style'\nimport { GridItem } from '../../shared/grid-item'\nimport { useStyle } from '../../../runtimes/react/use-style'\n\ntype Props = {\n id?: ElementIDValue\n backgrounds?: BackgroundsValue\n width?: string\n height?: ResponsiveIconRadioGroupValue<'auto' | 'stretch'>\n verticalAlign?: ResponsiveIconRadioGroupValue<\n 'flex-start' | 'center' | 'flex-end' | 'space-between'\n >\n margin?: string\n padding?: string\n border?: string\n borderRadius?: string\n boxShadow?: string\n rowGap?: GapYValue\n columnGap?: GapXValue\n boxAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n boxAnimateDuration?: ResponsiveNumberValue\n boxAnimateDelay?: ResponsiveNumberValue\n itemAnimateType?: ResponsiveSelectValue<BoxAnimateIn>\n itemAnimateDuration?: ResponsiveNumberValue\n itemAnimateDelay?: ResponsiveNumberValue\n itemStaggerDuration?: ResponsiveNumberValue\n hidePlaceholder?: CheckboxValue\n children?: GridValue\n}\n\nconst Box = forwardRef(function Box(\n {\n id,\n backgrounds,\n width,\n height,\n margin,\n padding,\n border,\n children,\n borderRadius,\n boxShadow,\n rowGap,\n columnGap,\n hidePlaceholder,\n verticalAlign,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n }: Props,\n ref: Ref<BoxModelHandle>,\n) {\n const innerRef = useRef<HTMLDivElement | null>(null)\n const [boxElement, setBoxElement] = useState<HTMLElement | null>(null)\n const hasAnimations = boxAnimateType != null || itemAnimateType != null\n const Grid = hasAnimations ? motion.div : 'div'\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const paddingBoxElement = innerRef.current\n const borderBoxElement = innerRef.current\n const marginBoxElement = boxElement\n const borderBox = innerRef.current?.getBoundingClientRect()\n const paddingBoxComputedStyle =\n paddingBoxElement?.ownerDocument.defaultView?.getComputedStyle(paddingBoxElement)\n const borderBoxComputedStyle =\n borderBoxElement?.ownerDocument.defaultView?.getComputedStyle(borderBoxElement)\n const marginBoxComputedStyle =\n marginBoxElement?.ownerDocument.defaultView?.getComputedStyle(marginBoxElement)\n const padding = paddingBoxComputedStyle && {\n top: parse(paddingBoxComputedStyle.paddingTop),\n right: parse(paddingBoxComputedStyle.paddingRight),\n bottom: parse(paddingBoxComputedStyle.paddingBottom),\n left: parse(paddingBoxComputedStyle.paddingLeft),\n }\n const border = borderBoxComputedStyle && {\n top: parse(borderBoxComputedStyle.borderTopWidth),\n right: parse(borderBoxComputedStyle.borderRightWidth),\n bottom: parse(borderBoxComputedStyle.borderBottomWidth),\n left: parse(borderBoxComputedStyle.borderLeftWidth),\n }\n const margin = marginBoxComputedStyle && {\n top: parse(marginBoxComputedStyle.marginTop),\n right: parse(marginBoxComputedStyle.marginRight),\n bottom: parse(marginBoxComputedStyle.marginBottom),\n left: parse(marginBoxComputedStyle.marginLeft),\n }\n\n return borderBox ? createBox({ borderBox, padding, border, margin }) : null\n },\n }),\n [boxElement],\n )\n\n const gridItemClassName = useStyle(\n responsiveStyle([verticalAlign], ([alignItems = 'flex-start']) => ({ alignItems })),\n )\n\n const { initial, animate, variants, transition, key } = useBoxAnimations({\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n boxElement,\n elements: children?.elements,\n })\n\n return (\n <BackgroundsContainer\n ref={setBoxElement}\n hasAnimations={hasAnimations}\n id={id}\n className={cx(\n width,\n margin,\n borderRadius,\n useStyle({ display: 'flex' }),\n useStyle(responsiveStyle([height], ([alignSelf = 'auto']) => ({ alignSelf }))),\n )}\n backgrounds={backgrounds}\n animate={animate?.container}\n initial={initial?.container}\n variants={variants?.container}\n transition={transition?.container}\n key={key?.container}\n >\n <Grid\n ref={innerRef}\n className={cx(\n padding,\n boxShadow,\n border,\n useStyle({ display: 'flex', flexWrap: 'wrap', width: '100%' }),\n useStyle(\n responsiveStyle([verticalAlign], ([alignContent = 'flex-start']) => ({ alignContent })),\n ),\n )}\n animate={animate?.parent}\n initial={initial?.parent}\n transition={transition?.parent}\n >\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n as={hasAnimations ? motion.div : 'div'}\n key={child.key}\n className={gridItemClassName}\n grid={children.columns}\n index={index}\n columnGap={columnGap}\n rowGap={rowGap}\n // @ts-ignore: `variants` is not a prop for `div`, but it is for `motion.div`.\n variants={variants?.child}\n transition={transition?.child}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder hide={hidePlaceholder} />\n )}\n </Grid>\n </BackgroundsContainer>\n )\n})\n\nexport default Box\n"],"names":["forwardRef","ref","hide","restOfProps","visibility","useStyle","width","background","height","padding","overflow","defaultExitedProps","opacity","x","y","scale","boxAnimations","none","entered","exited","transition","fadeIn","fadeLeft","type","ease","fadeRight","fadeUp","fadeDown","blurIn","filter","scaleDown","scaleUp","mergeCustomTransitionWithDefault","transitions","props","Object","keys","reduce","a","c","useElementOnScreen","element","options","isVisible","setIsVisible","useState","useEffect","observer","IntersectionObserver","intersectionCallback","observe","unobserve","entry","isIntersecting","useBoxAnimations","boxElement","elements","reducedMotion","useReducedMotion","boxAnimateType","useMediaQuery","DEFAULT_BOX_ANIMATE_TYPE","boxAnimateDuration","DEFAULT_BOX_ANIMATE_DURATION","boxAnimateDelay","DEFAULT_BOX_ANIMATE_DELAY","itemAnimateType","DEFAULT_ITEM_ANIMATE_TYPE","itemAnimateDuration","DEFAULT_ITEM_ANIMATE_DURATION","itemAnimateDelay","DEFAULT_ITEM_ANIMATE_DELAY","itemStaggerDuration","DEFAULT_ITEM_STAGGER_DURATION","isBoxVisible","root","rootMargin","threshold","itemControls","useAnimation","boxControls","setSequence","useCallback","variant","stop","set","playSequence","start","map","e","key","sort","join","boxVariant","itemVariant","initial","container","parent","animate","undefined","variants","child","delay","duration","delayChildren","staggerChildren","Box","id","backgrounds","margin","border","children","borderRadius","boxShadow","rowGap","columnGap","hidePlaceholder","verticalAlign","innerRef","useRef","setBoxElement","hasAnimations","Grid","motion","div","useImperativeHandle","getBoxModel","paddingBoxElement","current","borderBoxElement","marginBoxElement","borderBox","getBoundingClientRect","paddingBoxComputedStyle","ownerDocument","defaultView","getComputedStyle","borderBoxComputedStyle","marginBoxComputedStyle","top","parse","paddingTop","right","paddingRight","bottom","paddingBottom","left","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","marginTop","marginRight","marginBottom","marginLeft","createBox","gridItemClassName","responsiveStyle","alignItems","cx","display","alignSelf","flexWrap","alignContent","length","index","columns"],"mappings":"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"}
1
+ {"version":3,"file":"Box.es.js","sources":["../src/components/builtin/Box/components/Placeholder/index.tsx","../src/components/builtin/Box/Box.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\n\ntype Props = { hide?: boolean }\n\nexport default forwardRef(function Placeholder(\n { hide = false, ...restOfProps }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <div\n {...restOfProps}\n ref={ref}\n style={{ visibility: hide ? 'hidden' : 'initial' }}\n className={useStyle({\n width: '100%',\n background: 'rgba(161, 168, 194, 0.18)',\n height: 80,\n padding: 8,\n })}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n height=\"100%\"\n style={{ overflow: 'visible' }}\n >\n <rect\n x={0}\n y={0}\n width=\"100%\"\n height=\"100%\"\n strokeWidth={2}\n strokeDasharray=\"4 2\"\n fill=\"none\"\n stroke=\"rgba(161, 168, 194, 0.40)\"\n rx=\"4\"\n ry=\"4\"\n />\n </svg>\n </div>\n )\n})\n","import { forwardRef, Ref, useEffect, useImperativeHandle, useRef, useState } from 'react'\nimport { cx } from '@emotion/css'\nimport { v4 as uuid } from 'uuid'\n\nimport { Element } from '../../../runtimes/react'\nimport Placeholder from './components/Placeholder'\nimport { areBoxAnimationPropsEqual, BoxAnimationProps, useBoxAnimation } from './animations'\nimport {\n ElementIDValue,\n ResponsiveIconRadioGroupValue,\n GridValue,\n GapYValue,\n GapXValue,\n CheckboxValue,\n BackgroundsValue,\n} from '../../../prop-controllers/descriptors'\nimport { BoxModelHandle, parse, createBox } from '../../../box-model'\nimport BackgroundsContainer from '../../shared/BackgroundsContainer'\nimport { responsiveStyle } from '../../utils/responsive-style'\nimport { GridItem } from '../../shared/grid-item'\nimport { useStyle } from '../../../runtimes/react/use-style'\n\ntype Props = {\n id?: ElementIDValue\n backgrounds?: BackgroundsValue\n width?: string\n height?: ResponsiveIconRadioGroupValue<'auto' | 'stretch'>\n verticalAlign?: ResponsiveIconRadioGroupValue<\n 'flex-start' | 'center' | 'flex-end' | 'space-between'\n >\n margin?: string\n padding?: string\n border?: string\n borderRadius?: string\n boxShadow?: string\n rowGap?: GapYValue\n columnGap?: GapXValue\n hidePlaceholder?: CheckboxValue\n children?: GridValue\n} & BoxAnimationProps\n\nconst Box = forwardRef(function Box(\n {\n id,\n backgrounds,\n width,\n height,\n margin,\n padding,\n border,\n children,\n borderRadius,\n boxShadow,\n rowGap,\n columnGap,\n hidePlaceholder,\n verticalAlign,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemStaggerDuration,\n }: Props,\n ref: Ref<BoxModelHandle>,\n) {\n const innerRef = useRef<HTMLDivElement | null>(null)\n const [boxElement, setBoxElement] = useState<HTMLElement | null>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const paddingBoxElement = innerRef.current\n const borderBoxElement = innerRef.current\n const marginBoxElement = boxElement\n const borderBox = innerRef.current?.getBoundingClientRect()\n const paddingBoxComputedStyle =\n paddingBoxElement?.ownerDocument.defaultView?.getComputedStyle(paddingBoxElement)\n const borderBoxComputedStyle =\n borderBoxElement?.ownerDocument.defaultView?.getComputedStyle(borderBoxElement)\n const marginBoxComputedStyle =\n marginBoxElement?.ownerDocument.defaultView?.getComputedStyle(marginBoxElement)\n const padding = paddingBoxComputedStyle && {\n top: parse(paddingBoxComputedStyle.paddingTop),\n right: parse(paddingBoxComputedStyle.paddingRight),\n bottom: parse(paddingBoxComputedStyle.paddingBottom),\n left: parse(paddingBoxComputedStyle.paddingLeft),\n }\n const border = borderBoxComputedStyle && {\n top: parse(borderBoxComputedStyle.borderTopWidth),\n right: parse(borderBoxComputedStyle.borderRightWidth),\n bottom: parse(borderBoxComputedStyle.borderBottomWidth),\n left: parse(borderBoxComputedStyle.borderLeftWidth),\n }\n const margin = marginBoxComputedStyle && {\n top: parse(marginBoxComputedStyle.marginTop),\n right: parse(marginBoxComputedStyle.marginRight),\n bottom: parse(marginBoxComputedStyle.marginBottom),\n left: parse(marginBoxComputedStyle.marginLeft),\n }\n\n return borderBox ? createBox({ borderBox, padding, border, margin }) : null\n },\n }),\n [boxElement],\n )\n\n const gridItemClassName = useStyle(\n responsiveStyle([verticalAlign], ([alignItems = 'flex-start']) => ({ alignItems })),\n )\n\n const [animationClassName, replayAnimation] = useBoxAnimation(\n boxElement,\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateType,\n )\n\n const [key, setKey] = useState(() => uuid())\n\n const animationProps = {\n boxAnimateType,\n boxAnimateDuration,\n boxAnimateDelay,\n itemAnimateType,\n itemAnimateDuration,\n itemAnimateDelay,\n itemStaggerDuration,\n }\n\n const prevAnimationProps = useRef(animationProps)\n useEffect(() => {\n if (!areBoxAnimationPropsEqual(prevAnimationProps.current, animationProps)) {\n replayAnimation()\n setKey(uuid())\n prevAnimationProps.current = animationProps\n }\n }, [replayAnimation, animationProps])\n\n return (\n <BackgroundsContainer\n ref={setBoxElement}\n id={id}\n className={cx(\n width,\n margin,\n borderRadius,\n useStyle({ display: 'flex' }),\n useStyle(responsiveStyle([height], ([alignSelf = 'auto']) => ({ alignSelf }))),\n animationClassName,\n )}\n backgrounds={backgrounds}\n >\n <div\n ref={innerRef}\n key={key}\n className={cx(\n padding,\n boxShadow,\n border,\n useStyle({ display: 'flex', flexWrap: 'wrap', width: '100%' }),\n useStyle(\n responsiveStyle([verticalAlign], ([alignContent = 'flex-start']) => ({ alignContent })),\n ),\n )}\n >\n {children && children.elements.length > 0 ? (\n children.elements.map((child, index) => (\n <GridItem\n key={child.key}\n className={gridItemClassName}\n grid={children.columns}\n index={index}\n itemAnimateDuration={itemAnimateDuration}\n itemAnimateDelay={itemAnimateDelay}\n itemStaggerDuration={itemStaggerDuration}\n columnGap={columnGap}\n rowGap={rowGap}\n >\n <Element element={child} />\n </GridItem>\n ))\n ) : (\n <Placeholder hide={hidePlaceholder} />\n )}\n </div>\n </BackgroundsContainer>\n )\n})\n\nexport default Box\n"],"names":["forwardRef","ref","hide","restOfProps","visibility","useStyle","width","background","height","padding","overflow","Box","id","backgrounds","margin","border","children","borderRadius","boxShadow","rowGap","columnGap","hidePlaceholder","verticalAlign","boxAnimateType","boxAnimateDuration","boxAnimateDelay","itemAnimateDelay","itemAnimateType","itemAnimateDuration","itemStaggerDuration","innerRef","useRef","boxElement","setBoxElement","useState","useImperativeHandle","getBoxModel","paddingBoxElement","current","borderBoxElement","marginBoxElement","borderBox","getBoundingClientRect","paddingBoxComputedStyle","ownerDocument","defaultView","getComputedStyle","borderBoxComputedStyle","marginBoxComputedStyle","top","parse","paddingTop","right","paddingRight","bottom","paddingBottom","left","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","marginTop","marginRight","marginBottom","marginLeft","createBox","gridItemClassName","responsiveStyle","alignItems","animationClassName","replayAnimation","useBoxAnimation","key","setKey","uuid","animationProps","prevAnimationProps","useEffect","areBoxAnimationPropsEqual","cx","display","alignSelf","flexWrap","alignContent","elements","length","map","child","index","columns"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAA,cAAeA,WAAW,sBACxB,IACAC,KACA;AAFA,eAAEC;AAAAA,WAAO;AAAA,MAAT,IAAmBC,wBAAnB,IAAmBA;AAAAA,IAAjBD;AAAAA;AAGF,qEAEQC;IACJ;AAAA,IACA,OAAO;AAAA,MAAEC,YAAYF,OAAO,WAAW;AAAA,IAHzC;AAAA,IAIE,WAAWG,SAAS;AAAA,MAClBC,OAAO;AAAA,MACPC,YAAY;AAAA,MACZC,QAAQ;AAAA,MACRC,SAAS;AAAA,IAAA,CAJQ;AAAA,IAOnB,8BAAA,OAAA;AAAA,MACE,OAAM;AAAA,MACN,OAAM;AAAA,MACN,QAAO;AAAA,MACP,OAAO;AAAA,QAAEC,UAAU;AAAA,MAJrB;AAAA,MAME,8BAAA,QAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAM;AAAA,QACN,QAAO;AAAA,QACP,aAAa;AAAA,QACb,iBAAgB;AAAA,QAChB,MAAK;AAAA,QACL,QAAO;AAAA,QACP,IAAG;AAAA,QACH,IAAG;AAAA,MAAA,CAVL;AAAA,IAAA,CANF;AAAA,EAAA,EAZJ;AAiCD,CArCwB;ACoCnBC,MAAAA,MAAMX,WAAW,cACrB;AAAA,EACEY;AAAAA,EACAC;AAAAA,EACAP;AAAAA,EACAE;AAAAA,EACAM;AAAAA,EACAL;AAAAA,EACAM;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,GAEF5B,KACA;AACM6B,QAAAA,WAAWC,OAA8B,IAAxB;AACvB,QAAM,CAACC,YAAYC,iBAAiBC,SAA6B,IAArB;AAE5CC,sBACElC,KACA,MAAO;AAAA,IACLmC,cAAc;;AACZ,YAAMC,oBAAoBP,SAASQ;AACnC,YAAMC,mBAAmBT,SAASQ;AAC5BE,YAAAA,mBAAmBR;AACnBS,YAAAA,YAAYX,eAASQ,YAATR,mBAAkBY;AAC9BC,YAAAA,0BACJN,6DAAmBO,cAAcC,gBAAjCR,mBAA8CS,iBAAiBT;AAC3DU,YAAAA,yBACJR,2DAAkBK,cAAcC,gBAAhCN,mBAA6CO,iBAAiBP;AAC1DS,YAAAA,yBACJR,2DAAkBI,cAAcC,gBAAhCL,mBAA6CM,iBAAiBN;AAC1D/B,YAAAA,WAAUkC,2BAA2B;AAAA,QACzCM,KAAKC,MAAMP,wBAAwBQ,UAAzB;AAAA,QACVC,OAAOF,MAAMP,wBAAwBU,YAAzB;AAAA,QACZC,QAAQJ,MAAMP,wBAAwBY,aAAzB;AAAA,QACbC,MAAMN,MAAMP,wBAAwBc,WAAzB;AAAA,MAAA;AAEP1C,YAAAA,UAASgC,0BAA0B;AAAA,QACvCE,KAAKC,MAAMH,uBAAuBW,cAAxB;AAAA,QACVN,OAAOF,MAAMH,uBAAuBY,gBAAxB;AAAA,QACZL,QAAQJ,MAAMH,uBAAuBa,iBAAxB;AAAA,QACbJ,MAAMN,MAAMH,uBAAuBc,eAAxB;AAAA,MAAA;AAEP/C,YAAAA,UAASkC,0BAA0B;AAAA,QACvCC,KAAKC,MAAMF,uBAAuBc,SAAxB;AAAA,QACVV,OAAOF,MAAMF,uBAAuBe,WAAxB;AAAA,QACZT,QAAQJ,MAAMF,uBAAuBgB,YAAxB;AAAA,QACbR,MAAMN,MAAMF,uBAAuBiB,UAAxB;AAAA,MAAA;AAGNxB,aAAAA,YAAYyB,UAAU;AAAA,QAAEzB;AAAAA,QAAWhC,SAAAA;AAAAA,QAASM,QAAAA;AAAAA,QAAQD,QAAAA;AAAAA,MAA/B,CAAA,IAA2C;AAAA,IACxE;AAAA,EAAA,IAEH,CAACkB,UAAD,CApCiB;AAuCbmC,QAAAA,oBAAoB9D,SACxB+D,gBAAgB,CAAC9C,aAAD,GAAiB,CAAC,CAAC+C,aAAa,kBAAmB;AAAA,IAAEA;AAAAA,IAAtD,CADiB;AAI5B,QAAA,CAACC,oBAAoBC,mBAAmBC,gBAC5CxC,YACAT,gBACAC,oBACAC,iBACAE,eAL2D;AAQvD,QAAA,CAAC8C,KAAKC,UAAUxC,SAAS,MAAMyC,IAAP;AAE9B,QAAMC,iBAAiB;AAAA,IACrBrD;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAE;AAAAA,IACAC;AAAAA,IACAF;AAAAA,IACAG;AAAAA,EAAAA;AAGIgD,QAAAA,qBAAqB9C,OAAO6C,cAAD;AACjCE,YAAU,MAAM;AACV,QAAA,CAACC,0BAA0BF,mBAAmBvC,SAASsC,cAA7B,GAA8C;AAC3D;AACfF,aAAOC,IAAD;AACNE,yBAAmBvC,UAAUsC;AAAAA,IAC9B;AAAA,EAAA,GACA,CAACL,iBAAiBK,cAAlB,CANM;AAQT,6BACG,sBAAD;AAAA,IACE,KAAK3C;AAAAA,IACL;AAAA,IACA,WAAW+C,GACT1E,OACAQ,QACAG,cACAZ,SAAS;AAAA,MAAE4E,SAAS;AAAA,IAAA,CAAZ,GACR5E,SAAS+D,gBAAgB,CAAC5D,MAAD,GAAU,CAAC,CAAC0E,YAAY,YAAa;AAAA,MAAEA;AAAAA,IAAAA,EAAxC,CAAhB,GACRZ,kBANW;AAAA,IAQb;AAAA,IAEA,8BAAA,OAAA;AAAA,MACE,KAAKxC;AAAAA,MAEL,WAAWkD,GACTvE,SACAS,WACAH,QACAV,SAAS;AAAA,QAAE4E,SAAS;AAAA,QAAQE,UAAU;AAAA,QAAQ7E,OAAO;AAAA,MAAA,CAA7C,GACRD,SACE+D,gBAAgB,CAAC9C,aAAD,GAAiB,CAAC,CAAC8D,eAAe,kBAAmB;AAAA,QAAEA;AAAAA,MAAtC,EAAlB,CADT,CALG;AAAA,MAUZpE,UAAAA,YAAYA,SAASqE,SAASC,SAAS,IACtCtE,SAASqE,SAASE,IAAI,CAACC,OAAOC,8BAC3B,UAAD;AAAA,QAEE,WAAWtB;AAAAA,QACX,MAAMnD,SAAS0E;AAAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QATF,8BAWG,SAAD;AAAA,UAAS,SAASF;AAAAA,QAAAA,CAAlB;AAAA,SAVKA,MAAMf,GADb,CADF,wBAgBC,aAAD;AAAA,QAAa,MAAMpD;AAAAA,MAAAA,CAAnB;AAAA,OA5BGoD,GAFP;AAAA,EAAA,CAdJ;AAiDD,CAtJqB;;"}
@@ -34,7 +34,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
34
34
  var React = require("react");
35
35
  var ColorHelper = require("color");
36
36
  var next = require("./index.cjs.js");
37
- var index = require("./index.cjs2.js");
37
+ var index = require("./index.cjs3.js");
38
38
  var css = require("@emotion/css");
39
39
  var jsxRuntime = require("react/jsx-runtime");
40
40
  require("use-sync-external-store/shim/with-selector");
package/dist/Button.es.js CHANGED
@@ -31,8 +31,8 @@ var __objRest = (source, exclude) => {
31
31
  };
32
32
  import { forwardRef } from "react";
33
33
  import ColorHelper from "color";
34
- import { n as useStyle, o as responsiveWidth, r as responsiveStyle, p as responsiveTextStyle, q as colorToString } from "./index.es.js";
35
- import { L as Link } from "./index.es2.js";
34
+ import { o as useStyle, p as responsiveWidth, r as responsiveStyle, q as responsiveTextStyle, s as colorToString } from "./index.es.js";
35
+ import { L as Link } from "./index.es3.js";
36
36
  import { cx } from "@emotion/css";
37
37
  import { jsx } from "react/jsx-runtime";
38
38
  import "use-sync-external-store/shim/with-selector";
@@ -38,7 +38,6 @@ var popcorn = require("@popmotion/popcorn");
38
38
  var next = require("./index.cjs.js");
39
39
  require("use-sync-external-store/shim");
40
40
  require("./slot.cjs.js");
41
- var useMediaQuery = require("./useMediaQuery.cjs.js");
42
41
  var Image = require("./Image.cjs.js");
43
42
  var css = require("@emotion/css");
44
43
  var jsxRuntime = require("react/jsx-runtime");
@@ -70,7 +69,7 @@ require("uuid/v4");
70
69
  require("corporate-ipsum");
71
70
  require("next/image");
72
71
  require("./placeholders.cjs.js");
73
- require("./index.cjs2.js");
72
+ require("./index.cjs3.js");
74
73
  require("next/link");
75
74
  require("./next-version.cjs.js");
76
75
  require("next/package.json");
@@ -124,8 +123,8 @@ const Carousel = React.forwardRef(function Carousel2({
124
123
  const [index, setIndex] = React.useState(0);
125
124
  const swipe = React.useRef(0);
126
125
  const startIndex = popcorn.wrap(0, images.length, index);
127
- const pageSize = useMediaQuery.useMediaQuery(responsivePageSize) || 1;
128
- const step = useMediaQuery.useMediaQuery(responsiveStep) || 1;
126
+ const pageSize = next.useMediaQuery(responsivePageSize) || 1;
127
+ const step = next.useMediaQuery(responsiveStep) || 1;
129
128
  const endIndex = startIndex + pageSize;
130
129
  const pageCount = Math.ceil((images.length - pageSize) / step + 1);
131
130
  const pageIndex = Math.ceil(startIndex / step);
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.cjs.js","sources":["../src/components/builtin/Carousel/Carousel.tsx"],"sourcesContent":["import {\n useState,\n useRef,\n useEffect,\n useCallback,\n forwardRef,\n Ref,\n ComponentPropsWithoutRef,\n} from 'react'\nimport { motion, useAnimation } from 'framer-motion'\nimport { useGesture } from 'react-use-gesture'\nimport { wrap } from '@popmotion/popcorn'\n\nimport { colorToString } from '../../utils/colorToString'\nimport { useMediaQuery } from '../../hooks'\n\nimport Image from '../Image'\nimport {\n ElementIDValue,\n ImagesValue,\n ResponsiveNumberValue,\n ResponsiveIconRadioGroupValue,\n GapXValue,\n CheckboxValue,\n NumberValue,\n} from '../../../prop-controllers/descriptors'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { cx } from '@emotion/css'\nimport { responsiveStyle } from '../../utils/responsive-style'\n\nconst LeftChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M7,13,1,7,7,1\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\nconst RightChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M3,1,9,7,3,13\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\ntype Props = {\n id?: ElementIDValue\n images?: ImagesValue\n width?: string\n margin?: string\n pageSize?: ResponsiveNumberValue\n step?: ResponsiveNumberValue\n slideAlignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gap?: GapXValue\n autoplay?: CheckboxValue\n delay?: NumberValue\n showArrows?: CheckboxValue\n arrowPosition?: ResponsiveIconRadioGroupValue<'inside' | 'center' | 'outside'>\n arrowColor?: ResponsiveColor | null\n arrowBackground?: ResponsiveColor | null\n showDots?: CheckboxValue\n dotColor?: ResponsiveColor | null\n slideBorder?: string\n slideBorderRadius?: string\n}\n\nconst SWIPE_THRESHOLD = 20\nconst swipePower = (dx: number, velocity: number) => dx * (1 + velocity)\n\nconst Carousel = forwardRef(function Carousel(\n {\n images = [],\n width,\n margin,\n pageSize: responsivePageSize,\n step: responsiveStep,\n gap,\n slideAlignment,\n showDots,\n showArrows,\n arrowPosition,\n arrowColor,\n arrowBackground,\n dotColor,\n autoplay = false,\n delay = 5,\n slideBorder,\n slideBorderRadius,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [index, setIndex] = useState(0)\n const swipe = useRef(0)\n const startIndex = wrap(0, images.length, index)\n const pageSize = useMediaQuery(responsivePageSize) || 1\n const step = useMediaQuery(responsiveStep) || 1\n const endIndex = startIndex + pageSize\n const pageCount = Math.ceil((images.length - pageSize) / step + 1)\n const pageIndex = Math.ceil(startIndex / step)\n const isFirstPage = pageIndex === 0\n const isLastPage = pageIndex === pageCount - 1\n const paginate = useCallback(\n (pageDistance: number) => {\n if (pageDistance === 0) return\n\n const direction = pageDistance / Math.abs(pageDistance)\n const remaining = direction > 0 ? images.slice(endIndex) : images.slice(0, startIndex)\n const distance = direction * Math.min(remaining.length, step * Math.abs(pageDistance))\n\n setIndex(index + distance)\n },\n [images, index, startIndex, endIndex, step],\n )\n // @ts-expect-error: `useAnimation` types expect no arguments.\n const animation = useAnimation({ x: 0, transition: { type: 'spring', stiffness: 100 } })\n const bindPage = useGesture(\n {\n onDrag: ({ movement: [mx], delta: [dx], velocity }) => {\n animation.start({ x: mx })\n swipe.current = swipePower(dx, velocity)\n },\n onDragEnd: () => {\n animation.start({ x: 0 })\n\n if (swipe.current > SWIPE_THRESHOLD) paginate(1)\n else if (swipe.current < -SWIPE_THRESHOLD) paginate(-1)\n },\n },\n {\n drag: {\n axis: 'x',\n bounds: { left: 0, right: 0 },\n rubberband: true,\n },\n },\n )\n\n useEffect(() => {\n if (!autoplay || pageSize !== 0) setIndex(0)\n }, [autoplay, pageSize])\n\n useEffect(() => {\n if (!autoplay) return () => {}\n\n const intervalId = setInterval(() => (isLastPage ? setIndex(0) : paginate(1)), delay * 1000)\n\n return () => clearInterval(intervalId)\n }, [autoplay, delay, paginate, isLastPage])\n\n const clipMaskClassName = useStyle({ overflow: 'hidden' })\n const pageClassName = useStyle({ position: 'relative', width: '100%' })\n const slideClassName = cx(\n useStyle({ display: 'flex' }),\n useStyle(\n responsiveStyle([responsivePageSize] as const, ([pageSize = 1]) => ({\n flexBasis: `${100 / pageSize}%`,\n maxWidth: `${100 / pageSize}%`,\n minWidth: `${100 / pageSize}%`,\n })),\n ),\n useStyle(\n responsiveStyle([slideAlignment] as const, ([alignItems = 'center']) => ({ alignItems })),\n ),\n )\n const reelClassName = cx(\n useStyle({ display: 'flex', position: 'relative', flexWrap: 'nowrap' }),\n useStyle(\n responsiveStyle([gap] as const, ([gap = { value: 0, unit: 'px' }]) => ({\n margin: `0 ${`${-gap.value / 2}${gap.unit}`}`,\n [`& > .${slideClassName}`]: {\n padding: `0 ${`${gap.value / 2}${gap.unit}`}`,\n },\n })),\n ),\n )\n const arrowClassName = cx(\n useStyle({\n padding: 10,\n borderRadius: '50%',\n outline: 0,\n border: 0,\n width: 40,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n }),\n useStyle(\n responsiveStyle(\n [arrowBackground] as const,\n ([background = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 }]) => ({\n background: colorToString(background),\n }),\n ),\n ),\n useStyle({ svg: { transition: 'transform 0.15s', stroke: 'currentcolor' } }),\n )\n const slopClassName = cx(\n useStyle({\n position: 'absolute',\n top: 0,\n bottom: 0,\n\n display: 'flex',\n '&[hidden]': {\n display: 'none',\n },\n\n alignItems: 'center',\n cursor: 'pointer',\n zIndex: 2,\n }),\n useStyle(\n responsiveStyle(\n [arrowColor] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => ({\n color: colorToString(color),\n }),\n ),\n ),\n )\n const leftSlopClassName = cx(\n slopClassName,\n useStyle(\n responsiveStyle([arrowPosition] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return { transform: 'translateX(8px)' }\n\n case 'outside':\n return { transform: 'translateX(calc(-100% - 8px))' }\n\n default:\n return { transform: 'translateX(calc(-50%))' }\n }\n }),\n ),\n useStyle({\n left: 0,\n\n [`&:hover > .${arrowClassName}`]: {\n '& > svg': {\n transform: 'translateX(-2px)',\n },\n },\n }),\n )\n const rightSlopClassName = cx(\n slopClassName,\n useStyle(\n responsiveStyle([arrowPosition] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return { transform: 'translateX(-8px)' }\n\n case 'outside':\n return { transform: 'translateX(calc(100% + 8px))' }\n\n default:\n return { transform: 'translateX(calc(50%))' }\n }\n }),\n ),\n useStyle({\n right: 0,\n\n [`&:hover > .${arrowClassName}`]: {\n '& > svg': {\n transform: 'translateX(2px)',\n },\n },\n }),\n )\n const dotsClassName = cx(\n useStyle({ display: showDots ? 'flex' : 'none', justifyContent: 'center', marginTop: 20 }),\n useStyle(\n responsiveStyle(\n [dotColor] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => ({\n color: colorToString(color),\n }),\n ),\n ),\n )\n\n return (\n <div\n ref={ref}\n className={cx(\n useStyle({ position: 'relative', display: 'flex', flexDirection: 'column' }),\n width,\n margin,\n useStyle({ '&:focus': { outline: 0 } }),\n )}\n tabIndex={-1}\n onKeyDown={e => {\n switch (e.key) {\n case 'ArrowRight':\n paginate(1)\n break\n case 'ArrowLeft':\n paginate(-1)\n break\n default:\n }\n }}\n >\n {/* NOTE: We set height to 100% here to fix an issue on IE11 where the child height of a flex column extends too far */}\n <div className={useStyle({ position: 'relative', height: '100%' })}>\n <div className={clipMaskClassName}>\n <motion.div {...bindPage()} className={pageClassName} animate={animation}>\n <motion.div\n className={reelClassName}\n animate={{ x: `${-(100 / pageSize) * startIndex}%` }}\n transition={{\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n duration: 0.5,\n },\n }}\n >\n {images.map(({ props: imageProps, key }) => (\n <motion.div\n id={key}\n key={key}\n className={slideClassName}\n onMouseDown={e => e.preventDefault()}\n onClick={e => {\n if (swipe.current !== 0) e.preventDefault()\n }}\n >\n <Image\n width={[{ deviceId: 'desktop', value: { value: 100, unit: '%' } }]}\n file={imageProps.file}\n altText={imageProps.altText}\n link={imageProps.link}\n border={slideBorder}\n borderRadius={slideBorderRadius}\n />\n </motion.div>\n ))}\n </motion.div>\n </motion.div>\n </div>\n <div\n onClick={() => paginate(-1)}\n className={leftSlopClassName}\n hidden={!showArrows || isFirstPage}\n >\n <div className={arrowClassName}>\n <LeftChevron />\n </div>\n </div>\n <div\n onClick={() => paginate(1)}\n className={rightSlopClassName}\n hidden={!showArrows || isLastPage}\n >\n <div className={arrowClassName}>\n <RightChevron />\n </div>\n </div>\n </div>\n <div className={dotsClassName}>\n {Array.from({ length: pageCount }).map((_, i) => (\n <Dot key={i} active={i === pageIndex} onClick={() => paginate(i - pageIndex)} />\n ))}\n </div>\n </div>\n )\n})\n\nexport default Carousel\n\ntype DotBaseProps = {\n className?: string\n active: boolean\n}\n\ntype DotProps = DotBaseProps & Omit<ComponentPropsWithoutRef<'div'>, keyof DotBaseProps>\n\nfunction Dot({ className, active, ...restOfProps }: DotProps) {\n return (\n <div\n {...restOfProps}\n className={cx(\n useStyle({\n position: 'relative',\n margin: '0 6px',\n borderRadius: '50%',\n cursor: 'pointer',\n width: 16,\n height: 16,\n\n '&::before, &::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n display: 'block',\n borderRadius: '50%',\n transition: 'all 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275)',\n },\n\n '&::before': {\n boxShadow: '0 0 0 2px currentColor',\n transform: 'translate3d(-50%, -50%, 0)',\n width: active ? 16 : 10,\n height: active ? 16 : 10,\n },\n\n '&::after': {\n background: 'currentColor',\n transform: `translate3d(-50%, -50%, 0) scale(${active ? 1 : 0})`,\n width: 10,\n height: 10,\n },\n\n '&:hover::after': {\n transform: `translate3d(-50%, -50%, 0) scale(${active ? 1 : 0})`,\n },\n }),\n className,\n )}\n />\n )\n}\n"],"names":["LeftChevron","_jsx","RightChevron","SWIPE_THRESHOLD","swipePower","dx","velocity","Carousel","forwardRef","images","width","margin","pageSize","responsivePageSize","step","responsiveStep","gap","slideAlignment","showDots","showArrows","arrowPosition","arrowColor","arrowBackground","dotColor","autoplay","delay","slideBorder","slideBorderRadius","ref","index","setIndex","useState","swipe","useRef","startIndex","wrap","length","useMediaQuery","endIndex","pageCount","Math","ceil","pageIndex","isFirstPage","isLastPage","paginate","useCallback","pageDistance","direction","abs","remaining","slice","distance","min","animation","useAnimation","x","transition","type","stiffness","bindPage","useGesture","onDrag","movement","mx","delta","start","current","onDragEnd","drag","axis","bounds","left","right","rubberband","useEffect","intervalId","setInterval","clearInterval","clipMaskClassName","useStyle","overflow","pageClassName","position","slideClassName","cx","display","responsiveStyle","flexBasis","maxWidth","minWidth","alignItems","reelClassName","flexWrap","value","unit","padding","arrowClassName","borderRadius","outline","border","height","justifyContent","cursor","userSelect","background","swatch","hue","saturation","lightness","alpha","colorToString","svg","stroke","slopClassName","top","bottom","zIndex","color","leftSlopClassName","transform","rightSlopClassName","dotsClassName","marginTop","flexDirection","e","key","_jsxs","motion","ease","duration","map","props","imageProps","preventDefault","Image","deviceId","file","altText","link","Array","from","_","i","className","active","restOfProps","content","boxShadow"],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.cjs.js","sources":["../src/components/builtin/Carousel/Carousel.tsx"],"sourcesContent":["import {\n useState,\n useRef,\n useEffect,\n useCallback,\n forwardRef,\n Ref,\n ComponentPropsWithoutRef,\n} from 'react'\nimport { motion, useAnimation } from 'framer-motion'\nimport { useGesture } from 'react-use-gesture'\nimport { wrap } from '@popmotion/popcorn'\n\nimport { colorToString } from '../../utils/colorToString'\nimport { useMediaQuery } from '../../hooks'\n\nimport Image from '../Image'\nimport {\n ElementIDValue,\n ImagesValue,\n ResponsiveNumberValue,\n ResponsiveIconRadioGroupValue,\n GapXValue,\n CheckboxValue,\n NumberValue,\n} from '../../../prop-controllers/descriptors'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { cx } from '@emotion/css'\nimport { responsiveStyle } from '../../utils/responsive-style'\n\nconst LeftChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M7,13,1,7,7,1\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\nconst RightChevron = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"14\" viewBox=\"0 0 10 14\">\n <path\n d=\"M3,1,9,7,3,13\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n)\n\ntype Props = {\n id?: ElementIDValue\n images?: ImagesValue\n width?: string\n margin?: string\n pageSize?: ResponsiveNumberValue\n step?: ResponsiveNumberValue\n slideAlignment?: ResponsiveIconRadioGroupValue<'flex-start' | 'center' | 'flex-end'>\n gap?: GapXValue\n autoplay?: CheckboxValue\n delay?: NumberValue\n showArrows?: CheckboxValue\n arrowPosition?: ResponsiveIconRadioGroupValue<'inside' | 'center' | 'outside'>\n arrowColor?: ResponsiveColor | null\n arrowBackground?: ResponsiveColor | null\n showDots?: CheckboxValue\n dotColor?: ResponsiveColor | null\n slideBorder?: string\n slideBorderRadius?: string\n}\n\nconst SWIPE_THRESHOLD = 20\nconst swipePower = (dx: number, velocity: number) => dx * (1 + velocity)\n\nconst Carousel = forwardRef(function Carousel(\n {\n images = [],\n width,\n margin,\n pageSize: responsivePageSize,\n step: responsiveStep,\n gap,\n slideAlignment,\n showDots,\n showArrows,\n arrowPosition,\n arrowColor,\n arrowBackground,\n dotColor,\n autoplay = false,\n delay = 5,\n slideBorder,\n slideBorderRadius,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [index, setIndex] = useState(0)\n const swipe = useRef(0)\n const startIndex = wrap(0, images.length, index)\n const pageSize = useMediaQuery(responsivePageSize) || 1\n const step = useMediaQuery(responsiveStep) || 1\n const endIndex = startIndex + pageSize\n const pageCount = Math.ceil((images.length - pageSize) / step + 1)\n const pageIndex = Math.ceil(startIndex / step)\n const isFirstPage = pageIndex === 0\n const isLastPage = pageIndex === pageCount - 1\n const paginate = useCallback(\n (pageDistance: number) => {\n if (pageDistance === 0) return\n\n const direction = pageDistance / Math.abs(pageDistance)\n const remaining = direction > 0 ? images.slice(endIndex) : images.slice(0, startIndex)\n const distance = direction * Math.min(remaining.length, step * Math.abs(pageDistance))\n\n setIndex(index + distance)\n },\n [images, index, startIndex, endIndex, step],\n )\n // @ts-expect-error: `useAnimation` types expect no arguments.\n const animation = useAnimation({ x: 0, transition: { type: 'spring', stiffness: 100 } })\n const bindPage = useGesture(\n {\n onDrag: ({ movement: [mx], delta: [dx], velocity }) => {\n animation.start({ x: mx })\n swipe.current = swipePower(dx, velocity)\n },\n onDragEnd: () => {\n animation.start({ x: 0 })\n\n if (swipe.current > SWIPE_THRESHOLD) paginate(1)\n else if (swipe.current < -SWIPE_THRESHOLD) paginate(-1)\n },\n },\n {\n drag: {\n axis: 'x',\n bounds: { left: 0, right: 0 },\n rubberband: true,\n },\n },\n )\n\n useEffect(() => {\n if (!autoplay || pageSize !== 0) setIndex(0)\n }, [autoplay, pageSize])\n\n useEffect(() => {\n if (!autoplay) return () => {}\n\n const intervalId = setInterval(() => (isLastPage ? setIndex(0) : paginate(1)), delay * 1000)\n\n return () => clearInterval(intervalId)\n }, [autoplay, delay, paginate, isLastPage])\n\n const clipMaskClassName = useStyle({ overflow: 'hidden' })\n const pageClassName = useStyle({ position: 'relative', width: '100%' })\n const slideClassName = cx(\n useStyle({ display: 'flex' }),\n useStyle(\n responsiveStyle([responsivePageSize] as const, ([pageSize = 1]) => ({\n flexBasis: `${100 / pageSize}%`,\n maxWidth: `${100 / pageSize}%`,\n minWidth: `${100 / pageSize}%`,\n })),\n ),\n useStyle(\n responsiveStyle([slideAlignment] as const, ([alignItems = 'center']) => ({ alignItems })),\n ),\n )\n const reelClassName = cx(\n useStyle({ display: 'flex', position: 'relative', flexWrap: 'nowrap' }),\n useStyle(\n responsiveStyle([gap] as const, ([gap = { value: 0, unit: 'px' }]) => ({\n margin: `0 ${`${-gap.value / 2}${gap.unit}`}`,\n [`& > .${slideClassName}`]: {\n padding: `0 ${`${gap.value / 2}${gap.unit}`}`,\n },\n })),\n ),\n )\n const arrowClassName = cx(\n useStyle({\n padding: 10,\n borderRadius: '50%',\n outline: 0,\n border: 0,\n width: 40,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n }),\n useStyle(\n responsiveStyle(\n [arrowBackground] as const,\n ([background = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 }]) => ({\n background: colorToString(background),\n }),\n ),\n ),\n useStyle({ svg: { transition: 'transform 0.15s', stroke: 'currentcolor' } }),\n )\n const slopClassName = cx(\n useStyle({\n position: 'absolute',\n top: 0,\n bottom: 0,\n\n display: 'flex',\n '&[hidden]': {\n display: 'none',\n },\n\n alignItems: 'center',\n cursor: 'pointer',\n zIndex: 2,\n }),\n useStyle(\n responsiveStyle(\n [arrowColor] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => ({\n color: colorToString(color),\n }),\n ),\n ),\n )\n const leftSlopClassName = cx(\n slopClassName,\n useStyle(\n responsiveStyle([arrowPosition] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return { transform: 'translateX(8px)' }\n\n case 'outside':\n return { transform: 'translateX(calc(-100% - 8px))' }\n\n default:\n return { transform: 'translateX(calc(-50%))' }\n }\n }),\n ),\n useStyle({\n left: 0,\n\n [`&:hover > .${arrowClassName}`]: {\n '& > svg': {\n transform: 'translateX(-2px)',\n },\n },\n }),\n )\n const rightSlopClassName = cx(\n slopClassName,\n useStyle(\n responsiveStyle([arrowPosition] as const, ([position = 'inside']) => {\n switch (position) {\n case 'inside':\n return { transform: 'translateX(-8px)' }\n\n case 'outside':\n return { transform: 'translateX(calc(100% + 8px))' }\n\n default:\n return { transform: 'translateX(calc(50%))' }\n }\n }),\n ),\n useStyle({\n right: 0,\n\n [`&:hover > .${arrowClassName}`]: {\n '& > svg': {\n transform: 'translateX(2px)',\n },\n },\n }),\n )\n const dotsClassName = cx(\n useStyle({ display: showDots ? 'flex' : 'none', justifyContent: 'center', marginTop: 20 }),\n useStyle(\n responsiveStyle(\n [dotColor] as const,\n ([color = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => ({\n color: colorToString(color),\n }),\n ),\n ),\n )\n\n return (\n <div\n ref={ref}\n className={cx(\n useStyle({ position: 'relative', display: 'flex', flexDirection: 'column' }),\n width,\n margin,\n useStyle({ '&:focus': { outline: 0 } }),\n )}\n tabIndex={-1}\n onKeyDown={e => {\n switch (e.key) {\n case 'ArrowRight':\n paginate(1)\n break\n case 'ArrowLeft':\n paginate(-1)\n break\n default:\n }\n }}\n >\n {/* NOTE: We set height to 100% here to fix an issue on IE11 where the child height of a flex column extends too far */}\n <div className={useStyle({ position: 'relative', height: '100%' })}>\n <div className={clipMaskClassName}>\n <motion.div {...bindPage()} className={pageClassName} animate={animation}>\n <motion.div\n className={reelClassName}\n animate={{ x: `${-(100 / pageSize) * startIndex}%` }}\n transition={{\n x: {\n type: 'tween',\n ease: [0.165, 0.84, 0.44, 1],\n duration: 0.5,\n },\n }}\n >\n {images.map(({ props: imageProps, key }) => (\n <motion.div\n id={key}\n key={key}\n className={slideClassName}\n onMouseDown={e => e.preventDefault()}\n onClick={e => {\n if (swipe.current !== 0) e.preventDefault()\n }}\n >\n <Image\n width={[{ deviceId: 'desktop', value: { value: 100, unit: '%' } }]}\n file={imageProps.file}\n altText={imageProps.altText}\n link={imageProps.link}\n border={slideBorder}\n borderRadius={slideBorderRadius}\n />\n </motion.div>\n ))}\n </motion.div>\n </motion.div>\n </div>\n <div\n onClick={() => paginate(-1)}\n className={leftSlopClassName}\n hidden={!showArrows || isFirstPage}\n >\n <div className={arrowClassName}>\n <LeftChevron />\n </div>\n </div>\n <div\n onClick={() => paginate(1)}\n className={rightSlopClassName}\n hidden={!showArrows || isLastPage}\n >\n <div className={arrowClassName}>\n <RightChevron />\n </div>\n </div>\n </div>\n <div className={dotsClassName}>\n {Array.from({ length: pageCount }).map((_, i) => (\n <Dot key={i} active={i === pageIndex} onClick={() => paginate(i - pageIndex)} />\n ))}\n </div>\n </div>\n )\n})\n\nexport default Carousel\n\ntype DotBaseProps = {\n className?: string\n active: boolean\n}\n\ntype DotProps = DotBaseProps & Omit<ComponentPropsWithoutRef<'div'>, keyof DotBaseProps>\n\nfunction Dot({ className, active, ...restOfProps }: DotProps) {\n return (\n <div\n {...restOfProps}\n className={cx(\n useStyle({\n position: 'relative',\n margin: '0 6px',\n borderRadius: '50%',\n cursor: 'pointer',\n width: 16,\n height: 16,\n\n '&::before, &::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n display: 'block',\n borderRadius: '50%',\n transition: 'all 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275)',\n },\n\n '&::before': {\n boxShadow: '0 0 0 2px currentColor',\n transform: 'translate3d(-50%, -50%, 0)',\n width: active ? 16 : 10,\n height: active ? 16 : 10,\n },\n\n '&::after': {\n background: 'currentColor',\n transform: `translate3d(-50%, -50%, 0) scale(${active ? 1 : 0})`,\n width: 10,\n height: 10,\n },\n\n '&:hover::after': {\n transform: `translate3d(-50%, -50%, 0) scale(${active ? 1 : 0})`,\n },\n }),\n className,\n )}\n />\n )\n}\n"],"names":["LeftChevron","_jsx","RightChevron","SWIPE_THRESHOLD","swipePower","dx","velocity","Carousel","forwardRef","images","width","margin","pageSize","responsivePageSize","step","responsiveStep","gap","slideAlignment","showDots","showArrows","arrowPosition","arrowColor","arrowBackground","dotColor","autoplay","delay","slideBorder","slideBorderRadius","ref","index","setIndex","useState","swipe","useRef","startIndex","wrap","length","useMediaQuery","endIndex","pageCount","Math","ceil","pageIndex","isFirstPage","isLastPage","paginate","useCallback","pageDistance","direction","abs","remaining","slice","distance","min","animation","useAnimation","x","transition","type","stiffness","bindPage","useGesture","onDrag","movement","mx","delta","start","current","onDragEnd","drag","axis","bounds","left","right","rubberband","useEffect","intervalId","setInterval","clearInterval","clipMaskClassName","useStyle","overflow","pageClassName","position","slideClassName","cx","display","responsiveStyle","flexBasis","maxWidth","minWidth","alignItems","reelClassName","flexWrap","value","unit","padding","arrowClassName","borderRadius","outline","border","height","justifyContent","cursor","userSelect","background","swatch","hue","saturation","lightness","alpha","colorToString","svg","stroke","slopClassName","top","bottom","zIndex","color","leftSlopClassName","transform","rightSlopClassName","dotsClassName","marginTop","flexDirection","e","key","_jsxs","motion","ease","duration","map","props","imageProps","preventDefault","Image","deviceId","file","altText","link","Array","from","_","i","className","active","restOfProps","content","boxShadow"],"mappings":"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"}