etudes 5.0.0 → 5.2.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 (132) hide show
  1. package/components/Accordion.js +36 -63
  2. package/components/Accordion.js.map +1 -1
  3. package/components/BurgerButton.d.ts +15 -15
  4. package/components/BurgerButton.js +11 -35
  5. package/components/BurgerButton.js.map +1 -1
  6. package/components/Carousel.d.ts +2 -2
  7. package/components/Carousel.js +6 -31
  8. package/components/Carousel.js.map +1 -1
  9. package/components/Collection.js +7 -29
  10. package/components/Collection.js.map +1 -1
  11. package/components/Counter.d.ts +11 -11
  12. package/components/Counter.js +3 -28
  13. package/components/Counter.js.map +1 -1
  14. package/components/CoverImage.d.ts +6 -6
  15. package/components/CoverImage.js +10 -35
  16. package/components/CoverImage.js.map +1 -1
  17. package/components/CoverVideo.d.ts +6 -6
  18. package/components/CoverVideo.js +10 -35
  19. package/components/CoverVideo.js.map +1 -1
  20. package/components/DebugConsole.d.ts +8 -8
  21. package/components/DebugConsole.js +3 -28
  22. package/components/DebugConsole.js.map +1 -1
  23. package/components/Dial.d.ts +12 -12
  24. package/components/Dial.js +13 -39
  25. package/components/Dial.js.map +1 -1
  26. package/components/Dropdown.js +5 -32
  27. package/components/Dropdown.js.map +1 -1
  28. package/components/FlatSVG.d.ts +8 -8
  29. package/components/FlatSVG.js +3 -25
  30. package/components/FlatSVG.js.map +1 -1
  31. package/components/Image.d.ts +15 -15
  32. package/components/Image.js +3 -25
  33. package/components/Image.js.map +1 -1
  34. package/components/MasonryGrid.d.ts +2 -2
  35. package/components/MasonryGrid.js +3 -26
  36. package/components/MasonryGrid.js.map +1 -1
  37. package/components/Panorama.d.ts +2 -2
  38. package/components/Panorama.js +3 -26
  39. package/components/Panorama.js.map +1 -1
  40. package/components/PanoramaSlider.d.ts +11 -11
  41. package/components/PanoramaSlider.js +14 -43
  42. package/components/PanoramaSlider.js.map +1 -1
  43. package/components/RangeSlider.d.ts +16 -16
  44. package/components/RangeSlider.js +45 -74
  45. package/components/RangeSlider.js.map +1 -1
  46. package/components/RotatingGallery.d.ts +12 -12
  47. package/components/RotatingGallery.js +10 -33
  48. package/components/RotatingGallery.js.map +1 -1
  49. package/components/SelectableButton.d.ts +10 -10
  50. package/components/SelectableButton.js +3 -25
  51. package/components/SelectableButton.js.map +1 -1
  52. package/components/Slider.d.ts +20 -20
  53. package/components/Slider.js +32 -58
  54. package/components/Slider.js.map +1 -1
  55. package/components/StepwiseSlider.d.ts +22 -22
  56. package/components/StepwiseSlider.js +34 -60
  57. package/components/StepwiseSlider.js.map +1 -1
  58. package/components/SwipeContainer.d.ts +9 -9
  59. package/components/SwipeContainer.js +3 -25
  60. package/components/SwipeContainer.js.map +1 -1
  61. package/components/TextField.d.ts +11 -11
  62. package/components/TextField.js +3 -25
  63. package/components/TextField.js.map +1 -1
  64. package/components/Video.d.ts +18 -18
  65. package/components/Video.js +3 -26
  66. package/components/Video.js.map +1 -1
  67. package/components/WithTooltip.d.ts +2 -2
  68. package/components/WithTooltip.js +4 -27
  69. package/components/WithTooltip.js.map +1 -1
  70. package/hooks/useClickOutsideEffect.js +1 -2
  71. package/hooks/useClickOutsideEffect.js.map +1 -1
  72. package/hooks/useDragEffect.js +1 -2
  73. package/hooks/useDragEffect.js.map +1 -1
  74. package/hooks/useDragValueEffect.js +1 -2
  75. package/hooks/useDragValueEffect.js.map +1 -1
  76. package/hooks/useImageSize.js +1 -2
  77. package/hooks/useImageSize.js.map +1 -1
  78. package/hooks/useInterval.js +1 -2
  79. package/hooks/useInterval.js.map +1 -1
  80. package/hooks/useLoadImageEffect.js +1 -2
  81. package/hooks/useLoadImageEffect.js.map +1 -1
  82. package/hooks/useLoadVideoMetadataEffect.js +1 -2
  83. package/hooks/useLoadVideoMetadataEffect.js.map +1 -1
  84. package/hooks/useMounted.js +1 -2
  85. package/hooks/useMounted.js.map +1 -1
  86. package/hooks/usePrevious.js +1 -2
  87. package/hooks/usePrevious.js.map +1 -1
  88. package/hooks/useRect.js +1 -2
  89. package/hooks/useRect.js.map +1 -1
  90. package/hooks/useResizeEffect.js +1 -2
  91. package/hooks/useResizeEffect.js.map +1 -1
  92. package/hooks/useScrollPositionEffect.js +1 -2
  93. package/hooks/useScrollPositionEffect.js.map +1 -1
  94. package/hooks/useSearchParamState.js +1 -2
  95. package/hooks/useSearchParamState.js.map +1 -1
  96. package/hooks/useSize.js +1 -2
  97. package/hooks/useSize.js.map +1 -1
  98. package/hooks/useTimeout.js +1 -2
  99. package/hooks/useTimeout.js.map +1 -1
  100. package/hooks/useVideoSize.js +1 -2
  101. package/hooks/useVideoSize.js.map +1 -1
  102. package/hooks/useViewportSize.js +1 -2
  103. package/hooks/useViewportSize.js.map +1 -1
  104. package/operators/Conditional.d.ts +2 -2
  105. package/operators/Conditional.js +5 -9
  106. package/operators/Conditional.js.map +1 -1
  107. package/operators/Each.d.ts +2 -2
  108. package/operators/Each.js +8 -31
  109. package/operators/Each.js.map +1 -1
  110. package/operators/ExtractChild.d.ts +2 -2
  111. package/operators/ExtractChild.js +13 -35
  112. package/operators/ExtractChild.js.map +1 -1
  113. package/operators/ExtractChildren.d.ts +2 -2
  114. package/operators/ExtractChildren.js +11 -34
  115. package/operators/ExtractChildren.js.map +1 -1
  116. package/operators/Repeat.d.ts +2 -2
  117. package/operators/Repeat.js +7 -30
  118. package/operators/Repeat.js.map +1 -1
  119. package/package.json +33 -30
  120. package/providers/ScrollPositionProvider.d.ts +3 -3
  121. package/providers/ScrollPositionProvider.js +6 -28
  122. package/providers/ScrollPositionProvider.js.map +1 -1
  123. package/utils/asClassNameDict.js +1 -2
  124. package/utils/asClassNameDict.js.map +1 -1
  125. package/utils/asComponentDict.js +1 -2
  126. package/utils/asComponentDict.js.map +1 -1
  127. package/utils/asStyleDict.js +1 -2
  128. package/utils/asStyleDict.js.map +1 -1
  129. package/utils/cloneStyledElement.js +1 -2
  130. package/utils/cloneStyledElement.js.map +1 -1
  131. package/utils/styles.js +1 -2
  132. package/utils/styles.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"usePrevious.js","sourceRoot":"/","sources":["hooks/usePrevious.ts"],"names":[],"mappings":";;;AAAA,+BAAyC;AAczC;;;;;GAKG;AACH,SAAgB,WAAW,CAAI,KAAQ,EAAE,EAAgD;QAAhD,qBAA8C,EAAE,KAAA,EAA9C,0BAA2B,EAA3B,kBAAkB,mBAAG,UAAA,CAAC,IAAI,OAAA,CAAC,EAAD,CAAC,KAAA;IACpE,IAAM,GAAG,GAAG,IAAA,cAAM,GAAK,CAAA;IAEvB,IAAA,iBAAS,EAAC;QACR,GAAG,CAAC,OAAO,GAAG,KAAK,CAAA;IACrB,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE/B,OAAO,GAAG,CAAC,OAAO,CAAA;AACpB,CAAC;AARD,kCAQC","sourcesContent":["import { useEffect, useRef } from 'react'\n\ntype Options<T> = {\n /**\n * Function to transform the dependency value in the dependency list, useful\n * if the value is a reference.\n *\n * @param dependency The dependency value.\n *\n * @returns The transformed value to be used as the dependency value instead.\n */\n sanitizeDependency?: (dependency: T) => any\n}\n\n/**\n * Returns the previous value of a value.\n *\n * @param value The value.\n * @param options See {@link Options}.\n */\nexport function usePrevious<T>(value: T, { sanitizeDependency = t => t }: Options<T> = {}): T | undefined {\n const ref = useRef<T>()\n\n useEffect(() => {\n ref.current = value\n }, [sanitizeDependency(value)])\n\n return ref.current\n}\n"]}
