@revikornmann/muka-ui 0.27.3 → 0.28.1

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 (61) hide show
  1. package/dist/cjs/components/DataPieChart/DataPieChart.css +4 -1
  2. package/dist/cjs/components/DataPieChart/DataPieChart.js +1 -1
  3. package/dist/cjs/components/DataPieChart/DataPieChart.js.map +1 -1
  4. package/dist/cjs/components/Dialog/Dialog.css +3 -0
  5. package/dist/cjs/components/Dialog/Dialog.js +66 -3
  6. package/dist/cjs/components/Dialog/Dialog.js.map +1 -1
  7. package/dist/cjs/components/Input/Input.css +21 -0
  8. package/dist/cjs/components/MediaViewer/MediaViewer.css +183 -0
  9. package/dist/cjs/components/MediaViewer/MediaViewer.js +273 -0
  10. package/dist/cjs/components/MediaViewer/MediaViewer.js.map +1 -0
  11. package/dist/cjs/components/MediaViewer/index.js +6 -0
  12. package/dist/cjs/components/MediaViewer/index.js.map +1 -0
  13. package/dist/cjs/components/MediaViewer/mediaViewerGestures.js +65 -0
  14. package/dist/cjs/components/MediaViewer/mediaViewerGestures.js.map +1 -0
  15. package/dist/cjs/components/Thumbnail/Thumbnail.css +11 -0
  16. package/dist/cjs/components/Thumbnail/Thumbnail.js +6 -2
  17. package/dist/cjs/components/Thumbnail/Thumbnail.js.map +1 -1
  18. package/dist/cjs/components/index.js +3 -1
  19. package/dist/cjs/components/index.js.map +1 -1
  20. package/dist/esm/components/DataPieChart/DataPieChart.css +4 -1
  21. package/dist/esm/components/DataPieChart/DataPieChart.js +1 -1
  22. package/dist/esm/components/DataPieChart/DataPieChart.js.map +1 -1
  23. package/dist/esm/components/Dialog/Dialog.css +3 -0
  24. package/dist/esm/components/Dialog/Dialog.js +66 -3
  25. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  26. package/dist/esm/components/Input/Input.css +21 -0
  27. package/dist/esm/components/MediaViewer/MediaViewer.css +183 -0
  28. package/dist/esm/components/MediaViewer/MediaViewer.js +269 -0
  29. package/dist/esm/components/MediaViewer/MediaViewer.js.map +1 -0
  30. package/dist/esm/components/MediaViewer/index.js +2 -0
  31. package/dist/esm/components/MediaViewer/index.js.map +1 -0
  32. package/dist/esm/components/MediaViewer/mediaViewerGestures.js +58 -0
  33. package/dist/esm/components/MediaViewer/mediaViewerGestures.js.map +1 -0
  34. package/dist/esm/components/Thumbnail/Thumbnail.css +11 -0
  35. package/dist/esm/components/Thumbnail/Thumbnail.js +6 -2
  36. package/dist/esm/components/Thumbnail/Thumbnail.js.map +1 -1
  37. package/dist/esm/components/index.js +1 -0
  38. package/dist/esm/components/index.js.map +1 -1
  39. package/dist/styles/base.css +2 -0
  40. package/dist/styles/components/DataPieChart.css +4 -1
  41. package/dist/styles/components/Dialog.css +3 -0
  42. package/dist/styles/components/Input.css +21 -0
  43. package/dist/styles/components/MediaViewer.css +183 -0
  44. package/dist/styles/components/Thumbnail.css +11 -0
  45. package/dist/styles/index.css +1693 -1467
  46. package/dist/styles/muka-dark.css +1693 -1467
  47. package/dist/styles/muka-light.css +1693 -1467
  48. package/dist/styles/wireframe-dark.css +1693 -1467
  49. package/dist/styles/wireframe-light.css +1693 -1467
  50. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  51. package/dist/types/components/MediaViewer/MediaViewer.d.ts +88 -0
  52. package/dist/types/components/MediaViewer/MediaViewer.d.ts.map +1 -0
  53. package/dist/types/components/MediaViewer/index.d.ts +2 -0
  54. package/dist/types/components/MediaViewer/index.d.ts.map +1 -0
  55. package/dist/types/components/MediaViewer/mediaViewerGestures.d.ts +35 -0
  56. package/dist/types/components/MediaViewer/mediaViewerGestures.d.ts.map +1 -0
  57. package/dist/types/components/Thumbnail/Thumbnail.d.ts +21 -0
  58. package/dist/types/components/Thumbnail/Thumbnail.d.ts.map +1 -1
  59. package/dist/types/components/index.d.ts +1 -0
  60. package/dist/types/components/index.d.ts.map +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MediaViewer = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const TopBar_1 = require("../TopBar");
