etudes 32.2.0 → 32.4.0

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 (43) hide show
  1. package/build/components/Burger.d.ts +2 -2
  2. package/build/components/BurgerButton.d.ts +2 -2
  3. package/build/components/CoverImage.d.ts +3 -3
  4. package/build/components/CoverVideo.d.ts +3 -3
  5. package/build/components/OptionButton.d.ts +1 -1
  6. package/build/components/PanoramaSlider.d.ts +4 -4
  7. package/build/components/SelectableButton.d.ts +1 -1
  8. package/build/etudes.js +39 -46
  9. package/build/etudes.umd.cjs +2 -2
  10. package/build/flows/Conditional.d.ts +1 -1
  11. package/build/flows/Each.d.ts +1 -1
  12. package/build/flows/Repeat.d.ts +1 -1
  13. package/build/flows/Switch.d.ts +1 -1
  14. package/build/hocs/WithTooltip.d.ts +1 -1
  15. package/build/hooks/useImageLoader.d.ts +9 -19
  16. package/build/hooks/useImageSize.d.ts +10 -7
  17. package/build/primitives/Accordion.d.ts +6 -6
  18. package/build/primitives/Button.d.ts +1 -1
  19. package/build/primitives/Carousel.d.ts +4 -4
  20. package/build/primitives/CodeInput.d.ts +2 -2
  21. package/build/primitives/Collection.d.ts +2 -2
  22. package/build/primitives/Counter.d.ts +4 -4
  23. package/build/primitives/Dial.d.ts +3 -3
  24. package/build/primitives/Dropdown.d.ts +5 -5
  25. package/build/primitives/Form.d.ts +1 -1
  26. package/build/primitives/Image.d.ts +1 -1
  27. package/build/primitives/MasonryGrid.d.ts +1 -1
  28. package/build/primitives/Panorama.d.ts +1 -1
  29. package/build/primitives/Picture.d.ts +1 -1
  30. package/build/primitives/RangeSlider.d.ts +6 -6
  31. package/build/primitives/ScrollableCarousel.d.ts +1 -1
  32. package/build/primitives/Select.d.ts +4 -4
  33. package/build/primitives/Slider.d.ts +5 -5
  34. package/build/primitives/StepSlider.d.ts +5 -5
  35. package/build/primitives/SwipeRegion.d.ts +1 -1
  36. package/build/primitives/TextArea.d.ts +1 -1
  37. package/build/primitives/TextField.d.ts +1 -1
  38. package/build/primitives/Toggle.d.ts +3 -3
  39. package/build/primitives/Video.d.ts +1 -1
  40. package/build/providers/ScrollPositionProvider.d.ts +6 -1
  41. package/build/utils/ExtractChildren.d.ts +1 -1
  42. package/build/utils/NoSSR.d.ts +1 -1
  43. package/package.json +17 -17
@@ -4,7 +4,7 @@ import { HTMLAttributes, Ref } from 'react';
4
4
  *
5
5
  * @exports Burger.Bar Component for each bar in the burger.
6
6
  */
7
- export declare function Burger({ className, ref, children, numberOfBars, isActive, isSplit, isTailHidden, ...props }: Burger.Props): import("react/jsx-runtime").JSX.Element;
7
+ export declare function Burger({ className, ref, children, numberOfBars, isActive, isSplit, isTailHidden, ...props }: Burger.Props): import("react").JSX.Element;
8
8
  export declare namespace Burger {
9
9
  var displayName: string;
10
10
  }