1
+ {"version":3,"file":"usePrevious.js","sourceRoot":"/","sources":["hooks/usePrevious.ts"],"names":[],"mappings":";;AAoBA,kCAQC;AA5BD,+BAAyC;AAczC;;;;;GAKG;AACH,SAAgB,WAAW,CAAI,KAAQ,EAAE,EAAgD;QAAhD,qBAA8C,EAAE,KAAA,EAA9C,0BAA2B,EAA3B,kBAAkB,mBAAG,UAAA,CAAC,IAAI,OAAA,CAAC,EAAD,CAAC,KAAA;IACpE,IAAM,GAAG,GAAG,IAAA,cAAM,GAAK,CAAA;IAEvB,IAAA,iBAAS,EAAC;QACR,GAAG,CAAC,OAAO,GAAG,KAAK,CAAA;IACrB,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE/B,OAAO,GAAG,CAAC,OAAO,CAAA;AACpB,CAAC","sourcesContent":["import { useEffect, useRef } from 'react'\n\ntype Options<T> = {\n /**\n * Function to transform the dependency value in the dependency list, useful\n * if the value is a reference.\n *\n * @param dependency The dependency value.\n *\n * @returns The transformed value to be used as the dependency value instead.\n */\n sanitizeDependency?: (dependency: T) => any\n}\n\n/**\n * Returns the previous value of a value.\n *\n * @param value The value.\n * @param options See {@link Options}.\n */\nexport function usePrevious<T>(value: T, { sanitizeDependency = t => t }: Options<T> = {}): T | undefined {\n const ref = useRef<T>()\n\n useEffect(() => {\n ref.current = value\n }, [sanitizeDependency(value)])\n\n return ref.current\n}\n"]}
package/hooks/useRect.js CHANGED
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useRect = void 0;
19
+ exports.useRect = useRect;
20
20
  var react_1 = require("react");
21
21
  var spase_1 = require("spase");
22
22
  var useResizeEffect_1 = require("./useResizeEffect");
@@ -41,5 +41,4 @@ function useRect(targetRef) {
41
41
  });
42
42
  return rect;
43
43
  }
44
- exports.useRect = useRect;
45
44
  //# sourceMappingURL=useRect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRect.js","sourceRoot":"/","sources":["hooks/useRect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+BAAgD;AAChD,+BAA4B;AAC5B,qDAAmD;AAEnD;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,SAAiC;IACjD,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAO,IAAI,YAAI,EAAE,CAAC,IAAA,EAA3C,IAAI,QAAA,EAAE,OAAO,QAA8B,CAAA;IAElD,IAAM,YAAY,GAAG,UAAC,OAAoB;QACxC,IAAM,OAAO,GAAG,YAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,IAAA,iCAAe,EAAC,SAAS,EAAE;QACzB,QAAQ,EAAE,UAAA,OAAO,IAAI,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB;KAC3C,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AAfD,0BAeC","sourcesContent":["import { useState, type RefObject } from 'react'\nimport { Rect } from 'spase'\nimport { useResizeEffect } from './useResizeEffect'\n\n/**\n * Hook for monitoring changes in and returning the size and position of the\n * target element.\n *\n * @param targetRef Reference to the target element.\n *\n * @returns The most current {@link Rect} of the target element.\n */\nexport function useRect(targetRef: RefObject<HTMLElement>): Rect {\n const [rect, setRect] = useState<Rect>(new Rect())\n\n const handleResize = (element: HTMLElement) => {\n const newRect = Rect.from(element)\n if (!newRect) return\n\n setRect(newRect)\n }\n\n useResizeEffect(targetRef, {\n onResize: element => handleResize(element),\n })\n\n return rect\n}\n"]}
1
+ {"version":3,"file":"useRect.js","sourceRoot":"/","sources":["hooks/useRect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAYA,0BAeC;AA3BD,+BAAgD;AAChD,+BAA4B;AAC5B,qDAAmD;AAEnD;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,SAAiC;IACjD,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAO,IAAI,YAAI,EAAE,CAAC,IAAA,EAA3C,IAAI,QAAA,EAAE,OAAO,QAA8B,CAAA;IAElD,IAAM,YAAY,GAAG,UAAC,OAAoB;QACxC,IAAM,OAAO,GAAG,YAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,IAAA,iCAAe,EAAC,SAAS,EAAE;QACzB,QAAQ,EAAE,UAAA,OAAO,IAAI,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB;KAC3C,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { useState, type RefObject } from 'react'\nimport { Rect } from 'spase'\nimport { useResizeEffect } from './useResizeEffect'\n\n/**\n * Hook for monitoring changes in and returning the size and position of the\n * target element.\n *\n * @param targetRef Reference to the target element.\n *\n * @returns The most current {@link Rect} of the target element.\n */\nexport function useRect(targetRef: RefObject<HTMLElement>): Rect {\n const [rect, setRect] = useState<Rect>(new Rect())\n\n const handleResize = (element: HTMLElement) => {\n const newRect = Rect.from(element)\n if (!newRect) return\n\n setRect(newRect)\n }\n\n useResizeEffect(targetRef, {\n onResize: element => handleResize(element),\n })\n\n return rect\n}\n"]}
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.useResizeEffect = void 0;
31
+ exports.useResizeEffect = useResizeEffect;
32
32
  var react_1 = require("react");
33
33
  var resize_observer_polyfill_1 = __importDefault(require("resize-observer-polyfill"));
34
34
  /**
@@ -59,5 +59,4 @@ function useResizeEffect(targetRef, _a, deps) {
59
59
  };
60
60
  }, __spreadArray([targetRef.current], __read(deps), false));
61
61
  }
62
- exports.useResizeEffect = useResizeEffect;
63
62
  //# sourceMappingURL=useResizeEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeEffect.js","sourceRoot":"/","sources":["hooks/useResizeEffect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8E;AAC9E,sFAAqD;AAWrD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,SAAiC,EAAE,EAAyC,EAAE,IAAyB;QAApE,qBAAuC,EAAE,KAAA,EAAvC,QAAQ,cAAA;IAAiC,qBAAA,EAAA,SAAyB;IACrI,IAAM,WAAW,GAAG,IAAA,cAAM,EAA6B,SAAS,CAAC,CAAA;IAEjE,IAAA,iBAAS,EAAC;QACR,WAAW,CAAC,OAAO,GAAG,IAAI,kCAAc,CAAC;YACvC,IAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;YACjC,IAAI,CAAC,OAAO;gBAAE,OAAM;YAEpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,OAAO,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7C,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC;QAED,OAAO;YACL,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC7C,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAClD,CAAC;QACH,CAAC,CAAA;IACH,CAAC,iBAAG,SAAS,CAAC,OAAO,UAAK,IAAI,UAAE,CAAA;AAClC,CAAC;AArBD,0CAqBC","sourcesContent":["import { useEffect, useRef, type DependencyList, type RefObject } from 'react'\nimport ResizeObserver from 'resize-observer-polyfill'\n\nexport type UseResizeEffectOptions = {\n /**\n * Handler invoked when the target element resizes.\n *\n * @param element The target element.\n */\n onResize?: (element: HTMLElement) => void\n}\n\n/**\n * Hook for monitoring the resizing event of the target element.\n *\n * @param targetRef Reference to the target element.\n * @param options See {@link Options}.\n * @param deps Additional dependencies.\n */\nexport function useResizeEffect(targetRef: RefObject<HTMLElement>, { onResize }: UseResizeEffectOptions = {}, deps: DependencyList = []) {\n const observerRef = useRef<ResizeObserver | undefined>(undefined)\n\n useEffect(() => {\n observerRef.current = new ResizeObserver(() => {\n const element = targetRef.current\n if (!element) return\n\n onResize?.(element)\n })\n\n if (observerRef.current && targetRef.current) {\n observerRef.current.observe(targetRef.current)\n }\n\n return () => {\n if (observerRef.current && targetRef.current) {\n observerRef.current.unobserve(targetRef.current)\n }\n }\n }, [targetRef.current, ...deps])\n}\n"]}
1
+ {"version":3,"file":"useResizeEffect.js","sourceRoot":"/","sources":["hooks/useResizeEffect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,0CAqBC;AAxCD,+BAA8E;AAC9E,sFAAqD;AAWrD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,SAAiC,EAAE,EAAyC,EAAE,IAAyB;QAApE,qBAAuC,EAAE,KAAA,EAAvC,QAAQ,cAAA;IAAiC,qBAAA,EAAA,SAAyB;IACrI,IAAM,WAAW,GAAG,IAAA,cAAM,EAA6B,SAAS,CAAC,CAAA;IAEjE,IAAA,iBAAS,EAAC;QACR,WAAW,CAAC,OAAO,GAAG,IAAI,kCAAc,CAAC;YACvC,IAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;YACjC,IAAI,CAAC,OAAO;gBAAE,OAAM;YAEpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,OAAO,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7C,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC;QAED,OAAO;YACL,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC7C,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAClD,CAAC;QACH,CAAC,CAAA;IACH,CAAC,iBAAG,SAAS,CAAC,OAAO,UAAK,IAAI,UAAE,CAAA;AAClC,CAAC","sourcesContent":["import { useEffect, useRef, type DependencyList, type RefObject } from 'react'\nimport ResizeObserver from 'resize-observer-polyfill'\n\nexport type UseResizeEffectOptions = {\n /**\n * Handler invoked when the target element resizes.\n *\n * @param element The target element.\n */\n onResize?: (element: HTMLElement) => void\n}\n\n/**\n * Hook for monitoring the resizing event of the target element.\n *\n * @param targetRef Reference to the target element.\n * @param options See {@link Options}.\n * @param deps Additional dependencies.\n */\nexport function useResizeEffect(targetRef: RefObject<HTMLElement>, { onResize }: UseResizeEffectOptions = {}, deps: DependencyList = []) {\n const observerRef = useRef<ResizeObserver | undefined>(undefined)\n\n useEffect(() => {\n observerRef.current = new ResizeObserver(() => {\n const element = targetRef.current\n if (!element) return\n\n onResize?.(element)\n })\n\n if (observerRef.current && targetRef.current) {\n observerRef.current.observe(targetRef.current)\n }\n\n return () => {\n if (observerRef.current && targetRef.current) {\n observerRef.current.unobserve(targetRef.current)\n }\n }\n }, [targetRef.current, ...deps])\n}\n"]}
@@ -25,7 +25,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
25
  return to.concat(ar || Array.prototype.slice.call(from));
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.useScrollPositionEffect = void 0;
28
+ exports.useScrollPositionEffect = useScrollPositionEffect;
29
29
  var react_1 = require("react");
30
30
  var spase_1 = require("spase");
31
31
  function useScrollPositionEffect(_a, deps) {
@@ -66,5 +66,4 @@ function useScrollPositionEffect(_a, deps) {
66
66
  };
67
67
  }, __spreadArray([], __read(deps), false));
