etudes 5.2.0 → 5.3.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 (164) hide show
  1. package/components/Accordion.js +171 -205
  2. package/components/BurgerButton.js +40 -94
  3. package/components/Carousel.js +87 -123
  4. package/components/Collection.js +84 -120
  5. package/components/Counter.js +32 -63
  6. package/components/CoverImage.js +24 -68
  7. package/components/CoverVideo.js +25 -69
  8. package/components/DebugConsole.js +27 -79
  9. package/components/Dial.js +28 -65
  10. package/components/Dropdown.js +86 -98
  11. package/components/FlatSVG.js +22 -71
  12. package/components/Image.js +21 -50
  13. package/components/MasonryGrid.js +122 -257
  14. package/components/Panorama.js +48 -92
  15. package/components/PanoramaSlider.js +57 -113
  16. package/components/RangeSlider.js +125 -182
  17. package/components/RotatingGallery.js +28 -59
  18. package/components/SelectableButton.js +10 -54
  19. package/components/Slider.js +108 -159
  20. package/components/StepwiseSlider.js +124 -176
  21. package/components/SwipeContainer.js +30 -73
  22. package/components/TextField.js +12 -49
  23. package/components/Video.js +31 -61
  24. package/components/WithTooltip.js +117 -111
  25. package/components/index.js +24 -0
  26. package/hooks/index.js +17 -0
  27. package/hooks/useClickOutsideEffect.js +8 -38
  28. package/hooks/useDragEffect.js +20 -53
  29. package/hooks/useDragValueEffect.js +31 -81
  30. package/hooks/useImageSize.js +16 -38
  31. package/hooks/useInterval.js +9 -41
  32. package/hooks/useLoadImageEffect.js +15 -48
  33. package/hooks/useLoadVideoMetadataEffect.js +15 -48
  34. package/hooks/useMounted.js +5 -25
  35. package/hooks/usePrevious.js +4 -9
  36. package/hooks/useRect.js +9 -29
  37. package/hooks/useResizeEffect.js +10 -44
  38. package/hooks/useScrollPositionEffect.js +19 -50
  39. package/hooks/useSearchParamState.js +12 -34
  40. package/hooks/useSize.js +9 -29
  41. package/hooks/useTimeout.js +8 -38
  42. package/hooks/useVideoSize.js +16 -38
  43. package/hooks/useViewportSize.js +7 -27
  44. package/operators/Conditional.js +6 -11
  45. package/operators/Each.js +6 -14
  46. package/operators/ExtractChild.js +9 -36
  47. package/operators/ExtractChildren.js +7 -34
  48. package/operators/Repeat.js +4 -37
  49. package/operators/index.js +5 -0
  50. package/package.json +27 -41
  51. package/providers/ScrollPositionProvider.js +37 -60
  52. package/providers/index.js +1 -0
  53. package/utils/asClassNameDict.js +1 -5
  54. package/utils/asComponentDict.js +11 -16
  55. package/utils/asStyleDict.js +1 -5
  56. package/utils/cloneStyledElement.js +14 -61
  57. package/utils/index.js +5 -22
  58. package/utils/styles.js +5 -21
  59. package/components/Accordion.d.ts +0 -219
  60. package/components/Accordion.js.map +0 -1
  61. package/components/BurgerButton.d.ts +0 -34
  62. package/components/BurgerButton.js.map +0 -1
  63. package/components/Carousel.d.ts +0 -53
  64. package/components/Carousel.js.map +0 -1
  65. package/components/Collection.d.ts +0 -171
  66. package/components/Collection.js.map +0 -1
  67. package/components/Counter.d.ts +0 -11
  68. package/components/Counter.js.map +0 -1
  69. package/components/CoverImage.d.ts +0 -28
  70. package/components/CoverImage.js.map +0 -1
  71. package/components/CoverVideo.d.ts +0 -28
  72. package/components/CoverVideo.js.map +0 -1
  73. package/components/DebugConsole.d.ts +0 -15
  74. package/components/DebugConsole.js.map +0 -1
  75. package/components/Dial.d.ts +0 -79
  76. package/components/Dial.js.map +0 -1
  77. package/components/Dropdown.d.ts +0 -109
  78. package/components/Dropdown.js.map +0 -1
  79. package/components/FlatSVG.d.ts +0 -72
  80. package/components/FlatSVG.js.map +0 -1
  81. package/components/Image.d.ts +0 -144
  82. package/components/Image.js.map +0 -1
  83. package/components/MasonryGrid.d.ts +0 -29
  84. package/components/MasonryGrid.js.map +0 -1
  85. package/components/Panorama.d.ts +0 -77
  86. package/components/Panorama.js.map +0 -1
  87. package/components/PanoramaSlider.d.ts +0 -71
  88. package/components/PanoramaSlider.js.map +0 -1
  89. package/components/RangeSlider.d.ts +0 -34
  90. package/components/RangeSlider.js.map +0 -1
  91. package/components/RotatingGallery.d.ts +0 -91
  92. package/components/RotatingGallery.js.map +0 -1
  93. package/components/SelectableButton.d.ts +0 -19
  94. package/components/SelectableButton.js.map +0 -1
  95. package/components/Slider.d.ts +0 -160
  96. package/components/Slider.js.map +0 -1
  97. package/components/StepwiseSlider.d.ts +0 -215
  98. package/components/StepwiseSlider.js.map +0 -1
  99. package/components/SwipeContainer.d.ts +0 -21
  100. package/components/SwipeContainer.js.map +0 -1
  101. package/components/TextField.d.ts +0 -21
  102. package/components/TextField.js.map +0 -1
  103. package/components/Video.d.ts +0 -38
  104. package/components/Video.js.map +0 -1
  105. package/components/WithTooltip.d.ts +0 -32
  106. package/components/WithTooltip.js.map +0 -1
  107. package/hooks/useClickOutsideEffect.d.ts +0 -2
  108. package/hooks/useClickOutsideEffect.js.map +0 -1
  109. package/hooks/useDragEffect.d.ts +0 -48
  110. package/hooks/useDragEffect.js.map +0 -1
  111. package/hooks/useDragValueEffect.d.ts +0 -56
  112. package/hooks/useDragValueEffect.js.map +0 -1
  113. package/hooks/useImageSize.d.ts +0 -21
  114. package/hooks/useImageSize.js.map +0 -1
  115. package/hooks/useInterval.d.ts +0 -18
  116. package/hooks/useInterval.js.map +0 -1
  117. package/hooks/useLoadImageEffect.d.ts +0 -43
  118. package/hooks/useLoadImageEffect.js.map +0 -1
  119. package/hooks/useLoadVideoMetadataEffect.d.ts +0 -35
  120. package/hooks/useLoadVideoMetadataEffect.js.map +0 -1
  121. package/hooks/useMounted.d.ts +0 -1
  122. package/hooks/useMounted.js.map +0 -1
  123. package/hooks/usePrevious.d.ts +0 -19
  124. package/hooks/usePrevious.js.map +0 -1
  125. package/hooks/useRect.d.ts +0 -11
  126. package/hooks/useRect.js.map +0 -1
  127. package/hooks/useResizeEffect.d.ts +0 -17
  128. package/hooks/useResizeEffect.js.map +0 -1
  129. package/hooks/useScrollPositionEffect.d.ts +0 -13
  130. package/hooks/useScrollPositionEffect.js.map +0 -1
  131. package/hooks/useSearchParamState.d.ts +0 -34
  132. package/hooks/useSearchParamState.js.map +0 -1
  133. package/hooks/useSize.d.ts +0 -10
  134. package/hooks/useSize.js.map +0 -1
  135. package/hooks/useTimeout.d.ts +0 -10
  136. package/hooks/useTimeout.js.map +0 -1
  137. package/hooks/useVideoSize.d.ts +0 -21
  138. package/hooks/useVideoSize.js.map +0 -1
  139. package/hooks/useViewportSize.d.ts +0 -7
  140. package/hooks/useViewportSize.js.map +0 -1
  141. package/operators/Conditional.d.ts +0 -5
  142. package/operators/Conditional.js.map +0 -1
  143. package/operators/Each.d.ts +0 -7
  144. package/operators/Each.js.map +0 -1
  145. package/operators/ExtractChild.d.ts +0 -8
  146. package/operators/ExtractChild.js.map +0 -1
  147. package/operators/ExtractChildren.d.ts +0 -6
  148. package/operators/ExtractChildren.js.map +0 -1
  149. package/operators/Repeat.d.ts +0 -11
  150. package/operators/Repeat.js.map +0 -1
  151. package/providers/ScrollPositionProvider.d.ts +0 -15
  152. package/providers/ScrollPositionProvider.js.map +0 -1
  153. package/utils/asClassNameDict.d.ts +0 -3
  154. package/utils/asClassNameDict.js.map +0 -1
  155. package/utils/asComponentDict.d.ts +0 -5
  156. package/utils/asComponentDict.js.map +0 -1
  157. package/utils/asStyleDict.d.ts +0 -4
  158. package/utils/asStyleDict.js.map +0 -1
  159. package/utils/cloneStyledElement.d.ts +0 -18
  160. package/utils/cloneStyledElement.js.map +0 -1
  161. package/utils/index.d.ts +0 -5
  162. package/utils/index.js.map +0 -1
  163. package/utils/styles.d.ts +0 -2
  164. package/utils/styles.js.map +0 -1