8
+ const Button_1 = require("../Button");
9
+ const Icon_1 = require("../Icon");
10
+ const mediaViewerGestures_1 = require("./mediaViewerGestures");
11
+ require("./MediaViewer.css");
12
+ const defaultCounterLabel = (index, total) => `${index + 1} / ${total}`;
13
+ /** Fallback when `transitionend` does not fire (e.g. the element unmounted). */
14
+ const SETTLE_FALLBACK_MS = 400;
15
+ function prefersReducedMotion() {
16
+ return (typeof window !== 'undefined' &&
17
+ window.matchMedia?.('(prefers-reduced-motion: reduce)').matches === true);
18
+ }
19
+ /**
20
+ * MediaViewer Component
21
+ *
22
+ * Full-screen viewer that shows a list of images one at a time.
23
+ *
24
+ * - **Touch:** swipe sideways to page; the image follows the finger and snaps
25
+ * to the next or previous image past a quarter of the width or on a flick.
26
+ * It doesn't move past the first or last image. Swipe down to close.
27
+ * - **Desktop:** previous/next buttons on hover or focus, and ← / →.
28
+ * - **Close:** the close button, Escape, or swiping down. A tap on the dark
29
+ * stage does not close it, so a mis-aimed tap can't swallow an action.
30
+ * - **Saving:** a long press on the image opens the OS menu (save, share,
31
+ * copy), so the viewer needs no download or share button of its own.
32
+ * - **Slots:** `caption`, `meta` (a `Badge`) and `actions` (buttons) render
33
+ * under the image for the current `index`.
34
+ * - **Pagination:** `onEndReached` fires near the end so more items can be
35
+ * appended; appending does not move the current image.
36
+ *
37
+ * The images either side of the current one are rendered (and so preloaded).
38
+ *
39
+ * @accessibility
40
+ * - Native modal `<dialog>`: focus is trapped and returns to the opener
41
+ * - The track is a carousel; each image is a labelled slide
42
+ * - The counter is announced in a polite live region
43
+ * - With reduced motion, images swap without the slide
44
+ *
45
+ * Tokens used: color-black-alpha-12, color-surface-level3,
46
+ * color-text-default-default, color-text-subtle-default, spacing-*,
47
+ * motion-duration-component, motion-easing-default, motion-easing-enter.
48
+ */
49
+ const MediaViewer = ({ open, items, index, onIndexChange, onClose, caption, meta, actions, onEndReached, endReachedThreshold = 3, counterLabel = defaultCounterLabel, closeLabel = 'Close', previousLabel = 'Previous', nextLabel = 'Next', 'aria-label': ariaLabel = 'Media viewer', className = '', }) => {
50
+ const dialogRef = (0, react_1.useRef)(null);
51
+ const stageRef = (0, react_1.useRef)(null);
52
+ const openerRef = (0, react_1.useRef)(null);
53
+ const total = items.length;
54
+ const hasPrevious = index > 0;
55
+ const hasNext = index < total - 1;
56
+ // Horizontal drag (px), vertical drag (px), and the slide shift (in slide
57
+ // widths) while a page change animates: -1 towards next, 1 towards previous.
58
+ const [dragX, setDragX] = (0, react_1.useState)(0);
59
+ const [dragY, setDragY] = (0, react_1.useState)(0);
60
+ const [dragging, setDragging] = (0, react_1.useState)(false);
61
+ const [shift, setShift] = (0, react_1.useState)(0);
62
+ const dragRef = (0, react_1.useRef)(null);
63
+ const pendingRef = (0, react_1.useRef)(null);
64
+ // ─── Open / close the native dialog ─────────────────
65
+ (0, react_1.useLayoutEffect)(() => {
66
+ const dialog = dialogRef.current;
67
+ if (!open || !dialog)
68
+ return;
69
+ const active = document.activeElement;
70
+ openerRef.current =
71
+ active instanceof HTMLElement && active !== document.body ? active : null;
72
+ if (!dialog.open)
73
+ dialog.showModal();
74
+ // A modal <dialog> does not stop the page behind it from scrolling.
75
+ const root = document.documentElement;
76
+ const previousOverflow = root.style.overflow;
77
+ root.style.overflow = 'hidden';
78
+ return () => {
79
+ root.style.overflow = previousOverflow;
80
+ if (dialog.open)
81
+ dialog.close();
82
+ const opener = openerRef.current;
83
+ openerRef.current = null;
84
+ if (opener?.isConnected)
85
+ opener.focus({ preventScroll: true });
86
+ };
87
+ }, [open]);
88
+ // Escape: the native `cancel` event. Keep the viewer controlled.
89
+ (0, react_1.useEffect)(() => {
90
+ const dialog = dialogRef.current;
91
+ if (!open || !dialog)
92
+ return;
93
+ const handleCancel = (e) => {
94
+ e.preventDefault();
95
+ onClose();
96
+ };
97
+ dialog.addEventListener('cancel', handleCancel);
98
+ return () => dialog.removeEventListener('cancel', handleCancel);
99
+ }, [open, onClose]);
100
+ // ─── Page changes ───────────────────────────────────
101
+ const commit = (0, react_1.useCallback)(() => {
102
+ const pending = pendingRef.current;
103
+ if (!pending)
104
+ return;
105
+ pendingRef.current = null;
106
+ window.clearTimeout(pending.timer);
107
+ setShift(0);
108
+ onIndexChange(pending.target);
109
+ }, [onIndexChange]);
110
+ /** Page by `direction` (1 = next, -1 = previous), animated unless reduced. */
111
+ const go = (0, react_1.useCallback)((direction) => {
112
+ if (pendingRef.current)
113
+ return;
114
+ const target = index + direction;
115
+ if (target < 0 || target >= total)
116
+ return;
117
+ if (prefersReducedMotion()) {
118
+ setDragX(0);
119
+ onIndexChange(target);
120
+ return;
121
+ }
122
+ setDragX(0);
123
+ setShift(-direction);
124
+ pendingRef.current = {
125
+ target,
126
+ timer: window.setTimeout(commit, SETTLE_FALLBACK_MS),
127
+ };
128
+ }, [index, total, onIndexChange, commit]);
129
+ // A new index from outside (or our own commit) cancels a pending animation.
130
+ (0, react_1.useEffect)(() => {
131
+ const pending = pendingRef.current;
132
+ if (pending && pending.target !== index) {
133
+ window.clearTimeout(pending.timer);
134
+ pendingRef.current = null;
135
+ }
136
+ setShift(0);
137
+ setDragX(0);
138
+ }, [index]);
139
+ (0, react_1.useEffect)(() => () => {
140
+ if (pendingRef.current)
141
+ window.clearTimeout(pendingRef.current.timer);
142
+ }, []);
143
+ // ─── Pagination ─────────────────────────────────────
144
+ const endReportedForRef = (0, react_1.useRef)(null);
145
+ (0, react_1.useEffect)(() => {
146
+ if (!open || !onEndReached || total === 0)
147
+ return;
148
+ if (total - 1 - index > endReachedThreshold)
149
+ return;
150
+ if (endReportedForRef.current === total)
151
+ return;
152
+ endReportedForRef.current = total;
153
+ onEndReached();
154
+ }, [open, index, total, endReachedThreshold, onEndReached]);
155
+ // ─── Keyboard ───────────────────────────────────────
156
+ const handleKeyDown = (e) => {
157
+ if (e.key === 'ArrowRight') {
158
+ e.preventDefault();
159
+ go(1);
160
+ }
161
+ else if (e.key === 'ArrowLeft') {
162
+ e.preventDefault();
163
+ go(-1);
164
+ }
165
+ };
166
+ // ─── Touch gestures ─────────────────────────────────
167
+ const handlePointerDown = (e) => {
168
+ // Desktop uses the buttons and arrow keys; a mouse drag would fight text
169
+ // selection and image dragging.
170
+ if (e.pointerType === 'mouse' || pendingRef.current)
171
+ return;
172
+ dragRef.current = {
173
+ pointerId: e.pointerId,
174
+ startX: e.clientX,
175
+ startY: e.clientY,
176
+ axis: null,
177
+ lastX: e.clientX,
178
+ lastY: e.clientY,
179
+ lastTime: e.timeStamp,
180
+ velocityX: 0,
181
+ velocityY: 0,
182
+ };
183
+ // Keep receiving moves when the finger leaves the stage. Capture throws
184
+ // when the pointer is already gone; the drag still works without it.
185
+ try {
186
+ e.currentTarget.setPointerCapture?.(e.pointerId);
187
+ }
188
+ catch {
189
+ // ignore
190
+ }
191
+ };
192
+ const handlePointerMove = (e) => {
193
+ const drag = dragRef.current;
194
+ if (!drag || drag.pointerId !== e.pointerId)
195
+ return;
196
+ const dt = e.timeStamp - drag.lastTime;
197
+ if (dt > 0) {
198
+ drag.velocityX = (e.clientX - drag.lastX) / dt;
199
+ drag.velocityY = (e.clientY - drag.lastY) / dt;
200
+ }
201
+ drag.lastX = e.clientX;
202
+ drag.lastY = e.clientY;
203
+ drag.lastTime = e.timeStamp;
204
+ const dx = e.clientX - drag.startX;
205
+ const dy = e.clientY - drag.startY;
206
+ if (!drag.axis) {
207
+ drag.axis = (0, mediaViewerGestures_1.lockAxis)(dx, dy);
208
+ if (!drag.axis)
209
+ return;
210
+ setDragging(true);
211
+ }
212
+ if (drag.axis === 'x') {
213
+ setDragX((0, mediaViewerGestures_1.clampDragX)(dx, hasPrevious, hasNext));
214
+ }
215
+ else {
216
+ setDragY(Math.max(0, dy));
217
+ }
218
+ };
219
+ const endDrag = (e, cancelled) => {
220
+ const drag = dragRef.current;
221
+ if (!drag || drag.pointerId !== e.pointerId)
222
+ return;
223
+ dragRef.current = null;
224
+ setDragging(false);
225
+ if (drag.axis === 'x') {
226
+ const dx = (0, mediaViewerGestures_1.clampDragX)(e.clientX - drag.startX, hasPrevious, hasNext);
227
+ const width = stageRef.current?.clientWidth ?? 0;
228
+ const direction = cancelled ? 0 : (0, mediaViewerGestures_1.resolveSwipe)(dx, drag.velocityX, width);
229
+ if (direction === 0) {
230
+ setDragX(0);
231
+ }
232
+ else {
233
+ go(direction);
234
+ }
235
+ }
236
+ else if (drag.axis === 'y') {
237
+ const dy = Math.max(0, e.clientY - drag.startY);
238
+ setDragY(0);
239
+ if (!cancelled && (0, mediaViewerGestures_1.resolveDismiss)(dy, drag.velocityY))
240
+ onClose();
241
+ }
242
+ };
243
+ if (!open)
244
+ return null;
245
+ const counter = total > 0 ? counterLabel(Math.min(index, total - 1), total) : '';
246
+ const hasFooter = Boolean(caption || meta || actions);
247
+ const classes = [
248
+ 'muka-media-viewer',
249
+ dragging && 'muka-media-viewer--dragging',
250
+ className,
251
+ ]
252
+ .filter(Boolean)
253
+ .join(' ');
254
+ // Fade the stage as it is dragged down, so the dismiss reads as "away".
255
+ const dismissProgress = Math.min(1, dragY / 400);
256
+ const slides = [];
257
+ for (const offset of [-1, 0, 1]) {
258
+ const itemIndex = index + offset;
259
+ const item = items[itemIndex];
260
+ if (!item)
261
+ continue;
262
+ slides.push((0, jsx_runtime_1.jsx)("div", { className: "muka-media-viewer__slide", role: "group", "aria-roledescription": "slide", "aria-label": counterLabel(itemIndex, total), "aria-hidden": offset !== 0, style: {
263
+ transform: `translate3d(calc(${(offset + shift) * 100}% + ${dragX}px), ${dragY}px, 0)`,
264
+ }, onTransitionEnd: offset !== 0 && shift !== 0 ? commit : undefined, children: (0, jsx_runtime_1.jsx)("img", { className: "muka-media-viewer__image", src: item.src, alt: item.alt ?? '', draggable: false, decoding: "async" }) }, item.id ?? `index-${itemIndex}`));
265
+ }
266
+ return (
267
+ // Native <dialog> handles Escape (via `cancel`); arrow keys page.
268
+ (0, jsx_runtime_1.jsxs)("dialog", { ref: dialogRef, className: classes, "aria-label": ariaLabel, onKeyDown: handleKeyDown, children: [(0, jsx_runtime_1.jsx)(TopBar_1.TopBar, { className: "muka-media-viewer__topbar", title: counter, trailing: (0, jsx_runtime_1.jsx)(Button_1.Button, { variant: "ghost", size: "md", iconOnly: true, "aria-label": closeLabel, onClick: onClose, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "close", variant: "line" }) }) }), (0, jsx_runtime_1.jsx)("span", { className: "muka-media-viewer__live", "aria-live": "polite", "aria-atomic": "true", children: counter }), (0, jsx_runtime_1.jsxs)("div", { ref: stageRef, className: "muka-media-viewer__stage", role: "region", "aria-roledescription": "carousel", "aria-label": ariaLabel, style: dismissProgress > 0 ? { opacity: 1 - dismissProgress * 0.6 } : undefined, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: (e) => endDrag(e, false), onPointerCancel: (e) => endDrag(e, true), children: [slides, hasPrevious && ((0, jsx_runtime_1.jsx)("div", { className: "muka-media-viewer__nav muka-media-viewer__nav--previous", children: (0, jsx_runtime_1.jsx)(Button_1.Button, { variant: "secondary", size: "md", iconOnly: true, "aria-label": previousLabel, onClick: () => go(-1), children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "arrow-left-s", variant: "line" }) }) })), hasNext && ((0, jsx_runtime_1.jsx)("div", { className: "muka-media-viewer__nav muka-media-viewer__nav--next", children: (0, jsx_runtime_1.jsx)(Button_1.Button, { variant: "secondary", size: "md", iconOnly: true, "aria-label": nextLabel, onClick: () => go(1), children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "arrow-right-s", variant: "line" }) }) }))] }), hasFooter && ((0, jsx_runtime_1.jsxs)("div", { className: "muka-media-viewer__footer", children: [(caption || meta) && ((0, jsx_runtime_1.jsxs)("div", { className: "muka-media-viewer__details", children: [caption && (0, jsx_runtime_1.jsx)("div", { className: "muka-media-viewer__caption", children: caption }), meta && (0, jsx_runtime_1.jsx)("div", { className: "muka-media-viewer__meta", children: meta })] })), actions && (0, jsx_runtime_1.jsx)("div", { className: "muka-media-viewer__actions", children: actions })] }))] }));
269
+ };
270
+ exports.MediaViewer = MediaViewer;
271
+ exports.MediaViewer.displayName = 'MediaViewer';
272
+ exports.default = exports.MediaViewer;
273
+ //# sourceMappingURL=MediaViewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaViewer.js","sourceRoot":"","sources":["../../../../components/MediaViewer/MediaViewer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaViewer = void 0;
4
+ var MediaViewer_1 = require("./MediaViewer");
5
+ Object.defineProperty(exports, "MediaViewer", { enumerable: true, get: function () { return MediaViewer_1.MediaViewer; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/MediaViewer/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyF;AAAhF,0GAAA,WAAW,OAAA"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * Pure gesture maths for `MediaViewer`, kept out of the component so the
4
+ * swipe and dismiss decisions are unit-testable without pointer events.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DISMISS_VELOCITY = exports.DISMISS_DISTANCE = exports.FLICK_MIN_DISTANCE = exports.SWIPE_VELOCITY = exports.SWIPE_DISTANCE_RATIO = exports.AXIS_LOCK_DISTANCE = void 0;
8
+ exports.lockAxis = lockAxis;
9
+ exports.clampDragX = clampDragX;
10
+ exports.resolveSwipe = resolveSwipe;
11
+ exports.resolveDismiss = resolveDismiss;
12
+ /** Movement (px) before a drag commits to an axis. */
13
+ exports.AXIS_LOCK_DISTANCE = 8;
14
+ /** Fraction of the stage width a slow horizontal drag must pass to page. */
15
+ exports.SWIPE_DISTANCE_RATIO = 0.25;
16
+ /** Velocity (px/ms) that pages even on a short horizontal flick. */
17
+ exports.SWIPE_VELOCITY = 0.5;
18
+ /** Minimum distance (px) a flick must travel to count. */
19
+ exports.FLICK_MIN_DISTANCE = 20;
20
+ /** Downward distance (px) that dismisses on a slow drag. */
21
+ exports.DISMISS_DISTANCE = 120;
22
+ /** Downward velocity (px/ms) that dismisses on a short flick. */
23
+ exports.DISMISS_VELOCITY = 0.5;
24
+ /**
25
+ * Decide which axis a drag belongs to, or null while it is still within the
26
+ * lock distance. Horizontal wins ties so a diagonal flick still pages.
27
+ */
28
+ function lockAxis(dx, dy) {
29
+ if (Math.max(Math.abs(dx), Math.abs(dy)) < exports.AXIS_LOCK_DISTANCE)
30
+ return null;
31
+ return Math.abs(dx) >= Math.abs(dy) ? 'x' : 'y';
32
+ }
33
+ /**
34
+ * Clamp a horizontal drag so it cannot move past the first or last item:
35
+ * there is nothing to reveal there, so the image stays put (no rubber band).
36
+ */
37
+ function clampDragX(dx, hasPrevious, hasNext) {
38
+ if (dx > 0 && !hasPrevious)
39
+ return 0;
40
+ if (dx < 0 && !hasNext)
41
+ return 0;
42
+ return dx;
43
+ }
44
+ /**
45
+ * Where a released horizontal drag goes: `1` to the next item, `-1` to the
46
+ * previous one, `0` back to the current one. `dx` is already clamped.
47
+ */
48
+ function resolveSwipe(dx, velocityX, stageWidth) {
49
+ const far = stageWidth > 0 && Math.abs(dx) >= stageWidth * exports.SWIPE_DISTANCE_RATIO;
50
+ const flick = Math.abs(velocityX) >= exports.SWIPE_VELOCITY &&
51
+ Math.abs(dx) >= exports.FLICK_MIN_DISTANCE &&
52
+ Math.sign(velocityX) === Math.sign(dx);
53
+ if (!far && !flick)
54
+ return 0;
55
+ return dx < 0 ? 1 : -1;
56
+ }
57
+ /** Whether a released downward drag dismisses the viewer. */
58
+ function resolveDismiss(dy, velocityY) {
59
+ if (dy <= 0)
60
+ return false;
61
+ if (dy >= exports.DISMISS_DISTANCE)
62
+ return true;
63
+ return velocityY >= exports.DISMISS_VELOCITY && dy >= exports.FLICK_MIN_DISTANCE;
64
+ }
65
+ //# sourceMappingURL=mediaViewerGestures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaViewerGestures.js","sourceRoot":"","sources":["../../../../components/MediaViewer/mediaViewerGestures.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA0BH,4BAGC;AAMD,gCAIC;AAMD,oCAQC;AAGD,wCAIC;AA1DD,sDAAsD;AACzC,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC,4EAA4E;AAC/D,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAEzC,oEAAoE;AACvD,QAAA,cAAc,GAAG,GAAG,CAAC;AAElC,0DAA0D;AAC7C,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC,4DAA4D;AAC/C,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC,iEAAiE;AACpD,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAIpC;;;GAGG;AACH,SAAgB,QAAQ,CAAC,EAAU,EAAE,EAAU;IAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,0BAAkB;QAAE,OAAO,IAAI,CAAC;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,EAAU,EAAE,WAAoB,EAAE,OAAgB;IAC3E,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,EAAU,EAAE,SAAiB,EAAE,UAAkB;IAC5E,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,GAAG,4BAAoB,CAAC;IAChF,MAAM,KAAK,GACT,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,sBAAc;QACrC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,0BAAkB;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,6DAA6D;AAC7D,SAAgB,cAAc,CAAC,EAAU,EAAE,SAAiB;IAC1D,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,EAAE,IAAI,wBAAgB;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,SAAS,IAAI,wBAAgB,IAAI,EAAE,IAAI,0BAAkB,CAAC;AACnE,CAAC"}
@@ -33,6 +33,17 @@
33
33
  height: 120px;
34
34
  }
35
35
 
36
+ /* Fluid: fill the parent's width; the shape sets the height via aspect-ratio. */
37
+ .muka-thumbnail--fluid {
38
+ width: 100%;
39
+ height: auto;
40
+ aspect-ratio: 1 / 1;
41
+ }
42
+
43
+ .muka-thumbnail--fluid.muka-thumbnail--4-3 {
44
+ aspect-ratio: 4 / 3;
45
+ }
46
+
36
47
  .muka-thumbnail--ellipse .muka-thumbnail__frame {
37
48
  border-radius: var(--border-radius-full);
38
49
  }
@@ -22,12 +22,15 @@ require("./Thumbnail.css");
22
22
  * and clicking activates `onClick` (e.g. to enlarge in a dialog).
23
23
  * - **removable** — a tertiary × button in the top-right corner calls
24
24
  * `onRemove` to delete the photo.
25
+ * - **fluid** — fills its parent's width at the shape's aspect ratio, for
26
+ * responsive grids; **lazy** defers loading the image until it nears the
27
+ * viewport.
25
28
  *
26
29
  * Tokens used: border-radius-lg, color-black-alpha-3, dialog-color-backdrop,
27
30
  * button-color-tertiary-*, alias-color-state-error-*, alert-color-error-accent,
28
31
  * motion-duration-micro, motion-easing-enter.
29
32
  */
30
- exports.Thumbnail = (0, react_1.forwardRef)(({ src, alt = '', shape = '4:3', loading = false, progress = 0, processing = false, error = false, caption, errorReason, onRemove, onClick, removeLabel = 'Remove photo', viewLabel = 'View photo', className = '', ...props }, ref) => {
33
+ exports.Thumbnail = (0, react_1.forwardRef)(({ src, alt = '', shape = '4:3', fluid = false, lazy = false, imgProps, loading = false, progress = 0, processing = false, error = false, caption, errorReason, onRemove, onClick, removeLabel = 'Remove photo', viewLabel = 'View photo', className = '', ...props }, ref) => {
31
34
  const isBusy = loading || processing;
32
35
  const isInteractive = !isBusy && !error && Boolean(onClick);
33
36
  const showRemove = !isBusy && Boolean(onRemove);
@@ -35,6 +38,7 @@ exports.Thumbnail = (0, react_1.forwardRef)(({ src, alt = '', shape = '4:3', loa
35
38
  'muka-thumbnail',
36
39
  // '4:3' → '--4-3', '1:1' → '--1-1', 'ellipse' → '--ellipse'
37
40
  `muka-thumbnail--${shape.replace(':', '-')}`,
41
+ fluid && 'muka-thumbnail--fluid',
38
42
  loading && 'muka-thumbnail--loading',
39
43
  processing && 'muka-thumbnail--processing',
40
44
  error && 'muka-thumbnail--error',
@@ -43,7 +47,7 @@ exports.Thumbnail = (0, react_1.forwardRef)(({ src, alt = '', shape = '4:3', loa
43
47
  ]
44
48
  .filter(Boolean)
45
49
  .join(' ');
46
- const image = (0, jsx_runtime_1.jsx)("img", { className: "muka-thumbnail__image", src: src, alt: alt });
50
+ const image = ((0, jsx_runtime_1.jsx)("img", { ...(lazy && { loading: 'lazy' }), decoding: "async", ...imgProps, className: "muka-thumbnail__image", src: src, alt: alt }));
47
51
  const removeButton = showRemove ? ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "muka-thumbnail__remove", onClick: onRemove, "aria-label": removeLabel, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "close", variant: "line", size: "xs" }) })) : null;
48
52
  // The frame owns the shape's clip (border-radius + overflow), so the remove
49
53
  // button — a sibling of the frame — is never clipped, even for the circle.
@@ -1 +1 @@
1
- {"version":3,"file":"Thumbnail.js","sourceRoot":"","sources":["../../../../components/Thumbnail/Thumbnail.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Thumbnail.js","sourceRoot":"","sources":["../../../../components/Thumbnail/Thumbnail.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Table = exports.RangeSlider = exports.DataPieChart = exports.PieChart = exports.Progress = exports.ProfileBadge = exports.AvatarGroup = exports.Avatar = exports.BadgeNumber = exports.Badge = exports.Container = exports.Section = exports.NavigationTransition = exports.AppShell = exports.View = exports.Dialog = exports.BottomBarTab = exports.BottomBar = exports.ControlBar = exports.TopBar = exports.ProgressAccordeon = exports.ProgressTracker = exports.EmptyState = exports.Toast = exports.Alert = exports.RadioTile = exports.CheckboxTile = exports.Toggle = exports.Checkbox = exports.Radio = exports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = exports.DropdownSelect = exports.Select = exports.Divider = exports.Chip = exports.listRegisteredIcons = exports.registerIcon = exports.Icon = exports.Label = exports.Card = exports.InputCounter = exports.NumberInput = exports.useForm = exports.Form = exports.Input = exports.ListItem = exports.Button = void 0;
4
4
  exports.Sheet = exports.AccordionContent = exports.AccordionTrigger = exports.AccordionItem = exports.Accordion = exports.PopoverClose = exports.PopoverTrigger = exports.PopoverRoot = exports.PopoverContent = exports.Popover = exports.Tooltip = exports.Drawer = exports.Pagination = exports.Breadcrumb = exports.Skeleton = exports.Textarea = exports.Scrollbar = exports.ContextSelect = exports.useMenuSearch = exports.highlightMenuMatch = exports.MenuSubContent = exports.MenuSubTrigger = exports.MenuSub = exports.MenuRadioItem = exports.MenuRadioGroup = exports.MenuCheckboxItem = exports.MenuGroup = exports.MenuSeparator = exports.MenuItem = exports.MenuSearch = exports.MenuContent = exports.MenuTrigger = exports.DropdownMenu = exports.Menu = exports.FileUploadItem = exports.FileUpload = exports.SmsOtpField = exports.DocumentViewer = exports.Tile = exports.PriceTag = exports.SegmentGroup = exports.DatePicker = exports.DataTable = exports.useTableSelection = exports.TablePagination = exports.TableHeaderCell = exports.TableCell = exports.TableRow = exports.TableBody = exports.TableHead = void 0;
5
- exports.TextLink = exports.PhotoUploader = exports.Thumbnail = exports.SocialSignInButton = exports.LicensePlateInput = exports.PullToRefresh = exports.SwipeActions = exports.Autocomplete = exports.Combobox = exports.ChatAttachmentChip = exports.TypingIndicator = exports.AgentTaskList = exports.DEFAULT_EMOJI = exports.EmojiPicker = exports.PhotoDraftStrip = exports.VOICE_PEAK_COUNT = exports.isVoiceRecordingSupported = exports.formatClock = exports.downsamplePeaks = exports.useVoiceRecorder = exports.VoiceMessage = exports.RecordingBar = exports.Waveform = exports.ChatComposer = exports.ChatPhotoGrid = exports.ChatMessageList = exports.ChatMessageStack = exports.ChatMessage = exports.SearchInput = exports.ActionSheet = exports.FAB = exports.SpecRow = exports.SpecList = exports.Spinner = void 0;
5
+ exports.TextLink = exports.PhotoUploader = exports.MediaViewer = exports.Thumbnail = exports.SocialSignInButton = exports.LicensePlateInput = exports.PullToRefresh = exports.SwipeActions = exports.Autocomplete = exports.Combobox = exports.ChatAttachmentChip = exports.TypingIndicator = exports.AgentTaskList = exports.DEFAULT_EMOJI = exports.EmojiPicker = exports.PhotoDraftStrip = exports.VOICE_PEAK_COUNT = exports.isVoiceRecordingSupported = exports.formatClock = exports.downsamplePeaks = exports.useVoiceRecorder = exports.VoiceMessage = exports.RecordingBar = exports.Waveform = exports.ChatComposer = exports.ChatPhotoGrid = exports.ChatMessageList = exports.ChatMessageStack = exports.ChatMessage = exports.SearchInput = exports.ActionSheet = exports.FAB = exports.SpecRow = exports.SpecList = exports.Spinner = void 0;
6
6
  // Muka Design System Components
7
7
  var Button_1 = require("./Button");
8
8
  Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return Button_1.Button; } });
@@ -224,6 +224,8 @@ var SocialSignInButton_1 = require("./SocialSignInButton");
224
224
  Object.defineProperty(exports, "SocialSignInButton", { enumerable: true, get: function () { return SocialSignInButton_1.SocialSignInButton; } });
225
225
  var Thumbnail_1 = require("./Thumbnail");
226
226
  Object.defineProperty(exports, "Thumbnail", { enumerable: true, get: function () { return Thumbnail_1.Thumbnail; } });
227
+ var MediaViewer_1 = require("./MediaViewer");
228
+ Object.defineProperty(exports, "MediaViewer", { enumerable: true, get: function () { return MediaViewer_1.MediaViewer; } });
227
229
  var PhotoUploader_1 = require("./PhotoUploader");
228
230
  Object.defineProperty(exports, "PhotoUploader", { enumerable: true, get: function () { return PhotoUploader_1.PhotoUploader; } });
229
231
  var TextLink_1 = require("./TextLink");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":";;;;;AAAA,gCAAgC;AAChC,mCAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,iCAAiD;AAAxC,8FAAA,KAAK,OAAA;AACd,+BASgB;AARd,4FAAA,IAAI,OAAA;AAEJ,+FAAA,OAAO,OAAA;AAOT,6CAAmE;AAA1D,0GAAA,WAAW,OAAA;AACpB,+CAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,iCAAiD;AAAxC,8FAAA,KAAK,OAAA;AACd,+BASgB;AARd,4FAAA,IAAI,OAAA;AAKJ,oGAAA,YAAY,OAAA;AACZ,2GAAA,mBAAmB,OAAA;AAGrB,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,qCAAuD;AAA9C,kGAAA,OAAO,OAAA;AAChB,mCAAuE;AAA9D,gGAAA,MAAM,OAAA;AACf,mDAI0B;AAHxB,gHAAA,cAAc,OAAA;AAIhB,+BAAsD;AAA7C,4FAAA,IAAI,OAAA;AAAE,+FAAA,OAAO,OAAA;AAAE,2FAAA,GAAG,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAErC,iCAAiD;AAAxC,8FAAA,KAAK,OAAA;AACd,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,mCAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,+CAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,yCAA6D;AAApD,sGAAA,SAAS,OAAA;AAClB,iCAAiD;AAAxC,8FAAA,KAAK,OAAA;AACd,iCAAiD;AAAxC,8FAAA,KAAK,OAAA;AACd,2CAAgE;AAAvD,wGAAA,UAAU,OAAA;AACnB,qDAAyG;AAAhG,kHAAA,eAAe,OAAA;AACxB,yDAK6B;AAJ3B,sHAAA,iBAAiB,OAAA;AAKnB,mCAAsF;AAA7E,gGAAA,MAAM,OAAA;AAAoB,oGAAA,UAAU,OAAA;AAC7C,yCAAmG;AAA1F,sGAAA,SAAS,OAAA;AAAE,yGAAA,YAAY,OAAA;AAChC,mCAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,+DAA8F;AAArF,4HAAA,oBAAoB,OAAA;AAC7B,qCAAuD;AAA9C,kGAAA,OAAO,OAAA;AAChB,yCAA6D;AAApD,sGAAA,SAAS,OAAA;AAClB,iCAAiD;AAAxC,8FAAA,KAAK,OAAA;AACd,6CAAmE;AAA1D,0GAAA,WAAW,OAAA;AACpB,mCAAyG;AAAhG,gGAAA,MAAM,OAAA;AAAE,qGAAA,WAAW,OAAA;AAC5B,+CAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,uCAAgF;AAAvE,oGAAA,QAAQ,OAAA;AACjB,+CAA6F;AAApF,4GAAA,YAAY,OAAA;AACrB,6CAAmE;AAA1D,0GAAA,WAAW,OAAA;AACpB,iCAmBiB;AAlBf,8FAAA,KAAK,OAAA;AACL,kGAAA,SAAS,OAAA;AACT,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,wGAAA,eAAe,OAAA;AACf,wGAAA,eAAe,OAAA;AACf,0GAAA,iBAAiB,OAAA;AAYnB,yCAMqB;AALnB,sGAAA,SAAS,OAAA;AAMX,2CAAgE;AAAvD,wGAAA,UAAU,OAAA;AACnB,+CAA0F;AAAjF,4GAAA,YAAY,OAAA;AACrB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,mDAAmG;AAA1F,gHAAA,cAAc,OAAA;AACvB,6CAAmE;AAA1D,0GAAA,WAAW,OAAA;AACpB,2CAQsB;AAPpB,wGAAA,UAAU,OAAA;AACV,4GAAA,cAAc,OAAA;AAOhB,+BAiBgB;AAhBd,4FAAA,IAAI,OAAA;AACJ,oGAAA,YAAY,OAAA;AACZ,mGAAA,WAAW,OAAA;AACX,mGAAA,WAAW,OAAA;AACX,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,qGAAA,aAAa,OAAA;AACb,iGAAA,SAAS,OAAA;AACT,wGAAA,gBAAgB,OAAA;AAChB,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,+FAAA,OAAO,OAAA;AACP,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,0GAAA,kBAAkB,OAAA;AAClB,qGAAA,aAAa,OAAA;AAkBf,iDAIyB;AAHvB,8GAAA,aAAa,OAAA;AAIf,yCAA6D;AAApD,sGAAA,SAAS,OAAA;AAElB,8EAA8E;AAC9E,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,2CAAqF;AAA5E,wGAAA,UAAU,OAAA;AACnB,2CAAgE;AAAvD,wGAAA,UAAU,OAAA;AACnB,mCAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,qCAAuD;AAA9C,kGAAA,OAAO,OAAA;AAChB,qCAQmB;AAPjB,kGAAA,OAAO,OAAA;AACP,yGAAA,cAAc,OAAA;AACd,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,uGAAA,YAAY,OAAA;AAId,yCAKqB;AAJnB,sGAAA,SAAS,OAAA;AACT,0GAAA,aAAa,OAAA;AACb,6GAAA,gBAAgB,OAAA;AAChB,6GAAA,gBAAgB,OAAA;AAElB,iCAAiD;AAAxC,8FAAA,KAAK,OAAA;AACd,qCAAuD;AAA9C,kGAAA,OAAO,OAAA;AAChB,uCAAsF;AAA7E,oGAAA,QAAQ,OAAA;AAAE,mGAAA,OAAO,OAAA;AAC1B,6BAA2C;AAAlC,0FAAA,GAAG,OAAA;AACZ,6CAIuB;AAHrB,0GAAA,WAAW,OAAA;AAIb,6CAAmE;AAA1D,0GAAA,WAAW,OAAA;AACpB,6CAKuB;AAJrB,0GAAA,WAAW,OAAA;AAKb,uDAAkF;AAAzE,oHAAA,gBAAgB,OAAA;AACzB,qDAA+E;AAAtE,kHAAA,eAAe,OAAA;AACxB,iDAIyB;AAHvB,8GAAA,aAAa,OAAA;AAIf,+CAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,+CAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,+CAIwB;AAHtB,4GAAA,YAAY,OAAA;AAId,iDASyB;AARvB,iHAAA,gBAAgB,OAAA;AAIhB,gHAAA,eAAe,OAAA;AACf,4GAAA,WAAW,OAAA;AACX,0HAAA,yBAAyB,OAAA;AACzB,iHAAA,gBAAgB,OAAA;AAElB,qDAI2B;AAHzB,kHAAA,eAAe,OAAA;AAIjB,6CAIuB;AAHrB,0GAAA,WAAW,OAAA;AAEX,4GAAA,aAAa,OAAA;AAEf,iDAIyB;AAHvB,8GAAA,aAAa,OAAA;AAIf,qDAA+E;AAAtE,kHAAA,eAAe,OAAA;AACxB,2DAG8B;AAF5B,wHAAA,kBAAkB,OAAA;AAGpB,uCAIoB;AAHlB,oGAAA,QAAQ,OAAA;AAIV,+CAKwB;AAJtB,4GAAA,YAAY,OAAA;AAKd,+CAIwB;AAHtB,4GAAA,YAAY,OAAA;AAId,iDAAyE;AAAhE,8GAAA,aAAa,OAAA;AACtB,yDAG6B;AAF3B,sHAAA,iBAAiB,OAAA;AAGnB,2DAO8B;AAN5B,wHAAA,kBAAkB,OAAA;AAapB,yCAA6D;AAApD,sGAAA,SAAS,OAAA;AAClB,6CAIuB;AAHrB,0GAAA,WAAW,OAAA;AAIb,iDAGyB;AAFvB,8GAAA,aAAa,OAAA;AAGf,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA"}
@@ -24,7 +24,10 @@
24
24
  fill: none;
25
25
  /* Subtle lift on the filled segment, matching the Figma elevation */
26
26
  filter: drop-shadow(0 2px 4px var(--color-black-alpha-5, rgba(0, 0, 0, 0.05)));
27
- transition: stroke-dasharray 0.3s ease;
27
+ /* Butt caps keep the always-rendered 0% arc invisible (round caps would draw a dot) */
28
+ stroke-linecap: butt;
29
+ /* view duration (300ms) reads at the 24px size; tokens zero it for reduced motion */
30
+ transition: stroke-dasharray var(--motion-duration-view) var(--motion-easing-default);
28
31
  }
29
32
 
30
33
  /* ─── Indeterminate (spinner) ─────────────────────────── */
@@ -49,7 +49,7 @@ export const DataPieChart = ({ value, max = 100, variant = 'donut', size: sizePr
49
49
  background: `conic-gradient(from 0deg, ${trackColor} 0deg, ${resolvedColor} 340deg, ${resolvedColor} 360deg)`,
50
50
  } })] }));