68
68
  }
69
- exports.useScrollPositionEffect = useScrollPositionEffect;
70
69
  //# sourceMappingURL=useScrollPositionEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollPositionEffect.js","sourceRoot":"/","sources":["hooks/useScrollPositionEffect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8D;AAC9D,+BAAmC;AAanC,SAAgB,uBAAuB,CAAC,EAAmB,EAAE,IAAyB;QAA5C,QAAQ,cAAA;IAAW,qBAAA,EAAA,SAAyB;IACpF,IAAM,0BAA0B,GAAG;QACjC,IAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;QACxC,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEpC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAA;IAC7B,CAAC,CAAA;IAED,IAAM,qBAAqB,GAAG;QAC5B,IAAM,OAAO,GAAG,YAAI,CAAC,YAAY,EAAE,CAAA;QACnC,IAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAChD,IAAM,WAAW,GAAG,YAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAEzD,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAA;QAElC,IAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACrH,IAAM,IAAI,GAAG,IAAI,aAAK,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QAEtF,OAAO;YACL,MAAM,EAAE,IAAI,aAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,EAAE,IAAI,aAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACpD,GAAG,EAAE,IAAI,aAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,MAAA;SACL,CAAA;IACH,CAAC,CAAA;IAED,IAAM,QAAQ,GAAG,IAAA,cAAM,GAAkC,CAAA;IAEzD,IAAA,iBAAS,EAAC;QACR,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;QAC7D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;QAC7D,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAA;QAExE,0BAA0B,EAAE,CAAA;QAE5B,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;YAChE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;YAChE,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAA;QAC7E,CAAC,CAAA;IACH,CAAC,2BAAM,IAAI,UAAE,CAAA;AACf,CAAC;AA3CD,0DA2CC","sourcesContent":["import { useEffect, useRef, type DependencyList } from 'react'\nimport { Point, Rect } from 'spase'\n\nexport type ScrollPositionInfo = {\n minPos: Point\n maxPos: Point\n pos: Point\n step: Point\n}\n\ntype Props = {\n onChange: (newInfo: ScrollPositionInfo, oldInfo: ScrollPositionInfo | undefined) => void\n}\n\nexport function useScrollPositionEffect({ onChange }: Props, deps: DependencyList = []) {\n const handleScrollPositionChange = () => {\n const newValue = getScrollPositionInfo()\n if (!newValue) return\n\n onChange(newValue, prevInfo.current)\n\n prevInfo.current = newValue\n }\n\n const getScrollPositionInfo = (): ScrollPositionInfo | undefined => {\n const refRect = Rect.fromViewport()\n const refRectMin = refRect.clone({ x: 0, y: 0 })\n const refRectFull = Rect.from(window, { overflow: true })\n\n if (!refRectFull) return undefined\n\n const refRectMax = refRectMin.clone({ x: refRectFull.width - refRect.width, y: refRectFull.height - refRect.height })\n const step = new Point([refRect.left / refRectMax.left, refRect.top / refRectMax.top])\n\n return {\n minPos: new Point([refRectMin.left, refRectMin.top]),\n maxPos: new Point([refRectMax.left, refRectMax.top]),\n pos: new Point([refRect.left, refRect.top]),\n step,\n }\n }\n\n const prevInfo = useRef<ScrollPositionInfo | undefined>()\n\n useEffect(() => {\n window.addEventListener('scroll', handleScrollPositionChange)\n window.addEventListener('resize', handleScrollPositionChange)\n window.addEventListener('orientationchange', handleScrollPositionChange)\n\n handleScrollPositionChange()\n\n return () => {\n window.removeEventListener('scroll', handleScrollPositionChange)\n window.removeEventListener('resize', handleScrollPositionChange)\n window.removeEventListener('orientationchange', handleScrollPositionChange)\n }\n }, [...deps])\n}\n"]}
1
+ {"version":3,"file":"useScrollPositionEffect.js","sourceRoot":"/","sources":["hooks/useScrollPositionEffect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,0DA2CC;AAzDD,+BAA8D;AAC9D,+BAAmC;AAanC,SAAgB,uBAAuB,CAAC,EAAmB,EAAE,IAAyB;QAA5C,QAAQ,cAAA;IAAW,qBAAA,EAAA,SAAyB;IACpF,IAAM,0BAA0B,GAAG;QACjC,IAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;QACxC,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEpC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAA;IAC7B,CAAC,CAAA;IAED,IAAM,qBAAqB,GAAG;QAC5B,IAAM,OAAO,GAAG,YAAI,CAAC,YAAY,EAAE,CAAA;QACnC,IAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAChD,IAAM,WAAW,GAAG,YAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAEzD,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAA;QAElC,IAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACrH,IAAM,IAAI,GAAG,IAAI,aAAK,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QAEtF,OAAO;YACL,MAAM,EAAE,IAAI,aAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,EAAE,IAAI,aAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACpD,GAAG,EAAE,IAAI,aAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,MAAA;SACL,CAAA;IACH,CAAC,CAAA;IAED,IAAM,QAAQ,GAAG,IAAA,cAAM,GAAkC,CAAA;IAEzD,IAAA,iBAAS,EAAC;QACR,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;QAC7D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;QAC7D,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAA;QAExE,0BAA0B,EAAE,CAAA;QAE5B,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;YAChE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;YAChE,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAA;QAC7E,CAAC,CAAA;IACH,CAAC,2BAAM,IAAI,UAAE,CAAA;AACf,CAAC","sourcesContent":["import { useEffect, useRef, type DependencyList } from 'react'\nimport { Point, Rect } from 'spase'\n\nexport type ScrollPositionInfo = {\n minPos: Point\n maxPos: Point\n pos: Point\n step: Point\n}\n\ntype Props = {\n onChange: (newInfo: ScrollPositionInfo, oldInfo: ScrollPositionInfo | undefined) => void\n}\n\nexport function useScrollPositionEffect({ onChange }: Props, deps: DependencyList = []) {\n const handleScrollPositionChange = () => {\n const newValue = getScrollPositionInfo()\n if (!newValue) return\n\n onChange(newValue, prevInfo.current)\n\n prevInfo.current = newValue\n }\n\n const getScrollPositionInfo = (): ScrollPositionInfo | undefined => {\n const refRect = Rect.fromViewport()\n const refRectMin = refRect.clone({ x: 0, y: 0 })\n const refRectFull = Rect.from(window, { overflow: true })\n\n if (!refRectFull) return undefined\n\n const refRectMax = refRectMin.clone({ x: refRectFull.width - refRect.width, y: refRectFull.height - refRect.height })\n const step = new Point([refRect.left / refRectMax.left, refRect.top / refRectMax.top])\n\n return {\n minPos: new Point([refRectMin.left, refRectMin.top]),\n maxPos: new Point([refRectMax.left, refRectMax.top]),\n pos: new Point([refRect.left, refRect.top]),\n step,\n }\n }\n\n const prevInfo = useRef<ScrollPositionInfo | undefined>()\n\n useEffect(() => {\n window.addEventListener('scroll', handleScrollPositionChange)\n window.addEventListener('resize', handleScrollPositionChange)\n window.addEventListener('orientationchange', handleScrollPositionChange)\n\n handleScrollPositionChange()\n\n return () => {\n window.removeEventListener('scroll', handleScrollPositionChange)\n window.removeEventListener('resize', handleScrollPositionChange)\n window.removeEventListener('orientationchange', handleScrollPositionChange)\n }\n }, [...deps])\n}\n"]}
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useSearchParamState = void 0;
19
+ exports.useSearchParamState = useSearchParamState;
20
20
  var react_1 = require("react");
21
21
  var react_router_dom_1 = require("react-router-dom");
22
22
  /**
@@ -73,5 +73,4 @@ function useSearchParamState(param, defaultValue, _a) {
73
73
  }, [state]);
74
74
  return [state, setState];
75
75
  }
76
- exports.useSearchParamState = useSearchParamState;
77
76
  //# sourceMappingURL=useSearchParamState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSearchParamState.js","sourceRoot":"/","sources":["hooks/useSearchParamState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+BAA+E;AAC/E,qDAAkD;AAyBlD;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CAAI,KAAa,EAAE,YAAe,EAAE,EAAiE;;QAAjE,qBAA+D,EAAE,KAAA,EAA/D,qBAAqB,2BAAA,EAAE,qBAAqB,2BAAA;IACnH,IAAM,4BAA4B,GAAG,UAAC,KAAyB,EAAE,QAAW;QAC1E,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;aACI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAA;QACjB,CAAC;aACI,CAAC;YACJ,OAAO,KAAkC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAA;IAED,IAAM,4BAA4B,GAAG,UAAC,KAAQ;QAC5C,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;aACI,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,SAAS,CAAA;QAClB,CAAC;aACI,CAAC;YACJ,OAAO,UAAG,KAAK,CAAE,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAEK,IAAA,KAAA,OAAkC,IAAA,kCAAe,GAAE,IAAA,EAAlD,YAAY,QAAA,EAAE,eAAe,QAAqB,CAAA;IACzD,IAAM,YAAY,GAAG,4BAA4B,CAAC,MAAA,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,SAAS,EAAE,YAAY,CAAC,CAAA;IAC/F,IAAA,KAAA,OAAoB,IAAA,gBAAQ,EAAC,YAAY,CAAC,IAAA,EAAzC,KAAK,QAAA,EAAE,QAAQ,QAA0B,CAAA;IAEhD,IAAA,iBAAS,EAAC;QACR,IAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAM,QAAQ,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAA;QAEpD,IAAI,QAAQ,KAAK,KAAK;YAAE,OAAM;QAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;aACI,CAAC;YACJ,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC;QAED,eAAe,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC1B,CAAC;AA9CD,kDA8CC","sourcesContent":["import { useEffect, useState, type Dispatch, type SetStateAction } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nexport type Options<T> = {\n /**\n * Function for transforming the search param value to the value of the mapped\n * state.\n *\n * @param value The search param value. `undefined` means the value is\n * unavailable.\n *\n * @returns The equivalent state value.\n */\n mapSearchParamToState?: (value?: string) => T\n\n /**\n * Function for transforming the value of the mapped state to the search param\n * value.\n *\n * @param state The state value.\n *\n * @returns The equivalent search param value.\n */\n mapStateToSearchParam?: (state: T) => string | undefined\n}\n\n/**\n * Hook for mapping a search param to a state. Whenever the value of the target\n * search param changes, the mapped state will change as well, and vice versa.\n *\n * @param param The search param key.\n * @param defaultValue The default value of the state.\n * @param options See {@link Options}.\n *\n * @returns A tuple consisting of a stateful value representing the current\n * value of the mapped state and a function that updates it.\n */\nexport function useSearchParamState<T>(param: string, defaultValue: T, { mapSearchParamToState, mapStateToSearchParam }: Options<T> = {}): [T, Dispatch<SetStateAction<T>>] {\n const defaultMapSearchParamToState = (value: string | undefined, fallback: T): T => {\n if (mapSearchParamToState) {\n return mapSearchParamToState(value)\n }\n else if (!value) {\n return fallback\n }\n else {\n return value as unknown as NonNullable<T>\n }\n }\n\n const defaultMapStateToSearchParam = (state: T): string | undefined => {\n if (mapStateToSearchParam) {\n return mapStateToSearchParam(state)\n }\n else if (state === defaultValue) {\n return undefined\n }\n else {\n return `${state}`\n }\n }\n\n const [searchParams, setSearchParams] = useSearchParams()\n const currentState = defaultMapSearchParamToState(searchParams.get(param) ?? undefined, defaultValue)\n const [state, setState] = useState(currentState)\n\n useEffect(() => {\n const value = searchParams.get(param)\n const newValue = defaultMapStateToSearchParam(state)\n\n if (newValue === value) return\n\n if (!newValue) {\n searchParams.delete(param)\n }\n else {\n searchParams.set(param, newValue)\n }\n\n setSearchParams(searchParams)\n }, [state])\n\n return [state, setState]\n}\n"]}