@@ -1,64 +1,21 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
- var __read = (this && this.__read) || function (o, n) {
25
- var m = typeof Symbol === "function" && o[Symbol.iterator];
26
- if (!m) return o;
27
- var i = m.call(o), r, ar = [], e;
28
- try {
29
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
30
- }
31
- catch (error) { e = { error: error }; }
32
- finally {
33
- try {
34
- if (r && !r.done && (m = i["return"])) m.call(i);
35
- }
36
- finally { if (e) throw e.error; }
37
- }
38
- return ar;
39
- };
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.CoverVideo = void 0;
42
- var jsx_runtime_1 = require("react/jsx-runtime");
43
- var react_1 = require("react");
44
- var spase_1 = require("spase");
45
- var useRect_1 = require("../hooks/useRect");
46
- var utils_1 = require("../utils");
47
- var Video_1 = require("./Video");
48
- exports.CoverVideo = (0, react_1.forwardRef)(function (_a, ref) {
49
- var _b;
50
- var className = _a.className, children = _a.children, style = _a.style, _c = _a.aspectRatio, externalAspectRatio = _c === void 0 ? NaN : _c, autoLoop = _a.autoLoop, autoPlay = _a.autoPlay, hasControls = _a.hasControls, isMuted = _a.isMuted, playsInline = _a.playsInline, posterSrc = _a.posterSrc, renderViewportContent = _a.renderViewportContent, src = _a.src, onCanPlay = _a.onCanPlay, onEnd = _a.onEnd, onFullscreenChange = _a.onFullscreenChange, onLoadMetadata = _a.onLoadMetadata, onLoadMetadataComplete = _a.onLoadMetadataComplete, onLoadMetadataError = _a.onLoadMetadataError, onPause = _a.onPause, onPlay = _a.onPlay, onSizeChange = _a.onSizeChange, props = __rest(_a, ["className", "children", "style", "aspectRatio", "autoLoop", "autoPlay", "hasControls", "isMuted", "playsInline", "posterSrc", "renderViewportContent", "src", "onCanPlay", "onEnd", "onFullscreenChange", "onLoadMetadata", "onLoadMetadataComplete", "onLoadMetadataError", "onPause", "onPlay", "onSizeChange"]);
51
- var handleSizeChange = function (size) {
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useRef, useState } from 'react';
3
+ import { Size } from 'spase';
4
+ import { useRect } from '../hooks/useRect.js';
5
+ import { asStyleDict, styles } from '../utils/index.js';
6
+ import { Video } from './Video.js';
7
+ export const CoverVideo = forwardRef(({ className, children, style, aspectRatio: externalAspectRatio = NaN, autoLoop, autoPlay, hasControls, isMuted, playsInline, posterSrc, renderViewportContent, src, onCanPlay, onEnd, onFullscreenChange, onLoadMetadata, onLoadMetadataComplete, onLoadMetadataError, onPause, onPlay, onSizeChange, ...props }, ref) => {
8
+ const handleSizeChange = (size) => {
52
9
  setLocalAspectRatio(size ? size.width / size.height : NaN);
53
- onSizeChange === null || onSizeChange === void 0 ? void 0 : onSizeChange(size);
10
+ onSizeChange?.(size);
54
11
  };
55
- var localRef = (0, react_1.useRef)(null);
56
- var rootRef = (_b = ref) !== null && _b !== void 0 ? _b : localRef;
57
- var _d = __read((0, react_1.useState)(NaN), 2), localAspectRatio = _d[0], setLocalAspectRatio = _d[1];
58
- var aspectRatio = isNaN(externalAspectRatio) ? localAspectRatio : externalAspectRatio;
59
- var rootRect = (0, useRect_1.useRect)(rootRef);
60
- var rootAspectRatio = rootRect.width / rootRect.height;
61
- var videoSize = new spase_1.Size([
12
+ const localRef = useRef(null);
13
+ const rootRef = ref ?? localRef;
14
+ const [localAspectRatio, setLocalAspectRatio] = useState(NaN);
15
+ const aspectRatio = isNaN(externalAspectRatio) ? localAspectRatio : externalAspectRatio;
16
+ const rootRect = useRect(rootRef);
17
+ const rootAspectRatio = rootRect.width / rootRect.height;
18
+ const videoSize = new Size([
62
19
  rootAspectRatio > 1
63
20
  ? Math.max(rootRect.width, rootRect.height * aspectRatio)
64
21
  : Math.max(rootRect.width, (Math.max(rootRect.height, rootRect.width / aspectRatio)) * aspectRatio),
@@ -66,17 +23,17 @@ exports.CoverVideo = (0, react_1.forwardRef)(function (_a, ref) {
66
23
  ? Math.max(rootRect.height, Math.max(rootRect.width, rootRect.height * aspectRatio) / aspectRatio)
67
24
  : Math.max(rootRect.height, rootRect.width / aspectRatio),
68
25
  ]);
69
- return ((0, jsx_runtime_1.jsxs)("div", __assign({}, props, { ref: rootRef, className: className, "data-component": 'cover-video', style: (0, utils_1.styles)(style, FIXED_STYLES.root), children: [(0, jsx_runtime_1.jsx)(Video_1.Video, { autoLoop: autoLoop, autoPlay: autoPlay, "data-child": 'video', hasControls: hasControls, isMuted: isMuted, playsInline: playsInline, posterSrc: posterSrc, src: src, style: (0, utils_1.styles)(FIXED_STYLES.viewport, {
70
- width: "".concat(videoSize.width, "px"),
71
- height: "".concat(videoSize.height, "px"),
72
- }), onCanPlay: onCanPlay, onEnd: onEnd, onFullscreenChange: onFullscreenChange, onLoadMetadata: onLoadMetadata, onLoadMetadataComplete: onLoadMetadataComplete, onLoadMetadataError: onLoadMetadataError, onPause: onPause, onPlay: onPlay, onSizeChange: function (size) { return handleSizeChange(size); } }), renderViewportContent && ((0, jsx_runtime_1.jsx)("div", { "data-child": 'viewport', style: (0, utils_1.styles)(FIXED_STYLES.viewport, {
73
- height: "".concat(videoSize.height, "px"),
26
+ return (_jsxs("div", { ...props, ref: rootRef, className: className, "data-component": 'cover-video', style: styles(style, FIXED_STYLES.root), children: [_jsx(Video, { autoLoop: autoLoop, autoPlay: autoPlay, "data-child": 'video', hasControls: hasControls, isMuted: isMuted, playsInline: playsInline, posterSrc: posterSrc, src: src, style: styles(FIXED_STYLES.viewport, {
27
+ width: `${videoSize.width}px`,
28
+ height: `${videoSize.height}px`,
29
+ }), onCanPlay: onCanPlay, onEnd: onEnd, onFullscreenChange: onFullscreenChange, onLoadMetadata: onLoadMetadata, onLoadMetadataComplete: onLoadMetadataComplete, onLoadMetadataError: onLoadMetadataError, onPause: onPause, onPlay: onPlay, onSizeChange: size => handleSizeChange(size) }), renderViewportContent && (_jsx("div", { "data-child": 'viewport', style: styles(FIXED_STYLES.viewport, {
30
+ height: `${videoSize.height}px`,
74
31
  pointerEvents: 'none',
75
- width: "".concat(videoSize.width, "px"),
76
- }), children: renderViewportContent() })), children] })));
32
+ width: `${videoSize.width}px`,
33
+ }), children: renderViewportContent() })), children] }));
77
34
  });
78
- Object.defineProperty(exports.CoverVideo, 'displayName', { value: 'CoverVideo', writable: false });
79
- var FIXED_STYLES = (0, utils_1.asStyleDict)({
35
+ Object.defineProperty(CoverVideo, 'displayName', { value: 'CoverVideo', writable: false });
36
+ const FIXED_STYLES = asStyleDict({
80
37
  root: {
81
38
  overflow: 'hidden',
82
39
  },
@@ -95,4 +52,3 @@ var FIXED_STYLES = (0, utils_1.asStyleDict)({
95
52
  width: '100%',
96
53
  },
97
54
  });
98
- //# sourceMappingURL=CoverVideo.js.map
@@ -1,95 +1,44 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
- var __read = (this && this.__read) || function (o, n) {
25
- var m = typeof Symbol === "function" && o[Symbol.iterator];
26
- if (!m) return o;
27
- var i = m.call(o), r, ar = [], e;
28
- try {
29
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
30
- }
31
- catch (error) { e = { error: error }; }
32
- finally {
33
- try {
34
- if (r && !r.done && (m = i["return"])) m.call(i);
35
- }
36
- finally { if (e) throw e.error; }
37
- }
38
- return ar;
39
- };
40
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
41
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
42
- if (ar || !(i in from)) {
43
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
44
- ar[i] = from[i];
45
- }
46
- }
47
- return to.concat(ar || Array.prototype.slice.call(from));
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.DebugConsole = void 0;
51
- var jsx_runtime_1 = require("react/jsx-runtime");
52
- var react_1 = require("react");
53
- var Each_1 = require("../operators/Each");
54
- var utils_1 = require("../utils");
55
- exports.DebugConsole = (0, react_1.forwardRef)(function (_a, ref) {
56
- var _b = _a.align, align = _b === void 0 ? 'br' : _b, _c = _a.margin, margin = _c === void 0 ? 0 : _c, _d = _a.maxEntries, maxEntries = _d === void 0 ? -1 : _d, message = _a.message, _e = _a.style, style = _e === void 0 ? {} : _e, title = _a.title, props = __rest(_a, ["align", "margin", "maxEntries", "message", "style", "title"]);
57
- var _f = __read((0, react_1.useState)([]), 2), messages = _f[0], setMessages = _f[1];
58
- var messagesRef = (0, react_1.useRef)(null);
59
- (0, react_1.useEffect)(function () {
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useEffect, useRef, useState } from 'react';
3
+ import { Each } from '../operators/Each.js';
4
+ import { asStyleDict, styles } from '../utils/index.js';
5
+ export const DebugConsole = forwardRef(({ align = 'br', margin = 0, maxEntries = -1, message, style = {}, title, ...props }, ref) => {
6
+ const [messages, setMessages] = useState([]);
7
+ const messagesRef = useRef(null);
8
+ useEffect(() => {
60
9
  if (message === undefined) {
61
10
  setMessages([]);
62
11
  }
63
12
  else {
64
- var numMessages = messages.length;
65
- setMessages(__spreadArray(__spreadArray([], __read(maxEntries < 0
66
- ? messages
67
- : messages.slice(Math.max(0, numMessages - (maxEntries - 1)), numMessages)), false), [
13
+ const numMessages = messages.length;
14
+ setMessages([
15
+ ...maxEntries < 0
16
+ ? messages
17
+ : messages.slice(Math.max(0, numMessages - (maxEntries - 1)), numMessages),
68
18
  message,
69
- ], false));
19
+ ]);
70
20
  }
71
21
  }, [message]);
72
- (0, react_1.useEffect)(function () {
73
- var _a, _b;
74
- (_a = messagesRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(0, (_b = messagesRef.current) === null || _b === void 0 ? void 0 : _b.scrollHeight);
22
+ useEffect(() => {
23
+ messagesRef.current?.scrollTo(0, messagesRef.current?.scrollHeight);
75
24
  }, [messages]);
76
- return ((0, jsx_runtime_1.jsxs)("div", __assign({}, props, { ref: ref, "data-component": 'debug-console', style: (0, utils_1.styles)(style, FIXED_STYLES.root, getStyleByAlignment(align, margin)), children: [(0, jsx_runtime_1.jsx)("div", { "data-child": 'header', style: FIXED_STYLES.title, children: title !== null && title !== void 0 ? title : 'Untitled' }), (0, jsx_runtime_1.jsx)("div", { ref: messagesRef, "data-child": 'messages', style: FIXED_STYLES.messages, children: (0, jsx_runtime_1.jsx)(Each_1.Each, { in: messages, render: function (msg) { return (0, jsx_runtime_1.jsx)("div", { dangerouslySetInnerHTML: { __html: msg } }); } }) })] })));
25
+ return (_jsxs("div", { ...props, ref: ref, "data-component": 'debug-console', style: styles(style, FIXED_STYLES.root, getStyleByAlignment(align, margin)), children: [_jsx("div", { "data-child": 'header', style: FIXED_STYLES.title, children: title ?? 'Untitled' }), _jsx("div", { ref: messagesRef, "data-child": 'messages', style: FIXED_STYLES.messages, children: _jsx(Each, { in: messages, render: msg => _jsx("div", { dangerouslySetInnerHTML: { __html: msg } }) }) })] }));
77
26
  });
78
- Object.defineProperty(exports.DebugConsole, 'displayName', { value: 'DebugConsole', writable: false });
27
+ Object.defineProperty(DebugConsole, 'displayName', { value: 'DebugConsole', writable: false });
79
28
  function getStyleByAlignment(align, margin) {
80
29
  switch (align) {
81
- case 'tl': return { top: "".concat(margin, "px"), left: "".concat(margin, "px") };
82
- case 'tc': return { top: "".concat(margin, "px"), left: 0, right: 0, margin: '0 auto' };
83
- case 'tr': return { top: "".concat(margin, "px"), right: "".concat(margin, "px") };
84
- case 'cl': return { top: 0, left: "".concat(margin, "px"), bottom: 0, margin: 'auto 0' };
30
+ case 'tl': return { top: `${margin}px`, left: `${margin}px` };
31
+ case 'tc': return { top: `${margin}px`, left: 0, right: 0, margin: '0 auto' };
32
+ case 'tr': return { top: `${margin}px`, right: `${margin}px` };
33
+ case 'cl': return { top: 0, left: `${margin}px`, bottom: 0, margin: 'auto 0' };
85
34
  case 'cc': return { top: 0, left: 0, right: 0, bottom: 0, margin: 'auto' };
86
- case 'cr': return { top: 0, bottom: 0, right: "".concat(margin, "px"), margin: 'auto 0' };
87
- case 'bl': return { bottom: "".concat(margin, "px"), left: "".concat(margin, "px") };
88
- case 'bc': return { bottom: "".concat(margin, "px"), left: 0, right: 0, margin: '0 auto' };
89
- default: return { bottom: "".concat(margin, "px"), right: "".concat(margin, "px") };
35
+ case 'cr': return { top: 0, bottom: 0, right: `${margin}px`, margin: 'auto 0' };
36
+ case 'bl': return { bottom: `${margin}px`, left: `${margin}px` };
37
+ case 'bc': return { bottom: `${margin}px`, left: 0, right: 0, margin: '0 auto' };
38
+ default: return { bottom: `${margin}px`, right: `${margin}px` };
90
39
  }
91
40
  }
92
- var FIXED_STYLES = (0, utils_1.asStyleDict)({
41
+ const FIXED_STYLES = asStyleDict({
93
42
  root: {
94
43
  background: '#000',
95
44
  fontFamily: 'monospace',
@@ -125,4 +74,3 @@ var FIXED_STYLES = (0, utils_1.asStyleDict)({
125
74
  width: '100%',
126
75
  },
127
76
  });
128
- //# sourceMappingURL=DebugConsole.js.map
@@ -1,81 +1,46 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.DialKnob = exports.DialTrack = exports.Dial = void 0;
26
- var jsx_runtime_1 = require("react/jsx-runtime");
27
- var react_1 = require("react");
28
- var utils_1 = require("../utils");
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { asComponentDict, asStyleDict, cloneStyledElement, styles } from '../utils/index.js';
29
4
  /**
30
5
  * A circular dial with a knob and a track.
31
6
  *
32
7
  * @exports DialKnob
33
8
  * @exports DialTrack
34
9
  */
35
- exports.Dial = (0, react_1.forwardRef)(function (_a, ref) {
36
- var _b, _c;
37
- var children = _a.children, style = _a.style, _d = _a.angle, angle = _d === void 0 ? 0 : _d, _e = _a.knobLength, knobLength = _e === void 0 ? 30 : _e, _f = _a.knobThickness, knobThickness = _f === void 0 ? 10 : _f, _g = _a.radius, radius = _g === void 0 ? 50 : _g, _h = _a.trackThickness, trackThickness = _h === void 0 ? 2 : _h, _j = _a.usesDefaultStyles, usesDefaultStyles = _j === void 0 ? false : _j, props = __rest(_a, ["children", "style", "angle", "knobLength", "knobThickness", "radius", "trackThickness", "usesDefaultStyles"]);
38
- var diameter = radius * 2;
39
- var clampedKnobAngle = Math.max(0, Math.min(360, knobLength));
40
- var components = (0, utils_1.asComponentDict)(children, {
41
- track: exports.DialTrack,
42
- knob: exports.DialKnob,
10
+ export const Dial = forwardRef(({ children, style, angle = 0, knobLength = 30, knobThickness = 10, radius = 50, trackThickness = 2, usesDefaultStyles = false, ...props }, ref) => {
11
+ const diameter = radius * 2;
12
+ const clampedKnobAngle = Math.max(0, Math.min(360, knobLength));
13
+ const components = asComponentDict(children, {
14
+ track: DialTrack,
15
+ knob: DialKnob,
43
16
  });
44
- var fixedStyles = getFixedStyles({ angle: angle, diameter: diameter });
45
- var defaultStyles = usesDefaultStyles ? getDefaultStyles() : undefined;
46
- return ((0, jsx_runtime_1.jsxs)("div", __assign({}, props, { ref: ref, "data-component": 'dial', style: (0, utils_1.styles)(style, fixedStyles.root), children: [(0, jsx_runtime_1.jsx)("div", { style: fixedStyles.trackContainer, children: (0, jsx_runtime_1.jsx)("svg", { height: diameter, style: fixedStyles.svgContainer, viewBox: "0 0 ".concat(diameter, " ").concat(diameter), width: diameter, children: (0, utils_1.cloneStyledElement)((_b = components.track) !== null && _b !== void 0 ? _b : (0, jsx_runtime_1.jsx)(exports.DialTrack, { style: defaultStyles === null || defaultStyles === void 0 ? void 0 : defaultStyles.track }), {
17
+ const fixedStyles = getFixedStyles({ angle, diameter });
18
+ const defaultStyles = usesDefaultStyles ? getDefaultStyles() : undefined;
19
+ return (_jsxs("div", { ...props, ref: ref, "data-component": 'dial', style: styles(style, fixedStyles.root), children: [_jsx("div", { style: fixedStyles.trackContainer, children: _jsx("svg", { height: diameter, style: fixedStyles.svgContainer, viewBox: `0 0 ${diameter} ${diameter}`, width: diameter, children: cloneStyledElement(components.track ?? _jsx(DialTrack, { style: defaultStyles?.track }), {
47
20
  cx: radius,
48
21
  cy: radius,
49
22
  r: radius - trackThickness / 2,
50
23
  strokeWidth: trackThickness,
51
- }) }) }), (0, jsx_runtime_1.jsx)("div", { style: (0, utils_1.styles)(fixedStyles.knobContainer), children: (0, jsx_runtime_1.jsx)("svg", { style: fixedStyles.svgContainer, viewBox: "0 0 ".concat(diameter, " ").concat(diameter), xmlns: 'http://www.w3.org/2000/svg', children: (0, utils_1.cloneStyledElement)((_c = components.knob) !== null && _c !== void 0 ? _c : (0, jsx_runtime_1.jsx)(exports.DialKnob, { style: defaultStyles === null || defaultStyles === void 0 ? void 0 : defaultStyles.knob }), {
24
+ }) }) }), _jsx("div", { style: styles(fixedStyles.knobContainer), children: _jsx("svg", { style: fixedStyles.svgContainer, viewBox: `0 0 ${diameter} ${diameter}`, xmlns: 'http://www.w3.org/2000/svg', children: cloneStyledElement(components.knob ?? _jsx(DialKnob, { style: defaultStyles?.knob }), {
52
25
  strokeWidth: knobThickness,
53
26
  d: arcPath(radius, radius, radius - knobThickness / 2 - (trackThickness - knobThickness) / 2, -clampedKnobAngle / 2, clampedKnobAngle / 2),
54
- }) }) })] })));
27
+ }) }) })] }));
55
28
  });
56
- Object.defineProperty(exports.Dial, 'displayName', { value: 'Dial', writable: false });
57
- var DialTrack = function (_a) {
58
- var props = __rest(_a, []);
59
- return (0, jsx_runtime_1.jsx)("circle", __assign({}, props, { "data-child": 'track' }));
60
- };
61
- exports.DialTrack = DialTrack;
62
- var DialKnob = function (_a) {
63
- var props = __rest(_a, []);
64
- return (0, jsx_runtime_1.jsx)("path", __assign({}, props, { "data-child": 'knob' }));
65
- };
66
- exports.DialKnob = DialKnob;
29
+ Object.defineProperty(Dial, 'displayName', { value: 'Dial', writable: false });
30
+ export const DialTrack = ({ ...props }) => _jsx("circle", { ...props, "data-child": 'track' });
31
+ export const DialKnob = ({ ...props }) => _jsx("path", { ...props, "data-child": 'knob' });
67
32
  function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
68
- var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;
33
+ const angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;
69
34
  return {
70
35
  x: centerX + radius * Math.cos(angleInRadians),
71
36
  y: centerY + radius * Math.sin(angleInRadians),
72
37
  };
73
38
  }
74
39
  function arcPath(x, y, radius, startAngle, endAngle) {
75
- var start = polarToCartesian(x, y, radius, endAngle);
76
- var end = polarToCartesian(x, y, radius, startAngle);
77
- var largeArcFlag = endAngle - startAngle <= 180 ? '0' : '1';
78
- var d = [
40
+ const start = polarToCartesian(x, y, radius, endAngle);
41
+ const end = polarToCartesian(x, y, radius, startAngle);
42
+ const largeArcFlag = endAngle - startAngle <= 180 ? '0' : '1';
43
+ const d = [
79
44
  'M',
80
45
  start.x,
81
46
  start.y,
@@ -90,12 +55,11 @@ function arcPath(x, y, radius, startAngle, endAngle) {
90
55
  ];
91
56
  return d.join(' ');
92
57
  }
93
- function getFixedStyles(_a) {
94
- var _b = _a.diameter, diameter = _b === void 0 ? 0 : _b, _c = _a.angle, angle = _c === void 0 ? 0 : _c;
95
- return (0, utils_1.asStyleDict)({
58
+ function getFixedStyles({ diameter = 0, angle = 0 }) {
59
+ return asStyleDict({
96
60
  root: {
97
- height: "".concat(diameter, "px"),
98
- width: "".concat(diameter, "px"),
61
+ height: `${diameter}px`,
62
+ width: `${diameter}px`,
99
63
  },
100
64
  knobContainer: {
101
65
  backgroundPosition: 'center',
@@ -107,7 +71,7 @@ function getFixedStyles(_a) {
107
71
  top: '0',
108
72
  transformOrigin: 'center',
109
73
  width: '100%',
110
- transform: "rotate(".concat((angle + 360) % 360, "deg)"),
74
+ transform: `rotate(${(angle + 360) % 360}deg)`,
111
75
  },
112
76
  trackContainer: {
113
77
  height: '100%',
@@ -126,7 +90,7 @@ function getFixedStyles(_a) {
126
90
  });
127
91
  }
128
92
  function getDefaultStyles() {
129
- return (0, utils_1.asStyleDict)({
93
+ return asStyleDict({
130
94
  knob: {
131
95
  stroke: '#fff',
132
96
  },
@@ -136,4 +100,3 @@ function getDefaultStyles() {
136
100
  },
137
101
  });
138
102
  }
139
- //# sourceMappingURL=Dial.js.map