@teambit/compositions 1.0.994 → 1.0.996
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.
- package/composition.section.tsx +4 -1
- package/compositions.module.scss +63 -27
- package/compositions.tsx +178 -55
- package/compositions.ui.runtime.tsx +38 -6
- package/dist/composition.section.d.ts +3 -2
- package/dist/composition.section.js +3 -1
- package/dist/composition.section.js.map +1 -1
- package/dist/compositions.d.ts +9 -2
- package/dist/compositions.js +135 -56
- package/dist/compositions.js.map +1 -1
- package/dist/compositions.module.scss +63 -27
- package/dist/compositions.ui.runtime.d.ts +17 -5
- package/dist/compositions.ui.runtime.js +24 -5
- package/dist/compositions.ui.runtime.js.map +1 -1
- package/dist/{preview-1779298653501.js → preview-1779737067779.js} +2 -2
- package/dist/ui/compositions-panel/compositions-panel.d.ts +4 -1
- package/dist/ui/compositions-panel/compositions-panel.js +19 -2
- package/dist/ui/compositions-panel/compositions-panel.js.map +1 -1
- package/dist/ui/compositions-panel/compositions-panel.module.scss +13 -0
- package/dist/ui/compositions-panel/live-control-input.module.scss +6 -7
- package/dist/ui/compositions-panel/overlay.module.scss +4 -0
- package/package.json +20 -20
- package/ui/compositions-panel/compositions-panel.module.scss +13 -0
- package/ui/compositions-panel/compositions-panel.tsx +29 -0
- package/ui/compositions-panel/live-control-input.module.scss +6 -7
- package/ui/compositions-panel/overlay.module.scss +4 -0
package/dist/compositions.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { ComponentModel } from '@teambit/component';
|
|
3
|
-
import type { EmptyStateSlot, CompositionsMenuSlot, UsePreviewSandboxSlot } from './compositions.ui.runtime';
|
|
3
|
+
import type { EmptyStateSlot, CompositionsMenuSlot, UsePreviewSandboxSlot, UsePreviewPropsSlot } from './compositions.ui.runtime';
|
|
4
4
|
import type { Composition } from './composition';
|
|
5
5
|
import type { ComponentCompositionProps } from './ui/composition-preview';
|
|
6
6
|
export type MenuBarWidget = {
|
|
@@ -11,9 +11,16 @@ export type CompositionsProp = {
|
|
|
11
11
|
menuBarWidgets?: CompositionsMenuSlot;
|
|
12
12
|
emptyState?: EmptyStateSlot;
|
|
13
13
|
usePreviewSandboxSlot?: UsePreviewSandboxSlot;
|
|
14
|
+
/**
|
|
15
|
+
* per-component resolvers for iframe attributes on the composition preview (`allow`,
|
|
16
|
+
* `referrerPolicy`, ...). Each resolver gets the current `ComponentModel`; results merge
|
|
17
|
+
* with later registrations winning. Default `allow` (`clipboard-write`) lives on
|
|
18
|
+
* `ComponentPreview` and applies when no resolver overrides it.
|
|
19
|
+
*/
|
|
20
|
+
usePreviewPropsSlot?: UsePreviewPropsSlot;
|
|
14
21
|
enableLiveControls?: boolean;
|
|
15
22
|
};
|
|
16
|
-
export declare function Compositions({ menuBarWidgets, emptyState, usePreviewSandboxSlot, enableLiveControls, }: CompositionsProp): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function Compositions({ menuBarWidgets, emptyState, usePreviewSandboxSlot, usePreviewPropsSlot, enableLiveControls, }: CompositionsProp): import("react/jsx-runtime").JSX.Element;
|
|
17
24
|
export type CompositionContentProps = {
|
|
18
25
|
component: ComponentModel;
|
|
19
26
|
selected?: Composition;
|
package/dist/compositions.js
CHANGED
|
@@ -19,6 +19,13 @@ function _reactRouterDom() {
|
|
|
19
19
|
};
|
|
20
20
|
return data;
|
|
21
21
|
}
|
|
22
|
+
function _classnames() {
|
|
23
|
+
const data = _interopRequireDefault(require("classnames"));
|
|
24
|
+
_classnames = function () {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
22
29
|
function _lodash() {
|
|
23
30
|
const data = _interopRequireDefault(require("lodash.head"));
|
|
24
31
|
_lodash = function () {
|
|
@@ -232,9 +239,9 @@ function _useDefaultControlsSchemaResponder() {
|
|
|
232
239
|
const _excluded = ["component", "selected", "queryParams", "emptyState", "sandbox"];
|
|
233
240
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
234
241
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
235
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
236
242
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
237
243
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
244
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
238
245
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
239
246
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
240
247
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -246,6 +253,7 @@ function Compositions({
|
|
|
246
253
|
menuBarWidgets,
|
|
247
254
|
emptyState,
|
|
248
255
|
usePreviewSandboxSlot,
|
|
256
|
+
usePreviewPropsSlot,
|
|
249
257
|
enableLiveControls = true
|
|
250
258
|
}) {
|
|
251
259
|
const component = (0, _react().useContext)(_component().ComponentContext);
|
|
@@ -263,6 +271,7 @@ function Compositions({
|
|
|
263
271
|
(0, _useDefaultControlsSchemaResponder().useDefaultControlsSchemaResponder)(componentIdStr, enableLiveControls);
|
|
264
272
|
const properties = (0, _docsUiQueries().useDocs)(component.id);
|
|
265
273
|
const previewSandboxHooks = usePreviewSandboxSlot?.values() ?? [];
|
|
274
|
+
const previewPropsHooks = usePreviewPropsSlot?.values() ?? [];
|
|
266
275
|
const isMobile = (0, _uiFoundationUiHooks().useIsMobile)();
|
|
267
276
|
const showSidebar = !isMobile && component.compositions.length > 0;
|
|
268
277
|
const [isSidebarOpen, setSidebarOpenness] = (0, _react().useState)(showSidebar);
|
|
@@ -280,32 +289,55 @@ function Compositions({
|
|
|
280
289
|
fullscreen: true
|
|
281
290
|
});
|
|
282
291
|
const queryParams = (0, _react().useMemo)(() => _queryString().default.stringify(compositionParams), [compositionParams]);
|
|
283
|
-
|
|
292
|
+
|
|
293
|
+
// Tracks compositions the user has explicitly collapsed. Anything not in
|
|
294
|
+
// this set defaults to expanded, which gives us "auto-open on load" as a
|
|
295
|
+
// pure derivation rather than an effect.
|
|
296
|
+
const [collapsedCompositions, setCollapsedCompositions] = (0, _react().useState)(() => new Set());
|
|
284
297
|
const [isDraggingTray, setIsDraggingTray] = (0, _react().useState)(false);
|
|
285
298
|
const trayRef = (0, _react().useRef)(null);
|
|
286
|
-
|
|
299
|
+
// `null` = auto-size to content (default). Becomes a number once the user
|
|
300
|
+
// drag-resizes — only then do we pin a fixed height.
|
|
301
|
+
const [trayHeight, setTrayHeight] = (0, _react().useState)(null);
|
|
287
302
|
const {
|
|
288
303
|
ready,
|
|
289
304
|
defs,
|
|
290
305
|
values,
|
|
291
306
|
onChange
|
|
292
307
|
} = (0, _compositionsUi2().useLiveControls)();
|
|
293
|
-
const
|
|
308
|
+
const onResizeStripMouseDown = (0, _react().useCallback)(e => {
|
|
309
|
+
if (e.button !== 0) return;
|
|
294
310
|
e.preventDefault();
|
|
295
311
|
const startY = e.clientY;
|
|
296
|
-
|
|
312
|
+
// Seed the drag from the tray's current rendered height — handles the
|
|
313
|
+
// initial auto-sized case (where `trayHeight` is still null).
|
|
314
|
+
const startHeight = trayRef.current?.offsetHeight ?? 0;
|
|
315
|
+
const parentEl = trayRef.current?.parentElement;
|
|
316
|
+
const parentHeight = parentEl?.clientHeight ?? window.innerHeight;
|
|
317
|
+
const maxHeight = Math.max(120, parentHeight - 80);
|
|
297
318
|
setIsDraggingTray(true);
|
|
298
319
|
document.body.style.cursor = 'ns-resize';
|
|
299
320
|
document.body.style.userSelect = 'none';
|
|
321
|
+
// Mutate the tray's inline height directly and rAF-throttle, so dragging
|
|
322
|
+
// doesn't re-render the whole compositions tree (including the iframe)
|
|
323
|
+
// on every mousemove. State is committed once on mouseup.
|
|
324
|
+
let pendingHeight = startHeight;
|
|
325
|
+
let rafScheduled = false;
|
|
326
|
+
const applyHeight = () => {
|
|
327
|
+
rafScheduled = false;
|
|
328
|
+
if (trayRef.current) trayRef.current.style.height = `${pendingHeight}px`;
|
|
329
|
+
};
|
|
300
330
|
const onMove = ev => {
|
|
301
|
-
const
|
|
302
|
-
|
|
303
|
-
if (
|
|
304
|
-
|
|
331
|
+
const delta = startY - ev.clientY;
|
|
332
|
+
pendingHeight = Math.max(120, Math.min(maxHeight, startHeight + delta));
|
|
333
|
+
if (!rafScheduled) {
|
|
334
|
+
rafScheduled = true;
|
|
335
|
+
requestAnimationFrame(applyHeight);
|
|
305
336
|
}
|
|
306
337
|
};
|
|
307
338
|
const onUp = () => {
|
|
308
339
|
setIsDraggingTray(false);
|
|
340
|
+
setTrayHeight(pendingHeight);
|
|
309
341
|
document.body.style.cursor = '';
|
|
310
342
|
document.body.style.userSelect = '';
|
|
311
343
|
document.removeEventListener('mousemove', onMove);
|
|
@@ -335,7 +367,18 @@ function Compositions({
|
|
|
335
367
|
});
|
|
336
368
|
}, [enableLiveControls]);
|
|
337
369
|
const currentCompositionHasControls = ready && defs.length > 0;
|
|
338
|
-
const
|
|
370
|
+
const currentCompositionIdentifier = currentComposition?.identifier;
|
|
371
|
+
const isTrayCollapsedForCurrent = !!currentCompositionIdentifier && collapsedCompositions.has(currentCompositionIdentifier);
|
|
372
|
+
const showControlsTray = currentCompositionHasControls;
|
|
373
|
+
const isTrayCollapsed = showControlsTray && isTrayCollapsedForCurrent;
|
|
374
|
+
const toggleTrayCollapsed = (0, _react().useCallback)(() => {
|
|
375
|
+
if (!currentCompositionIdentifier) return;
|
|
376
|
+
setCollapsedCompositions(prev => {
|
|
377
|
+
const next = new Set(prev);
|
|
378
|
+
if (next.has(currentCompositionIdentifier)) next.delete(currentCompositionIdentifier);else next.add(currentCompositionIdentifier);
|
|
379
|
+
return next;
|
|
380
|
+
});
|
|
381
|
+
}, [currentCompositionIdentifier]);
|
|
339
382
|
return /*#__PURE__*/_react().default.createElement(_compositionsUiHooks().CompositionContextProvider, {
|
|
340
383
|
queryParams: compositionParams,
|
|
341
384
|
setQueryParams: setCompositionParams
|
|
@@ -357,14 +400,6 @@ function Compositions({
|
|
|
357
400
|
className: _compositionsModule().default.toolbarButton
|
|
358
401
|
}, /*#__PURE__*/_react().default.createElement(_designUiInput().OptionButton, {
|
|
359
402
|
icon: "open-tab"
|
|
360
|
-
}))), currentCompositionHasControls && /*#__PURE__*/_react().default.createElement(_designUi4().Tooltip, {
|
|
361
|
-
content: controlsTrayOpen ? 'Hide controls' : 'Show controls',
|
|
362
|
-
placement: "bottom"
|
|
363
|
-
}, /*#__PURE__*/_react().default.createElement("button", {
|
|
364
|
-
className: `${_compositionsModule().default.toolbarButton} ${controlsTrayOpen ? _compositionsModule().default.toolbarButtonActive : ''}`,
|
|
365
|
-
onClick: () => setControlsTrayOpen(o => !o)
|
|
366
|
-
}, /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, {
|
|
367
|
-
of: "settings"
|
|
368
403
|
})))), /*#__PURE__*/_react().default.createElement(_previewUi().SandboxPermissionsAggregator, {
|
|
369
404
|
hooks: previewSandboxHooks,
|
|
370
405
|
onSandboxChange: setSandboxValue,
|
|
@@ -373,49 +408,27 @@ function Compositions({
|
|
|
373
408
|
className: _compositionsModule().default.previewArea
|
|
374
409
|
}, isDraggingTray && /*#__PURE__*/_react().default.createElement("div", {
|
|
375
410
|
className: _compositionsModule().default.dragOverlay
|
|
376
|
-
}), /*#__PURE__*/_react().default.createElement(
|
|
411
|
+
}), /*#__PURE__*/_react().default.createElement(_previewUi().PreviewPropsAggregator, {
|
|
412
|
+
hooks: previewPropsHooks,
|
|
413
|
+
component: component
|
|
414
|
+
}, previewAttrs => /*#__PURE__*/_react().default.createElement(CompositionContent, _extends({}, previewAttrs, {
|
|
377
415
|
className: _compositionsModule().default.compositionPanel,
|
|
378
416
|
emptyState: emptyState,
|
|
379
417
|
component: component,
|
|
380
418
|
selected: currentComposition,
|
|
381
419
|
queryParams: queryParams,
|
|
382
420
|
sandbox: sandboxValue
|
|
383
|
-
}), showControlsTray && /*#__PURE__*/_react().default.createElement(
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
}
|
|
389
|
-
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
390
|
-
className: _compositionsModule().default.trayDragHandle,
|
|
391
|
-
onMouseDown: onTrayDragStart
|
|
392
|
-
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
393
|
-
className: _compositionsModule().default.trayDragBar
|
|
394
|
-
})), /*#__PURE__*/_react().default.createElement("div", {
|
|
395
|
-
className: _compositionsModule().default.trayHeader
|
|
396
|
-
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
397
|
-
className: _compositionsModule().default.trayTitleRow
|
|
398
|
-
}, /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, {
|
|
399
|
-
of: "settings",
|
|
400
|
-
className: _compositionsModule().default.trayIcon
|
|
401
|
-
}), /*#__PURE__*/_react().default.createElement("span", {
|
|
402
|
-
className: _compositionsModule().default.trayTitle
|
|
403
|
-
}, "Live Controls"), ready && defs.length > 0 && /*#__PURE__*/_react().default.createElement("span", {
|
|
404
|
-
className: _compositionsModule().default.trayBadge
|
|
405
|
-
}, defs.length)), /*#__PURE__*/_react().default.createElement("button", {
|
|
406
|
-
className: _compositionsModule().default.trayClose,
|
|
407
|
-
onClick: () => setControlsTrayOpen(false)
|
|
408
|
-
}, /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, {
|
|
409
|
-
of: "x"
|
|
410
|
-
}))), /*#__PURE__*/_react().default.createElement("div", {
|
|
411
|
-
className: _compositionsModule().default.trayBody
|
|
412
|
-
}, ready ? /*#__PURE__*/_react().default.createElement(_liveControlPanel().LiveControls, {
|
|
421
|
+
}))), showControlsTray && /*#__PURE__*/_react().default.createElement(LiveControlsTray, {
|
|
422
|
+
trayRef: trayRef,
|
|
423
|
+
collapsed: isTrayCollapsed,
|
|
424
|
+
height: trayHeight,
|
|
425
|
+
ready: ready,
|
|
413
426
|
defs: defs,
|
|
414
427
|
values: values,
|
|
415
|
-
onChange: onChange
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
}
|
|
428
|
+
onChange: onChange,
|
|
429
|
+
onResizeStripMouseDown: onResizeStripMouseDown,
|
|
430
|
+
onToggleExpanded: toggleTrayCollapsed
|
|
431
|
+
}))), /*#__PURE__*/_react().default.createElement(_baseUiSurfacesSplitPane2().HoverSplitter, {
|
|
419
432
|
className: _compositionsModule().default.splitter
|
|
420
433
|
}, /*#__PURE__*/_react().default.createElement(_uiFoundationUiButtons().Collapser, {
|
|
421
434
|
placement: "left",
|
|
@@ -437,6 +450,9 @@ function Compositions({
|
|
|
437
450
|
isScaling: isScaling,
|
|
438
451
|
useNameParam: useNameParam,
|
|
439
452
|
includesEnvTemplate: component.preview?.includesEnvTemplate,
|
|
453
|
+
hasLiveControls: currentCompositionHasControls,
|
|
454
|
+
liveControlsActive: currentCompositionHasControls && !isTrayCollapsedForCurrent,
|
|
455
|
+
onToggleLiveControls: toggleTrayCollapsed,
|
|
440
456
|
onSelectComposition: composition => {
|
|
441
457
|
if (!currentComposition || !location) return;
|
|
442
458
|
const selectedCompositionFromUrl = params['*'];
|
|
@@ -452,9 +468,6 @@ function Compositions({
|
|
|
452
468
|
}
|
|
453
469
|
const newPath = pathSegments.join('/');
|
|
454
470
|
navigate(`/${newPath}?${urlParams.toString()}`);
|
|
455
|
-
// open the tray only on explicit user selection, so the
|
|
456
|
-
// tray stays closed on navigation/tab return.
|
|
457
|
-
setControlsTrayOpen(true);
|
|
458
471
|
},
|
|
459
472
|
url: compositionUrl,
|
|
460
473
|
compositions: component.compositions,
|
|
@@ -466,6 +479,72 @@ function Compositions({
|
|
|
466
479
|
showListView: true
|
|
467
480
|
}) : /*#__PURE__*/_react().default.createElement("div", null)))))));
|
|
468
481
|
}
|
|
482
|
+
function LiveControlsTray({
|
|
483
|
+
trayRef,
|
|
484
|
+
collapsed,
|
|
485
|
+
height,
|
|
486
|
+
ready,
|
|
487
|
+
defs,
|
|
488
|
+
values,
|
|
489
|
+
onChange,
|
|
490
|
+
onResizeStripMouseDown,
|
|
491
|
+
onToggleExpanded
|
|
492
|
+
}) {
|
|
493
|
+
// height = null → let CSS size the tray to its content (with the max-height
|
|
494
|
+
// clamp doing the upper bound); height = number → user has drag-resized,
|
|
495
|
+
// pin to that.
|
|
496
|
+
const trayStyle = collapsed || height === null ? undefined : {
|
|
497
|
+
height
|
|
498
|
+
};
|
|
499
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
500
|
+
ref: trayRef,
|
|
501
|
+
className: (0, _classnames().default)(_compositionsModule().default.controlsTray, collapsed && _compositionsModule().default.controlsTrayCollapsed),
|
|
502
|
+
style: trayStyle
|
|
503
|
+
}, !collapsed && /*#__PURE__*/_react().default.createElement("div", {
|
|
504
|
+
className: _compositionsModule().default.trayResizeStrip,
|
|
505
|
+
onMouseDown: onResizeStripMouseDown,
|
|
506
|
+
role: "separator",
|
|
507
|
+
"aria-orientation": "horizontal",
|
|
508
|
+
"aria-label": "Resize live controls",
|
|
509
|
+
title: "Drag to resize"
|
|
510
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
511
|
+
className: _compositionsModule().default.trayDragBar
|
|
512
|
+
})), /*#__PURE__*/_react().default.createElement("div", {
|
|
513
|
+
className: _compositionsModule().default.trayHeaderInner,
|
|
514
|
+
onClick: onToggleExpanded,
|
|
515
|
+
role: "button",
|
|
516
|
+
tabIndex: 0,
|
|
517
|
+
onKeyDown: e => {
|
|
518
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
519
|
+
e.preventDefault();
|
|
520
|
+
onToggleExpanded();
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
title: collapsed ? 'Click to expand' : 'Click to collapse'
|
|
524
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
525
|
+
className: _compositionsModule().default.trayTitleRow
|
|
526
|
+
}, /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, {
|
|
527
|
+
of: "settings",
|
|
528
|
+
className: _compositionsModule().default.trayIcon
|
|
529
|
+
}), /*#__PURE__*/_react().default.createElement("span", {
|
|
530
|
+
className: _compositionsModule().default.trayTitle
|
|
531
|
+
}, "Live Controls"), ready && defs.length > 0 && /*#__PURE__*/_react().default.createElement("span", {
|
|
532
|
+
className: _compositionsModule().default.trayBadge
|
|
533
|
+
}, defs.length)), /*#__PURE__*/_react().default.createElement("span", {
|
|
534
|
+
className: (0, _classnames().default)(_compositionsModule().default.trayCollapseIcon, collapsed && _compositionsModule().default.trayCollapseIconCollapsed),
|
|
535
|
+
"aria-hidden": true
|
|
536
|
+
}, /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, {
|
|
537
|
+
of: "right-rounded-corners"
|
|
538
|
+
}))), !collapsed && /*#__PURE__*/_react().default.createElement("div", {
|
|
539
|
+
className: _compositionsModule().default.trayBody
|
|
540
|
+
}, ready ? /*#__PURE__*/_react().default.createElement(_liveControlPanel().LiveControls, {
|
|
541
|
+
defs: defs,
|
|
542
|
+
values: values,
|
|
543
|
+
onChange: onChange
|
|
544
|
+
}) : /*#__PURE__*/_react().default.createElement("div", {
|
|
545
|
+
className: _compositionsModule().default.trayEmpty
|
|
546
|
+
}, "No live controls available for this composition")));
|
|
547
|
+
}
|
|
469
548
|
function CompositionContent(_ref) {
|
|
470
549
|
let {
|
|
471
550
|
component,
|
package/dist/compositions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_lodash","_interopRequireDefault","_queryString","_documenterTheme","_baseUiSurfacesSplitPane","_baseUiSurfacesSplitPane2","_component","_documenterUi","_panels","_docsUiQueries","_uiFoundationUiButtons","_designUi","_previewUi","_uiFoundationUiHooks","_compositionsUi","_compositionsUiHooks","_mdxUi","_designUi2","_documenterUi2","_designUi3","_baseReactNavigation","_designUiInput","_designUiSurfaces","_designUi4","_evangelistElements","_compositionsUi2","_compositionsModule","_ui","_compositionsPanel","_liveControlPanel","_useDefaultControlsSchemaResponder","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Link","BaseLink","Compositions","menuBarWidgets","emptyState","usePreviewSandboxSlot","enableLiveControls","component","useContext","ComponentContext","componentIdStr","id","toString","searchParams","useSearchParams","params","useParams","versionFromQueryParams","navigate","useNavigate","location","useLocation","currentCompositionName","currentComposition","compositions","find","composition","identifier","toLowerCase","head","sandboxValue","setSandboxValue","useState","selectedRef","useRef","current","useDefaultControlsSchemaResponder","properties","useDocs","previewSandboxHooks","values","isMobile","useIsMobile","showSidebar","isSidebarOpen","setSidebarOpenness","sidebarOpenness","Layout","row","left","compositionUrl","toPreviewUrl","isScaling","preview","includesEnvTemplates","includesEnvTemplate","useNameParam","compositionIdentifierParam","currentCompositionFullUrl","compositionParams","setCompositionParams","fullscreen","livecontrols","queryParams","useMemo","queryString","stringify","controlsTrayOpen","setControlsTrayOpen","isDraggingTray","setIsDraggingTray","trayRef","trayHeightRef","ready","defs","onChange","useLiveControls","onTrayDragStart","useCallback","preventDefault","startY","clientY","startHeight","document","body","style","cursor","userSelect","onMove","ev","next","Math","max","min","maxHeight","onUp","removeEventListener","addEventListener","useEffect","currentCompositionHasControls","showControlsTray","createElement","CompositionContextProvider","setQueryParams","SplitPane","layout","size","className","styles","compositionsPage","Pane","CompositionsMenuBar","menuBar","Tooltip","content","placement","external","href","toolbarButton","OptionButton","icon","toolbarButtonActive","onClick","Icon","of","SandboxPermissionsAggregator","hooks","onSandboxChange","previewArea","dragOverlay","CompositionContent","compositionPanel","selected","sandbox","ref","controlsTray","trayDragHandle","onMouseDown","trayDragBar","trayHeader","trayTitleRow","trayIcon","trayTitle","trayBadge","trayClose","trayBody","LiveControls","trayEmpty","HoverSplitter","splitter","Collapser","isOpen","stopPropagation","x","tooltipContent","collapser","right","ThemeContext","TabContainer","tabsContainer","TabList","tabs","Tab","TabPanel","tabContent","CompositionsPanel","onSelectComposition","selectedCompositionFromUrl","pathSegments","pathname","split","urlParams","URLSearchParams","newPath","join","url","active","PropTable","rows","showListView","_ref","componentCompositionProps","env","environment","EmptyStateTemplate","host","noCompositionsPage","H1","title","Separator","isPresentational","separator","AlertCard","level","MDXLayout","buildStatus","StatusMessageCard","buildStatusMessage","status","EmptyBox","linkText","link","ComponentComposition","compositionsIframe","viewport","forceHeight","fullContentHeight","pubsub"],"sources":["compositions.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useEffect, useState, useMemo, useRef, useCallback } from 'react';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport head from 'lodash.head';\nimport queryString from 'query-string';\nimport { ThemeContext } from '@teambit/documenter.theme.theme-context';\nimport { SplitPane, Pane, Layout } from '@teambit/base-ui.surfaces.split-pane.split-pane';\nimport { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';\nimport type { ComponentModel } from '@teambit/component';\nimport { ComponentContext } from '@teambit/component';\nimport { PropTable } from '@teambit/documenter.ui.property-table';\nimport { Tab, TabContainer, TabList, TabPanel } from '@teambit/panels';\nimport { useDocs } from '@teambit/docs.ui.queries.get-docs';\nimport { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';\nimport { EmptyBox } from '@teambit/design.ui.empty-box';\nimport { SandboxPermissionsAggregator, toPreviewUrl } from '@teambit/preview.ui.component-preview';\nimport { useIsMobile } from '@teambit/ui-foundation.ui.hooks.use-is-mobile';\nimport { CompositionsMenuBar } from '@teambit/compositions.ui.compositions-menu-bar';\nimport { CompositionContextProvider } from '@teambit/compositions.ui.hooks.use-composition';\nimport { MDXLayout } from '@teambit/mdx.ui.mdx-layout';\nimport { Separator } from '@teambit/design.ui.separator';\nimport { H1 } from '@teambit/documenter.ui.heading';\nimport { AlertCard } from '@teambit/design.ui.alert-card';\nimport { Link as BaseLink, useNavigate, useLocation } from '@teambit/base-react.navigation.link';\nimport { OptionButton } from '@teambit/design.ui.input.option-button';\nimport { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { Tooltip } from '@teambit/design.ui.tooltip';\nimport { Icon } from '@teambit/evangelist.elements.icon';\nimport { useLiveControls } from '@teambit/compositions.ui.composition-live-controls';\nimport type { EmptyStateSlot, CompositionsMenuSlot, UsePreviewSandboxSlot } from './compositions.ui.runtime';\nimport type { Composition } from './composition';\nimport styles from './compositions.module.scss';\nimport { ComponentComposition } from './ui';\nimport { CompositionsPanel } from './ui/compositions-panel/compositions-panel';\nimport { LiveControls } from './ui/compositions-panel/live-control-panel';\nimport type { ComponentCompositionProps } from './ui/composition-preview';\nimport { useDefaultControlsSchemaResponder } from './use-default-controls-schema-responder';\n\n// @todo - this will be fixed as part of the @teambit/base-react.navigation.link upgrade to latest\nconst Link = BaseLink as any;\n\nexport type MenuBarWidget = {\n location: 'start' | 'end';\n content: ReactNode;\n};\nexport type CompositionsProp = {\n menuBarWidgets?: CompositionsMenuSlot;\n emptyState?: EmptyStateSlot;\n usePreviewSandboxSlot?: UsePreviewSandboxSlot;\n enableLiveControls?: boolean;\n};\n\nexport function Compositions({\n menuBarWidgets,\n emptyState,\n usePreviewSandboxSlot,\n enableLiveControls = true,\n}: CompositionsProp) {\n const component = useContext(ComponentContext);\n const componentIdStr = component.id.toString();\n const [searchParams] = useSearchParams();\n const params = useParams();\n const versionFromQueryParams = searchParams.get('version');\n const navigate = useNavigate();\n const location = useLocation();\n const currentCompositionName = params['*'];\n const currentComposition =\n component.compositions.find((composition) => composition.identifier.toLowerCase() === currentCompositionName) ||\n head(component.compositions);\n const [sandboxValue, setSandboxValue] = useState('');\n const selectedRef = useRef(currentComposition);\n selectedRef.current = currentComposition;\n useDefaultControlsSchemaResponder(componentIdStr, enableLiveControls);\n\n const properties = useDocs(component.id);\n const previewSandboxHooks = usePreviewSandboxSlot?.values() ?? [];\n const isMobile = useIsMobile();\n const showSidebar = !isMobile && component.compositions.length > 0;\n const [isSidebarOpen, setSidebarOpenness] = useState(showSidebar);\n\n const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.left;\n\n const compositionUrl = toPreviewUrl(component, 'compositions');\n const isScaling = component?.preview?.isScaling;\n const includesEnvTemplates = component?.preview?.includesEnvTemplate;\n const useNameParam = component?.preview?.useNameParam;\n const compositionIdentifierParam =\n useNameParam || (isScaling && includesEnvTemplates === false)\n ? `name=${currentComposition?.identifier}`\n : currentComposition?.identifier;\n\n const currentCompositionFullUrl = toPreviewUrl(component, 'compositions', compositionIdentifierParam);\n\n const [compositionParams, setCompositionParams] = useState<Record<string, any>>(() =>\n enableLiveControls ? { fullscreen: true, livecontrols: true } : { fullscreen: true }\n );\n\n const queryParams = useMemo(() => queryString.stringify(compositionParams), [compositionParams]);\n\n const [controlsTrayOpen, setControlsTrayOpen] = useState(false);\n const [isDraggingTray, setIsDraggingTray] = useState(false);\n const trayRef = useRef<HTMLDivElement>(null);\n const trayHeightRef = useRef(260);\n const { ready, defs, values, onChange } = useLiveControls();\n\n const onTrayDragStart = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n const startY = e.clientY;\n const startHeight = trayHeightRef.current;\n setIsDraggingTray(true);\n document.body.style.cursor = 'ns-resize';\n document.body.style.userSelect = 'none';\n const onMove = (ev: MouseEvent) => {\n const next = Math.max(120, Math.min(600, startHeight + (startY - ev.clientY)));\n trayHeightRef.current = next;\n if (trayRef.current) {\n trayRef.current.style.maxHeight = `${next}px`;\n }\n };\n const onUp = () => {\n setIsDraggingTray(false);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n }, []);\n\n // collapse sidebar when empty, reopen when not\n useEffect(() => setSidebarOpenness(showSidebar), [showSidebar]);\n useEffect(() => {\n if (enableLiveControls) {\n setCompositionParams((current) => {\n if (current.livecontrols === true) return current;\n return { ...current, livecontrols: true };\n });\n return;\n }\n\n setCompositionParams((current) => {\n if (!('livecontrols' in current)) return current;\n const next = { ...current };\n delete next.livecontrols;\n return next;\n });\n }, [enableLiveControls]);\n\n const currentCompositionHasControls = ready && defs.length > 0;\n const showControlsTray = currentCompositionHasControls && controlsTrayOpen;\n\n return (\n <CompositionContextProvider queryParams={compositionParams} setQueryParams={setCompositionParams}>\n <SplitPane layout={sidebarOpenness} size=\"80%\" className={styles.compositionsPage}>\n <Pane className={styles.left}>\n <CompositionsMenuBar menuBarWidgets={menuBarWidgets} className={styles.menuBar}>\n <Tooltip content={'Open in new tab'} placement=\"bottom\">\n <Link external href={currentCompositionFullUrl} className={styles.toolbarButton}>\n <OptionButton icon=\"open-tab\" />\n </Link>\n </Tooltip>\n {currentCompositionHasControls && (\n <Tooltip content={controlsTrayOpen ? 'Hide controls' : 'Show controls'} placement=\"bottom\">\n <button\n className={`${styles.toolbarButton} ${controlsTrayOpen ? styles.toolbarButtonActive : ''}`}\n onClick={() => setControlsTrayOpen((o) => !o)}\n >\n <Icon of=\"settings\" />\n </button>\n </Tooltip>\n )}\n </CompositionsMenuBar>\n <SandboxPermissionsAggregator\n hooks={previewSandboxHooks}\n onSandboxChange={setSandboxValue}\n component={component}\n />\n <div className={styles.previewArea}>\n {isDraggingTray && <div className={styles.dragOverlay} />}\n <CompositionContent\n className={styles.compositionPanel}\n emptyState={emptyState}\n component={component}\n selected={currentComposition}\n queryParams={queryParams}\n sandbox={sandboxValue}\n />\n {showControlsTray && (\n <div ref={trayRef} className={styles.controlsTray} style={{ maxHeight: trayHeightRef.current }}>\n <div className={styles.trayDragHandle} onMouseDown={onTrayDragStart}>\n <div className={styles.trayDragBar} />\n </div>\n <div className={styles.trayHeader}>\n <div className={styles.trayTitleRow}>\n <Icon of=\"settings\" className={styles.trayIcon} />\n <span className={styles.trayTitle}>Live Controls</span>\n {ready && defs.length > 0 && <span className={styles.trayBadge}>{defs.length}</span>}\n </div>\n <button className={styles.trayClose} onClick={() => setControlsTrayOpen(false)}>\n <Icon of=\"x\" />\n </button>\n </div>\n <div className={styles.trayBody}>\n {ready ? (\n <LiveControls defs={defs} values={values} onChange={onChange} />\n ) : (\n <div className={styles.trayEmpty}>No live controls available for this composition</div>\n )}\n </div>\n </div>\n )}\n </div>\n </Pane>\n <HoverSplitter className={styles.splitter}>\n <Collapser\n placement=\"left\"\n isOpen={isSidebarOpen}\n onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag\n onClick={() => setSidebarOpenness((x) => !x)}\n tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side compositions`}\n className={styles.collapser}\n />\n </HoverSplitter>\n <Pane className={styles.right}>\n <ThemeContext>\n <TabContainer className={styles.tabsContainer}>\n <TabList className={styles.tabs}>\n <Tab>compositions</Tab>\n <Tab>properties</Tab>\n </TabList>\n <TabPanel className={styles.tabContent}>\n <CompositionsPanel\n isScaling={isScaling}\n useNameParam={useNameParam}\n includesEnvTemplate={component.preview?.includesEnvTemplate}\n onSelectComposition={(composition) => {\n if (!currentComposition || !location) return;\n const selectedCompositionFromUrl = params['*'];\n\n const pathSegments = location.pathname.split('/').filter((x) => x);\n\n if (!selectedCompositionFromUrl) {\n pathSegments.push(composition.identifier.toLowerCase());\n } else {\n pathSegments[pathSegments.length - 1] = composition.identifier.toLowerCase();\n }\n\n const urlParams = new URLSearchParams(searchParams);\n if (versionFromQueryParams) {\n urlParams.set('version', versionFromQueryParams);\n }\n const newPath = pathSegments.join('/');\n navigate(`/${newPath}?${urlParams.toString()}`);\n // open the tray only on explicit user selection, so the\n // tray stays closed on navigation/tab return.\n setControlsTrayOpen(true);\n }}\n url={compositionUrl}\n compositions={component.compositions}\n active={currentComposition}\n />\n </TabPanel>\n <TabPanel className={styles.tabContent}>\n {properties && properties.length > 0 ? <PropTable rows={properties} showListView /> : <div />}\n </TabPanel>\n </TabContainer>\n </ThemeContext>\n </Pane>\n </SplitPane>\n </CompositionContextProvider>\n );\n}\n\nexport type CompositionContentProps = {\n component: ComponentModel;\n selected?: Composition;\n queryParams?: string | string[];\n emptyState?: EmptyStateSlot;\n} & ComponentCompositionProps;\n\nexport function CompositionContent({\n component,\n selected,\n queryParams,\n emptyState,\n sandbox,\n ...componentCompositionProps\n}: CompositionContentProps) {\n const env = component.environment?.id;\n const EmptyStateTemplate = emptyState?.get(env || ''); // || defaultTemplate;\n\n if (component.compositions.length === 0 && component.host === 'teambit.workspace/workspace' && EmptyStateTemplate) {\n return (\n <div className={styles.noCompositionsPage}>\n <div>\n <H1 className={styles.title}>Compositions</H1>\n <Separator isPresentational className={styles.separator} />\n <AlertCard\n level=\"info\"\n title=\"There are no\n compositions for this Component. Learn how to add compositions:\"\n >\n <MDXLayout>\n <EmptyStateTemplate />\n </MDXLayout>\n </AlertCard>\n </div>\n </div>\n );\n }\n\n if (component?.buildStatus === 'pending' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard className={styles.buildStatusMessage} status=\"PROCESSING\" title=\"component preview pending\">\n this might take some time\n </StatusMessageCard>\n );\n if (component?.buildStatus === 'failed' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard\n className={styles.buildStatusMessage}\n status=\"FAILURE\"\n title=\"failed to get component preview \"\n ></StatusMessageCard>\n );\n\n // TODO: get the docs domain from the community aspect and pass it here as a prop\n if (component.compositions.length === 0) {\n return (\n <EmptyBox\n title=\"There are no compositions for this component.\"\n linkText=\"Learn how to create compositions\"\n link={`https://bit.dev/reference/dev-services-overview/compositions/compositions-overview`}\n />\n );\n }\n\n return (\n <ComponentComposition\n className={styles.compositionsIframe}\n // TODO: Oded to add control for viewport.\n viewport={null}\n component={component}\n forceHeight=\"100%\"\n composition={selected}\n fullContentHeight\n pubsub={true}\n queryParams={queryParams}\n sandbox={sandbox}\n {...componentCompositionProps}\n />\n );\n}\n"],"mappings":";;;;;;;AACA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,uBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,gBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,eAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,aAAA;EAAA,MAAAN,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAI,YAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,iBAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,gBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,yBAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,wBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,0BAAA;EAAA,MAAAT,IAAA,GAAAE,OAAA;EAAAO,yBAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAU,WAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,UAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,cAAA;EAAA,MAAAX,IAAA,GAAAE,OAAA;EAAAS,aAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,QAAA;EAAA,MAAAZ,IAAA,GAAAE,OAAA;EAAAU,OAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,eAAA;EAAA,MAAAb,IAAA,GAAAE,OAAA;EAAAW,cAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,uBAAA;EAAA,MAAAd,IAAA,GAAAE,OAAA;EAAAY,sBAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,UAAA;EAAA,MAAAf,IAAA,GAAAE,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,WAAA;EAAA,MAAAhB,IAAA,GAAAE,OAAA;EAAAc,UAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,qBAAA;EAAA,MAAAjB,IAAA,GAAAE,OAAA;EAAAe,oBAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,gBAAA;EAAA,MAAAlB,IAAA,GAAAE,OAAA;EAAAgB,eAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAmB,qBAAA;EAAA,MAAAnB,IAAA,GAAAE,OAAA;EAAAiB,oBAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAoB,OAAA;EAAA,MAAApB,IAAA,GAAAE,OAAA;EAAAkB,MAAA,YAAAA,CAAA;IAAA,OAAApB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAqB,WAAA;EAAA,MAAArB,IAAA,GAAAE,OAAA;EAAAmB,UAAA,YAAAA,CAAA;IAAA,OAAArB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAsB,eAAA;EAAA,MAAAtB,IAAA,GAAAE,OAAA;EAAAoB,cAAA,YAAAA,CAAA;IAAA,OAAAtB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAuB,WAAA;EAAA,MAAAvB,IAAA,GAAAE,OAAA;EAAAqB,UAAA,YAAAA,CAAA;IAAA,OAAAvB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAwB,qBAAA;EAAA,MAAAxB,IAAA,GAAAE,OAAA;EAAAsB,oBAAA,YAAAA,CAAA;IAAA,OAAAxB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAyB,eAAA;EAAA,MAAAzB,IAAA,GAAAE,OAAA;EAAAuB,cAAA,YAAAA,CAAA;IAAA,OAAAzB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA0B,kBAAA;EAAA,MAAA1B,IAAA,GAAAE,OAAA;EAAAwB,iBAAA,YAAAA,CAAA;IAAA,OAAA1B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA2B,WAAA;EAAA,MAAA3B,IAAA,GAAAE,OAAA;EAAAyB,UAAA,YAAAA,CAAA;IAAA,OAAA3B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA4B,oBAAA;EAAA,MAAA5B,IAAA,GAAAE,OAAA;EAAA0B,mBAAA,YAAAA,CAAA;IAAA,OAAA5B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA6B,iBAAA;EAAA,MAAA7B,IAAA,GAAAE,OAAA;EAAA2B,gBAAA,YAAAA,CAAA;IAAA,OAAA7B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAA8B,oBAAA;EAAA,MAAA9B,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAA4B,mBAAA,YAAAA,CAAA;IAAA,OAAA9B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA+B,IAAA;EAAA,MAAA/B,IAAA,GAAAE,OAAA;EAAA6B,GAAA,YAAAA,CAAA;IAAA,OAAA/B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgC,mBAAA;EAAA,MAAAhC,IAAA,GAAAE,OAAA;EAAA8B,kBAAA,YAAAA,CAAA;IAAA,OAAAhC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiC,kBAAA;EAAA,MAAAjC,IAAA,GAAAE,OAAA;EAAA+B,iBAAA,YAAAA,CAAA;IAAA,OAAAjC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAkC,mCAAA;EAAA,MAAAlC,IAAA,GAAAE,OAAA;EAAAgC,kCAAA,YAAAA,CAAA;IAAA,OAAAlC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4F,MAAAmC,SAAA;AAAA,SAAA9B,uBAAA+B,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAnC,wBAAAmC,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAvC,uBAAA,YAAAA,CAAAmC,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAAA,SAAAgB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAf,CAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAK,CAAA,IAAAF,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAa,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAAA,SAAAG,yBAAAzB,CAAA,EAAAG,CAAA,gBAAAH,CAAA,iBAAAO,CAAA,EAAAF,CAAA,EAAAG,CAAA,GAAAkB,6BAAA,CAAA1B,CAAA,EAAAG,CAAA,OAAAa,MAAA,CAAAW,qBAAA,QAAArB,CAAA,GAAAU,MAAA,CAAAW,qBAAA,CAAA3B,CAAA,QAAAK,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAiB,MAAA,EAAAlB,CAAA,IAAAE,CAAA,GAAAD,CAAA,CAAAD,CAAA,UAAAF,CAAA,CAAAyB,OAAA,CAAArB,CAAA,QAAAsB,oBAAA,CAAAd,IAAA,CAAAf,CAAA,EAAAO,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAP,CAAA,CAAAO,CAAA,aAAAC,CAAA;AAAA,SAAAkB,8BAAArB,CAAA,EAAAL,CAAA,gBAAAK,CAAA,iBAAAF,CAAA,gBAAAG,CAAA,IAAAD,CAAA,SAAAS,cAAA,CAAAC,IAAA,CAAAV,CAAA,EAAAC,CAAA,gBAAAN,CAAA,CAAA4B,OAAA,CAAAtB,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAD,CAAA,CAAAC,CAAA,YAAAH,CAAA;AAAA,SAAA2B,QAAA9B,CAAA,EAAAK,CAAA,QAAAF,CAAA,GAAAa,MAAA,CAAAe,IAAA,CAAA/B,CAAA,OAAAgB,MAAA,CAAAW,qBAAA,QAAApB,CAAA,GAAAS,MAAA,CAAAW,qBAAA,CAAA3B,CAAA,GAAAK,CAAA,KAAAE,CAAA,GAAAA,CAAA,CAAAyB,MAAA,WAAA3B,CAAA,WAAAW,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAK,CAAA,EAAA4B,UAAA,OAAA9B,CAAA,CAAA+B,IAAA,CAAAV,KAAA,CAAArB,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAgC,cAAAnC,CAAA,aAAAK,CAAA,MAAAA,CAAA,GAAAiB,SAAA,CAAAC,MAAA,EAAAlB,CAAA,UAAAF,CAAA,WAAAmB,SAAA,CAAAjB,CAAA,IAAAiB,SAAA,CAAAjB,CAAA,QAAAA,CAAA,OAAAyB,OAAA,CAAAd,MAAA,CAAAb,CAAA,OAAAiC,OAAA,WAAA/B,CAAA,IAAAgC,eAAA,CAAArC,CAAA,EAAAK,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAW,MAAA,CAAAsB,yBAAA,GAAAtB,MAAA,CAAAuB,gBAAA,CAAAvC,CAAA,EAAAgB,MAAA,CAAAsB,yBAAA,CAAAnC,CAAA,KAAA2B,OAAA,CAAAd,MAAA,CAAAb,CAAA,GAAAiC,OAAA,WAAA/B,CAAA,IAAAW,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAK,CAAA,EAAAW,MAAA,CAAAE,wBAAA,CAAAf,CAAA,EAAAE,CAAA,iBAAAL,CAAA;AAAA,SAAAqC,gBAAArC,CAAA,EAAAK,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAAmC,cAAA,CAAAnC,CAAA,MAAAL,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAK,CAAA,IAAAoC,KAAA,EAAAtC,CAAA,EAAA8B,UAAA,MAAAS,YAAA,MAAAC,QAAA,UAAA3C,CAAA,CAAAK,CAAA,IAAAF,CAAA,EAAAH,CAAA;AAAA,SAAAwC,eAAArC,CAAA,QAAAK,CAAA,GAAAoC,YAAA,CAAAzC,CAAA,uCAAAK,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoC,aAAAzC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAA0C,MAAA,CAAAC,WAAA,kBAAA9C,CAAA,QAAAQ,CAAA,GAAAR,CAAA,CAAAe,IAAA,CAAAZ,CAAA,EAAAE,CAAA,uCAAAG,CAAA,SAAAA,CAAA,YAAAuC,SAAA,yEAAA1C,CAAA,GAAA2C,MAAA,GAAAC,MAAA,EAAA9C,CAAA;AAE5F;AACA,MAAM+C,IAAI,GAAGC,2BAAe;AAarB,SAASC,YAAYA,CAAC;EAC3BC,cAAc;EACdC,UAAU;EACVC,qBAAqB;EACrBC,kBAAkB,GAAG;AACL,CAAC,EAAE;EACnB,MAAMC,SAAS,GAAG,IAAAC,mBAAU,EAACC,6BAAgB,CAAC;EAC9C,MAAMC,cAAc,GAAGH,SAAS,CAACI,EAAE,CAACC,QAAQ,CAAC,CAAC;EAC9C,MAAM,CAACC,YAAY,CAAC,GAAG,IAAAC,iCAAe,EAAC,CAAC;EACxC,MAAMC,MAAM,GAAG,IAAAC,2BAAS,EAAC,CAAC;EAC1B,MAAMC,sBAAsB,GAAGJ,YAAY,CAACnD,GAAG,CAAC,SAAS,CAAC;EAC1D,MAAMwD,QAAQ,GAAG,IAAAC,kCAAW,EAAC,CAAC;EAC9B,MAAMC,QAAQ,GAAG,IAAAC,kCAAW,EAAC,CAAC;EAC9B,MAAMC,sBAAsB,GAAGP,MAAM,CAAC,GAAG,CAAC;EAC1C,MAAMQ,kBAAkB,GACtBhB,SAAS,CAACiB,YAAY,CAACC,IAAI,CAAEC,WAAW,IAAKA,WAAW,CAACC,UAAU,CAACC,WAAW,CAAC,CAAC,KAAKN,sBAAsB,CAAC,IAC7G,IAAAO,iBAAI,EAACtB,SAAS,CAACiB,YAAY,CAAC;EAC9B,MAAM,CAACM,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,iBAAQ,EAAC,EAAE,CAAC;EACpD,MAAMC,WAAW,GAAG,IAAAC,eAAM,EAACX,kBAAkB,CAAC;EAC9CU,WAAW,CAACE,OAAO,GAAGZ,kBAAkB;EACxC,IAAAa,sEAAiC,EAAC1B,cAAc,EAAEJ,kBAAkB,CAAC;EAErE,MAAM+B,UAAU,GAAG,IAAAC,wBAAO,EAAC/B,SAAS,CAACI,EAAE,CAAC;EACxC,MAAM4B,mBAAmB,GAAGlC,qBAAqB,EAAEmC,MAAM,CAAC,CAAC,IAAI,EAAE;EACjE,MAAMC,QAAQ,GAAG,IAAAC,kCAAW,EAAC,CAAC;EAC9B,MAAMC,WAAW,GAAG,CAACF,QAAQ,IAAIlC,SAAS,CAACiB,YAAY,CAACnD,MAAM,GAAG,CAAC;EAClE,MAAM,CAACuE,aAAa,EAAEC,kBAAkB,CAAC,GAAG,IAAAb,iBAAQ,EAACW,WAAW,CAAC;EAEjE,MAAMG,eAAe,GAAGF,aAAa,GAAGG,iCAAM,CAACC,GAAG,GAAGD,iCAAM,CAACE,IAAI;EAEhE,MAAMC,cAAc,GAAG,IAAAC,yBAAY,EAAC5C,SAAS,EAAE,cAAc,CAAC;EAC9D,MAAM6C,SAAS,GAAG7C,SAAS,EAAE8C,OAAO,EAAED,SAAS;EAC/C,MAAME,oBAAoB,GAAG/C,SAAS,EAAE8C,OAAO,EAAEE,mBAAmB;EACpE,MAAMC,YAAY,GAAGjD,SAAS,EAAE8C,OAAO,EAAEG,YAAY;EACrD,MAAMC,0BAA0B,GAC9BD,YAAY,IAAKJ,SAAS,IAAIE,oBAAoB,KAAK,KAAM,GACzD,QAAQ/B,kBAAkB,EAAEI,UAAU,EAAE,GACxCJ,kBAAkB,EAAEI,UAAU;EAEpC,MAAM+B,yBAAyB,GAAG,IAAAP,yBAAY,EAAC5C,SAAS,EAAE,cAAc,EAAEkD,0BAA0B,CAAC;EAErG,MAAM,CAACE,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAA5B,iBAAQ,EAAsB,MAC9E1B,kBAAkB,GAAG;IAAEuD,UAAU,EAAE,IAAI;IAAEC,YAAY,EAAE;EAAK,CAAC,GAAG;IAAED,UAAU,EAAE;EAAK,CACrF,CAAC;EAED,MAAME,WAAW,GAAG,IAAAC,gBAAO,EAAC,MAAMC,sBAAW,CAACC,SAAS,CAACP,iBAAiB,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEhG,MAAM,CAACQ,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAApC,iBAAQ,EAAC,KAAK,CAAC;EAC/D,MAAM,CAACqC,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAtC,iBAAQ,EAAC,KAAK,CAAC;EAC3D,MAAMuC,OAAO,GAAG,IAAArC,eAAM,EAAiB,IAAI,CAAC;EAC5C,MAAMsC,aAAa,GAAG,IAAAtC,eAAM,EAAC,GAAG,CAAC;EACjC,MAAM;IAAEuC,KAAK;IAAEC,IAAI;IAAElC,MAAM;IAAEmC;EAAS,CAAC,GAAG,IAAAC,kCAAe,EAAC,CAAC;EAE3D,MAAMC,eAAe,GAAG,IAAAC,oBAAW,EAAEhI,CAAmB,IAAK;IAC3DA,CAAC,CAACiI,cAAc,CAAC,CAAC;IAClB,MAAMC,MAAM,GAAGlI,CAAC,CAACmI,OAAO;IACxB,MAAMC,WAAW,GAAGV,aAAa,CAACrC,OAAO;IACzCmC,iBAAiB,CAAC,IAAI,CAAC;IACvBa,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,MAAM,GAAG,WAAW;IACxCH,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACE,UAAU,GAAG,MAAM;IACvC,MAAMC,MAAM,GAAIC,EAAc,IAAK;MACjC,MAAMC,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,GAAG,EAAED,IAAI,CAACE,GAAG,CAAC,GAAG,EAAEX,WAAW,IAAIF,MAAM,GAAGS,EAAE,CAACR,OAAO,CAAC,CAAC,CAAC;MAC9ET,aAAa,CAACrC,OAAO,GAAGuD,IAAI;MAC5B,IAAInB,OAAO,CAACpC,OAAO,EAAE;QACnBoC,OAAO,CAACpC,OAAO,CAACkD,KAAK,CAACS,SAAS,GAAG,GAAGJ,IAAI,IAAI;MAC/C;IACF,CAAC;IACD,MAAMK,IAAI,GAAGA,CAAA,KAAM;MACjBzB,iBAAiB,CAAC,KAAK,CAAC;MACxBa,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,MAAM,GAAG,EAAE;MAC/BH,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACE,UAAU,GAAG,EAAE;MACnCJ,QAAQ,CAACa,mBAAmB,CAAC,WAAW,EAAER,MAAM,CAAC;MACjDL,QAAQ,CAACa,mBAAmB,CAAC,SAAS,EAAED,IAAI,CAAC;IAC/C,CAAC;IACDZ,QAAQ,CAACc,gBAAgB,CAAC,WAAW,EAAET,MAAM,CAAC;IAC9CL,QAAQ,CAACc,gBAAgB,CAAC,SAAS,EAAEF,IAAI,CAAC;EAC5C,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAAG,kBAAS,EAAC,MAAMrD,kBAAkB,CAACF,WAAW,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAC/D,IAAAuD,kBAAS,EAAC,MAAM;IACd,IAAI5F,kBAAkB,EAAE;MACtBsD,oBAAoB,CAAEzB,OAAO,IAAK;QAChC,IAAIA,OAAO,CAAC2B,YAAY,KAAK,IAAI,EAAE,OAAO3B,OAAO;QACjD,OAAAlD,aAAA,CAAAA,aAAA,KAAYkD,OAAO;UAAE2B,YAAY,EAAE;QAAI;MACzC,CAAC,CAAC;MACF;IACF;IAEAF,oBAAoB,CAAEzB,OAAO,IAAK;MAChC,IAAI,EAAE,cAAc,IAAIA,OAAO,CAAC,EAAE,OAAOA,OAAO;MAChD,MAAMuD,IAAI,GAAAzG,aAAA,KAAQkD,OAAO,CAAE;MAC3B,OAAOuD,IAAI,CAAC5B,YAAY;MACxB,OAAO4B,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EAAE,CAACpF,kBAAkB,CAAC,CAAC;EAExB,MAAM6F,6BAA6B,GAAG1B,KAAK,IAAIC,IAAI,CAACrG,MAAM,GAAG,CAAC;EAC9D,MAAM+H,gBAAgB,GAAGD,6BAA6B,IAAIhC,gBAAgB;EAE1E,oBACE1J,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACxK,oBAAA,GAAAyK,0BAA0B;IAACvC,WAAW,EAAEJ,iBAAkB;IAAC4C,cAAc,EAAE3C;EAAqB,gBAC/FnJ,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACnL,wBAAA,GAAAsL,SAAS;IAACC,MAAM,EAAE3D,eAAgB;IAAC4D,IAAI,EAAC,KAAK;IAACC,SAAS,EAAEC,6BAAM,CAACC;EAAiB,gBAChFpM,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACnL,wBAAA,GAAA4L,IAAI;IAACH,SAAS,EAAEC,6BAAM,CAAC3D;EAAK,gBAC3BxI,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACzK,eAAA,GAAAmL,mBAAmB;IAAC5G,cAAc,EAAEA,cAAe;IAACwG,SAAS,EAAEC,6BAAM,CAACI;EAAQ,gBAC7EvM,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAChK,UAAA,GAAA4K,OAAO;IAACC,OAAO,EAAE,iBAAkB;IAACC,SAAS,EAAC;EAAQ,gBACrD1M,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACrG,IAAI;IAACoH,QAAQ;IAACC,IAAI,EAAE3D,yBAA0B;IAACiD,SAAS,EAAEC,6BAAM,CAACU;EAAc,gBAC9E7M,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAClK,cAAA,GAAAoL,YAAY;IAACC,IAAI,EAAC;EAAU,CAAE,CAC3B,CACC,CAAC,EACTrB,6BAA6B,iBAC5B1L,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAChK,UAAA,GAAA4K,OAAO;IAACC,OAAO,EAAE/C,gBAAgB,GAAG,eAAe,GAAG,eAAgB;IAACgD,SAAS,EAAC;EAAQ,gBACxF1M,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IACEM,SAAS,EAAE,GAAGC,6BAAM,CAACU,aAAa,IAAInD,gBAAgB,GAAGyC,6BAAM,CAACa,mBAAmB,GAAG,EAAE,EAAG;IAC3FC,OAAO,EAAEA,CAAA,KAAMtD,mBAAmB,CAAE/G,CAAC,IAAK,CAACA,CAAC;EAAE,gBAE9C5C,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/J,mBAAA,GAAAqL,IAAI;IAACC,EAAE,EAAC;EAAU,CAAE,CACf,CACD,CAEQ,CAAC,eACtBnN,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC3K,UAAA,GAAAmM,4BAA4B;IAC3BC,KAAK,EAAEvF,mBAAoB;IAC3BwF,eAAe,EAAEhG,eAAgB;IACjCxB,SAAS,EAAEA;EAAU,CACtB,CAAC,eACF9F,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAACoB;EAAY,GAChC3D,cAAc,iBAAI5J,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAACqB;EAAY,CAAE,CAAC,eACzDxN,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC6B,kBAAkB;IACjBvB,SAAS,EAAEC,6BAAM,CAACuB,gBAAiB;IACnC/H,UAAU,EAAEA,UAAW;IACvBG,SAAS,EAAEA,SAAU;IACrB6H,QAAQ,EAAE7G,kBAAmB;IAC7BwC,WAAW,EAAEA,WAAY;IACzBsE,OAAO,EAAEvG;EAAa,CACvB,CAAC,EACDsE,gBAAgB,iBACf3L,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKiC,GAAG,EAAE/D,OAAQ;IAACoC,SAAS,EAAEC,6BAAM,CAAC2B,YAAa;IAAClD,KAAK,EAAE;MAAES,SAAS,EAAEtB,aAAa,CAACrC;IAAQ;EAAE,gBAC7F1H,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAAC4B,cAAe;IAACC,WAAW,EAAE5D;EAAgB,gBAClEpK,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAAC8B;EAAY,CAAE,CAClC,CAAC,eACNjO,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAAC+B;EAAW,gBAChClO,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAACgC;EAAa,gBAClCnO,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/J,mBAAA,GAAAqL,IAAI;IAACC,EAAE,EAAC,UAAU;IAACjB,SAAS,EAAEC,6BAAM,CAACiC;EAAS,CAAE,CAAC,eAClDpO,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAMM,SAAS,EAAEC,6BAAM,CAACkC;EAAU,GAAC,eAAmB,CAAC,EACtDrE,KAAK,IAAIC,IAAI,CAACrG,MAAM,GAAG,CAAC,iBAAI5D,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAMM,SAAS,EAAEC,6BAAM,CAACmC;EAAU,GAAErE,IAAI,CAACrG,MAAa,CAChF,CAAC,eACN5D,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAQM,SAAS,EAAEC,6BAAM,CAACoC,SAAU;IAACtB,OAAO,EAAEA,CAAA,KAAMtD,mBAAmB,CAAC,KAAK;EAAE,gBAC7E3J,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/J,mBAAA,GAAAqL,IAAI;IAACC,EAAE,EAAC;EAAG,CAAE,CACR,CACL,CAAC,eACNnN,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAACqC;EAAS,GAC7BxE,KAAK,gBACJhK,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC1J,iBAAA,GAAAuM,YAAY;IAACxE,IAAI,EAAEA,IAAK;IAAClC,MAAM,EAAEA,MAAO;IAACmC,QAAQ,EAAEA;EAAS,CAAE,CAAC,gBAEhElK,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;IAAKM,SAAS,EAAEC,6BAAM,CAACuC;EAAU,GAAC,iDAAoD,CAErF,CACF,CAEJ,CACD,CAAC,eACP1O,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAClL,yBAAA,GAAAiO,aAAa;IAACzC,SAAS,EAAEC,6BAAM,CAACyC;EAAS,gBACxC5O,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC7K,sBAAA,GAAA8N,SAAS;IACRnC,SAAS,EAAC,MAAM;IAChBoC,MAAM,EAAE3G,aAAc;IACtB6F,WAAW,EAAG3L,CAAC,IAAKA,CAAC,CAAC0M,eAAe,CAAC,CAAE,CAAC;IAAA;IACzC9B,OAAO,EAAEA,CAAA,KAAM7E,kBAAkB,CAAE4G,CAAC,IAAK,CAACA,CAAC,CAAE;IAC7CC,cAAc,EAAE,GAAG9G,aAAa,GAAG,MAAM,GAAG,MAAM,oBAAqB;IACvE+D,SAAS,EAAEC,6BAAM,CAAC+C;EAAU,CAC7B,CACY,CAAC,eAChBlP,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACnL,wBAAA,GAAA4L,IAAI;IAACH,SAAS,EAAEC,6BAAM,CAACgD;EAAM,gBAC5BnP,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACpL,gBAAA,GAAA4O,YAAY,qBACXpP,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/K,OAAA,GAAAwO,YAAY;IAACnD,SAAS,EAAEC,6BAAM,CAACmD;EAAc,gBAC5CtP,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/K,OAAA,GAAA0O,OAAO;IAACrD,SAAS,EAAEC,6BAAM,CAACqD;EAAK,gBAC9BxP,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/K,OAAA,GAAA4O,GAAG,QAAC,cAAiB,CAAC,eACvBzP,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/K,OAAA,GAAA4O,GAAG,QAAC,YAAe,CACb,CAAC,eACVzP,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/K,OAAA,GAAA6O,QAAQ;IAACxD,SAAS,EAAEC,6BAAM,CAACwD;EAAW,gBACrC3P,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC3J,kBAAA,GAAA2N,iBAAiB;IAChBjH,SAAS,EAAEA,SAAU;IACrBI,YAAY,EAAEA,YAAa;IAC3BD,mBAAmB,EAAEhD,SAAS,CAAC8C,OAAO,EAAEE,mBAAoB;IAC5D+G,mBAAmB,EAAG5I,WAAW,IAAK;MACpC,IAAI,CAACH,kBAAkB,IAAI,CAACH,QAAQ,EAAE;MACtC,MAAMmJ,0BAA0B,GAAGxJ,MAAM,CAAC,GAAG,CAAC;MAE9C,MAAMyJ,YAAY,GAAGpJ,QAAQ,CAACqJ,QAAQ,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC5L,MAAM,CAAE2K,CAAC,IAAKA,CAAC,CAAC;MAElE,IAAI,CAACc,0BAA0B,EAAE;QAC/BC,YAAY,CAACxL,IAAI,CAAC0C,WAAW,CAACC,UAAU,CAACC,WAAW,CAAC,CAAC,CAAC;MACzD,CAAC,MAAM;QACL4I,YAAY,CAACA,YAAY,CAACnM,MAAM,GAAG,CAAC,CAAC,GAAGqD,WAAW,CAACC,UAAU,CAACC,WAAW,CAAC,CAAC;MAC9E;MAEA,MAAM+I,SAAS,GAAG,IAAIC,eAAe,CAAC/J,YAAY,CAAC;MACnD,IAAII,sBAAsB,EAAE;QAC1B0J,SAAS,CAAChN,GAAG,CAAC,SAAS,EAAEsD,sBAAsB,CAAC;MAClD;MACA,MAAM4J,OAAO,GAAGL,YAAY,CAACM,IAAI,CAAC,GAAG,CAAC;MACtC5J,QAAQ,CAAC,IAAI2J,OAAO,IAAIF,SAAS,CAAC/J,QAAQ,CAAC,CAAC,EAAE,CAAC;MAC/C;MACA;MACAwD,mBAAmB,CAAC,IAAI,CAAC;IAC3B,CAAE;IACF2G,GAAG,EAAE7H,cAAe;IACpB1B,YAAY,EAAEjB,SAAS,CAACiB,YAAa;IACrCwJ,MAAM,EAAEzJ;EAAmB,CAC5B,CACO,CAAC,eACX9G,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC/K,OAAA,GAAA6O,QAAQ;IAACxD,SAAS,EAAEC,6BAAM,CAACwD;EAAW,GACpC/H,UAAU,IAAIA,UAAU,CAAChE,MAAM,GAAG,CAAC,gBAAG5D,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAChL,aAAA,GAAA4P,SAAS;IAACC,IAAI,EAAE7I,UAAW;IAAC8I,YAAY;EAAA,CAAE,CAAC,gBAAG1Q,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,YAAM,CACpF,CACE,CACF,CACV,CACG,CACe,CAAC;AAEjC;AASO,SAAS6B,kBAAkBA,CAAAkD,IAAA,EAON;EAAA,IAPO;MACjC7K,SAAS;MACT6H,QAAQ;MACRrE,WAAW;MACX3D,UAAU;MACViI;IAEuB,CAAC,GAAA+C,IAAA;IADrBC,yBAAyB,GAAA9M,wBAAA,CAAA6M,IAAA,EAAAvO,SAAA;EAE5B,MAAMyO,GAAG,GAAG/K,SAAS,CAACgL,WAAW,EAAE5K,EAAE;EACrC,MAAM6K,kBAAkB,GAAGpL,UAAU,EAAE1C,GAAG,CAAC4N,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;;EAEvD,IAAI/K,SAAS,CAACiB,YAAY,CAACnD,MAAM,KAAK,CAAC,IAAIkC,SAAS,CAACkL,IAAI,KAAK,6BAA6B,IAAID,kBAAkB,EAAE;IACjH,oBACE/Q,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA;MAAKM,SAAS,EAAEC,6BAAM,CAAC8E;IAAmB,gBACxCjR,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,2BACE5L,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACrK,cAAA,GAAA2P,EAAE;MAAChF,SAAS,EAAEC,6BAAM,CAACgF;IAAM,GAAC,cAAgB,CAAC,eAC9CnR,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACtK,UAAA,GAAA8P,SAAS;MAACC,gBAAgB;MAACnF,SAAS,EAAEC,6BAAM,CAACmF;IAAU,CAAE,CAAC,eAC3DtR,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACpK,UAAA,GAAA+P,SAAS;MACRC,KAAK,EAAC,MAAM;MACZL,KAAK,EAAC;IAC4D,gBAElEnR,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACvK,MAAA,GAAAoQ,SAAS,qBACRzR,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACmF,kBAAkB,MAAE,CACZ,CACF,CACR,CACF,CAAC;EAEV;EAEA,IAAIjL,SAAS,EAAE4L,WAAW,KAAK,SAAS,IAAI5L,SAAS,EAAEkL,IAAI,KAAK,qBAAqB,EACnF,oBACEhR,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACjK,iBAAA,GAAAgQ,iBAAiB;IAACzF,SAAS,EAAEC,6BAAM,CAACyF,kBAAmB;IAACC,MAAM,EAAC,YAAY;IAACV,KAAK,EAAC;EAA2B,GAAC,2BAE5F,CAAC;EAExB,IAAIrL,SAAS,EAAE4L,WAAW,KAAK,QAAQ,IAAI5L,SAAS,EAAEkL,IAAI,KAAK,qBAAqB,EAClF,oBACEhR,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAACjK,iBAAA,GAAAgQ,iBAAiB;IAChBzF,SAAS,EAAEC,6BAAM,CAACyF,kBAAmB;IACrCC,MAAM,EAAC,SAAS;IAChBV,KAAK,EAAC;EAAkC,CACtB,CAAC;;EAGzB;EACA,IAAIrL,SAAS,CAACiB,YAAY,CAACnD,MAAM,KAAK,CAAC,EAAE;IACvC,oBACE5D,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC5K,SAAA,GAAA8Q,QAAQ;MACPX,KAAK,EAAC,+CAA+C;MACrDY,QAAQ,EAAC,kCAAkC;MAC3CC,IAAI,EAAE;IAAqF,CAC5F,CAAC;EAEN;EAEA,oBACEhS,MAAA,GAAAuC,OAAA,CAAAqJ,aAAA,CAAC5J,GAAA,GAAAiQ,oBAAoB,EAAAzO,QAAA;IACnB0I,SAAS,EAAEC,6BAAM,CAAC+F;IAClB;IAAA;IACAC,QAAQ,EAAE,IAAK;IACfrM,SAAS,EAAEA,SAAU;IACrBsM,WAAW,EAAC,MAAM;IAClBnL,WAAW,EAAE0G,QAAS;IACtB0E,iBAAiB;IACjBC,MAAM,EAAE,IAAK;IACbhJ,WAAW,EAAEA,WAAY;IACzBsE,OAAO,EAAEA;EAAQ,GACbgD,yBAAyB,CAC9B,CAAC;AAEN","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_lodash","_queryString","_documenterTheme","_baseUiSurfacesSplitPane","_baseUiSurfacesSplitPane2","_component","_documenterUi","_panels","_docsUiQueries","_uiFoundationUiButtons","_designUi","_previewUi","_uiFoundationUiHooks","_compositionsUi","_compositionsUiHooks","_mdxUi","_designUi2","_documenterUi2","_designUi3","_baseReactNavigation","_designUiInput","_designUiSurfaces","_designUi4","_evangelistElements","_compositionsUi2","_compositionsModule","_ui","_compositionsPanel","_liveControlPanel","_useDefaultControlsSchemaResponder","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","_extends","assign","bind","arguments","apply","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Link","BaseLink","Compositions","menuBarWidgets","emptyState","usePreviewSandboxSlot","usePreviewPropsSlot","enableLiveControls","component","useContext","ComponentContext","componentIdStr","id","toString","searchParams","useSearchParams","params","useParams","versionFromQueryParams","navigate","useNavigate","location","useLocation","currentCompositionName","currentComposition","compositions","find","composition","identifier","toLowerCase","head","sandboxValue","setSandboxValue","useState","selectedRef","useRef","current","useDefaultControlsSchemaResponder","properties","useDocs","previewSandboxHooks","values","previewPropsHooks","isMobile","useIsMobile","showSidebar","isSidebarOpen","setSidebarOpenness","sidebarOpenness","Layout","row","left","compositionUrl","toPreviewUrl","isScaling","preview","includesEnvTemplates","includesEnvTemplate","useNameParam","compositionIdentifierParam","currentCompositionFullUrl","compositionParams","setCompositionParams","fullscreen","livecontrols","queryParams","useMemo","queryString","stringify","collapsedCompositions","setCollapsedCompositions","Set","isDraggingTray","setIsDraggingTray","trayRef","trayHeight","setTrayHeight","ready","defs","onChange","useLiveControls","onResizeStripMouseDown","useCallback","button","preventDefault","startY","clientY","startHeight","offsetHeight","parentEl","parentElement","parentHeight","clientHeight","window","innerHeight","maxHeight","Math","max","document","body","style","cursor","userSelect","pendingHeight","rafScheduled","applyHeight","height","onMove","ev","delta","min","requestAnimationFrame","onUp","removeEventListener","addEventListener","useEffect","next","currentCompositionHasControls","currentCompositionIdentifier","isTrayCollapsedForCurrent","showControlsTray","isTrayCollapsed","toggleTrayCollapsed","prev","delete","add","createElement","CompositionContextProvider","setQueryParams","SplitPane","layout","size","className","styles","compositionsPage","Pane","CompositionsMenuBar","menuBar","Tooltip","content","placement","external","href","toolbarButton","OptionButton","icon","SandboxPermissionsAggregator","hooks","onSandboxChange","previewArea","dragOverlay","PreviewPropsAggregator","previewAttrs","CompositionContent","compositionPanel","selected","sandbox","LiveControlsTray","collapsed","onToggleExpanded","HoverSplitter","splitter","Collapser","isOpen","onMouseDown","stopPropagation","onClick","x","tooltipContent","collapser","right","ThemeContext","TabContainer","tabsContainer","TabList","tabs","Tab","TabPanel","tabContent","CompositionsPanel","hasLiveControls","liveControlsActive","onToggleLiveControls","onSelectComposition","selectedCompositionFromUrl","pathSegments","pathname","split","urlParams","URLSearchParams","newPath","join","url","active","PropTable","rows","showListView","trayStyle","undefined","ref","classNames","controlsTray","controlsTrayCollapsed","trayResizeStrip","role","title","trayDragBar","trayHeaderInner","tabIndex","onKeyDown","key","trayTitleRow","Icon","of","trayIcon","trayTitle","trayBadge","trayCollapseIcon","trayCollapseIconCollapsed","trayBody","LiveControls","trayEmpty","_ref","componentCompositionProps","env","environment","EmptyStateTemplate","host","noCompositionsPage","H1","Separator","isPresentational","separator","AlertCard","level","MDXLayout","buildStatus","StatusMessageCard","buildStatusMessage","status","EmptyBox","linkText","link","ComponentComposition","compositionsIframe","viewport","forceHeight","fullContentHeight","pubsub"],"sources":["compositions.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useEffect, useState, useMemo, useRef, useCallback } from 'react';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport classNames from 'classnames';\nimport head from 'lodash.head';\nimport queryString from 'query-string';\nimport { ThemeContext } from '@teambit/documenter.theme.theme-context';\nimport { SplitPane, Pane, Layout } from '@teambit/base-ui.surfaces.split-pane.split-pane';\nimport { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';\nimport type { ComponentModel } from '@teambit/component';\nimport { ComponentContext } from '@teambit/component';\nimport { PropTable } from '@teambit/documenter.ui.property-table';\nimport { Tab, TabContainer, TabList, TabPanel } from '@teambit/panels';\nimport { useDocs } from '@teambit/docs.ui.queries.get-docs';\nimport { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';\nimport { EmptyBox } from '@teambit/design.ui.empty-box';\nimport {\n PreviewPropsAggregator,\n SandboxPermissionsAggregator,\n toPreviewUrl,\n} from '@teambit/preview.ui.component-preview';\nimport { useIsMobile } from '@teambit/ui-foundation.ui.hooks.use-is-mobile';\nimport { CompositionsMenuBar } from '@teambit/compositions.ui.compositions-menu-bar';\nimport { CompositionContextProvider } from '@teambit/compositions.ui.hooks.use-composition';\nimport { MDXLayout } from '@teambit/mdx.ui.mdx-layout';\nimport { Separator } from '@teambit/design.ui.separator';\nimport { H1 } from '@teambit/documenter.ui.heading';\nimport { AlertCard } from '@teambit/design.ui.alert-card';\nimport { Link as BaseLink, useNavigate, useLocation } from '@teambit/base-react.navigation.link';\nimport { OptionButton } from '@teambit/design.ui.input.option-button';\nimport { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { Tooltip } from '@teambit/design.ui.tooltip';\nimport { Icon } from '@teambit/evangelist.elements.icon';\nimport type { UseLiveControlsResult } from '@teambit/compositions.ui.composition-live-controls';\nimport { useLiveControls } from '@teambit/compositions.ui.composition-live-controls';\nimport type {\n EmptyStateSlot,\n CompositionsMenuSlot,\n UsePreviewSandboxSlot,\n UsePreviewPropsSlot,\n} from './compositions.ui.runtime';\nimport type { Composition } from './composition';\nimport styles from './compositions.module.scss';\nimport { ComponentComposition } from './ui';\nimport { CompositionsPanel } from './ui/compositions-panel/compositions-panel';\nimport { LiveControls } from './ui/compositions-panel/live-control-panel';\nimport type { ComponentCompositionProps } from './ui/composition-preview';\nimport { useDefaultControlsSchemaResponder } from './use-default-controls-schema-responder';\n\n// @todo - this will be fixed as part of the @teambit/base-react.navigation.link upgrade to latest\nconst Link = BaseLink as any;\n\nexport type MenuBarWidget = {\n location: 'start' | 'end';\n content: ReactNode;\n};\nexport type CompositionsProp = {\n menuBarWidgets?: CompositionsMenuSlot;\n emptyState?: EmptyStateSlot;\n usePreviewSandboxSlot?: UsePreviewSandboxSlot;\n /**\n * per-component resolvers for iframe attributes on the composition preview (`allow`,\n * `referrerPolicy`, ...). Each resolver gets the current `ComponentModel`; results merge\n * with later registrations winning. Default `allow` (`clipboard-write`) lives on\n * `ComponentPreview` and applies when no resolver overrides it.\n */\n usePreviewPropsSlot?: UsePreviewPropsSlot;\n enableLiveControls?: boolean;\n};\n\nexport function Compositions({\n menuBarWidgets,\n emptyState,\n usePreviewSandboxSlot,\n usePreviewPropsSlot,\n enableLiveControls = true,\n}: CompositionsProp) {\n const component = useContext(ComponentContext);\n const componentIdStr = component.id.toString();\n const [searchParams] = useSearchParams();\n const params = useParams();\n const versionFromQueryParams = searchParams.get('version');\n const navigate = useNavigate();\n const location = useLocation();\n const currentCompositionName = params['*'];\n const currentComposition =\n component.compositions.find((composition) => composition.identifier.toLowerCase() === currentCompositionName) ||\n head(component.compositions);\n const [sandboxValue, setSandboxValue] = useState('');\n const selectedRef = useRef(currentComposition);\n selectedRef.current = currentComposition;\n useDefaultControlsSchemaResponder(componentIdStr, enableLiveControls);\n\n const properties = useDocs(component.id);\n const previewSandboxHooks = usePreviewSandboxSlot?.values() ?? [];\n const previewPropsHooks = usePreviewPropsSlot?.values() ?? [];\n const isMobile = useIsMobile();\n const showSidebar = !isMobile && component.compositions.length > 0;\n const [isSidebarOpen, setSidebarOpenness] = useState(showSidebar);\n\n const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.left;\n\n const compositionUrl = toPreviewUrl(component, 'compositions');\n const isScaling = component?.preview?.isScaling;\n const includesEnvTemplates = component?.preview?.includesEnvTemplate;\n const useNameParam = component?.preview?.useNameParam;\n const compositionIdentifierParam =\n useNameParam || (isScaling && includesEnvTemplates === false)\n ? `name=${currentComposition?.identifier}`\n : currentComposition?.identifier;\n\n const currentCompositionFullUrl = toPreviewUrl(component, 'compositions', compositionIdentifierParam);\n\n const [compositionParams, setCompositionParams] = useState<Record<string, any>>(() =>\n enableLiveControls ? { fullscreen: true, livecontrols: true } : { fullscreen: true }\n );\n\n const queryParams = useMemo(() => queryString.stringify(compositionParams), [compositionParams]);\n\n // Tracks compositions the user has explicitly collapsed. Anything not in\n // this set defaults to expanded, which gives us \"auto-open on load\" as a\n // pure derivation rather than an effect.\n const [collapsedCompositions, setCollapsedCompositions] = useState<Set<string>>(() => new Set());\n const [isDraggingTray, setIsDraggingTray] = useState(false);\n const trayRef = useRef<HTMLDivElement | null>(null);\n // `null` = auto-size to content (default). Becomes a number once the user\n // drag-resizes — only then do we pin a fixed height.\n const [trayHeight, setTrayHeight] = useState<number | null>(null);\n const { ready, defs, values, onChange } = useLiveControls();\n\n const onResizeStripMouseDown = useCallback((e: React.MouseEvent) => {\n if (e.button !== 0) return;\n e.preventDefault();\n const startY = e.clientY;\n // Seed the drag from the tray's current rendered height — handles the\n // initial auto-sized case (where `trayHeight` is still null).\n const startHeight = trayRef.current?.offsetHeight ?? 0;\n const parentEl = trayRef.current?.parentElement;\n const parentHeight = parentEl?.clientHeight ?? window.innerHeight;\n const maxHeight = Math.max(120, parentHeight - 80);\n setIsDraggingTray(true);\n document.body.style.cursor = 'ns-resize';\n document.body.style.userSelect = 'none';\n // Mutate the tray's inline height directly and rAF-throttle, so dragging\n // doesn't re-render the whole compositions tree (including the iframe)\n // on every mousemove. State is committed once on mouseup.\n let pendingHeight = startHeight;\n let rafScheduled = false;\n const applyHeight = () => {\n rafScheduled = false;\n if (trayRef.current) trayRef.current.style.height = `${pendingHeight}px`;\n };\n const onMove = (ev: MouseEvent) => {\n const delta = startY - ev.clientY;\n pendingHeight = Math.max(120, Math.min(maxHeight, startHeight + delta));\n if (!rafScheduled) {\n rafScheduled = true;\n requestAnimationFrame(applyHeight);\n }\n };\n const onUp = () => {\n setIsDraggingTray(false);\n setTrayHeight(pendingHeight);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n }, []);\n\n // collapse sidebar when empty, reopen when not\n useEffect(() => setSidebarOpenness(showSidebar), [showSidebar]);\n useEffect(() => {\n if (enableLiveControls) {\n setCompositionParams((current) => {\n if (current.livecontrols === true) return current;\n return { ...current, livecontrols: true };\n });\n return;\n }\n\n setCompositionParams((current) => {\n if (!('livecontrols' in current)) return current;\n const next = { ...current };\n delete next.livecontrols;\n return next;\n });\n }, [enableLiveControls]);\n\n const currentCompositionHasControls = ready && defs.length > 0;\n const currentCompositionIdentifier = currentComposition?.identifier;\n const isTrayCollapsedForCurrent =\n !!currentCompositionIdentifier && collapsedCompositions.has(currentCompositionIdentifier);\n const showControlsTray = currentCompositionHasControls;\n const isTrayCollapsed = showControlsTray && isTrayCollapsedForCurrent;\n\n const toggleTrayCollapsed = useCallback(() => {\n if (!currentCompositionIdentifier) return;\n setCollapsedCompositions((prev) => {\n const next = new Set(prev);\n if (next.has(currentCompositionIdentifier)) next.delete(currentCompositionIdentifier);\n else next.add(currentCompositionIdentifier);\n return next;\n });\n }, [currentCompositionIdentifier]);\n\n return (\n <CompositionContextProvider queryParams={compositionParams} setQueryParams={setCompositionParams}>\n <SplitPane layout={sidebarOpenness} size=\"80%\" className={styles.compositionsPage}>\n <Pane className={styles.left}>\n <CompositionsMenuBar menuBarWidgets={menuBarWidgets} className={styles.menuBar}>\n <Tooltip content={'Open in new tab'} placement=\"bottom\">\n <Link external href={currentCompositionFullUrl} className={styles.toolbarButton}>\n <OptionButton icon=\"open-tab\" />\n </Link>\n </Tooltip>\n </CompositionsMenuBar>\n <SandboxPermissionsAggregator\n hooks={previewSandboxHooks}\n onSandboxChange={setSandboxValue}\n component={component}\n />\n <div className={styles.previewArea}>\n {isDraggingTray && <div className={styles.dragOverlay} />}\n <PreviewPropsAggregator hooks={previewPropsHooks} component={component}>\n {(previewAttrs) => (\n <CompositionContent\n {...previewAttrs}\n className={styles.compositionPanel}\n emptyState={emptyState}\n component={component}\n selected={currentComposition}\n queryParams={queryParams}\n sandbox={sandboxValue}\n />\n )}\n </PreviewPropsAggregator>\n {showControlsTray && (\n <LiveControlsTray\n trayRef={trayRef}\n collapsed={isTrayCollapsed}\n height={trayHeight}\n ready={ready}\n defs={defs}\n values={values}\n onChange={onChange}\n onResizeStripMouseDown={onResizeStripMouseDown}\n onToggleExpanded={toggleTrayCollapsed}\n />\n )}\n </div>\n </Pane>\n <HoverSplitter className={styles.splitter}>\n <Collapser\n placement=\"left\"\n isOpen={isSidebarOpen}\n onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag\n onClick={() => setSidebarOpenness((x) => !x)}\n tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side compositions`}\n className={styles.collapser}\n />\n </HoverSplitter>\n <Pane className={styles.right}>\n <ThemeContext>\n <TabContainer className={styles.tabsContainer}>\n <TabList className={styles.tabs}>\n <Tab>compositions</Tab>\n <Tab>properties</Tab>\n </TabList>\n <TabPanel className={styles.tabContent}>\n <CompositionsPanel\n isScaling={isScaling}\n useNameParam={useNameParam}\n includesEnvTemplate={component.preview?.includesEnvTemplate}\n hasLiveControls={currentCompositionHasControls}\n liveControlsActive={currentCompositionHasControls && !isTrayCollapsedForCurrent}\n onToggleLiveControls={toggleTrayCollapsed}\n onSelectComposition={(composition) => {\n if (!currentComposition || !location) return;\n const selectedCompositionFromUrl = params['*'];\n\n const pathSegments = location.pathname.split('/').filter((x) => x);\n\n if (!selectedCompositionFromUrl) {\n pathSegments.push(composition.identifier.toLowerCase());\n } else {\n pathSegments[pathSegments.length - 1] = composition.identifier.toLowerCase();\n }\n\n const urlParams = new URLSearchParams(searchParams);\n if (versionFromQueryParams) {\n urlParams.set('version', versionFromQueryParams);\n }\n const newPath = pathSegments.join('/');\n navigate(`/${newPath}?${urlParams.toString()}`);\n }}\n url={compositionUrl}\n compositions={component.compositions}\n active={currentComposition}\n />\n </TabPanel>\n <TabPanel className={styles.tabContent}>\n {properties && properties.length > 0 ? <PropTable rows={properties} showListView /> : <div />}\n </TabPanel>\n </TabContainer>\n </ThemeContext>\n </Pane>\n </SplitPane>\n </CompositionContextProvider>\n );\n}\n\ntype LiveControlsTrayProps = {\n trayRef: React.RefObject<HTMLDivElement | null>;\n collapsed: boolean;\n height: number | null;\n ready: boolean;\n defs: UseLiveControlsResult['defs'];\n values: UseLiveControlsResult['values'];\n onChange: UseLiveControlsResult['onChange'];\n onResizeStripMouseDown: (e: React.MouseEvent) => void;\n onToggleExpanded: () => void;\n};\n\nfunction LiveControlsTray({\n trayRef,\n collapsed,\n height,\n ready,\n defs,\n values,\n onChange,\n onResizeStripMouseDown,\n onToggleExpanded,\n}: LiveControlsTrayProps) {\n // height = null → let CSS size the tray to its content (with the max-height\n // clamp doing the upper bound); height = number → user has drag-resized,\n // pin to that.\n const trayStyle = collapsed || height === null ? undefined : { height };\n return (\n <div\n ref={trayRef}\n className={classNames(styles.controlsTray, collapsed && styles.controlsTrayCollapsed)}\n style={trayStyle}\n >\n {!collapsed && (\n <div\n className={styles.trayResizeStrip}\n onMouseDown={onResizeStripMouseDown}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n aria-label=\"Resize live controls\"\n title=\"Drag to resize\"\n >\n <div className={styles.trayDragBar} />\n </div>\n )}\n <div\n className={styles.trayHeaderInner}\n onClick={onToggleExpanded}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onToggleExpanded();\n }\n }}\n title={collapsed ? 'Click to expand' : 'Click to collapse'}\n >\n <div className={styles.trayTitleRow}>\n <Icon of=\"settings\" className={styles.trayIcon} />\n <span className={styles.trayTitle}>Live Controls</span>\n {ready && defs.length > 0 && <span className={styles.trayBadge}>{defs.length}</span>}\n </div>\n <span\n className={classNames(styles.trayCollapseIcon, collapsed && styles.trayCollapseIconCollapsed)}\n aria-hidden\n >\n <Icon of=\"right-rounded-corners\" />\n </span>\n </div>\n {!collapsed && (\n <div className={styles.trayBody}>\n {ready ? (\n <LiveControls defs={defs} values={values} onChange={onChange} />\n ) : (\n <div className={styles.trayEmpty}>No live controls available for this composition</div>\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport type CompositionContentProps = {\n component: ComponentModel;\n selected?: Composition;\n queryParams?: string | string[];\n emptyState?: EmptyStateSlot;\n} & ComponentCompositionProps;\n\nexport function CompositionContent({\n component,\n selected,\n queryParams,\n emptyState,\n sandbox,\n ...componentCompositionProps\n}: CompositionContentProps) {\n const env = component.environment?.id;\n const EmptyStateTemplate = emptyState?.get(env || ''); // || defaultTemplate;\n\n if (component.compositions.length === 0 && component.host === 'teambit.workspace/workspace' && EmptyStateTemplate) {\n return (\n <div className={styles.noCompositionsPage}>\n <div>\n <H1 className={styles.title}>Compositions</H1>\n <Separator isPresentational className={styles.separator} />\n <AlertCard\n level=\"info\"\n title=\"There are no\n compositions for this Component. Learn how to add compositions:\"\n >\n <MDXLayout>\n <EmptyStateTemplate />\n </MDXLayout>\n </AlertCard>\n </div>\n </div>\n );\n }\n\n if (component?.buildStatus === 'pending' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard className={styles.buildStatusMessage} status=\"PROCESSING\" title=\"component preview pending\">\n this might take some time\n </StatusMessageCard>\n );\n if (component?.buildStatus === 'failed' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard\n className={styles.buildStatusMessage}\n status=\"FAILURE\"\n title=\"failed to get component preview \"\n ></StatusMessageCard>\n );\n\n // TODO: get the docs domain from the community aspect and pass it here as a prop\n if (component.compositions.length === 0) {\n return (\n <EmptyBox\n title=\"There are no compositions for this component.\"\n linkText=\"Learn how to create compositions\"\n link={`https://bit.dev/reference/dev-services-overview/compositions/compositions-overview`}\n />\n );\n }\n\n return (\n <ComponentComposition\n className={styles.compositionsIframe}\n // TODO: Oded to add control for viewport.\n viewport={null}\n component={component}\n forceHeight=\"100%\"\n composition={selected}\n fullContentHeight\n pubsub={true}\n queryParams={queryParams}\n sandbox={sandbox}\n {...componentCompositionProps}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
|