1
+ {"version":3,"file":"useSearchParamState.js","sourceRoot":"/","sources":["hooks/useSearchParamState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqCA,kDA8CC;AAnFD,+BAA+E;AAC/E,qDAAkD;AAyBlD;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CAAI,KAAa,EAAE,YAAe,EAAE,EAAiE;;QAAjE,qBAA+D,EAAE,KAAA,EAA/D,qBAAqB,2BAAA,EAAE,qBAAqB,2BAAA;IACnH,IAAM,4BAA4B,GAAG,UAAC,KAAyB,EAAE,QAAW;QAC1E,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;aACI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAA;QACjB,CAAC;aACI,CAAC;YACJ,OAAO,KAAkC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAA;IAED,IAAM,4BAA4B,GAAG,UAAC,KAAQ;QAC5C,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;aACI,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,SAAS,CAAA;QAClB,CAAC;aACI,CAAC;YACJ,OAAO,UAAG,KAAK,CAAE,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAEK,IAAA,KAAA,OAAkC,IAAA,kCAAe,GAAE,IAAA,EAAlD,YAAY,QAAA,EAAE,eAAe,QAAqB,CAAA;IACzD,IAAM,YAAY,GAAG,4BAA4B,CAAC,MAAA,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,SAAS,EAAE,YAAY,CAAC,CAAA;IAC/F,IAAA,KAAA,OAAoB,IAAA,gBAAQ,EAAC,YAAY,CAAC,IAAA,EAAzC,KAAK,QAAA,EAAE,QAAQ,QAA0B,CAAA;IAEhD,IAAA,iBAAS,EAAC;QACR,IAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAM,QAAQ,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAA;QAEpD,IAAI,QAAQ,KAAK,KAAK;YAAE,OAAM;QAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;aACI,CAAC;YACJ,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC;QAED,eAAe,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC1B,CAAC","sourcesContent":["import { useEffect, useState, type Dispatch, type SetStateAction } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nexport type Options<T> = {\n /**\n * Function for transforming the search param value to the value of the mapped\n * state.\n *\n * @param value The search param value. `undefined` means the value is\n * unavailable.\n *\n * @returns The equivalent state value.\n */\n mapSearchParamToState?: (value?: string) => T\n\n /**\n * Function for transforming the value of the mapped state to the search param\n * value.\n *\n * @param state The state value.\n *\n * @returns The equivalent search param value.\n */\n mapStateToSearchParam?: (state: T) => string | undefined\n}\n\n/**\n * Hook for mapping a search param to a state. Whenever the value of the target\n * search param changes, the mapped state will change as well, and vice versa.\n *\n * @param param The search param key.\n * @param defaultValue The default value of the state.\n * @param options See {@link Options}.\n *\n * @returns A tuple consisting of a stateful value representing the current\n * value of the mapped state and a function that updates it.\n */\nexport function useSearchParamState<T>(param: string, defaultValue: T, { mapSearchParamToState, mapStateToSearchParam }: Options<T> = {}): [T, Dispatch<SetStateAction<T>>] {\n const defaultMapSearchParamToState = (value: string | undefined, fallback: T): T => {\n if (mapSearchParamToState) {\n return mapSearchParamToState(value)\n }\n else if (!value) {\n return fallback\n }\n else {\n return value as unknown as NonNullable<T>\n }\n }\n\n const defaultMapStateToSearchParam = (state: T): string | undefined => {\n if (mapStateToSearchParam) {\n return mapStateToSearchParam(state)\n }\n else if (state === defaultValue) {\n return undefined\n }\n else {\n return `${state}`\n }\n }\n\n const [searchParams, setSearchParams] = useSearchParams()\n const currentState = defaultMapSearchParamToState(searchParams.get(param) ?? undefined, defaultValue)\n const [state, setState] = useState(currentState)\n\n useEffect(() => {\n const value = searchParams.get(param)\n const newValue = defaultMapStateToSearchParam(state)\n\n if (newValue === value) return\n\n if (!newValue) {\n searchParams.delete(param)\n }\n else {\n searchParams.set(param, newValue)\n }\n\n setSearchParams(searchParams)\n }, [state])\n\n return [state, setState]\n}\n"]}
package/hooks/useSize.js CHANGED
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useSize = void 0;
19
+ exports.useSize = useSize;
20
20
  var react_1 = require("react");
21
21
  var spase_1 = require("spase");
22
22
  var useResizeEffect_1 = require("./useResizeEffect");
@@ -40,5 +40,4 @@ function useSize(targetRef) {
40
40
  });
41
41
  return rect.size;
42
42
  }
43
- exports.useSize = useSize;
44
43
  //# sourceMappingURL=useSize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSize.js","sourceRoot":"/","sources":["hooks/useSize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+BAAgD;AAChD,+BAAuC;AACvC,qDAAmD;AAEnD;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,SAAiC;IACjD,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAO,IAAI,YAAI,EAAE,CAAC,IAAA,EAA3C,IAAI,QAAA,EAAE,OAAO,QAA8B,CAAA;IAElD,IAAM,YAAY,GAAG,UAAC,OAAoB;QACxC,IAAM,OAAO,GAAG,YAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,IAAA,iCAAe,EAAC,SAAS,EAAE;QACzB,QAAQ,EAAE,UAAA,OAAO,IAAI,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB;KAC3C,CAAC,CAAA;IAEF,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAfD,0BAeC","sourcesContent":["import { useState, type RefObject } from 'react'\nimport { Rect, type Size } from 'spase'\nimport { useResizeEffect } from './useResizeEffect'\n\n/**\n * Hook for monitoring changes in and returning the size of the target element.\n *\n * @param targetRef Reference to the target element.\n *\n * @returns The most current {@link Size} of the target element.\n */\nexport function useSize(targetRef: RefObject<HTMLElement>): Size {\n const [rect, setRect] = useState<Rect>(new Rect())\n\n const handleResize = (element: HTMLElement) => {\n const newRect = Rect.from(element)\n if (!newRect) return\n\n setRect(newRect)\n }\n\n useResizeEffect(targetRef, {\n onResize: element => handleResize(element),\n })\n\n return rect.size\n}\n"]}