51
51
  }
52
- return (_jsxs("div", { className: chartClasses, style: { width: size, height: size }, role: "img", "aria-label": label, ...props, children: [_jsxs("svg", { className: "muka-data-pie-chart__svg", viewBox: "0 0 100 100", "aria-hidden": "true", children: [_jsx("circle", { className: "muka-data-pie-chart__track", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: trackColor }), fraction > 0 && (_jsx("circle", { className: "muka-data-pie-chart__segment", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: resolvedColor, strokeDasharray: `${arcLength} ${circumference - arcLength}`, strokeDashoffset: 0 }))] }), showValue && variant === 'donut' && (_jsxs("span", { className: "muka-data-pie-chart__value", "aria-hidden": "true", children: [percent, "%"] }))] }));
52
+ return (_jsxs("div", { className: chartClasses, style: { width: size, height: size }, role: "img", "aria-label": label, ...props, children: [_jsxs("svg", { className: "muka-data-pie-chart__svg", viewBox: "0 0 100 100", "aria-hidden": "true", children: [_jsx("circle", { className: "muka-data-pie-chart__track", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: trackColor }), _jsx("circle", { className: "muka-data-pie-chart__segment", cx: 50, cy: 50, r: radius, strokeWidth: strokeWidth, stroke: resolvedColor, strokeDasharray: `${arcLength} ${circumference - arcLength}`, strokeDashoffset: 0 })] }), showValue && variant === 'donut' && (_jsxs("span", { className: "muka-data-pie-chart__value", "aria-hidden": "true", children: [percent, "%"] }))] }));
53
53
  };
54
54
  export default DataPieChart;
55
55
  //# sourceMappingURL=DataPieChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataPieChart.js","sourceRoot":"","sources":["../../../../components/DataPieChart/DataPieChart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataPieChart.js","sourceRoot":"","sources":["../../../../components/DataPieChart/DataPieChart.tsx"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@
38
38
  height: 100%;
39
39
  max-width: 100vw;
40
40
  max-height: 100vh;
41
+ max-height: 100dvh;
41
42
  margin: 0;
42
43
  display: flex;
43
44
  flex-direction: column;
@@ -72,6 +73,8 @@
72
73
 
73
74
  .muka-dialog--lg .muka-dialog__surface {
74
75
  height: calc(100vh - var(--dialog-margin-top-mobile));
76
+ /* dvh tracks the visible area as mobile toolbars show and hide */
77
+ height: calc(100dvh - var(--dialog-margin-top-mobile));
75
78
  }
76
79
 
77
80
  /* Body */