prime-ui-kit 0.21.4 → 0.21.5

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.
@@ -186,7 +186,7 @@ import {
186
186
  useTextParts,
187
187
  visuallyHiddenClass,
188
188
  zonedParts
189
- } from "./chunk-PFASPQSJ.js";
189
+ } from "./chunk-XH64AMXF.js";
190
190
  import {
191
191
  COMPACT_QUERY,
192
192
  ControlSizeProvider,
@@ -209,7 +209,7 @@ import {
209
209
  useHostTier,
210
210
  useOptionalControlSize,
211
211
  usePresence
212
- } from "./chunk-HMLQCKRL.js";
212
+ } from "./chunk-FWL3NJYA.js";
213
213
 
214
214
  // src/layout/app-shell/AppShell.tsx
215
215
  import * as React from "react";
@@ -14458,6 +14458,10 @@ var Chat_default = {
14458
14458
  separator: "Chat_separator",
14459
14459
  service: "Chat_service",
14460
14460
  pill: "Chat_pill",
14461
+ serviceIcon: "Chat_serviceIcon",
14462
+ serviceChange: "Chat_serviceChange",
14463
+ serviceChangeValues: "Chat_serviceChangeValues",
14464
+ serviceTime: "Chat_serviceTime",
14461
14465
  unread: "Chat_unread",
14462
14466
  footer: "Chat_footer"
14463
14467
  };