1
+ {"version":3,"file":"useSize.js","sourceRoot":"/","sources":["hooks/useSize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAWA,0BAeC;AA1BD,+BAAgD;AAChD,+BAAuC;AACvC,qDAAmD;AAEnD;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,SAAiC;IACjD,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAO,IAAI,YAAI,EAAE,CAAC,IAAA,EAA3C,IAAI,QAAA,EAAE,OAAO,QAA8B,CAAA;IAElD,IAAM,YAAY,GAAG,UAAC,OAAoB;QACxC,IAAM,OAAO,GAAG,YAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,IAAA,iCAAe,EAAC,SAAS,EAAE;QACzB,QAAQ,EAAE,UAAA,OAAO,IAAI,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB;KAC3C,CAAC,CAAA;IAEF,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC","sourcesContent":["import { useState, type RefObject } from 'react'\nimport { Rect, type Size } from 'spase'\nimport { useResizeEffect } from './useResizeEffect'\n\n/**\n * Hook for monitoring changes in and returning the size of the target element.\n *\n * @param targetRef Reference to the target element.\n *\n * @returns The most current {@link Size} of the target element.\n */\nexport function useSize(targetRef: RefObject<HTMLElement>): Size {\n const [rect, setRect] = useState<Rect>(new Rect())\n\n const handleResize = (element: HTMLElement) => {\n const newRect = Rect.from(element)\n if (!newRect) return\n\n setRect(newRect)\n }\n\n useResizeEffect(targetRef, {\n onResize: element => handleResize(element),\n })\n\n return rect.size\n}\n"]}
@@ -25,7 +25,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
25
  return to.concat(ar || Array.prototype.slice.call(from));
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.useTimeout = void 0;
28
+ exports.useTimeout = useTimeout;
29
29
  var react_1 = require("react");
30
30
  /**
31
31
  * Hoook for invoking a method after a set timeout.
@@ -48,5 +48,4 @@ function useTimeout(handler, timeout, deps) {
48
48
  return function () { return clearTimeout(timer); };
49
49
  }, __spreadArray([timeout], __read(deps), false));
50
50
  }
51
- exports.useTimeout = useTimeout;
52
51
  //# sourceMappingURL=useTimeout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTimeout.js","sourceRoot":"/","sources":["hooks/useTimeout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8D;AAE9D;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,OAAmB,EAAE,OAAgB,EAAE,IAAyB;IAAzB,qBAAA,EAAA,SAAyB;IACzF,IAAM,UAAU,GAAG,IAAA,cAAM,GAAgB,CAAA;IAEzC,IAAA,iBAAS,EAAC;QACR,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;IAC9B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,IAAA,iBAAS,EAAC;QACR,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC;YAAE,OAAM;QAEhD,IAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,sBAAM,OAAA,MAAA,UAAU,CAAC,OAAO,0DAAI,CAAA,EAAA,EAAE,OAAO,CAAC,CAAA;QAEtE,OAAO,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,CAAA;IAClC,CAAC,iBAAG,OAAO,UAAK,IAAI,UAAE,CAAA;AACxB,CAAC;AAdD,gCAcC","sourcesContent":["import { useEffect, useRef, type DependencyList } from 'react'\n\n/**\n * Hoook for invoking a method after a set timeout.\n *\n * @param handler The method to invoke.\n * @param timeout Time (in milliseconds) for the timeout. If the value is\n * `undefined` or less than 0, the timeout is disabled.\n * @param deps Dependencies that trigger this effect.\n */\nexport function useTimeout(handler: () => void, timeout?: number, deps: DependencyList = []) {\n const handlerRef = useRef<(() => void)>()\n\n useEffect(() => {\n handlerRef.current = handler\n }, [handler])\n\n useEffect(() => {\n if (timeout === undefined || timeout < 0) return\n\n const timer = window.setTimeout(() => handlerRef.current?.(), timeout)\n\n return () => clearTimeout(timer)\n }, [timeout, ...deps])\n}\n"]}
1
+ {"version":3,"file":"useTimeout.js","sourceRoot":"/","sources":["hooks/useTimeout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,gCAcC;AAxBD,+BAA8D;AAE9D;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,OAAmB,EAAE,OAAgB,EAAE,IAAyB;IAAzB,qBAAA,EAAA,SAAyB;IACzF,IAAM,UAAU,GAAG,IAAA,cAAM,GAAgB,CAAA;IAEzC,IAAA,iBAAS,EAAC;QACR,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;IAC9B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,IAAA,iBAAS,EAAC;QACR,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC;YAAE,OAAM;QAEhD,IAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,sBAAM,OAAA,MAAA,UAAU,CAAC,OAAO,0DAAI,CAAA,EAAA,EAAE,OAAO,CAAC,CAAA;QAEtE,OAAO,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,CAAA;IAClC,CAAC,iBAAG,OAAO,UAAK,IAAI,UAAE,CAAA;AACxB,CAAC","sourcesContent":["import { useEffect, useRef, type DependencyList } from 'react'\n\n/**\n * Hoook for invoking a method after a set timeout.\n *\n * @param handler The method to invoke.\n * @param timeout Time (in milliseconds) for the timeout. If the value is\n * `undefined` or less than 0, the timeout is disabled.\n * @param deps Dependencies that trigger this effect.\n */\nexport function useTimeout(handler: () => void, timeout?: number, deps: DependencyList = []) {\n const handlerRef = useRef<(() => void)>()\n\n useEffect(() => {\n handlerRef.current = handler\n }, [handler])\n\n useEffect(() => {\n if (timeout === undefined || timeout < 0) return\n\n const timer = window.setTimeout(() => handlerRef.current?.(), timeout)\n\n return () => clearTimeout(timer)\n }, [timeout, ...deps])\n}\n"]}
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useVideoSize = void 0;
19
+ exports.useVideoSize = useVideoSize;
20
20
  var react_1 = require("react");
21
21
  var spase_1 = require("spase");
22
22
  var useLoadVideoMetadataEffect_1 = require("./useLoadVideoMetadataEffect");
@@ -54,7 +54,6 @@ function useVideoSize(_a, _b) {
54
54
  });
55
55
  return size;
56
56
  }