@@ -39,7 +39,7 @@ export declare namespace Burger {
39
39
  * Component for each bar in a {@link Burger}.
40
40
  */
41
41
  const Bar: {
42
- ({ ...props }: HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
42
+ ({ ...props }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
43
43
  displayName: string;
44
44
  };
45
45
  }
@@ -6,7 +6,7 @@ import { Burger } from './Burger.js';
6
6
  *
7
7
  * @exports BurgerButton.Bar Component for each bar in the burger button.
8
8
  */
9
- export declare function BurgerButton({ className, ref, style, children, numberOfBars, isActive, isSplit, isTailHidden, onActivate, onDeactivate, onToggle, ...props }: BurgerButton.Props): import("react/jsx-runtime").JSX.Element;
9
+ export declare function BurgerButton({ className, ref, style, children, numberOfBars, isActive, isSplit, isTailHidden, onActivate, onDeactivate, onToggle, ...props }: BurgerButton.Props): import("react").JSX.Element;
10
10
  export declare namespace BurgerButton {
11
11
  var displayName: string;
12
12
  }
@@ -38,7 +38,7 @@ export declare namespace BurgerButton {
38
38
  * Component for each bar in a {@link BurgerButton}.
39
39
  */
40
40
  const Bar: {
41
- ({ ...props }: import("react").HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
41
+ ({ ...props }: import("react").HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
42
42
  displayName: string;
43
43
  };
44
44
  }
@@ -7,7 +7,7 @@ import { Picture } from '../primitives/Picture.js';
7
7
  * @exports CoverImage.Content Component for optional content inside the image.
8
8
  * @exports CoverImage.Viewport Component for the viewport.
9
9
  */
10
- export declare function CoverImage({ ref, style, alt, aspectRatio: externalAspectRatio, children, loadingMode, source, onError, onLoad, onLoadStart, ...props }: Readonly<CoverImage.Props>): import("react/jsx-runtime").JSX.Element;
10
+ export declare function CoverImage({ ref, style, alt, aspectRatio: externalAspectRatio, children, loadingMode, source, onError, onLoad, onLoadStart, ...props }: Readonly<CoverImage.Props>): import("react").JSX.Element;
11
11
  export declare namespace CoverImage {
12
12
  var displayName: string;
13
13
  }
@@ -30,14 +30,14 @@ export declare namespace CoverImage {
30
30
  * Component for optional content inside a {@link CoverImage}.
31
31
  */
32
32
  const Content: {
33
- ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
33
+ ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
34
34
  displayName: string;
35
35
  };
36
36
  /**
37
37
  * Component for the viewport of a {@link CoverImage}.
38
38
  */
39
39
  const Viewport: {
40
- ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
40
+ ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
41
41
  displayName: string;
42
42
  };
43
43
  }
@@ -7,7 +7,7 @@ import { Video } from '../primitives/Video.js';
7
7
  * @exports CoverVideo.Content Component for optional content inside the video.
8
8
  * @exports CoverVideo.Viewport Component for the viewport.
9
9
  */
10
- export declare function CoverVideo({ className, ref, style, aspectRatio: externalAspectRatio, autoLoop, autoPlay, children, playsInline, poster, source, hasControls, isMuted, onCanPlay, onEnd, onFullscreenChange, onLoadMetadata, onLoadMetadataComplete, onLoadMetadataError, onPause, onPlay, onSizeChange, ...props }: Readonly<CoverVideo.Props>): import("react/jsx-runtime").JSX.Element;
10
+ export declare function CoverVideo({ className, ref, style, aspectRatio: externalAspectRatio, autoLoop, autoPlay, children, playsInline, poster, source, hasControls, isMuted, onCanPlay, onEnd, onFullscreenChange, onLoadMetadata, onLoadMetadataComplete, onLoadMetadataError, onPause, onPlay, onSizeChange, ...props }: Readonly<CoverVideo.Props>): import("react").JSX.Element;
11
11
  export declare namespace CoverVideo {
12
12
  var displayName: string;
13
13
  }
@@ -30,14 +30,14 @@ export declare namespace CoverVideo {
30
30
  * Component for optional content inside a {@link CoverVideo}.
31
31
  */
32
32
  const Content: {
33
- ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
33
+ ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
34
34
  displayName: string;
35
35
  };
36
36
  /**
37
37
  * Component for the viewport of a {@link CoverVideo}.
38
38
  */
39
39
  const Viewport: {
40
- ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
40
+ ({ children, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
41
41
  displayName: string;
42
42
  };
43
43
  }
@@ -35,7 +35,7 @@ export declare namespace OptionButton {
35
35
  /**
36
36
  * A button component that cycles through a list of options when clicked.
37
37
  */
38
- export declare function OptionButton({ ref, index, options, isDisabled, onChange, ...props }: OptionButton.Props): import("react/jsx-runtime").JSX.Element;
38
+ export declare function OptionButton({ ref, index, options, isDisabled, onChange, ...props }: OptionButton.Props): import("react").JSX.Element;
39
39
  export declare namespace OptionButton {
40
40
  var displayName: string;
41
41
  }
@@ -10,7 +10,7 @@ import { Panorama } from '../primitives/Panorama.js';
10
10
  * FOV of the backing {@link Panorama}.
11
11
  * @exports Panorama.SliderTrack Component for the slide track.
12
12
  */
13
- export declare function PanoramaSlider({ className, ref, style, angle, autoDimension, children, fov, speed, src, viewportSize, zeroAnchor, onAngleChange, onDragEnd, onDragStart, onImageSizeChange, onLoadImageComplete, onLoadImageError, onLoadImageStart, onPositionChange, ...props }: Readonly<PanoramaSlider.Props>): import("react/jsx-runtime").JSX.Element;
13
+ export declare function PanoramaSlider({ className, ref, style, angle, autoDimension, children, fov, speed, src, viewportSize, zeroAnchor, onAngleChange, onDragEnd, onDragStart, onImageSizeChange, onLoadImageComplete, onLoadImageError, onLoadImageStart, onPositionChange, ...props }: Readonly<PanoramaSlider.Props>): import("react").JSX.Element;
14
14
  export declare namespace PanoramaSlider {
15
15
  var displayName: string;
16
16
  }
@@ -49,21 +49,21 @@ export declare namespace PanoramaSlider {
49
49
  * Component for the active indicator of a {@link PanoramaSlider}.
50
50
  */
51
51
  const Indicator: {
52
- ({ ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
52
+ ({ ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
53
53
  displayName: string;
54
54
  };
55
55
  /**
56
56
  * Component for the active reticle of a {@link PanoramaSlider}.
57
57
  */
58
58
  const Reticle: {
59
- ({ ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
59
+ ({ ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
60
60
  displayName: string;
61
61
  };
62
62
  /**
63
63
  * Component for the slide track of a {@link PanoramaSlider}.
64
64
  */
65
65
  const Track: {
66
- ({ ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
66
+ ({ ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
67
67
  displayName: string;
68
68
  };
69
69
  }
@@ -43,7 +43,7 @@ export declare namespace SelectableButton {
43
43
  /**
44
44
  * A button component that can be selected or deselected.
45
45
  */
46
- export declare function SelectableButton({ className, ref, children, label, isDeselectable, isDisabled, isSelected, onDeselect, onSelect, onToggle, ...props }: SelectableButton.Props): import("react/jsx-runtime").JSX.Element;
46
+ export declare function SelectableButton({ className, ref, children, label, isDeselectable, isDisabled, isSelected, onDeselect, onSelect, onToggle, ...props }: SelectableButton.Props): import("react").JSX.Element;
47
47
  export declare namespace SelectableButton {
48
48
  var displayName: string;
49
49
  }
package/build/etudes.js CHANGED
@@ -994,46 +994,42 @@ var Qe;
994
994
  })(Qe ||= {});
995
995
  //#endregion
996
996
  //#region src/hooks/useImageLoader.ts
997
- function $e({ sizes: e, src: t, srcSet: n }, { onError: r, onLoad: i, onLoadStart: a } = {}) {
998
- let o = f(void 0), s = Z(a), c = Z(i), l = Z(r);
997
+ function $e(e, { onError: t, onLoad: n, onLoadStart: r } = {}) {
998
+ let i = typeof e == "string" ? e : e[0], a = typeof e == "string" ? void 0 : e[1], o = a ? Qe.asProps(a) : void 0, s = f(void 0), c = Z(r), l = Z(n), d = Z(t);
999
999
  u(() => {
1000
- let r = !1, i = (e) => {
1001
- if (r) return;
1002
- let t = e.currentTarget;
1003
- c.current?.(t);
1004
- }, a = (e) => {
1005
- if (r) return;
1006
- let t = e.currentTarget;
1007
- l.current?.(t);
1008
- }, u = new Image();
1009
- return u.addEventListener("load", i), u.addEventListener("error", a), s.current?.(u), n && (u.srcset = n), e && (u.sizes = e), u.src = t, o.current = u, () => {
1010
- r = !0, u.removeEventListener("load", i), u.removeEventListener("error", a), o.current = void 0;
1000
+ let e = !1, t = (t) => {
1001
+ if (e) return;
1002
+ let n = t.currentTarget;
1003
+ l.current?.(n);
1004
+ }, n = (t) => {
1005
+ if (e) return;
1006
+ let n = t.currentTarget;
1007
+ d.current?.(n);
1008
+ }, r = new Image();
1009
+ return r.addEventListener("load", t), r.addEventListener("error", n), c.current?.(r), o?.srcSet && (r.srcset = o.srcSet), o?.sizes && (r.sizes = o.sizes), r.src = i, s.current = r, () => {
1010
+ e = !0, r.removeEventListener("load", t), r.removeEventListener("error", n), s.current = void 0;
1011
1011
  };
1012
1012
  }, [
1013
- t,
1014
- n,
1015
- e
1013
+ i,
1014
+ o?.srcSet,
1015
+ o?.sizes
1016
1016
  ]);
1017
1017
  }
1018
1018
  //#endregion
1019
1019
  //#region src/hooks/useImageSize.ts
1020
- function et({ sizes: e, src: t, srcSet: n }, { preservesSizeBetweenLoads: r = !0, onError: i, onLoad: a, onLoadStart: o } = {}) {
1021
- let [s, l] = p(), u = Z(o), d = Z(a), f = Z(i), m = c((e) => {
1022
- r || l(void 0), u.current?.(e);
1023
- }, [r]), h = c((e) => {
1024
- l(tt(e)), d.current?.(e);
1025
- }, []), g = c((e) => {
1026
- r || l(void 0), f.current?.(e);
1027
- }, [r]);
1028
- return $e({
1029
- sizes: e,
1030
- src: t,
1031
- srcSet: n
1032
- }, {
1033
- onError: g,
1034
- onLoad: h,
1035
- onLoadStart: m
1036
- }), s;
1020
+ function et(e, { preservesSizeBetweenLoads: t = !0, onError: n, onLoad: r, onLoadStart: i } = {}) {
1021
+ let [a, o] = p(), s = Z(i), l = Z(r), u = Z(n), d = c((e) => {
1022
+ t || o(void 0), s.current?.(e);
1023
+ }, [t]), f = c((e) => {
1024
+ o(tt(e)), l.current?.(e);
1025
+ }, []);
1026
+ return $e(e, {
1027
+ onError: c((e) => {
1028
+ t || o(void 0), u.current?.(e);
1029
+ }, [t]),
1030
+ onLoad: f,
1031
+ onLoadStart: d
1032
+ }), a;
1037
1033
  }
1038
1034
  function tt(e) {
1039
1035
  if (e && typeof e.width == "number" && typeof e.height == "number") return q.make(e.width, e.height);
@@ -1041,11 +1037,7 @@ function tt(e) {
1041
1037
  //#endregion
1042
1038
  //#region src/primitives/Image.tsx
1043
1039
  function nt({ ref: e, alt: t, loadingMode: n, source: r, onError: i, onLoad: a, onLoadStart: o, onSizeChange: s, ...c }) {
1044
- let u = typeof r == "string" ? r : r[0], d = typeof r == "string" ? void 0 : r[1], f = d ? Qe.asProps(d) : void 0, p = et({
1045
- sizes: f?.sizes,
1046
- src: u,
1047
- srcSet: f?.srcSet
1048
- }, {
1040
+ let u = typeof r == "string" ? r : r[0], d = typeof r == "string" ? void 0 : r[1], f = d ? Qe.asProps(d) : void 0, p = et(r, {
1049
1041
  onError: i,
1050
1042
  onLoad: a,
1051
1043
  onLoadStart: o
@@ -5545,7 +5537,7 @@ function yt(e) {
5545
5537
  //#endregion
5546
5538
  //#region src/primitives/Panorama.tsx
5547
5539
  function bt({ ref: e, angle: t = 0, speed: n = 1, src: r, zeroAnchor: i = 0, onAngleChange: a, onDragEnd: o, onDragStart: s, onImageSizeChange: d, onLoadImageComplete: p, onLoadImageError: m, onLoadImageStart: h, onPositionChange: g, ..._ }) {
5548
- let v = f(null), y = yt(v), b = et({ src: r }, {
5540
+ let v = f(null), y = yt(v), b = et(r, {
5549
5541
  onError: m,
5550
5542
  onLoad: p,
5551
5543
  onLoadStart: h
@@ -8906,16 +8898,16 @@ var ci = {
8906
8898
  progress: K.zero,
8907
8899
  start: K.zero
8908
8900
  }, li = a(ci), ui = a(!0), di = a(!1);
8909
- function fi({ children: e, target: t }) {
8910
- let [n, r] = p(!0), [i, a] = p(!1), [o, s] = p(ci);
8911
- return fn(t, (e) => {
8912
- s(e), r(e.current.y <= e.start.y), a(e.current.y >= e.end.y);
8901
+ function fi({ children: e, scrollBottomOffset: t = 0, scrollTopOffset: n = 0, target: r }) {
8902
+ let [i, a] = p(!0), [o, s] = p(!1), [c, l] = p(ci);
8903
+ return fn(r, (e) => {
8904
+ l(e), a(e.current.y <= e.start.y + n), s(e.current.y >= e.end.y - t);
8913
8905
  }), /* @__PURE__ */ (0, O.jsx)(ui.Provider, {
8914
- value: n,
8906
+ value: i,
8915
8907
  children: /* @__PURE__ */ (0, O.jsx)(di.Provider, {
8916
- value: i,
8908
+ value: o,
8917
8909
  children: /* @__PURE__ */ (0, O.jsx)(li.Provider, {
8918
- value: o,
8910
+ value: c,
8919
8911
  children: e
8920
8912
  })
8921
8913
  })
@@ -8938,6 +8930,7 @@ function hi() {
8938
8930
  start: K.zero
8939
8931
  };
8940
8932
  }
8933
+ process.env.NODE_ENV === "development" && (fi.displayName = "ScrollPositionProvider", li.displayName = "ScrollPositionContext", ui.displayName = "ScrollTopContext", di.displayName = "ScrollBottomContext");
8941
8934
  //#endregion
8942
8935
  //#region src/utils/createKeyDeep.ts
8943
8936
  function gi(e) {