@@ -14572,18 +14576,71 @@ function ChatPinned({
14572
14576
  ChatPinned.displayName = "Chat.Pinned";
14573
14577
 
14574
14578
  // src/components/chat/ChatRows.tsx
14575
- import { jsx as jsx45 } from "react/jsx-runtime";
14579
+ import { jsx as jsx45, jsxs as jsxs34 } from "react/jsx-runtime";
14580
+ var SERVICE_ESTIMATE = 48;
14576
14581
  function ChatSeparator({ className, children, ...rest }) {
14577
14582
  const depth = nextSurfaceDepth(useNestedSurfaceDepth());
14578
14583
  return /* @__PURE__ */ jsx45("div", { className: cx(Chat_default.separator, className), "data-scroll-skip": "", ...rest, children: /* @__PURE__ */ jsx45("span", { className: Chat_default.pill, "data-depth": depth, children }) });
14579
14584
  }
14580
14585
  ChatSeparator.displayName = "Chat.Separator";
14581
14586
  defineRowKind(ChatSeparator, { sticky: true });
14582
- function ChatService({ className, children, ...rest }) {
14583
- return /* @__PURE__ */ jsx45("div", { className: cx(Chat_default.separator, Chat_default.service, className), ...rest, children: /* @__PURE__ */ jsx45("span", { className: Chat_default.pill, children }) });
14587
+ function ChatService({
14588
+ time: timeProp,
14589
+ timeZone,
14590
+ formatTime: formatTime2 = formatTimeOfDay,
14591
+ className,
14592
+ children,
14593
+ ...rest
14594
+ }) {
14595
+ const list = useMessageList();
14596
+ const tier = compactTier(useControlSize(void 0));
14597
+ const time = timeProp instanceof Date ? formatTime2(timeProp, timeZone ?? list.timeZone) : timeProp;
14598
+ return /* @__PURE__ */ jsx45("div", { className: cx(Chat_default.separator, Chat_default.service, className), ...rest, children: /* @__PURE__ */ jsx45(ControlSizeProvider, { value: tier, children: /* @__PURE__ */ jsxs34("span", { className: Chat_default.pill, children: [
14599
+ children,
14600
+ time === void 0 ? null : /* @__PURE__ */ jsx45(
14601
+ "time",
14602
+ {
14603
+ className: Chat_default.serviceTime,
14604
+ dateTime: timeProp instanceof Date ? timeProp.toISOString() : void 0,
14605
+ children: time
14606
+ }
14607
+ )
14608
+ ] }) }) });
14584
14609
  }
14585
14610
  ChatService.displayName = "Chat.Service";
14586
- defineRowKind(ChatService, {});
14611
+ defineRowKind(ChatService, { estimate: SERVICE_ESTIMATE });
14612
+ function ChatServiceIcon({ className, ...rest }) {
14613
+ return /* @__PURE__ */ jsx45(
14614
+ "span",
14615
+ {
14616
+ className: cx(Chat_default.serviceIcon, iconSlotClass, className),
14617
+ "aria-hidden": "true",
14618
+ ...rest
14619
+ }
14620
+ );
14621
+ }
14622
+ ChatServiceIcon.displayName = "Chat.ServiceIcon";
14623
+ var CHAT_SERVICE_CHANGE_LABELS = {
14624
+ change: "\u0441 \xAB{from}\xBB \u043D\u0430 \xAB{to}\xBB"
14625
+ };
14626
+ function ChatServiceChange({
14627
+ from,
14628
+ to,
14629
+ labels: labelsProp,
14630
+ className,
14631
+ ...rest
14632
+ }) {
14633
+ const labels = useLabels(CHAT_SERVICE_CHANGE_LABELS, labelsProp);
14634
+ return /* @__PURE__ */ jsxs34("span", { className: cx(Chat_default.serviceChange, className), ...rest, children: [
14635
+ /* @__PURE__ */ jsxs34("span", { className: Chat_default.serviceChangeValues, "aria-hidden": "true", children: [
14636
+ from,
14637
+ /* @__PURE__ */ jsx45(Icon, { name: "nav.arrowRight" }),
14638
+ to
14639
+ ] }),
14640
+ /* @__PURE__ */ jsx45(VisuallyHidden, { children: formatLabel(labels.change, { from: nodeText(from), to: nodeText(to) }) })
14641
+ ] });
14642
+ }
14643
+ ChatServiceChange.displayName = "Chat.ServiceChange";
14587
14644
  function ChatUnread({ labels, className, ...rest }) {
14588
14645
  const { unread } = { unread: "\u041D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F", ...labels };
14589
14646
  return /* @__PURE__ */ jsx45("div", { className: cx(Chat_default.unread, className), ...rest, children: unread });
@@ -15206,9 +15263,23 @@ function createMessageFlow({ region, onNew }) {
15206
15263
  }
15207
15264
  };
15208
15265
  }
15266
+ function createRowArrivals() {
15267
+ let committed = null;
15268
+ let planned = /* @__PURE__ */ new Set();
15269
+ return {
15270
+ plan(keys) {
15271
+ planned = newAtEnd(committed, keys);
15272
+ },
15273
+ isFresh: (key) => planned.has(key),
15274
+ commit(keys) {
15275
+ committed = keys;
15276
+ planned = /* @__PURE__ */ new Set();
15277
+ }
15278
+ };
15279
+ }
15209
15280
 
15210
15281
  // src/components/chat/MessageList.tsx
15211
- import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
15282
+ import { jsx as jsx46, jsxs as jsxs35 } from "react/jsx-runtime";
15212
15283
  var MESSAGE_LIST_LABELS = {
15213
15284
  selectedCount: "\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {count}",
15214
15285
  cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
@@ -15260,7 +15331,7 @@ function rowOf(element, key) {
15260
15331
  value: described ? described.value ?? key : own ? key : void 0,
15261
15332
  direction: described?.direction ?? props.direction ?? "incoming",
15262
15333
  // A fragment adds its other rows (the unread band before a message).
15263
- estimate: (described?.estimate ?? ROW_ESTIMATE) + (message && message !== element ? (React47.Children.toArray(element.props.children).length - 1) * ROW_ESTIMATE : 0),
15334
+ estimate: (described?.estimate ?? kind?.estimate ?? ROW_ESTIMATE) + (message && message !== element ? (React47.Children.toArray(element.props.children).length - 1) * ROW_ESTIMATE : 0),
15264
15335
  text: described?.text.toLowerCase() ?? ""
15265
15336
  };
15266
15337
  parsed.set(element, info);
@@ -15385,6 +15456,22 @@ function MessageList({
15385
15456
  React47.useLayoutEffect(() => {
15386
15457
  flow.commit(messages.map((row) => ({ value: row.value, direction: row.direction })));
15387
15458
  }, [flow, messages]);
15459
+ const [arrivals] = React47.useState(createRowArrivals);
15460
+ arrivals.plan(shape.map((row) => row.key));
15461
+ React47.useLayoutEffect(() => {
15462
+ arrivals.commit(shape.map((row) => row.key));
15463
+ const marked = innerRef.current?.querySelectorAll(":scope > [data-row-enter]");
15464
+ for (const row of marked ?? []) {
15465
+ delete row.dataset.rowEnter;
15466
+ row.classList.add(enterMotion_default.enter);
15467
+ const clear = (event) => {
15468
+ if (event.target !== row) return;
15469
+ row.classList.remove(enterMotion_default.enter);
15470
+ row.removeEventListener("animationend", clear);
15471
+ };
15472
+ row.addEventListener("animationend", clear);
15473
+ }
15474
+ }, [arrivals, shape]);
15388
15475
  const receipts = React47.useRef(null);
15389
15476
  const receiptsOf = React47.useCallback(() => {
15390
15477
  receipts.current ??= createReadReceipts((values) => handlers.current.onRead?.(values));
@@ -15716,6 +15803,7 @@ function MessageList({
15716
15803
  ref: windowed ? virtual.measure(index) : void 0,
15717
15804
  className: Chat_default.row,
15718
15805
  "data-message-row": "",
15806
+ "data-row-enter": row.value === void 0 && arrivals.isFresh(row.key) ? "" : void 0,
15719
15807
  children: /* @__PURE__ */ jsx46(MessageRowProvider, { value: positions.get(row.key) ?? null, children: row.element })
15720
15808
  },
15721
15809
  row.key
@@ -15761,7 +15849,7 @@ function MessageList({
15761
15849
  );
15762
15850
  }
15763
15851
  }
15764
- return /* @__PURE__ */ jsx46(MessageListProvider, { value, children: /* @__PURE__ */ jsx46(ChromeContext.Provider, { value: chrome, children: /* @__PURE__ */ jsxs34(
15852
+ return /* @__PURE__ */ jsx46(MessageListProvider, { value, children: /* @__PURE__ */ jsx46(ChromeContext.Provider, { value: chrome, children: /* @__PURE__ */ jsxs35(
15765
15853
  "div",
15766
15854
  {
15767
15855
  ref: mergedRef,
@@ -15800,7 +15888,7 @@ function MessageList({
15800
15888
  ...rest,
15801
15889
  children: [
15802
15890
  /* @__PURE__ */ jsx46(Announcer, { setterRef: announcer }),
15803
- /* @__PURE__ */ jsxs34(MessageHighlightContext.Provider, { value: highlight, children: [
15891
+ /* @__PURE__ */ jsxs35(MessageHighlightContext.Provider, { value: highlight, children: [
15804
15892
  body,
15805
15893
  React47.Children.toArray(tail)
15806
15894
  ] }),
@@ -15862,7 +15950,7 @@ function JumpToEnd({ flow, labels }) {
15862
15950
  className: cx(Chat_default.jump, presence.state === "open" ? enterMotion_default.enter : enterMotion_default.exit),
15863
15951
  "data-state": presence.state,
15864
15952
  onAnimationEnd: presence.onExitEnd,
15865
- children: /* @__PURE__ */ jsxs34("div", { className: Chat_default.jumpBox, children: [
15953
+ children: /* @__PURE__ */ jsxs35("div", { className: Chat_default.jumpBox, children: [
15866
15954
  /* @__PURE__ */ jsx46(
15867
15955
  Button.Root,
15868
15956
  {
@@ -15924,9 +16012,9 @@ function ChatSelectionBar({ className, children, ref, ...rest }) {
15924
16012
  className: cx(Chat_default.selectionBar, appear.entering && enterMotion_default.enter, className),
15925
16013
  "data-depth": "floating",
15926
16014
  ...rest,
15927
- children: /* @__PURE__ */ jsxs34(SurfaceDepthProvider, { value: "floating", children: [
16015
+ children: /* @__PURE__ */ jsxs35(SurfaceDepthProvider, { value: "floating", children: [
15928
16016
  /* @__PURE__ */ jsx46("span", { className: Chat_default.selectionCount, "aria-live": "polite", children: count }),
15929
- /* @__PURE__ */ jsxs34("span", { className: Chat_default.selectionActions, children: [
16017
+ /* @__PURE__ */ jsxs35("span", { className: Chat_default.selectionActions, children: [
15930
16018
  children,
15931
16019
  /* @__PURE__ */ jsx46(
15932
16020
  Button.Root,
@@ -15947,7 +16035,7 @@ ChatSelectionBar.displayName = "Chat.SelectionBar";
15947
16035
  defineRowKind(ChatSelectionBar, { tail: true });
15948
16036
 
15949
16037
  // src/components/chat/Chat.tsx
15950
- import { Fragment as Fragment25, jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
16038
+ import { Fragment as Fragment25, jsx as jsx47, jsxs as jsxs36 } from "react/jsx-runtime";
15951
16039
  var CHAT_LABELS = {
15952
16040
  ...MESSAGE_LIST_LABELS,
15953
16041
  typing: "\u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442\u2026",
@@ -16053,7 +16141,7 @@ function ChatHeader({ className, children, ...rest }) {
16053
16141
  const own = React48.isValidElement(child) && (child.type === ChatTitle || child.type === ChatDescription || child.type === ChatActions);
16054
16142
  (own ? text : lead).push(child);
16055
16143
  }
16056
- return /* @__PURE__ */ jsxs35("div", { className: cx(Chat_default.header, className), ...rest, children: [
16144
+ return /* @__PURE__ */ jsxs36("div", { className: cx(Chat_default.header, className), ...rest, children: [
16057
16145
  lead.length > 0 ? /* @__PURE__ */ jsx47("div", { className: Chat_default.lead, children: lead }) : null,
16058
16146
  text
16059
16147
  ] });
@@ -16118,8 +16206,8 @@ function ChatSearch({ className, ...rest }) {
16118
16206
  if (count > 1) step2(-1);
16119
16207
  };
16120
16208
  const place = search.trim() ? count > 0 ? formatLabel(labels.matches, { index: count - Math.min(matchIndex2, count - 1), count }) : labels.noMatches : "";
16121
- return /* @__PURE__ */ jsxs35("div", { className: cx(Chat_default.search, className), ...rest, children: [
16122
- /* @__PURE__ */ jsx47(Input.Root, { className: Chat_default.searchField, children: /* @__PURE__ */ jsxs35(Input.Wrapper, { children: [
16209
+ return /* @__PURE__ */ jsxs36("div", { className: cx(Chat_default.search, className), ...rest, children: [
16210
+ /* @__PURE__ */ jsx47(Input.Root, { className: Chat_default.searchField, children: /* @__PURE__ */ jsxs36(Input.Wrapper, { children: [
16123
16211
  /* @__PURE__ */ jsx47(Input.Icon, { side: "start", children: /* @__PURE__ */ jsx47(Icon, { name: "action.search", tone: "secondary" }) }),
16124
16212
  /* @__PURE__ */ jsx47(
16125
16213
  Input.Field,
@@ -16216,7 +16304,7 @@ function useItemRows(props, unreadLabel) {
16216
16304
  value: props2.value ?? entry.key,
16217
16305
  position: props2.position ?? entry.position
16218
16306
  }) : rendered;
16219
- const element = isUnread ? /* @__PURE__ */ jsxs35(React48.Fragment, { children: [
16307
+ const element = isUnread ? /* @__PURE__ */ jsxs36(React48.Fragment, { children: [
16220
16308
  /* @__PURE__ */ jsx47(ChatUnread, { labels: { unread: isUnread } }),
16221
16309
  message
16222
16310
  ] }, entry.key) : React48.cloneElement(message, { key: entry.key });
@@ -16240,7 +16328,7 @@ var LOADING_ROWS = [
16240
16328
  { direction: "outgoing", lines: 1 }
16241
16329
  ];
16242
16330
  function ChatLoading({ group }) {
16243
- return /* @__PURE__ */ jsx47("div", { className: Chat_default.loading, "aria-hidden": "true", children: LOADING_ROWS.map((row, index) => /* @__PURE__ */ jsxs35(
16331
+ return /* @__PURE__ */ jsx47("div", { className: Chat_default.loading, "aria-hidden": "true", children: LOADING_ROWS.map((row, index) => /* @__PURE__ */ jsxs36(
16244
16332
  "div",
16245
16333
  {
16246
16334
  className: Chat_default.loadingRow,
@@ -16297,7 +16385,7 @@ function ChatMessages({
16297
16385
  );
16298
16386
  const name = ariaLabel ?? (ariaLabelledBy || chat.hasTitle ? void 0 : chat.labels.messages);
16299
16387
  const selection = chat.selected === void 0 ? {} : { selected: chat.selected, onSelectedChange: chat.setSelected };
16300
- return /* @__PURE__ */ jsxs35(Fragment25, { children: [
16388
+ return /* @__PURE__ */ jsxs36(Fragment25, { children: [
16301
16389
  /* @__PURE__ */ jsx47(
16302
16390
  Crossfade,
16303
16391
  {
@@ -16305,7 +16393,7 @@ function ChatMessages({
16305
16393
  fill: true,
16306
16394
  className: Chat_default.messages,
16307
16395
  "aria-busy": loading || void 0,
16308
- children: loading ? /* @__PURE__ */ jsx47(ChatLoading, { group }) : /* @__PURE__ */ jsxs35(
16396
+ children: loading ? /* @__PURE__ */ jsx47(ChatLoading, { group }) : /* @__PURE__ */ jsxs36(
16309
16397
  ScrollContainer,
16310
16398
  {
16311
16399
  anchor: "end",
@@ -16314,7 +16402,7 @@ function ChatMessages({
16314
16402
  className: Chat_default.scroller,
16315
16403
  children: [
16316
16404
  hasOlder ? /* @__PURE__ */ jsx47("div", { className: Chat_default.older, "aria-hidden": "true", children: /* @__PURE__ */ jsx47(Skeleton, { shape: "block", className: Chat_default.skeletonBubble }) }) : null,
16317
- /* @__PURE__ */ jsxs35(
16405
+ /* @__PURE__ */ jsxs36(
16318
16406
  MessageList,
16319
16407
  {
16320
16408
  ...rest,
@@ -16361,6 +16449,8 @@ var Chat = {
16361
16449
  SelectionBar: ChatSelectionBar,
16362
16450
  Separator: ChatSeparator,
16363
16451
  Service: ChatService,
16452
+ ServiceIcon: ChatServiceIcon,
16453
+ ServiceChange: ChatServiceChange,
16364
16454
  Unread: ChatUnread,
16365
16455
  Footer: ChatFooter
16366
16456
  };
@@ -17982,7 +18072,7 @@ function useSortableList(options) {
17982
18072
  }
17983
18073
 
17984
18074
  // src/components/dnd/Dnd.tsx
17985
- import { jsx as jsx49, jsxs as jsxs36 } from "react/jsx-runtime";
18075
+ import { jsx as jsx49, jsxs as jsxs37 } from "react/jsx-runtime";
17986
18076
  var DND_CARRYING_ATTRIBUTE = "data-dnd-carrying";
17987
18077
  function DndRoot(props) {
17988
18078
  const outer = React57.useContext(DragControllerContext);
@@ -17999,7 +18089,7 @@ function DndSession({ labels, children }) {
17999
18089
  const [controller] = React57.useState(() => createDragController(() => labelsRef.current));
18000
18090
  const message = useStoreSelector(controller.store, (state) => state.announcement.message);
18001
18091
  React57.useEffect(() => controller.destroy, [controller]);
18002
- return /* @__PURE__ */ jsxs36(DragControllerContext, { value: controller, children: [
18092
+ return /* @__PURE__ */ jsxs37(DragControllerContext, { value: controller, children: [
18003
18093
  children,
18004
18094
  /* @__PURE__ */ jsx49(DragOverlay, { controller }),
18005
18095
  /* @__PURE__ */ jsx49(VisuallyHidden, { live: "polite", children: message })
@@ -18180,7 +18270,7 @@ function DndSortable({
18180
18270
  }
18181
18271
  const { ref: targetRef, ...targetData } = list.containerProps;
18182
18272
  const ref = useMergedRefs(targetRef, forwardedRef, setRowElement);
18183
- return /* @__PURE__ */ jsx49(SortableContext, { value: context, children: /* @__PURE__ */ jsxs36(
18273
+ return /* @__PURE__ */ jsx49(SortableContext, { value: context, children: /* @__PURE__ */ jsxs37(
18184
18274
  Tag,
18185
18275
  {
18186
18276
  ref,
@@ -18549,7 +18639,7 @@ var List_default = {
18549
18639
  };
18550
18640
 
18551
18641
  // src/components/list/List.tsx
18552
- import { Fragment as Fragment27, jsx as jsx50, jsxs as jsxs37 } from "react/jsx-runtime";
18642
+ import { Fragment as Fragment27, jsx as jsx50, jsxs as jsxs38 } from "react/jsx-runtime";
18553
18643
  var LIST_LABELS = {
18554
18644
  reorderItem: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C {label}",
18555
18645
  lockedItem: "{label}: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u043E"
@@ -18708,10 +18798,10 @@ function splitItemChildren3(children) {
18708
18798
  }
18709
18799
  }
18710
18800
  flushLoose();
18711
- return /* @__PURE__ */ jsxs37(Fragment27, { children: [
18801
+ return /* @__PURE__ */ jsxs38(Fragment27, { children: [
18712
18802
  leading,
18713
18803
  /* @__PURE__ */ jsx50("span", { className: List_default.body, children: spaced(body) }),
18714
- trail.length > 0 ? /* @__PURE__ */ jsxs37(Fragment27, { children: [
18804
+ trail.length > 0 ? /* @__PURE__ */ jsxs38(Fragment27, { children: [
18715
18805
  " ",
18716
18806
  /* @__PURE__ */ jsx50("span", { className: cx(List_default.trail, twoLines && List_default.trailStacked), children: spaced(trail) })
18717
18807
  ] }) : null
@@ -18789,7 +18879,7 @@ function ListItem({
18789
18879
  if (actions.length > 0) {
18790
18880
  const leading = actions.filter((part) => part.props.side === "start");
18791
18881
  const trailing = actions.filter((part) => part.props.side !== "start");
18792
- element = /* @__PURE__ */ jsxs37("div", { ref: frameRef, className: List_default.frame, children: [
18882
+ element = /* @__PURE__ */ jsxs38("div", { ref: frameRef, className: List_default.frame, children: [
18793
18883
  leading,
18794
18884
  element,
18795
18885
  trailing
@@ -18800,7 +18890,7 @@ function ListItem({
18800
18890
  return /* @__PURE__ */ jsx50("li", { ref: rowRef, className: rowClass, children: element });
18801
18891
  }
18802
18892
  const text = { label: itemLabel({ asChild, children }) };
18803
- return /* @__PURE__ */ jsxs37(
18893
+ return /* @__PURE__ */ jsxs38(
18804
18894
  Dnd.SortableItem,
18805
18895
  {
18806
18896
  ref: rowRef,
@@ -18878,7 +18968,7 @@ function formatChatTime(date, now, timeZone) {
18878
18968
  }
18879
18969
 
18880
18970
  // src/components/chat-list/ChatList.tsx
18881
- import { Fragment as Fragment29, jsx as jsx51, jsxs as jsxs38 } from "react/jsx-runtime";
18971
+ import { Fragment as Fragment29, jsx as jsx51, jsxs as jsxs39 } from "react/jsx-runtime";
18882
18972
  var CHAT_LIST_LABELS = {
18883
18973
  list: "\u0414\u0438\u0430\u043B\u043E\u0433\u0438",
18884
18974
  search: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0434\u0438\u0430\u043B\u043E\u0433\u0430\u043C",
@@ -19004,13 +19094,13 @@ function ChatListItem({
19004
19094
  const countPart = usePartPresence({ present: count, axis: "inline" });
19005
19095
  const pinPart = usePartPresence({ present: pin, axis: "inline" });
19006
19096
  const textProps = parts.text?.props;
19007
- const title = /* @__PURE__ */ jsxs38(List.ItemText, { ...textProps, className: cx(ChatList_default.title, textProps?.className), children: [
19097
+ const title = /* @__PURE__ */ jsxs39(List.ItemText, { ...textProps, className: cx(ChatList_default.title, textProps?.className), children: [
19008
19098
  /* @__PURE__ */ jsx51("span", { className: ChatList_default.name, children: highlightChildren(textProps?.children, query) }),
19009
19099
  parts.glyphs.map((glyph, index) => {
19010
19100
  const { children: glyphChildren, className: glyphClass, ...glyphRest } = glyph.props;
19011
19101
  return (
19012
19102
  // biome-ignore lint/suspicious/noArrayIndexKey: glyphs keep their written order
19013
- /* @__PURE__ */ jsxs38(React60.Fragment, { children: [
19103
+ /* @__PURE__ */ jsxs39(React60.Fragment, { children: [
19014
19104
  " ",
19015
19105
  /* @__PURE__ */ jsx51(
19016
19106
  "span",
@@ -19028,7 +19118,7 @@ function ChatListItem({
19028
19118
  muted ? /* @__PURE__ */ jsx51("span", { ref: mutedPart.ref, className: cx(ChatList_default.pop, ChatList_default.glyph, mutedPart.className), children: /* @__PURE__ */ jsx51(Icon, { name: "status.muted", size: glyphSize, label: labels.muted, animated: false }) }) : null
19029
19119
  ] }, "title");
19030
19120
  const formatted = time instanceof Date ? list.formatTime(time, list.now, list.timeZone) : time;
19031
- const meta = formatted || status ? /* @__PURE__ */ jsxs38(List.ItemMeta, { className: ChatList_default.meta, children: [
19121
+ const meta = formatted || status ? /* @__PURE__ */ jsxs39(List.ItemMeta, { className: ChatList_default.meta, children: [
19032
19122
  status ? /* @__PURE__ */ jsx51(
19033
19123
  "span",
19034
19124
  {
@@ -19062,7 +19152,7 @@ function ChatListItem({
19062
19152
  ...descRest
19063
19153
  } = descProps;
19064
19154
  const hasText = hasContent(descChildren);
19065
- preview = /* @__PURE__ */ jsxs38(
19155
+ preview = /* @__PURE__ */ jsxs39(
19066
19156
  "span",
19067
19157
  {
19068
19158
  ...descRest,
@@ -19072,7 +19162,7 @@ function ChatListItem({
19072
19162
  children: [
19073
19163
  author ? /* @__PURE__ */ jsx51("span", { className: ChatList_default.author, children: `${author}:` }) : null,
19074
19164
  author ? " " : null,
19075
- kind ? /* @__PURE__ */ jsxs38("span", { className: ChatList_default.kind, children: [
19165
+ kind ? /* @__PURE__ */ jsxs39("span", { className: ChatList_default.kind, children: [
19076
19166
  labels[kind],
19077
19167
  duration !== void 0 ? ` ${formatClock(duration)}` : null,
19078
19168
  hasText ? ", " : null
@@ -19082,7 +19172,7 @@ function ChatListItem({
19082
19172
  }
19083
19173
  );
19084
19174
  }
19085
- const secondLine = hasSecondLine ? /* @__PURE__ */ jsxs38(
19175
+ const secondLine = hasSecondLine ? /* @__PURE__ */ jsxs39(
19086
19176
  List.ItemDescription,
19087
19177
  {
19088
19178
  ref: descProps?.ref,
@@ -19090,7 +19180,7 @@ function ChatListItem({
19090
19180
  "data-shown": shown,
19091
19181
  children: [
19092
19182
  preview,
19093
- draftText ? /* @__PURE__ */ jsxs38(
19183
+ draftText ? /* @__PURE__ */ jsxs39(
19094
19184
  "span",
19095
19185
  {
19096
19186
  className: ChatList_default.layer,
@@ -19116,13 +19206,13 @@ function ChatListItem({
19116
19206
  },
19117
19207
  "description"
19118
19208
  ) : null;
19119
- const badges = count || mention || pin || hasSecondLine ? /* @__PURE__ */ jsxs38(List.ItemMeta, { className: ChatList_default.badges, children: [
19120
- mention ? /* @__PURE__ */ jsxs38("span", { ref: mentionPart.ref, className: cx(ChatList_default.pop, mentionPart.className), children: [
19209
+ const badges = count || mention || pin || hasSecondLine ? /* @__PURE__ */ jsxs39(List.ItemMeta, { className: ChatList_default.badges, children: [
19210
+ mention ? /* @__PURE__ */ jsxs39("span", { ref: mentionPart.ref, className: cx(ChatList_default.pop, mentionPart.className), children: [
19121
19211
  /* @__PURE__ */ jsx51(Badge.Root, { color: "blue", variant: "solid", className: ChatList_default.mention, "aria-hidden": "true", children: "@" }),
19122
19212
  /* @__PURE__ */ jsx51(VisuallyHidden, { children: labels.mention })
19123
19213
  ] }) : null,
19124
19214
  mention && count ? " " : null,
19125
- count ? /* @__PURE__ */ jsxs38("span", { ref: countPart.ref, className: cx(ChatList_default.pop, countPart.className), children: [
19215
+ count ? /* @__PURE__ */ jsxs39("span", { ref: countPart.ref, className: cx(ChatList_default.pop, countPart.className), children: [
19126
19216
  /* @__PURE__ */ jsx51(
19127
19217
  Badge.Root,
19128
19218
  {
@@ -19212,7 +19302,7 @@ function ChatListItem({
19212
19302
  }
19213
19303
  );
19214
19304
  if (!parts.menu) return item;
19215
- return /* @__PURE__ */ jsxs38(
19305
+ return /* @__PURE__ */ jsxs39(
19216
19306
  Dropdown.Root,
19217
19307
  {
19218
19308
  open: menuAt !== null,
@@ -19416,8 +19506,8 @@ function ChatListRoot({
19416
19506
  if (virtualized) {
19417
19507
  const laid = rowGaps(virtual);
19418
19508
  const spacer = (height) => height > 0 ? /* @__PURE__ */ jsx51("li", { className: ChatList_default.spacer, style: { height }, "aria-hidden": "true" }) : null;
19419
- rows2 = /* @__PURE__ */ jsxs38(Fragment29, { children: [
19420
- laid.rows.map(({ index, gap }) => /* @__PURE__ */ jsxs38(React60.Fragment, { children: [
19509
+ rows2 = /* @__PURE__ */ jsxs39(Fragment29, { children: [
19510
+ laid.rows.map(({ index, gap }) => /* @__PURE__ */ jsxs39(React60.Fragment, { children: [
19421
19511
  spacer(gap),
19422
19512
  row(index, virtual.measure(index))
19423
19513
  ] }, keys[index])),
@@ -19430,7 +19520,7 @@ function ChatListRoot({
19430
19520
  const state = loading ? "loading" : items.length === 0 ? "empty" : "ready";
19431
19521
  const placeholders = (count) => /* @__PURE__ */ jsx51(List.Root, { size, className: ChatList_default.list, inert: true, "aria-hidden": "true", children: Array.from({ length: count }, (_, index) => (
19432
19522
  // biome-ignore lint/suspicious/noArrayIndexKey: identical placeholder rows
19433
- /* @__PURE__ */ jsxs38(List.Item, { tabIndex: -1, className: cx(ChatList_default.item, ChatList_default.placeholder), children: [
19523
+ /* @__PURE__ */ jsxs39(List.Item, { tabIndex: -1, className: cx(ChatList_default.item, ChatList_default.placeholder), children: [
19434
19524
  /* @__PURE__ */ jsx51(List.ItemIcon, { children: /* @__PURE__ */ jsx51(Skeleton, { shape: "circle" }) }),
19435
19525
  /* @__PURE__ */ jsx51(List.ItemText, { children: /* @__PURE__ */ jsx51(Skeleton, { className: ChatList_default.placeholderName }) }),
19436
19526
  /* @__PURE__ */ jsx51(List.ItemDescription, { children: /* @__PURE__ */ jsx51(Skeleton, { size: stepDown(size), className: ChatList_default.placeholderPreview }) }),
@@ -19440,22 +19530,22 @@ function ChatListRoot({
19440
19530
  let body;
19441
19531
  if (state === "loading") body = placeholders(SKELETON_ROWS);
19442
19532
  else if (state === "empty") {
19443
- body = searching ? /* @__PURE__ */ jsxs38(EmptyPage.Root, { layout: "compact", size, children: [
19533
+ body = searching ? /* @__PURE__ */ jsxs39(EmptyPage.Root, { layout: "compact", size, children: [
19444
19534
  /* @__PURE__ */ jsx51(EmptyPage.Icon, { children: /* @__PURE__ */ jsx51(Icon, { name: "action.search" }) }),
19445
19535
  /* @__PURE__ */ jsx51(EmptyPage.Title, { children: labels.noResults })
19446
- ] }) : empty ?? /* @__PURE__ */ jsxs38(EmptyPage.Root, { layout: "compact", size, children: [
19536
+ ] }) : empty ?? /* @__PURE__ */ jsxs39(EmptyPage.Root, { layout: "compact", size, children: [
19447
19537
  /* @__PURE__ */ jsx51(EmptyPage.Icon, { children: /* @__PURE__ */ jsx51(Icon, { name: "object.message" }) }),
19448
19538
  /* @__PURE__ */ jsx51(EmptyPage.Title, { children: labels.empty })
19449
19539
  ] });
19450
19540
  } else {
19451
- body = /* @__PURE__ */ jsxs38(Fragment29, { children: [
19541
+ body = /* @__PURE__ */ jsxs39(Fragment29, { children: [
19452
19542
  /* @__PURE__ */ jsx51(List.Root, { ref: setListEl, size, "aria-label": labels.list, className: ChatList_default.list, children: rows2 }),
19453
19543
  hasMore ? placeholders(1) : null
19454
19544
  ] });
19455
19545
  }
19456
19546
  const announcement = loading ? labels.loading : searching ? items.length > 0 ? formatLabel(labels.results, { count: items.length }) : labels.noResults : "";
19457
19547
  return tier.provide(
19458
- /* @__PURE__ */ jsx51(ChatListProvider, { value: context, children: /* @__PURE__ */ jsxs38(
19548
+ /* @__PURE__ */ jsx51(ChatListProvider, { value: context, children: /* @__PURE__ */ jsxs39(
19459
19549
  "div",
19460
19550
  {
19461
19551
  ...rest,
@@ -19463,7 +19553,7 @@ function ChatListRoot({
19463
19553
  className: cx(ChatList_default.root, className),
19464
19554
  ...toDataAttributes({ size }),
19465
19555
  children: [
19466
- searchable ? /* @__PURE__ */ jsx51("div", { className: ChatList_default.search, children: /* @__PURE__ */ jsx51(Input.Root, { children: /* @__PURE__ */ jsxs38(Input.Wrapper, { children: [
19556
+ searchable ? /* @__PURE__ */ jsx51("div", { className: ChatList_default.search, children: /* @__PURE__ */ jsx51(Input.Root, { children: /* @__PURE__ */ jsxs39(Input.Wrapper, { children: [
19467
19557
  /* @__PURE__ */ jsx51(Input.Icon, { side: "start", children: /* @__PURE__ */ jsx51(Icon, { name: "action.search", tone: "secondary" }) }),
19468
19558
  /* @__PURE__ */ jsx51(
19469
19559
  Input.Field,
@@ -19681,7 +19771,7 @@ var ColorPresets_default = {
19681
19771
  };
19682
19772
 
19683
19773
  // src/components/color-picker/ColorPresets.tsx
19684
- import { jsx as jsx53, jsxs as jsxs39 } from "react/jsx-runtime";
19774
+ import { jsx as jsx53, jsxs as jsxs40 } from "react/jsx-runtime";
19685
19775
  var COLOR_PRESETS_LABELS = {
19686
19776
  trigger: "\u0426\u0432\u0435\u0442",
19687
19777
  list: "\u0426\u0432\u0435\u0442\u0430",
@@ -19868,7 +19958,7 @@ function SwatchList({ label }) {
19868
19958
  const next = grid.move(event, active, balanced ?? Math.min(columns, options.length));
19869
19959
  if (next !== null) setActive(next);
19870
19960
  };
19871
- return /* @__PURE__ */ jsxs39("div", { className: ColorPresets_default.body, children: [
19961
+ return /* @__PURE__ */ jsxs40("div", { className: ColorPresets_default.body, children: [
19872
19962
  label != null ? /* @__PURE__ */ jsx53(
19873
19963
  "div",
19874
19964
  {
@@ -19930,7 +20020,7 @@ function CustomColorField() {
19930
20020
  );
19931
20021
  const [error, setError] = React62.useState();
19932
20022
  const typed = parseHexColor(draft);
19933
- return /* @__PURE__ */ jsx53(Input.Root, { label: labels.custom, error, className: ColorPresets_default.custom, children: /* @__PURE__ */ jsxs39(Input.Wrapper, { children: [
20023
+ return /* @__PURE__ */ jsx53(Input.Root, { label: labels.custom, error, className: ColorPresets_default.custom, children: /* @__PURE__ */ jsxs40(Input.Wrapper, { children: [
19934
20024
  /* @__PURE__ */ jsx53(Input.Icon, { side: "start", children: /* @__PURE__ */ jsx53(SwatchChip, { value: typed ?? value }) }),
19935
20025
  /* @__PURE__ */ jsx53(
19936
20026
  Input.Field,
@@ -20023,7 +20113,7 @@ var CommandMenu_default = {
20023
20113
  };
20024
20114
 
20025
20115
  // src/components/command-menu/CommandMenu.tsx
20026
- import { Fragment as Fragment30, jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
20116
+ import { Fragment as Fragment30, jsx as jsx55, jsxs as jsxs41 } from "react/jsx-runtime";
20027
20117
  var COMMAND_MENU_LABELS = {
20028
20118
  search: "\u041F\u043E\u0438\u0441\u043A",
20029
20119
  empty: "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E",
@@ -20219,7 +20309,7 @@ function CommandMenuInput({
20219
20309
  };
20220
20310
  return (
20221
20311
  // The palette's search is a field of tier `l` (its text and height), whatever the rows' tier.
20222
- /* @__PURE__ */ jsxs40(
20312
+ /* @__PURE__ */ jsxs41(
20223
20313
  "div",
20224
20314
  {
20225
20315
  className: cx(menu_default.searchRow, fieldTierClass, fieldInputTextClass, CommandMenu_default.inputRow),
@@ -20294,14 +20384,14 @@ function CommandMenuList({ className, children, ref, ...rest }) {
20294
20384
  if (inside && !regionRef.current?.contains(document.activeElement)) return;
20295
20385
  dialog.querySelector("[data-autofocus]")?.focus({ preventScroll: true });
20296
20386
  };
20297
- return /* @__PURE__ */ jsxs40(Fragment30, { children: [
20298
- /* @__PURE__ */ jsx55(RegionSwap, { ref: regionRef, state: region, fill: true, onSwap: returnToSearch, children: region === "error" ? /* @__PURE__ */ jsxs40(EmptyPage.Root, { layout: "compact", size, role: "alert", children: [
20387
+ return /* @__PURE__ */ jsxs41(Fragment30, { children: [
20388
+ /* @__PURE__ */ jsx55(RegionSwap, { ref: regionRef, state: region, fill: true, onSwap: returnToSearch, children: region === "error" ? /* @__PURE__ */ jsxs41(EmptyPage.Root, { layout: "compact", size, role: "alert", children: [
20299
20389
  /* @__PURE__ */ jsx55(EmptyPage.Title, { as: "p", children: loadError }),
20300
- onRetry ? /* @__PURE__ */ jsx55(EmptyPage.Actions, { children: /* @__PURE__ */ jsxs40(Button.Root, { variant: "soft", tone: "neutral", loading: retrying, onClick: onRetry, children: [
20390
+ onRetry ? /* @__PURE__ */ jsx55(EmptyPage.Actions, { children: /* @__PURE__ */ jsxs41(Button.Root, { variant: "soft", tone: "neutral", loading: retrying, onClick: onRetry, children: [
20301
20391
  /* @__PURE__ */ jsx55(Button.Icon, { children: /* @__PURE__ */ jsx55(Icon, { name: "action.refresh" }) }),
20302
20392
  labels.retry
20303
20393
  ] }) }) : null
20304
- ] }) : /* @__PURE__ */ jsxs40(
20394
+ ] }) : /* @__PURE__ */ jsxs41(
20305
20395
  ScrollContainer,
20306
20396
  {
20307
20397
  ...rest,
@@ -20413,7 +20503,7 @@ function CommandMenuItemText({
20413
20503
  ...rest
20414
20504
  }) {
20415
20505
  const { search } = useCommandMenuContext();
20416
- return /* @__PURE__ */ jsxs40("span", { className: cx(CommandMenu_default.itemText, className), ...rest, children: [
20506
+ return /* @__PURE__ */ jsxs41("span", { className: cx(CommandMenu_default.itemText, className), ...rest, children: [
20417
20507
  /* @__PURE__ */ jsx55("span", { className: CommandMenu_default.itemLabel, children: highlightChildren(children, search) }),
20418
20508
  description ? /* @__PURE__ */ jsx55("span", { className: cx(textRole_default.caption, CommandMenu_default.itemDescription), children: highlightChildren(description, search) }) : null
20419
20509
  ] });
@@ -20435,7 +20525,7 @@ function CommandMenuFooter({ className, ...rest }) {
20435
20525
  }
20436
20526
  CommandMenuFooter.displayName = "CommandMenu.Footer";
20437
20527
  function CommandMenuFooterHint({ keys, children, className, ...rest }) {
20438
- return /* @__PURE__ */ jsxs40("span", { className: cx(CommandMenu_default.footerHint, className), ...rest, children: [
20528
+ return /* @__PURE__ */ jsxs41("span", { className: cx(CommandMenu_default.footerHint, className), ...rest, children: [
20439
20529
  keys.map((key, index) => (
20440
20530
  // biome-ignore lint/suspicious/noArrayIndexKey: a static list of keys
20441
20531
  /* @__PURE__ */ jsx55(Kbd, { children: key }, index)
@@ -20490,7 +20580,7 @@ var attachmentTile_default = {
20490
20580
  };
20491
20581
 
20492
20582
  // src/internal/attachmentTile.tsx
20493
- import { jsx as jsx56, jsxs as jsxs41 } from "react/jsx-runtime";
20583
+ import { jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
20494
20584
  function AttachmentTile({
20495
20585
  id,
20496
20586
  kind,
@@ -20527,7 +20617,7 @@ function AttachmentTile({
20527
20617
  if (node && leaving?.current.delete(id)) leaveInPlace(node, "inline");
20528
20618
  };
20529
20619
  }, [id, leaving]);
20530
- return /* @__PURE__ */ jsxs41(
20620
+ return /* @__PURE__ */ jsxs42(
20531
20621
  Dnd.SortableItem,
20532
20622
  {
20533
20623
  ...rest,
@@ -20565,7 +20655,7 @@ function AttachmentTile({
20565
20655
  ) : null,
20566
20656
  name || bandMeta ? (
20567
20657
  // Decorative: the tile's name carries the file name and its state.
20568
- /* @__PURE__ */ jsxs41(
20658
+ /* @__PURE__ */ jsxs42(
20569
20659
  "span",
20570
20660
  {
20571
20661
  className: cx(textRole_default.caption, onMedia && mediaPill_default.fade, attachmentTile_default.band),
@@ -20629,7 +20719,7 @@ function AttachmentStripScroller({ children }) {
20629
20719
  function TileVideo({ src, onDuration }) {
20630
20720
  const frameRef = React64.useRef(null);
20631
20721
  const near = useNearView(frameRef);
20632
- return /* @__PURE__ */ jsxs41(Thumbnail.Root, { ref: frameRef, size: "m", className: attachmentTile_default.media, children: [
20722
+ return /* @__PURE__ */ jsxs42(Thumbnail.Root, { ref: frameRef, size: "m", className: attachmentTile_default.media, children: [
20633
20723
  near && src ? /* @__PURE__ */ jsx56(
20634
20724
  Thumbnail.Video,
20635
20725
  {
@@ -20697,7 +20787,7 @@ var FileUpload_default = {
20697
20787
  };
20698
20788
 
20699
20789
  // src/components/file-upload/FileUpload.tsx
20700
- import { Fragment as Fragment31, jsx as jsx57, jsxs as jsxs42 } from "react/jsx-runtime";
20790
+ import { Fragment as Fragment31, jsx as jsx57, jsxs as jsxs43 } from "react/jsx-runtime";
20701
20791
  var FILE_UPLOAD_LABELS = {
20702
20792
  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",
20703
20793
  browse: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B",
@@ -20788,7 +20878,7 @@ function FileUploadFormatBadge({
20788
20878
  FileUploadFormatBadge.displayName = "FileUpload.FormatBadge";
20789
20879
  function FileUploadItemPreview({ src, className, ...rest }) {
20790
20880
  const size = useControlSize(void 0);
20791
- return /* @__PURE__ */ jsxs42(
20881
+ return /* @__PURE__ */ jsxs43(
20792
20882
  Thumbnail.Root,
20793
20883
  {
20794
20884
  ...rest,
@@ -21106,8 +21196,8 @@ function FileSetView({
21106
21196
  };
21107
21197
  const region = announcer.own ? /* @__PURE__ */ jsx57(VisuallyHidden, { live: "polite", children: announcer.message }) : null;
21108
21198
  if (layout === "list") {
21109
- return /* @__PURE__ */ jsxs42(Fragment31, { children: [
21110
- files.length > 0 || addTile ? /* @__PURE__ */ jsxs42(
21199
+ return /* @__PURE__ */ jsxs43(Fragment31, { children: [
21200
+ files.length > 0 || addTile ? /* @__PURE__ */ jsxs43(
21111
21201
  "ul",
21112
21202
  {
21113
21203
  role: "list",
@@ -21194,7 +21284,7 @@ function FileSetView({
21194
21284
  children: addTile
21195
21285
  }
21196
21286
  );
21197
- return /* @__PURE__ */ jsxs42(Fragment31, { children: [
21287
+ return /* @__PURE__ */ jsxs43(Fragment31, { children: [
21198
21288
  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,
21199
21289
  region
21200
21290
  ] });
@@ -21240,7 +21330,7 @@ function FileRow({
21240
21330
  className: cx(FileUpload_default.queueRow, appear.entering && enterMotion_default.enter),
21241
21331
  "aria-busy": pending || void 0,
21242
21332
  "data-pending": pending || void 0,
21243
- children: /* @__PURE__ */ jsxs42(FileUploadItem, { invalid: status === "failed", "data-status": status, children: [
21333
+ children: /* @__PURE__ */ jsxs43(FileUploadItem, { invalid: status === "failed", "data-status": status, children: [
21244
21334
  picture ? /* @__PURE__ */ jsx57(FileUploadItemPreview, { src: picture }) : /* @__PURE__ */ jsx57(FileUploadFormatBadge, { format: format5 || "\u2014", color: formatColor(format5) }),
21245
21335
  /* @__PURE__ */ jsx57(FileUploadItemText, { title: file.name, children: file.href ? /* @__PURE__ */ jsx57(
21246
21336
  LinkButton,
@@ -21254,7 +21344,7 @@ function FileRow({
21254
21344
  }
21255
21345
  ) : picture ? file.name : splitFileName(file.name).base }),
21256
21346
  parts.length > 0 ? /* @__PURE__ */ jsx57(FileUploadItemDescription, { children: /* @__PURE__ */ jsx57(MorphText, { children: parts.join(" \xB7 ") }) }) : null,
21257
- onRetry || onRemove ? /* @__PURE__ */ jsxs42(FileUploadItemActions, { children: [
21347
+ onRetry || onRemove ? /* @__PURE__ */ jsxs43(FileUploadItemActions, { children: [
21258
21348
  status === "failed" && onRetry ? /* @__PURE__ */ jsx57(
21259
21349
  Button.Root,
21260
21350
  {
@@ -21438,13 +21528,13 @@ function FileUploadField({
21438
21528
  if (none) {
21439
21529
  control = input;
21440
21530
  } else if (button) {
21441
- const content = children ?? /* @__PURE__ */ jsxs42(Fragment31, { children: [
21531
+ const content = children ?? /* @__PURE__ */ jsxs43(Fragment31, { children: [
21442
21532
  /* @__PURE__ */ jsx57(Button.Icon, { children: /* @__PURE__ */ jsx57(Icon, { name: "action.attach" }) }),
21443
21533
  labels.browse
21444
21534
  ] });
21445
21535
  const iconOnly = React65.Children.count(content) === 1 && React65.isValidElement(content) && content.type === Button.Icon;
21446
21536
  const buttonId = `${ids.controlId}-button`;
21447
- control = /* @__PURE__ */ jsxs42("span", { className: FileUpload_default.buttonRoot, children: [
21537
+ control = /* @__PURE__ */ jsxs43("span", { className: FileUpload_default.buttonRoot, children: [
21448
21538
  input,
21449
21539
  /* @__PURE__ */ jsx57(
21450
21540
  Button.Root,
@@ -21465,7 +21555,7 @@ function FileUploadField({
21465
21555
  ] });
21466
21556
  } else if (!tile) {
21467
21557
  control = // biome-ignore lint/a11y/noLabelWithoutControl: the file input (`input`) is its first child
21468
- /* @__PURE__ */ jsxs42(
21558
+ /* @__PURE__ */ jsxs43(
21469
21559
  "label",
21470
21560
  {
21471
21561
  className: cx(fieldTierClass, FileUpload_default.root),
@@ -21478,7 +21568,7 @@ function FileUploadField({
21478
21568
  }),
21479
21569
  children: [
21480
21570
  input,
21481
- children ?? /* @__PURE__ */ jsxs42(FileUploadBody, { children: [
21571
+ children ?? /* @__PURE__ */ jsxs43(FileUploadBody, { children: [
21482
21572
  /* @__PURE__ */ jsx57(FileUploadIcon, { children: /* @__PURE__ */ jsx57(Icon, { name: "action.upload", size, tone: "secondary" }) }),
21483
21573
  /* @__PURE__ */ jsx57(FileUploadTitle, { children: labels.title }),
21484
21574
  /* @__PURE__ */ jsx57(Button.Root, { asChild: true, variant: "soft", tone: "neutral", size, disabled, children: /* @__PURE__ */ jsx57("span", { children: labels.browse }) })
@@ -21515,7 +21605,7 @@ function FileUploadField({
21515
21605
  ref: addTileRef,
21516
21606
  className: cx(FileUpload_default.add, addPresence.className),
21517
21607
  "data-empty": empty || void 0,
21518
- children: /* @__PURE__ */ jsxs42("label", { className: FileUpload_default.addTarget, children: [
21608
+ children: /* @__PURE__ */ jsxs43("label", { className: FileUpload_default.addTarget, children: [
21519
21609
  input,
21520
21610
  /* @__PURE__ */ jsx57("span", { className: cx(fieldTierClass, FileUpload_default.addIcon), "data-size": "xs", "aria-hidden": "true", children: /* @__PURE__ */ jsx57(Icon, { name: "action.add" }) }),
21521
21611
  /* @__PURE__ */ jsx57("span", { className: cx(textRole_default.caption, FileUpload_default.addText), children: /* @__PURE__ */ jsx57(MorphText, { children: empty ? labels.empty : labels.add }) })
@@ -21563,7 +21653,7 @@ function FileUploadField({
21563
21653
  disabled,
21564
21654
  optionalLabel: labels.optional,
21565
21655
  group: tile,
21566
- children: /* @__PURE__ */ jsxs42(
21656
+ children: /* @__PURE__ */ jsxs43(
21567
21657
  "div",
21568
21658
  {
21569
21659
  className: FileUpload_default.field,
@@ -21812,7 +21902,7 @@ var textFormattingToolbar_default = {
21812
21902
  };
21813
21903
 
21814
21904
  // src/internal/textFormattingToolbar.tsx
21815
- import { jsx as jsx58, jsxs as jsxs43 } from "react/jsx-runtime";
21905
+ import { jsx as jsx58, jsxs as jsxs44 } from "react/jsx-runtime";
21816
21906
  var TOOL_ICONS = {
21817
21907
  bold: "format.bold",
21818
21908
  italic: "format.italic",
@@ -21909,7 +21999,7 @@ function useTextFormatting({
21909
21999
  },
21910
22000
  children: /* @__PURE__ */ jsx58(Tooltip.Provider, { children: TEXT_FORMATS.map((format5, index) => {
21911
22001
  const shortcut = FORMAT_SHORTCUTS[format5];
21912
- return /* @__PURE__ */ jsxs43(Tooltip.Root, { children: [
22002
+ return /* @__PURE__ */ jsxs44(Tooltip.Root, { children: [
21913
22003
  /* @__PURE__ */ jsx58(Tooltip.Trigger, { children: /* @__PURE__ */ jsx58(
21914
22004
  Button.Root,
21915
22005
  {
@@ -21926,7 +22016,7 @@ function useTextFormatting({
21926
22016
  children: /* @__PURE__ */ jsx58(Button.Icon, { children: /* @__PURE__ */ jsx58(Icon, { name: TOOL_ICONS[format5] }) })
21927
22017
  }
21928
22018
  ) }),
21929
- /* @__PURE__ */ jsxs43(Tooltip.Content, { size: toolSize, side: "top", children: [
22019
+ /* @__PURE__ */ jsxs44(Tooltip.Content, { size: toolSize, side: "top", children: [
21930
22020
  labels[format5],
21931
22021
  " ",
21932
22022
  /* @__PURE__ */ jsx58(Kbd, { children: shortcutText(format5, apple) })
@@ -21951,7 +22041,7 @@ var Textarea_default = {
21951
22041
  };
21952
22042
 
21953
22043
  // src/components/textarea/Textarea.tsx
21954
- import { Fragment as Fragment32, jsx as jsx59, jsxs as jsxs44 } from "react/jsx-runtime";
22044
+ import { Fragment as Fragment32, jsx as jsx59, jsxs as jsxs45 } from "react/jsx-runtime";
21955
22045
  var TEXTAREA_LABELS = {
21956
22046
  optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E",
21957
22047
  counter: "{current} \u0438\u0437 {max} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",
@@ -22119,9 +22209,9 @@ function TextareaRoot({
22119
22209
  "focus-ring": focusRing,
22120
22210
  capped: autoResize && maxRows !== void 0 || void 0
22121
22211
  }),
22122
- children: hasEdge ? /* @__PURE__ */ jsxs44(Fragment32, { children: [
22212
+ children: hasEdge ? /* @__PURE__ */ jsxs45(Fragment32, { children: [
22123
22213
  /* @__PURE__ */ jsx59("div", { className: Textarea_default.body, children: body }),
22124
- /* @__PURE__ */ jsxs44("div", { className: Textarea_default.edge, children: [
22214
+ /* @__PURE__ */ jsxs45("div", { className: Textarea_default.edge, children: [
22125
22215
  hasCommit ? /* @__PURE__ */ jsx59(FieldCommitStatus, { state: commit.state, labels }) : null,
22126
22216
  children
22127
22217
  ] })
@@ -22148,7 +22238,7 @@ function TextareaRoot({
22148
22238
  className: cx(fieldTierClass, Textarea_default.root, className),
22149
22239
  children: formatting ? (
22150
22240
  // The toolbar floats over the box; the box clips its corner actions, so it cannot hold it.
22151
- /* @__PURE__ */ jsxs44("div", { className: Textarea_default.anchor, ...format5.anchorProps, children: [
22241
+ /* @__PURE__ */ jsxs45("div", { className: Textarea_default.anchor, ...format5.anchorProps, children: [
22152
22242
  control,
22153
22243
  format5.toolbar
22154
22244
  ] })
@@ -22508,7 +22598,7 @@ function useRecorder(onRecorded) {
22508
22598
  }
22509
22599
 
22510
22600
  // src/components/composer/Composer.tsx
22511
- import { Fragment as Fragment33, jsx as jsx60, jsxs as jsxs45 } from "react/jsx-runtime";
22601
+ import { Fragment as Fragment33, jsx as jsx60, jsxs as jsxs46 } from "react/jsx-runtime";
22512
22602
  var COMPOSER_LABELS = {
22513
22603
  region: "\u041D\u043E\u0432\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
22514
22604
  placeholder: "\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
@@ -23118,7 +23208,7 @@ function ComposerRoot({
23118
23208
  const errorId = `${fieldId}-error`;
23119
23209
  const contextIds = bars.map((item) => item.id).join(" ") || void 0;
23120
23210
  return /* @__PURE__ */ jsx60(ComposerProvider, { value: contextValue, children: tier.provide(
23121
- /* @__PURE__ */ jsxs45(
23211
+ /* @__PURE__ */ jsxs46(
23122
23212
  "form",
23123
23213
  {
23124
23214
  "aria-label": labels.region,
@@ -23195,8 +23285,8 @@ function ComposerRoot({
23195
23285
  onExitEnd: preview.onExitEnd
23196
23286
  }
23197
23287
  ) : null,
23198
- /* @__PURE__ */ jsxs45("div", { className: Composer_default.top, children: [
23199
- /* @__PURE__ */ jsx60(Crossfade, { state: uploads.length > 0 ? "tray" : "empty", className: Composer_default.tray, children: queue && uploads.length > 0 ? /* @__PURE__ */ jsxs45("div", { className: Composer_default.trayBody, inert: disabled || pending, children: [
23288
+ /* @__PURE__ */ jsxs46("div", { className: Composer_default.top, children: [
23289
+ /* @__PURE__ */ jsx60(Crossfade, { state: uploads.length > 0 ? "tray" : "empty", className: Composer_default.tray, children: queue && uploads.length > 0 ? /* @__PURE__ */ jsxs46("div", { className: Composer_default.trayBody, inert: disabled || pending, children: [
23200
23290
  /* @__PURE__ */ jsx60(
23201
23291
  FileUpload.Queue,
23202
23292
  {
@@ -23231,9 +23321,9 @@ function ComposerRoot({
23231
23321
  }
23232
23322
  ) : null
23233
23323
  ] }),
23234
- /* @__PURE__ */ jsxs45("div", { className: Composer_default.row, "data-composer-row": "", children: [
23324
+ /* @__PURE__ */ jsxs46("div", { className: Composer_default.row, "data-composer-row": "", children: [
23235
23325
  /* @__PURE__ */ jsx60("div", { ref: setAttachSlot, className: Composer_default.start, inert: recording }),
23236
- /* @__PURE__ */ jsxs45("div", { inert: recording, className: Composer_default.field, ...format5.anchorProps, children: [
23326
+ /* @__PURE__ */ jsxs46("div", { inert: recording, className: Composer_default.field, ...format5.anchorProps, children: [
23237
23327
  /* @__PURE__ */ jsx60(
23238
23328
  Textarea.Root,
23239
23329
  {
@@ -23266,7 +23356,7 @@ function ComposerRoot({
23266
23356
  ),
23267
23357
  format5.toolbar
23268
23358
  ] }),
23269
- recording ? /* @__PURE__ */ jsxs45(
23359
+ recording ? /* @__PURE__ */ jsxs46(
23270
23360
  "div",
23271
23361
  {
23272
23362
  ref: setBarRef,
@@ -23311,14 +23401,14 @@ function ComposerRoot({
23311
23401
  // A canvas without fallback content is not exposed: the timer and the live
23312
23402
  // region speak for the recording.
23313
23403
  /* @__PURE__ */ jsx60("canvas", { ref: waveRef, className: cx(Composer_default.wave, enterMotion_default.enter) })
23314
- ) : /* @__PURE__ */ jsxs45("span", { className: Composer_default.slide, "aria-hidden": "true", children: [
23404
+ ) : /* @__PURE__ */ jsxs46("span", { className: Composer_default.slide, "aria-hidden": "true", children: [
23315
23405
  /* @__PURE__ */ jsx60(Icon, { name: "nav.chevronLeft" }),
23316
23406
  labels.slideToCancel
23317
23407
  ] })
23318
23408
  ]
23319
23409
  }
23320
23410
  ) : null,
23321
- /* @__PURE__ */ jsxs45("div", { className: Composer_default.end, children: [
23411
+ /* @__PURE__ */ jsxs46("div", { className: Composer_default.end, children: [
23322
23412
  /* @__PURE__ */ jsx60(
23323
23413
  "div",
23324
23414
  {
@@ -23327,7 +23417,7 @@ function ComposerRoot({
23327
23417
  inert: recording
23328
23418
  }
23329
23419
  ),
23330
- lockPill.mounted ? /* @__PURE__ */ jsxs45(
23420
+ lockPill.mounted ? /* @__PURE__ */ jsxs46(
23331
23421
  "span",
23332
23422
  {
23333
23423
  className: cx(
@@ -23386,7 +23476,7 @@ function VideoPreview({
23386
23476
  },
23387
23477
  [stream]
23388
23478
  );
23389
- return /* @__PURE__ */ jsxs45(
23479
+ return /* @__PURE__ */ jsxs46(
23390
23480
  "div",
23391
23481
  {
23392
23482
  ref,
@@ -23450,7 +23540,7 @@ function ComposerContext({
23450
23540
  focusedMode.current = mode;
23451
23541
  focusFieldIfLive();
23452
23542
  });
23453
- return /* @__PURE__ */ jsxs45(
23543
+ return /* @__PURE__ */ jsxs46(
23454
23544
  "div",
23455
23545
  {
23456
23546
  ...rest,
@@ -23521,7 +23611,7 @@ function ComposerAttach({
23521
23611
  );
23522
23612
  }
23523
23613
  return createPortal2(
23524
- /* @__PURE__ */ jsxs45("div", { ...rest, className: cx(Composer_default.attach, className), children: [
23614
+ /* @__PURE__ */ jsxs46("div", { ...rest, className: cx(Composer_default.attach, className), children: [
23525
23615
  /* @__PURE__ */ jsx60(
23526
23616
  FileUpload.Root,
23527
23617
  {
@@ -23532,7 +23622,7 @@ function ComposerAttach({
23532
23622
  onFilesChange: addFiles
23533
23623
  }
23534
23624
  ),
23535
- /* @__PURE__ */ jsxs45(Dropdown.Root, { children: [
23625
+ /* @__PURE__ */ jsxs46(Dropdown.Root, { children: [
23536
23626
  /* @__PURE__ */ jsx60(Dropdown.Trigger, { children: /* @__PURE__ */ jsx60(Button.Root, { variant: "ghost", tone: "neutral", "aria-label": name, disabled, children: icon }) }),
23537
23627
  /* @__PURE__ */ jsx60(Dropdown.Content, { side: "top", size, children: /* @__PURE__ */ jsx60(AttachPickContext.Provider, { value: pick, children }) })
23538
23628
  ] })
@@ -23609,7 +23699,7 @@ function ComposerKeyboard({
23609
23699
  };
23610
23700
  if (!keyboardSlot || !keyboardToggleSlot) return null;
23611
23701
  const toggleIcon = open ? "nav.chevronDown" : "nav.layoutGrid";
23612
- return /* @__PURE__ */ jsxs45(Fragment33, { children: [
23702
+ return /* @__PURE__ */ jsxs46(Fragment33, { children: [
23613
23703
  createPortal2(
23614
23704
  /* @__PURE__ */ jsx60(
23615
23705
  Button.Root,
@@ -23645,7 +23735,7 @@ function ComposerKeyboard({
23645
23735
  children: row.map((key, keyIndex) => {
23646
23736
  const position = `${rowIndex}:${keyIndex}`;
23647
23737
  const custom = typeof key === "string" ? void 0 : key;
23648
- return /* @__PURE__ */ jsxs45(
23738
+ return /* @__PURE__ */ jsxs46(
23649
23739
  Button.Root,
23650
23740
  {
23651
23741
  variant: "soft",
@@ -23749,7 +23839,7 @@ var DataTable_default = {
23749
23839
  };
23750
23840
 
23751
23841
  // src/components/data-table/ColumnsMenu.tsx
23752
- import { jsx as jsx61, jsxs as jsxs46 } from "react/jsx-runtime";
23842
+ import { jsx as jsx61, jsxs as jsxs47 } from "react/jsx-runtime";
23753
23843
  var columnId = (column) => column.id;
23754
23844
  var columnLabel = (column) => nodeText(column.header) || column.id;
23755
23845
  var MOVE_KEYS = "Alt+ArrowUp Alt+ArrowDown";
@@ -23811,10 +23901,10 @@ function ColumnsMenu({
23811
23901
  }
23812
23902
  reorder.onReorder(id, beforeId);
23813
23903
  };
23814
- const opener = trigger === "icon" ? /* @__PURE__ */ jsxs46(Tooltip.Root, { children: [
23904
+ const opener = trigger === "icon" ? /* @__PURE__ */ jsxs47(Tooltip.Root, { children: [
23815
23905
  /* @__PURE__ */ jsx61(Tooltip.Trigger, { children: /* @__PURE__ */ jsx61(Dropdown.Trigger, { children: /* @__PURE__ */ jsx61(Button.Root, { variant: "ghost", tone: "neutral", size, "aria-label": name, children: /* @__PURE__ */ jsx61(Button.Icon, { children: /* @__PURE__ */ jsx61(Icon, { name: "view.columns" }) }) }) }) }),
23816
23906
  /* @__PURE__ */ jsx61(Tooltip.Content, { children: name })
23817
- ] }) : /* @__PURE__ */ jsx61(Dropdown.Trigger, { children: /* @__PURE__ */ jsxs46(
23907
+ ] }) : /* @__PURE__ */ jsx61(Dropdown.Trigger, { children: /* @__PURE__ */ jsxs47(
23818
23908
  Button.Root,
23819
23909
  {
23820
23910
  "aria-label": `${name} ${shown}`,
@@ -23829,9 +23919,9 @@ function ColumnsMenu({
23829
23919
  ]
23830
23920
  }
23831
23921
  ) });
23832
- const menu = /* @__PURE__ */ jsxs46(Dropdown.Root, { children: [
23922
+ const menu = /* @__PURE__ */ jsxs47(Dropdown.Root, { children: [
23833
23923
  opener,
23834
- /* @__PURE__ */ jsxs46(
23924
+ /* @__PURE__ */ jsxs47(
23835
23925
  Dropdown.Content,
23836
23926
  {
23837
23927
  ref: contentRef,
@@ -23850,7 +23940,7 @@ function ColumnsMenu({
23850
23940
  className: DataTable_default.chooserList,
23851
23941
  renderItem: (column) => {
23852
23942
  const locked = reorder.locked.has(column.id);
23853
- return /* @__PURE__ */ jsxs46(Dnd.SortableItem, { id: column.id, locked, className: DataTable_default.chooserItem, children: [
23943
+ return /* @__PURE__ */ jsxs47(Dnd.SortableItem, { id: column.id, locked, className: DataTable_default.chooserItem, children: [
23854
23944
  checkItem(column, !locked),
23855
23945
  /* @__PURE__ */ jsx61(
23856
23946
  Dnd.Handle,
@@ -23916,7 +24006,7 @@ var Pagination_default = {
23916
24006
  };
23917
24007
 
23918
24008
  // src/components/pagination/Pagination.tsx
23919
- import { jsx as jsx62, jsxs as jsxs47 } from "react/jsx-runtime";
24009
+ import { jsx as jsx62, jsxs as jsxs48 } from "react/jsx-runtime";
23920
24010
  function pageRange(page, total, siblings) {
23921
24011
  if (total <= 2 * siblings + 5) return Array.from({ length: total }, (_, i) => i + 1);
23922
24012
  const left = Math.max(2, page - siblings);
@@ -23965,7 +24055,7 @@ function Pagination({
23965
24055
  "aria-label": labels.nav,
23966
24056
  className: cx(fieldTierClass, Pagination_default.root, className),
23967
24057
  ...toDataAttributes({ size, compact: mode, align }),
23968
- children: /* @__PURE__ */ jsxs47("div", { className: Pagination_default.list, children: [
24058
+ children: /* @__PURE__ */ jsxs48("div", { className: Pagination_default.list, children: [
23969
24059
  /* @__PURE__ */ jsx62(
23970
24060
  Button.Root,
23971
24061
  {
@@ -24001,7 +24091,7 @@ function Pagination({
24001
24091
  item
24002
24092
  )
24003
24093
  ) : null,
24004
- /* @__PURE__ */ jsxs47("span", { className: Pagination_default.summary, children: [
24094
+ /* @__PURE__ */ jsxs48("span", { className: Pagination_default.summary, children: [
24005
24095
  /* @__PURE__ */ jsx62("span", { className: Pagination_default.summaryCurrent, children: current }),
24006
24096
  /* @__PURE__ */ jsx62("span", { "aria-hidden": "true", children: "/" }),
24007
24097
  /* @__PURE__ */ jsx62(VisuallyHidden, { children: labels.of }),
@@ -24025,12 +24115,12 @@ function Pagination({
24025
24115
  }
24026
24116
 
24027
24117
  // src/components/data-table/Footer.tsx
24028
- import { jsx as jsx63, jsxs as jsxs48 } from "react/jsx-runtime";
24118
+ import { jsx as jsx63, jsxs as jsxs49 } from "react/jsx-runtime";
24029
24119
  function Footer({ range, pagination, status }) {
24030
24120
  const present = range !== null || pagination !== null || status !== null;
24031
24121
  const presence = usePartPresence({ present, axis: "block" });
24032
24122
  if (!present) return null;
24033
- return /* @__PURE__ */ jsxs48("div", { ref: presence.ref, className: cx(DataTable_default.footer, presence.className), children: [
24123
+ return /* @__PURE__ */ jsxs49("div", { ref: presence.ref, className: cx(DataTable_default.footer, presence.className), children: [
24034
24124
  range !== null ? /* @__PURE__ */ jsx63("p", { className: DataTable_default.meta, children: range }) : null,
24035
24125
  pagination ? /* @__PURE__ */ jsx63(
24036
24126
  Pagination,
@@ -24042,7 +24132,7 @@ function Footer({ range, pagination, status }) {
24042
24132
  onValueChange: pagination.onPageChange
24043
24133
  }
24044
24134
  ) : null,
24045
- status !== null ? /* @__PURE__ */ jsxs48("p", { className: cx(DataTable_default.meta, DataTable_default.status), "aria-hidden": "true", children: [
24135
+ status !== null ? /* @__PURE__ */ jsxs49("p", { className: cx(DataTable_default.meta, DataTable_default.status), "aria-hidden": "true", children: [
24046
24136
  /* @__PURE__ */ jsx63(Spinner, { "aria-hidden": "true" }),
24047
24137
  status
24048
24138
  ] }) : null
@@ -24107,7 +24197,7 @@ var rowLink_default = {
24107
24197
 
24108
24198
  // src/components/data-table/reorder.tsx
24109
24199
  import * as React71 from "react";
24110
- import { jsx as jsx64, jsxs as jsxs49 } from "react/jsx-runtime";
24200
+ import { jsx as jsx64, jsxs as jsxs50 } from "react/jsx-runtime";
24111
24201
  function useRowReorder(options) {
24112
24202
  const { onReorder, expandEnabled, sorted, rows: rows2, orderedRows, offset, getRowKey, getRowGroup } = options;
24113
24203
  const enabled = onReorder !== void 0 && !expandEnabled;
@@ -24228,7 +24318,7 @@ function ReorderHandleCell({ reorder, rowLabel, className, wrap: wrap2 }) {
24228
24318
  const label = formatLabel(reorder.handleLabel, { label: rowLabel ?? "" }).trim();
24229
24319
  let content;
24230
24320
  if (reorder.locked) {
24231
- content = /* @__PURE__ */ jsxs49(Tooltip.Root, { children: [
24321
+ content = /* @__PURE__ */ jsxs50(Tooltip.Root, { children: [
24232
24322
  /* @__PURE__ */ jsx64(Tooltip.Trigger, { children: /* @__PURE__ */ jsx64(Dnd.Handle, { "aria-label": label, disabled: true }) }),
24233
24323
  /* @__PURE__ */ jsx64(Tooltip.Content, { children: reorder.lockedHint })
24234
24324
  ] });
@@ -24377,7 +24467,7 @@ function flatten(data, options) {
24377
24467
  }
24378
24468
 
24379
24469
  // src/components/data-table/Row.tsx
24380
- import { Fragment as Fragment34, jsx as jsx65, jsxs as jsxs50 } from "react/jsx-runtime";
24470
+ import { Fragment as Fragment34, jsx as jsx65, jsxs as jsxs51 } from "react/jsx-runtime";
24381
24471
  function columnAlign(column) {
24382
24472
  return column.align ?? (column.numeric ? "end" : "start");
24383
24473
  }
@@ -24440,8 +24530,8 @@ function DataTableRowImpl({
24440
24530
  const enter = animate && !foldable && enterMotion_default.enterBase;
24441
24531
  const lead = cx(DataTable_default.cell, enter, shared.stickyFirstColumn && DataTable_default.stickyLead);
24442
24532
  const folded = (node) => foldable ? /* @__PURE__ */ jsx65(Disclosure, { open: !folding, appear: animate, children: /* @__PURE__ */ jsx65("div", { className: DataTable_default.foldPad, children: node }) }) : node;
24443
- return /* @__PURE__ */ jsxs50(Fragment34, { children: [
24444
- /* @__PURE__ */ jsxs50(
24533
+ return /* @__PURE__ */ jsxs51(Fragment34, { children: [
24534
+ /* @__PURE__ */ jsxs51(
24445
24535
  RowElement,
24446
24536
  {
24447
24537
  reorder: shared.reorder,
@@ -24547,7 +24637,7 @@ function DataTableRowImpl({
24547
24637
  folded(
24548
24638
  /* @__PURE__ */ jsx65("a", { href, className: DataTable_default.rowLink, "data-row-link": "", children: renderCell(row, column, true) })
24549
24639
  )
24550
- ) : /* @__PURE__ */ jsxs50(Fragment34, { children: [
24640
+ ) : /* @__PURE__ */ jsxs51(Fragment34, { children: [
24551
24641
  /* @__PURE__ */ jsx65(
24552
24642
  "a",
24553
24643
  {
@@ -24633,7 +24723,7 @@ function GroupRow({ totalColumns, sticky, size, toggle, children }) {
24633
24723
  colSpan: totalColumns,
24634
24724
  className: DataTable_default.groupCell,
24635
24725
  "data-sticky": sticky ? "true" : void 0,
24636
- children: /* @__PURE__ */ jsxs50("div", { className: DataTable_default.groupContent, children: [
24726
+ children: /* @__PURE__ */ jsxs51("div", { className: DataTable_default.groupContent, children: [
24637
24727
  toggle ? /* @__PURE__ */ jsx65(
24638
24728
  Button.Root,
24639
24729
  {
@@ -24660,7 +24750,7 @@ function MeasureBody({
24660
24750
  gripStart,
24661
24751
  endCell
24662
24752
  }) {
24663
- return /* @__PURE__ */ jsx65("tbody", { className: DataTable_default.measureBody, "aria-hidden": "true", inert: true, children: rows2.map(({ row, key, depth }) => /* @__PURE__ */ jsxs50(
24753
+ return /* @__PURE__ */ jsx65("tbody", { className: DataTable_default.measureBody, "aria-hidden": "true", inert: true, children: rows2.map(({ row, key, depth }) => /* @__PURE__ */ jsxs51(
24664
24754
  "tr",
24665
24755
  {
24666
24756
  className: DataTable_default.row,
@@ -24690,7 +24780,7 @@ function MeasureBody({
24690
24780
  }
24691
24781
 
24692
24782
  // src/components/data-table/Head.tsx
24693
- import { Fragment as Fragment35, jsx as jsx66, jsxs as jsxs51 } from "react/jsx-runtime";
24783
+ import { Fragment as Fragment35, jsx as jsx66, jsxs as jsxs52 } from "react/jsx-runtime";
24694
24784
  var ARIA_SORT = { asc: "ascending", desc: "descending" };
24695
24785
  var SORT_ICON = { asc: "sort.ascending", desc: "sort.descending" };
24696
24786
  var columnLabel2 = (column) => nodeText(column.header) || column.id;
@@ -24718,7 +24808,7 @@ function Head({
24718
24808
  stickyHeader && (pinned ? DataTable_default.cornerCellSticky : DataTable_default.headSticky)
24719
24809
  );
24720
24810
  const lead = cx(headCell(stickyFirstColumn), stickyFirstColumn && DataTable_default.stickyLead);
24721
- const leading = /* @__PURE__ */ jsxs51(Fragment35, { children: [
24811
+ const leading = /* @__PURE__ */ jsxs52(Fragment35, { children: [
24722
24812
  gripStart ? /* @__PURE__ */ jsx66("td", { className: cx(lead, DataTable_default.handleCell) }) : null,
24723
24813
  selectAll ? /* @__PURE__ */ jsx66("th", { scope: "col", className: cx(lead, DataTable_default.selectCell), children: /* @__PURE__ */ jsx66(
24724
24814
  Checkbox.Root,
@@ -24760,14 +24850,14 @@ function Head({
24760
24850
  label: column.sortable ? void 0 : infoLabel
24761
24851
  }
24762
24852
  ) : null;
24763
- const label = column.sortable ? /* @__PURE__ */ jsx66(WithDescription, { description: described ? column.description : void 0, children: /* @__PURE__ */ jsxs51(
24853
+ const label = column.sortable ? /* @__PURE__ */ jsx66(WithDescription, { description: described ? column.description : void 0, children: /* @__PURE__ */ jsxs52(
24764
24854
  "button",
24765
24855
  {
24766
24856
  type: "button",
24767
24857
  className: DataTable_default.sortButton,
24768
24858
  "aria-keyshortcuts": moves ? "Alt+ArrowLeft Alt+ArrowRight" : void 0,
24769
24859
  children: [
24770
- /* @__PURE__ */ jsxs51("span", { className: DataTable_default.headTitle, children: [
24860
+ /* @__PURE__ */ jsxs52("span", { className: DataTable_default.headTitle, children: [
24771
24861
  /* @__PURE__ */ jsx66("span", { className: DataTable_default.headLabel, children: column.header }),
24772
24862
  info
24773
24863
  ] }),
@@ -24781,10 +24871,10 @@ function Head({
24781
24871
  )
24782
24872
  ]
24783
24873
  }
24784
- ) }) : column.hideHeader ? /* @__PURE__ */ jsxs51(Fragment35, { children: [
24874
+ ) }) : column.hideHeader ? /* @__PURE__ */ jsxs52(Fragment35, { children: [
24785
24875
  /* @__PURE__ */ jsx66(VisuallyHidden, { id: labelId, children: column.header }),
24786
24876
  menuHere ? /* @__PURE__ */ jsx66("span", { className: DataTable_default.headMenu, children: columnsMenu }) : null
24787
- ] }) : /* @__PURE__ */ jsxs51("span", { className: DataTable_default.headTitle, children: [
24877
+ ] }) : /* @__PURE__ */ jsxs52("span", { className: DataTable_default.headTitle, children: [
24788
24878
  /* @__PURE__ */ jsx66("span", { id: labelId, className: DataTable_default.headLabel, children: column.header }),
24789
24879
  info ? /* @__PURE__ */ jsx66(WithDescription, { description: column.description, children: info }) : null
24790
24880
  ] });
@@ -24807,7 +24897,7 @@ function Head({
24807
24897
  "aria-describedby": described ? descriptionId : void 0,
24808
24898
  onClick: column.sortable ? () => onSort(column.id) : void 0
24809
24899
  },
24810
- content: /* @__PURE__ */ jsxs51(Fragment35, { children: [
24900
+ content: /* @__PURE__ */ jsxs52(Fragment35, { children: [
24811
24901
  label,
24812
24902
  described ? /* @__PURE__ */ jsx66("span", { id: descriptionId, hidden: true, children: column.description }) : null
24813
24903
  ] })
@@ -24842,7 +24932,7 @@ function Head({
24842
24932
  }
24843
24933
  ) });
24844
24934
  }
24845
- return /* @__PURE__ */ jsx66("thead", { className: DataTable_default.head, children: /* @__PURE__ */ jsxs51("tr", { children: [
24935
+ return /* @__PURE__ */ jsx66("thead", { className: DataTable_default.head, children: /* @__PURE__ */ jsxs52("tr", { children: [
24846
24936
  leading,
24847
24937
  columns.map((column, columnIndex) => {
24848
24938
  const { props, content } = cell(column, columnIndex);
@@ -24856,24 +24946,24 @@ function WithDescription({
24856
24946
  children
24857
24947
  }) {
24858
24948
  if (description === void 0) return children;
24859
- return /* @__PURE__ */ jsxs51(Tooltip.Root, { children: [
24949
+ return /* @__PURE__ */ jsxs52(Tooltip.Root, { children: [
24860
24950
  /* @__PURE__ */ jsx66(Tooltip.Trigger, { children }),
24861
24951
  /* @__PURE__ */ jsx66(Tooltip.Content, { children: description })
24862
24952
  ] });
24863
24953
  }
24864
24954
 
24865
24955
  // src/components/data-table/SelectionMenu.tsx
24866
- import { jsx as jsx67, jsxs as jsxs52 } from "react/jsx-runtime";
24956
+ import { jsx as jsx67, jsxs as jsxs53 } from "react/jsx-runtime";
24867
24957
  function SelectionMenu({ selected, actions, onClear, labels, size }) {
24868
24958
  const name = labels.selectionActions;
24869
- return /* @__PURE__ */ jsxs52(Dropdown.Root, { children: [
24870
- /* @__PURE__ */ jsx67(Dropdown.Trigger, { children: /* @__PURE__ */ jsxs52(Button.Root, { "aria-label": `${name} ${selected.length}`, variant: "soft", tone: "neutral", children: [
24959
+ return /* @__PURE__ */ jsxs53(Dropdown.Root, { children: [
24960
+ /* @__PURE__ */ jsx67(Dropdown.Trigger, { children: /* @__PURE__ */ jsxs53(Button.Root, { "aria-label": `${name} ${selected.length}`, variant: "soft", tone: "neutral", children: [
24871
24961
  name,
24872
24962
  /* @__PURE__ */ jsx67(Badge.Root, { children: selected.length }),
24873
24963
  /* @__PURE__ */ jsx67(Button.Icon, { children: /* @__PURE__ */ jsx67(Icon, { name: "nav.chevronDown" }) })
24874
24964
  ] }) }),
24875
- /* @__PURE__ */ jsxs52(Dropdown.Content, { side: "bottom", align: "end", size, children: [
24876
- /* @__PURE__ */ jsxs52(Dropdown.Item, { onSelect: onClear, children: [
24965
+ /* @__PURE__ */ jsxs53(Dropdown.Content, { side: "bottom", align: "end", size, children: [
24966
+ /* @__PURE__ */ jsxs53(Dropdown.Item, { onSelect: onClear, children: [
24877
24967
  /* @__PURE__ */ jsx67(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx67(Icon, { name: "action.close" }) }),
24878
24968
  labels.clearSelection
24879
24969
  ] }),
@@ -24884,7 +24974,7 @@ function SelectionMenu({ selected, actions, onClear, labels, size }) {
24884
24974
  }
24885
24975
 
24886
24976
  // src/components/data-table/StateRows.tsx
24887
- import { jsx as jsx68, jsxs as jsxs53 } from "react/jsx-runtime";
24977
+ import { jsx as jsx68, jsxs as jsxs54 } from "react/jsx-runtime";
24888
24978
  function StateRows({
24889
24979
  state,
24890
24980
  columns,
@@ -24907,7 +24997,7 @@ function StateRows({
24907
24997
  }
24908
24998
  return Array.from({ length: skeletonRows }, (_, rowIndex) => (
24909
24999
  // biome-ignore lint/suspicious/noArrayIndexKey: static placeholder rows
24910
- /* @__PURE__ */ jsxs53("tr", { className: cx(DataTable_default.row, DataTable_default.skeletonRow), "data-skeleton": "true", children: [
25000
+ /* @__PURE__ */ jsxs54("tr", { className: cx(DataTable_default.row, DataTable_default.skeletonRow), "data-skeleton": "true", children: [
24911
25001
  gripStart ? /* @__PURE__ */ jsx68("td", { className: cx(DataTable_default.cell, DataTable_default.handleCell) }) : null,
24912
25002
  selectable ? /* @__PURE__ */ jsx68("td", { className: cx(DataTable_default.cell, DataTable_default.selectCell), children: /* @__PURE__ */ jsx68(Skeleton, { shape: "block", className: DataTable_default.skeletonChoice }) }) : null,
24913
25003
  expandEnabled ? /* @__PURE__ */ jsx68("td", { className: cx(DataTable_default.cell, DataTable_default.toggleCell) }) : null,
@@ -25243,7 +25333,7 @@ function useRowSelection({
25243
25333
  }
25244
25334
 
25245
25335
  // src/components/data-table/DataTable.tsx
25246
- import { jsx as jsx69, jsxs as jsxs54 } from "react/jsx-runtime";
25336
+ import { jsx as jsx69, jsxs as jsxs55 } from "react/jsx-runtime";
25247
25337
  var DATA_TABLE_LABELS = {
25248
25338
  loading: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0434\u0430\u043D\u043D\u044B\u0445\u2026",
25249
25339
  empty: "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F.",
@@ -25932,7 +26022,7 @@ function DataTable({
25932
26022
  );
25933
26023
  };
25934
26024
  return /* @__PURE__ */ jsx69(ReorderRoot, { enabled: reorder.enabled || reorderColumns && showHeader, children: /* @__PURE__ */ jsx69(SurfaceDepthProvider, { value: depth, children: tier.provide(
25935
- /* @__PURE__ */ jsxs54(
26025
+ /* @__PURE__ */ jsxs55(
25936
26026
  "div",
25937
26027
  {
25938
26028
  ...rest,
@@ -25961,13 +26051,13 @@ function DataTable({
25961
26051
  "scroll-height": fillHeight ? "fill" : void 0
25962
26052
  }),
25963
26053
  children: [
25964
- hasToolbar ? /* @__PURE__ */ jsxs54(
26054
+ hasToolbar ? /* @__PURE__ */ jsxs55(
25965
26055
  "div",
25966
26056
  {
25967
26057
  ref: toolbarPresence.ref,
25968
26058
  className: cx(DataTable_default.toolbar, toolbarPresence.className),
25969
26059
  children: [
25970
- toolbar != null || showSelectionActions ? /* @__PURE__ */ jsxs54(ToolRow, { children: [
26060
+ toolbar != null || showSelectionActions ? /* @__PURE__ */ jsxs55(ToolRow, { children: [
25971
26061
  toolbar,
25972
26062
  showSelectionActions ? /* @__PURE__ */ jsx69(
25973
26063
  ToolCell,
@@ -25992,7 +26082,7 @@ function DataTable({
25992
26082
  ]
25993
26083
  }
25994
26084
  ) : null,
25995
- /* @__PURE__ */ jsx69("div", { className: cx(fieldTierClass, DataTable_default.frame), "data-size": compactTier(size), children: /* @__PURE__ */ jsxs54(
26085
+ /* @__PURE__ */ jsx69("div", { className: cx(fieldTierClass, DataTable_default.frame), "data-size": compactTier(size), children: /* @__PURE__ */ jsxs55(
25996
26086
  ScrollContainer,
25997
26087
  {
25998
26088
  ref: scrollRef,
@@ -26002,7 +26092,7 @@ function DataTable({
26002
26092
  "data-size": "xs",
26003
26093
  style: { maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight },
26004
26094
  children: [
26005
- /* @__PURE__ */ jsxs54(
26095
+ /* @__PURE__ */ jsxs55(
26006
26096
  "table",
26007
26097
  {
26008
26098
  ref: mergedTableRef,
@@ -26012,7 +26102,7 @@ function DataTable({
26012
26102
  "aria-rowcount": virtualized ? flatRows.length + headRows : void 0,
26013
26103
  ...columnHover,
26014
26104
  children: [
26015
- /* @__PURE__ */ jsxs54("colgroup", { children: [
26105
+ /* @__PURE__ */ jsxs55("colgroup", { children: [
26016
26106
  gripStart ? /* @__PURE__ */ jsx69("col", {}) : null,
26017
26107
  selectable ? /* @__PURE__ */ jsx69("col", {}) : null,
26018
26108
  expandEnabled ? /* @__PURE__ */ jsx69("col", {}) : null,
@@ -26058,7 +26148,7 @@ function DataTable({
26058
26148
  className: swapClass
26059
26149
  },
26060
26150
  `group-${String(segment.key)}`
26061
- )) }, bodyKey) : groups && bodyState === "rows" ? /* @__PURE__ */ jsx69(React78.Fragment, { children: segments.map((segment) => /* @__PURE__ */ jsxs54("tbody", { className: swapClass, children: [
26151
+ )) }, bodyKey) : groups && bodyState === "rows" ? /* @__PURE__ */ jsx69(React78.Fragment, { children: segments.map((segment) => /* @__PURE__ */ jsxs55("tbody", { className: swapClass, children: [
26062
26152
  groupHeader(segment),
26063
26153
  segment.rows.map(({ item, index }) => renderRow(item, index))
26064
26154
  ] }, `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(
@@ -26188,7 +26278,7 @@ var DescriptionList_default = {
26188
26278
  };
26189
26279
 
26190
26280
  // src/components/description-list/DescriptionList.tsx
26191
- import { Fragment as Fragment37, jsx as jsx71, jsxs as jsxs55 } from "react/jsx-runtime";
26281
+ import { Fragment as Fragment37, jsx as jsx71, jsxs as jsxs56 } from "react/jsx-runtime";
26192
26282
  var DESCRIPTION_LIST_LABELS = {
26193
26283
  empty: "\u2014",
26194
26284
  emptyText: "\u041D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043E"
@@ -26228,10 +26318,10 @@ function DescriptionListItem({ label, children, className, ...rest }) {
26228
26318
  );
26229
26319
  const value = parts.filter((child) => child !== action);
26230
26320
  const empty = value.length === 0 || value.every(isEmptyValue);
26231
- return /* @__PURE__ */ jsxs55("div", { ...rest, className: cx(DescriptionList_default.item, className), children: [
26321
+ return /* @__PURE__ */ jsxs56("div", { ...rest, className: cx(DescriptionList_default.item, className), children: [
26232
26322
  /* @__PURE__ */ jsx71("dt", { className: DescriptionList_default.label, children: label }),
26233
- /* @__PURE__ */ jsxs55("dd", { className: DescriptionList_default.value, "data-empty": empty || void 0, children: [
26234
- /* @__PURE__ */ jsx71("span", { className: DescriptionList_default.text, children: empty ? /* @__PURE__ */ jsxs55(Fragment37, { children: [
26323
+ /* @__PURE__ */ jsxs56("dd", { className: DescriptionList_default.value, "data-empty": empty || void 0, children: [
26324
+ /* @__PURE__ */ jsx71("span", { className: DescriptionList_default.text, children: empty ? /* @__PURE__ */ jsxs56(Fragment37, { children: [
26235
26325
  /* @__PURE__ */ jsx71("span", { "aria-hidden": "true", children: labels.empty }),
26236
26326
  /* @__PURE__ */ jsx71(VisuallyHidden, { children: labels.emptyText })
26237
26327
  ] }) : value }),
@@ -26263,7 +26353,7 @@ var DigitInput_default = {
26263
26353
  };
26264
26354
 
26265
26355
  // src/components/digit-input/DigitInput.tsx
26266
- import { jsx as jsx72, jsxs as jsxs56 } from "react/jsx-runtime";
26356
+ import { jsx as jsx72, jsxs as jsxs57 } from "react/jsx-runtime";
26267
26357
  var DIGIT_INPUT_LABELS = {
26268
26358
  group: "\u041A\u043E\u0434",
26269
26359
  cell: "\u0426\u0438\u0444\u0440\u0430 {index} \u0438\u0437 {length}",
@@ -26431,7 +26521,7 @@ function DigitInput({
26431
26521
  optionalLabel: labels.optional,
26432
26522
  className: cx(DigitInput_default.frame, className),
26433
26523
  "data-full-width": fullWidth || void 0,
26434
- children: /* @__PURE__ */ jsxs56(
26524
+ children: /* @__PURE__ */ jsxs57(
26435
26525
  "fieldset",
26436
26526
  {
26437
26527
  "aria-label": ids.labelledBy ? void 0 : labels.group,
@@ -26617,7 +26707,7 @@ var ExampleFrame_default = {
26617
26707
  };
26618
26708
 
26619
26709
  // src/components/example-frame/ExampleFrame.tsx
26620
- import { jsx as jsx74, jsxs as jsxs57 } from "react/jsx-runtime";
26710
+ import { jsx as jsx74, jsxs as jsxs58 } from "react/jsx-runtime";
26621
26711
  var VIEWPORTS = ["desktop", "tablet", "mobile"];
26622
26712
  var EXAMPLE_FRAME_LABELS = {
26623
26713
  paneSwitch: "\u0412\u0438\u0434 \u043F\u0440\u0438\u043C\u0435\u0440\u0430",
@@ -26754,7 +26844,7 @@ function ExampleFrame({
26754
26844
  previousScheme.current = colorScheme;
26755
26845
  if (rootRef.current) suspendTransitions(rootRef.current);
26756
26846
  }, [colorScheme]);
26757
- return /* @__PURE__ */ jsxs57("div", { ...rest, ref: mergedRef, className: cx(ExampleFrame_default.root, className), "data-depth": depth, children: [
26847
+ return /* @__PURE__ */ jsxs58("div", { ...rest, ref: mergedRef, className: cx(ExampleFrame_default.root, className), "data-depth": depth, children: [
26758
26848
  /* @__PURE__ */ jsx74(
26759
26849
  ExampleFrameToolbar,
26760
26850
  {
@@ -26833,9 +26923,9 @@ function ExampleFrameToolbar({
26833
26923
  const copyLabel = copyState === "copied" ? labels.copied : copyState === "error" ? labels.copyError : labels.copy;
26834
26924
  const themeGlyph = colorScheme === "light" ? "theme.dark" : "theme.light";
26835
26925
  const copyGlyph = copyState === "copied" ? "action.check" : "action.copy";
26836
- return /* @__PURE__ */ jsxs57("div", { ref: toolbarRef, className: ExampleFrame_default.toolbar, "data-narrow": narrow || void 0, children: [
26837
- /* @__PURE__ */ jsxs57("div", { className: ExampleFrame_default.toolbarLine1, children: [
26838
- /* @__PURE__ */ jsxs57(
26926
+ return /* @__PURE__ */ jsxs58("div", { ref: toolbarRef, className: ExampleFrame_default.toolbar, "data-narrow": narrow || void 0, children: [
26927
+ /* @__PURE__ */ jsxs58("div", { className: ExampleFrame_default.toolbarLine1, children: [
26928
+ /* @__PURE__ */ jsxs58(
26839
26929
  SegmentedControl.Root,
26840
26930
  {
26841
26931
  className: ExampleFrame_default.toolbarPaneSegment,
@@ -26845,18 +26935,18 @@ function ExampleFrameToolbar({
26845
26935
  size: "s",
26846
26936
  "aria-label": labels.paneSwitch,
26847
26937
  children: [
26848
- /* @__PURE__ */ jsxs57(SegmentedControl.Item, { value: "preview", children: [
26938
+ /* @__PURE__ */ jsxs58(SegmentedControl.Item, { value: "preview", children: [
26849
26939
  /* @__PURE__ */ jsx74(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx74(Icon, { name: "view.preview" }) }),
26850
26940
  labels.preview
26851
26941
  ] }),
26852
- /* @__PURE__ */ jsxs57(SegmentedControl.Item, { value: "code", children: [
26942
+ /* @__PURE__ */ jsxs58(SegmentedControl.Item, { value: "code", children: [
26853
26943
  /* @__PURE__ */ jsx74(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx74(Icon, { name: "view.code" }) }),
26854
26944
  labels.code
26855
26945
  ] })
26856
26946
  ]
26857
26947
  }
26858
26948
  ),
26859
- /* @__PURE__ */ jsxs57("div", { className: ExampleFrame_default.toolbarLine1End, children: [
26949
+ /* @__PURE__ */ jsxs58("div", { className: ExampleFrame_default.toolbarLine1End, children: [
26860
26950
  onColorSchemeChange ? /* @__PURE__ */ jsx74(
26861
26951
  Button.Root,
26862
26952
  {
@@ -26892,7 +26982,7 @@ function ExampleFrameToolbar({
26892
26982
  onValueChange: (v) => onViewportChange(v),
26893
26983
  size: "s",
26894
26984
  "aria-label": labels.viewportSwitch,
26895
- children: VIEWPORTS.map((option) => /* @__PURE__ */ jsxs57(SegmentedControl.Item, { value: option, children: [
26985
+ children: VIEWPORTS.map((option) => /* @__PURE__ */ jsxs58(SegmentedControl.Item, { value: option, children: [
26896
26986
  /* @__PURE__ */ jsx74(SegmentedControl.Icon, { children: /* @__PURE__ */ jsx74(Icon, { name: `viewport.${option}` }) }),
26897
26987
  labels[option]
26898
26988
  ] }, option))
@@ -26930,7 +27020,7 @@ var FieldList_default = {
26930
27020
  };
26931
27021
 
26932
27022
  // src/components/field-list/FieldList.tsx
26933
- import { Fragment as Fragment39, jsx as jsx75, jsxs as jsxs58 } from "react/jsx-runtime";
27023
+ import { Fragment as Fragment39, jsx as jsx75, jsxs as jsxs59 } from "react/jsx-runtime";
26934
27024
  var FIELD_LIST_LABELS = {
26935
27025
  remove: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C: {row}",
26936
27026
  reorder: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C: {row}",
@@ -27226,7 +27316,7 @@ function FieldList({
27226
27316
  if (menu) {
27227
27317
  const canUp = canMove(index, -1);
27228
27318
  const canDown = canMove(index, 1);
27229
- action = /* @__PURE__ */ jsxs58(Dropdown.Root, { children: [
27319
+ action = /* @__PURE__ */ jsxs59(Dropdown.Root, { children: [
27230
27320
  /* @__PURE__ */ jsx75(Dropdown.Trigger, { children: /* @__PURE__ */ jsx75(
27231
27321
  Button.Root,
27232
27322
  {
@@ -27245,21 +27335,21 @@ function FieldList({
27245
27335
  children: /* @__PURE__ */ jsx75(Button.Icon, { children: /* @__PURE__ */ jsx75(Icon, { name: "action.more" }) })
27246
27336
  }
27247
27337
  ) }),
27248
- /* @__PURE__ */ jsxs58(Dropdown.Content, { align: "end", children: [
27249
- reorderable ? /* @__PURE__ */ jsxs58(Fragment39, { children: [
27250
- /* @__PURE__ */ jsxs58(Dropdown.Item, { disabled: !canUp, onSelect: () => move(id, -1), children: [
27338
+ /* @__PURE__ */ jsxs59(Dropdown.Content, { align: "end", children: [
27339
+ reorderable ? /* @__PURE__ */ jsxs59(Fragment39, { children: [
27340
+ /* @__PURE__ */ jsxs59(Dropdown.Item, { disabled: !canUp, onSelect: () => move(id, -1), children: [
27251
27341
  /* @__PURE__ */ jsx75(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx75(Icon, { name: "nav.chevronUp" }) }),
27252
27342
  labels.moveUp,
27253
27343
  /* @__PURE__ */ jsx75(Dropdown.ItemShortcut, { children: "Alt \u2191" })
27254
27344
  ] }),
27255
- /* @__PURE__ */ jsxs58(Dropdown.Item, { disabled: !canDown, onSelect: () => move(id, 1), children: [
27345
+ /* @__PURE__ */ jsxs59(Dropdown.Item, { disabled: !canDown, onSelect: () => move(id, 1), children: [
27256
27346
  /* @__PURE__ */ jsx75(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx75(Icon, { name: "nav.chevronDown" }) }),
27257
27347
  labels.moveDown,
27258
27348
  /* @__PURE__ */ jsx75(Dropdown.ItemShortcut, { children: "Alt \u2193" })
27259
27349
  ] }),
27260
27350
  /* @__PURE__ */ jsx75(Dropdown.Separator, {})
27261
27351
  ] }) : null,
27262
- /* @__PURE__ */ jsxs58(Dropdown.Item, { tone: "danger", disabled: removeOff, onSelect: () => remove(id), children: [
27352
+ /* @__PURE__ */ jsxs59(Dropdown.Item, { tone: "danger", disabled: removeOff, onSelect: () => remove(id), children: [
27263
27353
  /* @__PURE__ */ jsx75(Dropdown.ItemIcon, { children: /* @__PURE__ */ jsx75(Icon, { name: "action.delete" }) }),
27264
27354
  labels.removeItem,
27265
27355
  reason ? /* @__PURE__ */ jsx75(Dropdown.ItemDescription, { children: reason }) : null
@@ -27279,12 +27369,12 @@ function FieldList({
27279
27369
  children: /* @__PURE__ */ jsx75(Button.Icon, { children: /* @__PURE__ */ jsx75(Icon, { name: "action.close" }) })
27280
27370
  }
27281
27371
  );
27282
- action = reason ? /* @__PURE__ */ jsxs58(Tooltip.Root, { children: [
27372
+ action = reason ? /* @__PURE__ */ jsxs59(Tooltip.Root, { children: [
27283
27373
  /* @__PURE__ */ jsx75(Tooltip.Trigger, { children: removeButton }),
27284
27374
  /* @__PURE__ */ jsx75(Tooltip.Content, { children: reason })
27285
27375
  ] }) : removeButton;
27286
27376
  }
27287
- const content = /* @__PURE__ */ jsxs58(Fragment39, { children: [
27377
+ const content = /* @__PURE__ */ jsxs59(Fragment39, { children: [
27288
27378
  /* @__PURE__ */ jsx75("div", { className: FieldList_default.cells, "data-fl-cells": "", children: cells.map((cell, column) => {
27289
27379
  const heading = columns[column];
27290
27380
  return /* @__PURE__ */ jsx75(
@@ -27342,7 +27432,7 @@ function FieldList({
27342
27432
  };
27343
27433
  return grip ? /* @__PURE__ */ jsx75(Dnd.SortableItem, { id, locked, ...rowProps, children: content }, id) : /* @__PURE__ */ jsx75("li", { ...rowProps, children: content }, id);
27344
27434
  };
27345
- const sheet = /* @__PURE__ */ jsxs58(
27435
+ const sheet = /* @__PURE__ */ jsxs59(
27346
27436
  "div",
27347
27437
  {
27348
27438
  className: FieldList_default.sheet,
@@ -27350,7 +27440,7 @@ function FieldList({
27350
27440
  "data-depth": surface ? depth : void 0,
27351
27441
  "data-empty": items.length === 0 || void 0,
27352
27442
  children: [
27353
- hasHead ? /* @__PURE__ */ jsxs58(
27443
+ hasHead ? /* @__PURE__ */ jsxs59(
27354
27444
  "div",
27355
27445
  {
27356
27446
  ref: head.ref,
@@ -27404,7 +27494,7 @@ function FieldList({
27404
27494
  ),
27405
27495
  totalCells ? (
27406
27496
  // biome-ignore lint/a11y/useSemanticElements: a row of figures, not a form fieldset
27407
- /* @__PURE__ */ jsxs58(
27497
+ /* @__PURE__ */ jsxs59(
27408
27498
  "div",
27409
27499
  {
27410
27500
  ref: totals.ref,
@@ -27424,7 +27514,7 @@ function FieldList({
27424
27514
  "data-width": heading?.width ?? "fill",
27425
27515
  "data-empty": !shown && column > 0 || void 0,
27426
27516
  "data-align": endColumns[column] === "1" ? "end" : void 0,
27427
- children: shown ? /* @__PURE__ */ jsxs58(Fragment39, { children: [
27517
+ children: shown ? /* @__PURE__ */ jsxs59(Fragment39, { children: [
27428
27518
  /* @__PURE__ */ jsx75("span", { className: cx(visuallyHiddenClass, FieldList_default.totalName), children: heading?.label }),
27429
27519
  /* @__PURE__ */ jsx75("span", { className: FieldList_default.totalValue, children: total })
27430
27520
  ] }) : column === 0 ? (
@@ -27461,9 +27551,9 @@ function FieldList({
27461
27551
  group: true,
27462
27552
  className: cx(FieldList_default.root, className),
27463
27553
  ...toDataAttributes({ disabled: disabled || void 0 }),
27464
- children: /* @__PURE__ */ jsxs58("div", { ref: bodyRef, className: FieldList_default.body, children: [
27554
+ children: /* @__PURE__ */ jsxs59("div", { ref: bodyRef, className: FieldList_default.body, children: [
27465
27555
  surface ? /* @__PURE__ */ jsx75(SurfaceDepthProvider, { value: depth, children: sheet }) : sheet,
27466
- canAdd ? /* @__PURE__ */ jsx75("div", { ref: addZone.ref, className: cx(FieldList_default.add, addZone.className), children: /* @__PURE__ */ jsxs58(
27556
+ canAdd ? /* @__PURE__ */ jsx75("div", { ref: addZone.ref, className: cx(FieldList_default.add, addZone.className), children: /* @__PURE__ */ jsxs59(
27467
27557
  Button.Root,
27468
27558
  {
27469
27559
  ref: addRef,
@@ -27508,7 +27598,7 @@ var Fieldset_default = {
27508
27598
  };
27509
27599
 
27510
27600
  // src/components/fieldset/Fieldset.tsx
27511
- import { jsx as jsx76, jsxs as jsxs59 } from "react/jsx-runtime";
27601
+ import { jsx as jsx76, jsxs as jsxs60 } from "react/jsx-runtime";
27512
27602
  function Fieldset({
27513
27603
  label,
27514
27604
  description,
@@ -27522,7 +27612,7 @@ function Fieldset({
27522
27612
  const descriptionId = React84.useId();
27523
27613
  const hasDescription = hasContent(description);
27524
27614
  const describedBy = [ariaDescribedBy, hasDescription ? descriptionId : void 0].filter(Boolean).join(" ") || void 0;
27525
- return /* @__PURE__ */ jsxs59(
27615
+ return /* @__PURE__ */ jsxs60(
27526
27616
  "fieldset",
27527
27617
  {
27528
27618
  ...rest,
@@ -27532,7 +27622,7 @@ function Fieldset({
27532
27622
  ...toDataAttributes({ disabled: disabled || void 0 }),
27533
27623
  children: [
27534
27624
  hasContent(label) ? /* @__PURE__ */ jsx76("legend", { className: cx(textRole_default.titleS, Fieldset_default.legend), children: label }) : null,
27535
- /* @__PURE__ */ jsxs59("div", { className: Fieldset_default.body, children: [
27625
+ /* @__PURE__ */ jsxs60("div", { className: Fieldset_default.body, children: [
27536
27626
  hasDescription ? /* @__PURE__ */ jsx76("p", { id: descriptionId, className: cx(textRole_default.bodyS, Fieldset_default.description), children: description }) : null,
27537
27627
  /* @__PURE__ */ jsx76("div", { className: Fieldset_default.fields, children: /* @__PURE__ */ jsx76(DisabledProvider, { disabled, children }) })
27538
27628
  ] })
@@ -27827,7 +27917,7 @@ function visibleSegment(rect, viewport2) {
27827
27917
  }
27828
27918
 
27829
27919
  // src/components/gantt/GanttBar.tsx
27830
- import { Fragment as Fragment40, jsx as jsx77, jsxs as jsxs60 } from "react/jsx-runtime";
27920
+ import { Fragment as Fragment40, jsx as jsx77, jsxs as jsxs61 } from "react/jsx-runtime";
27831
27921
  var EDIT_SHORTCUTS = [
27832
27922
  "Shift+ArrowLeft",
27833
27923
  "Shift+ArrowRight",
@@ -27993,7 +28083,7 @@ function GanttBarView({
27993
28083
  },
27994
28084
  [barRef]
27995
28085
  );
27996
- return /* @__PURE__ */ jsxs60(Fragment40, { children: [
28086
+ return /* @__PURE__ */ jsxs61(Fragment40, { children: [
27997
28087
  guide !== null ? /* @__PURE__ */ jsx77(
27998
28088
  "span",
27999
28089
  {
@@ -28002,13 +28092,13 @@ function GanttBarView({
28002
28092
  "aria-hidden": "true"
28003
28093
  }
28004
28094
  ) : null,
28005
- /* @__PURE__ */ jsxs60(
28095
+ /* @__PURE__ */ jsxs61(
28006
28096
  Tooltip.Root,
28007
28097
  {
28008
28098
  open: tipOpen || drag !== null,
28009
28099
  onOpenChange: (open) => setTipOpen(open && canShowTip(bar.id)),
28010
28100
  children: [
28011
- /* @__PURE__ */ jsx77(Tooltip.Trigger, { children: /* @__PURE__ */ jsxs60(
28101
+ /* @__PURE__ */ jsx77(Tooltip.Trigger, { children: /* @__PURE__ */ jsxs61(
28012
28102
  "button",
28013
28103
  {
28014
28104
  ref: setNode,
@@ -28068,16 +28158,16 @@ function GanttBarView({
28068
28158
  milestone ? /* @__PURE__ */ jsx77("span", { className: Gantt_default.diamond, "aria-hidden": "true" }) : null,
28069
28159
  pending ? /* @__PURE__ */ jsx77(Spinner, { size: "xs", className: Gantt_default.spinner, "aria-hidden": "true" }) : null,
28070
28160
  /* @__PURE__ */ jsx77("span", { className: Gantt_default.label, "data-gantt-label": "", "aria-hidden": "true", children: bar.label }),
28071
- editable && !milestone ? /* @__PURE__ */ jsxs60(Fragment40, { children: [
28161
+ editable && !milestone ? /* @__PURE__ */ jsxs61(Fragment40, { children: [
28072
28162
  /* @__PURE__ */ jsx77("span", { className: Gantt_default.handle, "data-handle": "start", "aria-hidden": "true" }),
28073
28163
  /* @__PURE__ */ jsx77("span", { className: Gantt_default.handle, "data-handle": "end", "aria-hidden": "true" })
28074
28164
  ] }) : null
28075
28165
  ]
28076
28166
  }
28077
28167
  ) }),
28078
- tipMounted ? /* @__PURE__ */ jsxs60(Tooltip.Content, { children: [
28168
+ tipMounted ? /* @__PURE__ */ jsxs61(Tooltip.Content, { children: [
28079
28169
  /* @__PURE__ */ jsx77("span", { className: Gantt_default.tipTitle, children: bar.label }),
28080
- /* @__PURE__ */ jsxs60("span", { className: Gantt_default.tipMeta, children: [
28170
+ /* @__PURE__ */ jsxs61("span", { className: Gantt_default.tipMeta, children: [
28081
28171
  formatSpan(shown, locale),
28082
28172
  milestone ? null : ` \xB7 ${formatDuration(daysBetween2(shown.start, shown.end))}`,
28083
28173
  progress === void 0 ? null : ` \xB7 ${progress}%`
@@ -28091,7 +28181,7 @@ function GanttBarView({
28091
28181
  }
28092
28182
 
28093
28183
  // src/components/gantt/GanttRow.tsx
28094
- import { Fragment as Fragment41, jsx as jsx78, jsxs as jsxs61 } from "react/jsx-runtime";
28184
+ import { Fragment as Fragment41, jsx as jsx78, jsxs as jsxs62 } from "react/jsx-runtime";
28095
28185
  function GanttRowView({
28096
28186
  ctx,
28097
28187
  index,
@@ -28129,7 +28219,7 @@ function GanttRowView({
28129
28219
  const start = new Date(rangeStart);
28130
28220
  const windowed = windowFrom <= windowTo;
28131
28221
  const on = (event) => (native) => ctx.track(event, index, native);
28132
- const content = /* @__PURE__ */ jsxs61(Fragment41, { children: [
28222
+ const content = /* @__PURE__ */ jsxs62(Fragment41, { children: [
28133
28223
  renderRowAvatar ? /* @__PURE__ */ jsx78("span", { className: Gantt_default.rowAvatar, children: renderRowAvatar(row) }) : null,
28134
28224
  /* @__PURE__ */ jsx78("span", { className: Gantt_default.rowLabel, children: renderRow ? renderRow(row) : label })
28135
28225
  ] });
@@ -28140,7 +28230,7 @@ function GanttRowView({
28140
28230
  "aria-keyshortcuts": creatable ? "N" : void 0,
28141
28231
  onFocus: () => ctx.focus(navId)
28142
28232
  };
28143
- return /* @__PURE__ */ jsxs61(
28233
+ return /* @__PURE__ */ jsxs62(
28144
28234
  "div",
28145
28235
  {
28146
28236
  ref: measureRef,
@@ -28190,7 +28280,7 @@ function GanttRowView({
28190
28280
  children: content
28191
28281
  }
28192
28282
  ) }),
28193
- /* @__PURE__ */ jsxs61(
28283
+ /* @__PURE__ */ jsxs62(
28194
28284
  "div",
28195
28285
  {
28196
28286
  role: "gridcell",
@@ -28252,8 +28342,8 @@ function GanttRowView({
28252
28342
  bar.id
28253
28343
  );
28254
28344
  }),
28255
- ghost ? /* @__PURE__ */ jsxs61(Tooltip.Root, { open: ghost.status === "drawing", children: [
28256
- /* @__PURE__ */ jsx78(Tooltip.Trigger, { children: /* @__PURE__ */ jsxs61(
28345
+ ghost ? /* @__PURE__ */ jsxs62(Tooltip.Root, { open: ghost.status === "drawing", children: [
28346
+ /* @__PURE__ */ jsx78(Tooltip.Trigger, { children: /* @__PURE__ */ jsxs62(
28257
28347
  "span",
28258
28348
  {
28259
28349
  tabIndex: -1,
@@ -28271,9 +28361,9 @@ function GanttRowView({
28271
28361
  ]
28272
28362
  }
28273
28363
  ) }),
28274
- /* @__PURE__ */ jsxs61(Tooltip.Content, { children: [
28364
+ /* @__PURE__ */ jsxs62(Tooltip.Content, { children: [
28275
28365
  /* @__PURE__ */ jsx78("span", { className: Gantt_default.tipTitle, children: newBarLabel }),
28276
- /* @__PURE__ */ jsxs61("span", { className: Gantt_default.tipMeta, children: [
28366
+ /* @__PURE__ */ jsxs62("span", { className: Gantt_default.tipMeta, children: [
28277
28367
  formatSpan(ghost.dates, locale),
28278
28368
  " \xB7",
28279
28369
  " ",
@@ -28291,7 +28381,7 @@ function GanttRowView({
28291
28381
  var GanttRow = React86.memo(GanttRowView);
28292
28382
 
28293
28383
  // src/components/gantt/Gantt.tsx
28294
- import { Fragment as Fragment42, jsx as jsx79, jsxs as jsxs62 } from "react/jsx-runtime";
28384
+ import { Fragment as Fragment42, jsx as jsx79, jsxs as jsxs63 } from "react/jsx-runtime";
28295
28385
  var GANTT_LABELS = {
28296
28386
  rowsHeader: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",
28297
28387
  timeline: "\u0428\u043A\u0430\u043B\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u0438",
@@ -29139,9 +29229,9 @@ function Gantt({
29139
29229
  const lineCells = tiers.bottom.filter(
29140
29230
  (cell) => (scale === "month" || cell.boundary) && inWindow(cell.x, 0)
29141
29231
  );
29142
- const backdrop = /* @__PURE__ */ jsxs62(Fragment42, { children: [
29232
+ const backdrop = /* @__PURE__ */ jsxs63(Fragment42, { children: [
29143
29233
  /* @__PURE__ */ jsx79("div", { className: Gantt_default.backdropWash, "aria-hidden": "true" }),
29144
- /* @__PURE__ */ jsxs62("div", { className: Gantt_default.backdropLines, "aria-hidden": "true", children: [
29234
+ /* @__PURE__ */ jsxs63("div", { className: Gantt_default.backdropLines, "aria-hidden": "true", children: [
29145
29235
  lineCells.map((cell) => /* @__PURE__ */ jsx79(
29146
29236
  "span",
29147
29237
  {
@@ -29263,8 +29353,8 @@ function Gantt({
29263
29353
  const origin = todayInRange ? todayX : 0;
29264
29354
  body = SKELETON_ROWS3.map((bars, index) => (
29265
29355
  // biome-ignore lint/suspicious/noArrayIndexKey: static placeholder rows
29266
- /* @__PURE__ */ jsxs62("div", { className: Gantt_default.row, style: { "--lanes": 1 }, children: [
29267
- /* @__PURE__ */ jsxs62("div", { className: Gantt_default.rowHeader, children: [
29356
+ /* @__PURE__ */ jsxs63("div", { className: Gantt_default.row, style: { "--lanes": 1 }, children: [
29357
+ /* @__PURE__ */ jsxs63("div", { className: Gantt_default.rowHeader, children: [
29268
29358
  hasAvatar ? /* @__PURE__ */ jsx79("span", { className: Gantt_default.rowAvatar, children: /* @__PURE__ */ jsx79(Skeleton, { shape: "circle" }) }) : null,
29269
29359
  /* @__PURE__ */ jsx79("span", { className: Gantt_default.rowLabel, children: /* @__PURE__ */ jsx79(Skeleton, { className: Gantt_default.skeletonLabel }) })
29270
29360
  ] }),
@@ -29332,7 +29422,7 @@ function Gantt({
29332
29422
  const topCells = tiers.top.filter((cell) => inWindow(cell.x, cell.span));
29333
29423
  const bottomCells = tiers.bottom.filter((cell) => inWindow(cell.x, cell.span));
29334
29424
  return /* @__PURE__ */ jsx79(SurfaceDepthProvider, { value: depth, children: tier.provide(
29335
- /* @__PURE__ */ jsxs62(
29425
+ /* @__PURE__ */ jsxs63(
29336
29426
  "div",
29337
29427
  {
29338
29428
  ...rest,
@@ -29379,7 +29469,7 @@ function Gantt({
29379
29469
  },
29380
29470
  onWheel: () => closeTips(false),
29381
29471
  onTouchMove: () => closeTips(false),
29382
- children: /* @__PURE__ */ jsx79(AnchorRectProvider, { value: anchorToVisible, children: /* @__PURE__ */ jsx79(FloatingBoundaryProvider, { value: timelineBoundary, children: /* @__PURE__ */ jsx79(Tooltip.Provider, { children: /* @__PURE__ */ jsxs62(
29472
+ children: /* @__PURE__ */ jsx79(AnchorRectProvider, { value: anchorToVisible, children: /* @__PURE__ */ jsx79(FloatingBoundaryProvider, { value: timelineBoundary, children: /* @__PURE__ */ jsx79(Tooltip.Provider, { children: /* @__PURE__ */ jsxs63(
29383
29473
  "div",
29384
29474
  {
29385
29475
  role: "grid",
@@ -29391,7 +29481,7 @@ function Gantt({
29391
29481
  style: gridStyle,
29392
29482
  onKeyDown: onGridKeyDown,
29393
29483
  children: [
29394
- /* @__PURE__ */ jsxs62(
29484
+ /* @__PURE__ */ jsxs63(
29395
29485
  "div",
29396
29486
  {
29397
29487
  ref: headRef,
@@ -29409,7 +29499,7 @@ function Gantt({
29409
29499
  children: /* @__PURE__ */ jsx79("span", { className: Gantt_default.cornerText, children: labels.rowsHeader })
29410
29500
  }
29411
29501
  ),
29412
- /* @__PURE__ */ jsxs62(
29502
+ /* @__PURE__ */ jsxs63(
29413
29503
  "div",
29414
29504
  {
29415
29505
  ref: axisRef,
@@ -29455,7 +29545,7 @@ function Gantt({
29455
29545
  ]
29456
29546
  }
29457
29547
  ),
29458
- /* @__PURE__ */ jsx79(RegionSwap, { state: bodyState, children: /* @__PURE__ */ jsxs62(
29548
+ /* @__PURE__ */ jsx79(RegionSwap, { state: bodyState, children: /* @__PURE__ */ jsxs63(
29459
29549
  "div",
29460
29550
  {
29461
29551
  role: "rowgroup",
@@ -29494,7 +29584,7 @@ var GanttToolbar = React87.memo(function GanttToolbar2({
29494
29584
  onToday,
29495
29585
  onScale
29496
29586
  }) {
29497
- return /* @__PURE__ */ jsxs62(ToolRow, { className: Gantt_default.toolbar, children: [
29587
+ return /* @__PURE__ */ jsxs63(ToolRow, { className: Gantt_default.toolbar, children: [
29498
29588
  toolbar != null && toolbar !== false ? /* @__PURE__ */ jsx79(ToolGroup, { children: toolbar }) : null,
29499
29589
  /* @__PURE__ */ jsx79(Button.Root, { variant: "ghost", tone: "neutral", disabled: !todayInRange, onClick: onToday, children: labels.today }),
29500
29590
  /* @__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)) })
@@ -29536,7 +29626,7 @@ var Kanban_default = {
29536
29626
  };
29537
29627
 
29538
29628
  // src/components/kanban/Kanban.tsx
29539
- import { Fragment as Fragment43, jsx as jsx80, jsxs as jsxs63 } from "react/jsx-runtime";
29629
+ import { Fragment as Fragment43, jsx as jsx80, jsxs as jsxs64 } from "react/jsx-runtime";
29540
29630
  var KANBAN_LABELS = {
29541
29631
  count: "\u041A\u0430\u0440\u0442\u043E\u0447\u0435\u043A: {count}",
29542
29632
  countLimit: "\u041A\u0430\u0440\u0442\u043E\u0447\u0435\u043A: {count} \u0438\u0437 {limit}",
@@ -29751,7 +29841,7 @@ function KanbanBoard({
29751
29841
  // Before the columns arrive: placeholder columns in the column geometry.
29752
29842
  /* @__PURE__ */ jsx80("div", { className: Kanban_default.placeholders, "aria-hidden": "true", children: Array.from({ length: loadingColumns }, (_, columnIndex) => (
29753
29843
  // biome-ignore lint/suspicious/noArrayIndexKey: identical placeholder columns
29754
- /* @__PURE__ */ jsxs63("div", { className: Kanban_default.column, children: [
29844
+ /* @__PURE__ */ jsxs64("div", { className: Kanban_default.column, children: [
29755
29845
  /* @__PURE__ */ jsx80("div", { className: cx(Kanban_default.header, hairline_default.bottom), children: /* @__PURE__ */ jsx80(Skeleton, { shape: "block", className: Kanban_default.skeletonTitle }) }),
29756
29846
  /* @__PURE__ */ jsx80("div", { className: Kanban_default.body, children: /* @__PURE__ */ jsx80(
29757
29847
  SkeletonCards,
@@ -29810,7 +29900,7 @@ function SkeletonCards({
29810
29900
  count,
29811
29901
  cardDepth
29812
29902
  }) {
29813
- return /* @__PURE__ */ jsx80("div", { className: Kanban_default.list, children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsxs63(
29903
+ return /* @__PURE__ */ jsx80("div", { className: Kanban_default.list, children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsxs64(
29814
29904
  "div",
29815
29905
  {
29816
29906
  className: cx(Kanban_default.item, Kanban_default.skeleton),
@@ -29819,7 +29909,7 @@ function SkeletonCards({
29819
29909
  "aria-hidden": "true",
29820
29910
  children: [
29821
29911
  /* @__PURE__ */ jsx80(Skeleton, { lines: 2 }),
29822
- /* @__PURE__ */ jsxs63("div", { className: Kanban_default.footer, children: [
29912
+ /* @__PURE__ */ jsxs64("div", { className: Kanban_default.footer, children: [
29823
29913
  /* @__PURE__ */ jsx80(Skeleton, { shape: "block", className: Kanban_default.skeletonBadge }),
29824
29914
  /* @__PURE__ */ jsx80(Skeleton, { shape: "circle", size: "s" })
29825
29915
  ] })
@@ -29858,7 +29948,7 @@ function KanbanColumnView({
29858
29948
  );
29859
29949
  const showMeta = metaLines.length > 0;
29860
29950
  const describedBy = [column.description ? descriptionId : null, showMeta ? metaId : null].filter(Boolean).join(" ") || void 0;
29861
- return /* @__PURE__ */ jsxs63(
29951
+ return /* @__PURE__ */ jsxs64(
29862
29952
  Dnd.SortableItem,
29863
29953
  {
29864
29954
  id: column.id,
@@ -29867,14 +29957,14 @@ function KanbanColumnView({
29867
29957
  "data-kanban-column": column.id,
29868
29958
  "data-full": full || void 0,
29869
29959
  children: [
29870
- /* @__PURE__ */ jsx80(ControlSizeProvider, { value: "s", children: /* @__PURE__ */ jsxs63(
29960
+ /* @__PURE__ */ jsx80(ControlSizeProvider, { value: "s", children: /* @__PURE__ */ jsxs64(
29871
29961
  "div",
29872
29962
  {
29873
29963
  className: cx(Kanban_default.header, hairline_default.bottom),
29874
29964
  "data-reorderable": reorderable || void 0,
29875
29965
  children: [
29876
29966
  /* @__PURE__ */ jsx80(Title, { id: headingId, className: cx(textRole_default.titleM, Kanban_default.title), children: column.title }),
29877
- loading ? null : /* @__PURE__ */ jsxs63(Fragment43, { children: [
29967
+ loading ? null : /* @__PURE__ */ jsxs64(Fragment43, { children: [
29878
29968
  /* @__PURE__ */ jsx80(Badge.Root, { color: full ? "orange" : column.color ?? "gray", "aria-hidden": "true", children: column.limit === void 0 ? count : `${count} / ${column.limit}` }),
29879
29969
  /* @__PURE__ */ jsx80(VisuallyHidden, { children: countText })
29880
29970
  ] }),
@@ -29934,7 +30024,7 @@ function KanbanItem({
29934
30024
  const href = board.hrefOf(id);
29935
30025
  const { openItem } = board;
29936
30026
  const focus = href !== void 0 ? { tabIndex: -1 } : openItem ? { tabIndex: 0 } : null;
29937
- return /* @__PURE__ */ jsxs63(
30027
+ return /* @__PURE__ */ jsxs64(
29938
30028
  Dnd.SortableItem,
29939
30029
  {
29940
30030
  id,
@@ -30208,7 +30298,7 @@ var NativeSelect_default = {
30208
30298
  };
30209
30299
 
30210
30300
  // src/components/native-select/NativeSelect.tsx
30211
- import { jsx as jsx82, jsxs as jsxs64 } from "react/jsx-runtime";
30301
+ import { jsx as jsx82, jsxs as jsxs65 } from "react/jsx-runtime";
30212
30302
  var NATIVE_SELECT_LABELS = { optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" };
30213
30303
  function NativeSelect({
30214
30304
  size: sizeProp,
@@ -30254,8 +30344,8 @@ function NativeSelect({
30254
30344
  disabled,
30255
30345
  optionalLabel: labels.optional,
30256
30346
  className,
30257
- children: /* @__PURE__ */ jsxs64("span", { className: cx(fieldTierClass, NativeSelect_default.root), ...toDataAttributes({ size }), children: [
30258
- /* @__PURE__ */ jsxs64(
30347
+ children: /* @__PURE__ */ jsxs65("span", { className: cx(fieldTierClass, NativeSelect_default.root), ...toDataAttributes({ size }), children: [
30348
+ /* @__PURE__ */ jsxs65(
30259
30349
  "select",
30260
30350
  {
30261
30351
  ...rest,
@@ -30318,7 +30408,7 @@ var Notification_default = {
30318
30408
  };
30319
30409
 
30320
30410
  // src/components/notification/Notification.tsx
30321
- import { jsx as jsx83, jsxs as jsxs65 } from "react/jsx-runtime";
30411
+ import { jsx as jsx83, jsxs as jsxs66 } from "react/jsx-runtime";
30322
30412
  var NOTIFICATION_LABELS = {
30323
30413
  close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435",
30324
30414
  regionTopLeft: "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0440\u0445\u0443 \u0441\u043B\u0435\u0432\u0430",
@@ -30364,7 +30454,7 @@ function CardView({
30364
30454
  const size = tier.size;
30365
30455
  const liveRole = tone === "danger" || tone === "warning" ? "alert" : "status";
30366
30456
  return tier.provide(
30367
- /* @__PURE__ */ jsxs65(
30457
+ /* @__PURE__ */ jsxs66(
30368
30458
  "article",
30369
30459
  {
30370
30460
  ...rest,
@@ -30381,8 +30471,8 @@ function CardView({
30381
30471
  }),
30382
30472
  children: [
30383
30473
  /* @__PURE__ */ jsx83("div", { className: cx(Notification_default.iconWrap, iconSlotClass), "aria-hidden": "true", children: icon ?? /* @__PURE__ */ jsx83(Icon, { name: TONE_ICON[tone] }) }),
30384
- /* @__PURE__ */ jsxs65("div", { className: Notification_default.content, children: [
30385
- /* @__PURE__ */ jsxs65("header", { className: Notification_default.header, children: [
30474
+ /* @__PURE__ */ jsxs66("div", { className: Notification_default.content, children: [
30475
+ /* @__PURE__ */ jsxs66("header", { className: Notification_default.header, children: [
30386
30476
  /* @__PURE__ */ jsx83("p", { className: Notification_default.title, children: title }),
30387
30477
  badge !== void 0 ? /* @__PURE__ */ jsx83(Badge.Root, { size: "xs", tone, children: badge }) : null
30388
30478
  ] }),
@@ -30491,7 +30581,7 @@ function ToastCard({ item, paused, onDismiss, stackDepth, stackExpanded }) {
30491
30581
 
30492
30582
  // src/components/notification/NotificationStore.tsx
30493
30583
  import * as React91 from "react";
30494
- import { jsx as jsx84, jsxs as jsxs66 } from "react/jsx-runtime";
30584
+ import { jsx as jsx84, jsxs as jsxs67 } from "react/jsx-runtime";
30495
30585
  var DEFAULT_DURATION = 5e3;
30496
30586
  var PEEK_VISIBLE = 3;
30497
30587
  var SCALE_STEP = 0.05;
@@ -30963,7 +31053,7 @@ function NotificationProvider({
30963
31053
  () => ({ items: publicItems, notify, dismiss, dismissAll }),
30964
31054
  [publicItems, notify, dismiss, dismissAll]
30965
31055
  );
30966
- return /* @__PURE__ */ jsx84(StoreProvider, { value, children: /* @__PURE__ */ jsxs66(NotificationLabelsContext.Provider, { value: labels, children: [
31056
+ return /* @__PURE__ */ jsx84(StoreProvider, { value, children: /* @__PURE__ */ jsxs67(NotificationLabelsContext.Provider, { value: labels, children: [
30967
31057
  children,
30968
31058
  /* @__PURE__ */ jsx84(NotificationToaster, { entries, onDismiss: leave, onExited: exited })
30969
31059
  ] }) });
@@ -30991,7 +31081,7 @@ var ProgressCircle_default = {
30991
31081
  };
30992
31082
 
30993
31083
  // src/components/progress-circle/ProgressCircle.tsx
30994
- import { Fragment as Fragment44, jsx as jsx85, jsxs as jsxs67 } from "react/jsx-runtime";
31084
+ import { Fragment as Fragment44, jsx as jsx85, jsxs as jsxs68 } from "react/jsx-runtime";
30995
31085
  var HAIRLINE_GAP = RING_DATA_STROKE * 0.75;
30996
31086
  var LOADING_ROWS3 = 3;
30997
31087
  function arcStyle(start, length) {
@@ -31029,7 +31119,7 @@ function SegmentArcs({
31029
31119
  const parts = arcs.filter((a) => !a.rest);
31030
31120
  const first = parts[0];
31031
31121
  const last = parts[parts.length - 1];
31032
- return /* @__PURE__ */ jsxs67(Fragment44, { children: [
31122
+ return /* @__PURE__ */ jsxs68(Fragment44, { children: [
31033
31123
  parts.map((a, i) => {
31034
31124
  const own = fillProps(a.fill);
31035
31125
  return /* @__PURE__ */ jsx85(
@@ -31042,7 +31132,7 @@ function SegmentArcs({
31042
31132
  i
31043
31133
  );
31044
31134
  }),
31045
- first && last && !closed ? /* @__PURE__ */ jsxs67(Fragment44, { children: [
31135
+ first && last && !closed ? /* @__PURE__ */ jsxs68(Fragment44, { children: [
31046
31136
  /* @__PURE__ */ jsx85(Cap, { position: first.start, fill: first.fill }),
31047
31137
  /* @__PURE__ */ jsx85(Cap, { position: last.start + last.length, fill: last.fill })
31048
31138
  ] }) : null
@@ -31147,7 +31237,7 @@ function ProgressCircle(props) {
31147
31237
  }
31148
31238
  );
31149
31239
  }
31150
- const body = /* @__PURE__ */ jsxs67(Fragment44, { children: [
31240
+ const body = /* @__PURE__ */ jsxs68(Fragment44, { children: [
31151
31241
  /* @__PURE__ */ jsx85(RegionSwap, { state: loading ? "loading" : "data", fill: true, children: loading ? /* @__PURE__ */ jsx85(Skeleton, { shape: "block", className: ProgressCircle_default.ringSkeleton }) : ring }),
31152
31242
  loading ? null : description,
31153
31243
  showInner ? /* @__PURE__ */ jsx85(
@@ -31166,7 +31256,7 @@ function ProgressCircle(props) {
31166
31256
  };
31167
31257
  if (legend) {
31168
31258
  return provide(
31169
- /* @__PURE__ */ jsxs67("div", { className: cx(ProgressCircle_default.root, className), ...rootProps, children: [
31259
+ /* @__PURE__ */ jsxs68("div", { className: cx(ProgressCircle_default.root, className), ...rootProps, children: [
31170
31260
  /* @__PURE__ */ jsx85("div", { className: ProgressCircle_default.ring, children: body }),
31171
31261
  /* @__PURE__ */ jsx85(RegionSwap, { state: loading ? "loading" : "data", className: ProgressCircle_default.legend, children: legendNode })
31172
31262
  ] })
@@ -31189,7 +31279,7 @@ var Radio_default = {
31189
31279
  };
31190
31280
 
31191
31281
  // src/components/radio/Radio.tsx
31192
- import { Fragment as Fragment45, jsx as jsx86, jsxs as jsxs68 } from "react/jsx-runtime";
31282
+ import { Fragment as Fragment45, jsx as jsx86, jsxs as jsxs69 } from "react/jsx-runtime";
31193
31283
  var RADIO_GROUP_LABELS = { optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" };
31194
31284
  var [RadioGroupProvider, useRadioGroupContext] = createComponentContext("Radio.Group");
31195
31285
  function RadioGroup({
@@ -31302,7 +31392,7 @@ function RadioRoot({
31302
31392
  hint,
31303
31393
  hintTone,
31304
31394
  className: cx(Radio_default.root, className),
31305
- control: /* @__PURE__ */ jsxs68(Fragment45, { children: [
31395
+ control: /* @__PURE__ */ jsxs69(Fragment45, { children: [
31306
31396
  /* @__PURE__ */ jsx86(
31307
31397
  "input",
31308
31398
  {
@@ -31526,7 +31616,7 @@ var Sparkline_default = {
31526
31616
  };
31527
31617
 
31528
31618
  // src/components/sparkline/Sparkline.tsx
31529
- import { Fragment as Fragment46, jsx as jsx89, jsxs as jsxs69 } from "react/jsx-runtime";
31619
+ import { Fragment as Fragment46, jsx as jsx89, jsxs as jsxs70 } from "react/jsx-runtime";
31530
31620
  var SPARKLINE_LABELS = {
31531
31621
  point: "{label}: {value}",
31532
31622
  period: "{first} \u2013 {last}",
@@ -31617,8 +31707,8 @@ function Sparkline({
31617
31707
  const drawing = React94.useMemo(() => {
31618
31708
  const { paths } = geometry;
31619
31709
  if (!paths) return null;
31620
- return /* @__PURE__ */ jsxs69("div", { className: Sparkline_default.drawing, "aria-hidden": "true", children: [
31621
- /* @__PURE__ */ jsxs69(
31710
+ return /* @__PURE__ */ jsxs70("div", { className: Sparkline_default.drawing, "aria-hidden": "true", children: [
31711
+ /* @__PURE__ */ jsxs70(
31622
31712
  "svg",
31623
31713
  {
31624
31714
  className: Sparkline_default.svg,
@@ -31626,8 +31716,8 @@ function Sparkline({
31626
31716
  preserveAspectRatio: "none",
31627
31717
  "aria-hidden": "true",
31628
31718
  children: [
31629
- variant === "area" && paths.area ? /* @__PURE__ */ jsxs69(Fragment46, { children: [
31630
- /* @__PURE__ */ jsx89("defs", { children: /* @__PURE__ */ jsxs69("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
31719
+ variant === "area" && paths.area ? /* @__PURE__ */ jsxs70(Fragment46, { children: [
31720
+ /* @__PURE__ */ jsx89("defs", { children: /* @__PURE__ */ jsxs70("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
31631
31721
  /* @__PURE__ */ jsx89("stop", { offset: "0", className: Sparkline_default.fadeTop }),
31632
31722
  /* @__PURE__ */ jsx89("stop", { offset: "1", className: Sparkline_default.fadeBottom })
31633
31723
  ] }) }),
@@ -31673,7 +31763,7 @@ function Sparkline({
31673
31763
  const layoutAttr = compact ? layout : void 0;
31674
31764
  const plotNode = plotRef.current;
31675
31765
  const tooltipPoint = active === null || !point ? null : pointer ?? (plotNode ? { x: x(index) * plotNode.offsetWidth, y: plotNode.offsetHeight / 2 } : null);
31676
- return /* @__PURE__ */ jsxs69(
31766
+ return /* @__PURE__ */ jsxs70(
31677
31767
  "div",
31678
31768
  {
31679
31769
  ...rest,
@@ -31685,20 +31775,20 @@ function Sparkline({
31685
31775
  "data-size": compact ? "xs" : void 0,
31686
31776
  "aria-busy": loading || void 0,
31687
31777
  children: [
31688
- compact ? null : /* @__PURE__ */ jsxs69(Fragment46, { children: [
31689
- /* @__PURE__ */ jsxs69("div", { className: Sparkline_default.head, children: [
31778
+ compact ? null : /* @__PURE__ */ jsxs70(Fragment46, { children: [
31779
+ /* @__PURE__ */ jsxs70("div", { className: Sparkline_default.head, children: [
31690
31780
  /* @__PURE__ */ jsx89("span", { className: Sparkline_default.label, children: label }),
31691
31781
  /* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, className: Sparkline_default.date, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "text", size: "s", className: Sparkline_default.dateSkeleton }) : headDate })
31692
31782
  ] }),
31693
- /* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "block", className: Sparkline_default.valueSkeleton }) : /* @__PURE__ */ jsxs69("div", { className: Sparkline_default.valueRow, children: [
31783
+ /* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "block", className: Sparkline_default.valueSkeleton }) : /* @__PURE__ */ jsxs70("div", { className: Sparkline_default.valueRow, children: [
31694
31784
  /* @__PURE__ */ jsx89("span", { className: Sparkline_default.value, "data-empty": restValue === null || void 0, children: atRest ? /* @__PURE__ */ jsx89(RollingNumber, { children: headValue }) : headValue }),
31695
- shownDelta !== null ? /* @__PURE__ */ jsxs69(Badge.Root, { tone: deltaTone, className: Sparkline_default.change, children: [
31785
+ shownDelta !== null ? /* @__PURE__ */ jsxs70(Badge.Root, { tone: deltaTone, className: Sparkline_default.change, children: [
31696
31786
  shownDelta !== 0 ? /* @__PURE__ */ jsx89(Badge.Icon, { className: Sparkline_default.trend, "data-down": shownDelta < 0 || void 0, children: /* @__PURE__ */ jsx89(Icon, { name: "status.trendUp" }) }) : null,
31697
31787
  deltaText
31698
31788
  ] }) : null
31699
31789
  ] }) })
31700
31790
  ] }),
31701
- /* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "block", className: Sparkline_default.plotSkeleton }) : /* @__PURE__ */ jsxs69(
31791
+ /* @__PURE__ */ jsx89(RegionSwap, { state: stateKey, children: loading ? /* @__PURE__ */ jsx89(Skeleton, { shape: "block", className: Sparkline_default.plotSkeleton }) : /* @__PURE__ */ jsxs70(
31702
31792
  "div",
31703
31793
  {
31704
31794
  ref: plotRef,
@@ -31743,7 +31833,7 @@ function Sparkline({
31743
31833
  "aria-hidden": "true"
31744
31834
  }
31745
31835
  ) : null,
31746
- /* @__PURE__ */ jsx89(RegionSwap, { state: version, fill: true, children: bars ? /* @__PURE__ */ jsxs69("div", { className: Sparkline_default.bars, "aria-hidden": "true", children: [
31836
+ /* @__PURE__ */ jsx89(RegionSwap, { state: version, fill: true, children: bars ? /* @__PURE__ */ jsxs70("div", { className: Sparkline_default.bars, "aria-hidden": "true", children: [
31747
31837
  /* @__PURE__ */ jsx89(
31748
31838
  "span",
31749
31839
  {
@@ -31774,7 +31864,7 @@ function Sparkline({
31774
31864
  i
31775
31865
  ))
31776
31866
  ] }) : drawing }),
31777
- point && !bars ? /* @__PURE__ */ jsxs69(
31867
+ point && !bars ? /* @__PURE__ */ jsxs70(
31778
31868
  "span",
31779
31869
  {
31780
31870
  className: Sparkline_default.cursor,
@@ -31829,7 +31919,7 @@ var Stepper_default = {
31829
31919
  };
31830
31920
 
31831
31921
  // src/components/stepper/Stepper.tsx
31832
- import { jsx as jsx90, jsxs as jsxs70 } from "react/jsx-runtime";
31922
+ import { jsx as jsx90, jsxs as jsxs71 } from "react/jsx-runtime";
31833
31923
  var STEPPER_LABELS = {
31834
31924
  completed: "\u043F\u0440\u043E\u0439\u0434\u0435\u043D",
31835
31925
  danger: "\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u044F"
@@ -31908,9 +31998,9 @@ function StepperItem({
31908
31998
  const status = statusProp ?? deriveStatus(index, value);
31909
31999
  const itemContext = React95.useMemo(() => ({ index, status }), [index, status]);
31910
32000
  const spokenStatus = status === "completed" ? labels.completed : status === "danger" ? labels.danger : null;
31911
- return /* @__PURE__ */ jsx90(StepperItemProvider, { value: itemContext, children: /* @__PURE__ */ jsxs70("li", { className: Stepper_default.item, children: [
32001
+ return /* @__PURE__ */ jsx90(StepperItemProvider, { value: itemContext, children: /* @__PURE__ */ jsxs71("li", { className: Stepper_default.item, children: [
31912
32002
  /* @__PURE__ */ jsx90("span", { className: Stepper_default.separator, "aria-hidden": "true", children: /* @__PURE__ */ jsx90(Icon, { name: "nav.chevronRight", strokeWidth: 2 }) }),
31913
- /* @__PURE__ */ jsxs70(
32003
+ /* @__PURE__ */ jsxs71(
31914
32004
  "button",
31915
32005
  {
31916
32006
  ...rest,
@@ -31986,7 +32076,7 @@ var Switch_default = {
31986
32076
  };
31987
32077
 
31988
32078
  // src/components/switch/Switch.tsx
31989
- import { Fragment as Fragment47, jsx as jsx91, jsxs as jsxs71 } from "react/jsx-runtime";
32079
+ import { Fragment as Fragment47, jsx as jsx91, jsxs as jsxs72 } from "react/jsx-runtime";
31990
32080
  var SWITCH_LABELS = { optional: "\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" };
31991
32081
  function SwitchRoot({
31992
32082
  id,
@@ -32044,7 +32134,7 @@ function SwitchRoot({
32044
32134
  hintTone,
32045
32135
  error,
32046
32136
  className: cx(Switch_default.root, className),
32047
- control: /* @__PURE__ */ jsxs71(Fragment47, { children: [
32137
+ control: /* @__PURE__ */ jsxs72(Fragment47, { children: [
32048
32138
  /* @__PURE__ */ jsx91(
32049
32139
  "input",
32050
32140
  {
@@ -32115,7 +32205,7 @@ var Tabs_default = {
32115
32205
  };
32116
32206
 
32117
32207
  // src/components/tabs/Tabs.tsx
32118
- import { Fragment as Fragment48, jsx as jsx92, jsxs as jsxs72 } from "react/jsx-runtime";
32208
+ import { Fragment as Fragment48, jsx as jsx92, jsxs as jsxs73 } from "react/jsx-runtime";
32119
32209
  var TABS_LABELS = {
32120
32210
  remove: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \xAB{label}\xBB"
32121
32211
  };
@@ -32350,7 +32440,7 @@ function TabsList({ children, className, ref, ...rest }) {
32350
32440
  // The strip paints the band; the list inside scrolls and fades over it, the band never fades.
32351
32441
  // A column never scrolls sideways: no edge fade, or it would dim the folder where it joins
32352
32442
  // the panel.
32353
- /* @__PURE__ */ jsx92("div", { className: Tabs_default.strip, children: /* @__PURE__ */ jsxs72(
32443
+ /* @__PURE__ */ jsx92("div", { className: Tabs_default.strip, children: /* @__PURE__ */ jsxs73(
32354
32444
  SwitcherScroller,
32355
32445
  {
32356
32446
  ...rest,
@@ -32452,7 +32542,7 @@ function TabsItem({
32452
32542
  () => setRemoving(false)
32453
32543
  );
32454
32544
  }
32455
- return /* @__PURE__ */ jsxs72(
32545
+ return /* @__PURE__ */ jsxs73(
32456
32546
  "div",
32457
32547
  {
32458
32548
  className: Tabs_default.item,
@@ -32463,7 +32553,7 @@ function TabsItem({
32463
32553
  removable: removable || void 0
32464
32554
  }),
32465
32555
  children: [
32466
- /* @__PURE__ */ jsxs72(Tooltip.Root, { open: iconOnly && tooltipOpen, onOpenChange: setTooltipOpen, children: [
32556
+ /* @__PURE__ */ jsxs73(Tooltip.Root, { open: iconOnly && tooltipOpen, onOpenChange: setTooltipOpen, children: [
32467
32557
  /* @__PURE__ */ jsx92(Tooltip.Trigger, { children: /* @__PURE__ */ jsx92(
32468
32558
  "button",
32469
32559
  {
@@ -32539,7 +32629,7 @@ function TabsLabel({ children, className, ...rest }) {
32539
32629
  const id = useTextPartId("label");
32540
32630
  const iconOnly = React96.useContext(CollapseContext2) === "icon";
32541
32631
  const text = typeof children === "string" || typeof children === "number" ? String(children) : "";
32542
- return /* @__PURE__ */ jsxs72(Fragment48, { children: [
32632
+ return /* @__PURE__ */ jsxs73(Fragment48, { children: [
32543
32633
  /* @__PURE__ */ jsx92(
32544
32634
  "span",
32545
32635
  {
@@ -32669,7 +32759,7 @@ var TagSelect_default = {
32669
32759
  };
32670
32760
 
32671
32761
  // src/components/tag-select/TagOptionMenu.tsx
32672
- import { Fragment as Fragment49, jsx as jsx93, jsxs as jsxs73 } from "react/jsx-runtime";
32762
+ import { Fragment as Fragment49, jsx as jsx93, jsxs as jsxs74 } from "react/jsx-runtime";
32673
32763
  var TAG_COLORS = [
32674
32764
  "gray",
32675
32765
  "red",
@@ -32704,7 +32794,7 @@ function TagOptionMenu({
32704
32794
  if (next && next !== label) onUpdate?.(value, { label: next });
32705
32795
  if (!next) setDraft(label);
32706
32796
  };
32707
- return /* @__PURE__ */ jsxs73(Popover.Root, { open, onOpenChange, children: [
32797
+ return /* @__PURE__ */ jsxs74(Popover.Root, { open, onOpenChange, children: [
32708
32798
  /* @__PURE__ */ jsx93(Popover.Trigger, { children: /* @__PURE__ */ jsx93(
32709
32799
  Button.Root,
32710
32800
  {
@@ -32719,7 +32809,7 @@ function TagOptionMenu({
32719
32809
  children: /* @__PURE__ */ jsx93(Button.Icon, { children: /* @__PURE__ */ jsx93(Icon, { name: "action.more" }) })
32720
32810
  }
32721
32811
  ) }),
32722
- /* @__PURE__ */ jsx93(Popover.Content, { size: "s", flush: true, className: TagSelect_default.menuPanel, children: /* @__PURE__ */ jsxs73("div", { className: TagSelect_default.menuBody, children: [
32812
+ /* @__PURE__ */ jsx93(Popover.Content, { size: "s", flush: true, className: TagSelect_default.menuPanel, children: /* @__PURE__ */ jsxs74("div", { className: TagSelect_default.menuBody, children: [
32723
32813
  onUpdate ? /* @__PURE__ */ jsx93(Input.Root, { size: "s", children: /* @__PURE__ */ jsx93(Input.Wrapper, { children: /* @__PURE__ */ jsx93(
32724
32814
  Input.Field,
32725
32815
  {
@@ -32736,7 +32826,7 @@ function TagOptionMenu({
32736
32826
  }
32737
32827
  }
32738
32828
  ) }) }) : null,
32739
- onDelete ? /* @__PURE__ */ jsxs73(
32829
+ onDelete ? /* @__PURE__ */ jsxs74(
32740
32830
  Button.Root,
32741
32831
  {
32742
32832
  variant: "ghost",
@@ -32753,10 +32843,10 @@ function TagOptionMenu({
32753
32843
  ]
32754
32844
  }
32755
32845
  ) : null,
32756
- onUpdate ? /* @__PURE__ */ jsxs73(Fragment49, { children: [
32846
+ onUpdate ? /* @__PURE__ */ jsxs74(Fragment49, { children: [
32757
32847
  /* @__PURE__ */ jsx93(Divider, { className: menu_default.separator }),
32758
32848
  /* @__PURE__ */ jsx93("div", { className: cx(textRole_default.caption, menu_default.groupLabel), children: labels.colors }),
32759
- /* @__PURE__ */ jsx93("div", { className: cx(fieldTierClass, menu_default.tier), "data-size": "s", children: TAG_COLORS.map((hue) => /* @__PURE__ */ jsxs73(
32849
+ /* @__PURE__ */ jsx93("div", { className: cx(fieldTierClass, menu_default.tier), "data-size": "s", children: TAG_COLORS.map((hue) => /* @__PURE__ */ jsxs74(
32760
32850
  "button",
32761
32851
  {
32762
32852
  type: "button",
@@ -32823,7 +32913,7 @@ function useChipOverflow({
32823
32913
 
32824
32914
  // src/components/tag-select/VirtualOptions.tsx
32825
32915
  import * as React99 from "react";
32826
- import { Fragment as Fragment51, jsx as jsx94, jsxs as jsxs74 } from "react/jsx-runtime";
32916
+ import { Fragment as Fragment51, jsx as jsx94, jsxs as jsxs75 } from "react/jsx-runtime";
32827
32917
  var ONE_GROUP3 = () => 0;
32828
32918
  function VirtualOptions({
32829
32919
  count,
@@ -32874,9 +32964,9 @@ function VirtualOptions({
32874
32964
  );
32875
32965
  const laid = rowGaps(virtual);
32876
32966
  const spacer = (key, height) => height > 0 ? /* @__PURE__ */ jsx94("div", { className: TagSelect_default.spacer, style: { height }, "aria-hidden": "true" }, key) : null;
32877
- return /* @__PURE__ */ jsxs74(Fragment51, { children: [
32967
+ return /* @__PURE__ */ jsxs75(Fragment51, { children: [
32878
32968
  /* @__PURE__ */ jsx94("div", { ref: startRef, "aria-hidden": "true" }),
32879
- laid.rows.map(({ index, gap }) => /* @__PURE__ */ jsxs74(React99.Fragment, { children: [
32969
+ laid.rows.map(({ index, gap }) => /* @__PURE__ */ jsxs75(React99.Fragment, { children: [
32880
32970
  spacer("gap", gap),
32881
32971
  renderOption(index, virtual.measure(index))
32882
32972
  ] }, getKey(index))),
@@ -32885,7 +32975,7 @@ function VirtualOptions({
32885
32975
  }
32886
32976
 
32887
32977
  // src/components/tag-select/TagSelect.tsx
32888
- import { Fragment as Fragment52, jsx as jsx95, jsxs as jsxs75 } from "react/jsx-runtime";
32978
+ import { Fragment as Fragment52, jsx as jsx95, jsxs as jsxs76 } from "react/jsx-runtime";
32889
32979
  var TAG_SELECT_LABELS = {
32890
32980
  create: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C",
32891
32981
  remove: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C {label}",
@@ -33256,7 +33346,7 @@ function TagSelect({
33256
33346
  const pickOption = () => {
33257
33347
  if (!option.disabled) pick(option.value);
33258
33348
  };
33259
- const content = /* @__PURE__ */ jsxs75(Fragment52, { children: [
33349
+ const content = /* @__PURE__ */ jsxs76(Fragment52, { children: [
33260
33350
  /* @__PURE__ */ jsx95(Checkbox.Indicator, { checked: isSelected, disabled: option.disabled, size: stepDown(size) }),
33261
33351
  /* @__PURE__ */ jsx95(
33262
33352
  Badge.Root,
@@ -33284,7 +33374,7 @@ function TagSelect({
33284
33374
  ref: windowed?.measure,
33285
33375
  posInSet: windowed ? windowed.index + 1 + (showCreate ? 1 : 0) : void 0,
33286
33376
  setSize: windowed ? setSize : void 0,
33287
- children: manageable ? /* @__PURE__ */ jsxs75(Fragment52, { children: [
33377
+ children: manageable ? /* @__PURE__ */ jsxs76(Fragment52, { children: [
33288
33378
  /* @__PURE__ */ jsx95(
33289
33379
  "button",
33290
33380
  {
@@ -33321,7 +33411,7 @@ function TagSelect({
33321
33411
  );
33322
33412
  };
33323
33413
  return tier.provide(
33324
- /* @__PURE__ */ jsxs75(
33414
+ /* @__PURE__ */ jsxs76(
33325
33415
  FieldFrame,
33326
33416
  {
33327
33417
  ...rest,
@@ -33337,7 +33427,7 @@ function TagSelect({
33337
33427
  optionalLabel: labels.optional,
33338
33428
  className,
33339
33429
  children: [
33340
- /* @__PURE__ */ jsxs75(
33430
+ /* @__PURE__ */ jsxs76(
33341
33431
  "div",
33342
33432
  {
33343
33433
  ref: triggerRef,
@@ -33366,7 +33456,7 @@ function TagSelect({
33366
33456
  "focus-ring": focusRing
33367
33457
  }),
33368
33458
  children: [
33369
- /* @__PURE__ */ jsxs75(
33459
+ /* @__PURE__ */ jsxs76(
33370
33460
  ScrollContainer,
33371
33461
  {
33372
33462
  ref: chipsRef,
@@ -33404,8 +33494,8 @@ function TagSelect({
33404
33494
  disabled,
33405
33495
  title: hiddenChips.map((chip) => chip.label).join(", "),
33406
33496
  onClick: () => inputRef.current?.focus(),
33407
- children: /* @__PURE__ */ jsxs75(Badge.Root, { color: "gray", disabled, className: TagSelect_default.chipMore, children: [
33408
- /* @__PURE__ */ jsxs75("span", { "aria-hidden": "true", children: [
33497
+ children: /* @__PURE__ */ jsxs76(Badge.Root, { color: "gray", disabled, className: TagSelect_default.chipMore, children: [
33498
+ /* @__PURE__ */ jsxs76("span", { "aria-hidden": "true", children: [
33409
33499
  "+",
33410
33500
  hiddenChips.length
33411
33501
  ] }),
@@ -33468,7 +33558,7 @@ function TagSelect({
33468
33558
  ]
33469
33559
  }
33470
33560
  ),
33471
- /* @__PURE__ */ jsxs75(
33561
+ /* @__PURE__ */ jsxs76(
33472
33562
  FloatingPanel,
33473
33563
  {
33474
33564
  floating,
@@ -33483,7 +33573,7 @@ function TagSelect({
33483
33573
  ref: scrollerRef,
33484
33574
  className: cx(fieldTierClass, menu_default.tier, menu_default.menu, TagSelect_default.panel),
33485
33575
  children: [
33486
- showCreate ? /* @__PURE__ */ jsxs75(
33576
+ showCreate ? /* @__PURE__ */ jsxs76(
33487
33577
  OptionRow,
33488
33578
  {
33489
33579
  id: optionDomId(listboxId, CREATE_VALUE),
@@ -33609,7 +33699,7 @@ var MeasureRow = React100.memo(function MeasureRow2({
33609
33699
  return (
33610
33700
  // The clip keeps the row (wider than the field with many tags) out of the scroll width of
33611
33701
  // every scroller around the field; the row itself keeps its full width to measure.
33612
- /* @__PURE__ */ jsx95("div", { className: TagSelect_default.measureClip, "aria-hidden": true, inert: true, children: /* @__PURE__ */ jsxs75("div", { ref, className: TagSelect_default.measure, children: [
33702
+ /* @__PURE__ */ jsx95("div", { className: TagSelect_default.measureClip, "aria-hidden": true, inert: true, children: /* @__PURE__ */ jsxs76("div", { ref, className: TagSelect_default.measure, children: [
33613
33703
  chips.map((chip) => /* @__PURE__ */ jsx95(
33614
33704
  Badge.Root,
33615
33705
  {
@@ -33622,7 +33712,7 @@ var MeasureRow = React100.memo(function MeasureRow2({
33622
33712
  },
33623
33713
  chip.value
33624
33714
  )),
33625
- /* @__PURE__ */ jsxs75(Badge.Root, { color: "gray", className: TagSelect_default.chipMore, children: [
33715
+ /* @__PURE__ */ jsxs76(Badge.Root, { color: "gray", className: TagSelect_default.chipMore, children: [
33626
33716
  "+",
33627
33717
  Math.max(chips.length, 9)
33628
33718
  ] })
@@ -33657,7 +33747,7 @@ var Timeline_default = {
33657
33747
  };
33658
33748
 
33659
33749
  // src/components/timeline/Timeline.tsx
33660
- import { Fragment as Fragment53, jsx as jsx96, jsxs as jsxs76 } from "react/jsx-runtime";
33750
+ import { Fragment as Fragment53, jsx as jsx96, jsxs as jsxs77 } from "react/jsx-runtime";
33661
33751
  function TimelineRoot({ size: sizeProp, children, className, ...rest }) {
33662
33752
  const tier = useHostTier(sizeProp);
33663
33753
  return tier.provide(
@@ -33700,7 +33790,7 @@ function TimelineGroup({ label, children, className, ...rest }) {
33700
33790
  },
33701
33791
  React101.isValidElement(child) ? child.key : index
33702
33792
  ));
33703
- return /* @__PURE__ */ jsxs76("div", { className: Timeline_default.group, children: [
33793
+ return /* @__PURE__ */ jsxs77("div", { className: Timeline_default.group, children: [
33704
33794
  hasLabel ? /* @__PURE__ */ jsx96("div", { id: labelId, className: cx(GROUP_LABEL_ROLE[size], Timeline_default.groupLabel), children: label }) : null,
33705
33795
  /* @__PURE__ */ jsx96(
33706
33796
  "ol",
@@ -33757,7 +33847,7 @@ function TimelineItem({
33757
33847
  const dot = /* @__PURE__ */ jsx96("span", { className: Timeline_default.dot, "aria-hidden": "true" });
33758
33848
  const content = (parts) => {
33759
33849
  const { parts: value, rest: text } = splitParts(parts, TimelineItemValue);
33760
- return /* @__PURE__ */ jsxs76(Fragment53, { children: [
33850
+ return /* @__PURE__ */ jsxs77(Fragment53, { children: [
33761
33851
  dot,
33762
33852
  /* @__PURE__ */ jsx96("span", { className: Timeline_default.text, children: text }),
33763
33853
  value
@@ -33826,7 +33916,7 @@ function TimelineGap({ tone = "neutral", children, className, ...rest }) {
33826
33916
  const caption = parts.filter((child) => !isDescription(child));
33827
33917
  const description = parts.filter(isDescription);
33828
33918
  const edge = React101.useContext(EdgeContext);
33829
- 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: [
33919
+ return /* @__PURE__ */ jsx96("li", { className: cx(Timeline_default.item, Timeline_default.gapItem), ...toDataAttributes(edgeAttributes(edge)), children: /* @__PURE__ */ jsxs77("div", { ...rest, className: cx(Timeline_default.gapRow, className), ...toDataAttributes({ tone }), children: [
33830
33920
  /* @__PURE__ */ jsx96("span", { className: Timeline_default.gapDot, "aria-hidden": "true" }),
33831
33921
  /* @__PURE__ */ jsx96("span", { className: Timeline_default.gapCaption, children: caption }),
33832
33922
  description
@@ -33863,7 +33953,7 @@ var VideoNote_default = {
33863
33953
  };
33864
33954
 
33865
33955
  // src/components/video-note/VideoNote.tsx
33866
- import { jsx as jsx97, jsxs as jsxs77 } from "react/jsx-runtime";
33956
+ import { jsx as jsx97, jsxs as jsxs78 } from "react/jsx-runtime";
33867
33957
  var VIDEO_NOTE_LABELS = {
33868
33958
  player: "\u0412\u0438\u0434\u0435\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
33869
33959
  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",
@@ -33896,7 +33986,7 @@ function VideoNoteInner(props) {
33896
33986
  }),
33897
33987
  unplayed ? labels.unplayed : null
33898
33988
  ].filter(Boolean).join(", ");
33899
- return /* @__PURE__ */ jsxs77(
33989
+ return /* @__PURE__ */ jsxs78(
33900
33990
  MediaPlayerRoot,
33901
33991
  {
33902
33992
  label: labels.player,
@@ -33904,7 +33994,7 @@ function VideoNoteInner(props) {
33904
33994
  ...rest,
33905
33995
  className: cx(VideoNote_default.root, className),
33906
33996
  children: [
33907
- /* @__PURE__ */ jsxs77(
33997
+ /* @__PURE__ */ jsxs78(
33908
33998
  "div",
33909
33999
  {
33910
34000
  className: cx(press_default.press, VideoNote_default.circle),
@@ -33914,7 +34004,7 @@ function VideoNoteInner(props) {
33914
34004
  "data-covered": covered || void 0,
33915
34005
  "data-disabled": inactive || void 0,
33916
34006
  children: [
33917
- /* @__PURE__ */ jsxs77("span", { className: VideoNote_default.media, "aria-hidden": "true", children: [
34007
+ /* @__PURE__ */ jsxs78("span", { className: VideoNote_default.media, "aria-hidden": "true", children: [
33918
34008
  placeholder.mounted ? /* @__PURE__ */ jsx97(Skeleton, { shape: "block", className: VideoNote_default.fill }) : null,
33919
34009
  /* @__PURE__ */ jsx97(
33920
34010
  "video",
@@ -33957,7 +34047,7 @@ function VideoNoteInner(props) {
33957
34047
  }
33958
34048
  ) }),
33959
34049
  description ? /* @__PURE__ */ jsx97(VisuallyHidden, { id: descriptionId, children: description }) : null,
33960
- shown !== null ? /* @__PURE__ */ jsxs77(
34050
+ shown !== null ? /* @__PURE__ */ jsxs78(
33961
34051
  "span",
33962
34052
  {
33963
34053
  className: cx(textRole_default.caption, mediaPill_default.pill, VideoNote_default.duration),
@@ -34058,7 +34148,7 @@ async function getWaveform(source, bars = WAVEFORM_BARS) {
34058
34148
  }
34059
34149
 
34060
34150
  // src/components/voice-player/VoicePlayer.tsx
34061
- import { jsx as jsx98, jsxs as jsxs78 } from "react/jsx-runtime";
34151
+ import { jsx as jsx98, jsxs as jsxs79 } from "react/jsx-runtime";
34062
34152
  var RATES = [1, 1.5, 2];
34063
34153
  var VOICE_PLAYER_LABELS = {
34064
34154
  player: "\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
@@ -34164,7 +34254,7 @@ function VoicePlayer(props) {
34164
34254
  const shownTime = showElapsed ? position : total;
34165
34255
  const rateText = formatRate(rate);
34166
34256
  const open = transcript?.expanded ?? false;
34167
- return /* @__PURE__ */ jsxs78(
34257
+ return /* @__PURE__ */ jsxs79(
34168
34258
  MediaPlayerRoot,
34169
34259
  {
34170
34260
  label: labels.player,
@@ -34182,7 +34272,7 @@ function VoicePlayer(props) {
34182
34272
  ...player.mediaEvents
34183
34273
  }
34184
34274
  ),
34185
- /* @__PURE__ */ jsxs78("div", { className: VoicePlayer_default.row, children: [
34275
+ /* @__PURE__ */ jsxs79("div", { className: VoicePlayer_default.row, children: [
34186
34276
  /* @__PURE__ */ jsx98(
34187
34277
  PlayDisk,
34188
34278
  {
@@ -34195,9 +34285,9 @@ function VoicePlayer(props) {
34195
34285
  onToggle: player.toggle
34196
34286
  }
34197
34287
  ),
34198
- /* @__PURE__ */ jsxs78("div", { className: VoicePlayer_default.body, children: [
34199
- /* @__PURE__ */ jsxs78("div", { className: VoicePlayer_default.waveLine, children: [
34200
- /* @__PURE__ */ jsxs78(
34288
+ /* @__PURE__ */ jsxs79("div", { className: VoicePlayer_default.body, children: [
34289
+ /* @__PURE__ */ jsxs79("div", { className: VoicePlayer_default.waveLine, children: [
34290
+ /* @__PURE__ */ jsxs79(
34201
34291
  "div",
34202
34292
  {
34203
34293
  ref: waveRef,
@@ -34234,7 +34324,7 @@ function VoicePlayer(props) {
34234
34324
  }
34235
34325
  ) : null
34236
34326
  ] }),
34237
- /* @__PURE__ */ jsxs78("div", { className: cx(textRole_default.caption, VoicePlayer_default.meta), children: [
34327
+ /* @__PURE__ */ jsxs79("div", { className: cx(textRole_default.caption, VoicePlayer_default.meta), children: [
34238
34328
  /* @__PURE__ */ jsx98("span", { className: VoicePlayer_default.time, "aria-hidden": "true", children: formatClock(shownTime) }),
34239
34329
  /* @__PURE__ */ jsx98(UnplayedDot, { shown: unplayed }),
34240
34330
  unplayed ? /* @__PURE__ */ jsx98(VisuallyHidden, { children: labels.unplayed }) : null,