57
- exports.useVideoSize = useVideoSize;
58
57
  function getSize(element) {
59
58
  if (!element)
60
59
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useVideoSize.js","sourceRoot":"/","sources":["hooks/useVideoSize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+BAAgC;AAChC,+BAA4B;AAC5B,2EAAwJ;AAYxJ;;;;;;;;GAQG;AACH,SAAgB,YAAY,CAAC,EAAe,EAAE,EAA4F;QAA3G,GAAG,SAAA;QAAY,qBAA0F,EAAE,KAAA,EAA1F,iCAAgC,EAAhC,yBAAyB,mBAAG,IAAI,KAAA,EAAE,WAAW,iBAAA,EAAE,cAAc,oBAAA,EAAE,WAAW,iBAAA;IACxH,IAAM,UAAU,GAAG,UAAC,OAAyB;QAC3C,IAAI,CAAC,yBAAyB;YAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAElD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,OAAO,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,IAAM,kBAAkB,GAAG,UAAC,OAAyB;QACnD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAEzB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,OAAO,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,OAAyB;QAChD,IAAI,CAAC,yBAAyB;YAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAElD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,OAAO,CAAC,CAAA;IACxB,CAAC,CAAA;IAEK,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAmB,SAAS,CAAC,IAAA,EAAtD,IAAI,QAAA,EAAE,OAAO,QAAyC,CAAA;IAE7D,IAAA,uDAA0B,EAAC,EAAE,GAAG,KAAA,EAAE,EAAE;QAClC,WAAW,EAAE,UAAA,CAAC,IAAI,OAAA,UAAU,CAAC,CAAC,CAAC,EAAb,CAAa;QAC/B,cAAc,EAAE,UAAA,CAAC,IAAI,OAAA,kBAAkB,CAAC,CAAC,CAAC,EAArB,CAAqB;QAC1C,WAAW,EAAE,UAAA,CAAC,IAAI,OAAA,eAAe,CAAC,CAAC,CAAC,EAAlB,CAAkB;KACrC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AA5BD,oCA4BC;AAED,SAAS,OAAO,CAAC,OAA0B;IACzC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC9B,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC5D,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAE7D,OAAO,IAAI,YAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;AAC5D,CAAC","sourcesContent":["import { useState } from 'react'\nimport { Size } from 'spase'\nimport { useLoadVideoMetadataEffect, type UseLoadVideoMetadataEffectOptions, type UseLoadVideoMetadataEffectParams } from './useLoadVideoMetadataEffect'\n\ntype Params = UseLoadVideoMetadataEffectParams\n\ntype Options = UseLoadVideoMetadataEffectOptions & {\n /**\n * If `false`, the size will be reset to `undefined` when the video begins\n * loading or when an error occurs. Defaults to `true`.\n */\n preservesSizeBetweenLoads?: boolean\n}\n\n/**\n * Hook for retrieving the size of a video.\n *\n * @param params See {@link Params}.\n * @param options See {@link Options}.\n *\n * @returns The actual size of the video if loading was successful, `undefined`\n * otherwise.\n */\nexport function useVideoSize({ src }: Params, { preservesSizeBetweenLoads = true, onLoadStart, onLoadComplete, onLoadError }: Options = {}): Size | undefined {\n const handleLoad = (element: HTMLVideoElement) => {\n if (!preservesSizeBetweenLoads) setSize(undefined)\n\n onLoadStart?.(element)\n }\n\n const handleLoadComplete = (element: HTMLVideoElement) => {\n setSize(getSize(element))\n\n onLoadComplete?.(element)\n }\n\n const handleLoadError = (element: HTMLVideoElement) => {\n if (!preservesSizeBetweenLoads) setSize(undefined)\n\n onLoadError?.(element)\n }\n\n const [size, setSize] = useState<Size | undefined>(undefined)\n\n useLoadVideoMetadataEffect({ src }, {\n onLoadStart: t => handleLoad(t),\n onLoadComplete: t => handleLoadComplete(t),\n onLoadError: t => handleLoadError(t),\n })\n\n return size\n}\n\nfunction getSize(element?: HTMLVideoElement): Size | undefined {\n if (!element) return undefined\n if (typeof element.videoWidth !== 'number') return undefined\n if (typeof element.videoHeight !== 'number') return undefined\n\n return new Size([element.videoWidth, element.videoHeight])\n}\n"]}
1
+ {"version":3,"file":"useVideoSize.js","sourceRoot":"/","sources":["hooks/useVideoSize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAuBA,oCA4BC;AAnDD,+BAAgC;AAChC,+BAA4B;AAC5B,2EAAwJ;AAYxJ;;;;;;;;GAQG;AACH,SAAgB,YAAY,CAAC,EAAe,EAAE,EAA4F;QAA3G,GAAG,SAAA;QAAY,qBAA0F,EAAE,KAAA,EAA1F,iCAAgC,EAAhC,yBAAyB,mBAAG,IAAI,KAAA,EAAE,WAAW,iBAAA,EAAE,cAAc,oBAAA,EAAE,WAAW,iBAAA;IACxH,IAAM,UAAU,GAAG,UAAC,OAAyB;QAC3C,IAAI,CAAC,yBAAyB;YAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAElD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,OAAO,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,IAAM,kBAAkB,GAAG,UAAC,OAAyB;QACnD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAEzB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,OAAO,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,OAAyB;QAChD,IAAI,CAAC,yBAAyB;YAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAElD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,OAAO,CAAC,CAAA;IACxB,CAAC,CAAA;IAEK,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAmB,SAAS,CAAC,IAAA,EAAtD,IAAI,QAAA,EAAE,OAAO,QAAyC,CAAA;IAE7D,IAAA,uDAA0B,EAAC,EAAE,GAAG,KAAA,EAAE,EAAE;QAClC,WAAW,EAAE,UAAA,CAAC,IAAI,OAAA,UAAU,CAAC,CAAC,CAAC,EAAb,CAAa;QAC/B,cAAc,EAAE,UAAA,CAAC,IAAI,OAAA,kBAAkB,CAAC,CAAC,CAAC,EAArB,CAAqB;QAC1C,WAAW,EAAE,UAAA,CAAC,IAAI,OAAA,eAAe,CAAC,CAAC,CAAC,EAAlB,CAAkB;KACrC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,OAAO,CAAC,OAA0B;IACzC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC9B,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC5D,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAE7D,OAAO,IAAI,YAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;AAC5D,CAAC","sourcesContent":["import { useState } from 'react'\nimport { Size } from 'spase'\nimport { useLoadVideoMetadataEffect, type UseLoadVideoMetadataEffectOptions, type UseLoadVideoMetadataEffectParams } from './useLoadVideoMetadataEffect'\n\ntype Params = UseLoadVideoMetadataEffectParams\n\ntype Options = UseLoadVideoMetadataEffectOptions & {\n /**\n * If `false`, the size will be reset to `undefined` when the video begins\n * loading or when an error occurs. Defaults to `true`.\n */\n preservesSizeBetweenLoads?: boolean\n}\n\n/**\n * Hook for retrieving the size of a video.\n *\n * @param params See {@link Params}.\n * @param options See {@link Options}.\n *\n * @returns The actual size of the video if loading was successful, `undefined`\n * otherwise.\n */\nexport function useVideoSize({ src }: Params, { preservesSizeBetweenLoads = true, onLoadStart, onLoadComplete, onLoadError }: Options = {}): Size | undefined {\n const handleLoad = (element: HTMLVideoElement) => {\n if (!preservesSizeBetweenLoads) setSize(undefined)\n\n onLoadStart?.(element)\n }\n\n const handleLoadComplete = (element: HTMLVideoElement) => {\n setSize(getSize(element))\n\n onLoadComplete?.(element)\n }\n\n const handleLoadError = (element: HTMLVideoElement) => {\n if (!preservesSizeBetweenLoads) setSize(undefined)\n\n onLoadError?.(element)\n }\n\n const [size, setSize] = useState<Size | undefined>(undefined)\n\n useLoadVideoMetadataEffect({ src }, {\n onLoadStart: t => handleLoad(t),\n onLoadComplete: t => handleLoadComplete(t),\n onLoadError: t => handleLoadError(t),\n })\n\n return size\n}\n\nfunction getSize(element?: HTMLVideoElement): Size | undefined {\n if (!element) return undefined\n if (typeof element.videoWidth !== 'number') return undefined\n if (typeof element.videoHeight !== 'number') return undefined\n\n return new Size([element.videoWidth, element.videoHeight])\n}\n"]}
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useViewportSize = void 0;
19
+ exports.useViewportSize = useViewportSize;
20
20
  var react_1 = require("react");
21
21
  var spase_1 = require("spase");
22
22
  /**
@@ -37,5 +37,4 @@ function useViewportSize() {
37
37
  }, []);
38
38
  return size;
39
39
  }
40
- exports.useViewportSize = useViewportSize;
41
40
  //# sourceMappingURL=useViewportSize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewportSize.js","sourceRoot":"/","sources":["hooks/useViewportSize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+BAA2C;AAC3C,+BAAkC;AAElC;;;;GAIG;AACH,SAAgB,eAAe;IACvB,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAO,IAAI,YAAI,EAAE,CAAC,IAAA,EAA3C,IAAI,QAAA,EAAE,OAAO,QAA8B,CAAA;IAElD,IAAA,iBAAS,EAAC;QACR,SAAS,gBAAgB;YACvB,IAAM,YAAY,GAAG,YAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAA;YAC7C,OAAO,CAAC,YAAY,CAAC,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;QAEnD,gBAAgB,EAAE,CAAA;QAElB,OAAO,cAAM,OAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAtD,CAAsD,CAAA;IACrE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,IAAI,CAAA;AACb,CAAC;AAjBD,0CAiBC","sourcesContent":["import { useEffect, useState } from 'react'\nimport { Rect, Size } from 'spase'\n\n/**\n * Hook for returning the size of the viewport whenever it changes.\n *\n * @returns The most current viewport size.\n */\nexport function useViewportSize() {\n const [size, setSize] = useState<Size>(new Size())\n\n useEffect(() => {\n function onViewportResize() {\n const viewportSize = Rect.fromViewport().size\n setSize(viewportSize)\n }\n\n window.addEventListener('resize', onViewportResize)\n\n onViewportResize()\n\n return () => window.removeEventListener('resize', onViewportResize)\n }, [])\n\n return size\n}\n"]}
1
+ {"version":3,"file":"useViewportSize.js","sourceRoot":"/","sources":["hooks/useViewportSize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAQA,0CAiBC;AAzBD,+BAA2C;AAC3C,+BAAkC;AAElC;;;;GAIG;AACH,SAAgB,eAAe;IACvB,IAAA,KAAA,OAAkB,IAAA,gBAAQ,EAAO,IAAI,YAAI,EAAE,CAAC,IAAA,EAA3C,IAAI,QAAA,EAAE,OAAO,QAA8B,CAAA;IAElD,IAAA,iBAAS,EAAC;QACR,SAAS,gBAAgB;YACvB,IAAM,YAAY,GAAG,YAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAA;YAC7C,OAAO,CAAC,YAAY,CAAC,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;QAEnD,gBAAgB,EAAE,CAAA;QAElB,OAAO,cAAM,OAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAtD,CAAsD,CAAA;IACrE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { useEffect, useState } from 'react'\nimport { Rect, Size } from 'spase'\n\n/**\n * Hook for returning the size of the viewport whenever it changes.\n *\n * @returns The most current viewport size.\n */\nexport function useViewportSize() {\n const [size, setSize] = useState<Size>(new Size())\n\n useEffect(() => {\n function onViewportResize() {\n const viewportSize = Rect.fromViewport().size\n setSize(viewportSize)\n }\n\n window.addEventListener('resize', onViewportResize)\n\n onViewportResize()\n\n return () => window.removeEventListener('resize', onViewportResize)\n }, [])\n\n return size\n}\n"]}
@@ -1,5 +1,5 @@
1
- import React, { type PropsWithChildren } from 'react';
1
+ import { type PropsWithChildren } from 'react';
2
2
  export type ConditionalProps = PropsWithChildren<{
3
3
  if: boolean | (() => boolean);
4
4
  }>;
5
- export declare function Conditional({ children, if: boolOrExpression }: ConditionalProps): React.JSX.Element;
5
+ export declare function Conditional({ children, if: boolOrExpression }: ConditionalProps): import("react/jsx-runtime").JSX.Element;
@@ -1,22 +1,18 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Conditional = void 0;
7
- var react_1 = __importDefault(require("react"));
3
+ exports.Conditional = Conditional;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
8
5
  function Conditional(_a) {
9
6
  var children = _a.children, boolOrExpression = _a.if;
10
7
  switch (typeof boolOrExpression) {
11
8
  case 'boolean':
12
- return boolOrExpression ? react_1.default.createElement(react_1.default.Fragment, null, children) : react_1.default.createElement(react_1.default.Fragment, null);
9
+ return boolOrExpression ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
13
10
  case 'function':
14
- return boolOrExpression() ? react_1.default.createElement(react_1.default.Fragment, null, children) : react_1.default.createElement(react_1.default.Fragment, null);
11
+ return boolOrExpression() ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
15
12
  default:
16
13
  console.error("[etudes::Conditional] The type of provided condition ".concat(boolOrExpression, " is not supported."));
17
- return react_1.default.createElement(react_1.default.Fragment, null);
14
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
18
15
  }
19
16
  }
20
- exports.Conditional = Conditional;
21
17
  Object.defineProperty(Conditional, 'displayName', { value: 'Conditional', writable: false });
22
18
  //# sourceMappingURL=Conditional.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Conditional.js","sourceRoot":"/","sources":["operators/Conditional.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAAqD;AAMrD,SAAgB,WAAW,CAAC,EAAoD;QAAlD,QAAQ,cAAA,EAAM,gBAAgB,QAAA;IAC1D,QAAQ,OAAO,gBAAgB,EAAE,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,CAAC,CAAC,8DAAG,QAAQ,CAAI,CAAC,CAAC,CAAC,6DAAK,CAAA;QACnD,KAAK,UAAU;YACb,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,8DAAG,QAAQ,CAAI,CAAC,CAAC,CAAC,6DAAK,CAAA;QACrD;YACE,OAAO,CAAC,KAAK,CAAC,+DAAwD,gBAAgB,uBAAoB,CAAC,CAAA;YAE3G,OAAO,6DAAK,CAAA;IAChB,CAAC;AACH,CAAC;AAXD,kCAWC;AAED,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import React, { type PropsWithChildren } from 'react'\n\nexport type ConditionalProps = PropsWithChildren<{\n if: boolean | (() => boolean)\n}>\n\nexport function Conditional({ children, if: boolOrExpression }: ConditionalProps) {\n switch (typeof boolOrExpression) {\n case 'boolean':\n return boolOrExpression ? <>{children}</> : <></>\n case 'function':\n return boolOrExpression() ? <>{children}</> : <></>\n default:\n console.error(`[etudes::Conditional] The type of provided condition ${boolOrExpression} is not supported.`)\n\n return <></>\n }\n}\n\nObject.defineProperty(Conditional, 'displayName', { value: 'Conditional', writable: false })\n"]}
1
+ {"version":3,"file":"Conditional.js","sourceRoot":"/","sources":["operators/Conditional.tsx"],"names":[],"mappings":";;AAMA,kCAWC;;AAXD,SAAgB,WAAW,CAAC,EAAoD;QAAlD,QAAQ,cAAA,EAAM,gBAAgB,QAAA;IAC1D,QAAQ,OAAO,gBAAgB,EAAE,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,CAAC,CAAC,2DAAG,QAAQ,GAAI,CAAC,CAAC,CAAC,kDAAK,CAAA;QACnD,KAAK,UAAU;YACb,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,2DAAG,QAAQ,GAAI,CAAC,CAAC,CAAC,kDAAK,CAAA;QACrD;YACE,OAAO,CAAC,KAAK,CAAC,+DAAwD,gBAAgB,uBAAoB,CAAC,CAAA;YAE3G,OAAO,kDAAK,CAAA;IAChB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import { type PropsWithChildren } from 'react'\n\nexport type ConditionalProps = PropsWithChildren<{\n if: boolean | (() => boolean)\n}>\n\nexport function Conditional({ children, if: boolOrExpression }: ConditionalProps) {\n switch (typeof boolOrExpression) {\n case 'boolean':\n return boolOrExpression ? <>{children}</> : <></>\n case 'function':\n return boolOrExpression() ? <>{children}</> : <></>\n default:\n console.error(`[etudes::Conditional] The type of provided condition ${boolOrExpression} is not supported.`)\n\n return <></>\n }\n}\n\nObject.defineProperty(Conditional, 'displayName', { value: 'Conditional', writable: false })\n"]}
@@ -1,7 +1,7 @@
1
- import React, { type ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  export type EachProps<T> = {
3
3
  children?: ReactNode | ((value: T, index: number) => ReactNode);
4
4
  in?: T[];
5
5
  render?: (value: T, index: number) => ReactNode;
6
6
  };
7
- export declare function Each<T>({ in: array, children, render, }: Readonly<EachProps<T>>): React.JSX.Element;
7
+ export declare function Each<T>({ in: array, children, render, }: Readonly<EachProps<T>>): import("react/jsx-runtime").JSX.Element;
package/operators/Each.js CHANGED
@@ -1,41 +1,18 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Each = void 0;
27
- var react_1 = __importStar(require("react"));
3
+ exports.Each = Each;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var react_1 = require("react");
28
6
  function Each(_a) {
29
7
  var array = _a.in, children = _a.children, render = _a.render;
30
8
  if (array === undefined || array === null)
31
- return react_1.default.createElement(react_1.default.Fragment, null);
9
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
32
10
  if (!(array instanceof Array))
33
11
  throw TypeError("Provided list <".concat(array, "> is not an array"));
34
- return (react_1.default.createElement(react_1.default.Fragment, null, array.map(function (v, i) {
35
- var _a;
36
- return (react_1.default.createElement(react_1.Fragment, { key: "item-".concat(i) }, (_a = render === null || render === void 0 ? void 0 : render(v, i)) !== null && _a !== void 0 ? _a : (typeof children === 'function' ? children(v, i) : children)));
37
- })));
12
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: array.map(function (v, i) {
13
+ var _a;
14
+ return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (_a = render === null || render === void 0 ? void 0 : render(v, i)) !== null && _a !== void 0 ? _a : (typeof children === 'function' ? children(v, i) : children) }, "item-".concat(i)));
15
+ }) }));
38
16
  }
