prime-ui-kit 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/chunks/{chunk-4KONMO7Z.js → chunk-6L7VWEY6.js} +1 -1
- package/dist/chunks/{chunk-3PY52JP3.js → chunk-S27VR4ON.js} +5828 -5596
- package/dist/chunks/{chunk-W6EGTNG6.js → chunk-S4H2ZKWJ.js} +1099 -661
- package/dist/color-picker.js +2 -2
- package/dist/components/badge/Badge.d.ts +19 -2
- package/dist/components/card/Card.d.ts +10 -3
- package/dist/components/composer/Composer.d.ts +49 -1
- package/dist/components/crossfade/Crossfade.d.ts +6 -4
- package/dist/components/data-table/DataTable.d.ts +10 -2
- package/dist/components/data-table/Row.d.ts +12 -1
- package/dist/components/data-table/SelectionMenu.d.ts +20 -0
- package/dist/components/data-table/useRowSelection.d.ts +2 -0
- package/dist/components/empty-page/EmptyPage.d.ts +5 -2
- package/dist/components/hint/Hint.d.ts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/input/Input.d.ts +15 -3
- package/dist/components/message/Message.d.ts +6 -3
- package/dist/components/segmented-control/SegmentedControl.d.ts +5 -1
- package/dist/components/smart-filter/SmartFilter.d.ts +4 -0
- package/dist/components/spinner/Spinner.d.ts +3 -2
- package/dist/components/tabs/Tabs.d.ts +10 -1
- package/dist/hooks/useModalLayer.d.ts +15 -8
- package/dist/index.css +1 -1
- package/dist/index.js +2 -2
- package/dist/internal/RegionSwap.d.ts +18 -10
- package/dist/internal/RollingNumber.d.ts +7 -5
- package/dist/internal/ToolRow.d.ts +6 -0
- package/dist/internal/mediaSlot.d.ts +29 -0
- package/dist/internal/overlay/DialogParts.d.ts +30 -6
- package/dist/internal/overlay/focus.d.ts +18 -3
- package/dist/internal/partPresence.d.ts +19 -2
- package/dist/layout/sidebar/Sidebar.d.ts +3 -2
- package/dist/skill/anti-slop.md +35 -37
- package/dist/skill/api-contract.md +50 -2
- package/dist/skill/cheatsheet.md +15 -10
- package/dist/skill/checklist.md +19 -6
- package/dist/skill/choosing.md +79 -6
- package/dist/skill/components.md +1 -1
- package/dist/skill/composition.md +211 -51
- package/dist/skill/foundations.md +17 -6
- package/dist/skill/layouts.md +64 -14
- package/dist/skill/motion.md +9 -3
- package/dist/skill/reference/components/avatar/COMPONENT.md +1 -0
- package/dist/skill/reference/components/badge/COMPONENT.md +29 -5
- package/dist/skill/reference/components/badge/examples/examples.module.css +14 -0
- package/dist/skill/reference/components/badge/examples/overflow-count.tsx +32 -0
- package/dist/skill/reference/components/banner/COMPONENT.md +1 -1
- package/dist/skill/reference/components/card/COMPONENT.md +8 -4
- package/dist/skill/reference/components/card/examples/person-header.tsx +38 -0
- package/dist/skill/reference/components/composer/COMPONENT.md +35 -5
- package/dist/skill/reference/components/composer/examples/bot-keyboard.tsx +43 -0
- package/dist/skill/reference/components/confirm-dialog/COMPONENT.md +1 -1
- package/dist/skill/reference/components/crossfade/COMPONENT.md +18 -10
- package/dist/skill/reference/components/data-table/COMPONENT.md +17 -11
- package/dist/skill/reference/components/data-table/examples/screen.tsx +6 -9
- package/dist/skill/reference/components/data-table/examples/selection.tsx +60 -18
- package/dist/skill/reference/components/dnd/COMPONENT.md +3 -3
- package/dist/skill/reference/components/drawer/COMPONENT.md +41 -19
- package/dist/skill/reference/components/drawer/examples/footer-actions.tsx +54 -0
- package/dist/skill/reference/components/drawer/examples/header-actions.tsx +46 -25
- package/dist/skill/reference/components/drawer/examples/link-loading.tsx +57 -0
- package/dist/skill/reference/components/drawer/examples/screen.tsx +3 -5
- package/dist/skill/reference/components/empty-page/COMPONENT.md +2 -2
- package/dist/skill/reference/components/field-list/COMPONENT.md +7 -7
- package/dist/skill/reference/components/field-list/examples/row-menu.tsx +1 -1
- package/dist/skill/reference/components/hint/COMPONENT.md +1 -1
- package/dist/skill/reference/components/input/COMPONENT.md +16 -3
- package/dist/skill/reference/components/input/examples/password-policy.tsx +65 -0
- package/dist/skill/reference/components/list/COMPONENT.md +1 -1
- package/dist/skill/reference/components/login-form/COMPONENT.md +13 -11
- package/dist/skill/reference/components/login-form/examples/overview.tsx +5 -5
- package/dist/skill/reference/components/login-form/examples/states.tsx +7 -6
- package/dist/skill/reference/components/message/COMPONENT.md +5 -5
- package/dist/skill/reference/components/message/examples/bot-actions.tsx +47 -28
- package/dist/skill/reference/components/modal/COMPONENT.md +31 -12
- package/dist/skill/reference/components/modal/examples/structure.tsx +2 -4
- package/dist/skill/reference/components/segmented-control/COMPONENT.md +11 -6
- package/dist/skill/reference/components/segmented-control/examples/router.tsx +22 -0
- package/dist/skill/reference/components/select/COMPONENT.md +4 -1
- package/dist/skill/reference/components/sheet/COMPONENT.md +31 -12
- package/dist/skill/reference/components/sheet/examples/header-actions.tsx +5 -3
- package/dist/skill/reference/components/skeleton/COMPONENT.md +3 -2
- package/dist/skill/reference/components/smart-filter/COMPONENT.md +2 -1
- package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +8 -2
- package/dist/skill/reference/components/spinner/COMPONENT.md +1 -1
- package/dist/skill/reference/components/tabs/COMPONENT.md +7 -4
- package/dist/skill/reference/components/tabs/examples/in-drawer.tsx +18 -2
- package/dist/skill/reference/components/thumbnail/COMPONENT.md +1 -0
- package/dist/skill/reference/components/tooltip/COMPONENT.md +3 -3
- package/dist/skill/reference/foundation.md +15 -9
- package/dist/skill/reference/layout/page/COMPONENT.md +1 -0
- package/dist/skill/reference/layout/sidebar/COMPONENT.md +4 -2
- package/dist/skill/reference/layout/sidebar/examples/account-profile.tsx +66 -0
- package/dist/skill/responsive.md +28 -6
- package/dist/skill/ux.md +97 -2
- package/dist/tokens/semantic.d.ts +2 -1
- package/dist/tokens/themes/dark.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/avatar/COMPONENT.md +1 -0
- package/src/components/badge/COMPONENT.md +29 -5
- package/src/components/badge/examples/examples.module.css +14 -0
- package/src/components/badge/examples/overflow-count.tsx +32 -0
- package/src/components/banner/COMPONENT.md +1 -1
- package/src/components/card/COMPONENT.md +8 -4
- package/src/components/card/examples/person-header.tsx +38 -0
- package/src/components/composer/COMPONENT.md +35 -5
- package/src/components/composer/examples/bot-keyboard.tsx +43 -0
- package/src/components/confirm-dialog/COMPONENT.md +1 -1
- package/src/components/crossfade/COMPONENT.md +18 -10
- package/src/components/data-table/COMPONENT.md +17 -11
- package/src/components/data-table/examples/screen.tsx +6 -9
- package/src/components/data-table/examples/selection.tsx +60 -18
- package/src/components/dnd/COMPONENT.md +3 -3
- package/src/components/drawer/COMPONENT.md +41 -19
- package/src/components/drawer/examples/footer-actions.tsx +54 -0
- package/src/components/drawer/examples/header-actions.tsx +46 -25
- package/src/components/drawer/examples/link-loading.tsx +57 -0
- package/src/components/drawer/examples/screen.tsx +3 -5
- package/src/components/empty-page/COMPONENT.md +2 -2
- package/src/components/field-list/COMPONENT.md +7 -7
- package/src/components/field-list/examples/row-menu.tsx +1 -1
- package/src/components/hint/COMPONENT.md +1 -1
- package/src/components/input/COMPONENT.md +16 -3
- package/src/components/input/examples/password-policy.tsx +65 -0
- package/src/components/list/COMPONENT.md +1 -1
- package/src/components/login-form/COMPONENT.md +13 -11
- package/src/components/login-form/examples/overview.tsx +5 -5
- package/src/components/login-form/examples/states.tsx +7 -6
- package/src/components/message/COMPONENT.md +5 -5
- package/src/components/message/examples/bot-actions.tsx +47 -28
- package/src/components/modal/COMPONENT.md +31 -12
- package/src/components/modal/examples/structure.tsx +2 -4
- package/src/components/segmented-control/COMPONENT.md +11 -6
- package/src/components/segmented-control/examples/router.tsx +22 -0
- package/src/components/select/COMPONENT.md +4 -1
- package/src/components/sheet/COMPONENT.md +31 -12
- package/src/components/sheet/examples/header-actions.tsx +5 -3
- package/src/components/skeleton/COMPONENT.md +3 -2
- package/src/components/smart-filter/COMPONENT.md +2 -1
- package/src/components/smart-filter/examples/ranges.tsx +8 -2
- package/src/components/spinner/COMPONENT.md +1 -1
- package/src/components/tabs/COMPONENT.md +7 -4
- package/src/components/tabs/examples/in-drawer.tsx +18 -2
- package/src/components/thumbnail/COMPONENT.md +1 -0
- package/src/components/tooltip/COMPONENT.md +3 -3
- package/src/layout/page/COMPONENT.md +1 -0
- package/src/layout/sidebar/COMPONENT.md +4 -2
- package/src/layout/sidebar/examples/account-profile.tsx +66 -0
- package/src/styles/theme-dark.css +1 -0
- package/src/styles/theme-light.css +1 -0
|
@@ -144,6 +144,7 @@ import {
|
|
|
144
144
|
useCreateStore,
|
|
145
145
|
useEdgeOverflow,
|
|
146
146
|
useElementSize,
|
|
147
|
+
useEnterOnAppear,
|
|
147
148
|
useFieldCell,
|
|
148
149
|
useFieldCommit,
|
|
149
150
|
useFieldFrame,
|
|
@@ -159,6 +160,7 @@ import {
|
|
|
159
160
|
useLoadMore,
|
|
160
161
|
useMediaQuery,
|
|
161
162
|
useMediaSession,
|
|
163
|
+
useMediaSlotHost,
|
|
162
164
|
useMergedRefs,
|
|
163
165
|
useNestedSurfaceDepth,
|
|
164
166
|
useOpenState,
|
|
@@ -181,7 +183,7 @@ import {
|
|
|
181
183
|
useTextParts,
|
|
182
184
|
visuallyHiddenClass,
|
|
183
185
|
zonedParts
|
|
184
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-S27VR4ON.js";
|
|
185
187
|
import {
|
|
186
188
|
COMPACT_QUERY,
|
|
187
189
|
ControlSizeProvider,
|
|
@@ -1263,7 +1265,8 @@ function BannerRoot({
|
|
|
1263
1265
|
...rest
|
|
1264
1266
|
}) {
|
|
1265
1267
|
const rootRef = React6.useRef(null);
|
|
1266
|
-
const
|
|
1268
|
+
const appear = useEnterOnAppear();
|
|
1269
|
+
const mergedRef = useMergedRefs(rootRef, appear.ref, ref);
|
|
1267
1270
|
const tier = useHostTier(sizeProp);
|
|
1268
1271
|
const size = tier.size;
|
|
1269
1272
|
React6.useLayoutEffect(() => {
|
|
@@ -1286,7 +1289,7 @@ function BannerRoot({
|
|
|
1286
1289
|
{
|
|
1287
1290
|
...rest,
|
|
1288
1291
|
ref: mergedRef,
|
|
1289
|
-
className: cx(fieldTierClass, Banner_default.root, enterMotion_default.enter, className),
|
|
1292
|
+
className: cx(fieldTierClass, Banner_default.root, appear.entering && enterMotion_default.enter, className),
|
|
1290
1293
|
"data-depth": depth,
|
|
1291
1294
|
...toDataAttributes({ variant, tone, size, placement }),
|
|
1292
1295
|
children: /* @__PURE__ */ jsx8(SurfaceDepthProvider, { value: depth, children: /* @__PURE__ */ jsx8(BannerContext.Provider, { value: context, children: tier.provide(
|
|
@@ -1402,7 +1405,8 @@ function useModalLayer({
|
|
|
1402
1405
|
open,
|
|
1403
1406
|
closeOnEscape,
|
|
1404
1407
|
closeOnOutsideClick,
|
|
1405
|
-
onDismiss
|
|
1408
|
+
onDismiss,
|
|
1409
|
+
focusStart = "tabStop"
|
|
1406
1410
|
}) {
|
|
1407
1411
|
const ref = React8.useRef(null);
|
|
1408
1412
|
const openerRef = React8.useRef({ element: null, target: null, byPointer: false });
|
|
@@ -1411,11 +1415,13 @@ function useModalLayer({
|
|
|
1411
1415
|
wasOpenRef.current = open;
|
|
1412
1416
|
if (open) openerRef.current = captureOpener();
|
|
1413
1417
|
}
|
|
1418
|
+
const focusStartRef = React8.useRef(focusStart);
|
|
1419
|
+
focusStartRef.current = focusStart;
|
|
1414
1420
|
useInertSiblings(open, ref);
|
|
1415
1421
|
React8.useEffect(() => {
|
|
1416
1422
|
const node = ref.current;
|
|
1417
1423
|
if (!open || !node) return;
|
|
1418
|
-
focusInto(node);
|
|
1424
|
+
focusInto(node, void 0, openerRef.current.byPointer, focusStartRef.current);
|
|
1419
1425
|
return () => {
|
|
1420
1426
|
const { element: opener, byPointer } = openerRef.current;
|
|
1421
1427
|
if (opener?.closest("[inert]")) queueMicrotask(() => focusBack(opener, byPointer));
|
|
@@ -1452,6 +1458,7 @@ var DialogParts_default = {
|
|
|
1452
1458
|
close: "DialogParts_close",
|
|
1453
1459
|
title: "DialogParts_title",
|
|
1454
1460
|
description: "DialogParts_description",
|
|
1461
|
+
titleSkeleton: "DialogParts_titleSkeleton",
|
|
1455
1462
|
descriptionSkeleton: "DialogParts_descriptionSkeleton",
|
|
1456
1463
|
body: "DialogParts_body",
|
|
1457
1464
|
section: "DialogParts_section",
|
|
@@ -1461,6 +1468,7 @@ var DialogParts_default = {
|
|
|
1461
1468
|
sectionDescription: "DialogParts_sectionDescription",
|
|
1462
1469
|
footer: "DialogParts_footer",
|
|
1463
1470
|
meta: "DialogParts_meta",
|
|
1471
|
+
footerStart: "DialogParts_footerStart",
|
|
1464
1472
|
footerActions: "DialogParts_footerActions"
|
|
1465
1473
|
};
|
|
1466
1474
|
|
|
@@ -1561,6 +1569,7 @@ function DialogPanelBody({
|
|
|
1561
1569
|
overlayClassName,
|
|
1562
1570
|
enterConfirm = false,
|
|
1563
1571
|
controlSize,
|
|
1572
|
+
focusStart,
|
|
1564
1573
|
className,
|
|
1565
1574
|
children,
|
|
1566
1575
|
"aria-label": ariaLabel,
|
|
@@ -1579,7 +1588,8 @@ function DialogPanelBody({
|
|
|
1579
1588
|
open: root.open,
|
|
1580
1589
|
closeOnEscape: root.closeOnEscape,
|
|
1581
1590
|
closeOnOutsideClick: root.closeOnOutsideClick,
|
|
1582
|
-
onDismiss: root.requestClose
|
|
1591
|
+
onDismiss: root.requestClose,
|
|
1592
|
+
focusStart
|
|
1583
1593
|
});
|
|
1584
1594
|
const panelRef = useMergedRefs(layerRef, ref);
|
|
1585
1595
|
const compact = useMediaQuery(COMPACT_QUERY, swipePolicy === "compact");
|
|
@@ -1606,7 +1616,7 @@ function DialogPanelBody({
|
|
|
1606
1616
|
onEnterConfirm: root.onEnterConfirm,
|
|
1607
1617
|
confirmRef
|
|
1608
1618
|
});
|
|
1609
|
-
const content = /* @__PURE__ */ jsx9(DialogShellProvider, { value: shell.value, children: /* @__PURE__ */ jsx9(LayerProvider, { value: layer, children: /* @__PURE__ */ jsx9(SurfaceDepthProvider, { value: "floating", children }) }) });
|
|
1619
|
+
const content = /* @__PURE__ */ jsx9(DialogShellProvider, { value: shell.value, children: /* @__PURE__ */ jsx9(LayerProvider, { value: layer, children: /* @__PURE__ */ jsx9(DialogFooterContext.Provider, { value: false, children: /* @__PURE__ */ jsx9(SurfaceDepthProvider, { value: "floating", children }) }) }) });
|
|
1610
1620
|
return /* @__PURE__ */ jsxs6("div", { className: DialogParts_default.root, children: [
|
|
1611
1621
|
/* @__PURE__ */ jsx9(
|
|
1612
1622
|
"div",
|
|
@@ -1704,15 +1714,8 @@ function DialogShellProvider({
|
|
|
1704
1714
|
}) {
|
|
1705
1715
|
return /* @__PURE__ */ jsx9(DialogShellContext.Provider, { value, children });
|
|
1706
1716
|
}
|
|
1707
|
-
function mediaOf(children) {
|
|
1708
|
-
if (!React9.isValidElement(children)) return null;
|
|
1709
|
-
if (children.type === Avatar.Root) {
|
|
1710
|
-
return React9.cloneElement(children, { size: "l" });
|
|
1711
|
-
}
|
|
1712
|
-
return children.type === Thumbnail.Root ? children : null;
|
|
1713
|
-
}
|
|
1714
1717
|
function DialogIcon({ tone = "neutral", children, className, ...rest }) {
|
|
1715
|
-
const media =
|
|
1718
|
+
const { media, provide } = useMediaSlotHost();
|
|
1716
1719
|
return /* @__PURE__ */ jsx9(
|
|
1717
1720
|
"span",
|
|
1718
1721
|
{
|
|
@@ -1721,18 +1724,29 @@ function DialogIcon({ tone = "neutral", children, className, ...rest }) {
|
|
|
1721
1724
|
"data-tone": media ? void 0 : tone,
|
|
1722
1725
|
"data-media": media ? true : void 0,
|
|
1723
1726
|
"aria-hidden": "true",
|
|
1724
|
-
children:
|
|
1727
|
+
children: provide(children)
|
|
1725
1728
|
}
|
|
1726
1729
|
);
|
|
1727
1730
|
}
|
|
1728
1731
|
DialogIcon.displayName = "Dialog.Icon";
|
|
1729
|
-
function DialogTitle({ className, ...rest }) {
|
|
1732
|
+
function DialogTitle({ loading = false, className, children, ...rest }) {
|
|
1730
1733
|
const { titleId, registerTitle } = useDialogShell("Title");
|
|
1734
|
+
const swap = useSwapIn(loading ? "loading" : "data");
|
|
1731
1735
|
React9.useLayoutEffect(() => {
|
|
1732
1736
|
registerTitle(true);
|
|
1733
1737
|
return () => registerTitle(false);
|
|
1734
1738
|
}, [registerTitle]);
|
|
1735
|
-
return /* @__PURE__ */
|
|
1739
|
+
return /* @__PURE__ */ createElement(
|
|
1740
|
+
"h2",
|
|
1741
|
+
{
|
|
1742
|
+
...rest,
|
|
1743
|
+
key: swap.key,
|
|
1744
|
+
id: titleId,
|
|
1745
|
+
"aria-busy": loading || void 0,
|
|
1746
|
+
className: cx(textRole_default.titleM, DialogParts_default.title, swap.className, className)
|
|
1747
|
+
},
|
|
1748
|
+
loading ? /* @__PURE__ */ jsx9(Skeleton, { size: "l", className: DialogParts_default.titleSkeleton }) : children
|
|
1749
|
+
);
|
|
1736
1750
|
}
|
|
1737
1751
|
DialogTitle.displayName = "Dialog.Title";
|
|
1738
1752
|
function DialogDescription({
|
|
@@ -1756,7 +1770,7 @@ function DialogDescription({
|
|
|
1756
1770
|
"aria-busy": loading || void 0,
|
|
1757
1771
|
className: cx(textRole_default.bodyS, DialogParts_default.description, swap.className, className)
|
|
1758
1772
|
},
|
|
1759
|
-
loading ? /* @__PURE__ */ jsx9(Skeleton, { size: "xs", className: DialogParts_default.descriptionSkeleton }) : children
|
|
1773
|
+
loading ? /* @__PURE__ */ jsx9(Skeleton, { size: "xs", className: DialogParts_default.descriptionSkeleton }) : /* @__PURE__ */ jsx9(ControlSizeProvider, { value: "m", children })
|
|
1760
1774
|
);
|
|
1761
1775
|
}
|
|
1762
1776
|
DialogDescription.displayName = "Dialog.Description";
|
|
@@ -1808,8 +1822,13 @@ function DialogHeader({
|
|
|
1808
1822
|
);
|
|
1809
1823
|
}
|
|
1810
1824
|
DialogHeader.displayName = "Dialog.Header";
|
|
1825
|
+
var DialogFooterContext = React9.createContext(false);
|
|
1811
1826
|
function DialogActions({ className, children, ...rest }) {
|
|
1812
1827
|
useDialogShell("Actions");
|
|
1828
|
+
const inFooter = React9.useContext(DialogFooterContext);
|
|
1829
|
+
if (inFooter) {
|
|
1830
|
+
return /* @__PURE__ */ jsx9("div", { className: cx(DialogParts_default.footerStart, className), ...rest, children });
|
|
1831
|
+
}
|
|
1813
1832
|
return /* @__PURE__ */ jsx9("div", { className: cx(fieldTierClass, DialogParts_default.actions, className), "data-size": "s", ...rest, children: /* @__PURE__ */ jsx9(ControlSizeProvider, { value: "s", children }) });
|
|
1814
1833
|
}
|
|
1815
1834
|
DialogActions.displayName = "Dialog.Actions";
|
|
@@ -1862,17 +1881,19 @@ function DialogSection({
|
|
|
1862
1881
|
DialogSection.displayName = "Dialog.Section";
|
|
1863
1882
|
function DialogFooter({ layout, className, children, ...rest }) {
|
|
1864
1883
|
const { footerLayout } = useDialogShell("Footer");
|
|
1865
|
-
const { parts:
|
|
1884
|
+
const { parts: start, rest: other } = splitParts(children, DialogActions);
|
|
1885
|
+
const { parts: meta, rest: actions } = splitParts(other, DialogMeta);
|
|
1866
1886
|
return /* @__PURE__ */ jsx9(
|
|
1867
1887
|
"footer",
|
|
1868
1888
|
{
|
|
1869
1889
|
className: cx(hairline_default.top, DialogParts_default.footer, className),
|
|
1870
1890
|
"data-layout": layout ?? footerLayout,
|
|
1871
1891
|
...rest,
|
|
1872
|
-
children: meta.length > 0 ? /* @__PURE__ */ jsxs6(Fragment4, { children: [
|
|
1892
|
+
children: /* @__PURE__ */ jsx9(DialogFooterContext.Provider, { value: true, children: start.length + meta.length > 0 ? /* @__PURE__ */ jsxs6(Fragment4, { children: [
|
|
1893
|
+
start,
|
|
1873
1894
|
meta,
|
|
1874
1895
|
/* @__PURE__ */ jsx9("div", { className: DialogParts_default.footerActions, children: actions })
|
|
1875
|
-
] }) : children
|
|
1896
|
+
] }) : children })
|
|
1876
1897
|
}
|
|
1877
1898
|
);
|
|
1878
1899
|
}
|
|
@@ -2021,10 +2042,15 @@ var ConfirmDialog = {
|
|
|
2021
2042
|
Trigger: ConfirmDialogTrigger
|
|
2022
2043
|
};
|
|
2023
2044
|
|
|
2045
|
+
// src/components/crossfade/Crossfade.module.css
|
|
2046
|
+
var Crossfade_default = {
|
|
2047
|
+
root: "Crossfade_root"
|
|
2048
|
+
};
|
|
2049
|
+
|
|
2024
2050
|
// src/components/crossfade/Crossfade.tsx
|
|
2025
2051
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
2026
|
-
function Crossfade(props) {
|
|
2027
|
-
return /* @__PURE__ */ jsx12(RegionSwap, { ...props });
|
|
2052
|
+
function Crossfade({ className, ...props }) {
|
|
2053
|
+
return /* @__PURE__ */ jsx12(RegionSwap, { ...props, className: cx(Crossfade_default.root, className) });
|
|
2028
2054
|
}
|
|
2029
2055
|
|
|
2030
2056
|
// src/internal/barPlan.ts
|
|
@@ -3107,8 +3133,9 @@ var SegmentedControl_default = {
|
|
|
3107
3133
|
import { Fragment as Fragment6, jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3108
3134
|
var [SegmentedControlProvider, useSegmentedControlContext] = createComponentContext("SegmentedControl");
|
|
3109
3135
|
var CollapseContext = React13.createContext("full");
|
|
3136
|
+
var ITEM = `.${SegmentedControl_default.item}`;
|
|
3110
3137
|
var ENABLED_ITEM2 = '[role="radio"]:not([data-disabled="true"])';
|
|
3111
|
-
var CHECKED_ITEM =
|
|
3138
|
+
var CHECKED_ITEM = `${ITEM}[data-state="checked"]`;
|
|
3112
3139
|
function syncThumbColor(thumb, active) {
|
|
3113
3140
|
const color = active?.dataset.color;
|
|
3114
3141
|
if (color === thumb.dataset.color) return;
|
|
@@ -3118,11 +3145,11 @@ function syncThumbColor(thumb, active) {
|
|
|
3118
3145
|
function fitCollapse(viewport2, list) {
|
|
3119
3146
|
const fits = (level2) => {
|
|
3120
3147
|
list.dataset.collapse = level2;
|
|
3121
|
-
return
|
|
3148
|
+
return viewport2.scrollWidth <= viewport2.clientWidth + 1;
|
|
3122
3149
|
};
|
|
3123
3150
|
if (fits("full") || fits("compact")) return list.dataset.collapse;
|
|
3124
|
-
const items = list.querySelectorAll(
|
|
3125
|
-
const icons = list.querySelectorAll(
|
|
3151
|
+
const items = list.querySelectorAll(ITEM);
|
|
3152
|
+
const icons = list.querySelectorAll(`${ITEM} > .${SegmentedControl_default.icon}`);
|
|
3126
3153
|
const level = items.length > 0 && icons.length === items.length ? "icon" : "compact";
|
|
3127
3154
|
list.dataset.collapse = level;
|
|
3128
3155
|
return level;
|
|
@@ -3172,6 +3199,7 @@ function SegmentedControlRoot({
|
|
|
3172
3199
|
const size = tier.size;
|
|
3173
3200
|
const disabled = useInheritedDisabled(disabledProp);
|
|
3174
3201
|
const ids = useFieldFrame(id, { label, hint, error, invalid }, ariaDescribedBy);
|
|
3202
|
+
const links = hasLinkItems(children);
|
|
3175
3203
|
const [selectedValue, setSelectedValue] = useControllableState({
|
|
3176
3204
|
value,
|
|
3177
3205
|
defaultValue,
|
|
@@ -3233,6 +3261,7 @@ function SegmentedControlRoot({
|
|
|
3233
3261
|
);
|
|
3234
3262
|
function handleKeyDown(event) {
|
|
3235
3263
|
onKeyDown?.(event);
|
|
3264
|
+
if (links) return;
|
|
3236
3265
|
const items = Array.from(event.currentTarget.querySelectorAll(ENABLED_ITEM2));
|
|
3237
3266
|
const index = items.indexOf(document.activeElement);
|
|
3238
3267
|
const next = rovingIndex(event.key, index, items.length, "both");
|
|
@@ -3273,13 +3302,13 @@ function SegmentedControlRoot({
|
|
|
3273
3302
|
"div",
|
|
3274
3303
|
{
|
|
3275
3304
|
id: ids.controlId,
|
|
3276
|
-
role: "radiogroup",
|
|
3305
|
+
role: links ? "navigation" : "radiogroup",
|
|
3277
3306
|
"aria-label": ariaLabel,
|
|
3278
3307
|
"aria-labelledby": ariaLabelledBy ?? ids.labelledBy,
|
|
3279
3308
|
"aria-describedby": ids.describedBy,
|
|
3280
|
-
"aria-invalid": ids.invalid || void 0,
|
|
3281
|
-
"aria-required": required || void 0,
|
|
3282
|
-
"aria-disabled": disabled || void 0,
|
|
3309
|
+
"aria-invalid": !links && ids.invalid || void 0,
|
|
3310
|
+
"aria-required": !links && required || void 0,
|
|
3311
|
+
"aria-disabled": !links && disabled || void 0,
|
|
3283
3312
|
className: cx(fieldTierClass, SegmentedControl_default.root),
|
|
3284
3313
|
onKeyDown: handleKeyDown,
|
|
3285
3314
|
...toDataAttributes({
|
|
@@ -3330,6 +3359,11 @@ function SegmentedControlRoot({
|
|
|
3330
3359
|
) });
|
|
3331
3360
|
}
|
|
3332
3361
|
SegmentedControlRoot.displayName = "SegmentedControl.Root";
|
|
3362
|
+
function hasLinkItems(children) {
|
|
3363
|
+
return React13.Children.toArray(children).some(
|
|
3364
|
+
(child) => React13.isValidElement(child) && child.type === SegmentedControlItem && child.props.asChild === true
|
|
3365
|
+
);
|
|
3366
|
+
}
|
|
3333
3367
|
function isIconOnly(children) {
|
|
3334
3368
|
const nodes = React13.Children.toArray(children);
|
|
3335
3369
|
return nodes.length > 0 && nodes.every((node) => React13.isValidElement(node) && node.type === SegmentedControlIcon);
|
|
@@ -3352,6 +3386,7 @@ function SegmentedControlItem({
|
|
|
3352
3386
|
value,
|
|
3353
3387
|
disabled = false,
|
|
3354
3388
|
color,
|
|
3389
|
+
asChild = false,
|
|
3355
3390
|
children,
|
|
3356
3391
|
className,
|
|
3357
3392
|
onClick,
|
|
@@ -3361,43 +3396,63 @@ function SegmentedControlItem({
|
|
|
3361
3396
|
const ctx = useSegmentedControlContext();
|
|
3362
3397
|
const collapse = React13.useContext(CollapseContext);
|
|
3363
3398
|
const [tooltipOpen, setTooltipOpen] = React13.useState(false);
|
|
3399
|
+
const child = asChild ? slotChild(children, "SegmentedControl.Item") : null;
|
|
3400
|
+
const content = child ? child.props.children : children;
|
|
3364
3401
|
const isChecked = ctx.value === value;
|
|
3365
3402
|
const isDisabled = ctx.rootDisabled || disabled;
|
|
3366
3403
|
const isTabStop = !isDisabled && ctx.focusValue === value;
|
|
3367
|
-
const twoLine = hasChildOfType(
|
|
3404
|
+
const twoLine = hasChildOfType(content, SegmentedControlDescription);
|
|
3368
3405
|
const parts = useTextParts();
|
|
3369
|
-
const label = labelOf(
|
|
3370
|
-
const
|
|
3406
|
+
const label = labelOf(content);
|
|
3407
|
+
const shared = {
|
|
3408
|
+
"aria-labelledby": parts.labelledBy,
|
|
3409
|
+
"aria-describedby": parts.describedBy,
|
|
3410
|
+
...toDataAttributes({
|
|
3411
|
+
state: isChecked ? "checked" : "unchecked",
|
|
3412
|
+
disabled: isDisabled || void 0,
|
|
3413
|
+
"icon-only": isIconOnly(content) || void 0,
|
|
3414
|
+
"two-line": twoLine || void 0,
|
|
3415
|
+
value,
|
|
3416
|
+
color
|
|
3417
|
+
}),
|
|
3418
|
+
className: cx(palette_default.hue, SegmentedControl_default.item, touchTargetBlockClass, className),
|
|
3419
|
+
onClick: (event) => {
|
|
3420
|
+
onClick?.(event);
|
|
3421
|
+
if (!isDisabled && !event.defaultPrevented) ctx.onSelect(value);
|
|
3422
|
+
}
|
|
3423
|
+
};
|
|
3424
|
+
const inner2 = /* @__PURE__ */ jsxs10(Fragment6, { children: [
|
|
3425
|
+
color ? /* @__PURE__ */ jsx15(Badge.Dot, { className: SegmentedControl_default.dot }) : null,
|
|
3426
|
+
parts.provide(labelPlainText(content, SegmentedControlLabel))
|
|
3427
|
+
] });
|
|
3428
|
+
const segment = child ? (
|
|
3429
|
+
// A link segment: in the Tab order like any link, the current one `aria-current="page"`.
|
|
3430
|
+
/* @__PURE__ */ jsx15(
|
|
3431
|
+
InteractiveElement,
|
|
3432
|
+
{
|
|
3433
|
+
...rest,
|
|
3434
|
+
...shared,
|
|
3435
|
+
ref,
|
|
3436
|
+
element: "slot",
|
|
3437
|
+
disabled: isDisabled,
|
|
3438
|
+
"aria-current": isChecked ? "page" : void 0,
|
|
3439
|
+
children: React13.cloneElement(child, void 0, inner2)
|
|
3440
|
+
}
|
|
3441
|
+
)
|
|
3442
|
+
) : (
|
|
3371
3443
|
// biome-ignore lint/a11y/useSemanticElements: radiogroup of buttons with roving tabindex (WAI-ARIA APG)
|
|
3372
|
-
/* @__PURE__ */
|
|
3444
|
+
/* @__PURE__ */ jsx15(
|
|
3373
3445
|
"button",
|
|
3374
3446
|
{
|
|
3375
3447
|
...rest,
|
|
3448
|
+
...shared,
|
|
3376
3449
|
ref,
|
|
3377
3450
|
role: "radio",
|
|
3378
3451
|
type: "button",
|
|
3379
3452
|
"aria-checked": isChecked,
|
|
3380
|
-
"aria-labelledby": parts.labelledBy,
|
|
3381
|
-
"aria-describedby": parts.describedBy,
|
|
3382
|
-
...toDataAttributes({
|
|
3383
|
-
state: isChecked ? "checked" : "unchecked",
|
|
3384
|
-
disabled: isDisabled || void 0,
|
|
3385
|
-
"icon-only": isIconOnly(children) || void 0,
|
|
3386
|
-
"two-line": twoLine || void 0,
|
|
3387
|
-
value,
|
|
3388
|
-
color
|
|
3389
|
-
}),
|
|
3390
3453
|
tabIndex: isTabStop ? 0 : -1,
|
|
3391
3454
|
disabled: isDisabled,
|
|
3392
|
-
|
|
3393
|
-
onClick: (event) => {
|
|
3394
|
-
onClick?.(event);
|
|
3395
|
-
if (!isDisabled && !event.defaultPrevented) ctx.onSelect(value);
|
|
3396
|
-
},
|
|
3397
|
-
children: [
|
|
3398
|
-
color ? /* @__PURE__ */ jsx15(Badge.Dot, { className: SegmentedControl_default.dot }) : null,
|
|
3399
|
-
parts.provide(labelPlainText(children, SegmentedControlLabel))
|
|
3400
|
-
]
|
|
3455
|
+
children: inner2
|
|
3401
3456
|
}
|
|
3402
3457
|
)
|
|
3403
3458
|
);
|
|
@@ -3643,6 +3698,7 @@ var NUMBER = new Intl.NumberFormat("ru-RU");
|
|
|
3643
3698
|
function rangeText(field, range, labels) {
|
|
3644
3699
|
if (field.kind === "date-range") {
|
|
3645
3700
|
return formatDatepickerValue({
|
|
3701
|
+
...field.calendar,
|
|
3646
3702
|
mode: "range",
|
|
3647
3703
|
value: {
|
|
3648
3704
|
from: range.from instanceof Date ? range.from : null,
|
|
@@ -3867,6 +3923,7 @@ function Panel({ searchable }) {
|
|
|
3867
3923
|
) : /* @__PURE__ */ jsx17(
|
|
3868
3924
|
Datepicker.Root,
|
|
3869
3925
|
{
|
|
3926
|
+
...field.calendar,
|
|
3870
3927
|
mode: "range",
|
|
3871
3928
|
size,
|
|
3872
3929
|
fullWidth: true,
|
|
@@ -4156,6 +4213,9 @@ import { jsx as jsx18 } from "react/jsx-runtime";
|
|
|
4156
4213
|
function ToolGroup({ className, ...rest }) {
|
|
4157
4214
|
return /* @__PURE__ */ jsx18("div", { ...rest, className: cx(ToolRow_default.group, className) });
|
|
4158
4215
|
}
|
|
4216
|
+
function ToolCell({ className, ...rest }) {
|
|
4217
|
+
return /* @__PURE__ */ jsx18("div", { ...rest, className: cx(ToolRow_default.cell, className), "data-kind": "fixed" });
|
|
4218
|
+
}
|
|
4159
4219
|
function kindOf(node) {
|
|
4160
4220
|
if (isPart(node, SmartFilter.Toolbar) || isPart(node, Input.Root) || isPart(node, Typography) || isPart(node, ToolGroup)) {
|
|
4161
4221
|
return "grow";
|
|
@@ -4171,7 +4231,9 @@ function filled(node) {
|
|
|
4171
4231
|
}
|
|
4172
4232
|
var keyOf = (node, index) => React15.isValidElement(node) && node.key != null ? String(node.key) : `#${index}`;
|
|
4173
4233
|
function ToolRow({ fill = true, className, children, ...rest }) {
|
|
4174
|
-
return /* @__PURE__ */ jsx18("div", { ...rest, className: cx(ToolRow_default.row, className), "data-fill": fill ? "true" : void 0, children: flattenChildren(children).map(
|
|
4234
|
+
return /* @__PURE__ */ jsx18("div", { ...rest, className: cx(ToolRow_default.row, className), "data-fill": fill ? "true" : void 0, children: flattenChildren(children).map(
|
|
4235
|
+
(item, index) => isPart(item, ToolCell) ? React15.cloneElement(item, { key: keyOf(item, index) }) : /* @__PURE__ */ jsx18("div", { className: ToolRow_default.cell, "data-kind": kindOf(item), children: filled(item) }, keyOf(item, index))
|
|
4236
|
+
) });
|
|
4175
4237
|
}
|
|
4176
4238
|
function ToolChips({ className, ...rest }) {
|
|
4177
4239
|
return /* @__PURE__ */ jsx18("div", { ...rest, className: cx(ToolRow_default.chips, className) });
|
|
@@ -6092,6 +6154,8 @@ function SidebarBrand({
|
|
|
6092
6154
|
SidebarBrand.displayName = "Sidebar.Brand";
|
|
6093
6155
|
function SidebarAccount({ description, className, children, type, ...rest }) {
|
|
6094
6156
|
const { size } = useSidebar();
|
|
6157
|
+
const popup = rest["aria-haspopup"];
|
|
6158
|
+
const opensMenu = popup === "menu" || popup === true || popup === "true";
|
|
6095
6159
|
const nodes = React19.Children.toArray(children);
|
|
6096
6160
|
const avatar = nodes.find((node) => isElementOf(node, Avatar.Root));
|
|
6097
6161
|
const name = nodes.filter((node) => node !== avatar);
|
|
@@ -6107,7 +6171,7 @@ function SidebarAccount({ description, className, children, type, ...rest }) {
|
|
|
6107
6171
|
/* @__PURE__ */ jsx22("span", { className: Sidebar_default.accountName, children: name }),
|
|
6108
6172
|
description == null ? null : /* @__PURE__ */ jsx22("span", { className: Sidebar_default.accountDescription, children: description })
|
|
6109
6173
|
] }),
|
|
6110
|
-
/* @__PURE__ */ jsx22(Icon, { name: "nav.chevronsUpDown", className: Sidebar_default.accountChevron })
|
|
6174
|
+
opensMenu ? /* @__PURE__ */ jsx22(Icon, { name: "nav.chevronsUpDown", className: Sidebar_default.accountChevron }) : null
|
|
6111
6175
|
]
|
|
6112
6176
|
}
|
|
6113
6177
|
) });
|
|
@@ -6508,8 +6572,8 @@ var Card_default = {
|
|
|
6508
6572
|
description: "Card_description",
|
|
6509
6573
|
label: "Card_label",
|
|
6510
6574
|
value: "Card_value",
|
|
6511
|
-
body: "Card_body",
|
|
6512
6575
|
icon: "Card_icon",
|
|
6576
|
+
body: "Card_body",
|
|
6513
6577
|
delta: "Card_delta",
|
|
6514
6578
|
meta: "Card_meta",
|
|
6515
6579
|
valueSkeleton: "Card_valueSkeleton",
|
|
@@ -6599,13 +6663,17 @@ function CardFooter({ className, ...rest }) {
|
|
|
6599
6663
|
return /* @__PURE__ */ jsx25("div", { className: cx(Card_default.footer, ruled && hairline_default.top, className), ...rest });
|
|
6600
6664
|
}
|
|
6601
6665
|
CardFooter.displayName = "Card.Footer";
|
|
6602
|
-
function CardIcon({ className, ...rest }) {
|
|
6666
|
+
function CardIcon({ className, children, ...rest }) {
|
|
6667
|
+
const { media, provide } = useMediaSlotHost();
|
|
6603
6668
|
return /* @__PURE__ */ jsx25(
|
|
6604
6669
|
"div",
|
|
6605
6670
|
{
|
|
6671
|
+
"aria-hidden": media ? true : void 0,
|
|
6606
6672
|
...rest,
|
|
6607
|
-
className: cx(iconBox_default.tile, iconSlotClass, Card_default.icon, className),
|
|
6608
|
-
"data-tone": "accent"
|
|
6673
|
+
className: cx(!media && iconBox_default.tile, !media && iconSlotClass, Card_default.icon, className),
|
|
6674
|
+
"data-tone": media ? void 0 : "accent",
|
|
6675
|
+
"data-media": media ? "true" : void 0,
|
|
6676
|
+
children: provide(children)
|
|
6609
6677
|
}
|
|
6610
6678
|
);
|
|
6611
6679
|
}
|
|
@@ -8183,6 +8251,7 @@ var Message_default = {
|
|
|
8183
8251
|
status: "Message_status",
|
|
8184
8252
|
tick: "Message_tick",
|
|
8185
8253
|
actions: "Message_actions",
|
|
8254
|
+
linkMark: "Message_linkMark",
|
|
8186
8255
|
reactionsSlot: "Message_reactionsSlot",
|
|
8187
8256
|
reactions: "Message_reactions",
|
|
8188
8257
|
chipSlot: "Message_chipSlot",
|
|
@@ -13199,7 +13268,7 @@ MessageTyping.displayName = "Message.Typing";
|
|
|
13199
13268
|
defineRowKind(MessageTyping, { tail: true });
|
|
13200
13269
|
|
|
13201
13270
|
// src/components/message/Message.tsx
|
|
13202
|
-
import { jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
13271
|
+
import { Fragment as Fragment22, jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
13203
13272
|
var STATUS_ICONS = [
|
|
13204
13273
|
["sending", "status.pending"],
|
|
13205
13274
|
["sent", "status.sent"],
|
|
@@ -13365,8 +13434,37 @@ function estimateOf(body, specs, shell, reactions, author, actionRows) {
|
|
|
13365
13434
|
return Math.round(size + (reactions ? 36 : 0) + actionRows * ACTIONS_ESTIMATE + 8);
|
|
13366
13435
|
}
|
|
13367
13436
|
var NO_REACTIONS = [];
|
|
13368
|
-
function
|
|
13369
|
-
|
|
13437
|
+
function isLinkKey(props) {
|
|
13438
|
+
const child = props.children;
|
|
13439
|
+
return props.asChild === true && React43.isValidElement(child) && child.type === "a" && child.props.href !== void 0;
|
|
13440
|
+
}
|
|
13441
|
+
function MessageActions({ className, children, ...rest }) {
|
|
13442
|
+
const { pending, track: track2 } = usePendingKeys();
|
|
13443
|
+
return /* @__PURE__ */ jsx43("div", { className: cx(Message_default.actions, className), ...rest, children: React43.Children.map(children, (child, index) => {
|
|
13444
|
+
if (!React43.isValidElement(child) || child.type !== Button.Root) {
|
|
13445
|
+
return child;
|
|
13446
|
+
}
|
|
13447
|
+
const { props } = child;
|
|
13448
|
+
const link = isLinkKey(props) ? React43.cloneElement(props.children, {
|
|
13449
|
+
children: /* @__PURE__ */ jsxs32(Fragment22, { children: [
|
|
13450
|
+
props.children.props.children,
|
|
13451
|
+
/* @__PURE__ */ jsx43(Icon, { name: "action.externalLink", size: "xs", className: Message_default.linkMark })
|
|
13452
|
+
] })
|
|
13453
|
+
}) : void 0;
|
|
13454
|
+
return React43.cloneElement(child, {
|
|
13455
|
+
variant: props.variant ?? "soft",
|
|
13456
|
+
tone: props.tone ?? "neutral",
|
|
13457
|
+
fullWidth: true,
|
|
13458
|
+
loading: props.loading || pending.has(index),
|
|
13459
|
+
onClick: (event) => {
|
|
13460
|
+
track2(
|
|
13461
|
+
index,
|
|
13462
|
+
props.onClick?.(event)
|
|
13463
|
+
);
|
|
13464
|
+
},
|
|
13465
|
+
...link ? { children: link } : null
|
|
13466
|
+
});
|
|
13467
|
+
}) });
|
|
13370
13468
|
}
|
|
13371
13469
|
MessageActions.displayName = "Message.Actions";
|
|
13372
13470
|
var ACTIONS_ESTIMATE = 40;
|
|
@@ -13434,6 +13532,7 @@ function MessageRoot({
|
|
|
13434
13532
|
const neutralDepth = useNestedSurfaceDepth();
|
|
13435
13533
|
const depth = direction === "outgoing" ? "tinted" : neutralDepth;
|
|
13436
13534
|
const { selecting, selected } = useMessageSelection(value);
|
|
13535
|
+
const selectMark = useEnterOnAppear(selecting);
|
|
13437
13536
|
const toggleSelected = (event) => {
|
|
13438
13537
|
const article2 = rootRef.current;
|
|
13439
13538
|
if (article2) list.range.onClick(list.indexOf(article2), event);
|
|
@@ -13660,9 +13759,19 @@ function MessageRoot({
|
|
|
13660
13759
|
tail ? /* @__PURE__ */ jsx43("span", { className: Message_default.bubbleTail, "data-depth": depth, "aria-hidden": "true" }) : null
|
|
13661
13760
|
] }),
|
|
13662
13761
|
shell === "bubble" ? null : reactionsPart,
|
|
13663
|
-
|
|
13664
|
-
(row2) =>
|
|
13665
|
-
|
|
13762
|
+
actions.map(
|
|
13763
|
+
(row2, index) => (
|
|
13764
|
+
// The last row ends the message: its outer corners take the bubble's radius.
|
|
13765
|
+
React43.cloneElement(
|
|
13766
|
+
row2,
|
|
13767
|
+
{
|
|
13768
|
+
key: row2.key ?? index,
|
|
13769
|
+
inert: preview || void 0,
|
|
13770
|
+
"data-end": index === actions.length - 1 ? "" : void 0
|
|
13771
|
+
}
|
|
13772
|
+
)
|
|
13773
|
+
)
|
|
13774
|
+
),
|
|
13666
13775
|
/* @__PURE__ */ jsx43(BubbleHug, { bubble: bubbleRef }),
|
|
13667
13776
|
/* @__PURE__ */ jsx43(MorphSnapshot, { morph })
|
|
13668
13777
|
]
|
|
@@ -13762,7 +13871,15 @@ function MessageRoot({
|
|
|
13762
13871
|
quickReact();
|
|
13763
13872
|
},
|
|
13764
13873
|
children: [
|
|
13765
|
-
selecting ? /* @__PURE__ */ jsx43(
|
|
13874
|
+
selecting ? /* @__PURE__ */ jsx43(
|
|
13875
|
+
"span",
|
|
13876
|
+
{
|
|
13877
|
+
ref: selectMark.ref,
|
|
13878
|
+
className: cx(Message_default.select, selectMark.entering && enterMotion_default.enter),
|
|
13879
|
+
"aria-hidden": "true",
|
|
13880
|
+
children: /* @__PURE__ */ jsx43(Checkbox.Indicator, { shape: "circle", checked: selected })
|
|
13881
|
+
}
|
|
13882
|
+
) : null,
|
|
13766
13883
|
gutter ? /* @__PURE__ */ jsx43("div", { className: cx(Message_default.gutter, statusLoop_default.blink), children: showAvatar ? avatar : null }) : null,
|
|
13767
13884
|
status === "failed" && onRetry && !preview ? /* @__PURE__ */ jsx43("span", { className: cx(Message_default.retry, statusLoop_default.blink), "data-morph-item": "", children: /* @__PURE__ */ jsx43(
|
|
13768
13885
|
Button.Root,
|
|
@@ -13934,6 +14051,7 @@ function ChatPinned({
|
|
|
13934
14051
|
if (next !== void 0) onValueChange?.(next);
|
|
13935
14052
|
}
|
|
13936
14053
|
});
|
|
14054
|
+
const excerpt = useEnterOnAppear();
|
|
13937
14055
|
if (items.length === 0) return null;
|
|
13938
14056
|
const found = items.findIndex((item) => item.value === value);
|
|
13939
14057
|
const index = found === -1 ? items.length - 1 : found;
|
|
@@ -13968,7 +14086,15 @@ function ChatPinned({
|
|
|
13968
14086
|
/* @__PURE__ */ jsx44("span", { className: ChatPinned_default.icon, "aria-hidden": "true", children: /* @__PURE__ */ jsx44(Icon, { name: "action.pin" }) }),
|
|
13969
14087
|
/* @__PURE__ */ jsxs33("span", { className: ChatPinned_default.text, children: [
|
|
13970
14088
|
/* @__PURE__ */ jsx44("span", { className: ChatPinned_default.title, children: title }),
|
|
13971
|
-
/* @__PURE__ */ jsx44(
|
|
14089
|
+
/* @__PURE__ */ jsx44(
|
|
14090
|
+
"span",
|
|
14091
|
+
{
|
|
14092
|
+
ref: excerpt.ref,
|
|
14093
|
+
className: cx(ChatPinned_default.excerpt, excerpt.entering && enterMotion_default.enter),
|
|
14094
|
+
children: current.text
|
|
14095
|
+
},
|
|
14096
|
+
current.value
|
|
14097
|
+
)
|
|
13972
14098
|
] })
|
|
13973
14099
|
]
|
|
13974
14100
|
}
|
|
@@ -15328,7 +15454,8 @@ function ChatSelectionBar({ className, children, ref, ...rest }) {
|
|
|
15328
15454
|
const { container, labels } = React46.useContext(ChromeContext);
|
|
15329
15455
|
const selected = useListSelection();
|
|
15330
15456
|
const barRef = React46.useRef(null);
|
|
15331
|
-
const
|
|
15457
|
+
const appear = useEnterOnAppear();
|
|
15458
|
+
const mergedRef = useMergedRefs(barRef, appear.ref, ref);
|
|
15332
15459
|
useBottomBar(barRef, container, selected !== null);
|
|
15333
15460
|
if (selected === null) return null;
|
|
15334
15461
|
const count = formatLabel(labels.selectedCount, { count: selected.length });
|
|
@@ -15338,7 +15465,7 @@ function ChatSelectionBar({ className, children, ref, ...rest }) {
|
|
|
15338
15465
|
ref: mergedRef,
|
|
15339
15466
|
role: "toolbar",
|
|
15340
15467
|
"aria-label": count,
|
|
15341
|
-
className: cx(Chat_default.selectionBar, enterMotion_default.enter, className),
|
|
15468
|
+
className: cx(Chat_default.selectionBar, appear.entering && enterMotion_default.enter, className),
|
|
15342
15469
|
"data-depth": "floating",
|
|
15343
15470
|
...rest,
|
|
15344
15471
|
children: /* @__PURE__ */ jsxs34(SurfaceDepthProvider, { value: "floating", children: [
|
|
@@ -15364,7 +15491,7 @@ ChatSelectionBar.displayName = "Chat.SelectionBar";
|
|
|
15364
15491
|
defineRowKind(ChatSelectionBar, { tail: true });
|
|
15365
15492
|
|
|
15366
15493
|
// src/components/chat/Chat.tsx
|
|
15367
|
-
import { Fragment as
|
|
15494
|
+
import { Fragment as Fragment25, jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
15368
15495
|
var CHAT_LABELS = {
|
|
15369
15496
|
...MESSAGE_LIST_LABELS,
|
|
15370
15497
|
typing: "\u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442\u2026",
|
|
@@ -15714,7 +15841,7 @@ function ChatMessages({
|
|
|
15714
15841
|
);
|
|
15715
15842
|
const name = ariaLabel ?? (ariaLabelledBy || chat.hasTitle ? void 0 : chat.labels.messages);
|
|
15716
15843
|
const selection = chat.selected === void 0 ? {} : { selected: chat.selected, onSelectedChange: chat.setSelected };
|
|
15717
|
-
return /* @__PURE__ */ jsxs35(
|
|
15844
|
+
return /* @__PURE__ */ jsxs35(Fragment25, { children: [
|
|
15718
15845
|
/* @__PURE__ */ jsx47(
|
|
15719
15846
|
Crossfade,
|
|
15720
15847
|
{
|
|
@@ -16407,22 +16534,51 @@ function translate(point, grab) {
|
|
|
16407
16534
|
function isTransparent(color) {
|
|
16408
16535
|
return color === "" || color === "transparent" || /rgba?\([^)]*,\s*0\s*\)$/.test(color);
|
|
16409
16536
|
}
|
|
16537
|
+
var CONTAINER_SHELL = {
|
|
16538
|
+
display: "block",
|
|
16539
|
+
"box-sizing": "content-box",
|
|
16540
|
+
"min-width": "0",
|
|
16541
|
+
"max-width": "none",
|
|
16542
|
+
"min-height": "0",
|
|
16543
|
+
"max-height": "none",
|
|
16544
|
+
margin: "0",
|
|
16545
|
+
padding: "0",
|
|
16546
|
+
border: "none",
|
|
16547
|
+
background: "none",
|
|
16548
|
+
"box-shadow": "none",
|
|
16549
|
+
outline: "none",
|
|
16550
|
+
overflow: "visible",
|
|
16551
|
+
position: "static",
|
|
16552
|
+
transform: "none",
|
|
16553
|
+
translate: "none",
|
|
16554
|
+
scale: "none",
|
|
16555
|
+
rotate: "none",
|
|
16556
|
+
opacity: "1",
|
|
16557
|
+
filter: "none",
|
|
16558
|
+
"clip-path": "none"
|
|
16559
|
+
};
|
|
16410
16560
|
function inHostCopy(parent, inner2) {
|
|
16411
16561
|
let outer = inner2;
|
|
16412
|
-
const wrap = (node2) => {
|
|
16413
|
-
const shell = node2.cloneNode(false);
|
|
16414
|
-
shell.style.display = "contents";
|
|
16415
|
-
shell.append(outer);
|
|
16416
|
-
outer = shell;
|
|
16417
|
-
};
|
|
16418
16562
|
let node = parent;
|
|
16419
|
-
while (node && node !== document.body) {
|
|
16420
|
-
|
|
16421
|
-
|
|
16422
|
-
|
|
16423
|
-
|
|
16424
|
-
|
|
16563
|
+
while (node && node !== document.body && node !== document.documentElement) {
|
|
16564
|
+
const shell = node.cloneNode(false);
|
|
16565
|
+
const source = getComputedStyle(node);
|
|
16566
|
+
const container = source.getPropertyValue("container-type").trim();
|
|
16567
|
+
if (container === "inline-size" || container === "size") {
|
|
16568
|
+
for (const [property, value] of Object.entries(CONTAINER_SHELL))
|
|
16569
|
+
shell.style.setProperty(property, value ?? null);
|
|
16570
|
+
const px3 = (value) => Number.parseFloat(value) || 0;
|
|
16571
|
+
const width = node.clientWidth - px3(source.paddingLeft) - px3(source.paddingRight);
|
|
16572
|
+
shell.style.setProperty("width", `${Math.max(0, width)}px`);
|
|
16573
|
+
if (container === "size") {
|
|
16574
|
+
const height = node.clientHeight - px3(source.paddingTop) - px3(source.paddingBottom);
|
|
16575
|
+
shell.style.setProperty("height", `${Math.max(0, height)}px`);
|
|
16576
|
+
} else shell.style.setProperty("height", "auto");
|
|
16577
|
+
} else {
|
|
16578
|
+
shell.style.display = "contents";
|
|
16425
16579
|
}
|
|
16580
|
+
shell.append(outer);
|
|
16581
|
+
outer = shell;
|
|
16426
16582
|
node = node.parentElement;
|
|
16427
16583
|
}
|
|
16428
16584
|
return outer;
|
|
@@ -16474,11 +16630,6 @@ function cloneFor(preview) {
|
|
|
16474
16630
|
clone.style.width = `${preview.origin.width}px`;
|
|
16475
16631
|
clone.style.height = `${preview.origin.height}px`;
|
|
16476
16632
|
clone.style.margin = "0";
|
|
16477
|
-
const source = getComputedStyle(preview.element);
|
|
16478
|
-
if (isTransparent(source.backgroundColor)) {
|
|
16479
|
-
const layer = source.getPropertyValue("--prime-color-layer-current").trim();
|
|
16480
|
-
if (layer) clone.style.backgroundColor = layer;
|
|
16481
|
-
}
|
|
16482
16633
|
const row = preview.element instanceof HTMLTableRowElement ? preview.element : null;
|
|
16483
16634
|
const cell = preview.element instanceof HTMLTableCellElement ? preview.element : null;
|
|
16484
16635
|
const lifted = row ? inTableCopy(row, clone, preview.origin) : cell ? inHeadCopy(cell, clone, preview.origin) : clone;
|
|
@@ -16503,6 +16654,12 @@ function cloneFor(preview) {
|
|
|
16503
16654
|
lifted.classList.add(Dnd_default.lift);
|
|
16504
16655
|
return outer;
|
|
16505
16656
|
}
|
|
16657
|
+
function fillBareCopy(host, source) {
|
|
16658
|
+
const copy = host.querySelector("[data-dnd-copy]");
|
|
16659
|
+
if (!copy || !isTransparent(getComputedStyle(copy).backgroundColor)) return;
|
|
16660
|
+
const layer = getComputedStyle(source).getPropertyValue("--prime-color-layer-current").trim();
|
|
16661
|
+
if (layer) copy.style.backgroundColor = layer;
|
|
16662
|
+
}
|
|
16506
16663
|
function liftedIn(host) {
|
|
16507
16664
|
return host.querySelector(`.${Dnd_default.lift}`);
|
|
16508
16665
|
}
|
|
@@ -16687,6 +16844,7 @@ function DragOverlay({ controller }) {
|
|
|
16687
16844
|
mirrorRef.current = null;
|
|
16688
16845
|
const copy = cloneFor(event.preview);
|
|
16689
16846
|
host.replaceChildren(copy);
|
|
16847
|
+
fillBareCopy(host, event.preview.element);
|
|
16690
16848
|
host.style.transform = translate(event.preview.point, event.preview.grab);
|
|
16691
16849
|
const source = event.preview.element;
|
|
16692
16850
|
if (typeof MutationObserver === "function" && source.querySelector("[data-dnd-mirror]")) {
|
|
@@ -16783,7 +16941,7 @@ function DragOverlay({ controller }) {
|
|
|
16783
16941
|
|
|
16784
16942
|
// src/components/dnd/inPlaceRow.tsx
|
|
16785
16943
|
import * as React52 from "react";
|
|
16786
|
-
var
|
|
16944
|
+
var ITEM2 = "[data-dnd-item]";
|
|
16787
16945
|
function drawnX(node) {
|
|
16788
16946
|
const transform = getComputedStyle(node).transform;
|
|
16789
16947
|
if (!transform || transform === "none") return 0;
|
|
@@ -16848,7 +17006,7 @@ function useInPlaceShift(row, order, draggingId, gapBefore) {
|
|
|
16848
17006
|
}
|
|
16849
17007
|
startOrder.current ??= orderKey;
|
|
16850
17008
|
const cells = new Map(
|
|
16851
|
-
ownNodes(row,
|
|
17009
|
+
ownNodes(row, ITEM2).map((node) => [node.dataset.dndItem ?? "", node])
|
|
16852
17010
|
);
|
|
16853
17011
|
const widthOf2 = (id) => cells.get(id)?.offsetWidth ?? 0;
|
|
16854
17012
|
const startOf = (list) => {
|
|
@@ -17925,7 +18083,7 @@ var List_default = {
|
|
|
17925
18083
|
};
|
|
17926
18084
|
|
|
17927
18085
|
// src/components/list/List.tsx
|
|
17928
|
-
import { Fragment as
|
|
18086
|
+
import { Fragment as Fragment27, jsx as jsx50, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
17929
18087
|
var LIST_LABELS = {
|
|
17930
18088
|
reorderItem: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C {label}"
|
|
17931
18089
|
};
|
|
@@ -18080,10 +18238,10 @@ function splitItemChildren3(children) {
|
|
|
18080
18238
|
}
|
|
18081
18239
|
}
|
|
18082
18240
|
flushLoose();
|
|
18083
|
-
return /* @__PURE__ */ jsxs37(
|
|
18241
|
+
return /* @__PURE__ */ jsxs37(Fragment27, { children: [
|
|
18084
18242
|
leading,
|
|
18085
18243
|
/* @__PURE__ */ jsx50("span", { className: List_default.body, children: spaced(body) }),
|
|
18086
|
-
trail.length > 0 ? /* @__PURE__ */ jsxs37(
|
|
18244
|
+
trail.length > 0 ? /* @__PURE__ */ jsxs37(Fragment27, { children: [
|
|
18087
18245
|
" ",
|
|
18088
18246
|
/* @__PURE__ */ jsx50("span", { className: cx(List_default.trail, twoLines && List_default.trailStacked), children: spaced(trail) })
|
|
18089
18247
|
] }) : null
|
|
@@ -18232,7 +18390,7 @@ function formatChatTime(date, now, timeZone) {
|
|
|
18232
18390
|
}
|
|
18233
18391
|
|
|
18234
18392
|
// src/components/chat-list/ChatList.tsx
|
|
18235
|
-
import { Fragment as
|
|
18393
|
+
import { Fragment as Fragment29, jsx as jsx51, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
18236
18394
|
var CHAT_LIST_LABELS = {
|
|
18237
18395
|
list: "\u0414\u0438\u0430\u043B\u043E\u0433\u0438",
|
|
18238
18396
|
search: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0434\u0438\u0430\u043B\u043E\u0433\u0430\u043C",
|
|
@@ -18762,7 +18920,7 @@ function ChatListRoot({
|
|
|
18762
18920
|
if (virtualized) {
|
|
18763
18921
|
const laid = rowGaps(virtual);
|
|
18764
18922
|
const spacer = (height) => height > 0 ? /* @__PURE__ */ jsx51("li", { className: ChatList_default.spacer, style: { height }, "aria-hidden": "true" }) : null;
|
|
18765
|
-
rows2 = /* @__PURE__ */ jsxs38(
|
|
18923
|
+
rows2 = /* @__PURE__ */ jsxs38(Fragment29, { children: [
|
|
18766
18924
|
laid.rows.map(({ index, gap }) => /* @__PURE__ */ jsxs38(React59.Fragment, { children: [
|
|
18767
18925
|
spacer(gap),
|
|
18768
18926
|
row(index, virtual.measure(index))
|
|
@@ -18794,7 +18952,7 @@ function ChatListRoot({
|
|
|
18794
18952
|
/* @__PURE__ */ jsx51(EmptyPage.Title, { children: labels.empty })
|
|
18795
18953
|
] });
|
|
18796
18954
|
} else {
|
|
18797
|
-
body = /* @__PURE__ */ jsxs38(
|
|
18955
|
+
body = /* @__PURE__ */ jsxs38(Fragment29, { children: [
|
|
18798
18956
|
/* @__PURE__ */ jsx51(List.Root, { ref: setListEl, size, "aria-label": labels.list, className: ChatList_default.list, children: rows2 }),
|
|
18799
18957
|
hasMore ? placeholders(1) : null
|
|
18800
18958
|
] });
|
|
@@ -19370,7 +19528,7 @@ var CommandMenu_default = {
|
|
|
19370
19528
|
};
|
|
19371
19529
|
|
|
19372
19530
|
// src/components/command-menu/CommandMenu.tsx
|
|
19373
|
-
import { Fragment as
|
|
19531
|
+
import { Fragment as Fragment30, jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
19374
19532
|
var COMMAND_MENU_LABELS = {
|
|
19375
19533
|
search: "\u041F\u043E\u0438\u0441\u043A",
|
|
19376
19534
|
empty: "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E",
|
|
@@ -19642,7 +19800,7 @@ function CommandMenuList({ className, children, ref, ...rest }) {
|
|
|
19642
19800
|
if (inside && !regionRef.current?.contains(document.activeElement)) return;
|
|
19643
19801
|
dialog.querySelector("[data-autofocus]")?.focus({ preventScroll: true });
|
|
19644
19802
|
};
|
|
19645
|
-
return /* @__PURE__ */ jsxs40(
|
|
19803
|
+
return /* @__PURE__ */ jsxs40(Fragment30, { children: [
|
|
19646
19804
|
/* @__PURE__ */ jsx55(RegionSwap, { ref: regionRef, state: region, fill: true, onSwap: returnToSearch, children: region === "error" ? /* @__PURE__ */ jsxs40(EmptyPage.Root, { layout: "compact", size, role: "alert", children: [
|
|
19647
19805
|
/* @__PURE__ */ jsx55(EmptyPage.Title, { as: "p", children: loadError }),
|
|
19648
19806
|
onRetry ? /* @__PURE__ */ jsx55(EmptyPage.Actions, { children: /* @__PURE__ */ jsxs40(Button.Root, { variant: "soft", tone: "neutral", loading: retrying, onClick: onRetry, children: [
|
|
@@ -20049,7 +20207,7 @@ var FileUpload_default = {
|
|
|
20049
20207
|
};
|
|
20050
20208
|
|
|
20051
20209
|
// src/components/file-upload/FileUpload.tsx
|
|
20052
|
-
import { Fragment as
|
|
20210
|
+
import { Fragment as Fragment31, jsx as jsx57, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
20053
20211
|
var FILE_UPLOAD_LABELS = {
|
|
20054
20212
|
title: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0435\u0433\u043E \u0441\u044E\u0434\u0430",
|
|
20055
20213
|
description: "JPEG, PNG, PDF, MP4 \u0434\u043E 50 \u041C\u0411",
|
|
@@ -20423,6 +20581,10 @@ function FileSetView({
|
|
|
20423
20581
|
listRef
|
|
20424
20582
|
}) {
|
|
20425
20583
|
const { files, uploads, busy, canReorder, announcer } = set;
|
|
20584
|
+
const coverId = cover ? files[0]?.id : void 0;
|
|
20585
|
+
const [stillCover, setStillCover] = React64.useState(coverId);
|
|
20586
|
+
if (stillCover !== void 0 && coverId !== stillCover) setStillCover(void 0);
|
|
20587
|
+
const coverEnter = stillCover === void 0 ? enterMotion_default.enter : void 0;
|
|
20426
20588
|
const ownRef = React64.useRef(null);
|
|
20427
20589
|
const setListRef = useMergedRefs(ownRef, listRef);
|
|
20428
20590
|
const kindId = `file-upload-${React64.useId()}`;
|
|
@@ -20458,7 +20620,7 @@ function FileSetView({
|
|
|
20458
20620
|
};
|
|
20459
20621
|
const region = announcer.own ? /* @__PURE__ */ jsx57(VisuallyHidden, { live: "polite", children: announcer.message }) : null;
|
|
20460
20622
|
if (layout === "list") {
|
|
20461
|
-
return /* @__PURE__ */ jsxs42(
|
|
20623
|
+
return /* @__PURE__ */ jsxs42(Fragment31, { children: [
|
|
20462
20624
|
files.length > 0 || addTile ? /* @__PURE__ */ jsxs42(
|
|
20463
20625
|
"ul",
|
|
20464
20626
|
{
|
|
@@ -20522,7 +20684,7 @@ function FileSetView({
|
|
|
20522
20684
|
openLabel: formatLabel(labels.open, { name: file.name }),
|
|
20523
20685
|
badge: cover && index === 0 ? (
|
|
20524
20686
|
// A new cover: the word comes in where the format stood.
|
|
20525
|
-
kind === "file" ? /* @__PURE__ */ jsx57(Badge.Root, { className:
|
|
20687
|
+
kind === "file" ? /* @__PURE__ */ jsx57(Badge.Root, { className: coverEnter, children: labels.cover }, "cover") : /* @__PURE__ */ jsx57("span", { className: coverEnter, children: labels.cover }, "cover")
|
|
20526
20688
|
) : kind === "file" ? (
|
|
20527
20689
|
// Decorative: the tile's name carries the extension.
|
|
20528
20690
|
/* @__PURE__ */ jsx57(Badge.Root, { color: formatColor(format5), "aria-hidden": "true", children: (format5 || "\u2014").slice(0, 8).toUpperCase() })
|
|
@@ -20546,7 +20708,7 @@ function FileSetView({
|
|
|
20546
20708
|
children: addTile
|
|
20547
20709
|
}
|
|
20548
20710
|
);
|
|
20549
|
-
return /* @__PURE__ */ jsxs42(
|
|
20711
|
+
return /* @__PURE__ */ jsxs42(Fragment31, { children: [
|
|
20550
20712
|
files.length > 0 || addTile ? /* @__PURE__ */ jsx57("div", { className: FileUpload_default.tiles, ...toDataAttributes({ layout, cover: cover || void 0 }), children: /* @__PURE__ */ jsx57(ControlSizeProvider, { value: "xs", children: strip ? /* @__PURE__ */ jsx57(AttachmentStripScroller, { children: list }) : list }) }) : null,
|
|
20551
20713
|
region
|
|
20552
20714
|
] });
|
|
@@ -20568,6 +20730,8 @@ function FileRow({
|
|
|
20568
20730
|
onRemove
|
|
20569
20731
|
}) {
|
|
20570
20732
|
const rowRef = React64.useRef(null);
|
|
20733
|
+
const appear = useEnterOnAppear();
|
|
20734
|
+
const setRowRef = useMergedRefs(rowRef, appear.ref);
|
|
20571
20735
|
const { id } = file;
|
|
20572
20736
|
React64.useLayoutEffect(() => {
|
|
20573
20737
|
const node = rowRef.current;
|
|
@@ -20586,8 +20750,8 @@ function FileRow({
|
|
|
20586
20750
|
return /* @__PURE__ */ jsx57(
|
|
20587
20751
|
"li",
|
|
20588
20752
|
{
|
|
20589
|
-
ref:
|
|
20590
|
-
className: cx(FileUpload_default.queueRow, enterMotion_default.enter),
|
|
20753
|
+
ref: setRowRef,
|
|
20754
|
+
className: cx(FileUpload_default.queueRow, appear.entering && enterMotion_default.enter),
|
|
20591
20755
|
"aria-busy": pending || void 0,
|
|
20592
20756
|
"data-pending": pending || void 0,
|
|
20593
20757
|
children: /* @__PURE__ */ jsxs42(FileUploadItem, { invalid: status === "failed", "data-status": status, children: [
|
|
@@ -20727,6 +20891,7 @@ function FileUploadField({
|
|
|
20727
20891
|
const pickAccept = React64.useRef(accept);
|
|
20728
20892
|
const requestedAccept = React64.useRef(null);
|
|
20729
20893
|
const count = set.files.length;
|
|
20894
|
+
const emptyHint = useEnterOnAppear(count === 0 && max === void 0);
|
|
20730
20895
|
const room = max === void 0 ? Number.POSITIVE_INFINITY : Math.max(0, max - count);
|
|
20731
20896
|
const full = room === 0;
|
|
20732
20897
|
const hasSet = trigger === "tile" || value !== void 0 || defaultValue !== void 0 || queue !== void 0;
|
|
@@ -20793,7 +20958,7 @@ function FileUploadField({
|
|
|
20793
20958
|
if (none) {
|
|
20794
20959
|
control = input;
|
|
20795
20960
|
} else if (button) {
|
|
20796
|
-
const content = children ?? /* @__PURE__ */ jsxs42(
|
|
20961
|
+
const content = children ?? /* @__PURE__ */ jsxs42(Fragment31, { children: [
|
|
20797
20962
|
/* @__PURE__ */ jsx57(Button.Icon, { children: /* @__PURE__ */ jsx57(Icon, { name: "action.attach" }) }),
|
|
20798
20963
|
labels.browse
|
|
20799
20964
|
] });
|
|
@@ -20851,7 +21016,18 @@ function FileUploadField({
|
|
|
20851
21016
|
input,
|
|
20852
21017
|
/* @__PURE__ */ jsx57("span", { className: cx(fieldTierClass, FileUpload_default.addIcon), "data-size": "xs", "aria-hidden": "true", children: /* @__PURE__ */ jsx57(Icon, { name: "action.add" }) }),
|
|
20853
21018
|
/* @__PURE__ */ jsx57("span", { className: cx(textRole_default.caption, FileUpload_default.addText), children: /* @__PURE__ */ jsx57(MorphText, { children: full ? labels.full : empty ? labels.empty : labels.add }) }),
|
|
20854
|
-
countText !== null ? /* @__PURE__ */ jsx57("span", { className: cx(textRole_default.caption, FileUpload_default.addHint), children: /* @__PURE__ */ jsx57(RollingNumber, { children: countText }) }) : empty ? /* @__PURE__ */ jsx57(
|
|
21019
|
+
countText !== null ? /* @__PURE__ */ jsx57("span", { className: cx(textRole_default.caption, FileUpload_default.addHint), children: /* @__PURE__ */ jsx57(RollingNumber, { children: countText }) }) : empty ? /* @__PURE__ */ jsx57(
|
|
21020
|
+
"span",
|
|
21021
|
+
{
|
|
21022
|
+
ref: emptyHint.ref,
|
|
21023
|
+
className: cx(
|
|
21024
|
+
textRole_default.caption,
|
|
21025
|
+
FileUpload_default.addHint,
|
|
21026
|
+
emptyHint.entering && enterMotion_default.enter
|
|
21027
|
+
),
|
|
21028
|
+
children: labels.emptyHint
|
|
21029
|
+
}
|
|
21030
|
+
) : null
|
|
20855
21031
|
] }) }) : null;
|
|
20856
21032
|
const drops = !hiddenInput && !disabled;
|
|
20857
21033
|
const dropHandlers = hiddenInput ? {} : {
|
|
@@ -21262,7 +21438,7 @@ var Textarea_default = {
|
|
|
21262
21438
|
};
|
|
21263
21439
|
|
|
21264
21440
|
// src/components/textarea/Textarea.tsx
|
|
21265
|
-
import { Fragment as
|
|
21441
|
+
import { Fragment as Fragment32, jsx as jsx59, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
21266
21442
|
var TEXTAREA_LABELS = {
|
|
21267
21443
|
optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E",
|
|
21268
21444
|
counter: "{current} \u0438\u0437 {max} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",
|
|
@@ -21427,7 +21603,7 @@ function TextareaRoot({
|
|
|
21427
21603
|
"focus-ring": focusRing,
|
|
21428
21604
|
capped: autoResize && maxRows !== void 0 || void 0
|
|
21429
21605
|
}),
|
|
21430
|
-
children: hasEdge ? /* @__PURE__ */ jsxs44(
|
|
21606
|
+
children: hasEdge ? /* @__PURE__ */ jsxs44(Fragment32, { children: [
|
|
21431
21607
|
/* @__PURE__ */ jsx59("div", { className: Textarea_default.body, children: body }),
|
|
21432
21608
|
/* @__PURE__ */ jsxs44("div", { className: Textarea_default.edge, children: [
|
|
21433
21609
|
hasCommit ? /* @__PURE__ */ jsx59(FieldCommitStatus, { state: commit.state, labels }) : null,
|
|
@@ -21525,7 +21701,11 @@ var Composer_default = {
|
|
|
21525
21701
|
contextIcon: "Composer_contextIcon",
|
|
21526
21702
|
contextText: "Composer_contextText",
|
|
21527
21703
|
title: "Composer_title",
|
|
21528
|
-
description: "Composer_description"
|
|
21704
|
+
description: "Composer_description",
|
|
21705
|
+
keyboardToggle: "Composer_keyboardToggle",
|
|
21706
|
+
keyboardSlot: "Composer_keyboardSlot",
|
|
21707
|
+
keyboardKeys: "Composer_keyboardKeys",
|
|
21708
|
+
keyboardRow: "Composer_keyboardRow"
|
|
21529
21709
|
};
|
|
21530
21710
|
|
|
21531
21711
|
// src/components/composer/liveWave.ts
|
|
@@ -21812,7 +21992,7 @@ function useRecorder(onRecorded) {
|
|
|
21812
21992
|
}
|
|
21813
21993
|
|
|
21814
21994
|
// src/components/composer/Composer.tsx
|
|
21815
|
-
import { jsx as jsx60, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
21995
|
+
import { Fragment as Fragment33, jsx as jsx60, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
21816
21996
|
var COMPOSER_LABELS = {
|
|
21817
21997
|
region: "\u041D\u043E\u0432\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
|
|
21818
21998
|
placeholder: "\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
|
|
@@ -21843,7 +22023,8 @@ var COMPOSER_LABELS = {
|
|
|
21843
22023
|
sendAsFiles: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043A\u0430\u043A \u0444\u0430\u0439\u043B\u044B, \u0431\u0435\u0437 \u0441\u0436\u0430\u0442\u0438\u044F",
|
|
21844
22024
|
...TEXT_FORMATTING_LABELS,
|
|
21845
22025
|
cancelReply: "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u0442\u0432\u0435\u0442",
|
|
21846
|
-
cancelEdit: "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435"
|
|
22026
|
+
cancelEdit: "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",
|
|
22027
|
+
keyboard: "\u041A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u0431\u043E\u0442\u0430"
|
|
21847
22028
|
};
|
|
21848
22029
|
var [ComposerProvider, useComposerContext] = createComponentContext("Composer");
|
|
21849
22030
|
var HOLD_MS = 200;
|
|
@@ -22369,9 +22550,43 @@ function ComposerRoot({
|
|
|
22369
22550
|
}
|
|
22370
22551
|
};
|
|
22371
22552
|
const [attachSlot, setAttachSlot] = React68.useState(null);
|
|
22553
|
+
const [keyboardSlot, setKeyboardSlot] = React68.useState(null);
|
|
22554
|
+
const [keyboardToggleSlot, setKeyboardToggleSlot] = React68.useState(null);
|
|
22555
|
+
const [keyboardPlaceholder, setKeyboardPlaceholder] = React68.useState(null);
|
|
22556
|
+
const sendRef = React68.useRef(onSend);
|
|
22557
|
+
sendRef.current = onSend;
|
|
22558
|
+
const sendText = React68.useCallback(
|
|
22559
|
+
(keyText) => sendRef.current?.({ text: keyText, albums: [], files: [] }),
|
|
22560
|
+
[]
|
|
22561
|
+
);
|
|
22372
22562
|
const contextValue = React68.useMemo(
|
|
22373
|
-
() => ({
|
|
22374
|
-
|
|
22563
|
+
() => ({
|
|
22564
|
+
size,
|
|
22565
|
+
labels,
|
|
22566
|
+
disabled,
|
|
22567
|
+
addFiles,
|
|
22568
|
+
registerBar,
|
|
22569
|
+
focusFieldIfLive,
|
|
22570
|
+
attachSlot,
|
|
22571
|
+
keyboardSlot,
|
|
22572
|
+
keyboardToggleSlot,
|
|
22573
|
+
setKeyboardPlaceholder,
|
|
22574
|
+
sendText,
|
|
22575
|
+
recording
|
|
22576
|
+
}),
|
|
22577
|
+
[
|
|
22578
|
+
size,
|
|
22579
|
+
labels,
|
|
22580
|
+
disabled,
|
|
22581
|
+
addFiles,
|
|
22582
|
+
registerBar,
|
|
22583
|
+
focusFieldIfLive,
|
|
22584
|
+
attachSlot,
|
|
22585
|
+
keyboardSlot,
|
|
22586
|
+
keyboardToggleSlot,
|
|
22587
|
+
sendText,
|
|
22588
|
+
recording
|
|
22589
|
+
]
|
|
22375
22590
|
);
|
|
22376
22591
|
const actionKind = recording ? "send" : editing ? "save" : showRecord ? recordMode : "send";
|
|
22377
22592
|
const pauseIcon = recorder.paused ? "action.play" : "action.pause";
|
|
@@ -22512,7 +22727,7 @@ function ComposerRoot({
|
|
|
22512
22727
|
maxRows: MAX_ROWS,
|
|
22513
22728
|
focusRing: false,
|
|
22514
22729
|
value,
|
|
22515
|
-
placeholder: labels.placeholder,
|
|
22730
|
+
placeholder: keyboardPlaceholder ?? labels.placeholder,
|
|
22516
22731
|
"aria-label": labels.placeholder,
|
|
22517
22732
|
"aria-describedby": [contextIds, recorder.error ? errorId : void 0].filter(Boolean).join(" ") || void 0,
|
|
22518
22733
|
disabled,
|
|
@@ -22588,6 +22803,14 @@ function ComposerRoot({
|
|
|
22588
22803
|
}
|
|
22589
22804
|
) : null,
|
|
22590
22805
|
/* @__PURE__ */ jsxs45("div", { className: Composer_default.end, children: [
|
|
22806
|
+
/* @__PURE__ */ jsx60(
|
|
22807
|
+
"div",
|
|
22808
|
+
{
|
|
22809
|
+
ref: setKeyboardToggleSlot,
|
|
22810
|
+
className: Composer_default.keyboardToggle,
|
|
22811
|
+
inert: recording
|
|
22812
|
+
}
|
|
22813
|
+
),
|
|
22591
22814
|
lockPill.mounted ? /* @__PURE__ */ jsxs45(
|
|
22592
22815
|
"span",
|
|
22593
22816
|
{
|
|
@@ -22626,6 +22849,7 @@ function ComposerRoot({
|
|
|
22626
22849
|
/* @__PURE__ */ jsx60(VisuallyHidden, { id: hintId, children: videoAvailable && voiceAvailable ? labels.recordSwitchHint : labels.recordHint })
|
|
22627
22850
|
] })
|
|
22628
22851
|
] }),
|
|
22852
|
+
/* @__PURE__ */ jsx60("div", { ref: setKeyboardSlot, className: Composer_default.keyboardSlot }),
|
|
22629
22853
|
/* @__PURE__ */ jsx60(VisuallyHidden, { live: "polite", children: announcement })
|
|
22630
22854
|
]
|
|
22631
22855
|
}
|
|
@@ -22684,9 +22908,12 @@ function ComposerContext({
|
|
|
22684
22908
|
id: idProp,
|
|
22685
22909
|
className,
|
|
22686
22910
|
children,
|
|
22911
|
+
ref,
|
|
22687
22912
|
...rest
|
|
22688
22913
|
}) {
|
|
22689
22914
|
const { size, labels, registerBar, focusFieldIfLive } = useComposerContext();
|
|
22915
|
+
const appear = useEnterOnAppear();
|
|
22916
|
+
const mergedRef = useMergedRefs(appear.ref, ref);
|
|
22690
22917
|
const ownId = React68.useId();
|
|
22691
22918
|
const id = idProp ?? ownId;
|
|
22692
22919
|
const dismissRef = React68.useRef(onDismiss);
|
|
@@ -22711,8 +22938,9 @@ function ComposerContext({
|
|
|
22711
22938
|
"div",
|
|
22712
22939
|
{
|
|
22713
22940
|
...rest,
|
|
22941
|
+
ref: mergedRef,
|
|
22714
22942
|
id,
|
|
22715
|
-
className: cx(Composer_default.context, enterMotion_default.enter, className),
|
|
22943
|
+
className: cx(Composer_default.context, appear.entering && enterMotion_default.enter, className),
|
|
22716
22944
|
"data-mode": mode,
|
|
22717
22945
|
children: [
|
|
22718
22946
|
/* @__PURE__ */ jsx60("span", { className: Composer_default.contextIcon, "aria-hidden": "true", children: /* @__PURE__ */ jsx60(GlyphSwap, { children: /* @__PURE__ */ jsx60(Icon, { name: CONTEXT_ICON[mode] }) }) }),
|
|
@@ -22815,6 +23043,119 @@ function ComposerItemIcon(props) {
|
|
|
22815
23043
|
return /* @__PURE__ */ jsx60(Dropdown.ItemIcon, { ...props });
|
|
22816
23044
|
}
|
|
22817
23045
|
ComposerItemIcon.displayName = "Composer.ItemIcon";
|
|
23046
|
+
var keyLabel = (key) => typeof key === "string" ? key : key.label;
|
|
23047
|
+
function ComposerKeyboard({
|
|
23048
|
+
rows: rows2,
|
|
23049
|
+
placeholder,
|
|
23050
|
+
oneTime = false,
|
|
23051
|
+
open: openProp,
|
|
23052
|
+
defaultOpen = true,
|
|
23053
|
+
onOpenChange,
|
|
23054
|
+
id: idProp,
|
|
23055
|
+
className,
|
|
23056
|
+
"aria-label": ariaLabel,
|
|
23057
|
+
ref,
|
|
23058
|
+
...rest
|
|
23059
|
+
}) {
|
|
23060
|
+
const {
|
|
23061
|
+
labels,
|
|
23062
|
+
disabled,
|
|
23063
|
+
keyboardSlot,
|
|
23064
|
+
keyboardToggleSlot,
|
|
23065
|
+
setKeyboardPlaceholder,
|
|
23066
|
+
sendText,
|
|
23067
|
+
focusFieldIfLive,
|
|
23068
|
+
recording
|
|
23069
|
+
} = useComposerContext();
|
|
23070
|
+
const [open, setOpen] = useControllableState({
|
|
23071
|
+
value: openProp,
|
|
23072
|
+
defaultValue: defaultOpen,
|
|
23073
|
+
onChange: onOpenChange
|
|
23074
|
+
});
|
|
23075
|
+
const { pending, track: track2 } = usePendingKeys();
|
|
23076
|
+
const autoId = React68.useId();
|
|
23077
|
+
const id = idProp ?? autoId;
|
|
23078
|
+
React68.useEffect(() => {
|
|
23079
|
+
if (!open || placeholder === void 0) return;
|
|
23080
|
+
setKeyboardPlaceholder(placeholder);
|
|
23081
|
+
return () => setKeyboardPlaceholder(null);
|
|
23082
|
+
}, [open, placeholder, setKeyboardPlaceholder]);
|
|
23083
|
+
const press = (key, position) => {
|
|
23084
|
+
const outcome = track2(position, sendText(keyLabel(key)));
|
|
23085
|
+
if (!oneTime) return;
|
|
23086
|
+
const hide = () => {
|
|
23087
|
+
setOpen(false);
|
|
23088
|
+
focusFieldIfLive();
|
|
23089
|
+
};
|
|
23090
|
+
if (isPromiseLike(outcome)) outcome.then(hide, () => {
|
|
23091
|
+
});
|
|
23092
|
+
else hide();
|
|
23093
|
+
};
|
|
23094
|
+
if (!keyboardSlot || !keyboardToggleSlot) return null;
|
|
23095
|
+
const toggleIcon = open ? "nav.chevronDown" : "nav.layoutGrid";
|
|
23096
|
+
return /* @__PURE__ */ jsxs45(Fragment33, { children: [
|
|
23097
|
+
createPortal2(
|
|
23098
|
+
/* @__PURE__ */ jsx60(
|
|
23099
|
+
Button.Root,
|
|
23100
|
+
{
|
|
23101
|
+
variant: "ghost",
|
|
23102
|
+
tone: "neutral",
|
|
23103
|
+
"aria-label": ariaLabel ?? labels.keyboard,
|
|
23104
|
+
"aria-expanded": open,
|
|
23105
|
+
"aria-controls": id,
|
|
23106
|
+
disabled,
|
|
23107
|
+
onClick: () => setOpen(!open),
|
|
23108
|
+
children: /* @__PURE__ */ jsx60(Button.Icon, { children: /* @__PURE__ */ jsx60(Icon, { name: toggleIcon }) })
|
|
23109
|
+
}
|
|
23110
|
+
),
|
|
23111
|
+
keyboardToggleSlot
|
|
23112
|
+
),
|
|
23113
|
+
createPortal2(
|
|
23114
|
+
/* @__PURE__ */ jsx60(
|
|
23115
|
+
Disclosure,
|
|
23116
|
+
{
|
|
23117
|
+
...rest,
|
|
23118
|
+
ref,
|
|
23119
|
+
id,
|
|
23120
|
+
role: "group",
|
|
23121
|
+
"aria-label": ariaLabel ?? labels.keyboard,
|
|
23122
|
+
open,
|
|
23123
|
+
inert: recording || void 0,
|
|
23124
|
+
className,
|
|
23125
|
+
children: /* @__PURE__ */ jsx60("div", { className: Composer_default.keyboardKeys, children: rows2.map((row, rowIndex) => /* @__PURE__ */ jsx60(
|
|
23126
|
+
"div",
|
|
23127
|
+
{
|
|
23128
|
+
className: Composer_default.keyboardRow,
|
|
23129
|
+
children: row.map((key, keyIndex) => {
|
|
23130
|
+
const position = `${rowIndex}:${keyIndex}`;
|
|
23131
|
+
const custom = typeof key === "string" ? void 0 : key;
|
|
23132
|
+
return /* @__PURE__ */ jsxs45(
|
|
23133
|
+
Button.Root,
|
|
23134
|
+
{
|
|
23135
|
+
variant: "soft",
|
|
23136
|
+
tone: custom?.tone ?? "neutral",
|
|
23137
|
+
fullWidth: true,
|
|
23138
|
+
disabled,
|
|
23139
|
+
loading: pending.has(position),
|
|
23140
|
+
onClick: () => press(key, position),
|
|
23141
|
+
children: [
|
|
23142
|
+
custom?.icon ? /* @__PURE__ */ jsx60(Button.Icon, { children: custom.icon }) : null,
|
|
23143
|
+
keyLabel(key)
|
|
23144
|
+
]
|
|
23145
|
+
},
|
|
23146
|
+
position
|
|
23147
|
+
);
|
|
23148
|
+
})
|
|
23149
|
+
},
|
|
23150
|
+
rowIndex
|
|
23151
|
+
)) })
|
|
23152
|
+
}
|
|
23153
|
+
),
|
|
23154
|
+
keyboardSlot
|
|
23155
|
+
)
|
|
23156
|
+
] });
|
|
23157
|
+
}
|
|
23158
|
+
ComposerKeyboard.displayName = "Composer.Keyboard";
|
|
22818
23159
|
var Composer = {
|
|
22819
23160
|
Root: ComposerRoot,
|
|
22820
23161
|
Context: ComposerContext,
|
|
@@ -22822,7 +23163,8 @@ var Composer = {
|
|
|
22822
23163
|
Description: ComposerDescription,
|
|
22823
23164
|
Attach: ComposerAttach,
|
|
22824
23165
|
Item: ComposerItem,
|
|
22825
|
-
ItemIcon: ComposerItemIcon
|
|
23166
|
+
ItemIcon: ComposerItemIcon,
|
|
23167
|
+
Keyboard: ComposerKeyboard
|
|
22826
23168
|
};
|
|
22827
23169
|
|
|
22828
23170
|
// src/components/data-table/DataTable.tsx
|
|
@@ -23513,14 +23855,16 @@ function flatten(data, options) {
|
|
|
23513
23855
|
}
|
|
23514
23856
|
|
|
23515
23857
|
// src/components/data-table/Row.tsx
|
|
23516
|
-
import { Fragment as
|
|
23858
|
+
import { Fragment as Fragment34, jsx as jsx65, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
23517
23859
|
function columnAlign(column) {
|
|
23518
23860
|
return column.align ?? (column.numeric ? "end" : "start");
|
|
23519
23861
|
}
|
|
23520
|
-
function
|
|
23521
|
-
const { width, minWidth, maxWidth, grow } = column;
|
|
23522
|
-
|
|
23523
|
-
|
|
23862
|
+
function columnSizeProps(column) {
|
|
23863
|
+
const { width, minWidth = width, maxWidth, grow } = column;
|
|
23864
|
+
return {
|
|
23865
|
+
style: width || minWidth || maxWidth ? { width, minWidth, maxWidth } : void 0,
|
|
23866
|
+
"data-grow": grow ? "true" : void 0
|
|
23867
|
+
};
|
|
23524
23868
|
}
|
|
23525
23869
|
function renderCell(row, column, withTitle) {
|
|
23526
23870
|
const value = column.cell ? void 0 : columnValue(row, column);
|
|
@@ -23574,7 +23918,7 @@ function DataTableRowImpl({
|
|
|
23574
23918
|
const enter = animate && !foldable && enterMotion_default.enterBase;
|
|
23575
23919
|
const lead = cx(DataTable_default.cell, enter, shared.stickyFirstColumn && DataTable_default.stickyLead);
|
|
23576
23920
|
const folded = (node) => foldable ? /* @__PURE__ */ jsx65(Disclosure, { open: !folding, appear: animate, children: /* @__PURE__ */ jsx65("div", { className: DataTable_default.foldPad, children: node }) }) : node;
|
|
23577
|
-
return /* @__PURE__ */ jsxs50(
|
|
23921
|
+
return /* @__PURE__ */ jsxs50(Fragment34, { children: [
|
|
23578
23922
|
/* @__PURE__ */ jsxs50(
|
|
23579
23923
|
RowElement,
|
|
23580
23924
|
{
|
|
@@ -23670,7 +24014,7 @@ function DataTableRowImpl({
|
|
|
23670
24014
|
shared.stickyLastColumn && isLastColumn && DataTable_default.lastColumnSticky,
|
|
23671
24015
|
enter
|
|
23672
24016
|
),
|
|
23673
|
-
|
|
24017
|
+
...columnSizeProps(column),
|
|
23674
24018
|
"data-align": columnAlign(column),
|
|
23675
24019
|
"data-numeric": column.numeric ? "true" : void 0,
|
|
23676
24020
|
"data-first-column": isFirstColumn ? "true" : void 0,
|
|
@@ -23681,7 +24025,7 @@ function DataTableRowImpl({
|
|
|
23681
24025
|
folded(
|
|
23682
24026
|
/* @__PURE__ */ jsx65("a", { href, className: DataTable_default.rowLink, "data-row-link": "", children: renderCell(row, column, true) })
|
|
23683
24027
|
)
|
|
23684
|
-
) : /* @__PURE__ */ jsxs50(
|
|
24028
|
+
) : /* @__PURE__ */ jsxs50(Fragment34, { children: [
|
|
23685
24029
|
/* @__PURE__ */ jsx65(
|
|
23686
24030
|
"a",
|
|
23687
24031
|
{
|
|
@@ -23808,7 +24152,7 @@ function MeasureBody({
|
|
|
23808
24152
|
"td",
|
|
23809
24153
|
{
|
|
23810
24154
|
className: DataTable_default.cell,
|
|
23811
|
-
|
|
24155
|
+
...columnSizeProps(column),
|
|
23812
24156
|
"data-align": columnAlign(column),
|
|
23813
24157
|
"data-numeric": column.numeric ? "true" : void 0,
|
|
23814
24158
|
"data-first-column": columnIndex === 0 ? "true" : void 0,
|
|
@@ -23824,7 +24168,7 @@ function MeasureBody({
|
|
|
23824
24168
|
}
|
|
23825
24169
|
|
|
23826
24170
|
// src/components/data-table/Head.tsx
|
|
23827
|
-
import { Fragment as
|
|
24171
|
+
import { Fragment as Fragment35, jsx as jsx66, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
23828
24172
|
var ARIA_SORT = { asc: "ascending", desc: "descending" };
|
|
23829
24173
|
var SORT_ICON = { asc: "sort.ascending", desc: "sort.descending" };
|
|
23830
24174
|
var columnLabel2 = (column) => nodeText(column.header) || column.id;
|
|
@@ -23852,7 +24196,7 @@ function Head({
|
|
|
23852
24196
|
stickyHeader && (pinned ? DataTable_default.cornerCellSticky : DataTable_default.headSticky)
|
|
23853
24197
|
);
|
|
23854
24198
|
const lead = cx(headCell(stickyFirstColumn), stickyFirstColumn && DataTable_default.stickyLead);
|
|
23855
|
-
const leading = /* @__PURE__ */ jsxs51(
|
|
24199
|
+
const leading = /* @__PURE__ */ jsxs51(Fragment35, { children: [
|
|
23856
24200
|
gripStart ? /* @__PURE__ */ jsx66("td", { className: cx(lead, DataTable_default.handleCell) }) : null,
|
|
23857
24201
|
selectAll ? /* @__PURE__ */ jsx66("th", { scope: "col", className: cx(lead, DataTable_default.selectCell), children: /* @__PURE__ */ jsx66(
|
|
23858
24202
|
Checkbox.Root,
|
|
@@ -23915,7 +24259,7 @@ function Head({
|
|
|
23915
24259
|
)
|
|
23916
24260
|
]
|
|
23917
24261
|
}
|
|
23918
|
-
) }) : column.hideHeader ? /* @__PURE__ */ jsxs51(
|
|
24262
|
+
) }) : column.hideHeader ? /* @__PURE__ */ jsxs51(Fragment35, { children: [
|
|
23919
24263
|
/* @__PURE__ */ jsx66(VisuallyHidden, { id: labelId, children: column.header }),
|
|
23920
24264
|
menuHere ? /* @__PURE__ */ jsx66("span", { className: DataTable_default.headMenu, children: columnsMenu }) : null
|
|
23921
24265
|
] }) : /* @__PURE__ */ jsxs51("span", { className: DataTable_default.headTitle, children: [
|
|
@@ -23931,7 +24275,7 @@ function Head({
|
|
|
23931
24275
|
stickyFirstColumn && isFirstColumn && DataTable_default.firstColumnSticky,
|
|
23932
24276
|
stickyLastColumn && isLastColumn && DataTable_default.lastColumnSticky
|
|
23933
24277
|
),
|
|
23934
|
-
|
|
24278
|
+
...columnSizeProps(column),
|
|
23935
24279
|
"data-align": column.headerAlign ?? "start",
|
|
23936
24280
|
"data-sorted": order ? "true" : void 0,
|
|
23937
24281
|
"aria-sort": column.sortable ? order ? ARIA_SORT[order] : "none" : void 0,
|
|
@@ -23941,7 +24285,7 @@ function Head({
|
|
|
23941
24285
|
"aria-describedby": described ? descriptionId : void 0,
|
|
23942
24286
|
onClick: column.sortable ? () => onSort(column.id) : void 0
|
|
23943
24287
|
},
|
|
23944
|
-
content: /* @__PURE__ */ jsxs51(
|
|
24288
|
+
content: /* @__PURE__ */ jsxs51(Fragment35, { children: [
|
|
23945
24289
|
label,
|
|
23946
24290
|
described ? /* @__PURE__ */ jsx66("span", { id: descriptionId, hidden: true, children: column.description }) : null
|
|
23947
24291
|
] })
|
|
@@ -23996,8 +24340,29 @@ function WithDescription({
|
|
|
23996
24340
|
] });
|
|
23997
24341
|
}
|
|
23998
24342
|
|
|
23999
|
-
// src/components/data-table/
|
|
24343
|
+
// src/components/data-table/SelectionMenu.tsx
|
|
24000
24344
|
import { jsx as jsx67, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
24345
|
+
function SelectionMenu({ selected, actions, onClear, labels, size }) {
|
|
24346
|
+
const name = labels.selectionActions;
|
|
24347
|
+
return /* @__PURE__ */ jsxs52(Dropdown.Root, { children: [
|
|
24348
|
+
/* @__PURE__ */ jsx67(Dropdown.Trigger, { children: /* @__PURE__ */ jsxs52(Button.Root, { "aria-label": `${name} ${selected.length}`, variant: "soft", tone: "neutral", children: [
|
|
24349
|
+
name,
|
|
24350
|
+
/* @__PURE__ */ jsx67(Badge.Root, { children: selected.length }),
|
|
24351
|
+
/* @__PURE__ */ jsx67(Button.Icon, { children: /* @__PURE__ */ jsx67(Icon, { name: "nav.chevronDown" }) })
|
|
24352
|
+
] }) }),
|
|
24353
|
+
/* @__PURE__ */ jsxs52(Dropdown.Content, { side: "bottom", align: "end", size, children: [
|
|
24354
|
+
/* @__PURE__ */ jsxs52(Dropdown.Item, { onSelect: onClear, children: [
|
|
24355
|
+
/* @__PURE__ */ jsx67(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx67(Icon, { name: "action.close" }) }),
|
|
24356
|
+
labels.clearSelection
|
|
24357
|
+
] }),
|
|
24358
|
+
/* @__PURE__ */ jsx67(Dropdown.Separator, {}),
|
|
24359
|
+
actions
|
|
24360
|
+
] })
|
|
24361
|
+
] });
|
|
24362
|
+
}
|
|
24363
|
+
|
|
24364
|
+
// src/components/data-table/StateRows.tsx
|
|
24365
|
+
import { jsx as jsx68, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
24001
24366
|
function StateRows({
|
|
24002
24367
|
state,
|
|
24003
24368
|
columns,
|
|
@@ -24013,28 +24378,28 @@ function StateRows({
|
|
|
24013
24378
|
skeletonRows
|
|
24014
24379
|
}) {
|
|
24015
24380
|
if (state === "error") {
|
|
24016
|
-
return /* @__PURE__ */
|
|
24381
|
+
return /* @__PURE__ */ jsx68("tr", { children: /* @__PURE__ */ jsx68("td", { colSpan: totalColumns, className: cx(DataTable_default.stateCell, DataTable_default.stateError), children: /* @__PURE__ */ jsx68("div", { className: DataTable_default.stateBox, children: /* @__PURE__ */ jsx68("div", { className: DataTable_default.stateContent, role: "alert", children: loadError }) }) }) });
|
|
24017
24382
|
}
|
|
24018
24383
|
if (state === "empty") {
|
|
24019
|
-
return /* @__PURE__ */
|
|
24384
|
+
return /* @__PURE__ */ jsx68("tr", { children: /* @__PURE__ */ jsx68("td", { colSpan: totalColumns, className: DataTable_default.stateCell, children: /* @__PURE__ */ jsx68("div", { className: DataTable_default.stateBox, children: empty == null || typeof empty === "string" ? /* @__PURE__ */ jsx68(EmptyPage.Root, { layout: "compact", size, role: "status", children: /* @__PURE__ */ jsx68(EmptyPage.Description, { children: empty ?? emptyLabel }) }) : /* @__PURE__ */ jsx68("div", { className: DataTable_default.stateContent, children: empty }) }) }) });
|
|
24020
24385
|
}
|
|
24021
24386
|
return Array.from({ length: skeletonRows }, (_, rowIndex) => (
|
|
24022
24387
|
// biome-ignore lint/suspicious/noArrayIndexKey: static placeholder rows
|
|
24023
|
-
/* @__PURE__ */
|
|
24024
|
-
gripStart ? /* @__PURE__ */
|
|
24025
|
-
selectable ? /* @__PURE__ */
|
|
24026
|
-
expandEnabled ? /* @__PURE__ */
|
|
24027
|
-
columns.map((column) => /* @__PURE__ */
|
|
24388
|
+
/* @__PURE__ */ jsxs53("tr", { className: cx(DataTable_default.row, DataTable_default.skeletonRow), "data-skeleton": "true", children: [
|
|
24389
|
+
gripStart ? /* @__PURE__ */ jsx68("td", { className: cx(DataTable_default.cell, DataTable_default.handleCell) }) : null,
|
|
24390
|
+
selectable ? /* @__PURE__ */ jsx68("td", { className: cx(DataTable_default.cell, DataTable_default.selectCell), children: /* @__PURE__ */ jsx68(Skeleton, { shape: "block", className: DataTable_default.skeletonChoice }) }) : null,
|
|
24391
|
+
expandEnabled ? /* @__PURE__ */ jsx68("td", { className: cx(DataTable_default.cell, DataTable_default.toggleCell) }) : null,
|
|
24392
|
+
columns.map((column) => /* @__PURE__ */ jsx68(
|
|
24028
24393
|
"td",
|
|
24029
24394
|
{
|
|
24030
24395
|
className: DataTable_default.cell,
|
|
24031
|
-
|
|
24396
|
+
...columnSizeProps(column),
|
|
24032
24397
|
"data-align": columnAlign(column),
|
|
24033
|
-
children: /* @__PURE__ */
|
|
24398
|
+
children: /* @__PURE__ */ jsx68(Skeleton, { className: DataTable_default.skeleton })
|
|
24034
24399
|
},
|
|
24035
24400
|
column.id
|
|
24036
24401
|
)),
|
|
24037
|
-
endCell ? /* @__PURE__ */
|
|
24402
|
+
endCell ? /* @__PURE__ */ jsx68("td", { className: cx(DataTable_default.cell, DataTable_default.endCell) }) : null
|
|
24038
24403
|
] }, rowIndex)
|
|
24039
24404
|
));
|
|
24040
24405
|
}
|
|
@@ -24091,8 +24456,15 @@ function unfreeze(table, frozen) {
|
|
|
24091
24456
|
}
|
|
24092
24457
|
function release(table) {
|
|
24093
24458
|
table.style.tableLayout = "";
|
|
24459
|
+
table.style.minWidth = "";
|
|
24460
|
+
table.dataset.measuring = "true";
|
|
24094
24461
|
for (const col of colsOf(table)) col.style.width = "";
|
|
24095
24462
|
}
|
|
24463
|
+
function measureReleased(table) {
|
|
24464
|
+
const result = measure2(table);
|
|
24465
|
+
delete table.dataset.measuring;
|
|
24466
|
+
return result;
|
|
24467
|
+
}
|
|
24096
24468
|
function measure2(table) {
|
|
24097
24469
|
const cols = colsOf(table);
|
|
24098
24470
|
const lead = table.tHead?.rows[0] ?? [...table.querySelectorAll(":scope > tbody > tr")].find(
|
|
@@ -24106,7 +24478,7 @@ function measure2(table) {
|
|
|
24106
24478
|
}
|
|
24107
24479
|
function freeze(table, frozen) {
|
|
24108
24480
|
release(table);
|
|
24109
|
-
const result =
|
|
24481
|
+
const result = measureReleased(table);
|
|
24110
24482
|
if (result) apply(table, frozen, result);
|
|
24111
24483
|
}
|
|
24112
24484
|
var refreeze = /* @__PURE__ */ new Map();
|
|
@@ -24123,7 +24495,7 @@ function scheduleRefreeze(table, frozen) {
|
|
|
24123
24495
|
node.style.minWidth = "";
|
|
24124
24496
|
release(node);
|
|
24125
24497
|
}
|
|
24126
|
-
const measured = tables.map(([node]) =>
|
|
24498
|
+
const measured = tables.map(([node]) => measureReleased(node));
|
|
24127
24499
|
tables.forEach(([node, state], index) => {
|
|
24128
24500
|
const result = measured[index];
|
|
24129
24501
|
if (result) apply(node, state, result);
|
|
@@ -24139,7 +24511,7 @@ function apply(table, frozen, { cols, measured, minimums }) {
|
|
|
24139
24511
|
cols.forEach((col, index) => {
|
|
24140
24512
|
const grows = col.dataset.grow === "true";
|
|
24141
24513
|
if (!grows) col.style.width = `${next[index]}px`;
|
|
24142
|
-
floor += grows ? minimums[index] ?? 0 : next[index] ?? 0;
|
|
24514
|
+
floor += grows ? Math.max(measured[index] ?? 0, minimums[index] ?? 0) : next[index] ?? 0;
|
|
24143
24515
|
});
|
|
24144
24516
|
table.style.tableLayout = "fixed";
|
|
24145
24517
|
table.style.minWidth = `${floor}px`;
|
|
@@ -24334,18 +24706,20 @@ function useRowSelection({
|
|
|
24334
24706
|
commit(next);
|
|
24335
24707
|
};
|
|
24336
24708
|
return {
|
|
24709
|
+
selectedKeys,
|
|
24337
24710
|
selectedSet,
|
|
24338
24711
|
allSelected,
|
|
24339
24712
|
someSelected: selectedInData > 0 && !allSelected,
|
|
24340
24713
|
announcement,
|
|
24341
24714
|
dragging: range.dragging,
|
|
24342
24715
|
toggleAll,
|
|
24716
|
+
clear: () => commit(/* @__PURE__ */ new Set()),
|
|
24343
24717
|
handlers
|
|
24344
24718
|
};
|
|
24345
24719
|
}
|
|
24346
24720
|
|
|
24347
24721
|
// src/components/data-table/DataTable.tsx
|
|
24348
|
-
import { jsx as
|
|
24722
|
+
import { jsx as jsx69, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
24349
24723
|
var DATA_TABLE_LABELS = {
|
|
24350
24724
|
loading: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0434\u0430\u043D\u043D\u044B\u0445\u2026",
|
|
24351
24725
|
empty: "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F.",
|
|
@@ -24355,6 +24729,8 @@ var DATA_TABLE_LABELS = {
|
|
|
24355
24729
|
selectAll: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",
|
|
24356
24730
|
selectRow: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 {label}",
|
|
24357
24731
|
selectedCount: "\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {count}",
|
|
24732
|
+
selectionActions: "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F",
|
|
24733
|
+
clearSelection: "\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0431\u043E\u0440",
|
|
24358
24734
|
expand: "\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 {label}",
|
|
24359
24735
|
collapse: "\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 {label}",
|
|
24360
24736
|
columns: "\u041A\u043E\u043B\u043E\u043D\u043A\u0438",
|
|
@@ -24462,6 +24838,7 @@ function DataTable({
|
|
|
24462
24838
|
loadingRows,
|
|
24463
24839
|
toolbar,
|
|
24464
24840
|
toolbarChips,
|
|
24841
|
+
renderSelectionActions,
|
|
24465
24842
|
getRowGroup,
|
|
24466
24843
|
renderGroupHeader,
|
|
24467
24844
|
stickyGroupHeaders = false,
|
|
@@ -24760,11 +25137,21 @@ function DataTable({
|
|
|
24760
25137
|
tableRef,
|
|
24761
25138
|
announce: (count) => formatLabel(labels.selectedCount, { count })
|
|
24762
25139
|
});
|
|
25140
|
+
const selectedKeys = selection.selectedKeys ?? EMPTY_KEYS;
|
|
25141
|
+
const showSelectionActions = renderSelectionActions != null && selectedKeys.length > 0;
|
|
25142
|
+
const selectionActions = usePartPresence({
|
|
25143
|
+
present: showSelectionActions,
|
|
25144
|
+
axis: "inline"
|
|
25145
|
+
});
|
|
25146
|
+
const hasToolbar = toolbar != null || toolbarChips != null || showSelectionActions;
|
|
25147
|
+
const toolbarPresence = usePartPresence({ present: hasToolbar, axis: "block" });
|
|
24763
25148
|
const hasError = loadError != null && loadError !== false;
|
|
24764
25149
|
const showSkeleton = !hasError && loading && displayedCount === 0;
|
|
24765
25150
|
const showEmpty = !hasError && !loading && displayedCount === 0;
|
|
24766
25151
|
const bodyState = hasError ? "error" : showSkeleton ? "loading" : showEmpty ? "empty" : "rows";
|
|
24767
|
-
const { key: bodyKey, className: swapClass } = useSwapIn(
|
|
25152
|
+
const { key: bodyKey, className: swapClass } = useSwapIn(
|
|
25153
|
+
bodyState === "loading" ? bodyState : `${bodyState}-${rowArrival.batch}`
|
|
25154
|
+
);
|
|
24768
25155
|
const rowHandle = reorder.enabled ? reorderHandle : null;
|
|
24769
25156
|
const gripStart = rowHandle === "start";
|
|
24770
25157
|
const gripEnd = rowHandle === "end";
|
|
@@ -24935,7 +25322,7 @@ function DataTable({
|
|
|
24935
25322
|
onReorder: (id, beforeId) => setOrderState(moveBefore(orderIds, id, beforeId, (each) => each)),
|
|
24936
25323
|
reset: orderIds.join("\0") === defaultOrder ? null : () => setOrderState(allColumns.map((column) => column.id))
|
|
24937
25324
|
} : null;
|
|
24938
|
-
const columnsMenuTrigger = menuInHead ? /* @__PURE__ */
|
|
25325
|
+
const columnsMenuTrigger = menuInHead ? /* @__PURE__ */ jsx69(
|
|
24939
25326
|
ColumnsMenu,
|
|
24940
25327
|
{
|
|
24941
25328
|
columns: orderedColumns,
|
|
@@ -24950,7 +25337,7 @@ function DataTable({
|
|
|
24950
25337
|
const rowOpens = Boolean(getRowHref || onRowClick);
|
|
24951
25338
|
const renderRow = (item, index, inWindow = false) => {
|
|
24952
25339
|
const opens = rowOpens && (isRowClickable?.(item.row) ?? true);
|
|
24953
|
-
return /* @__PURE__ */
|
|
25340
|
+
return /* @__PURE__ */ jsx69(
|
|
24954
25341
|
DataTableRow,
|
|
24955
25342
|
{
|
|
24956
25343
|
shared,
|
|
@@ -24977,7 +25364,7 @@ function DataTable({
|
|
|
24977
25364
|
};
|
|
24978
25365
|
const spacerRow = (key, height) => height > 0 ? (
|
|
24979
25366
|
// biome-ignore lint/a11y/noAriaHiddenOnFocusable: a spacer `<tr>` holds nothing focusable
|
|
24980
|
-
/* @__PURE__ */
|
|
25367
|
+
/* @__PURE__ */ jsx69("tr", { className: DataTable_default.spacerRow, "aria-hidden": "true", children: /* @__PURE__ */ jsx69("td", { colSpan: totalColumns, className: DataTable_default.spacerCell, style: { height } }) }, key)
|
|
24981
25368
|
) : null;
|
|
24982
25369
|
const renderWindow = () => {
|
|
24983
25370
|
const laid = rowGaps(virtual);
|
|
@@ -24997,7 +25384,7 @@ function DataTable({
|
|
|
24997
25384
|
const { key } = segment;
|
|
24998
25385
|
const group = groups.get(key);
|
|
24999
25386
|
const collapsed = collapsedSet.has(key);
|
|
25000
|
-
return /* @__PURE__ */
|
|
25387
|
+
return /* @__PURE__ */ jsx69(
|
|
25001
25388
|
GroupRow,
|
|
25002
25389
|
{
|
|
25003
25390
|
totalColumns,
|
|
@@ -25016,8 +25403,8 @@ function DataTable({
|
|
|
25016
25403
|
}
|
|
25017
25404
|
);
|
|
25018
25405
|
};
|
|
25019
|
-
return /* @__PURE__ */
|
|
25020
|
-
/* @__PURE__ */
|
|
25406
|
+
return /* @__PURE__ */ jsx69(ReorderRoot, { enabled: reorder.enabled || reorderColumns && showHeader, children: /* @__PURE__ */ jsx69(SurfaceDepthProvider, { value: depth, children: tier.provide(
|
|
25407
|
+
/* @__PURE__ */ jsxs54(
|
|
25021
25408
|
"div",
|
|
25022
25409
|
{
|
|
25023
25410
|
...rest,
|
|
@@ -25046,11 +25433,38 @@ function DataTable({
|
|
|
25046
25433
|
"scroll-height": fillHeight ? "fill" : void 0
|
|
25047
25434
|
}),
|
|
25048
25435
|
children: [
|
|
25049
|
-
|
|
25050
|
-
|
|
25051
|
-
|
|
25052
|
-
|
|
25053
|
-
|
|
25436
|
+
hasToolbar ? /* @__PURE__ */ jsxs54(
|
|
25437
|
+
"div",
|
|
25438
|
+
{
|
|
25439
|
+
ref: toolbarPresence.ref,
|
|
25440
|
+
className: cx(DataTable_default.toolbar, toolbarPresence.className),
|
|
25441
|
+
children: [
|
|
25442
|
+
toolbar != null || showSelectionActions ? /* @__PURE__ */ jsxs54(ToolRow, { children: [
|
|
25443
|
+
toolbar,
|
|
25444
|
+
showSelectionActions ? /* @__PURE__ */ jsx69(
|
|
25445
|
+
ToolCell,
|
|
25446
|
+
{
|
|
25447
|
+
ref: selectionActions.ref,
|
|
25448
|
+
className: selectionActions.className,
|
|
25449
|
+
children: /* @__PURE__ */ jsx69(
|
|
25450
|
+
SelectionMenu,
|
|
25451
|
+
{
|
|
25452
|
+
selected: selectedKeys,
|
|
25453
|
+
actions: renderSelectionActions(selectedKeys),
|
|
25454
|
+
onClear: selection.clear,
|
|
25455
|
+
labels,
|
|
25456
|
+
size
|
|
25457
|
+
}
|
|
25458
|
+
)
|
|
25459
|
+
},
|
|
25460
|
+
"\\u0000selection"
|
|
25461
|
+
) : null
|
|
25462
|
+
] }) : null,
|
|
25463
|
+
toolbarChips != null ? /* @__PURE__ */ jsx69(ToolChips, { children: toolbarChips }) : null
|
|
25464
|
+
]
|
|
25465
|
+
}
|
|
25466
|
+
) : null,
|
|
25467
|
+
/* @__PURE__ */ jsx69("div", { className: cx(fieldTierClass, DataTable_default.frame), "data-size": compactTier(size), children: /* @__PURE__ */ jsxs54(
|
|
25054
25468
|
ScrollContainer,
|
|
25055
25469
|
{
|
|
25056
25470
|
ref: scrollRef,
|
|
@@ -25061,7 +25475,7 @@ function DataTable({
|
|
|
25061
25475
|
"data-size": "xs",
|
|
25062
25476
|
style: { maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight },
|
|
25063
25477
|
children: [
|
|
25064
|
-
/* @__PURE__ */
|
|
25478
|
+
/* @__PURE__ */ jsxs54(
|
|
25065
25479
|
"table",
|
|
25066
25480
|
{
|
|
25067
25481
|
ref: mergedTableRef,
|
|
@@ -25071,14 +25485,14 @@ function DataTable({
|
|
|
25071
25485
|
"aria-rowcount": virtualized ? flatRows.length + headRows : void 0,
|
|
25072
25486
|
...columnHover,
|
|
25073
25487
|
children: [
|
|
25074
|
-
/* @__PURE__ */
|
|
25075
|
-
gripStart ? /* @__PURE__ */
|
|
25076
|
-
selectable ? /* @__PURE__ */
|
|
25077
|
-
expandEnabled ? /* @__PURE__ */
|
|
25078
|
-
columns.map((column) => /* @__PURE__ */
|
|
25079
|
-
endCell ? /* @__PURE__ */
|
|
25488
|
+
/* @__PURE__ */ jsxs54("colgroup", { children: [
|
|
25489
|
+
gripStart ? /* @__PURE__ */ jsx69("col", {}) : null,
|
|
25490
|
+
selectable ? /* @__PURE__ */ jsx69("col", {}) : null,
|
|
25491
|
+
expandEnabled ? /* @__PURE__ */ jsx69("col", {}) : null,
|
|
25492
|
+
columns.map((column) => /* @__PURE__ */ jsx69("col", { "data-grow": column.grow ? "true" : void 0 }, column.id)),
|
|
25493
|
+
endCell ? /* @__PURE__ */ jsx69("col", {}) : null
|
|
25080
25494
|
] }),
|
|
25081
|
-
showHeader ? /* @__PURE__ */
|
|
25495
|
+
showHeader ? /* @__PURE__ */ jsx69(
|
|
25082
25496
|
Head,
|
|
25083
25497
|
{
|
|
25084
25498
|
columns,
|
|
@@ -25103,7 +25517,7 @@ function DataTable({
|
|
|
25103
25517
|
} : void 0
|
|
25104
25518
|
}
|
|
25105
25519
|
) : null,
|
|
25106
|
-
reorder.enabled && bodyState === "rows" ? /* @__PURE__ */
|
|
25520
|
+
reorder.enabled && bodyState === "rows" ? /* @__PURE__ */ jsx69(React77.Fragment, { children: segments.map((segment) => /* @__PURE__ */ jsx69(
|
|
25107
25521
|
ReorderBody,
|
|
25108
25522
|
{
|
|
25109
25523
|
entries: segment.rows,
|
|
@@ -25117,10 +25531,10 @@ function DataTable({
|
|
|
25117
25531
|
className: swapClass
|
|
25118
25532
|
},
|
|
25119
25533
|
`group-${String(segment.key)}`
|
|
25120
|
-
)) }, bodyKey) : groups && bodyState === "rows" ? /* @__PURE__ */
|
|
25534
|
+
)) }, bodyKey) : groups && bodyState === "rows" ? /* @__PURE__ */ jsx69(React77.Fragment, { children: segments.map((segment) => /* @__PURE__ */ jsxs54("tbody", { className: swapClass, children: [
|
|
25121
25535
|
groupHeader(segment),
|
|
25122
25536
|
segment.rows.map(({ item, index }) => renderRow(item, index))
|
|
25123
|
-
] }, `group-${String(segment.key)}`)) }, bodyKey) : /* @__PURE__ */
|
|
25537
|
+
] }, `group-${String(segment.key)}`)) }, bodyKey) : /* @__PURE__ */ jsx69("tbody", { className: swapClass, ...trackFocus, children: bodyState === "rows" ? virtualized ? renderWindow() : flat.rows.map((item, index) => renderRow(item, index)) : /* @__PURE__ */ jsx69(
|
|
25124
25538
|
StateRows,
|
|
25125
25539
|
{
|
|
25126
25540
|
state: bodyState,
|
|
@@ -25140,7 +25554,7 @@ function DataTable({
|
|
|
25140
25554
|
)
|
|
25141
25555
|
}
|
|
25142
25556
|
) }, bodyKey),
|
|
25143
|
-
flat.measure.length > 0 && !hasError ? /* @__PURE__ */
|
|
25557
|
+
flat.measure.length > 0 && !hasError ? /* @__PURE__ */ jsx69(
|
|
25144
25558
|
MeasureBody,
|
|
25145
25559
|
{
|
|
25146
25560
|
rows: flat.measure,
|
|
@@ -25154,7 +25568,7 @@ function DataTable({
|
|
|
25154
25568
|
]
|
|
25155
25569
|
}
|
|
25156
25570
|
),
|
|
25157
|
-
infinite ? /* @__PURE__ */
|
|
25571
|
+
infinite ? /* @__PURE__ */ jsx69(
|
|
25158
25572
|
"div",
|
|
25159
25573
|
{
|
|
25160
25574
|
ref: infiniteRows.sentinelRef,
|
|
@@ -25165,9 +25579,9 @@ function DataTable({
|
|
|
25165
25579
|
]
|
|
25166
25580
|
}
|
|
25167
25581
|
) }),
|
|
25168
|
-
showSkeleton ? /* @__PURE__ */
|
|
25169
|
-
selectable ? /* @__PURE__ */
|
|
25170
|
-
/* @__PURE__ */
|
|
25582
|
+
showSkeleton ? /* @__PURE__ */ jsx69(VisuallyHidden, { live: "polite", children: labels.loading }) : null,
|
|
25583
|
+
selectable ? /* @__PURE__ */ jsx69(VisuallyHidden, { live: "polite", children: selection.announcement }) : null,
|
|
25584
|
+
/* @__PURE__ */ jsx69(
|
|
25171
25585
|
Footer,
|
|
25172
25586
|
{
|
|
25173
25587
|
range: showRange ? formatLabel(labels.range, {
|
|
@@ -25187,7 +25601,7 @@ function DataTable({
|
|
|
25187
25601
|
|
|
25188
25602
|
// src/components/data-table/DataTableColumnsMenu.tsx
|
|
25189
25603
|
import * as React78 from "react";
|
|
25190
|
-
import { jsx as
|
|
25604
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
25191
25605
|
var CHOOSER_LABELS = {
|
|
25192
25606
|
columns: DATA_TABLE_LABELS.columns,
|
|
25193
25607
|
showColumns: DATA_TABLE_LABELS.showColumns,
|
|
@@ -25220,7 +25634,7 @@ function DataTableColumnsMenu({
|
|
|
25220
25634
|
onReorder: (id, beforeId) => onColumnOrderChange(moveBefore(ids, id, beforeId, idOf3)),
|
|
25221
25635
|
reset: ids.join("\0") === defaultOrder.join("\0") ? null : () => onColumnOrderChange(defaultOrder)
|
|
25222
25636
|
} : null;
|
|
25223
|
-
return /* @__PURE__ */
|
|
25637
|
+
return /* @__PURE__ */ jsx70(
|
|
25224
25638
|
ColumnsMenu,
|
|
25225
25639
|
{
|
|
25226
25640
|
columns: ordered,
|
|
@@ -25250,7 +25664,7 @@ var DescriptionList_default = {
|
|
|
25250
25664
|
};
|
|
25251
25665
|
|
|
25252
25666
|
// src/components/description-list/DescriptionList.tsx
|
|
25253
|
-
import { Fragment as
|
|
25667
|
+
import { Fragment as Fragment37, jsx as jsx71, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
25254
25668
|
var DESCRIPTION_LIST_LABELS = {
|
|
25255
25669
|
empty: "\u2014",
|
|
25256
25670
|
emptyText: "\u041D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043E"
|
|
@@ -25270,13 +25684,13 @@ function DescriptionListRoot({
|
|
|
25270
25684
|
}) {
|
|
25271
25685
|
const { size, provide } = useHostTier(sizeProp);
|
|
25272
25686
|
const mergedLabels = useLabels(DESCRIPTION_LIST_LABELS, labels);
|
|
25273
|
-
return /* @__PURE__ */
|
|
25687
|
+
return /* @__PURE__ */ jsx71(
|
|
25274
25688
|
"dl",
|
|
25275
25689
|
{
|
|
25276
25690
|
...rest,
|
|
25277
25691
|
className: cx(fieldTierClass, DescriptionList_default.root, className),
|
|
25278
25692
|
...toDataAttributes({ size, orientation, align: align === "end" ? align : void 0 }),
|
|
25279
|
-
children: /* @__PURE__ */
|
|
25693
|
+
children: /* @__PURE__ */ jsx71(DescriptionListContext.Provider, { value: { size, labels: mergedLabels }, children: provide(children) })
|
|
25280
25694
|
}
|
|
25281
25695
|
);
|
|
25282
25696
|
}
|
|
@@ -25290,21 +25704,21 @@ function DescriptionListItem({ label, children, className, ...rest }) {
|
|
|
25290
25704
|
);
|
|
25291
25705
|
const value = parts.filter((child) => child !== action);
|
|
25292
25706
|
const empty = value.length === 0 || value.every(isEmptyValue);
|
|
25293
|
-
return /* @__PURE__ */
|
|
25294
|
-
/* @__PURE__ */
|
|
25295
|
-
/* @__PURE__ */
|
|
25296
|
-
/* @__PURE__ */
|
|
25297
|
-
/* @__PURE__ */
|
|
25298
|
-
/* @__PURE__ */
|
|
25707
|
+
return /* @__PURE__ */ jsxs55("div", { ...rest, className: cx(DescriptionList_default.item, className), children: [
|
|
25708
|
+
/* @__PURE__ */ jsx71("dt", { className: DescriptionList_default.label, children: label }),
|
|
25709
|
+
/* @__PURE__ */ jsxs55("dd", { className: DescriptionList_default.value, "data-empty": empty || void 0, children: [
|
|
25710
|
+
/* @__PURE__ */ jsx71("span", { className: DescriptionList_default.text, children: empty ? /* @__PURE__ */ jsxs55(Fragment37, { children: [
|
|
25711
|
+
/* @__PURE__ */ jsx71("span", { "aria-hidden": "true", children: labels.empty }),
|
|
25712
|
+
/* @__PURE__ */ jsx71(VisuallyHidden, { children: labels.emptyText })
|
|
25299
25713
|
] }) : value }),
|
|
25300
|
-
action ? /* @__PURE__ */
|
|
25714
|
+
action ? /* @__PURE__ */ jsx71("span", { className: DescriptionList_default.action, children: action }) : null
|
|
25301
25715
|
] })
|
|
25302
25716
|
] });
|
|
25303
25717
|
}
|
|
25304
25718
|
DescriptionListItem.displayName = "DescriptionList.Item";
|
|
25305
25719
|
function DescriptionListItemAction({ label, children, ...rest }) {
|
|
25306
25720
|
const { size } = React79.useContext(DescriptionListContext);
|
|
25307
|
-
return /* @__PURE__ */
|
|
25721
|
+
return /* @__PURE__ */ jsx71(RowAction, { ...rest, label, size, children });
|
|
25308
25722
|
}
|
|
25309
25723
|
DescriptionListItemAction.displayName = "DescriptionList.ItemAction";
|
|
25310
25724
|
var DescriptionList = {
|
|
@@ -25325,7 +25739,7 @@ var DigitInput_default = {
|
|
|
25325
25739
|
};
|
|
25326
25740
|
|
|
25327
25741
|
// src/components/digit-input/DigitInput.tsx
|
|
25328
|
-
import { jsx as
|
|
25742
|
+
import { jsx as jsx72, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
25329
25743
|
var DIGIT_INPUT_LABELS = {
|
|
25330
25744
|
group: "\u041A\u043E\u0434",
|
|
25331
25745
|
cell: "\u0426\u0438\u0444\u0440\u0430 {index} \u0438\u0437 {length}",
|
|
@@ -25410,6 +25824,13 @@ function DigitInput({
|
|
|
25410
25824
|
if (next.length === length && !wasComplete) check(next);
|
|
25411
25825
|
};
|
|
25412
25826
|
const cells = Array.from({ length }, (_, index) => value[index] ?? "");
|
|
25827
|
+
const [mountCells] = React80.useState(cells);
|
|
25828
|
+
const [touched2, setTouched] = React80.useState(() => /* @__PURE__ */ new Set());
|
|
25829
|
+
const changed = cells.flatMap(
|
|
25830
|
+
(cell, index) => cell !== mountCells[index] && !touched2.has(index) ? [index] : []
|
|
25831
|
+
);
|
|
25832
|
+
if (changed.length > 0) setTouched(/* @__PURE__ */ new Set([...touched2, ...changed]));
|
|
25833
|
+
const inks = (index) => cells[index] !== "" && (touched2.has(index) || cells[index] !== mountCells[index]);
|
|
25413
25834
|
const inputRefs = React80.useRef([]);
|
|
25414
25835
|
const pendingFocusRef = React80.useRef(null);
|
|
25415
25836
|
React80.useLayoutEffect(() => {
|
|
@@ -25470,7 +25891,7 @@ function DigitInput({
|
|
|
25470
25891
|
commit(nextCells.join(""));
|
|
25471
25892
|
};
|
|
25472
25893
|
return tier.provide(
|
|
25473
|
-
/* @__PURE__ */
|
|
25894
|
+
/* @__PURE__ */ jsx72(
|
|
25474
25895
|
FieldFrame,
|
|
25475
25896
|
{
|
|
25476
25897
|
...rest,
|
|
@@ -25486,7 +25907,7 @@ function DigitInput({
|
|
|
25486
25907
|
optionalLabel: labels.optional,
|
|
25487
25908
|
className: cx(DigitInput_default.frame, className),
|
|
25488
25909
|
"data-full-width": fullWidth || void 0,
|
|
25489
|
-
children: /* @__PURE__ */
|
|
25910
|
+
children: /* @__PURE__ */ jsxs56(
|
|
25490
25911
|
"fieldset",
|
|
25491
25912
|
{
|
|
25492
25913
|
"aria-label": ids.labelledBy ? void 0 : labels.group,
|
|
@@ -25513,7 +25934,7 @@ function DigitInput({
|
|
|
25513
25934
|
if (!event.currentTarget.contains(event.relatedTarget)) setFocusIndex(null);
|
|
25514
25935
|
},
|
|
25515
25936
|
children: [
|
|
25516
|
-
/* @__PURE__ */
|
|
25937
|
+
/* @__PURE__ */ jsx72(
|
|
25517
25938
|
"span",
|
|
25518
25939
|
{
|
|
25519
25940
|
ref: ringRef,
|
|
@@ -25522,8 +25943,8 @@ function DigitInput({
|
|
|
25522
25943
|
"data-visible": focusIndex !== null || void 0
|
|
25523
25944
|
}
|
|
25524
25945
|
),
|
|
25525
|
-
name ? /* @__PURE__ */
|
|
25526
|
-
cells.map((cell, index) => /* @__PURE__ */
|
|
25946
|
+
name ? /* @__PURE__ */ jsx72("input", { type: "hidden", name, value }) : null,
|
|
25947
|
+
cells.map((cell, index) => /* @__PURE__ */ jsx72(
|
|
25527
25948
|
"input",
|
|
25528
25949
|
{
|
|
25529
25950
|
ref: (el) => {
|
|
@@ -25544,7 +25965,7 @@ function DigitInput({
|
|
|
25544
25965
|
fieldSurfaceClass,
|
|
25545
25966
|
fieldCodeCellClass,
|
|
25546
25967
|
DigitInput_default.cell,
|
|
25547
|
-
|
|
25968
|
+
inks(index) ? enterMotion_default.enterInk : void 0
|
|
25548
25969
|
),
|
|
25549
25970
|
"data-focus-ring": "false",
|
|
25550
25971
|
style: { "--digit-i": index },
|
|
@@ -25584,7 +26005,7 @@ function DigitInput({
|
|
|
25584
26005
|
},
|
|
25585
26006
|
index
|
|
25586
26007
|
)),
|
|
25587
|
-
/* @__PURE__ */
|
|
26008
|
+
/* @__PURE__ */ jsx72(VisuallyHidden, { live: "polite", children: verification?.state === "refused" ? verification.reason : "" })
|
|
25588
26009
|
]
|
|
25589
26010
|
}
|
|
25590
26011
|
)
|
|
@@ -25599,10 +26020,10 @@ var Drawer_default = {
|
|
|
25599
26020
|
};
|
|
25600
26021
|
|
|
25601
26022
|
// src/components/drawer/Drawer.tsx
|
|
25602
|
-
import { jsx as
|
|
26023
|
+
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
25603
26024
|
function DrawerRoot({ children, ...options }) {
|
|
25604
26025
|
const state = useDialogRoot(options);
|
|
25605
|
-
return /* @__PURE__ */
|
|
26026
|
+
return /* @__PURE__ */ jsx73(DialogRootProvider, { value: state, children });
|
|
25606
26027
|
}
|
|
25607
26028
|
DrawerRoot.displayName = "Drawer.Root";
|
|
25608
26029
|
function DrawerContent({
|
|
@@ -25610,7 +26031,7 @@ function DrawerContent({
|
|
|
25610
26031
|
size = OVERLAY_CONTENT_SIZE,
|
|
25611
26032
|
...props
|
|
25612
26033
|
}) {
|
|
25613
|
-
return /* @__PURE__ */
|
|
26034
|
+
return /* @__PURE__ */ jsx73(
|
|
25614
26035
|
DialogPanel,
|
|
25615
26036
|
{
|
|
25616
26037
|
...props,
|
|
@@ -25618,6 +26039,7 @@ function DrawerContent({
|
|
|
25618
26039
|
panelClassName: Drawer_default.panel,
|
|
25619
26040
|
swipe: "never",
|
|
25620
26041
|
footerLayout: "end",
|
|
26042
|
+
focusStart: "container",
|
|
25621
26043
|
"data-side": side,
|
|
25622
26044
|
"data-size": size
|
|
25623
26045
|
}
|
|
@@ -25671,7 +26093,7 @@ var ExampleFrame_default = {
|
|
|
25671
26093
|
};
|
|
25672
26094
|
|
|
25673
26095
|
// src/components/example-frame/ExampleFrame.tsx
|
|
25674
|
-
import { jsx as
|
|
26096
|
+
import { jsx as jsx74, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
25675
26097
|
var VIEWPORTS = ["desktop", "tablet", "mobile"];
|
|
25676
26098
|
var EXAMPLE_FRAME_LABELS = {
|
|
25677
26099
|
paneSwitch: "\u0412\u0438\u0434 \u043F\u0440\u0438\u043C\u0435\u0440\u0430",
|
|
@@ -25808,8 +26230,8 @@ function ExampleFrame({
|
|
|
25808
26230
|
previousScheme.current = colorScheme;
|
|
25809
26231
|
if (rootRef.current) suspendTransitions(rootRef.current);
|
|
25810
26232
|
}, [colorScheme]);
|
|
25811
|
-
return /* @__PURE__ */
|
|
25812
|
-
/* @__PURE__ */
|
|
26233
|
+
return /* @__PURE__ */ jsxs57("div", { ...rest, ref: mergedRef, className: cx(ExampleFrame_default.root, className), "data-depth": depth, children: [
|
|
26234
|
+
/* @__PURE__ */ jsx74(
|
|
25813
26235
|
ExampleFrameToolbar,
|
|
25814
26236
|
{
|
|
25815
26237
|
code,
|
|
@@ -25823,7 +26245,7 @@ function ExampleFrame({
|
|
|
25823
26245
|
onCopy
|
|
25824
26246
|
}
|
|
25825
26247
|
),
|
|
25826
|
-
/* @__PURE__ */
|
|
26248
|
+
/* @__PURE__ */ jsx74(RegionSwap, { state: pane, children: pane === "preview" ? /* @__PURE__ */ jsx74("div", { className: ExampleFrame_default.previewViewport, "data-viewport": viewport2, children: /* @__PURE__ */ jsx74(
|
|
25827
26249
|
ScrollContainer,
|
|
25828
26250
|
{
|
|
25829
26251
|
ref: stageRef,
|
|
@@ -25833,12 +26255,12 @@ function ExampleFrame({
|
|
|
25833
26255
|
"data-preview-layout": previewLayout,
|
|
25834
26256
|
"data-theme": colorScheme,
|
|
25835
26257
|
"data-depth": stageDepth,
|
|
25836
|
-
children: /* @__PURE__ */
|
|
26258
|
+
children: /* @__PURE__ */ jsx74(SurfaceDepthProvider, { value: stageDepth, children: /* @__PURE__ */ jsx74(AppShellBoundary, { children }) })
|
|
25837
26259
|
}
|
|
25838
26260
|
) }) : (
|
|
25839
26261
|
// Plain CodeBlock is not focusable itself; the scrolling pane takes keyboard focus
|
|
25840
26262
|
// instead. The pane carries the theme, so the block inherits it (and trims the source).
|
|
25841
|
-
/* @__PURE__ */
|
|
26263
|
+
/* @__PURE__ */ jsx74(
|
|
25842
26264
|
ScrollContainer,
|
|
25843
26265
|
{
|
|
25844
26266
|
as: "section",
|
|
@@ -25848,7 +26270,7 @@ function ExampleFrame({
|
|
|
25848
26270
|
"data-theme": colorScheme,
|
|
25849
26271
|
tabIndex: 0,
|
|
25850
26272
|
"aria-label": labels.codeRegion,
|
|
25851
|
-
children: /* @__PURE__ */
|
|
26273
|
+
children: /* @__PURE__ */ jsx74(CodeBlock, { variant: "ghost", code })
|
|
25852
26274
|
}
|
|
25853
26275
|
)
|
|
25854
26276
|
) })
|
|
@@ -25887,9 +26309,9 @@ function ExampleFrameToolbar({
|
|
|
25887
26309
|
const copyLabel = copyState === "copied" ? labels.copied : copyState === "error" ? labels.copyError : labels.copy;
|
|
25888
26310
|
const themeGlyph = colorScheme === "light" ? "theme.dark" : "theme.light";
|
|
25889
26311
|
const copyGlyph = copyState === "copied" ? "action.check" : "action.copy";
|
|
25890
|
-
return /* @__PURE__ */
|
|
25891
|
-
/* @__PURE__ */
|
|
25892
|
-
/* @__PURE__ */
|
|
26312
|
+
return /* @__PURE__ */ jsxs57("div", { ref: toolbarRef, className: ExampleFrame_default.toolbar, "data-narrow": narrow || void 0, children: [
|
|
26313
|
+
/* @__PURE__ */ jsxs57("div", { className: ExampleFrame_default.toolbarLine1, children: [
|
|
26314
|
+
/* @__PURE__ */ jsxs57(
|
|
25893
26315
|
SegmentedControl.Root,
|
|
25894
26316
|
{
|
|
25895
26317
|
className: ExampleFrame_default.toolbarPaneSegment,
|
|
@@ -25899,19 +26321,19 @@ function ExampleFrameToolbar({
|
|
|
25899
26321
|
size: "s",
|
|
25900
26322
|
"aria-label": labels.paneSwitch,
|
|
25901
26323
|
children: [
|
|
25902
|
-
/* @__PURE__ */
|
|
25903
|
-
/* @__PURE__ */
|
|
26324
|
+
/* @__PURE__ */ jsxs57(SegmentedControl.Item, { value: "preview", children: [
|
|
26325
|
+
/* @__PURE__ */ jsx74(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx74(Icon, { name: "view.preview" }) }),
|
|
25904
26326
|
labels.preview
|
|
25905
26327
|
] }),
|
|
25906
|
-
/* @__PURE__ */
|
|
25907
|
-
/* @__PURE__ */
|
|
26328
|
+
/* @__PURE__ */ jsxs57(SegmentedControl.Item, { value: "code", children: [
|
|
26329
|
+
/* @__PURE__ */ jsx74(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx74(Icon, { name: "view.code" }) }),
|
|
25908
26330
|
labels.code
|
|
25909
26331
|
] })
|
|
25910
26332
|
]
|
|
25911
26333
|
}
|
|
25912
26334
|
),
|
|
25913
|
-
/* @__PURE__ */
|
|
25914
|
-
onColorSchemeChange ? /* @__PURE__ */
|
|
26335
|
+
/* @__PURE__ */ jsxs57("div", { className: ExampleFrame_default.toolbarLine1End, children: [
|
|
26336
|
+
onColorSchemeChange ? /* @__PURE__ */ jsx74(
|
|
25915
26337
|
Button.Root,
|
|
25916
26338
|
{
|
|
25917
26339
|
variant: "soft",
|
|
@@ -25920,10 +26342,10 @@ function ExampleFrameToolbar({
|
|
|
25920
26342
|
size: "s",
|
|
25921
26343
|
onClick: () => onColorSchemeChange(colorScheme === "light" ? "dark" : "light"),
|
|
25922
26344
|
"aria-label": colorScheme === "light" ? labels.themeDark : labels.themeLight,
|
|
25923
|
-
children: /* @__PURE__ */
|
|
26345
|
+
children: /* @__PURE__ */ jsx74(Button.Icon, { children: /* @__PURE__ */ jsx74(Icon, { name: themeGlyph, size: "s", tone: "secondary" }) })
|
|
25924
26346
|
}
|
|
25925
26347
|
) : null,
|
|
25926
|
-
/* @__PURE__ */
|
|
26348
|
+
/* @__PURE__ */ jsx74(
|
|
25927
26349
|
Button.Root,
|
|
25928
26350
|
{
|
|
25929
26351
|
variant: "soft",
|
|
@@ -25932,12 +26354,12 @@ function ExampleFrameToolbar({
|
|
|
25932
26354
|
size: "s",
|
|
25933
26355
|
onClick: handleCopy,
|
|
25934
26356
|
"aria-label": copyLabel,
|
|
25935
|
-
children: /* @__PURE__ */
|
|
26357
|
+
children: /* @__PURE__ */ jsx74(Button.Icon, { "data-copy-state": copyState, children: /* @__PURE__ */ jsx74(Icon, { name: copyGlyph, size: "s", tone: "secondary" }) })
|
|
25936
26358
|
}
|
|
25937
26359
|
)
|
|
25938
26360
|
] })
|
|
25939
26361
|
] }),
|
|
25940
|
-
pane === "preview" ? /* @__PURE__ */
|
|
26362
|
+
pane === "preview" ? /* @__PURE__ */ jsx74(
|
|
25941
26363
|
SegmentedControl.Root,
|
|
25942
26364
|
{
|
|
25943
26365
|
className: ExampleFrame_default.toolbarViewportSegment,
|
|
@@ -25946,8 +26368,8 @@ function ExampleFrameToolbar({
|
|
|
25946
26368
|
onValueChange: (v) => onViewportChange(v),
|
|
25947
26369
|
size: "s",
|
|
25948
26370
|
"aria-label": labels.viewportSwitch,
|
|
25949
|
-
children: VIEWPORTS.map((option) => /* @__PURE__ */
|
|
25950
|
-
/* @__PURE__ */
|
|
26371
|
+
children: VIEWPORTS.map((option) => /* @__PURE__ */ jsxs57(SegmentedControl.Item, { value: option, children: [
|
|
26372
|
+
/* @__PURE__ */ jsx74(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx74(Icon, { name: `viewport.${option}` }) }),
|
|
25951
26373
|
labels[option]
|
|
25952
26374
|
] }, option))
|
|
25953
26375
|
}
|
|
@@ -25985,7 +26407,7 @@ var FieldList_default = {
|
|
|
25985
26407
|
};
|
|
25986
26408
|
|
|
25987
26409
|
// src/components/field-list/FieldList.tsx
|
|
25988
|
-
import { Fragment as
|
|
26410
|
+
import { Fragment as Fragment39, jsx as jsx75, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
25989
26411
|
var FIELD_LIST_LABELS = {
|
|
25990
26412
|
remove: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C: {row}",
|
|
25991
26413
|
reorder: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C: {row}",
|
|
@@ -26038,7 +26460,7 @@ var flipRows2 = (list) => list.querySelectorAll(":scope > li[data-fl-row]:not([d
|
|
|
26038
26460
|
var flipRowKey2 = (row) => row.dataset.flRow;
|
|
26039
26461
|
var GRIP_TIER = "xs";
|
|
26040
26462
|
function GripBox({ children }) {
|
|
26041
|
-
return /* @__PURE__ */
|
|
26463
|
+
return /* @__PURE__ */ jsx75("span", { className: cx(fieldTierClass, FieldList_default.grip), "data-size": GRIP_TIER, children });
|
|
26042
26464
|
}
|
|
26043
26465
|
function placesOf(columns) {
|
|
26044
26466
|
const main = columns.findIndex((column) => column.width !== "compact");
|
|
@@ -26280,8 +26702,8 @@ function FieldList({
|
|
|
26280
26702
|
if (menu) {
|
|
26281
26703
|
const canUp = canMove(index, -1);
|
|
26282
26704
|
const canDown = canMove(index, 1);
|
|
26283
|
-
action = /* @__PURE__ */
|
|
26284
|
-
/* @__PURE__ */
|
|
26705
|
+
action = /* @__PURE__ */ jsxs58(Dropdown.Root, { children: [
|
|
26706
|
+
/* @__PURE__ */ jsx75(Dropdown.Trigger, { children: /* @__PURE__ */ jsx75(
|
|
26285
26707
|
Button.Root,
|
|
26286
26708
|
{
|
|
26287
26709
|
variant: "ghost",
|
|
@@ -26296,32 +26718,32 @@ function FieldList({
|
|
|
26296
26718
|
event.preventDefault();
|
|
26297
26719
|
move(id, event.key === "ArrowUp" ? -1 : 1);
|
|
26298
26720
|
},
|
|
26299
|
-
children: /* @__PURE__ */
|
|
26721
|
+
children: /* @__PURE__ */ jsx75(Button.Icon, { children: /* @__PURE__ */ jsx75(Icon, { name: "action.more" }) })
|
|
26300
26722
|
}
|
|
26301
26723
|
) }),
|
|
26302
|
-
/* @__PURE__ */
|
|
26303
|
-
reorderable ? /* @__PURE__ */
|
|
26304
|
-
/* @__PURE__ */
|
|
26305
|
-
/* @__PURE__ */
|
|
26724
|
+
/* @__PURE__ */ jsxs58(Dropdown.Content, { align: "end", children: [
|
|
26725
|
+
reorderable ? /* @__PURE__ */ jsxs58(Fragment39, { children: [
|
|
26726
|
+
/* @__PURE__ */ jsxs58(Dropdown.Item, { disabled: !canUp, onSelect: () => move(id, -1), children: [
|
|
26727
|
+
/* @__PURE__ */ jsx75(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx75(Icon, { name: "nav.chevronUp" }) }),
|
|
26306
26728
|
labels.moveUp,
|
|
26307
|
-
/* @__PURE__ */
|
|
26729
|
+
/* @__PURE__ */ jsx75(Dropdown.ItemShortcut, { children: "Alt \u2191" })
|
|
26308
26730
|
] }),
|
|
26309
|
-
/* @__PURE__ */
|
|
26310
|
-
/* @__PURE__ */
|
|
26731
|
+
/* @__PURE__ */ jsxs58(Dropdown.Item, { disabled: !canDown, onSelect: () => move(id, 1), children: [
|
|
26732
|
+
/* @__PURE__ */ jsx75(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx75(Icon, { name: "nav.chevronDown" }) }),
|
|
26311
26733
|
labels.moveDown,
|
|
26312
|
-
/* @__PURE__ */
|
|
26734
|
+
/* @__PURE__ */ jsx75(Dropdown.ItemShortcut, { children: "Alt \u2193" })
|
|
26313
26735
|
] }),
|
|
26314
|
-
/* @__PURE__ */
|
|
26736
|
+
/* @__PURE__ */ jsx75(Dropdown.Separator, {})
|
|
26315
26737
|
] }) : null,
|
|
26316
|
-
/* @__PURE__ */
|
|
26317
|
-
/* @__PURE__ */
|
|
26738
|
+
/* @__PURE__ */ jsxs58(Dropdown.Item, { tone: "danger", disabled: removeOff, onSelect: () => remove(id), children: [
|
|
26739
|
+
/* @__PURE__ */ jsx75(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx75(Icon, { name: "action.delete" }) }),
|
|
26318
26740
|
labels.removeItem,
|
|
26319
|
-
reason ? /* @__PURE__ */
|
|
26741
|
+
reason ? /* @__PURE__ */ jsx75(Dropdown.ItemDescription, { children: reason }) : null
|
|
26320
26742
|
] })
|
|
26321
26743
|
] })
|
|
26322
26744
|
] });
|
|
26323
26745
|
} else {
|
|
26324
|
-
const removeButton = /* @__PURE__ */
|
|
26746
|
+
const removeButton = /* @__PURE__ */ jsx75(
|
|
26325
26747
|
Button.Root,
|
|
26326
26748
|
{
|
|
26327
26749
|
variant: "ghost",
|
|
@@ -26330,22 +26752,22 @@ function FieldList({
|
|
|
26330
26752
|
disabled: removeOff,
|
|
26331
26753
|
onClick: () => remove(id),
|
|
26332
26754
|
"data-fl-action": "",
|
|
26333
|
-
children: /* @__PURE__ */
|
|
26755
|
+
children: /* @__PURE__ */ jsx75(Button.Icon, { children: /* @__PURE__ */ jsx75(Icon, { name: "action.close" }) })
|
|
26334
26756
|
}
|
|
26335
26757
|
);
|
|
26336
|
-
action = reason ? /* @__PURE__ */
|
|
26337
|
-
/* @__PURE__ */
|
|
26338
|
-
/* @__PURE__ */
|
|
26758
|
+
action = reason ? /* @__PURE__ */ jsxs58(Tooltip.Root, { children: [
|
|
26759
|
+
/* @__PURE__ */ jsx75(Tooltip.Trigger, { children: removeButton }),
|
|
26760
|
+
/* @__PURE__ */ jsx75(Tooltip.Content, { children: reason })
|
|
26339
26761
|
] }) : removeButton;
|
|
26340
26762
|
}
|
|
26341
|
-
const content = /* @__PURE__ */
|
|
26342
|
-
/* @__PURE__ */
|
|
26763
|
+
const content = /* @__PURE__ */ jsxs58(Fragment39, { children: [
|
|
26764
|
+
/* @__PURE__ */ jsx75("div", { className: FieldList_default.cells, "data-fl-cells": "", children: cells.map((cell, column) => {
|
|
26343
26765
|
const heading = columns[column];
|
|
26344
|
-
return /* @__PURE__ */
|
|
26766
|
+
return /* @__PURE__ */ jsx75(
|
|
26345
26767
|
FieldCellContext,
|
|
26346
26768
|
{
|
|
26347
26769
|
value: cellValue(heading?.label ?? "", single, Boolean(heading?.required)),
|
|
26348
|
-
children: /* @__PURE__ */
|
|
26770
|
+
children: /* @__PURE__ */ jsx75(
|
|
26349
26771
|
"div",
|
|
26350
26772
|
{
|
|
26351
26773
|
className: FieldList_default.cell,
|
|
@@ -26358,8 +26780,8 @@ function FieldList({
|
|
|
26358
26780
|
column
|
|
26359
26781
|
);
|
|
26360
26782
|
}) }),
|
|
26361
|
-
/* @__PURE__ */
|
|
26362
|
-
grip ? /* @__PURE__ */
|
|
26783
|
+
/* @__PURE__ */ jsx75("span", { className: FieldList_default.end, children: action }),
|
|
26784
|
+
grip ? /* @__PURE__ */ jsx75(GripBox, { children: /* @__PURE__ */ jsx75(
|
|
26363
26785
|
Dnd.Handle,
|
|
26364
26786
|
{
|
|
26365
26787
|
"aria-label": formatLabel(labels.reorder, { row: name }),
|
|
@@ -26383,6 +26805,8 @@ function FieldList({
|
|
|
26383
26805
|
fieldTierClass,
|
|
26384
26806
|
FieldList_default.row,
|
|
26385
26807
|
FieldList_default.record,
|
|
26808
|
+
// A list on its own fill draws lines between its rows; a plain one only once they stack
|
|
26809
|
+
// (its one-line rows are parted by air: FieldList.module.css).
|
|
26386
26810
|
hairline_default.between,
|
|
26387
26811
|
presence.entering.has(id) && enterMotion_default.enter
|
|
26388
26812
|
),
|
|
@@ -26392,9 +26816,9 @@ function FieldList({
|
|
|
26392
26816
|
"data-locked": locked || void 0,
|
|
26393
26817
|
"data-single": single || void 0
|
|
26394
26818
|
};
|
|
26395
|
-
return grip ? /* @__PURE__ */
|
|
26819
|
+
return grip ? /* @__PURE__ */ jsx75(Dnd.SortableItem, { id, locked, ...rowProps, children: content }, id) : /* @__PURE__ */ jsx75("li", { ...rowProps, children: content }, id);
|
|
26396
26820
|
};
|
|
26397
|
-
const sheet = /* @__PURE__ */
|
|
26821
|
+
const sheet = /* @__PURE__ */ jsxs58(
|
|
26398
26822
|
"div",
|
|
26399
26823
|
{
|
|
26400
26824
|
className: FieldList_default.sheet,
|
|
@@ -26402,7 +26826,7 @@ function FieldList({
|
|
|
26402
26826
|
"data-depth": surface ? depth : void 0,
|
|
26403
26827
|
"data-empty": items.length === 0 || void 0,
|
|
26404
26828
|
children: [
|
|
26405
|
-
hasHead ? /* @__PURE__ */
|
|
26829
|
+
hasHead ? /* @__PURE__ */ jsxs58(
|
|
26406
26830
|
"div",
|
|
26407
26831
|
{
|
|
26408
26832
|
ref: head.ref,
|
|
@@ -26411,7 +26835,7 @@ function FieldList({
|
|
|
26411
26835
|
"data-size": size,
|
|
26412
26836
|
"aria-hidden": "true",
|
|
26413
26837
|
children: [
|
|
26414
|
-
/* @__PURE__ */
|
|
26838
|
+
/* @__PURE__ */ jsx75("div", { className: FieldList_default.cells, children: columns.map((column, index) => /* @__PURE__ */ jsx75(
|
|
26415
26839
|
Label.Root,
|
|
26416
26840
|
{
|
|
26417
26841
|
size,
|
|
@@ -26424,12 +26848,12 @@ function FieldList({
|
|
|
26424
26848
|
},
|
|
26425
26849
|
index
|
|
26426
26850
|
)) }),
|
|
26427
|
-
/* @__PURE__ */
|
|
26428
|
-
grip ? /* @__PURE__ */
|
|
26851
|
+
/* @__PURE__ */ jsx75("span", {}),
|
|
26852
|
+
grip ? /* @__PURE__ */ jsx75(GripBox, {}) : null
|
|
26429
26853
|
]
|
|
26430
26854
|
}
|
|
26431
26855
|
) : null,
|
|
26432
|
-
grip ? /* @__PURE__ */
|
|
26856
|
+
grip ? /* @__PURE__ */ jsx75(Dnd.Root, { children: /* @__PURE__ */ jsx75(
|
|
26433
26857
|
Dnd.Sortable,
|
|
26434
26858
|
{
|
|
26435
26859
|
role: "list",
|
|
@@ -26444,7 +26868,7 @@ function FieldList({
|
|
|
26444
26868
|
onReorder: (id, beforeId) => setItems((current) => moveBefore(current, id, beforeId, getId)),
|
|
26445
26869
|
renderItem: renderRow
|
|
26446
26870
|
}
|
|
26447
|
-
) }) : /* @__PURE__ */
|
|
26871
|
+
) }) : /* @__PURE__ */ jsx75(
|
|
26448
26872
|
"ol",
|
|
26449
26873
|
{
|
|
26450
26874
|
ref: setListElement,
|
|
@@ -26456,7 +26880,7 @@ function FieldList({
|
|
|
26456
26880
|
),
|
|
26457
26881
|
totalCells ? (
|
|
26458
26882
|
// biome-ignore lint/a11y/useSemanticElements: a row of figures, not a form fieldset
|
|
26459
|
-
/* @__PURE__ */
|
|
26883
|
+
/* @__PURE__ */ jsxs58(
|
|
26460
26884
|
"div",
|
|
26461
26885
|
{
|
|
26462
26886
|
ref: totals.ref,
|
|
@@ -26466,29 +26890,29 @@ function FieldList({
|
|
|
26466
26890
|
style: trackStyle,
|
|
26467
26891
|
"data-size": size,
|
|
26468
26892
|
children: [
|
|
26469
|
-
/* @__PURE__ */
|
|
26893
|
+
/* @__PURE__ */ jsx75("div", { className: FieldList_default.cells, children: totalCells.map((total, column) => {
|
|
26470
26894
|
const heading = columns[column];
|
|
26471
26895
|
const shown = hasContent(total);
|
|
26472
|
-
return /* @__PURE__ */
|
|
26896
|
+
return /* @__PURE__ */ jsx75(
|
|
26473
26897
|
"div",
|
|
26474
26898
|
{
|
|
26475
26899
|
className: cx(FieldList_default.cell, FieldList_default.total),
|
|
26476
26900
|
"data-width": heading?.width ?? "fill",
|
|
26477
26901
|
"data-empty": !shown && column > 0 || void 0,
|
|
26478
26902
|
"data-align": endColumns[column] === "1" ? "end" : void 0,
|
|
26479
|
-
children: shown ? /* @__PURE__ */
|
|
26480
|
-
/* @__PURE__ */
|
|
26481
|
-
/* @__PURE__ */
|
|
26903
|
+
children: shown ? /* @__PURE__ */ jsxs58(Fragment39, { children: [
|
|
26904
|
+
/* @__PURE__ */ jsx75("span", { className: cx(visuallyHiddenClass, FieldList_default.totalName), children: heading?.label }),
|
|
26905
|
+
/* @__PURE__ */ jsx75("span", { className: FieldList_default.totalValue, children: total })
|
|
26482
26906
|
] }) : column === 0 ? (
|
|
26483
26907
|
// The group's name says it to screen readers.
|
|
26484
|
-
/* @__PURE__ */
|
|
26908
|
+
/* @__PURE__ */ jsx75("span", { className: FieldList_default.totalsLabel, "aria-hidden": "true", children: labels.totals })
|
|
26485
26909
|
) : null
|
|
26486
26910
|
},
|
|
26487
26911
|
column
|
|
26488
26912
|
);
|
|
26489
26913
|
}) }),
|
|
26490
|
-
/* @__PURE__ */
|
|
26491
|
-
grip ? /* @__PURE__ */
|
|
26914
|
+
/* @__PURE__ */ jsx75("span", { className: cx(FieldList_default.end, FieldList_default.totalsEnd) }),
|
|
26915
|
+
grip ? /* @__PURE__ */ jsx75(GripBox, {}) : null
|
|
26492
26916
|
]
|
|
26493
26917
|
}
|
|
26494
26918
|
)
|
|
@@ -26497,7 +26921,7 @@ function FieldList({
|
|
|
26497
26921
|
}
|
|
26498
26922
|
);
|
|
26499
26923
|
return tier.provide(
|
|
26500
|
-
/* @__PURE__ */
|
|
26924
|
+
/* @__PURE__ */ jsx75(DisabledProvider, { disabled, children: /* @__PURE__ */ jsx75(
|
|
26501
26925
|
FieldFrame,
|
|
26502
26926
|
{
|
|
26503
26927
|
...rest,
|
|
@@ -26513,10 +26937,10 @@ function FieldList({
|
|
|
26513
26937
|
group: true,
|
|
26514
26938
|
className: cx(FieldList_default.root, className),
|
|
26515
26939
|
...toDataAttributes({ disabled: disabled || void 0 }),
|
|
26516
|
-
children: /* @__PURE__ */
|
|
26517
|
-
surface ? /* @__PURE__ */
|
|
26518
|
-
createItem ? /* @__PURE__ */
|
|
26519
|
-
/* @__PURE__ */
|
|
26940
|
+
children: /* @__PURE__ */ jsxs58("div", { ref: bodyRef, className: FieldList_default.body, children: [
|
|
26941
|
+
surface ? /* @__PURE__ */ jsx75(SurfaceDepthProvider, { value: depth, children: sheet }) : sheet,
|
|
26942
|
+
createItem ? /* @__PURE__ */ jsxs58("div", { className: FieldList_default.add, children: [
|
|
26943
|
+
/* @__PURE__ */ jsxs58(
|
|
26520
26944
|
Button.Root,
|
|
26521
26945
|
{
|
|
26522
26946
|
ref: addRef,
|
|
@@ -26525,14 +26949,14 @@ function FieldList({
|
|
|
26525
26949
|
disabled: disabled || atMax,
|
|
26526
26950
|
onClick: add,
|
|
26527
26951
|
children: [
|
|
26528
|
-
/* @__PURE__ */
|
|
26952
|
+
/* @__PURE__ */ jsx75(Button.Icon, { children: /* @__PURE__ */ jsx75(Icon, { name: "action.add" }) }),
|
|
26529
26953
|
addLabel
|
|
26530
26954
|
]
|
|
26531
26955
|
}
|
|
26532
26956
|
),
|
|
26533
|
-
atMax && max !== void 0 ? /* @__PURE__ */
|
|
26957
|
+
atMax && max !== void 0 ? /* @__PURE__ */ jsx75("span", { className: cx(textRole_default.caption, FieldList_default.limit), children: formatLabel(labels.maxReached, { max }) }) : null
|
|
26534
26958
|
] }) : null,
|
|
26535
|
-
menu && reorderable ? /* @__PURE__ */
|
|
26959
|
+
menu && reorderable ? /* @__PURE__ */ jsx75(VisuallyHidden, { live: "polite", children: announcement }) : null
|
|
26536
26960
|
] })
|
|
26537
26961
|
}
|
|
26538
26962
|
) })
|
|
@@ -26563,7 +26987,7 @@ var Fieldset_default = {
|
|
|
26563
26987
|
};
|
|
26564
26988
|
|
|
26565
26989
|
// src/components/fieldset/Fieldset.tsx
|
|
26566
|
-
import { jsx as
|
|
26990
|
+
import { jsx as jsx76, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
26567
26991
|
function Fieldset({
|
|
26568
26992
|
label,
|
|
26569
26993
|
description,
|
|
@@ -26577,7 +27001,7 @@ function Fieldset({
|
|
|
26577
27001
|
const descriptionId = React83.useId();
|
|
26578
27002
|
const hasDescription = hasContent(description);
|
|
26579
27003
|
const describedBy = [ariaDescribedBy, hasDescription ? descriptionId : void 0].filter(Boolean).join(" ") || void 0;
|
|
26580
|
-
return /* @__PURE__ */
|
|
27004
|
+
return /* @__PURE__ */ jsxs59(
|
|
26581
27005
|
"fieldset",
|
|
26582
27006
|
{
|
|
26583
27007
|
...rest,
|
|
@@ -26586,10 +27010,10 @@ function Fieldset({
|
|
|
26586
27010
|
"aria-describedby": describedBy,
|
|
26587
27011
|
...toDataAttributes({ disabled: disabled || void 0 }),
|
|
26588
27012
|
children: [
|
|
26589
|
-
hasContent(label) ? /* @__PURE__ */
|
|
26590
|
-
/* @__PURE__ */
|
|
26591
|
-
hasDescription ? /* @__PURE__ */
|
|
26592
|
-
/* @__PURE__ */
|
|
27013
|
+
hasContent(label) ? /* @__PURE__ */ jsx76("legend", { className: cx(textRole_default.titleS, Fieldset_default.legend), children: label }) : null,
|
|
27014
|
+
/* @__PURE__ */ jsxs59("div", { className: Fieldset_default.body, children: [
|
|
27015
|
+
hasDescription ? /* @__PURE__ */ jsx76("p", { id: descriptionId, className: cx(textRole_default.bodyS, Fieldset_default.description), children: description }) : null,
|
|
27016
|
+
/* @__PURE__ */ jsx76("div", { className: Fieldset_default.fields, children: /* @__PURE__ */ jsx76(DisabledProvider, { disabled, children }) })
|
|
26593
27017
|
] })
|
|
26594
27018
|
]
|
|
26595
27019
|
}
|
|
@@ -26882,7 +27306,7 @@ function visibleSegment(rect, viewport2) {
|
|
|
26882
27306
|
}
|
|
26883
27307
|
|
|
26884
27308
|
// src/components/gantt/GanttBar.tsx
|
|
26885
|
-
import { Fragment as
|
|
27309
|
+
import { Fragment as Fragment40, jsx as jsx77, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
26886
27310
|
var EDIT_SHORTCUTS = [
|
|
26887
27311
|
"Shift+ArrowLeft",
|
|
26888
27312
|
"Shift+ArrowRight",
|
|
@@ -27048,8 +27472,8 @@ function GanttBarView({
|
|
|
27048
27472
|
},
|
|
27049
27473
|
[barRef]
|
|
27050
27474
|
);
|
|
27051
|
-
return /* @__PURE__ */
|
|
27052
|
-
guide !== null ? /* @__PURE__ */
|
|
27475
|
+
return /* @__PURE__ */ jsxs60(Fragment40, { children: [
|
|
27476
|
+
guide !== null ? /* @__PURE__ */ jsx77(
|
|
27053
27477
|
"span",
|
|
27054
27478
|
{
|
|
27055
27479
|
className: Gantt_default.dayGuide,
|
|
@@ -27057,13 +27481,13 @@ function GanttBarView({
|
|
|
27057
27481
|
"aria-hidden": "true"
|
|
27058
27482
|
}
|
|
27059
27483
|
) : null,
|
|
27060
|
-
/* @__PURE__ */
|
|
27484
|
+
/* @__PURE__ */ jsxs60(
|
|
27061
27485
|
Tooltip.Root,
|
|
27062
27486
|
{
|
|
27063
27487
|
open: tipOpen || drag !== null,
|
|
27064
27488
|
onOpenChange: (open) => setTipOpen(open && canShowTip(bar.id)),
|
|
27065
27489
|
children: [
|
|
27066
|
-
/* @__PURE__ */
|
|
27490
|
+
/* @__PURE__ */ jsx77(Tooltip.Trigger, { children: /* @__PURE__ */ jsxs60(
|
|
27067
27491
|
"button",
|
|
27068
27492
|
{
|
|
27069
27493
|
ref: setNode,
|
|
@@ -27120,24 +27544,24 @@ function GanttBarView({
|
|
|
27120
27544
|
onActivate();
|
|
27121
27545
|
},
|
|
27122
27546
|
children: [
|
|
27123
|
-
milestone ? /* @__PURE__ */
|
|
27124
|
-
pending ? /* @__PURE__ */
|
|
27125
|
-
/* @__PURE__ */
|
|
27126
|
-
editable && !milestone ? /* @__PURE__ */
|
|
27127
|
-
/* @__PURE__ */
|
|
27128
|
-
/* @__PURE__ */
|
|
27547
|
+
milestone ? /* @__PURE__ */ jsx77("span", { className: Gantt_default.diamond, "aria-hidden": "true" }) : null,
|
|
27548
|
+
pending ? /* @__PURE__ */ jsx77(Spinner, { size: "xs", className: Gantt_default.spinner, "aria-hidden": "true" }) : null,
|
|
27549
|
+
/* @__PURE__ */ jsx77("span", { className: Gantt_default.label, "data-gantt-label": "", "aria-hidden": "true", children: bar.label }),
|
|
27550
|
+
editable && !milestone ? /* @__PURE__ */ jsxs60(Fragment40, { children: [
|
|
27551
|
+
/* @__PURE__ */ jsx77("span", { className: Gantt_default.handle, "data-handle": "start", "aria-hidden": "true" }),
|
|
27552
|
+
/* @__PURE__ */ jsx77("span", { className: Gantt_default.handle, "data-handle": "end", "aria-hidden": "true" })
|
|
27129
27553
|
] }) : null
|
|
27130
27554
|
]
|
|
27131
27555
|
}
|
|
27132
27556
|
) }),
|
|
27133
|
-
tipMounted ? /* @__PURE__ */
|
|
27134
|
-
/* @__PURE__ */
|
|
27135
|
-
/* @__PURE__ */
|
|
27557
|
+
tipMounted ? /* @__PURE__ */ jsxs60(Tooltip.Content, { children: [
|
|
27558
|
+
/* @__PURE__ */ jsx77("span", { className: Gantt_default.tipTitle, children: bar.label }),
|
|
27559
|
+
/* @__PURE__ */ jsxs60("span", { className: Gantt_default.tipMeta, children: [
|
|
27136
27560
|
formatSpan(shown, locale),
|
|
27137
27561
|
milestone ? null : ` \xB7 ${formatDuration(daysBetween2(shown.start, shown.end))}`,
|
|
27138
27562
|
progress === void 0 ? null : ` \xB7 ${progress}%`
|
|
27139
27563
|
] }),
|
|
27140
|
-
renderTip ? /* @__PURE__ */
|
|
27564
|
+
renderTip ? /* @__PURE__ */ jsx77("div", { className: Gantt_default.tipExtra, children: renderTip() }) : null
|
|
27141
27565
|
] }) : null
|
|
27142
27566
|
]
|
|
27143
27567
|
}
|
|
@@ -27146,7 +27570,7 @@ function GanttBarView({
|
|
|
27146
27570
|
}
|
|
27147
27571
|
|
|
27148
27572
|
// src/components/gantt/GanttRow.tsx
|
|
27149
|
-
import { Fragment as
|
|
27573
|
+
import { Fragment as Fragment41, jsx as jsx78, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
27150
27574
|
function GanttRowView({
|
|
27151
27575
|
ctx,
|
|
27152
27576
|
index,
|
|
@@ -27184,9 +27608,9 @@ function GanttRowView({
|
|
|
27184
27608
|
const start = new Date(rangeStart);
|
|
27185
27609
|
const windowed = windowFrom <= windowTo;
|
|
27186
27610
|
const on = (event) => (native) => ctx.track(event, index, native);
|
|
27187
|
-
const content = /* @__PURE__ */
|
|
27188
|
-
renderRowAvatar ? /* @__PURE__ */
|
|
27189
|
-
/* @__PURE__ */
|
|
27611
|
+
const content = /* @__PURE__ */ jsxs61(Fragment41, { children: [
|
|
27612
|
+
renderRowAvatar ? /* @__PURE__ */ jsx78("span", { className: Gantt_default.rowAvatar, children: renderRowAvatar(row) }) : null,
|
|
27613
|
+
/* @__PURE__ */ jsx78("span", { className: Gantt_default.rowLabel, children: renderRow ? renderRow(row) : label })
|
|
27190
27614
|
] });
|
|
27191
27615
|
const stopProps = {
|
|
27192
27616
|
// With an avatar a narrow chart shows only the picture: the row label names the stop.
|
|
@@ -27195,7 +27619,7 @@ function GanttRowView({
|
|
|
27195
27619
|
"aria-keyshortcuts": creatable ? "N" : void 0,
|
|
27196
27620
|
onFocus: () => ctx.focus(navId)
|
|
27197
27621
|
};
|
|
27198
|
-
return /* @__PURE__ */
|
|
27622
|
+
return /* @__PURE__ */ jsxs61(
|
|
27199
27623
|
"div",
|
|
27200
27624
|
{
|
|
27201
27625
|
ref: measureRef,
|
|
@@ -27204,7 +27628,7 @@ function GanttRowView({
|
|
|
27204
27628
|
className: Gantt_default.row,
|
|
27205
27629
|
style: { "--lanes": laneCount, "--row-top": `${top}px` },
|
|
27206
27630
|
children: [
|
|
27207
|
-
href === void 0 ? /* @__PURE__ */
|
|
27631
|
+
href === void 0 ? /* @__PURE__ */ jsx78(
|
|
27208
27632
|
"div",
|
|
27209
27633
|
{
|
|
27210
27634
|
ref: ctx.register(navId),
|
|
@@ -27225,7 +27649,7 @@ function GanttRowView({
|
|
|
27225
27649
|
} : void 0,
|
|
27226
27650
|
children: content
|
|
27227
27651
|
}
|
|
27228
|
-
) : /* @__PURE__ */
|
|
27652
|
+
) : /* @__PURE__ */ jsx78("div", { role: "rowheader", className: Gantt_default.rowHeader, "data-clickable": "", children: /* @__PURE__ */ jsx78(
|
|
27229
27653
|
"a",
|
|
27230
27654
|
{
|
|
27231
27655
|
ref: ctx.register(navId),
|
|
@@ -27245,7 +27669,7 @@ function GanttRowView({
|
|
|
27245
27669
|
children: content
|
|
27246
27670
|
}
|
|
27247
27671
|
) }),
|
|
27248
|
-
/* @__PURE__ */
|
|
27672
|
+
/* @__PURE__ */ jsxs61(
|
|
27249
27673
|
"div",
|
|
27250
27674
|
{
|
|
27251
27675
|
role: "gridcell",
|
|
@@ -27261,13 +27685,13 @@ function GanttRowView({
|
|
|
27261
27685
|
onContextMenu: creatable ? on("contextMenu") : void 0,
|
|
27262
27686
|
onDoubleClick: creatable ? on("doubleClick") : void 0,
|
|
27263
27687
|
children: [
|
|
27264
|
-
hover && !ghost ? /* @__PURE__ */
|
|
27688
|
+
hover && !ghost ? /* @__PURE__ */ jsx78(
|
|
27265
27689
|
"span",
|
|
27266
27690
|
{
|
|
27267
27691
|
className: cx(Gantt_default.createCell, enterMotion_default.enterFade),
|
|
27268
27692
|
style: { "--x": hover.x, "--span": hover.span },
|
|
27269
27693
|
"aria-hidden": "true",
|
|
27270
|
-
children: /* @__PURE__ */
|
|
27694
|
+
children: /* @__PURE__ */ jsx78(Icon, { name: "action.add", animated: false })
|
|
27271
27695
|
}
|
|
27272
27696
|
) : null,
|
|
27273
27697
|
bars.map((bar) => {
|
|
@@ -27276,7 +27700,7 @@ function GanttRowView({
|
|
|
27276
27700
|
const span = Math.max(daysBetween2(dates.start, dates.end), 1);
|
|
27277
27701
|
const pinned = pending.has(bar.id) || dragging.has(bar.id) || tabStop === bar.id;
|
|
27278
27702
|
if (windowed && !pinned && (x + span < windowFrom || x > windowTo)) return null;
|
|
27279
|
-
return /* @__PURE__ */
|
|
27703
|
+
return /* @__PURE__ */ jsx78(
|
|
27280
27704
|
GanttBarView,
|
|
27281
27705
|
{
|
|
27282
27706
|
bar,
|
|
@@ -27307,8 +27731,8 @@ function GanttRowView({
|
|
|
27307
27731
|
bar.id
|
|
27308
27732
|
);
|
|
27309
27733
|
}),
|
|
27310
|
-
ghost ? /* @__PURE__ */
|
|
27311
|
-
/* @__PURE__ */
|
|
27734
|
+
ghost ? /* @__PURE__ */ jsxs61(Tooltip.Root, { open: ghost.status === "drawing", children: [
|
|
27735
|
+
/* @__PURE__ */ jsx78(Tooltip.Trigger, { children: /* @__PURE__ */ jsxs61(
|
|
27312
27736
|
"span",
|
|
27313
27737
|
{
|
|
27314
27738
|
tabIndex: -1,
|
|
@@ -27321,14 +27745,14 @@ function GanttRowView({
|
|
|
27321
27745
|
"--lane": ghostLane
|
|
27322
27746
|
},
|
|
27323
27747
|
children: [
|
|
27324
|
-
ghost.status === "pending" ? /* @__PURE__ */
|
|
27325
|
-
/* @__PURE__ */
|
|
27748
|
+
ghost.status === "pending" ? /* @__PURE__ */ jsx78(Skeleton, { shape: "block", className: Gantt_default.ghostBusy }) : null,
|
|
27749
|
+
/* @__PURE__ */ jsx78("span", { className: Gantt_default.ghostLabel, children: newBarLabel })
|
|
27326
27750
|
]
|
|
27327
27751
|
}
|
|
27328
27752
|
) }),
|
|
27329
|
-
/* @__PURE__ */
|
|
27330
|
-
/* @__PURE__ */
|
|
27331
|
-
/* @__PURE__ */
|
|
27753
|
+
/* @__PURE__ */ jsxs61(Tooltip.Content, { children: [
|
|
27754
|
+
/* @__PURE__ */ jsx78("span", { className: Gantt_default.tipTitle, children: newBarLabel }),
|
|
27755
|
+
/* @__PURE__ */ jsxs61("span", { className: Gantt_default.tipMeta, children: [
|
|
27332
27756
|
formatSpan(ghost.dates, locale),
|
|
27333
27757
|
" \xB7",
|
|
27334
27758
|
" ",
|
|
@@ -27346,7 +27770,7 @@ function GanttRowView({
|
|
|
27346
27770
|
var GanttRow = React85.memo(GanttRowView);
|
|
27347
27771
|
|
|
27348
27772
|
// src/components/gantt/Gantt.tsx
|
|
27349
|
-
import { Fragment as
|
|
27773
|
+
import { Fragment as Fragment42, jsx as jsx79, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
27350
27774
|
var GANTT_LABELS = {
|
|
27351
27775
|
rowsHeader: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",
|
|
27352
27776
|
timeline: "\u0428\u043A\u0430\u043B\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",
|
|
@@ -28194,10 +28618,10 @@ function Gantt({
|
|
|
28194
28618
|
const lineCells = tiers.bottom.filter(
|
|
28195
28619
|
(cell) => (scale === "month" || cell.boundary) && inWindow(cell.x, 0)
|
|
28196
28620
|
);
|
|
28197
|
-
const backdrop = /* @__PURE__ */
|
|
28198
|
-
/* @__PURE__ */
|
|
28199
|
-
/* @__PURE__ */
|
|
28200
|
-
lineCells.map((cell) => /* @__PURE__ */
|
|
28621
|
+
const backdrop = /* @__PURE__ */ jsxs62(Fragment42, { children: [
|
|
28622
|
+
/* @__PURE__ */ jsx79("div", { className: Gantt_default.backdropWash, "aria-hidden": "true" }),
|
|
28623
|
+
/* @__PURE__ */ jsxs62("div", { className: Gantt_default.backdropLines, "aria-hidden": "true", children: [
|
|
28624
|
+
lineCells.map((cell) => /* @__PURE__ */ jsx79(
|
|
28201
28625
|
"span",
|
|
28202
28626
|
{
|
|
28203
28627
|
className: Gantt_default.gridLine,
|
|
@@ -28206,7 +28630,7 @@ function Gantt({
|
|
|
28206
28630
|
},
|
|
28207
28631
|
`line-${cell.key}`
|
|
28208
28632
|
)),
|
|
28209
|
-
todayInRange ? /* @__PURE__ */
|
|
28633
|
+
todayInRange ? /* @__PURE__ */ jsx79(
|
|
28210
28634
|
"span",
|
|
28211
28635
|
{
|
|
28212
28636
|
className: Gantt_default.todayLine,
|
|
@@ -28318,12 +28742,12 @@ function Gantt({
|
|
|
28318
28742
|
const origin = todayInRange ? todayX : 0;
|
|
28319
28743
|
body = SKELETON_ROWS3.map((bars, index) => (
|
|
28320
28744
|
// biome-ignore lint/suspicious/noArrayIndexKey: static placeholder rows
|
|
28321
|
-
/* @__PURE__ */
|
|
28322
|
-
/* @__PURE__ */
|
|
28323
|
-
hasAvatar ? /* @__PURE__ */
|
|
28324
|
-
/* @__PURE__ */
|
|
28745
|
+
/* @__PURE__ */ jsxs62("div", { className: Gantt_default.row, style: { "--lanes": 1 }, children: [
|
|
28746
|
+
/* @__PURE__ */ jsxs62("div", { className: Gantt_default.rowHeader, children: [
|
|
28747
|
+
hasAvatar ? /* @__PURE__ */ jsx79("span", { className: Gantt_default.rowAvatar, children: /* @__PURE__ */ jsx79(Skeleton, { shape: "circle" }) }) : null,
|
|
28748
|
+
/* @__PURE__ */ jsx79("span", { className: Gantt_default.rowLabel, children: /* @__PURE__ */ jsx79(Skeleton, { className: Gantt_default.skeletonLabel }) })
|
|
28325
28749
|
] }),
|
|
28326
|
-
/* @__PURE__ */
|
|
28750
|
+
/* @__PURE__ */ jsx79("div", { className: Gantt_default.track, children: bars.map(([offset, length]) => /* @__PURE__ */ jsx79(
|
|
28327
28751
|
Skeleton,
|
|
28328
28752
|
{
|
|
28329
28753
|
shape: "block",
|
|
@@ -28338,13 +28762,13 @@ function Gantt({
|
|
|
28338
28762
|
] }, index)
|
|
28339
28763
|
));
|
|
28340
28764
|
} else if (bodyState === "empty") {
|
|
28341
|
-
body = /* @__PURE__ */
|
|
28765
|
+
body = /* @__PURE__ */ jsx79("div", { role: "row", className: Gantt_default.emptyRow, children: /* @__PURE__ */ jsx79("div", { role: "gridcell", "aria-colspan": 2, className: Gantt_default.emptyCell, children: empty == null || typeof empty === "string" ? /* @__PURE__ */ jsx79(EmptyPage.Root, { layout: "compact", size, role: "status", children: /* @__PURE__ */ jsx79(EmptyPage.Description, { children: empty ?? labels.empty }) }) : empty }) });
|
|
28342
28766
|
} else {
|
|
28343
28767
|
body = virtual.rows.map(({ index, start }) => {
|
|
28344
28768
|
const item = model[index];
|
|
28345
28769
|
const { lanes, count, ghostLane } = lanesOf(item);
|
|
28346
28770
|
const hover = hoverCell?.row === item.key ? hoverCell : null;
|
|
28347
|
-
return /* @__PURE__ */
|
|
28771
|
+
return /* @__PURE__ */ jsx79(
|
|
28348
28772
|
GanttRow,
|
|
28349
28773
|
{
|
|
28350
28774
|
ctx: rowContext,
|
|
@@ -28386,8 +28810,8 @@ function Gantt({
|
|
|
28386
28810
|
}
|
|
28387
28811
|
const topCells = tiers.top.filter((cell) => inWindow(cell.x, cell.span));
|
|
28388
28812
|
const bottomCells = tiers.bottom.filter((cell) => inWindow(cell.x, cell.span));
|
|
28389
|
-
return /* @__PURE__ */
|
|
28390
|
-
/* @__PURE__ */
|
|
28813
|
+
return /* @__PURE__ */ jsx79(SurfaceDepthProvider, { value: depth, children: tier.provide(
|
|
28814
|
+
/* @__PURE__ */ jsxs62(
|
|
28391
28815
|
"div",
|
|
28392
28816
|
{
|
|
28393
28817
|
...rest,
|
|
@@ -28406,7 +28830,7 @@ function Gantt({
|
|
|
28406
28830
|
"scroll-height": fillHeight ? "fill" : void 0
|
|
28407
28831
|
}),
|
|
28408
28832
|
children: [
|
|
28409
|
-
/* @__PURE__ */
|
|
28833
|
+
/* @__PURE__ */ jsx79(
|
|
28410
28834
|
GanttToolbar,
|
|
28411
28835
|
{
|
|
28412
28836
|
toolbar,
|
|
@@ -28417,7 +28841,7 @@ function Gantt({
|
|
|
28417
28841
|
onScale: toolbarActions.scale
|
|
28418
28842
|
}
|
|
28419
28843
|
),
|
|
28420
|
-
/* @__PURE__ */
|
|
28844
|
+
/* @__PURE__ */ jsx79("div", { className: Gantt_default.frame, children: /* @__PURE__ */ jsx79(
|
|
28421
28845
|
ScrollContainer,
|
|
28422
28846
|
{
|
|
28423
28847
|
ref: scrollRef,
|
|
@@ -28435,7 +28859,7 @@ function Gantt({
|
|
|
28435
28859
|
},
|
|
28436
28860
|
onWheel: () => closeTips(false),
|
|
28437
28861
|
onTouchMove: () => closeTips(false),
|
|
28438
|
-
children: /* @__PURE__ */
|
|
28862
|
+
children: /* @__PURE__ */ jsx79(AnchorRectProvider, { value: anchorToVisible, children: /* @__PURE__ */ jsx79(FloatingBoundaryProvider, { value: timelineBoundary, children: /* @__PURE__ */ jsx79(Tooltip.Provider, { children: /* @__PURE__ */ jsxs62(
|
|
28439
28863
|
"div",
|
|
28440
28864
|
{
|
|
28441
28865
|
role: "grid",
|
|
@@ -28447,7 +28871,7 @@ function Gantt({
|
|
|
28447
28871
|
style: gridStyle,
|
|
28448
28872
|
onKeyDown: onGridKeyDown,
|
|
28449
28873
|
children: [
|
|
28450
|
-
/* @__PURE__ */
|
|
28874
|
+
/* @__PURE__ */ jsxs62(
|
|
28451
28875
|
"div",
|
|
28452
28876
|
{
|
|
28453
28877
|
ref: headRef,
|
|
@@ -28455,17 +28879,17 @@ function Gantt({
|
|
|
28455
28879
|
"aria-rowindex": 1,
|
|
28456
28880
|
className: cx(Gantt_default.head, stickySurfaceClass),
|
|
28457
28881
|
children: [
|
|
28458
|
-
/* @__PURE__ */
|
|
28882
|
+
/* @__PURE__ */ jsx79(
|
|
28459
28883
|
"div",
|
|
28460
28884
|
{
|
|
28461
28885
|
ref: cornerRef,
|
|
28462
28886
|
role: "columnheader",
|
|
28463
28887
|
"aria-label": hasAvatar ? labels.rowsHeader : void 0,
|
|
28464
28888
|
className: Gantt_default.corner,
|
|
28465
|
-
children: /* @__PURE__ */
|
|
28889
|
+
children: /* @__PURE__ */ jsx79("span", { className: Gantt_default.cornerText, children: labels.rowsHeader })
|
|
28466
28890
|
}
|
|
28467
28891
|
),
|
|
28468
|
-
/* @__PURE__ */
|
|
28892
|
+
/* @__PURE__ */ jsxs62(
|
|
28469
28893
|
"div",
|
|
28470
28894
|
{
|
|
28471
28895
|
ref: axisRef,
|
|
@@ -28473,16 +28897,16 @@ function Gantt({
|
|
|
28473
28897
|
"aria-label": labels.timeline,
|
|
28474
28898
|
className: Gantt_default.axis,
|
|
28475
28899
|
children: [
|
|
28476
|
-
/* @__PURE__ */
|
|
28900
|
+
/* @__PURE__ */ jsx79("div", { className: Gantt_default.tier, "aria-hidden": "true", children: topCells.map((cell) => /* @__PURE__ */ jsx79(
|
|
28477
28901
|
"span",
|
|
28478
28902
|
{
|
|
28479
28903
|
className: Gantt_default.tierCell,
|
|
28480
28904
|
style: { "--x": cell.x, "--span": cell.span },
|
|
28481
|
-
children: /* @__PURE__ */
|
|
28905
|
+
children: /* @__PURE__ */ jsx79("span", { className: Gantt_default.tierText, children: cell.text })
|
|
28482
28906
|
},
|
|
28483
28907
|
cell.key
|
|
28484
28908
|
)) }),
|
|
28485
|
-
/* @__PURE__ */
|
|
28909
|
+
/* @__PURE__ */ jsx79("div", { className: Gantt_default.tier, "data-tier": "bottom", "aria-hidden": "true", children: bottomCells.map((cell) => /* @__PURE__ */ jsx79(
|
|
28486
28910
|
"span",
|
|
28487
28911
|
{
|
|
28488
28912
|
className: Gantt_default.tierCell,
|
|
@@ -28492,17 +28916,17 @@ function Gantt({
|
|
|
28492
28916
|
today: cell.today,
|
|
28493
28917
|
boundary: cell.boundary
|
|
28494
28918
|
}),
|
|
28495
|
-
children: /* @__PURE__ */
|
|
28919
|
+
children: /* @__PURE__ */ jsx79("span", { className: Gantt_default.tierText, children: cell.text })
|
|
28496
28920
|
},
|
|
28497
28921
|
cell.key
|
|
28498
28922
|
)) }),
|
|
28499
|
-
todayInRange ? /* @__PURE__ */
|
|
28923
|
+
todayInRange ? /* @__PURE__ */ jsx79(
|
|
28500
28924
|
"span",
|
|
28501
28925
|
{
|
|
28502
28926
|
className: Gantt_default.todayMark,
|
|
28503
28927
|
style: { "--x": todayX + 0.5 },
|
|
28504
28928
|
"aria-hidden": "true",
|
|
28505
|
-
children: /* @__PURE__ */
|
|
28929
|
+
children: /* @__PURE__ */ jsx79("span", { className: Gantt_default.todayChip, children: labels.today })
|
|
28506
28930
|
}
|
|
28507
28931
|
) : null
|
|
28508
28932
|
]
|
|
@@ -28511,7 +28935,7 @@ function Gantt({
|
|
|
28511
28935
|
]
|
|
28512
28936
|
}
|
|
28513
28937
|
),
|
|
28514
|
-
/* @__PURE__ */
|
|
28938
|
+
/* @__PURE__ */ jsx79(RegionSwap, { state: bodyState, children: /* @__PURE__ */ jsxs62(
|
|
28515
28939
|
"div",
|
|
28516
28940
|
{
|
|
28517
28941
|
role: "rowgroup",
|
|
@@ -28533,10 +28957,10 @@ function Gantt({
|
|
|
28533
28957
|
) }) }) })
|
|
28534
28958
|
}
|
|
28535
28959
|
) }),
|
|
28536
|
-
editableAtAll ? /* @__PURE__ */
|
|
28537
|
-
creatable ? /* @__PURE__ */
|
|
28538
|
-
bodyState === "loading" ? /* @__PURE__ */
|
|
28539
|
-
/* @__PURE__ */
|
|
28960
|
+
editableAtAll ? /* @__PURE__ */ jsx79(VisuallyHidden, { id: hintId, children: labels.editHint }) : null,
|
|
28961
|
+
creatable ? /* @__PURE__ */ jsx79(VisuallyHidden, { id: createHintId, children: labels.createHint }) : null,
|
|
28962
|
+
bodyState === "loading" ? /* @__PURE__ */ jsx79(VisuallyHidden, { live: "polite", children: labels.loading }) : null,
|
|
28963
|
+
/* @__PURE__ */ jsx79(VisuallyHidden, { live: "polite", children: announcement })
|
|
28540
28964
|
]
|
|
28541
28965
|
}
|
|
28542
28966
|
)
|
|
@@ -28550,10 +28974,10 @@ var GanttToolbar = React86.memo(function GanttToolbar2({
|
|
|
28550
28974
|
onToday,
|
|
28551
28975
|
onScale
|
|
28552
28976
|
}) {
|
|
28553
|
-
return /* @__PURE__ */
|
|
28554
|
-
toolbar != null && toolbar !== false ? /* @__PURE__ */
|
|
28555
|
-
/* @__PURE__ */
|
|
28556
|
-
/* @__PURE__ */
|
|
28977
|
+
return /* @__PURE__ */ jsxs62(ToolRow, { className: Gantt_default.toolbar, children: [
|
|
28978
|
+
toolbar != null && toolbar !== false ? /* @__PURE__ */ jsx79(ToolGroup, { children: toolbar }) : null,
|
|
28979
|
+
/* @__PURE__ */ jsx79(Button.Root, { variant: "ghost", tone: "neutral", disabled: !todayInRange, onClick: onToday, children: labels.today }),
|
|
28980
|
+
/* @__PURE__ */ jsx79(SegmentedControl.Root, { "aria-label": labels.scale, value: scale, onValueChange: onScale, children: SCALES.map((value) => /* @__PURE__ */ jsx79(SegmentedControl.Item, { value, children: labels[value] }, value)) })
|
|
28557
28981
|
] });
|
|
28558
28982
|
});
|
|
28559
28983
|
|
|
@@ -28592,7 +29016,7 @@ var Kanban_default = {
|
|
|
28592
29016
|
};
|
|
28593
29017
|
|
|
28594
29018
|
// src/components/kanban/Kanban.tsx
|
|
28595
|
-
import { Fragment as
|
|
29019
|
+
import { Fragment as Fragment43, jsx as jsx80, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
28596
29020
|
var KANBAN_LABELS = {
|
|
28597
29021
|
count: "\u041A\u0430\u0440\u0442\u043E\u0447\u0435\u043A: {count}",
|
|
28598
29022
|
countLimit: "\u041A\u0430\u0440\u0442\u043E\u0447\u0435\u043A: {count} \u0438\u0437 {limit}",
|
|
@@ -28610,7 +29034,7 @@ var ItemIdContext = React87.createContext(null);
|
|
|
28610
29034
|
var NARROW_REM = 40;
|
|
28611
29035
|
var rootFontSize = () => typeof document === "undefined" ? 16 : Number.parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;
|
|
28612
29036
|
function KanbanRoot(props) {
|
|
28613
|
-
return /* @__PURE__ */
|
|
29037
|
+
return /* @__PURE__ */ jsx80(Dnd.Root, { children: /* @__PURE__ */ jsx80(KanbanBoard, { ...props }) });
|
|
28614
29038
|
}
|
|
28615
29039
|
KanbanRoot.displayName = "Kanban.Root";
|
|
28616
29040
|
var EMPTY_VALUE2 = {};
|
|
@@ -28786,7 +29210,7 @@ function KanbanBoard({
|
|
|
28786
29210
|
}),
|
|
28787
29211
|
[locked, links, opens, cardDepth]
|
|
28788
29212
|
);
|
|
28789
|
-
return /* @__PURE__ */
|
|
29213
|
+
return /* @__PURE__ */ jsx80(BoardContext, { value: context, children: /* @__PURE__ */ jsx80(
|
|
28790
29214
|
"div",
|
|
28791
29215
|
{
|
|
28792
29216
|
ref: rootRef,
|
|
@@ -28797,7 +29221,7 @@ function KanbanBoard({
|
|
|
28797
29221
|
"data-variant": variant,
|
|
28798
29222
|
"data-loading": loading || void 0,
|
|
28799
29223
|
"data-disabled": disabled || void 0,
|
|
28800
|
-
children: /* @__PURE__ */
|
|
29224
|
+
children: /* @__PURE__ */ jsx80(
|
|
28801
29225
|
ScrollContainer,
|
|
28802
29226
|
{
|
|
28803
29227
|
axis: "horizontal",
|
|
@@ -28806,11 +29230,11 @@ function KanbanBoard({
|
|
|
28806
29230
|
"data-full-width": "true",
|
|
28807
29231
|
children: placeholders ? (
|
|
28808
29232
|
// Before the columns arrive: placeholder columns in the column geometry.
|
|
28809
|
-
/* @__PURE__ */
|
|
29233
|
+
/* @__PURE__ */ jsx80("div", { className: Kanban_default.placeholders, "aria-hidden": "true", children: Array.from({ length: loadingColumns }, (_, columnIndex) => (
|
|
28810
29234
|
// biome-ignore lint/suspicious/noArrayIndexKey: identical placeholder columns
|
|
28811
|
-
/* @__PURE__ */
|
|
28812
|
-
/* @__PURE__ */
|
|
28813
|
-
/* @__PURE__ */
|
|
29235
|
+
/* @__PURE__ */ jsxs63("div", { className: Kanban_default.column, children: [
|
|
29236
|
+
/* @__PURE__ */ jsx80("div", { className: cx(Kanban_default.header, hairline_default.bottom), children: /* @__PURE__ */ jsx80(Skeleton, { shape: "block", className: Kanban_default.skeletonTitle }) }),
|
|
29237
|
+
/* @__PURE__ */ jsx80("div", { className: Kanban_default.body, children: /* @__PURE__ */ jsx80(
|
|
28814
29238
|
SkeletonCards,
|
|
28815
29239
|
{
|
|
28816
29240
|
count: SKELETON_CARDS[columnIndex % SKELETON_CARDS.length] ?? 1,
|
|
@@ -28819,7 +29243,7 @@ function KanbanBoard({
|
|
|
28819
29243
|
) })
|
|
28820
29244
|
] }, columnIndex)
|
|
28821
29245
|
)) })
|
|
28822
|
-
) : /* @__PURE__ */
|
|
29246
|
+
) : /* @__PURE__ */ jsx80(
|
|
28823
29247
|
Dnd.Sortable,
|
|
28824
29248
|
{
|
|
28825
29249
|
as: "ul",
|
|
@@ -28831,7 +29255,7 @@ function KanbanBoard({
|
|
|
28831
29255
|
getLabel: (column) => formatLabel(labels.column, { column: column.title }),
|
|
28832
29256
|
disabled: !reorderableColumns || locked,
|
|
28833
29257
|
onReorder: (id, beforeId) => moveColumn(id, beforeId),
|
|
28834
|
-
renderItem: (column, columnIndex) => /* @__PURE__ */
|
|
29258
|
+
renderItem: (column, columnIndex) => /* @__PURE__ */ jsx80(
|
|
28835
29259
|
KanbanColumnView,
|
|
28836
29260
|
{
|
|
28837
29261
|
column,
|
|
@@ -28867,7 +29291,7 @@ function SkeletonCards({
|
|
|
28867
29291
|
count,
|
|
28868
29292
|
cardDepth
|
|
28869
29293
|
}) {
|
|
28870
|
-
return /* @__PURE__ */
|
|
29294
|
+
return /* @__PURE__ */ jsx80("div", { className: Kanban_default.list, children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsxs63(
|
|
28871
29295
|
"div",
|
|
28872
29296
|
{
|
|
28873
29297
|
className: cx(Kanban_default.item, Kanban_default.skeleton),
|
|
@@ -28875,10 +29299,10 @@ function SkeletonCards({
|
|
|
28875
29299
|
"data-surface": cardDepth !== void 0 || void 0,
|
|
28876
29300
|
"aria-hidden": "true",
|
|
28877
29301
|
children: [
|
|
28878
|
-
/* @__PURE__ */
|
|
28879
|
-
/* @__PURE__ */
|
|
28880
|
-
/* @__PURE__ */
|
|
28881
|
-
/* @__PURE__ */
|
|
29302
|
+
/* @__PURE__ */ jsx80(Skeleton, { lines: 2 }),
|
|
29303
|
+
/* @__PURE__ */ jsxs63("div", { className: Kanban_default.footer, children: [
|
|
29304
|
+
/* @__PURE__ */ jsx80(Skeleton, { shape: "block", className: Kanban_default.skeletonBadge }),
|
|
29305
|
+
/* @__PURE__ */ jsx80(Skeleton, { shape: "circle", size: "s" })
|
|
28882
29306
|
] })
|
|
28883
29307
|
]
|
|
28884
29308
|
},
|
|
@@ -28915,7 +29339,7 @@ function KanbanColumnView({
|
|
|
28915
29339
|
);
|
|
28916
29340
|
const showMeta = metaLines.length > 0;
|
|
28917
29341
|
const describedBy = [column.description ? descriptionId : null, showMeta ? metaId : null].filter(Boolean).join(" ") || void 0;
|
|
28918
|
-
return /* @__PURE__ */
|
|
29342
|
+
return /* @__PURE__ */ jsxs63(
|
|
28919
29343
|
Dnd.SortableItem,
|
|
28920
29344
|
{
|
|
28921
29345
|
id: column.id,
|
|
@@ -28924,19 +29348,19 @@ function KanbanColumnView({
|
|
|
28924
29348
|
"data-kanban-column": column.id,
|
|
28925
29349
|
"data-full": full || void 0,
|
|
28926
29350
|
children: [
|
|
28927
|
-
/* @__PURE__ */
|
|
29351
|
+
/* @__PURE__ */ jsx80(ControlSizeProvider, { value: "s", children: /* @__PURE__ */ jsxs63(
|
|
28928
29352
|
"div",
|
|
28929
29353
|
{
|
|
28930
29354
|
className: cx(Kanban_default.header, hairline_default.bottom),
|
|
28931
29355
|
"data-reorderable": reorderable || void 0,
|
|
28932
29356
|
children: [
|
|
28933
|
-
/* @__PURE__ */
|
|
28934
|
-
loading ? null : /* @__PURE__ */
|
|
28935
|
-
/* @__PURE__ */
|
|
28936
|
-
/* @__PURE__ */
|
|
29357
|
+
/* @__PURE__ */ jsx80(Title, { id: headingId, className: cx(textRole_default.titleM, Kanban_default.title), children: column.title }),
|
|
29358
|
+
loading ? null : /* @__PURE__ */ jsxs63(Fragment43, { children: [
|
|
29359
|
+
/* @__PURE__ */ jsx80(Badge.Root, { color: full ? "orange" : column.color ?? "gray", "aria-hidden": "true", children: column.limit === void 0 ? count : `${count} / ${column.limit}` }),
|
|
29360
|
+
/* @__PURE__ */ jsx80(VisuallyHidden, { children: countText })
|
|
28937
29361
|
] }),
|
|
28938
|
-
actions ? /* @__PURE__ */
|
|
28939
|
-
reorderable ? /* @__PURE__ */
|
|
29362
|
+
actions ? /* @__PURE__ */ jsx80("div", { className: cx(fieldTierClass, Kanban_default.actions), "data-size": "s", children: actions }) : null,
|
|
29363
|
+
reorderable ? /* @__PURE__ */ jsx80(
|
|
28940
29364
|
Dnd.Handle,
|
|
28941
29365
|
{
|
|
28942
29366
|
className: Kanban_default.grip,
|
|
@@ -28944,15 +29368,15 @@ function KanbanColumnView({
|
|
|
28944
29368
|
"aria-label": formatLabel(labels.moveColumn, { column: column.title })
|
|
28945
29369
|
}
|
|
28946
29370
|
) : null,
|
|
28947
|
-
column.description ? /* @__PURE__ */
|
|
28948
|
-
showMeta ? /* @__PURE__ */
|
|
29371
|
+
column.description ? /* @__PURE__ */ jsx80("p", { id: descriptionId, className: cx(textRole_default.caption, Kanban_default.description), children: column.description }) : null,
|
|
29372
|
+
showMeta ? /* @__PURE__ */ jsx80("div", { id: metaId, className: cx(textRole_default.caption, Kanban_default.meta), children: metaLines.map((line, index) => (
|
|
28949
29373
|
// biome-ignore lint/suspicious/noArrayIndexKey: a line is its place
|
|
28950
|
-
/* @__PURE__ */
|
|
29374
|
+
/* @__PURE__ */ jsx80("span", { className: Kanban_default.metaLine, children: line }, index)
|
|
28951
29375
|
)) }) : null
|
|
28952
29376
|
]
|
|
28953
29377
|
}
|
|
28954
29378
|
) }),
|
|
28955
|
-
/* @__PURE__ */
|
|
29379
|
+
/* @__PURE__ */ jsx80(ScrollContainer, { className: Kanban_default.body, children: /* @__PURE__ */ jsx80(Crossfade, { state: loading ? "loading" : "ready", className: Kanban_default.swap, children: loading ? /* @__PURE__ */ jsx80(SkeletonCards, { count: skeletons, cardDepth }) : /* @__PURE__ */ jsx80("div", { className: Kanban_default.drop, children: /* @__PURE__ */ jsx80(
|
|
28956
29380
|
Dnd.Sortable,
|
|
28957
29381
|
{
|
|
28958
29382
|
as: "ul",
|
|
@@ -28966,11 +29390,11 @@ function KanbanColumnView({
|
|
|
28966
29390
|
canDrop: accepts,
|
|
28967
29391
|
disabled,
|
|
28968
29392
|
onReorder,
|
|
28969
|
-
empty: /* @__PURE__ */
|
|
28970
|
-
/* @__PURE__ */
|
|
28971
|
-
disabled ? null : /* @__PURE__ */
|
|
29393
|
+
empty: /* @__PURE__ */ jsxs63(EmptyPage.Root, { layout: "compact", children: [
|
|
29394
|
+
/* @__PURE__ */ jsx80(EmptyPage.Title, { as: "p", children: labels.empty }),
|
|
29395
|
+
disabled ? null : /* @__PURE__ */ jsx80(EmptyPage.Description, { children: labels.emptyHint })
|
|
28972
29396
|
] }),
|
|
28973
|
-
renderItem: (item) => /* @__PURE__ */
|
|
29397
|
+
renderItem: (item) => /* @__PURE__ */ jsx80(ItemIdContext, { value: getId(item), children: renderItem(item) })
|
|
28974
29398
|
}
|
|
28975
29399
|
) }) }) })
|
|
28976
29400
|
]
|
|
@@ -28994,7 +29418,7 @@ function KanbanItem({
|
|
|
28994
29418
|
const href = board.hrefOf(id);
|
|
28995
29419
|
const { openItem } = board;
|
|
28996
29420
|
const focus = href !== void 0 ? { tabIndex: -1 } : openItem ? { tabIndex: 0 } : null;
|
|
28997
|
-
return /* @__PURE__ */
|
|
29421
|
+
return /* @__PURE__ */ jsxs63(
|
|
28998
29422
|
Dnd.SortableItem,
|
|
28999
29423
|
{
|
|
29000
29424
|
id,
|
|
@@ -29029,7 +29453,7 @@ function KanbanItem({
|
|
|
29029
29453
|
href !== void 0 ? (
|
|
29030
29454
|
// A press on the link drags the card like a press anywhere on it (`data-dnd-handle`).
|
|
29031
29455
|
// biome-ignore lint/a11y/useAnchorContent: named by `aria-label` (the card's `getLabel`); the card's content stays readable beside it
|
|
29032
|
-
/* @__PURE__ */
|
|
29456
|
+
/* @__PURE__ */ jsx80(
|
|
29033
29457
|
"a",
|
|
29034
29458
|
{
|
|
29035
29459
|
ref: linkRef,
|
|
@@ -29050,8 +29474,8 @@ function KanbanItem({
|
|
|
29050
29474
|
}
|
|
29051
29475
|
)
|
|
29052
29476
|
) : null,
|
|
29053
|
-
/* @__PURE__ */
|
|
29054
|
-
/* @__PURE__ */
|
|
29477
|
+
/* @__PURE__ */ jsx80(ControlSizeProvider, { value: "m", children }),
|
|
29478
|
+
/* @__PURE__ */ jsx80(KanbanItemSpinner, {})
|
|
29055
29479
|
]
|
|
29056
29480
|
}
|
|
29057
29481
|
);
|
|
@@ -29059,10 +29483,10 @@ function KanbanItem({
|
|
|
29059
29483
|
KanbanItem.displayName = "Kanban.Item";
|
|
29060
29484
|
function KanbanItemSpinner() {
|
|
29061
29485
|
const busy = useSortableItemBusy();
|
|
29062
|
-
return busy ? /* @__PURE__ */
|
|
29486
|
+
return busy ? /* @__PURE__ */ jsx80(Spinner, { size: "s", "aria-hidden": "true", className: Kanban_default.itemSpinner }) : null;
|
|
29063
29487
|
}
|
|
29064
29488
|
function KanbanItemHeader({ className, ...rest }) {
|
|
29065
|
-
return /* @__PURE__ */
|
|
29489
|
+
return /* @__PURE__ */ jsx80(
|
|
29066
29490
|
"div",
|
|
29067
29491
|
{
|
|
29068
29492
|
className: cx(
|
|
@@ -29079,23 +29503,23 @@ function KanbanItemHeader({ className, ...rest }) {
|
|
|
29079
29503
|
}
|
|
29080
29504
|
KanbanItemHeader.displayName = "Kanban.ItemHeader";
|
|
29081
29505
|
function KanbanItemTitle({ className, ...rest }) {
|
|
29082
|
-
return /* @__PURE__ */
|
|
29506
|
+
return /* @__PURE__ */ jsx80("span", { className: cx(textRole_default.bodyM, Kanban_default.itemTitle, className), ...rest });
|
|
29083
29507
|
}
|
|
29084
29508
|
KanbanItemTitle.displayName = "Kanban.ItemTitle";
|
|
29085
29509
|
function KanbanItemDescription({ className, ...rest }) {
|
|
29086
|
-
return /* @__PURE__ */
|
|
29510
|
+
return /* @__PURE__ */ jsx80("span", { className: cx(textRole_default.caption, Kanban_default.itemDescription, className), ...rest });
|
|
29087
29511
|
}
|
|
29088
29512
|
KanbanItemDescription.displayName = "Kanban.ItemDescription";
|
|
29089
29513
|
function KanbanItemBadges(props) {
|
|
29090
|
-
return /* @__PURE__ */
|
|
29514
|
+
return /* @__PURE__ */ jsx80(Badge.Group, { ...props });
|
|
29091
29515
|
}
|
|
29092
29516
|
KanbanItemBadges.displayName = "Kanban.ItemBadges";
|
|
29093
29517
|
function KanbanItemFooter({ className, ...rest }) {
|
|
29094
|
-
return /* @__PURE__ */
|
|
29518
|
+
return /* @__PURE__ */ jsx80("div", { className: cx(fieldTierClass, Kanban_default.footer, className), "data-size": "xs", ...rest });
|
|
29095
29519
|
}
|
|
29096
29520
|
KanbanItemFooter.displayName = "Kanban.ItemFooter";
|
|
29097
29521
|
function KanbanItemCount({ className, ...rest }) {
|
|
29098
|
-
return /* @__PURE__ */
|
|
29522
|
+
return /* @__PURE__ */ jsx80("span", { className: cx(Kanban_default.count, className), ...rest });
|
|
29099
29523
|
}
|
|
29100
29524
|
KanbanItemCount.displayName = "Kanban.ItemCount";
|
|
29101
29525
|
var Kanban = {
|
|
@@ -29127,7 +29551,7 @@ var LoginForm_default = {
|
|
|
29127
29551
|
};
|
|
29128
29552
|
|
|
29129
29553
|
// src/components/login-form/LoginForm.tsx
|
|
29130
|
-
import { jsx as
|
|
29554
|
+
import { jsx as jsx81 } from "react/jsx-runtime";
|
|
29131
29555
|
var TITLE_ROLE = {
|
|
29132
29556
|
xs: "title-s",
|
|
29133
29557
|
s: "title-m",
|
|
@@ -29161,25 +29585,25 @@ function LoginFormRoot({
|
|
|
29161
29585
|
...rest
|
|
29162
29586
|
}) {
|
|
29163
29587
|
const { size, provide } = useHostTier(sizeProp);
|
|
29164
|
-
return /* @__PURE__ */
|
|
29588
|
+
return /* @__PURE__ */ jsx81(
|
|
29165
29589
|
"div",
|
|
29166
29590
|
{
|
|
29167
29591
|
ref,
|
|
29168
29592
|
...rest,
|
|
29169
29593
|
className: cx(LoginForm_default.root, className),
|
|
29170
29594
|
...toDataAttributes({ size, align, flat }),
|
|
29171
|
-
children: /* @__PURE__ */
|
|
29595
|
+
children: /* @__PURE__ */ jsx81(Card.Root, { flat, children: /* @__PURE__ */ jsx81("div", { className: LoginForm_default.content, children: /* @__PURE__ */ jsx81(AlignContext, { value: align, children: provide(children) }) }) })
|
|
29172
29596
|
}
|
|
29173
29597
|
);
|
|
29174
29598
|
}
|
|
29175
29599
|
LoginFormRoot.displayName = "LoginForm.Root";
|
|
29176
29600
|
function LoginFormHeader({ className, children, ...rest }) {
|
|
29177
|
-
return /* @__PURE__ */
|
|
29601
|
+
return /* @__PURE__ */ jsx81("header", { className: cx(LoginForm_default.header, className), ...rest, children });
|
|
29178
29602
|
}
|
|
29179
29603
|
LoginFormHeader.displayName = "LoginForm.Header";
|
|
29180
29604
|
function LoginFormLogo({ className, children, ...rest }) {
|
|
29181
29605
|
const align = React88.useContext(AlignContext);
|
|
29182
|
-
return /* @__PURE__ */
|
|
29606
|
+
return /* @__PURE__ */ jsx81(
|
|
29183
29607
|
"div",
|
|
29184
29608
|
{
|
|
29185
29609
|
role: rest["aria-label"] ? "img" : void 0,
|
|
@@ -29193,7 +29617,7 @@ function LoginFormLogo({ className, children, ...rest }) {
|
|
|
29193
29617
|
LoginFormLogo.displayName = "LoginForm.Logo";
|
|
29194
29618
|
function LoginFormTitle({ as = "h1", className, children, ...rest }) {
|
|
29195
29619
|
const size = useLoginFormSize();
|
|
29196
|
-
return /* @__PURE__ */
|
|
29620
|
+
return /* @__PURE__ */ jsx81(
|
|
29197
29621
|
Typography,
|
|
29198
29622
|
{
|
|
29199
29623
|
as,
|
|
@@ -29207,7 +29631,7 @@ function LoginFormTitle({ as = "h1", className, children, ...rest }) {
|
|
|
29207
29631
|
LoginFormTitle.displayName = "LoginForm.Title";
|
|
29208
29632
|
function LoginFormDescription({ className, children, ...rest }) {
|
|
29209
29633
|
const size = useLoginFormSize();
|
|
29210
|
-
return /* @__PURE__ */
|
|
29634
|
+
return /* @__PURE__ */ jsx81(
|
|
29211
29635
|
Typography,
|
|
29212
29636
|
{
|
|
29213
29637
|
as: "p",
|
|
@@ -29221,20 +29645,20 @@ function LoginFormDescription({ className, children, ...rest }) {
|
|
|
29221
29645
|
}
|
|
29222
29646
|
LoginFormDescription.displayName = "LoginForm.Description";
|
|
29223
29647
|
function LoginFormBody({ className, children, ...rest }) {
|
|
29224
|
-
return /* @__PURE__ */
|
|
29648
|
+
return /* @__PURE__ */ jsx81("div", { className: cx(LoginForm_default.body, className), ...rest, children });
|
|
29225
29649
|
}
|
|
29226
29650
|
LoginFormBody.displayName = "LoginForm.Body";
|
|
29227
29651
|
function LoginFormForm({ className, children, ref, ...rest }) {
|
|
29228
|
-
return /* @__PURE__ */
|
|
29652
|
+
return /* @__PURE__ */ jsx81("form", { ref, className: cx(LoginForm_default.form, className), ...rest, children });
|
|
29229
29653
|
}
|
|
29230
29654
|
LoginFormForm.displayName = "LoginForm.Form";
|
|
29231
29655
|
function LoginFormActions({ className, children, ...rest }) {
|
|
29232
|
-
return /* @__PURE__ */
|
|
29656
|
+
return /* @__PURE__ */ jsx81("div", { className: cx(LoginForm_default.actions, className), ...rest, children });
|
|
29233
29657
|
}
|
|
29234
29658
|
LoginFormActions.displayName = "LoginForm.Actions";
|
|
29235
29659
|
function LoginFormFooter({ className, children, ...rest }) {
|
|
29236
29660
|
const size = useLoginFormSize();
|
|
29237
|
-
return /* @__PURE__ */
|
|
29661
|
+
return /* @__PURE__ */ jsx81(
|
|
29238
29662
|
Typography,
|
|
29239
29663
|
{
|
|
29240
29664
|
as: "p",
|
|
@@ -29268,7 +29692,7 @@ var NativeSelect_default = {
|
|
|
29268
29692
|
};
|
|
29269
29693
|
|
|
29270
29694
|
// src/components/native-select/NativeSelect.tsx
|
|
29271
|
-
import { jsx as
|
|
29695
|
+
import { jsx as jsx82, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
29272
29696
|
var NATIVE_SELECT_LABELS = { optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" };
|
|
29273
29697
|
function NativeSelect({
|
|
29274
29698
|
size: sizeProp,
|
|
@@ -29300,7 +29724,7 @@ function NativeSelect({
|
|
|
29300
29724
|
const ids = useFieldFrame(id, { label, hint, error, invalid, required }, ariaDescribedBy);
|
|
29301
29725
|
const initial = defaultValue ?? (value === void 0 && placeholder ? "" : void 0);
|
|
29302
29726
|
return tier.provide(
|
|
29303
|
-
/* @__PURE__ */
|
|
29727
|
+
/* @__PURE__ */ jsx82(
|
|
29304
29728
|
FieldFrame,
|
|
29305
29729
|
{
|
|
29306
29730
|
size,
|
|
@@ -29314,8 +29738,8 @@ function NativeSelect({
|
|
|
29314
29738
|
disabled,
|
|
29315
29739
|
optionalLabel: labels.optional,
|
|
29316
29740
|
className,
|
|
29317
|
-
children: /* @__PURE__ */
|
|
29318
|
-
/* @__PURE__ */
|
|
29741
|
+
children: /* @__PURE__ */ jsxs64("span", { className: cx(fieldTierClass, NativeSelect_default.root), ...toDataAttributes({ size }), children: [
|
|
29742
|
+
/* @__PURE__ */ jsxs64(
|
|
29319
29743
|
"select",
|
|
29320
29744
|
{
|
|
29321
29745
|
...rest,
|
|
@@ -29337,12 +29761,12 @@ function NativeSelect({
|
|
|
29337
29761
|
"focus-ring": focusRing
|
|
29338
29762
|
}),
|
|
29339
29763
|
children: [
|
|
29340
|
-
placeholder ? /* @__PURE__ */
|
|
29764
|
+
placeholder ? /* @__PURE__ */ jsx82("option", { value: "", className: NativeSelect_default.placeholder, children: placeholder }) : null,
|
|
29341
29765
|
children
|
|
29342
29766
|
]
|
|
29343
29767
|
}
|
|
29344
29768
|
),
|
|
29345
|
-
/* @__PURE__ */
|
|
29769
|
+
/* @__PURE__ */ jsx82("span", { className: NativeSelect_default.chevron, "aria-hidden": "true", children: /* @__PURE__ */ jsx82(Icon, { name: "nav.chevronDown" }) })
|
|
29346
29770
|
] })
|
|
29347
29771
|
}
|
|
29348
29772
|
)
|
|
@@ -29378,7 +29802,7 @@ var Notification_default = {
|
|
|
29378
29802
|
};
|
|
29379
29803
|
|
|
29380
29804
|
// src/components/notification/Notification.tsx
|
|
29381
|
-
import { jsx as
|
|
29805
|
+
import { jsx as jsx83, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
29382
29806
|
var NOTIFICATION_LABELS = {
|
|
29383
29807
|
close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435",
|
|
29384
29808
|
regionTopLeft: "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0440\u0445\u0443 \u0441\u043B\u0435\u0432\u0430",
|
|
@@ -29424,7 +29848,7 @@ function CardView({
|
|
|
29424
29848
|
const size = tier.size;
|
|
29425
29849
|
const liveRole = tone === "danger" || tone === "warning" ? "alert" : "status";
|
|
29426
29850
|
return tier.provide(
|
|
29427
|
-
/* @__PURE__ */
|
|
29851
|
+
/* @__PURE__ */ jsxs65(
|
|
29428
29852
|
"article",
|
|
29429
29853
|
{
|
|
29430
29854
|
...rest,
|
|
@@ -29440,14 +29864,14 @@ function CardView({
|
|
|
29440
29864
|
"stack-expanded": stackExpanded
|
|
29441
29865
|
}),
|
|
29442
29866
|
children: [
|
|
29443
|
-
/* @__PURE__ */
|
|
29444
|
-
/* @__PURE__ */
|
|
29445
|
-
/* @__PURE__ */
|
|
29446
|
-
/* @__PURE__ */
|
|
29447
|
-
badge !== void 0 ? /* @__PURE__ */
|
|
29867
|
+
/* @__PURE__ */ jsx83("div", { className: cx(Notification_default.iconWrap, iconSlotClass), "aria-hidden": "true", children: icon ?? /* @__PURE__ */ jsx83(Icon, { name: TONE_ICON[tone] }) }),
|
|
29868
|
+
/* @__PURE__ */ jsxs65("div", { className: Notification_default.content, children: [
|
|
29869
|
+
/* @__PURE__ */ jsxs65("header", { className: Notification_default.header, children: [
|
|
29870
|
+
/* @__PURE__ */ jsx83("p", { className: Notification_default.title, children: title }),
|
|
29871
|
+
badge !== void 0 ? /* @__PURE__ */ jsx83(Badge.Root, { size: "xs", tone, children: badge }) : null
|
|
29448
29872
|
] }),
|
|
29449
|
-
description ? /* @__PURE__ */
|
|
29450
|
-
action ? /* @__PURE__ */
|
|
29873
|
+
description ? /* @__PURE__ */ jsx83("p", { className: Notification_default.description, children: description }) : null,
|
|
29874
|
+
action ? /* @__PURE__ */ jsx83("div", { className: Notification_default.actionRow, children: /* @__PURE__ */ jsx83(
|
|
29451
29875
|
Button.Root,
|
|
29452
29876
|
{
|
|
29453
29877
|
variant: "soft",
|
|
@@ -29461,7 +29885,7 @@ function CardView({
|
|
|
29461
29885
|
}
|
|
29462
29886
|
) }) : null
|
|
29463
29887
|
] }),
|
|
29464
|
-
onClose ? /* @__PURE__ */
|
|
29888
|
+
onClose ? /* @__PURE__ */ jsx83("div", { className: Notification_default.closeWrap, children: /* @__PURE__ */ jsx83(
|
|
29465
29889
|
Button.Root,
|
|
29466
29890
|
{
|
|
29467
29891
|
variant: "ghost",
|
|
@@ -29469,10 +29893,10 @@ function CardView({
|
|
|
29469
29893
|
size: compactTier(size),
|
|
29470
29894
|
"aria-label": labels.close,
|
|
29471
29895
|
onClick: onClose,
|
|
29472
|
-
children: /* @__PURE__ */
|
|
29896
|
+
children: /* @__PURE__ */ jsx83(Button.Icon, { children: /* @__PURE__ */ jsx83(Icon, { name: "action.close" }) })
|
|
29473
29897
|
}
|
|
29474
29898
|
) }) : null,
|
|
29475
|
-
countdown ? /* @__PURE__ */
|
|
29899
|
+
countdown ? /* @__PURE__ */ jsx83("div", { className: Notification_default.progressTrack, "aria-hidden": "true", children: /* @__PURE__ */ jsx83(CountdownLine, { ...countdown }) }) : null
|
|
29476
29900
|
]
|
|
29477
29901
|
}
|
|
29478
29902
|
)
|
|
@@ -29507,10 +29931,10 @@ function CountdownLine({ duration, paused, onEnd }) {
|
|
|
29507
29931
|
if (paused) clock.pause();
|
|
29508
29932
|
else clock.play();
|
|
29509
29933
|
}, [paused]);
|
|
29510
|
-
return /* @__PURE__ */
|
|
29934
|
+
return /* @__PURE__ */ jsx83("span", { ref: lineRef, className: Notification_default.progressValue });
|
|
29511
29935
|
}
|
|
29512
29936
|
function NotificationCard({ onDismiss, ...props }) {
|
|
29513
|
-
return /* @__PURE__ */
|
|
29937
|
+
return /* @__PURE__ */ jsx83(CardView, { ...props, onClose: onDismiss });
|
|
29514
29938
|
}
|
|
29515
29939
|
function subscribeVisibility(listener) {
|
|
29516
29940
|
document.addEventListener("visibilitychange", listener);
|
|
@@ -29526,7 +29950,7 @@ function useDocumentHidden() {
|
|
|
29526
29950
|
function ToastCard({ item, paused, onDismiss, stackDepth, stackExpanded }) {
|
|
29527
29951
|
const hidden = useDocumentHidden();
|
|
29528
29952
|
const timed = !item.persistent && item.duration > 0;
|
|
29529
|
-
return /* @__PURE__ */
|
|
29953
|
+
return /* @__PURE__ */ jsx83(
|
|
29530
29954
|
CardView,
|
|
29531
29955
|
{
|
|
29532
29956
|
tone: item.tone,
|
|
@@ -29551,7 +29975,7 @@ function ToastCard({ item, paused, onDismiss, stackDepth, stackExpanded }) {
|
|
|
29551
29975
|
|
|
29552
29976
|
// src/components/notification/NotificationStore.tsx
|
|
29553
29977
|
import * as React90 from "react";
|
|
29554
|
-
import { jsx as
|
|
29978
|
+
import { jsx as jsx84, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
29555
29979
|
var DEFAULT_DURATION = 5e3;
|
|
29556
29980
|
var PEEK_VISIBLE = 3;
|
|
29557
29981
|
var SCALE_STEP = 0.05;
|
|
@@ -29682,7 +30106,7 @@ function NotificationStack({
|
|
|
29682
30106
|
if (!ids.has(id)) lastLayoutRef.current.delete(id);
|
|
29683
30107
|
}
|
|
29684
30108
|
});
|
|
29685
|
-
return /* @__PURE__ */
|
|
30109
|
+
return /* @__PURE__ */ jsx84(
|
|
29686
30110
|
"ol",
|
|
29687
30111
|
{
|
|
29688
30112
|
ref: listRef,
|
|
@@ -29709,7 +30133,7 @@ function NotificationStack({
|
|
|
29709
30133
|
children: items.map((item) => {
|
|
29710
30134
|
const closing = item.dismissing === true;
|
|
29711
30135
|
const layout = layouts.get(item.id) ?? lastLayoutRef.current.get(item.id) ?? RESTING_LAYOUT;
|
|
29712
|
-
return /* @__PURE__ */
|
|
30136
|
+
return /* @__PURE__ */ jsx84(
|
|
29713
30137
|
NotificationStackItem,
|
|
29714
30138
|
{
|
|
29715
30139
|
item,
|
|
@@ -29824,7 +30248,7 @@ var NotificationStackItem = React90.memo(function NotificationStackItem2({
|
|
|
29824
30248
|
if (amount === 0 || prefersReducedMotion()) delete el.dataset.swipe;
|
|
29825
30249
|
else el.dataset.swipe = "return";
|
|
29826
30250
|
};
|
|
29827
|
-
return /* @__PURE__ */
|
|
30251
|
+
return /* @__PURE__ */ jsx84(
|
|
29828
30252
|
"li",
|
|
29829
30253
|
{
|
|
29830
30254
|
ref,
|
|
@@ -29838,7 +30262,7 @@ var NotificationStackItem = React90.memo(function NotificationStackItem2({
|
|
|
29838
30262
|
"--ntf-opacity": opacity,
|
|
29839
30263
|
zIndex: Z_FRONT - index
|
|
29840
30264
|
},
|
|
29841
|
-
children: /* @__PURE__ */
|
|
30265
|
+
children: /* @__PURE__ */ jsx84(
|
|
29842
30266
|
"div",
|
|
29843
30267
|
{
|
|
29844
30268
|
className: Notification_default.motion,
|
|
@@ -29855,7 +30279,7 @@ var NotificationStackItem = React90.memo(function NotificationStackItem2({
|
|
|
29855
30279
|
delete event.currentTarget.dataset.swipe;
|
|
29856
30280
|
}
|
|
29857
30281
|
},
|
|
29858
|
-
children: /* @__PURE__ */
|
|
30282
|
+
children: /* @__PURE__ */ jsx84(
|
|
29859
30283
|
ToastCard,
|
|
29860
30284
|
{
|
|
29861
30285
|
item,
|
|
@@ -29891,18 +30315,18 @@ function NotificationToaster({
|
|
|
29891
30315
|
}
|
|
29892
30316
|
return map;
|
|
29893
30317
|
}, [entries]);
|
|
29894
|
-
return /* @__PURE__ */
|
|
30318
|
+
return /* @__PURE__ */ jsx84(Portal, { children: /* @__PURE__ */ jsx84("div", { className: Notification_default.viewport, ...{ [LIVE_REGION_ATTR]: "" }, children: POSITIONS.map((pos) => {
|
|
29895
30319
|
const byTone = grouped.get(pos);
|
|
29896
30320
|
if (!byTone?.size) return null;
|
|
29897
30321
|
const [vertical, horizontal] = pos.split("-");
|
|
29898
30322
|
const stacks = TONES.map((tone) => ({ tone, items: byTone.get(tone) ?? [] })).filter(
|
|
29899
30323
|
(s) => s.items.length > 0
|
|
29900
30324
|
);
|
|
29901
|
-
return /* @__PURE__ */
|
|
30325
|
+
return /* @__PURE__ */ jsx84(
|
|
29902
30326
|
"section",
|
|
29903
30327
|
{
|
|
29904
30328
|
className: `${Notification_default.zone} ${Notification_default[vertical]} ${Notification_default[horizontal]}`,
|
|
29905
|
-
children: stacks.map((s) => /* @__PURE__ */
|
|
30329
|
+
children: stacks.map((s) => /* @__PURE__ */ jsx84(
|
|
29906
30330
|
NotificationStack,
|
|
29907
30331
|
{
|
|
29908
30332
|
position: pos,
|
|
@@ -30023,9 +30447,9 @@ function NotificationProvider({
|
|
|
30023
30447
|
() => ({ items: publicItems, notify, dismiss, dismissAll }),
|
|
30024
30448
|
[publicItems, notify, dismiss, dismissAll]
|
|
30025
30449
|
);
|
|
30026
|
-
return /* @__PURE__ */
|
|
30450
|
+
return /* @__PURE__ */ jsx84(StoreProvider, { value, children: /* @__PURE__ */ jsxs66(NotificationLabelsContext.Provider, { value: labels, children: [
|
|
30027
30451
|
children,
|
|
30028
|
-
/* @__PURE__ */
|
|
30452
|
+
/* @__PURE__ */ jsx84(NotificationToaster, { entries, onDismiss: leave, onExited: exited })
|
|
30029
30453
|
] }) });
|
|
30030
30454
|
}
|
|
30031
30455
|
function useNotifications() {
|
|
@@ -30051,7 +30475,7 @@ var ProgressCircle_default = {
|
|
|
30051
30475
|
};
|
|
30052
30476
|
|
|
30053
30477
|
// src/components/progress-circle/ProgressCircle.tsx
|
|
30054
|
-
import { Fragment as
|
|
30478
|
+
import { Fragment as Fragment44, jsx as jsx85, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
30055
30479
|
var HAIRLINE_GAP = RING_DATA_STROKE * 0.75;
|
|
30056
30480
|
var LOADING_ROWS3 = 3;
|
|
30057
30481
|
function arcStyle(start, length) {
|
|
@@ -30073,9 +30497,9 @@ function SegmentArcs({
|
|
|
30073
30497
|
}) {
|
|
30074
30498
|
if (gap === "hairline" && arcs.length > 1) {
|
|
30075
30499
|
const inset = (RING_DATA_STROKE + HAIRLINE_GAP) / 2;
|
|
30076
|
-
return /* @__PURE__ */
|
|
30500
|
+
return /* @__PURE__ */ jsx85(Fragment44, { children: arcs.map((a, i) => {
|
|
30077
30501
|
const own = a.rest ? { className: void 0 } : fillProps(a.fill);
|
|
30078
|
-
return /* @__PURE__ */
|
|
30502
|
+
return /* @__PURE__ */ jsx85(
|
|
30079
30503
|
RingCircle,
|
|
30080
30504
|
{
|
|
30081
30505
|
...own,
|
|
@@ -30089,10 +30513,10 @@ function SegmentArcs({
|
|
|
30089
30513
|
const parts = arcs.filter((a) => !a.rest);
|
|
30090
30514
|
const first = parts[0];
|
|
30091
30515
|
const last = parts[parts.length - 1];
|
|
30092
|
-
return /* @__PURE__ */
|
|
30516
|
+
return /* @__PURE__ */ jsxs67(Fragment44, { children: [
|
|
30093
30517
|
parts.map((a, i) => {
|
|
30094
30518
|
const own = fillProps(a.fill);
|
|
30095
|
-
return /* @__PURE__ */
|
|
30519
|
+
return /* @__PURE__ */ jsx85(
|
|
30096
30520
|
RingCircle,
|
|
30097
30521
|
{
|
|
30098
30522
|
...own,
|
|
@@ -30102,15 +30526,15 @@ function SegmentArcs({
|
|
|
30102
30526
|
i
|
|
30103
30527
|
);
|
|
30104
30528
|
}),
|
|
30105
|
-
first && last && !closed ? /* @__PURE__ */
|
|
30106
|
-
/* @__PURE__ */
|
|
30107
|
-
/* @__PURE__ */
|
|
30529
|
+
first && last && !closed ? /* @__PURE__ */ jsxs67(Fragment44, { children: [
|
|
30530
|
+
/* @__PURE__ */ jsx85(Cap, { position: first.start, fill: first.fill }),
|
|
30531
|
+
/* @__PURE__ */ jsx85(Cap, { position: last.start + last.length, fill: last.fill })
|
|
30108
30532
|
] }) : null
|
|
30109
30533
|
] });
|
|
30110
30534
|
}
|
|
30111
30535
|
function Cap({ position, fill }) {
|
|
30112
30536
|
const own = fillProps(fill);
|
|
30113
|
-
return /* @__PURE__ */
|
|
30537
|
+
return /* @__PURE__ */ jsx85(RingCap, { position, ...own, className: cx(own.className, ProgressCircle_default.cap) });
|
|
30114
30538
|
}
|
|
30115
30539
|
function ProgressCircle(props) {
|
|
30116
30540
|
const {
|
|
@@ -30159,10 +30583,10 @@ function ProgressCircle(props) {
|
|
|
30159
30583
|
"aria-describedby": descriptionId
|
|
30160
30584
|
} : { "aria-label": text };
|
|
30161
30585
|
if (label && !showLegend) {
|
|
30162
|
-
description = /* @__PURE__ */
|
|
30586
|
+
description = /* @__PURE__ */ jsx85(VisuallyHidden, { id: descriptionId, children: text });
|
|
30163
30587
|
}
|
|
30164
30588
|
if (legend) {
|
|
30165
|
-
legendNode = loading ? /* @__PURE__ */
|
|
30589
|
+
legendNode = loading ? /* @__PURE__ */ jsx85(ProgressLegendSkeleton, { rows: segmentsProp.length || LOADING_ROWS3, size }) : showLegend ? /* @__PURE__ */ jsx85(
|
|
30166
30590
|
ProgressLegend,
|
|
30167
30591
|
{
|
|
30168
30592
|
id: label ? descriptionId : void 0,
|
|
@@ -30173,7 +30597,7 @@ function ProgressCircle(props) {
|
|
|
30173
30597
|
}
|
|
30174
30598
|
) : null;
|
|
30175
30599
|
}
|
|
30176
|
-
ring = /* @__PURE__ */
|
|
30600
|
+
ring = /* @__PURE__ */ jsx85(
|
|
30177
30601
|
Ring,
|
|
30178
30602
|
{
|
|
30179
30603
|
value: 0,
|
|
@@ -30183,14 +30607,14 @@ function ProgressCircle(props) {
|
|
|
30183
30607
|
role: "group",
|
|
30184
30608
|
...a11y,
|
|
30185
30609
|
...toDataAttributes({ "segment-gap": gap }),
|
|
30186
|
-
children: total > 0 ? /* @__PURE__ */
|
|
30610
|
+
children: total > 0 ? /* @__PURE__ */ jsx85(SegmentArcs, { arcs, gap, closed: free === 0 }) : null
|
|
30187
30611
|
}
|
|
30188
30612
|
);
|
|
30189
30613
|
} else {
|
|
30190
30614
|
const unknown = valueProp === null || valueProp === void 0;
|
|
30191
30615
|
const { value, max, ratio } = resolveValue(valueProp ?? 0, maxProp);
|
|
30192
30616
|
tone = toneProp ?? "accent";
|
|
30193
|
-
ring = /* @__PURE__ */
|
|
30617
|
+
ring = /* @__PURE__ */ jsx85(
|
|
30194
30618
|
Ring,
|
|
30195
30619
|
{
|
|
30196
30620
|
value: unknown ? null : ratio,
|
|
@@ -30207,15 +30631,15 @@ function ProgressCircle(props) {
|
|
|
30207
30631
|
}
|
|
30208
30632
|
);
|
|
30209
30633
|
}
|
|
30210
|
-
const body = /* @__PURE__ */
|
|
30211
|
-
/* @__PURE__ */
|
|
30634
|
+
const body = /* @__PURE__ */ jsxs67(Fragment44, { children: [
|
|
30635
|
+
/* @__PURE__ */ jsx85(RegionSwap, { state: loading ? "loading" : "data", fill: true, children: loading ? /* @__PURE__ */ jsx85(Skeleton, { shape: "block", className: ProgressCircle_default.ringSkeleton }) : ring }),
|
|
30212
30636
|
loading ? null : description,
|
|
30213
|
-
showInner ? /* @__PURE__ */
|
|
30637
|
+
showInner ? /* @__PURE__ */ jsx85(
|
|
30214
30638
|
"div",
|
|
30215
30639
|
{
|
|
30216
30640
|
className: cx(ProgressCircle_default.inner, tone !== "inherit" && ProgressCircle_default.ink),
|
|
30217
30641
|
"aria-hidden": valueText !== void 0 ? true : void 0,
|
|
30218
|
-
children: /* @__PURE__ */
|
|
30642
|
+
children: /* @__PURE__ */ jsx85(GlyphSwap, { children })
|
|
30219
30643
|
}
|
|
30220
30644
|
) : null
|
|
30221
30645
|
] });
|
|
@@ -30226,14 +30650,14 @@ function ProgressCircle(props) {
|
|
|
30226
30650
|
};
|
|
30227
30651
|
if (legend) {
|
|
30228
30652
|
return provide(
|
|
30229
|
-
/* @__PURE__ */
|
|
30230
|
-
/* @__PURE__ */
|
|
30231
|
-
/* @__PURE__ */
|
|
30653
|
+
/* @__PURE__ */ jsxs67("div", { className: cx(ProgressCircle_default.root, className), ...rootProps, children: [
|
|
30654
|
+
/* @__PURE__ */ jsx85("div", { className: ProgressCircle_default.ring, children: body }),
|
|
30655
|
+
/* @__PURE__ */ jsx85(RegionSwap, { state: loading ? "loading" : "data", className: ProgressCircle_default.legend, children: legendNode })
|
|
30232
30656
|
] })
|
|
30233
30657
|
);
|
|
30234
30658
|
}
|
|
30235
30659
|
return provide(
|
|
30236
|
-
/* @__PURE__ */
|
|
30660
|
+
/* @__PURE__ */ jsx85("div", { className: cx(ProgressCircle_default.root, className), ...rootProps, children: body })
|
|
30237
30661
|
);
|
|
30238
30662
|
}
|
|
30239
30663
|
|
|
@@ -30249,7 +30673,7 @@ var Radio_default = {
|
|
|
30249
30673
|
};
|
|
30250
30674
|
|
|
30251
30675
|
// src/components/radio/Radio.tsx
|
|
30252
|
-
import { Fragment as
|
|
30676
|
+
import { Fragment as Fragment45, jsx as jsx86, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
30253
30677
|
var RADIO_GROUP_LABELS = { optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" };
|
|
30254
30678
|
var [RadioGroupProvider, useRadioGroupContext] = createComponentContext("Radio.Group");
|
|
30255
30679
|
function RadioGroup({
|
|
@@ -30297,8 +30721,8 @@ function RadioGroup({
|
|
|
30297
30721
|
() => ({ name, value, setValue, size, disabled, invalid: ids.invalid, required }),
|
|
30298
30722
|
[name, value, setValue, size, disabled, ids.invalid, required]
|
|
30299
30723
|
);
|
|
30300
|
-
return /* @__PURE__ */
|
|
30301
|
-
/* @__PURE__ */
|
|
30724
|
+
return /* @__PURE__ */ jsx86(RadioGroupProvider, { value: ctxValue, children: tier.provide(
|
|
30725
|
+
/* @__PURE__ */ jsx86(
|
|
30302
30726
|
FieldFrame,
|
|
30303
30727
|
{
|
|
30304
30728
|
...rest,
|
|
@@ -30314,7 +30738,7 @@ function RadioGroup({
|
|
|
30314
30738
|
optionalLabel: labels.optional,
|
|
30315
30739
|
group: true,
|
|
30316
30740
|
className,
|
|
30317
|
-
children: /* @__PURE__ */
|
|
30741
|
+
children: /* @__PURE__ */ jsx86(
|
|
30318
30742
|
"div",
|
|
30319
30743
|
{
|
|
30320
30744
|
id: ids.controlId,
|
|
@@ -30351,7 +30775,7 @@ function RadioRoot({
|
|
|
30351
30775
|
const ids = useFieldFrame(id, { hint, invalid: group.invalid }, ariaDescribedBy);
|
|
30352
30776
|
const disabled = group.disabled || disabledProp;
|
|
30353
30777
|
const checked = group.value === value;
|
|
30354
|
-
return /* @__PURE__ */
|
|
30778
|
+
return /* @__PURE__ */ jsx86(
|
|
30355
30779
|
ChoiceField,
|
|
30356
30780
|
{
|
|
30357
30781
|
ids,
|
|
@@ -30362,8 +30786,8 @@ function RadioRoot({
|
|
|
30362
30786
|
hint,
|
|
30363
30787
|
hintTone,
|
|
30364
30788
|
className: cx(Radio_default.root, className),
|
|
30365
|
-
control: /* @__PURE__ */
|
|
30366
|
-
/* @__PURE__ */
|
|
30789
|
+
control: /* @__PURE__ */ jsxs68(Fragment45, { children: [
|
|
30790
|
+
/* @__PURE__ */ jsx86(
|
|
30367
30791
|
"input",
|
|
30368
30792
|
{
|
|
30369
30793
|
...inputRest,
|
|
@@ -30381,12 +30805,12 @@ function RadioRoot({
|
|
|
30381
30805
|
"aria-describedby": ids.describedBy
|
|
30382
30806
|
}
|
|
30383
30807
|
),
|
|
30384
|
-
/* @__PURE__ */
|
|
30808
|
+
/* @__PURE__ */ jsx86(
|
|
30385
30809
|
"span",
|
|
30386
30810
|
{
|
|
30387
30811
|
className: cx(choiceVisualClass, choiceBoxClass, Radio_default.control),
|
|
30388
30812
|
"aria-hidden": "true",
|
|
30389
|
-
children: /* @__PURE__ */
|
|
30813
|
+
children: /* @__PURE__ */ jsx86("span", { className: Radio_default.dot })
|
|
30390
30814
|
}
|
|
30391
30815
|
)
|
|
30392
30816
|
] }),
|
|
@@ -30396,7 +30820,7 @@ function RadioRoot({
|
|
|
30396
30820
|
}
|
|
30397
30821
|
RadioRoot.displayName = "Radio.Root";
|
|
30398
30822
|
function RadioLabel(props) {
|
|
30399
|
-
return /* @__PURE__ */
|
|
30823
|
+
return /* @__PURE__ */ jsx86(ChoiceLabel, { ...props });
|
|
30400
30824
|
}
|
|
30401
30825
|
RadioLabel.displayName = "Radio.Label";
|
|
30402
30826
|
var Radio = {
|
|
@@ -30411,13 +30835,13 @@ var RichText_default = {
|
|
|
30411
30835
|
};
|
|
30412
30836
|
|
|
30413
30837
|
// src/components/rich-text/RichText.tsx
|
|
30414
|
-
import { jsx as
|
|
30838
|
+
import { jsx as jsx87 } from "react/jsx-runtime";
|
|
30415
30839
|
var RICH_TEXT_LABELS = {
|
|
30416
30840
|
spoiler: "\u0421\u043A\u0440\u044B\u0442\u044B\u0439 \u0442\u0435\u043A\u0441\u0442"
|
|
30417
30841
|
};
|
|
30418
30842
|
function RichText2({ children, labels: labelsProp, className, ...rest }) {
|
|
30419
30843
|
const labels = useLabels(RICH_TEXT_LABELS, labelsProp);
|
|
30420
|
-
return /* @__PURE__ */
|
|
30844
|
+
return /* @__PURE__ */ jsx87("div", { className: cx(RichText_default.root, className), ...rest, children: /* @__PURE__ */ jsx87(RichText, { source: children, labels }) });
|
|
30421
30845
|
}
|
|
30422
30846
|
|
|
30423
30847
|
// src/components/sheet/Sheet.module.css
|
|
@@ -30426,14 +30850,14 @@ var Sheet_default = {
|
|
|
30426
30850
|
};
|
|
30427
30851
|
|
|
30428
30852
|
// src/components/sheet/Sheet.tsx
|
|
30429
|
-
import { jsx as
|
|
30853
|
+
import { jsx as jsx88 } from "react/jsx-runtime";
|
|
30430
30854
|
function SheetRoot({ children, ...options }) {
|
|
30431
30855
|
const state = useDialogRoot(options);
|
|
30432
|
-
return /* @__PURE__ */
|
|
30856
|
+
return /* @__PURE__ */ jsx88(DialogRootProvider, { value: state, children });
|
|
30433
30857
|
}
|
|
30434
30858
|
SheetRoot.displayName = "Sheet.Root";
|
|
30435
30859
|
function SheetContent(props) {
|
|
30436
|
-
return /* @__PURE__ */
|
|
30860
|
+
return /* @__PURE__ */ jsx88(
|
|
30437
30861
|
DialogPanel,
|
|
30438
30862
|
{
|
|
30439
30863
|
...props,
|
|
@@ -30580,7 +31004,7 @@ var Sparkline_default = {
|
|
|
30580
31004
|
};
|
|
30581
31005
|
|
|
30582
31006
|
// src/components/sparkline/Sparkline.tsx
|
|
30583
|
-
import { Fragment as
|
|
31007
|
+
import { Fragment as Fragment46, jsx as jsx89, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
30584
31008
|
var SPARKLINE_LABELS = {
|
|
30585
31009
|
point: "{label}: {value}",
|
|
30586
31010
|
period: "{first} \u2013 {last}",
|
|
@@ -30666,8 +31090,8 @@ function Sparkline({
|
|
|
30666
31090
|
const drawing = React93.useMemo(() => {
|
|
30667
31091
|
const { paths } = geometry;
|
|
30668
31092
|
if (!paths) return null;
|
|
30669
|
-
return /* @__PURE__ */
|
|
30670
|
-
/* @__PURE__ */
|
|
31093
|
+
return /* @__PURE__ */ jsxs69("div", { className: Sparkline_default.drawing, "aria-hidden": "true", children: [
|
|
31094
|
+
/* @__PURE__ */ jsxs69(
|
|
30671
31095
|
"svg",
|
|
30672
31096
|
{
|
|
30673
31097
|
className: Sparkline_default.svg,
|
|
@@ -30675,18 +31099,18 @@ function Sparkline({
|
|
|
30675
31099
|
preserveAspectRatio: "none",
|
|
30676
31100
|
"aria-hidden": "true",
|
|
30677
31101
|
children: [
|
|
30678
|
-
variant === "area" && paths.area ? /* @__PURE__ */
|
|
30679
|
-
/* @__PURE__ */
|
|
30680
|
-
/* @__PURE__ */
|
|
30681
|
-
/* @__PURE__ */
|
|
31102
|
+
variant === "area" && paths.area ? /* @__PURE__ */ jsxs69(Fragment46, { children: [
|
|
31103
|
+
/* @__PURE__ */ jsx89("defs", { children: /* @__PURE__ */ jsxs69("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
31104
|
+
/* @__PURE__ */ jsx89("stop", { offset: "0", className: Sparkline_default.fadeTop }),
|
|
31105
|
+
/* @__PURE__ */ jsx89("stop", { offset: "1", className: Sparkline_default.fadeBottom })
|
|
30682
31106
|
] }) }),
|
|
30683
|
-
/* @__PURE__ */
|
|
31107
|
+
/* @__PURE__ */ jsx89("path", { className: Sparkline_default.area, d: paths.area, fill: `url(#${gradientId})` })
|
|
30684
31108
|
] }) : null,
|
|
30685
|
-
paths.line ? /* @__PURE__ */
|
|
31109
|
+
paths.line ? /* @__PURE__ */ jsx89("path", { className: Sparkline_default.line, d: paths.line }) : null
|
|
30686
31110
|
]
|
|
30687
31111
|
}
|
|
30688
31112
|
),
|
|
30689
|
-
paths.lone.map((i) => /* @__PURE__ */
|
|
31113
|
+
paths.lone.map((i) => /* @__PURE__ */ jsx89(
|
|
30690
31114
|
"span",
|
|
30691
31115
|
{
|
|
30692
31116
|
className: Sparkline_default.lone,
|
|
@@ -30717,7 +31141,7 @@ function Sparkline({
|
|
|
30717
31141
|
const layoutAttr = compact ? layout : void 0;
|
|
30718
31142
|
const plotNode = plotRef.current;
|
|
30719
31143
|
const tooltipPoint = active === null || !point ? null : pointer ?? (plotNode ? { x: x(index) * plotNode.offsetWidth, y: plotNode.offsetHeight / 2 } : null);
|
|
30720
|
-
return /* @__PURE__ */
|
|
31144
|
+
return /* @__PURE__ */ jsxs69(
|
|
30721
31145
|
"div",
|
|
30722
31146
|
{
|
|
30723
31147
|
...rest,
|
|
@@ -30729,20 +31153,20 @@ function Sparkline({
|
|
|
30729
31153
|
"data-size": compact ? "xs" : void 0,
|
|
30730
31154
|
"aria-busy": loading || void 0,
|
|
30731
31155
|
children: [
|
|
30732
|
-
compact ? null : /* @__PURE__ */
|
|
30733
|
-
/* @__PURE__ */
|
|
30734
|
-
/* @__PURE__ */
|
|
30735
|
-
/* @__PURE__ */
|
|
31156
|
+
compact ? null : /* @__PURE__ */ jsxs69(Fragment46, { children: [
|
|
31157
|
+
/* @__PURE__ */ jsxs69("div", { className: Sparkline_default.head, children: [
|
|
31158
|
+
/* @__PURE__ */ jsx89("span", { className: Sparkline_default.label, children: label }),
|
|
31159
|
+
/* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, className: Sparkline_default.date, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "text", size: "s", className: Sparkline_default.dateSkeleton }) : headDate })
|
|
30736
31160
|
] }),
|
|
30737
|
-
/* @__PURE__ */
|
|
30738
|
-
/* @__PURE__ */
|
|
30739
|
-
delta !== null ? /* @__PURE__ */
|
|
30740
|
-
/* @__PURE__ */
|
|
31161
|
+
/* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "block", className: Sparkline_default.valueSkeleton }) : /* @__PURE__ */ jsxs69("div", { className: Sparkline_default.valueRow, children: [
|
|
31162
|
+
/* @__PURE__ */ jsx89("span", { className: Sparkline_default.value, "data-empty": restValue === null || void 0, children: atRest ? /* @__PURE__ */ jsx89(RollingNumber, { children: headValue }) : headValue }),
|
|
31163
|
+
delta !== null ? /* @__PURE__ */ jsxs69(Badge.Root, { tone: delta < 0 ? "danger" : "success", className: Sparkline_default.change, children: [
|
|
31164
|
+
/* @__PURE__ */ jsx89(Badge.Icon, { className: Sparkline_default.trend, "data-down": delta < 0 || void 0, children: /* @__PURE__ */ jsx89(Icon, { name: "status.trendUp" }) }),
|
|
30741
31165
|
`${delta > 0 ? "+" : delta < 0 ? "\u2212" : ""}${PERCENT.format(Math.abs(delta))}%`
|
|
30742
31166
|
] }) : null
|
|
30743
31167
|
] }) })
|
|
30744
31168
|
] }),
|
|
30745
|
-
/* @__PURE__ */
|
|
31169
|
+
/* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "block", className: Sparkline_default.plotSkeleton }) : /* @__PURE__ */ jsxs69(
|
|
30746
31170
|
"div",
|
|
30747
31171
|
{
|
|
30748
31172
|
ref: plotRef,
|
|
@@ -30779,7 +31203,7 @@ function Sparkline({
|
|
|
30779
31203
|
},
|
|
30780
31204
|
onBlur: () => setActive(null),
|
|
30781
31205
|
children: [
|
|
30782
|
-
geometry.reference !== null ? /* @__PURE__ */
|
|
31206
|
+
geometry.reference !== null ? /* @__PURE__ */ jsx89(
|
|
30783
31207
|
"span",
|
|
30784
31208
|
{
|
|
30785
31209
|
className: Sparkline_default.reference,
|
|
@@ -30787,15 +31211,15 @@ function Sparkline({
|
|
|
30787
31211
|
"aria-hidden": "true"
|
|
30788
31212
|
}
|
|
30789
31213
|
) : null,
|
|
30790
|
-
/* @__PURE__ */
|
|
30791
|
-
/* @__PURE__ */
|
|
31214
|
+
/* @__PURE__ */ jsx89(RegionSwap, { state: version, fill: true, children: bars ? /* @__PURE__ */ jsxs69("div", { className: Sparkline_default.bars, "aria-hidden": "true", children: [
|
|
31215
|
+
/* @__PURE__ */ jsx89(
|
|
30792
31216
|
"span",
|
|
30793
31217
|
{
|
|
30794
31218
|
className: Sparkline_default.baseline,
|
|
30795
31219
|
style: { "--sparkline-zero": geometry.zero }
|
|
30796
31220
|
}
|
|
30797
31221
|
),
|
|
30798
|
-
data.map((p, i) => /* @__PURE__ */
|
|
31222
|
+
data.map((p, i) => /* @__PURE__ */ jsx89(
|
|
30799
31223
|
"span",
|
|
30800
31224
|
{
|
|
30801
31225
|
className: Sparkline_default.slot,
|
|
@@ -30803,7 +31227,7 @@ function Sparkline({
|
|
|
30803
31227
|
current: i === index || void 0,
|
|
30804
31228
|
quiet: (active !== null || highlight !== void 0) && i !== index ? true : void 0
|
|
30805
31229
|
}),
|
|
30806
|
-
children: p.value === null ? null : /* @__PURE__ */
|
|
31230
|
+
children: p.value === null ? null : /* @__PURE__ */ jsx89(
|
|
30807
31231
|
"span",
|
|
30808
31232
|
{
|
|
30809
31233
|
className: Sparkline_default.bar,
|
|
@@ -30818,7 +31242,7 @@ function Sparkline({
|
|
|
30818
31242
|
i
|
|
30819
31243
|
))
|
|
30820
31244
|
] }) : drawing }),
|
|
30821
|
-
point && !bars ? /* @__PURE__ */
|
|
31245
|
+
point && !bars ? /* @__PURE__ */ jsxs69(
|
|
30822
31246
|
"span",
|
|
30823
31247
|
{
|
|
30824
31248
|
className: Sparkline_default.cursor,
|
|
@@ -30829,8 +31253,8 @@ function Sparkline({
|
|
|
30829
31253
|
"--sparkline-y": shownValue === null ? 0.5 : y(shownValue)
|
|
30830
31254
|
},
|
|
30831
31255
|
children: [
|
|
30832
|
-
/* @__PURE__ */
|
|
30833
|
-
/* @__PURE__ */
|
|
31256
|
+
/* @__PURE__ */ jsx89("span", { className: Sparkline_default.guide }),
|
|
31257
|
+
/* @__PURE__ */ jsx89("span", { className: Sparkline_default.dot, "data-empty": shownValue === null || void 0 })
|
|
30834
31258
|
]
|
|
30835
31259
|
}
|
|
30836
31260
|
) : null
|
|
@@ -30839,16 +31263,16 @@ function Sparkline({
|
|
|
30839
31263
|
) }),
|
|
30840
31264
|
reference !== void 0 ? (
|
|
30841
31265
|
// Hidden text still feeds `aria-describedby` and is not read twice in the page flow.
|
|
30842
|
-
/* @__PURE__ */
|
|
31266
|
+
/* @__PURE__ */ jsx89("span", { id: referenceId, hidden: true, children: formatLabel(labels.reference, { value: formatValue(reference) }) })
|
|
30843
31267
|
) : null,
|
|
30844
|
-
/* @__PURE__ */
|
|
31268
|
+
/* @__PURE__ */ jsx89(
|
|
30845
31269
|
ChartTooltip,
|
|
30846
31270
|
{
|
|
30847
31271
|
anchorRef: plotRef,
|
|
30848
31272
|
point: tooltipPoint,
|
|
30849
31273
|
label: point?.label,
|
|
30850
31274
|
onDismiss: () => setActive(null),
|
|
30851
|
-
children: /* @__PURE__ */
|
|
31275
|
+
children: /* @__PURE__ */ jsx89("span", { className: Sparkline_default.tooltipValue, children: valueText })
|
|
30852
31276
|
}
|
|
30853
31277
|
)
|
|
30854
31278
|
]
|
|
@@ -30873,7 +31297,7 @@ var Stepper_default = {
|
|
|
30873
31297
|
};
|
|
30874
31298
|
|
|
30875
31299
|
// src/components/stepper/Stepper.tsx
|
|
30876
|
-
import { jsx as
|
|
31300
|
+
import { jsx as jsx90, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
30877
31301
|
var STEPPER_LABELS = {
|
|
30878
31302
|
completed: "\u043F\u0440\u043E\u0439\u0434\u0435\u043D",
|
|
30879
31303
|
danger: "\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u044F"
|
|
@@ -30919,11 +31343,11 @@ function StepperRoot({
|
|
|
30919
31343
|
const index = nextIndex;
|
|
30920
31344
|
nextIndex += 1;
|
|
30921
31345
|
items.push(
|
|
30922
|
-
/* @__PURE__ */
|
|
31346
|
+
/* @__PURE__ */ jsx90(StepperIndexContext.Provider, { value: index, children: child }, child.key)
|
|
30923
31347
|
);
|
|
30924
31348
|
}
|
|
30925
|
-
return /* @__PURE__ */
|
|
30926
|
-
/* @__PURE__ */
|
|
31349
|
+
return /* @__PURE__ */ jsx90(StepperRootProvider, { value: contextValue, children: tier.provide(
|
|
31350
|
+
/* @__PURE__ */ jsx90(
|
|
30927
31351
|
"ol",
|
|
30928
31352
|
{
|
|
30929
31353
|
role: "list",
|
|
@@ -30952,9 +31376,9 @@ function StepperItem({
|
|
|
30952
31376
|
const status = statusProp ?? deriveStatus(index, value);
|
|
30953
31377
|
const itemContext = React94.useMemo(() => ({ index, status }), [index, status]);
|
|
30954
31378
|
const spokenStatus = status === "completed" ? labels.completed : status === "danger" ? labels.danger : null;
|
|
30955
|
-
return /* @__PURE__ */
|
|
30956
|
-
/* @__PURE__ */
|
|
30957
|
-
/* @__PURE__ */
|
|
31379
|
+
return /* @__PURE__ */ jsx90(StepperItemProvider, { value: itemContext, children: /* @__PURE__ */ jsxs70("li", { className: Stepper_default.item, children: [
|
|
31380
|
+
/* @__PURE__ */ jsx90("span", { className: Stepper_default.separator, "aria-hidden": "true", children: /* @__PURE__ */ jsx90(Icon, { name: "nav.chevronRight", strokeWidth: 2 }) }),
|
|
31381
|
+
/* @__PURE__ */ jsxs70(
|
|
30958
31382
|
"button",
|
|
30959
31383
|
{
|
|
30960
31384
|
...rest,
|
|
@@ -30974,8 +31398,8 @@ function StepperItem({
|
|
|
30974
31398
|
},
|
|
30975
31399
|
children: [
|
|
30976
31400
|
children,
|
|
30977
|
-
spokenStatus === null ? null : /* @__PURE__ */
|
|
30978
|
-
arrows && orientation === "vertical" ? /* @__PURE__ */
|
|
31401
|
+
spokenStatus === null ? null : /* @__PURE__ */ jsx90(VisuallyHidden, { children: `, ${spokenStatus}` }),
|
|
31402
|
+
arrows && orientation === "vertical" ? /* @__PURE__ */ jsx90("span", { className: Stepper_default.arrow, "aria-hidden": "true", children: /* @__PURE__ */ jsx90(Icon, { name: "nav.chevronRight", strokeWidth: 2 }) }) : null
|
|
30979
31403
|
]
|
|
30980
31404
|
}
|
|
30981
31405
|
)
|
|
@@ -30983,34 +31407,34 @@ function StepperItem({
|
|
|
30983
31407
|
}
|
|
30984
31408
|
StepperItem.displayName = "Stepper.Item";
|
|
30985
31409
|
function statusGlyph(status, index) {
|
|
30986
|
-
if (status === "completed") return /* @__PURE__ */
|
|
30987
|
-
if (status === "danger") return /* @__PURE__ */
|
|
31410
|
+
if (status === "completed") return /* @__PURE__ */ jsx90(Icon, { name: "action.check", strokeWidth: 2 });
|
|
31411
|
+
if (status === "danger") return /* @__PURE__ */ jsx90(Icon, { name: "status.danger" });
|
|
30988
31412
|
return index + 1;
|
|
30989
31413
|
}
|
|
30990
31414
|
function StepperIndicator({ children, className, ...rest }) {
|
|
30991
31415
|
const { status, index } = useStepperItemContext();
|
|
30992
|
-
return /* @__PURE__ */
|
|
31416
|
+
return /* @__PURE__ */ jsx90(
|
|
30993
31417
|
"span",
|
|
30994
31418
|
{
|
|
30995
31419
|
...rest,
|
|
30996
31420
|
className: cx(Stepper_default.indicator, className),
|
|
30997
31421
|
"data-status": status,
|
|
30998
31422
|
"aria-hidden": "true",
|
|
30999
|
-
children: /* @__PURE__ */
|
|
31423
|
+
children: /* @__PURE__ */ jsx90(GlyphSwap, { children: children ?? statusGlyph(status, index) })
|
|
31000
31424
|
}
|
|
31001
31425
|
);
|
|
31002
31426
|
}
|
|
31003
31427
|
StepperIndicator.displayName = "Stepper.Indicator";
|
|
31004
31428
|
function StepperContent({ className, ...rest }) {
|
|
31005
|
-
return /* @__PURE__ */
|
|
31429
|
+
return /* @__PURE__ */ jsx90("span", { ...rest, className: cx(Stepper_default.content, className) });
|
|
31006
31430
|
}
|
|
31007
31431
|
StepperContent.displayName = "Stepper.Content";
|
|
31008
31432
|
function StepperTitle({ className, ...rest }) {
|
|
31009
|
-
return /* @__PURE__ */
|
|
31433
|
+
return /* @__PURE__ */ jsx90("span", { ...rest, className: cx(Stepper_default.title, className) });
|
|
31010
31434
|
}
|
|
31011
31435
|
StepperTitle.displayName = "Stepper.Title";
|
|
31012
31436
|
function StepperDescription({ className, ...rest }) {
|
|
31013
|
-
return /* @__PURE__ */
|
|
31437
|
+
return /* @__PURE__ */ jsx90("span", { ...rest, className: cx(Stepper_default.description, className) });
|
|
31014
31438
|
}
|
|
31015
31439
|
StepperDescription.displayName = "Stepper.Description";
|
|
31016
31440
|
var Stepper = {
|
|
@@ -31030,7 +31454,7 @@ var Switch_default = {
|
|
|
31030
31454
|
};
|
|
31031
31455
|
|
|
31032
31456
|
// src/components/switch/Switch.tsx
|
|
31033
|
-
import { Fragment as
|
|
31457
|
+
import { Fragment as Fragment47, jsx as jsx91, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
31034
31458
|
var SWITCH_LABELS = { optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" };
|
|
31035
31459
|
function SwitchRoot({
|
|
31036
31460
|
id,
|
|
@@ -31072,7 +31496,7 @@ function SwitchRoot({
|
|
|
31072
31496
|
}
|
|
31073
31497
|
changes.track(next, outcome, { onResolve: () => setStored(next) });
|
|
31074
31498
|
};
|
|
31075
|
-
return /* @__PURE__ */
|
|
31499
|
+
return /* @__PURE__ */ jsx91(
|
|
31076
31500
|
ChoiceField,
|
|
31077
31501
|
{
|
|
31078
31502
|
ids,
|
|
@@ -31088,8 +31512,8 @@ function SwitchRoot({
|
|
|
31088
31512
|
hintTone,
|
|
31089
31513
|
error,
|
|
31090
31514
|
className: cx(Switch_default.root, className),
|
|
31091
|
-
control: /* @__PURE__ */
|
|
31092
|
-
/* @__PURE__ */
|
|
31515
|
+
control: /* @__PURE__ */ jsxs71(Fragment47, { children: [
|
|
31516
|
+
/* @__PURE__ */ jsx91(
|
|
31093
31517
|
"input",
|
|
31094
31518
|
{
|
|
31095
31519
|
...inputRest,
|
|
@@ -31109,13 +31533,13 @@ function SwitchRoot({
|
|
|
31109
31533
|
}
|
|
31110
31534
|
}
|
|
31111
31535
|
),
|
|
31112
|
-
/* @__PURE__ */
|
|
31536
|
+
/* @__PURE__ */ jsx91(
|
|
31113
31537
|
"span",
|
|
31114
31538
|
{
|
|
31115
31539
|
className: cx(choiceVisualClass, choiceTrackClass, Switch_default.track),
|
|
31116
31540
|
"data-loading": busy || void 0,
|
|
31117
31541
|
"aria-hidden": "true",
|
|
31118
|
-
children: /* @__PURE__ */
|
|
31542
|
+
children: /* @__PURE__ */ jsx91("span", { className: Switch_default.thumb, children: busy ? /* @__PURE__ */ jsx91(Spinner, { "aria-hidden": "true" }) : null })
|
|
31119
31543
|
}
|
|
31120
31544
|
)
|
|
31121
31545
|
] }),
|
|
@@ -31126,7 +31550,7 @@ function SwitchRoot({
|
|
|
31126
31550
|
SwitchRoot.displayName = "Switch.Root";
|
|
31127
31551
|
var takeNext2 = (_current, next) => next;
|
|
31128
31552
|
function SwitchLabel(props) {
|
|
31129
|
-
return /* @__PURE__ */
|
|
31553
|
+
return /* @__PURE__ */ jsx91(ChoiceLabel, { ...props });
|
|
31130
31554
|
}
|
|
31131
31555
|
SwitchLabel.displayName = "Switch.Label";
|
|
31132
31556
|
var Switch = {
|
|
@@ -31159,7 +31583,7 @@ var Tabs_default = {
|
|
|
31159
31583
|
};
|
|
31160
31584
|
|
|
31161
31585
|
// src/components/tabs/Tabs.tsx
|
|
31162
|
-
import { Fragment as
|
|
31586
|
+
import { Fragment as Fragment48, jsx as jsx92, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
31163
31587
|
var TABS_LABELS = {
|
|
31164
31588
|
remove: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \xAB{label}\xBB"
|
|
31165
31589
|
};
|
|
@@ -31230,14 +31654,14 @@ function TabsRoot({
|
|
|
31230
31654
|
...minItemWidth !== void 0 && { "--tabs-item-min": cssLength(minItemWidth) },
|
|
31231
31655
|
...maxItemWidth !== void 0 && { "--tabs-item-max": cssLength(maxItemWidth) }
|
|
31232
31656
|
};
|
|
31233
|
-
return /* @__PURE__ */
|
|
31657
|
+
return /* @__PURE__ */ jsx92(TabsProvider, { value: context, children: /* @__PURE__ */ jsx92(
|
|
31234
31658
|
"div",
|
|
31235
31659
|
{
|
|
31236
31660
|
...rest,
|
|
31237
31661
|
className: cx(fieldTierClass, Tabs_default.root, className),
|
|
31238
31662
|
style: { ...style, ...widths },
|
|
31239
31663
|
...toDataAttributes({ orientation, size, tone, "full-width": fullWidth }),
|
|
31240
|
-
children: tier.provide(/* @__PURE__ */
|
|
31664
|
+
children: tier.provide(/* @__PURE__ */ jsx92("div", { className: Tabs_default.layout, children }))
|
|
31241
31665
|
}
|
|
31242
31666
|
) });
|
|
31243
31667
|
}
|
|
@@ -31394,7 +31818,7 @@ function TabsList({ children, className, ref, ...rest }) {
|
|
|
31394
31818
|
// The strip paints the band; the list inside scrolls and fades over it, the band never fades.
|
|
31395
31819
|
// A column never scrolls sideways: no edge fade, or it would dim the folder where it joins
|
|
31396
31820
|
// the panel.
|
|
31397
|
-
/* @__PURE__ */
|
|
31821
|
+
/* @__PURE__ */ jsx92("div", { className: Tabs_default.strip, children: /* @__PURE__ */ jsxs72(
|
|
31398
31822
|
SwitcherScroller,
|
|
31399
31823
|
{
|
|
31400
31824
|
...rest,
|
|
@@ -31406,7 +31830,7 @@ function TabsList({ children, className, ref, ...rest }) {
|
|
|
31406
31830
|
"data-collapse": collapse,
|
|
31407
31831
|
onKeyDown: handleKeyDown,
|
|
31408
31832
|
children: [
|
|
31409
|
-
/* @__PURE__ */
|
|
31833
|
+
/* @__PURE__ */ jsx92(
|
|
31410
31834
|
"div",
|
|
31411
31835
|
{
|
|
31412
31836
|
ref: folderRef,
|
|
@@ -31416,7 +31840,7 @@ function TabsList({ children, className, ref, ...rest }) {
|
|
|
31416
31840
|
onTransitionEnd: endIndicatorGlide
|
|
31417
31841
|
}
|
|
31418
31842
|
),
|
|
31419
|
-
/* @__PURE__ */
|
|
31843
|
+
/* @__PURE__ */ jsx92(CollapseContext2.Provider, { value: collapse, children })
|
|
31420
31844
|
]
|
|
31421
31845
|
}
|
|
31422
31846
|
) })
|
|
@@ -31496,7 +31920,7 @@ function TabsItem({
|
|
|
31496
31920
|
() => setRemoving(false)
|
|
31497
31921
|
);
|
|
31498
31922
|
}
|
|
31499
|
-
return /* @__PURE__ */
|
|
31923
|
+
return /* @__PURE__ */ jsxs72(
|
|
31500
31924
|
"div",
|
|
31501
31925
|
{
|
|
31502
31926
|
className: Tabs_default.item,
|
|
@@ -31507,8 +31931,8 @@ function TabsItem({
|
|
|
31507
31931
|
removable: removable || void 0
|
|
31508
31932
|
}),
|
|
31509
31933
|
children: [
|
|
31510
|
-
/* @__PURE__ */
|
|
31511
|
-
/* @__PURE__ */
|
|
31934
|
+
/* @__PURE__ */ jsxs72(Tooltip.Root, { open: iconOnly && tooltipOpen, onOpenChange: setTooltipOpen, children: [
|
|
31935
|
+
/* @__PURE__ */ jsx92(Tooltip.Trigger, { children: /* @__PURE__ */ jsx92(
|
|
31512
31936
|
"button",
|
|
31513
31937
|
{
|
|
31514
31938
|
...rest,
|
|
@@ -31549,14 +31973,14 @@ function TabsItem({
|
|
|
31549
31973
|
event.preventDefault();
|
|
31550
31974
|
remove();
|
|
31551
31975
|
},
|
|
31552
|
-
children: /* @__PURE__ */
|
|
31976
|
+
children: /* @__PURE__ */ jsx92("span", { className: cx(Tabs_default.content, press_default.pressPartCompact), children: parts.provide(labelPlainText(children, TabsLabel)) })
|
|
31553
31977
|
}
|
|
31554
31978
|
) }),
|
|
31555
|
-
iconOnly ? /* @__PURE__ */
|
|
31979
|
+
iconOnly ? /* @__PURE__ */ jsx92(Tooltip.Content, { children: label }) : null
|
|
31556
31980
|
] }),
|
|
31557
31981
|
removable ? (
|
|
31558
31982
|
// Out of the tab order: the focused tab closes with Delete; the button is for the pointer.
|
|
31559
|
-
/* @__PURE__ */
|
|
31983
|
+
/* @__PURE__ */ jsx92("span", { className: Tabs_default.remove, children: /* @__PURE__ */ jsx92(
|
|
31560
31984
|
Button.Root,
|
|
31561
31985
|
{
|
|
31562
31986
|
variant: "ghost",
|
|
@@ -31566,7 +31990,7 @@ function TabsItem({
|
|
|
31566
31990
|
loading: removing,
|
|
31567
31991
|
"aria-label": formatLabel(labels.remove, { label: labelText }),
|
|
31568
31992
|
onClick: remove,
|
|
31569
|
-
children: /* @__PURE__ */
|
|
31993
|
+
children: /* @__PURE__ */ jsx92(Button.Icon, { children: /* @__PURE__ */ jsx92(Icon, { name: "action.close" }) })
|
|
31570
31994
|
}
|
|
31571
31995
|
) })
|
|
31572
31996
|
) : null
|
|
@@ -31576,15 +32000,15 @@ function TabsItem({
|
|
|
31576
32000
|
}
|
|
31577
32001
|
TabsItem.displayName = "Tabs.Item";
|
|
31578
32002
|
function TabsIcon({ children, className, ...rest }) {
|
|
31579
|
-
return /* @__PURE__ */
|
|
32003
|
+
return /* @__PURE__ */ jsx92("span", { className: cx(iconSlotClass, Tabs_default.icon, className), "aria-hidden": "true", ...rest, children });
|
|
31580
32004
|
}
|
|
31581
32005
|
TabsIcon.displayName = "Tabs.Icon";
|
|
31582
32006
|
function TabsLabel({ children, className, ...rest }) {
|
|
31583
32007
|
const id = useTextPartId("label");
|
|
31584
32008
|
const iconOnly = React95.useContext(CollapseContext2) === "icon";
|
|
31585
32009
|
const text = typeof children === "string" || typeof children === "number" ? String(children) : "";
|
|
31586
|
-
return /* @__PURE__ */
|
|
31587
|
-
/* @__PURE__ */
|
|
32010
|
+
return /* @__PURE__ */ jsxs72(Fragment48, { children: [
|
|
32011
|
+
/* @__PURE__ */ jsx92(
|
|
31588
32012
|
"span",
|
|
31589
32013
|
{
|
|
31590
32014
|
id,
|
|
@@ -31592,26 +32016,26 @@ function TabsLabel({ children, className, ...rest }) {
|
|
|
31592
32016
|
"data-text": text || void 0,
|
|
31593
32017
|
"aria-hidden": iconOnly || void 0,
|
|
31594
32018
|
...rest,
|
|
31595
|
-
children: /* @__PURE__ */
|
|
32019
|
+
children: /* @__PURE__ */ jsx92("span", { className: Tabs_default.labelText, children })
|
|
31596
32020
|
}
|
|
31597
32021
|
),
|
|
31598
|
-
iconOnly ? /* @__PURE__ */
|
|
32022
|
+
iconOnly ? /* @__PURE__ */ jsx92(VisuallyHidden, { children }) : null
|
|
31599
32023
|
] });
|
|
31600
32024
|
}
|
|
31601
32025
|
TabsLabel.displayName = "Tabs.Label";
|
|
31602
32026
|
function TabsCount({ color = "gray", children, className, ...rest }) {
|
|
31603
32027
|
const id = useTextPartId("count");
|
|
31604
|
-
return /* @__PURE__ */
|
|
32028
|
+
return /* @__PURE__ */ jsx92(Badge.Root, { ...rest, id, color, className: cx(Tabs_default.count, className), children });
|
|
31605
32029
|
}
|
|
31606
32030
|
TabsCount.displayName = "Tabs.Count";
|
|
31607
32031
|
function TabsDescription({ children, className, ...rest }) {
|
|
31608
32032
|
const id = useTextPartId("description");
|
|
31609
|
-
return /* @__PURE__ */
|
|
32033
|
+
return /* @__PURE__ */ jsx92("span", { id, className: cx(Tabs_default.description, className), ...rest, children });
|
|
31610
32034
|
}
|
|
31611
32035
|
TabsDescription.displayName = "Tabs.Description";
|
|
31612
32036
|
function TabsSeparator({ className, ...rest }) {
|
|
31613
32037
|
const { orientation } = useTabsContext();
|
|
31614
|
-
return /* @__PURE__ */
|
|
32038
|
+
return /* @__PURE__ */ jsx92(
|
|
31615
32039
|
Divider,
|
|
31616
32040
|
{
|
|
31617
32041
|
...rest,
|
|
@@ -31623,25 +32047,39 @@ function TabsSeparator({ className, ...rest }) {
|
|
|
31623
32047
|
);
|
|
31624
32048
|
}
|
|
31625
32049
|
TabsSeparator.displayName = "Tabs.Separator";
|
|
31626
|
-
function TabsPanel({ value, ...rest }) {
|
|
32050
|
+
function TabsPanel({ value, keepMounted = false, ...rest }) {
|
|
31627
32051
|
const { activeValue } = useTabsContext();
|
|
31628
|
-
|
|
31629
|
-
|
|
32052
|
+
const active = activeValue === value;
|
|
32053
|
+
const [opened, setOpened] = React95.useState(active);
|
|
32054
|
+
if (active && !opened) setOpened(true);
|
|
32055
|
+
if (!active && !(keepMounted && opened)) return null;
|
|
32056
|
+
return /* @__PURE__ */ jsx92(TabsPanelContent, { value, active, ...rest });
|
|
31630
32057
|
}
|
|
31631
32058
|
TabsPanel.displayName = "Tabs.Panel";
|
|
31632
|
-
function TabsPanelContent({
|
|
32059
|
+
function TabsPanelContent({
|
|
32060
|
+
value,
|
|
32061
|
+
active,
|
|
32062
|
+
children,
|
|
32063
|
+
className,
|
|
32064
|
+
ref,
|
|
32065
|
+
...rest
|
|
32066
|
+
}) {
|
|
31633
32067
|
const { rootId, registerPanel } = useTabsContext();
|
|
31634
32068
|
React95.useLayoutEffect(() => registerPanel(value), [registerPanel, value]);
|
|
31635
|
-
|
|
32069
|
+
const appear = useEnterOnAppear(active);
|
|
32070
|
+
const mergedRef = useMergedRefs(appear.ref, ref);
|
|
32071
|
+
return /* @__PURE__ */ jsx92(
|
|
31636
32072
|
"div",
|
|
31637
32073
|
{
|
|
31638
32074
|
...rest,
|
|
32075
|
+
ref: mergedRef,
|
|
31639
32076
|
role: "tabpanel",
|
|
31640
32077
|
id: panelId(rootId, value),
|
|
31641
32078
|
"aria-labelledby": tabId(rootId, value),
|
|
32079
|
+
hidden: !active || void 0,
|
|
31642
32080
|
tabIndex: 0,
|
|
31643
32081
|
className: cx(Tabs_default.panel, className),
|
|
31644
|
-
children: /* @__PURE__ */
|
|
32082
|
+
children: /* @__PURE__ */ jsx92("div", { className: cx(Tabs_default.panelContent, appear.entering && enterMotion_default.enterBase), children })
|
|
31645
32083
|
}
|
|
31646
32084
|
);
|
|
31647
32085
|
}
|
|
@@ -31692,7 +32130,7 @@ var TagSelect_default = {
|
|
|
31692
32130
|
};
|
|
31693
32131
|
|
|
31694
32132
|
// src/components/tag-select/TagOptionMenu.tsx
|
|
31695
|
-
import { Fragment as
|
|
32133
|
+
import { Fragment as Fragment49, jsx as jsx93, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
31696
32134
|
var TAG_COLORS = [
|
|
31697
32135
|
"gray",
|
|
31698
32136
|
"red",
|
|
@@ -31727,8 +32165,8 @@ function TagOptionMenu({
|
|
|
31727
32165
|
if (next && next !== label) onUpdate?.(value, { label: next });
|
|
31728
32166
|
if (!next) setDraft(label);
|
|
31729
32167
|
};
|
|
31730
|
-
return /* @__PURE__ */
|
|
31731
|
-
/* @__PURE__ */
|
|
32168
|
+
return /* @__PURE__ */ jsxs73(Popover.Root, { open, onOpenChange, children: [
|
|
32169
|
+
/* @__PURE__ */ jsx93(Popover.Trigger, { children: /* @__PURE__ */ jsx93(
|
|
31732
32170
|
Button.Root,
|
|
31733
32171
|
{
|
|
31734
32172
|
variant: "ghost",
|
|
@@ -31739,11 +32177,11 @@ function TagOptionMenu({
|
|
|
31739
32177
|
loading: pending || saving,
|
|
31740
32178
|
className: TagSelect_default.menuTrigger,
|
|
31741
32179
|
onMouseDown: (event) => event.preventDefault(),
|
|
31742
|
-
children: /* @__PURE__ */
|
|
32180
|
+
children: /* @__PURE__ */ jsx93(Button.Icon, { children: /* @__PURE__ */ jsx93(Icon, { name: "action.more" }) })
|
|
31743
32181
|
}
|
|
31744
32182
|
) }),
|
|
31745
|
-
/* @__PURE__ */
|
|
31746
|
-
onUpdate ? /* @__PURE__ */
|
|
32183
|
+
/* @__PURE__ */ jsx93(Popover.Content, { size: "s", flush: true, className: TagSelect_default.menuPanel, children: /* @__PURE__ */ jsxs73("div", { className: TagSelect_default.menuBody, children: [
|
|
32184
|
+
onUpdate ? /* @__PURE__ */ jsx93(Input.Root, { size: "s", children: /* @__PURE__ */ jsx93(Input.Wrapper, { children: /* @__PURE__ */ jsx93(
|
|
31747
32185
|
Input.Field,
|
|
31748
32186
|
{
|
|
31749
32187
|
autoFocus: true,
|
|
@@ -31759,7 +32197,7 @@ function TagOptionMenu({
|
|
|
31759
32197
|
}
|
|
31760
32198
|
}
|
|
31761
32199
|
) }) }) : null,
|
|
31762
|
-
onDelete ? /* @__PURE__ */
|
|
32200
|
+
onDelete ? /* @__PURE__ */ jsxs73(
|
|
31763
32201
|
Button.Root,
|
|
31764
32202
|
{
|
|
31765
32203
|
variant: "ghost",
|
|
@@ -31771,15 +32209,15 @@ function TagOptionMenu({
|
|
|
31771
32209
|
onDelete(value);
|
|
31772
32210
|
},
|
|
31773
32211
|
children: [
|
|
31774
|
-
/* @__PURE__ */
|
|
32212
|
+
/* @__PURE__ */ jsx93(Button.Icon, { children: /* @__PURE__ */ jsx93(Icon, { name: "action.delete" }) }),
|
|
31775
32213
|
labels.delete
|
|
31776
32214
|
]
|
|
31777
32215
|
}
|
|
31778
32216
|
) : null,
|
|
31779
|
-
onUpdate ? /* @__PURE__ */
|
|
31780
|
-
/* @__PURE__ */
|
|
31781
|
-
/* @__PURE__ */
|
|
31782
|
-
/* @__PURE__ */
|
|
32217
|
+
onUpdate ? /* @__PURE__ */ jsxs73(Fragment49, { children: [
|
|
32218
|
+
/* @__PURE__ */ jsx93(Divider, { className: menu_default.separator }),
|
|
32219
|
+
/* @__PURE__ */ jsx93("div", { className: cx(textRole_default.caption, menu_default.groupLabel), children: labels.colors }),
|
|
32220
|
+
/* @__PURE__ */ jsx93("div", { className: cx(fieldTierClass, menu_default.tier), "data-size": "s", children: TAG_COLORS.map((hue) => /* @__PURE__ */ jsxs73(
|
|
31783
32221
|
"button",
|
|
31784
32222
|
{
|
|
31785
32223
|
type: "button",
|
|
@@ -31787,8 +32225,8 @@ function TagOptionMenu({
|
|
|
31787
32225
|
className: cx(menu_default.item, TagSelect_default.colorRow),
|
|
31788
32226
|
onClick: () => onUpdate(value, { color: hue }),
|
|
31789
32227
|
children: [
|
|
31790
|
-
/* @__PURE__ */
|
|
31791
|
-
/* @__PURE__ */
|
|
32228
|
+
/* @__PURE__ */ jsx93(Badge.Root, { color: hue, children: labels.colorNames[hue] }),
|
|
32229
|
+
/* @__PURE__ */ jsx93("span", { className: cx(menu_default.check, TagSelect_default.colorCheck), "aria-hidden": "true", children: /* @__PURE__ */ jsx93(Icon, { name: "action.check" }) })
|
|
31792
32230
|
]
|
|
31793
32231
|
},
|
|
31794
32232
|
hue
|
|
@@ -31846,7 +32284,7 @@ function useChipOverflow({
|
|
|
31846
32284
|
|
|
31847
32285
|
// src/components/tag-select/VirtualOptions.tsx
|
|
31848
32286
|
import * as React98 from "react";
|
|
31849
|
-
import { Fragment as
|
|
32287
|
+
import { Fragment as Fragment51, jsx as jsx94, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
31850
32288
|
var ONE_GROUP3 = () => 0;
|
|
31851
32289
|
function VirtualOptions({
|
|
31852
32290
|
count,
|
|
@@ -31896,10 +32334,10 @@ function VirtualOptions({
|
|
|
31896
32334
|
[scrollRef, offset, startOf]
|
|
31897
32335
|
);
|
|
31898
32336
|
const laid = rowGaps(virtual);
|
|
31899
|
-
const spacer = (key, height) => height > 0 ? /* @__PURE__ */
|
|
31900
|
-
return /* @__PURE__ */
|
|
31901
|
-
/* @__PURE__ */
|
|
31902
|
-
laid.rows.map(({ index, gap }) => /* @__PURE__ */
|
|
32337
|
+
const spacer = (key, height) => height > 0 ? /* @__PURE__ */ jsx94("div", { className: TagSelect_default.spacer, style: { height }, "aria-hidden": "true" }, key) : null;
|
|
32338
|
+
return /* @__PURE__ */ jsxs74(Fragment51, { children: [
|
|
32339
|
+
/* @__PURE__ */ jsx94("div", { ref: startRef, "aria-hidden": "true" }),
|
|
32340
|
+
laid.rows.map(({ index, gap }) => /* @__PURE__ */ jsxs74(React98.Fragment, { children: [
|
|
31903
32341
|
spacer("gap", gap),
|
|
31904
32342
|
renderOption(index, virtual.measure(index))
|
|
31905
32343
|
] }, getKey(index))),
|
|
@@ -31908,7 +32346,7 @@ function VirtualOptions({
|
|
|
31908
32346
|
}
|
|
31909
32347
|
|
|
31910
32348
|
// src/components/tag-select/TagSelect.tsx
|
|
31911
|
-
import { Fragment as
|
|
32349
|
+
import { Fragment as Fragment52, jsx as jsx95, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
31912
32350
|
var TAG_SELECT_LABELS = {
|
|
31913
32351
|
panelHint: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438\u043B\u0438 \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439",
|
|
31914
32352
|
create: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C",
|
|
@@ -32280,19 +32718,19 @@ function TagSelect({
|
|
|
32280
32718
|
const pickOption = () => {
|
|
32281
32719
|
if (!option.disabled) pick(option.value);
|
|
32282
32720
|
};
|
|
32283
|
-
const content = /* @__PURE__ */
|
|
32284
|
-
/* @__PURE__ */
|
|
32285
|
-
/* @__PURE__ */
|
|
32721
|
+
const content = /* @__PURE__ */ jsxs75(Fragment52, { children: [
|
|
32722
|
+
/* @__PURE__ */ jsx95(Checkbox.Indicator, { checked: isSelected, disabled: option.disabled, size: stepDown(size) }),
|
|
32723
|
+
/* @__PURE__ */ jsx95(
|
|
32286
32724
|
Badge.Root,
|
|
32287
32725
|
{
|
|
32288
32726
|
color: option.color ?? fallbackColor,
|
|
32289
32727
|
disabled: option.disabled,
|
|
32290
32728
|
className: TagSelect_default.chip,
|
|
32291
|
-
children: /* @__PURE__ */
|
|
32729
|
+
children: /* @__PURE__ */ jsx95("span", { className: TagSelect_default.chipLabel, children: option.label })
|
|
32292
32730
|
}
|
|
32293
32731
|
)
|
|
32294
32732
|
] });
|
|
32295
|
-
return /* @__PURE__ */
|
|
32733
|
+
return /* @__PURE__ */ jsx95(
|
|
32296
32734
|
OptionRow,
|
|
32297
32735
|
{
|
|
32298
32736
|
id: optionDomId(listboxId, option.value),
|
|
@@ -32308,8 +32746,8 @@ function TagSelect({
|
|
|
32308
32746
|
ref: windowed?.measure,
|
|
32309
32747
|
posInSet: windowed ? windowed.index + 1 + (showCreate ? 1 : 0) : void 0,
|
|
32310
32748
|
setSize: windowed ? setSize : void 0,
|
|
32311
|
-
children: manageable ? /* @__PURE__ */
|
|
32312
|
-
/* @__PURE__ */
|
|
32749
|
+
children: manageable ? /* @__PURE__ */ jsxs75(Fragment52, { children: [
|
|
32750
|
+
/* @__PURE__ */ jsx95(
|
|
32313
32751
|
"button",
|
|
32314
32752
|
{
|
|
32315
32753
|
type: "button",
|
|
@@ -32323,7 +32761,7 @@ function TagSelect({
|
|
|
32323
32761
|
children: content
|
|
32324
32762
|
}
|
|
32325
32763
|
),
|
|
32326
|
-
option.disabled ? null : /* @__PURE__ */
|
|
32764
|
+
option.disabled ? null : /* @__PURE__ */ jsx95(
|
|
32327
32765
|
TagOptionMenu,
|
|
32328
32766
|
{
|
|
32329
32767
|
value: option.value,
|
|
@@ -32345,7 +32783,7 @@ function TagSelect({
|
|
|
32345
32783
|
);
|
|
32346
32784
|
};
|
|
32347
32785
|
return tier.provide(
|
|
32348
|
-
/* @__PURE__ */
|
|
32786
|
+
/* @__PURE__ */ jsxs75(
|
|
32349
32787
|
FieldFrame,
|
|
32350
32788
|
{
|
|
32351
32789
|
...rest,
|
|
@@ -32361,7 +32799,7 @@ function TagSelect({
|
|
|
32361
32799
|
optionalLabel: labels.optional,
|
|
32362
32800
|
className,
|
|
32363
32801
|
children: [
|
|
32364
|
-
/* @__PURE__ */
|
|
32802
|
+
/* @__PURE__ */ jsxs75(
|
|
32365
32803
|
"div",
|
|
32366
32804
|
{
|
|
32367
32805
|
ref: triggerRef,
|
|
@@ -32390,7 +32828,7 @@ function TagSelect({
|
|
|
32390
32828
|
"focus-ring": focusRing
|
|
32391
32829
|
}),
|
|
32392
32830
|
children: [
|
|
32393
|
-
/* @__PURE__ */
|
|
32831
|
+
/* @__PURE__ */ jsxs75(
|
|
32394
32832
|
ScrollContainer,
|
|
32395
32833
|
{
|
|
32396
32834
|
ref: chipsRef,
|
|
@@ -32398,7 +32836,7 @@ function TagSelect({
|
|
|
32398
32836
|
lock: !expanded,
|
|
32399
32837
|
className: TagSelect_default.chips,
|
|
32400
32838
|
children: [
|
|
32401
|
-
visibleChips.map((chip, index) => /* @__PURE__ */
|
|
32839
|
+
visibleChips.map((chip, index) => /* @__PURE__ */ jsx95(
|
|
32402
32840
|
Badge.Root,
|
|
32403
32841
|
{
|
|
32404
32842
|
color: chip.color,
|
|
@@ -32413,14 +32851,14 @@ function TagSelect({
|
|
|
32413
32851
|
onMouseDown: (event) => {
|
|
32414
32852
|
if (event.target.closest("button")) event.preventDefault();
|
|
32415
32853
|
},
|
|
32416
|
-
children: /* @__PURE__ */
|
|
32854
|
+
children: /* @__PURE__ */ jsx95("span", { className: TagSelect_default.chipLabel, children: chip.label })
|
|
32417
32855
|
},
|
|
32418
32856
|
chip.value
|
|
32419
32857
|
)),
|
|
32420
32858
|
hiddenChips.length > 0 ? (
|
|
32421
32859
|
// A real button around the chip; the click bubbles to the field, which expands and
|
|
32422
32860
|
// opens the list.
|
|
32423
|
-
/* @__PURE__ */
|
|
32861
|
+
/* @__PURE__ */ jsx95(
|
|
32424
32862
|
"button",
|
|
32425
32863
|
{
|
|
32426
32864
|
type: "button",
|
|
@@ -32428,17 +32866,17 @@ function TagSelect({
|
|
|
32428
32866
|
disabled,
|
|
32429
32867
|
title: hiddenChips.map((chip) => chip.label).join(", "),
|
|
32430
32868
|
onClick: () => inputRef.current?.focus(),
|
|
32431
|
-
children: /* @__PURE__ */
|
|
32432
|
-
/* @__PURE__ */
|
|
32869
|
+
children: /* @__PURE__ */ jsxs75(Badge.Root, { color: "gray", disabled, className: TagSelect_default.chipMore, children: [
|
|
32870
|
+
/* @__PURE__ */ jsxs75("span", { "aria-hidden": "true", children: [
|
|
32433
32871
|
"+",
|
|
32434
32872
|
hiddenChips.length
|
|
32435
32873
|
] }),
|
|
32436
|
-
/* @__PURE__ */
|
|
32874
|
+
/* @__PURE__ */ jsx95(VisuallyHidden, { children: formatLabel(labels.more, { count: hiddenChips.length }) })
|
|
32437
32875
|
] })
|
|
32438
32876
|
}
|
|
32439
32877
|
)
|
|
32440
32878
|
) : null,
|
|
32441
|
-
/* @__PURE__ */
|
|
32879
|
+
/* @__PURE__ */ jsx95(
|
|
32442
32880
|
"input",
|
|
32443
32881
|
{
|
|
32444
32882
|
ref: inputRef,
|
|
@@ -32476,9 +32914,9 @@ function TagSelect({
|
|
|
32476
32914
|
]
|
|
32477
32915
|
}
|
|
32478
32916
|
),
|
|
32479
|
-
name ? selected.map((item) => /* @__PURE__ */
|
|
32480
|
-
/* @__PURE__ */
|
|
32481
|
-
/* @__PURE__ */
|
|
32917
|
+
name ? selected.map((item) => /* @__PURE__ */ jsx95("input", { type: "hidden", name, value: item, disabled }, item)) : null,
|
|
32918
|
+
/* @__PURE__ */ jsx95(VisuallyHidden, { live: "polite", children: announcement }),
|
|
32919
|
+
/* @__PURE__ */ jsx95(
|
|
32482
32920
|
MeasureRow,
|
|
32483
32921
|
{
|
|
32484
32922
|
ref: measureRef,
|
|
@@ -32487,11 +32925,11 @@ function TagSelect({
|
|
|
32487
32925
|
removeLabel: labels.remove
|
|
32488
32926
|
}
|
|
32489
32927
|
),
|
|
32490
|
-
/* @__PURE__ */
|
|
32928
|
+
/* @__PURE__ */ jsx95("span", { className: TagSelect_default.chevron, "aria-hidden": "true", children: /* @__PURE__ */ jsx95(Icon, { name: "nav.chevronDown" }) })
|
|
32491
32929
|
]
|
|
32492
32930
|
}
|
|
32493
32931
|
),
|
|
32494
|
-
/* @__PURE__ */
|
|
32932
|
+
/* @__PURE__ */ jsxs75(
|
|
32495
32933
|
FloatingPanel,
|
|
32496
32934
|
{
|
|
32497
32935
|
floating,
|
|
@@ -32506,8 +32944,8 @@ function TagSelect({
|
|
|
32506
32944
|
ref: scrollerRef,
|
|
32507
32945
|
className: cx(fieldTierClass, menu_default.tier, menu_default.menu, TagSelect_default.panel),
|
|
32508
32946
|
children: [
|
|
32509
|
-
labels.panelHint ? /* @__PURE__ */
|
|
32510
|
-
showCreate ? /* @__PURE__ */
|
|
32947
|
+
labels.panelHint ? /* @__PURE__ */ jsx95("div", { className: cx(textRole_default.caption, TagSelect_default.panelHint), children: labels.panelHint }) : null,
|
|
32948
|
+
showCreate ? /* @__PURE__ */ jsxs75(
|
|
32511
32949
|
OptionRow,
|
|
32512
32950
|
{
|
|
32513
32951
|
id: optionDomId(listboxId, CREATE_VALUE),
|
|
@@ -32520,13 +32958,13 @@ function TagSelect({
|
|
|
32520
32958
|
managed: false,
|
|
32521
32959
|
onPick: () => pick(CREATE_VALUE),
|
|
32522
32960
|
children: [
|
|
32523
|
-
/* @__PURE__ */
|
|
32524
|
-
/* @__PURE__ */
|
|
32525
|
-
/* @__PURE__ */
|
|
32961
|
+
/* @__PURE__ */ jsx95("span", { className: TagSelect_default.createIcon, "aria-hidden": "true", children: /* @__PURE__ */ jsx95(Icon, { name: "action.add" }) }),
|
|
32962
|
+
/* @__PURE__ */ jsx95("span", { className: TagSelect_default.createLabel, children: labels.create }),
|
|
32963
|
+
/* @__PURE__ */ jsx95(Badge.Root, { color: fallbackColor, className: TagSelect_default.chip, children: /* @__PURE__ */ jsx95("span", { className: TagSelect_default.chipLabel, children: inputTrim }) })
|
|
32526
32964
|
]
|
|
32527
32965
|
}
|
|
32528
32966
|
) : null,
|
|
32529
|
-
virtualized ? /* @__PURE__ */
|
|
32967
|
+
virtualized ? /* @__PURE__ */ jsx95(
|
|
32530
32968
|
VirtualOptions,
|
|
32531
32969
|
{
|
|
32532
32970
|
ref: virtualRef,
|
|
@@ -32599,7 +33037,7 @@ function OptionRow({
|
|
|
32599
33037
|
...toDataAttributes({ value, highlighted, selected, disabled, pending })
|
|
32600
33038
|
};
|
|
32601
33039
|
if (managed) {
|
|
32602
|
-
return /* @__PURE__ */
|
|
33040
|
+
return /* @__PURE__ */ jsx95(
|
|
32603
33041
|
"div",
|
|
32604
33042
|
{
|
|
32605
33043
|
...props,
|
|
@@ -32609,7 +33047,7 @@ function OptionRow({
|
|
|
32609
33047
|
}
|
|
32610
33048
|
);
|
|
32611
33049
|
}
|
|
32612
|
-
return /* @__PURE__ */
|
|
33050
|
+
return /* @__PURE__ */ jsx95(
|
|
32613
33051
|
"button",
|
|
32614
33052
|
{
|
|
32615
33053
|
type: "button",
|
|
@@ -32633,8 +33071,8 @@ var MeasureRow = React99.memo(function MeasureRow2({
|
|
|
32633
33071
|
return (
|
|
32634
33072
|
// The clip keeps the row (wider than the field with many tags) out of the scroll width of
|
|
32635
33073
|
// every scroller around the field; the row itself keeps its full width to measure.
|
|
32636
|
-
/* @__PURE__ */
|
|
32637
|
-
chips.map((chip) => /* @__PURE__ */
|
|
33074
|
+
/* @__PURE__ */ jsx95("div", { className: TagSelect_default.measureClip, "aria-hidden": true, inert: true, children: /* @__PURE__ */ jsxs75("div", { ref, className: TagSelect_default.measure, children: [
|
|
33075
|
+
chips.map((chip) => /* @__PURE__ */ jsx95(
|
|
32638
33076
|
Badge.Root,
|
|
32639
33077
|
{
|
|
32640
33078
|
color: chip.color,
|
|
@@ -32642,11 +33080,11 @@ var MeasureRow = React99.memo(function MeasureRow2({
|
|
|
32642
33080
|
className: TagSelect_default.chip,
|
|
32643
33081
|
labels: { remove: formatLabel(removeLabel, { label: chip.label }) },
|
|
32644
33082
|
onRemove: noop,
|
|
32645
|
-
children: /* @__PURE__ */
|
|
33083
|
+
children: /* @__PURE__ */ jsx95("span", { className: TagSelect_default.chipLabel, children: chip.label })
|
|
32646
33084
|
},
|
|
32647
33085
|
chip.value
|
|
32648
33086
|
)),
|
|
32649
|
-
/* @__PURE__ */
|
|
33087
|
+
/* @__PURE__ */ jsxs75(Badge.Root, { color: "gray", className: TagSelect_default.chipMore, children: [
|
|
32650
33088
|
"+",
|
|
32651
33089
|
Math.max(chips.length, 9)
|
|
32652
33090
|
] })
|
|
@@ -32681,11 +33119,11 @@ var Timeline_default = {
|
|
|
32681
33119
|
};
|
|
32682
33120
|
|
|
32683
33121
|
// src/components/timeline/Timeline.tsx
|
|
32684
|
-
import { Fragment as
|
|
33122
|
+
import { Fragment as Fragment53, jsx as jsx96, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
32685
33123
|
function TimelineRoot({ size: sizeProp, children, className, ...rest }) {
|
|
32686
33124
|
const tier = useHostTier(sizeProp);
|
|
32687
33125
|
return tier.provide(
|
|
32688
|
-
/* @__PURE__ */
|
|
33126
|
+
/* @__PURE__ */ jsx96(
|
|
32689
33127
|
"div",
|
|
32690
33128
|
{
|
|
32691
33129
|
...rest,
|
|
@@ -32711,7 +33149,7 @@ function TimelineGroup({ label, children, className, ...rest }) {
|
|
|
32711
33149
|
const labelId = React100.useId();
|
|
32712
33150
|
const hasLabel = hasContent(label);
|
|
32713
33151
|
const events = React100.Children.toArray(children);
|
|
32714
|
-
const items = events.map((child, index) => /* @__PURE__ */
|
|
33152
|
+
const items = events.map((child, index) => /* @__PURE__ */ jsx96(
|
|
32715
33153
|
EdgeContext.Provider,
|
|
32716
33154
|
{
|
|
32717
33155
|
value: {
|
|
@@ -32724,9 +33162,9 @@ function TimelineGroup({ label, children, className, ...rest }) {
|
|
|
32724
33162
|
},
|
|
32725
33163
|
React100.isValidElement(child) ? child.key : index
|
|
32726
33164
|
));
|
|
32727
|
-
return /* @__PURE__ */
|
|
32728
|
-
hasLabel ? /* @__PURE__ */
|
|
32729
|
-
/* @__PURE__ */
|
|
33165
|
+
return /* @__PURE__ */ jsxs76("div", { className: Timeline_default.group, children: [
|
|
33166
|
+
hasLabel ? /* @__PURE__ */ jsx96("div", { id: labelId, className: cx(GROUP_LABEL_ROLE[size], Timeline_default.groupLabel), children: label }) : null,
|
|
33167
|
+
/* @__PURE__ */ jsx96(
|
|
32730
33168
|
"ol",
|
|
32731
33169
|
{
|
|
32732
33170
|
role: "list",
|
|
@@ -32778,21 +33216,21 @@ function TimelineItem({
|
|
|
32778
33216
|
interactive: interactive || void 0
|
|
32779
33217
|
})
|
|
32780
33218
|
};
|
|
32781
|
-
const dot = /* @__PURE__ */
|
|
33219
|
+
const dot = /* @__PURE__ */ jsx96("span", { className: Timeline_default.dot, "aria-hidden": "true" });
|
|
32782
33220
|
const content = (parts) => {
|
|
32783
33221
|
const { parts: value, rest: text } = splitParts(parts, TimelineItemValue);
|
|
32784
|
-
return /* @__PURE__ */
|
|
33222
|
+
return /* @__PURE__ */ jsxs76(Fragment53, { children: [
|
|
32785
33223
|
dot,
|
|
32786
|
-
/* @__PURE__ */
|
|
33224
|
+
/* @__PURE__ */ jsx96("span", { className: Timeline_default.text, children: text }),
|
|
32787
33225
|
value
|
|
32788
33226
|
] });
|
|
32789
33227
|
};
|
|
32790
33228
|
let row;
|
|
32791
33229
|
if (asChild) {
|
|
32792
33230
|
const child = slotChild(children, "Timeline.Item");
|
|
32793
|
-
row = /* @__PURE__ */
|
|
33231
|
+
row = /* @__PURE__ */ jsx96(InteractiveElement, { ...rowProps, element: "slot", onClick, children: React100.cloneElement(child, void 0, content(child.props.children)) });
|
|
32794
33232
|
} else if (href) {
|
|
32795
|
-
row = /* @__PURE__ */
|
|
33233
|
+
row = /* @__PURE__ */ jsx96(
|
|
32796
33234
|
InteractiveElement,
|
|
32797
33235
|
{
|
|
32798
33236
|
...rowProps,
|
|
@@ -32806,21 +33244,21 @@ function TimelineItem({
|
|
|
32806
33244
|
}
|
|
32807
33245
|
);
|
|
32808
33246
|
} else if (onClick) {
|
|
32809
|
-
row = /* @__PURE__ */
|
|
33247
|
+
row = /* @__PURE__ */ jsx96(InteractiveElement, { ...rowProps, element: "button", onClick, children: content(children) });
|
|
32810
33248
|
} else {
|
|
32811
|
-
row = /* @__PURE__ */
|
|
33249
|
+
row = /* @__PURE__ */ jsx96(InteractiveElement, { ...rowProps, element: "static", children: content(children) });
|
|
32812
33250
|
}
|
|
32813
|
-
return /* @__PURE__ */
|
|
33251
|
+
return /* @__PURE__ */ jsx96("li", { className: Timeline_default.item, ...toDataAttributes(edgeAttributes(edge)), children: row });
|
|
32814
33252
|
}
|
|
32815
33253
|
TimelineItem.displayName = "Timeline.Item";
|
|
32816
33254
|
function TimelineItemTitle({ children, className, ...rest }) {
|
|
32817
|
-
return /* @__PURE__ */
|
|
33255
|
+
return /* @__PURE__ */ jsx96("span", { ...rest, className: cx(Timeline_default.title, className), children });
|
|
32818
33256
|
}
|
|
32819
33257
|
TimelineItemTitle.displayName = "Timeline.ItemTitle";
|
|
32820
33258
|
var ValueContext = React100.createContext(false);
|
|
32821
33259
|
function TimelineItemMeta({ children, className, ...rest }) {
|
|
32822
33260
|
const inValue = React100.useContext(ValueContext);
|
|
32823
|
-
return /* @__PURE__ */
|
|
33261
|
+
return /* @__PURE__ */ jsx96("span", { ...rest, className: cx(inValue ? Timeline_default.valueMeta : Timeline_default.meta, className), children });
|
|
32824
33262
|
}
|
|
32825
33263
|
TimelineItemMeta.displayName = "Timeline.ItemMeta";
|
|
32826
33264
|
function TimelineItemValue({
|
|
@@ -32829,19 +33267,19 @@ function TimelineItemValue({
|
|
|
32829
33267
|
className,
|
|
32830
33268
|
...rest
|
|
32831
33269
|
}) {
|
|
32832
|
-
return /* @__PURE__ */
|
|
33270
|
+
return /* @__PURE__ */ jsx96(
|
|
32833
33271
|
"span",
|
|
32834
33272
|
{
|
|
32835
33273
|
...rest,
|
|
32836
33274
|
className: cx(Timeline_default.value, textTone_default.tone, className),
|
|
32837
33275
|
...toDataAttributes({ tone }),
|
|
32838
|
-
children: /* @__PURE__ */
|
|
33276
|
+
children: /* @__PURE__ */ jsx96(ValueContext.Provider, { value: true, children })
|
|
32839
33277
|
}
|
|
32840
33278
|
);
|
|
32841
33279
|
}
|
|
32842
33280
|
TimelineItemValue.displayName = "Timeline.ItemValue";
|
|
32843
33281
|
function TimelineDescription({ className, ...rest }) {
|
|
32844
|
-
return /* @__PURE__ */
|
|
33282
|
+
return /* @__PURE__ */ jsx96("span", { className: cx(Timeline_default.gapTrailing, className), ...rest });
|
|
32845
33283
|
}
|
|
32846
33284
|
TimelineDescription.displayName = "Timeline.Description";
|
|
32847
33285
|
function TimelineGap({ tone = "neutral", children, className, ...rest }) {
|
|
@@ -32850,9 +33288,9 @@ function TimelineGap({ tone = "neutral", children, className, ...rest }) {
|
|
|
32850
33288
|
const caption = parts.filter((child) => !isDescription(child));
|
|
32851
33289
|
const description = parts.filter(isDescription);
|
|
32852
33290
|
const edge = React100.useContext(EdgeContext);
|
|
32853
|
-
return /* @__PURE__ */
|
|
32854
|
-
/* @__PURE__ */
|
|
32855
|
-
/* @__PURE__ */
|
|
33291
|
+
return /* @__PURE__ */ jsx96("li", { className: cx(Timeline_default.item, Timeline_default.gapItem), ...toDataAttributes(edgeAttributes(edge)), children: /* @__PURE__ */ jsxs76("div", { ...rest, className: cx(Timeline_default.gapRow, className), ...toDataAttributes({ tone }), children: [
|
|
33292
|
+
/* @__PURE__ */ jsx96("span", { className: Timeline_default.gapDot, "aria-hidden": "true" }),
|
|
33293
|
+
/* @__PURE__ */ jsx96("span", { className: Timeline_default.gapCaption, children: caption }),
|
|
32856
33294
|
description
|
|
32857
33295
|
] }) });
|
|
32858
33296
|
}
|
|
@@ -32887,7 +33325,7 @@ var VideoNote_default = {
|
|
|
32887
33325
|
};
|
|
32888
33326
|
|
|
32889
33327
|
// src/components/video-note/VideoNote.tsx
|
|
32890
|
-
import { jsx as
|
|
33328
|
+
import { jsx as jsx97, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
32891
33329
|
var VIDEO_NOTE_LABELS = {
|
|
32892
33330
|
player: "\u0412\u0438\u0434\u0435\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
|
|
32893
33331
|
play: "\u0412\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0432\u0438\u0434\u0435\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
|
|
@@ -32920,7 +33358,7 @@ function VideoNoteInner(props) {
|
|
|
32920
33358
|
}),
|
|
32921
33359
|
unplayed ? labels.unplayed : null
|
|
32922
33360
|
].filter(Boolean).join(", ");
|
|
32923
|
-
return /* @__PURE__ */
|
|
33361
|
+
return /* @__PURE__ */ jsxs77(
|
|
32924
33362
|
MediaPlayerRoot,
|
|
32925
33363
|
{
|
|
32926
33364
|
label: labels.player,
|
|
@@ -32928,7 +33366,7 @@ function VideoNoteInner(props) {
|
|
|
32928
33366
|
...rest,
|
|
32929
33367
|
className: cx(VideoNote_default.root, className),
|
|
32930
33368
|
children: [
|
|
32931
|
-
/* @__PURE__ */
|
|
33369
|
+
/* @__PURE__ */ jsxs77(
|
|
32932
33370
|
"div",
|
|
32933
33371
|
{
|
|
32934
33372
|
className: cx(press_default.press, VideoNote_default.circle),
|
|
@@ -32938,9 +33376,9 @@ function VideoNoteInner(props) {
|
|
|
32938
33376
|
"data-covered": covered || void 0,
|
|
32939
33377
|
"data-disabled": inactive || void 0,
|
|
32940
33378
|
children: [
|
|
32941
|
-
/* @__PURE__ */
|
|
32942
|
-
placeholder.mounted ? /* @__PURE__ */
|
|
32943
|
-
/* @__PURE__ */
|
|
33379
|
+
/* @__PURE__ */ jsxs77("span", { className: VideoNote_default.media, "aria-hidden": "true", children: [
|
|
33380
|
+
placeholder.mounted ? /* @__PURE__ */ jsx97(Skeleton, { shape: "block", className: VideoNote_default.fill }) : null,
|
|
33381
|
+
/* @__PURE__ */ jsx97(
|
|
32944
33382
|
"video",
|
|
32945
33383
|
{
|
|
32946
33384
|
ref: videoRef,
|
|
@@ -32956,8 +33394,8 @@ function VideoNoteInner(props) {
|
|
|
32956
33394
|
}
|
|
32957
33395
|
)
|
|
32958
33396
|
] }),
|
|
32959
|
-
/* @__PURE__ */
|
|
32960
|
-
/* @__PURE__ */
|
|
33397
|
+
/* @__PURE__ */ jsx97(Ring, { ref: ringRef, value: 0, live: true, track: "none", weight: "band", className: VideoNote_default.ring }),
|
|
33398
|
+
/* @__PURE__ */ jsx97(
|
|
32961
33399
|
"span",
|
|
32962
33400
|
{
|
|
32963
33401
|
className: VideoNote_default.hit,
|
|
@@ -32966,7 +33404,7 @@ function VideoNoteInner(props) {
|
|
|
32966
33404
|
onClick: inactive ? void 0 : player.toggle
|
|
32967
33405
|
}
|
|
32968
33406
|
),
|
|
32969
|
-
/* @__PURE__ */
|
|
33407
|
+
/* @__PURE__ */ jsx97("span", { className: VideoNote_default.play, "data-badge": "play", "data-shown": state !== "playing", children: /* @__PURE__ */ jsx97(
|
|
32970
33408
|
PlayDisk,
|
|
32971
33409
|
{
|
|
32972
33410
|
look: "shade",
|
|
@@ -32980,8 +33418,8 @@ function VideoNoteInner(props) {
|
|
|
32980
33418
|
describedBy: description ? descriptionId : void 0
|
|
32981
33419
|
}
|
|
32982
33420
|
) }),
|
|
32983
|
-
description ? /* @__PURE__ */
|
|
32984
|
-
shown !== null ? /* @__PURE__ */
|
|
33421
|
+
description ? /* @__PURE__ */ jsx97(VisuallyHidden, { id: descriptionId, children: description }) : null,
|
|
33422
|
+
shown !== null ? /* @__PURE__ */ jsxs77(
|
|
32985
33423
|
"span",
|
|
32986
33424
|
{
|
|
32987
33425
|
className: cx(textRole_default.caption, mediaPill_default.pill, VideoNote_default.duration),
|
|
@@ -32989,11 +33427,11 @@ function VideoNoteInner(props) {
|
|
|
32989
33427
|
"aria-hidden": "true",
|
|
32990
33428
|
children: [
|
|
32991
33429
|
formatClock(shown),
|
|
32992
|
-
/* @__PURE__ */
|
|
33430
|
+
/* @__PURE__ */ jsx97(UnplayedDot, { shown: unplayed })
|
|
32993
33431
|
]
|
|
32994
33432
|
}
|
|
32995
33433
|
) : null,
|
|
32996
|
-
transcript ? /* @__PURE__ */
|
|
33434
|
+
transcript ? /* @__PURE__ */ jsx97(
|
|
32997
33435
|
TranscriptButton,
|
|
32998
33436
|
{
|
|
32999
33437
|
transcript,
|
|
@@ -33011,7 +33449,7 @@ function VideoNoteInner(props) {
|
|
|
33011
33449
|
);
|
|
33012
33450
|
}
|
|
33013
33451
|
function VideoNote(props) {
|
|
33014
|
-
return /* @__PURE__ */
|
|
33452
|
+
return /* @__PURE__ */ jsx97(VideoNoteInner, { ...props }, props.src);
|
|
33015
33453
|
}
|
|
33016
33454
|
defineMessagePart(VideoNote, {
|
|
33017
33455
|
shell: "round",
|
|
@@ -33082,7 +33520,7 @@ async function getWaveform(source, bars = WAVEFORM_BARS) {
|
|
|
33082
33520
|
}
|
|
33083
33521
|
|
|
33084
33522
|
// src/components/voice-player/VoicePlayer.tsx
|
|
33085
|
-
import { jsx as
|
|
33523
|
+
import { jsx as jsx98, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
33086
33524
|
var RATES = [1, 1.5, 2];
|
|
33087
33525
|
var VOICE_PLAYER_LABELS = {
|
|
33088
33526
|
player: "\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
|
|
@@ -33120,7 +33558,7 @@ function Bars({
|
|
|
33120
33558
|
className,
|
|
33121
33559
|
ref
|
|
33122
33560
|
}) {
|
|
33123
|
-
return /* @__PURE__ */
|
|
33561
|
+
return /* @__PURE__ */ jsx98("span", { ref, className: cx(VoicePlayer_default.bars, className), "aria-hidden": "true", children: levels.map((level, i) => /* @__PURE__ */ jsx98(
|
|
33124
33562
|
"span",
|
|
33125
33563
|
{
|
|
33126
33564
|
className: VoicePlayer_default.bar,
|
|
@@ -33188,7 +33626,7 @@ function VoicePlayer(props) {
|
|
|
33188
33626
|
const shownTime = showElapsed ? position : total;
|
|
33189
33627
|
const rateText = formatRate(rate);
|
|
33190
33628
|
const open = transcript?.expanded ?? false;
|
|
33191
|
-
return /* @__PURE__ */
|
|
33629
|
+
return /* @__PURE__ */ jsxs78(
|
|
33192
33630
|
MediaPlayerRoot,
|
|
33193
33631
|
{
|
|
33194
33632
|
label: labels.player,
|
|
@@ -33196,7 +33634,7 @@ function VoicePlayer(props) {
|
|
|
33196
33634
|
...rest,
|
|
33197
33635
|
className: cx(VoicePlayer_default.root, className),
|
|
33198
33636
|
children: [
|
|
33199
|
-
/* @__PURE__ */
|
|
33637
|
+
/* @__PURE__ */ jsx98(
|
|
33200
33638
|
"audio",
|
|
33201
33639
|
{
|
|
33202
33640
|
ref: audioRef,
|
|
@@ -33206,8 +33644,8 @@ function VoicePlayer(props) {
|
|
|
33206
33644
|
...player.mediaEvents
|
|
33207
33645
|
}
|
|
33208
33646
|
),
|
|
33209
|
-
/* @__PURE__ */
|
|
33210
|
-
/* @__PURE__ */
|
|
33647
|
+
/* @__PURE__ */ jsxs78("div", { className: VoicePlayer_default.row, children: [
|
|
33648
|
+
/* @__PURE__ */ jsx98(
|
|
33211
33649
|
PlayDisk,
|
|
33212
33650
|
{
|
|
33213
33651
|
look: "solid",
|
|
@@ -33219,9 +33657,9 @@ function VoicePlayer(props) {
|
|
|
33219
33657
|
onToggle: player.toggle
|
|
33220
33658
|
}
|
|
33221
33659
|
),
|
|
33222
|
-
/* @__PURE__ */
|
|
33223
|
-
/* @__PURE__ */
|
|
33224
|
-
/* @__PURE__ */
|
|
33660
|
+
/* @__PURE__ */ jsxs78("div", { className: VoicePlayer_default.body, children: [
|
|
33661
|
+
/* @__PURE__ */ jsxs78("div", { className: VoicePlayer_default.waveLine, children: [
|
|
33662
|
+
/* @__PURE__ */ jsxs78(
|
|
33225
33663
|
"div",
|
|
33226
33664
|
{
|
|
33227
33665
|
ref: waveRef,
|
|
@@ -33244,12 +33682,12 @@ function VoicePlayer(props) {
|
|
|
33244
33682
|
onLostPointerCapture: endDrag,
|
|
33245
33683
|
onKeyDown: player.seekWithKey,
|
|
33246
33684
|
children: [
|
|
33247
|
-
/* @__PURE__ */
|
|
33248
|
-
/* @__PURE__ */
|
|
33685
|
+
/* @__PURE__ */ jsx98(Bars, { levels: bars }),
|
|
33686
|
+
/* @__PURE__ */ jsx98(Bars, { ref: playedRef, levels: bars, className: VoicePlayer_default.played })
|
|
33249
33687
|
]
|
|
33250
33688
|
}
|
|
33251
33689
|
),
|
|
33252
|
-
transcript ? /* @__PURE__ */
|
|
33690
|
+
transcript ? /* @__PURE__ */ jsx98(
|
|
33253
33691
|
TranscriptButton,
|
|
33254
33692
|
{
|
|
33255
33693
|
transcript,
|
|
@@ -33258,11 +33696,11 @@ function VoicePlayer(props) {
|
|
|
33258
33696
|
}
|
|
33259
33697
|
) : null
|
|
33260
33698
|
] }),
|
|
33261
|
-
/* @__PURE__ */
|
|
33262
|
-
/* @__PURE__ */
|
|
33263
|
-
/* @__PURE__ */
|
|
33264
|
-
unplayed ? /* @__PURE__ */
|
|
33265
|
-
/* @__PURE__ */
|
|
33699
|
+
/* @__PURE__ */ jsxs78("div", { className: cx(textRole_default.caption, VoicePlayer_default.meta), children: [
|
|
33700
|
+
/* @__PURE__ */ jsx98("span", { className: VoicePlayer_default.time, "aria-hidden": "true", children: formatClock(shownTime) }),
|
|
33701
|
+
/* @__PURE__ */ jsx98(UnplayedDot, { shown: unplayed }),
|
|
33702
|
+
unplayed ? /* @__PURE__ */ jsx98(VisuallyHidden, { children: labels.unplayed }) : null,
|
|
33703
|
+
/* @__PURE__ */ jsx98(
|
|
33266
33704
|
Button.Root,
|
|
33267
33705
|
{
|
|
33268
33706
|
variant: "soft",
|