39
- exports.Each = Each;
40
17
  Object.defineProperty(Each, 'displayName', { value: 'Each', writable: false });
41
18
  //# sourceMappingURL=Each.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Each.js","sourceRoot":"/","sources":["operators/Each.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAuD;AAQvD,SAAgB,IAAI,CAAI,EAIC;QAHnB,KAAK,QAAA,EACT,QAAQ,cAAA,EACR,MAAM,YAAA;IAEN,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,6DAAK,CAAA;IACvD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,MAAM,SAAS,CAAC,yBAAkB,KAAK,sBAAmB,CAAC,CAAA;IAE1F,OAAO,CACL,8DACG,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;;QAAK,OAAA,CACnB,8BAAC,gBAAQ,IAAC,GAAG,EAAE,eAAQ,CAAC,CAAE,IACvB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,EAAE,CAAC,CAAC,mCAAI,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CACtE,CACZ,CAAA;KAAA,CAAC,CACD,CACJ,CAAA;AACH,CAAC;AAjBD,oBAiBC;AAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import React, { Fragment, type ReactNode } from 'react'\n\nexport type EachProps<T> = {\n children?: ReactNode | ((value: T, index: number) => ReactNode)\n in?: T[]\n render?: (value: T, index: number) => ReactNode\n}\n\nexport function Each<T>({\n in: array,\n children,\n render,\n}: Readonly<EachProps<T>>) {\n if (array === undefined || array === null) return <></>\n if (!(array instanceof Array)) throw TypeError(`Provided list <${array}> is not an array`)\n\n return (\n <>\n {array.map((v, i) => (\n <Fragment key={`item-${i}`}>\n {render?.(v, i) ?? (typeof children === 'function' ? children(v, i) : children)}\n </Fragment>\n ))}\n </>\n )\n}\n\nObject.defineProperty(Each, 'displayName', { value: 'Each', writable: false })\n"]}
1
+ {"version":3,"file":"Each.js","sourceRoot":"/","sources":["operators/Each.tsx"],"names":[],"mappings":";;AAQA,oBAiBC;;AAzBD,+BAAgD;AAQhD,SAAgB,IAAI,CAAI,EAIC;QAHnB,KAAK,QAAA,EACT,QAAQ,cAAA,EACR,MAAM,YAAA;IAEN,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,kDAAK,CAAA;IACvD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,MAAM,SAAS,CAAC,yBAAkB,KAAK,sBAAmB,CAAC,CAAA;IAE1F,OAAO,CACL,2DACG,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;;YAAK,OAAA,CACnB,uBAAC,gBAAQ,cACN,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,EAAE,CAAC,CAAC,mCAAI,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IADlE,eAAQ,CAAC,CAAE,CAEf,CACZ,CAAA;SAAA,CAAC,GACD,CACJ,CAAA;AACH,CAAC;AAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import { Fragment, type ReactNode } from 'react'\n\nexport type EachProps<T> = {\n children?: ReactNode | ((value: T, index: number) => ReactNode)\n in?: T[]\n render?: (value: T, index: number) => ReactNode\n}\n\nexport function Each<T>({\n in: array,\n children,\n render,\n}: Readonly<EachProps<T>>) {\n if (array === undefined || array === null) return <></>\n if (!(array instanceof Array)) throw TypeError(`Provided list <${array}> is not an array`)\n\n return (\n <>\n {array.map((v, i) => (\n <Fragment key={`item-${i}`}>\n {render?.(v, i) ?? (typeof children === 'function' ? children(v, i) : children)}\n </Fragment>\n ))}\n </>\n )\n}\n\nObject.defineProperty(Each, 'displayName', { value: 'Each', writable: false })\n"]}
@@ -1,8 +1,8 @@
1
- import React, { type HTMLAttributes } from 'react';
1
+ import { type HTMLAttributes } from 'react';
2
2
  export type ExtractChildProps = HTMLAttributes<HTMLElement>;
3
3
  /**
4
4
  * Extracts a single child of a parent component into its own component. If the
5
5
  * parent component has multiple children, only the first one will be extracted,
6
6
  * the rest will be ignored.
7
7
  */
8
- export declare const ExtractChild: React.ForwardRefExoticComponent<ExtractChildProps & React.RefAttributes<HTMLElement>>;
8
+ export declare const ExtractChild: import("react").ForwardRefExoticComponent<ExtractChildProps & import("react").RefAttributes<HTMLElement>>;
@@ -10,29 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
13
  var __rest = (this && this.__rest) || function (s, e) {
37
14
  var t = {};
38
15
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -46,7 +23,8 @@ var __rest = (this && this.__rest) || function (s, e) {
46
23
  };
47
24
  Object.defineProperty(exports, "__esModule", { value: true });
48
25
  exports.ExtractChild = void 0;
49
- var react_1 = __importStar(require("react"));
26
+ var jsx_runtime_1 = require("react/jsx-runtime");
27
+ var react_1 = require("react");
50
28
  var utils_1 = require("../utils");
51
29
  /**
52
30
  * Extracts a single child of a parent component into its own component. If the
@@ -58,17 +36,17 @@ exports.ExtractChild = (0, react_1.forwardRef)(function (_a, ref) {
58
36
  if (Array.isArray(children)) {
59
37
  console.error("[etudes::ExtractChild] Only one child is expected, but found ".concat(children.length, ". Only the first child is extracted while the rest are discarded."));
60
38
  }
61
- return (react_1.default.createElement(react_1.default.Fragment, null, react_1.Children.map(children, function (child, idx) {
62
- if (idx > 0) {
63
- return undefined;
64
- }
65
- else if ((0, react_1.isValidElement)(child)) {
66
- return (0, utils_1.cloneStyledElement)(child, __assign(__assign({}, props), { ref: ref }));
67
- }
68
- else {
69
- return child;
70
- }
71
- })));
39
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: react_1.Children.map(children, function (child, idx) {
40
+ if (idx > 0) {
41
+ return undefined;
42
+ }
43
+ else if ((0, react_1.isValidElement)(child)) {
44
+ return (0, utils_1.cloneStyledElement)(child, __assign(__assign({}, props), { ref: ref }));
45
+ }
46
+ else {
47
+ return child;
48
+ }
49
+ }) }));
72
50
  });
73
51
  Object.defineProperty(exports.ExtractChild, 'displayName', { value: 'ExtractChild', writable: false });
74
52
  //# sourceMappingURL=ExtractChild.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExtractChild.js","sourceRoot":"/","sources":["operators/ExtractChild.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwF;AACxF,kCAA6C;AAI7C;;;;GAIG;AACU,QAAA,YAAY,GAAG,IAAA,kBAAU,EAAiC,UAAC,EAGvE,EAAE,GAAG;IAFJ,IAAA,QAAQ,cAAA,EACL,KAAK,cAF8D,YAGvE,CADS;IAER,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,uEAAgE,QAAQ,CAAC,MAAM,sEAAmE,CAAC,CAAA;IACnK,CAAC;IAED,OAAO,CACL,8DACG,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,GAAG;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,SAAS,CAAA;QAClB,CAAC;aACI,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAA,0BAAkB,EAAC,KAAK,EAAE,sBAAK,KAAK,KAAE,GAAG,KAAA,GAAS,CAAC,CAAA;QAC5D,CAAC;aACI,CAAC;YACJ,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC,CAAC,CACD,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,cAAc,CAAC,oBAAY,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import React, { Children, forwardRef, isValidElement, type HTMLAttributes } from 'react'\nimport { cloneStyledElement } from '../utils'\n\nexport type ExtractChildProps = HTMLAttributes<HTMLElement>\n\n/**\n * Extracts a single child of a parent component into its own component. If the\n * parent component has multiple children, only the first one will be extracted,\n * the rest will be ignored.\n */\nexport const ExtractChild = forwardRef<HTMLElement, ExtractChildProps>(({\n children,\n ...props\n}, ref) => {\n if (Array.isArray(children)) {\n console.error(`[etudes::ExtractChild] Only one child is expected, but found ${children.length}. Only the first child is extracted while the rest are discarded.`)\n }\n\n return (\n <>\n {Children.map(children, (child, idx) => {\n if (idx > 0) {\n return undefined\n }\n else if (isValidElement(child)) {\n return cloneStyledElement(child, { ...props, ref } as any)\n }\n else {\n return child\n }\n })}\n </>\n )\n})\n\nObject.defineProperty(ExtractChild, 'displayName', { value: 'ExtractChild', writable: false })\n"]}
1
+ {"version":3,"file":"ExtractChild.js","sourceRoot":"/","sources":["operators/ExtractChild.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAiF;AACjF,kCAA6C;AAI7C;;;;GAIG;AACU,QAAA,YAAY,GAAG,IAAA,kBAAU,EAAiC,UAAC,EAGvE,EAAE,GAAG;IAFJ,IAAA,QAAQ,cAAA,EACL,KAAK,cAF8D,YAGvE,CADS;IAER,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,uEAAgE,QAAQ,CAAC,MAAM,sEAAmE,CAAC,CAAA;IACnK,CAAC;IAED,OAAO,CACL,2DACG,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,GAAG;YACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAA;YAClB,CAAC;iBACI,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAA,0BAAkB,EAAC,KAAK,EAAE,sBAAK,KAAK,KAAE,GAAG,KAAA,GAAS,CAAC,CAAA;YAC5D,CAAC;iBACI,CAAC;gBACJ,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC,GACD,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,cAAc,CAAC,oBAAY,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import { Children, forwardRef, isValidElement, type HTMLAttributes } from 'react'\nimport { cloneStyledElement } from '../utils'\n\nexport type ExtractChildProps = HTMLAttributes<HTMLElement>\n\n/**\n * Extracts a single child of a parent component into its own component. If the\n * parent component has multiple children, only the first one will be extracted,\n * the rest will be ignored.\n */\nexport const ExtractChild = forwardRef<HTMLElement, ExtractChildProps>(({\n children,\n ...props\n}, ref) => {\n if (Array.isArray(children)) {\n console.error(`[etudes::ExtractChild] Only one child is expected, but found ${children.length}. Only the first child is extracted while the rest are discarded.`)\n }\n\n return (\n <>\n {Children.map(children, (child, idx) => {\n if (idx > 0) {\n return undefined\n }\n else if (isValidElement(child)) {\n return cloneStyledElement(child, { ...props, ref } as any)\n }\n else {\n return child\n }\n })}\n </>\n )\n})\n\nObject.defineProperty(ExtractChild, 'displayName', { value: 'ExtractChild', writable: false })\n"]}
@@ -1,6 +1,6 @@
1
- import React, { type HTMLAttributes } from 'react';
1
+ import { type HTMLAttributes } from 'react';
2
2
  export type ExtractChildrenProps = HTMLAttributes<HTMLElement>;
3
3
  /**
4
4
  * Extracts all children of a parent component into its own component.
5
5
  */
6
- export declare function ExtractChildren({ children, ...props }: Readonly<ExtractChildrenProps>): React.JSX.Element;
6
+ export declare function ExtractChildren({ children, ...props }: Readonly<ExtractChildrenProps>): import("react/jsx-runtime").JSX.Element;
@@ -10,29 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
13
  var __rest = (this && this.__rest) || function (s, e) {
37
14
  var t = {};
38
15
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -45,23 +22,23 @@ var __rest = (this && this.__rest) || function (s, e) {
45
22
  return t;
46
23
  };
47
24
  Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.ExtractChildren = void 0;
49
- var react_1 = __importStar(require("react"));
25
+ exports.ExtractChildren = ExtractChildren;
26
+ var jsx_runtime_1 = require("react/jsx-runtime");
27
+ var react_1 = require("react");
50
28
  var utils_1 = require("../utils");
51
29
  /**
52
30
  * Extracts all children of a parent component into its own component.
53
31
  */
54
32
  function ExtractChildren(_a) {
55
33
  var children = _a.children, props = __rest(_a, ["children"]);
56
- return (react_1.default.createElement(react_1.default.Fragment, null, react_1.Children.map(children, function (child) {
57
- if ((0, react_1.isValidElement)(child)) {
58
- return (0, utils_1.cloneStyledElement)(child, __assign({}, props));
59
- }
60
- else {
61
- return child;
62
- }
63
- })));
34
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: react_1.Children.map(children, function (child) {
35
+ if ((0, react_1.isValidElement)(child)) {
36
+ return (0, utils_1.cloneStyledElement)(child, __assign({}, props));
37
+ }
38
+ else {
39
+ return child;
40
+ }
41
+ }) }));
64
42
  }
65
- exports.ExtractChildren = ExtractChildren;
66
43
  Object.defineProperty(ExtractChildren, 'displayName', { value: 'ExtractChildren', writable: false });
67
44
  //# sourceMappingURL=ExtractChildren.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExtractChildren.js","sourceRoot":"/","sources":["operators/ExtractChildren.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4E;AAC5E,kCAA6C;AAI7C;;GAEG;AACH,SAAgB,eAAe,CAAC,EAGC;IAF/B,IAAA,QAAQ,cAAA,EACL,KAAK,cAFsB,YAG/B,CADS;IAER,OAAO,CACL,8DACG,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAA,KAAK;QAC3B,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAA,0BAAkB,EAAC,KAAK,eAAO,KAAK,EAAG,CAAA;QAChD,CAAC;aACI,CAAC;YACJ,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC,CAAC,CACD,CACJ,CAAA;AACH,CAAC;AAhBD,0CAgBC;AAED,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import React, { Children, isValidElement, type HTMLAttributes } from 'react'\nimport { cloneStyledElement } from '../utils'\n\nexport type ExtractChildrenProps = HTMLAttributes<HTMLElement>\n\n/**\n * Extracts all children of a parent component into its own component.\n */\nexport function ExtractChildren({\n children,\n ...props\n}: Readonly<ExtractChildrenProps>) {\n return (\n <>\n {Children.map(children, child => {\n if (isValidElement(child)) {\n return cloneStyledElement(child, { ...props })\n }\n else {\n return child\n }\n })}\n </>\n )\n}\n\nObject.defineProperty(ExtractChildren, 'displayName', { value: 'ExtractChildren', writable: false })\n"]}
1
+ {"version":3,"file":"ExtractChildren.js","sourceRoot":"/","sources":["operators/ExtractChildren.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAQA,0CAgBC;;AAxBD,+BAAqE;AACrE,kCAA6C;AAI7C;;GAEG;AACH,SAAgB,eAAe,CAAC,EAGC;IAF/B,IAAA,QAAQ,cAAA,EACL,KAAK,cAFsB,YAG/B,CADS;IAER,OAAO,CACL,2DACG,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAA,KAAK;YAC3B,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAA,0BAAkB,EAAC,KAAK,eAAO,KAAK,EAAG,CAAA;YAChD,CAAC;iBACI,CAAC;gBACJ,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC,GACD,CACJ,CAAA;AACH,CAAC;AAED,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA","sourcesContent":["import { Children, isValidElement, type HTMLAttributes } from 'react'\nimport { cloneStyledElement } from '../utils'\n\nexport type ExtractChildrenProps = HTMLAttributes<HTMLElement>\n\n/**\n * Extracts all children of a parent component into its own component.\n */\nexport function ExtractChildren({\n children,\n ...props\n}: Readonly<ExtractChildrenProps>) {\n return (\n <>\n {Children.map(children, child => {\n if (isValidElement(child)) {\n return cloneStyledElement(child, { ...props })\n }\n else {\n return child\n }\n })}\n </>\n )\n}\n\nObject.defineProperty(ExtractChildren, 'displayName', { value: 'ExtractChildren', writable: false })\n"]}
@@ -1,4 +1,4 @@
1
- import React, { type ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  export type RepeatProps = {
3
3
  children?: ReactNode | ((index: number) => ReactNode);
4
4
  count?: number;
@@ -8,4 +8,4 @@ export type RepeatProps = {
8
8
  * A tag-less component that repeats its children, automatically assigning each
9
9
  * a unique key.
10
10
  */
11
- export declare function Repeat({ count, children, render, }: Readonly<RepeatProps>): React.JSX.Element;
11
+ export declare function Repeat({ count, children, render, }: Readonly<RepeatProps>): import("react/jsx-runtime").JSX.Element;