@assure-one/design-system 1.44.1 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- import { slot, badgeAnatomy, stateAttributes, useDsMessages, deprecate, paginationAnatomy, Select, microInteractions, useFieldsetContext, useFieldControl, useControllableState, useFormReset2, useMergedRefs, switchAnatomy, CONTROL_LABEL_TEXT, tableAnatomy, Pressable, FormBridge, CONTROL_SIZE_CLASSES, FileUpload, FileChip, Button, Tooltip, TooltipTrigger, TooltipContent, Avatar, Input, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, dataTableAnatomy, Checkbox, DocumentDetailPanel, DocumentDetailHeader, DocumentDetailTitle, DocumentDetailRequester, DocumentDetailMetaRow, DocumentDetailActions, DropdownMenuItem, DocumentList, DocumentRow, DocumentListSection, Textarea, DropdownMenuCheckboxItem, Popover, PopoverTrigger, PopoverContent, PopoverClose, DropdownMenuShortcut, useId } from './chunk-Z7QPHPNV.js';
2
- import { cn, ShieldIcon, UploadIcon, SendIcon, ChevronLeftIcon, MoreHorizontalIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, ChevronsUpDownIcon, LockIcon, TrashIcon, HelpCircleIcon, ExtractIcon, ArrowRightIcon, CheckIcon, EyeIcon, FileTextIcon, CloseIcon, SparklesIcon, PlusIcon, SearchIcon, AlertTriangleIcon, FolderClosedIcon, CalendarIcon, PencilIcon, LockOpenIcon, FlagIcon, CheckCircleSolidIcon, DownloadIcon, XCircleSolidIcon, MessageCircleIcon, BellIcon, PaperclipIcon, UsersIcon, ClockIcon, PlayIcon, PauseIcon, StopIcon, SettingsIcon, Trash2Icon, FileIcon, SparkleIcon, MailIcon } from './chunk-E2URQD5A.js';
1
+ import { slot, badgeAnatomy, stateAttributes, useDsMessages, deprecate, paginationAnatomy, Select, microInteractions, useFieldsetContext, useFieldControl, useControllableState, useFormReset2, useMergedRefs, switchAnatomy, CONTROL_LABEL_TEXT, tableAnatomy, Pressable, Tooltip, TooltipTrigger, TooltipContent, FormBridge, CONTROL_SIZE_CLASSES, FileUpload, FileChip, Button, Avatar, Input, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, dataTableAnatomy, Checkbox, DocumentDetailPanel, DocumentDetailHeader, DocumentDetailTitle, DocumentDetailRequester, DocumentDetailMetaRow, DocumentDetailActions, DropdownMenuItem, DocumentList, DocumentRow, DocumentListSection, Textarea, DropdownMenuCheckboxItem, Popover, PopoverTrigger, PopoverContent, PopoverClose, DropdownMenuShortcut, useId } from './chunk-IIBDSTOG.js';
2
+ import { cn, ShieldIcon, UploadIcon, SendIcon, ChevronLeftIcon, MoreHorizontalIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, ChevronsUpDownIcon, LockIcon, TrashIcon, HelpCircleIcon, ExtractIcon, ArrowRightIcon, CheckIcon, EyeIcon, FileTextIcon, CloseIcon, SparklesIcon, PlusIcon, SearchIcon, AlertTriangleIcon, FolderClosedIcon, CalendarIcon, PencilIcon, LockOpenIcon, FlagIcon, CheckCircleSolidIcon, DownloadIcon, XCircleSolidIcon, MessageCircleIcon, BellIcon, PaperclipIcon, UsersIcon, ClockIcon, PlayIcon, PauseIcon, StopIcon, SettingsIcon, Trash2Icon, FileIcon, SparkleIcon, MailIcon } from './chunk-ARCWF2S3.js';
3
3
  import { clsx } from 'clsx';
4
- import * as React2 from 'react';
4
+ import * as React3 from 'react';
5
5
  import { forwardRef, useMemo, createContext, useRef, useContext, useState, useCallback, useEffect } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { cva } from 'class-variance-authority';
@@ -159,11 +159,14 @@ var categoryTagVariants = cva(
159
159
  ),
160
160
  {
161
161
  variants: {
162
+ // Each product's semantic ink-on-tint pair (`-fg` on `-bg`, ≥4.8:1 in
163
+ // light and ≥5.5:1 in dark), not the seed on a 12% seed tint, which
164
+ // measured 2.5–4.4:1 at 12px.
162
165
  tone: {
163
- brand: "ds:text-brand-pro ds:bg-[color-mix(in_srgb,var(--color-brand-pro)_12%,transparent)]",
164
- audit: "ds:text-brand-audit ds:bg-[color-mix(in_srgb,var(--color-brand-audit)_12%,transparent)]",
165
- books: "ds:text-brand-books ds:bg-[color-mix(in_srgb,var(--color-brand-books)_12%,transparent)]",
166
- tax: "ds:text-brand-tax ds:bg-[color-mix(in_srgb,var(--color-brand-tax)_12%,transparent)]",
166
+ brand: "ds:text-pro-fg ds:bg-pro-bg",
167
+ audit: "ds:text-audit-fg ds:bg-audit-bg",
168
+ books: "ds:text-books-fg ds:bg-books-bg",
169
+ tax: "ds:text-tax-fg ds:bg-tax-bg",
167
170
  neutral: "ds:text-fg-3 ds:bg-[color-mix(in_srgb,var(--color-fg-3)_12%,transparent)]"
168
171
  }
169
172
  },
@@ -319,7 +322,7 @@ function getPageNumbers(current, total, siblings) {
319
322
  return [1, "ellipsis", ...range(leftSibling, rightSibling), "ellipsis", total];
320
323
  }
321
324
  var NAV_BUTTON = cn(
322
- "ds:inline-flex ds:size-7 ds:items-center ds:justify-center ds:rounded-btn ds:text-fg-3",
325
+ "ds:inline-flex ds:size-7 ds:cursor-pointer ds:items-center ds:justify-center ds:rounded-btn ds:text-fg-3",
323
326
  "ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
324
327
  // Pressed takes the control press wash (Polish 2 §3.7, as ghost buttons do).
325
328
  "ds:hover:bg-surface-hover ds:hover:text-fg ds:active:bg-control-active-bg",
@@ -327,7 +330,10 @@ var NAV_BUTTON = cn(
327
330
  "ds:disabled:pointer-events-none ds:disabled:cursor-not-allowed ds:disabled:text-fg-disabled"
328
331
  );
329
332
  var PAGE_BUTTON_BASE = cn(
330
- "ds:inline-flex ds:h-7 ds:min-w-7 ds:items-center ds:justify-center ds:rounded-btn ds:px-2",
333
+ // The control-size inventory (W2-03) locates this control by a contiguous
334
+ // substring of the literal below (`scripts/control-sizes/inventory.mjs`),
335
+ // so `cursor-pointer` is appended after it rather than inserted inline.
336
+ "ds:inline-flex ds:h-7 ds:min-w-7 ds:items-center ds:justify-center ds:rounded-btn ds:px-2 ds:cursor-pointer",
331
337
  "ds:text-xs ds:font-medium ds:tabular-nums",
332
338
  "ds:transition-colors ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
333
339
  "ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]"
@@ -948,7 +954,7 @@ var switchThumbVariants = cva(
948
954
  }
949
955
  }
950
956
  );
951
- var Switch = React2.forwardRef(
957
+ var Switch = React3.forwardRef(
952
958
  function Switch2({
953
959
  label,
954
960
  size,
@@ -982,8 +988,8 @@ var Switch = React2.forwardRef(
982
988
  defaultProp: defaultChecked ?? false,
983
989
  onChange: onCheckedChange
984
990
  });
985
- const initialChecked = React2.useRef(checkedProp ?? defaultChecked ?? false);
986
- const rootRef = React2.useRef(null);
991
+ const initialChecked = React3.useRef(checkedProp ?? defaultChecked ?? false);
992
+ const rootRef = React3.useRef(null);
987
993
  useFormReset2(rootRef, () => setChecked(initialChecked.current), form);
988
994
  const mergedRef = useMergedRefs(ref, rootRef);
989
995
  const root = /* @__PURE__ */ jsx(
@@ -1033,6 +1039,16 @@ var Switch = React2.forwardRef(
1033
1039
  }
1034
1040
  );
1035
1041
  Switch.displayName = SwitchPrimitive.Root.displayName;
1042
+ function useOverflowTooltip() {
1043
+ const ref = React3.useRef(null);
1044
+ const [overflowing, setOverflowing] = React3.useState(false);
1045
+ const measure = React3.useCallback(() => {
1046
+ const el = ref.current;
1047
+ if (!el) return;
1048
+ setOverflowing(el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight);
1049
+ }, []);
1050
+ return { ref, overflowing, onPointerEnter: measure, onFocus: measure };
1051
+ }
1036
1052
  var DEFAULT_TABLE_CONTEXT = { headerStyle: "plain", stickyHeader: false };
1037
1053
  var TableContext = createContext(DEFAULT_TABLE_CONTEXT);
1038
1054
  function useOverflowing(target) {
@@ -1126,7 +1142,14 @@ var TableFooter = forwardRef(
1126
1142
  ref,
1127
1143
  ...slot(tableAnatomy, "footer"),
1128
1144
  className: cn(
1129
- "ds:border-rule ds:bg-surface-2 ds:border-t ds:font-medium ds:[&>tr]:last:border-b-0",
1145
+ // The canonical totals look (table-standardization docs): a top
1146
+ // rule separating it from the body, and semibold weight (not the
1147
+ // body's regular/medium) on every cell — `numeric` cells read it
1148
+ // on their tabular-nums figures, a plain label cell ("Total") on
1149
+ // its text. Was `font-medium`; bumped to match "semibold numeric
1150
+ // cells" so apps stop hand-styling this row (visual change, noted
1151
+ // in the changeset).
1152
+ "ds:border-rule ds:bg-surface-2 ds:border-t ds:font-semibold ds:[&>tr]:last:border-b-0",
1130
1153
  className
1131
1154
  ),
1132
1155
  ...props
@@ -1276,27 +1299,144 @@ var TableHead = forwardRef(function TableHead2({
1276
1299
  );
1277
1300
  });
1278
1301
  TableHead.displayName = "TableHead";
1279
- var TableCell = forwardRef(function TableCell2({ className, align, numeric, muted, truncate, width, sticky, style, ...props }, ref) {
1302
+ var TableCell = forwardRef(function TableCell2({
1303
+ className,
1304
+ align,
1305
+ numeric,
1306
+ muted,
1307
+ truncate,
1308
+ width,
1309
+ sticky,
1310
+ overflowTooltip,
1311
+ style,
1312
+ children,
1313
+ onPointerEnter,
1314
+ onFocus,
1315
+ ...props
1316
+ }, ref) {
1317
+ const cellClassName = cn(
1318
+ // 13px, fg-2, soft 1px row divider, tabular nums; airier vertical
1319
+ // rhythm for the taller rows in the catalog layout.
1320
+ "ds:text-fg-2 ds:px-(--table-cell-padding-x) ds:py-(--table-cell-padding-y) ds:align-middle ds:text-(length:--control-font-size-md) ds:tabular-nums",
1321
+ "ds:[&:has([role=checkbox])]:pr-0",
1322
+ muted && "ds:text-fg-3",
1323
+ cellCommon({ align, numeric, truncate, sticky }, STICKY_CELL_SURFACE),
1324
+ className
1325
+ );
1326
+ const cellStyle = widthStyle(width, style);
1327
+ const overflow = useOverflowTooltip();
1328
+ const mergedRef = useMergedRefs(ref, overflow.ref);
1329
+ if (overflowTooltip && truncate) {
1330
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
1331
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
1332
+ "td",
1333
+ {
1334
+ ref: mergedRef,
1335
+ ...slot(tableAnatomy, "cell"),
1336
+ className: cellClassName,
1337
+ style: cellStyle,
1338
+ onPointerEnter: (event) => {
1339
+ onPointerEnter?.(event);
1340
+ overflow.onPointerEnter();
1341
+ },
1342
+ onFocus: (event) => {
1343
+ onFocus?.(event);
1344
+ overflow.onFocus();
1345
+ },
1346
+ ...props,
1347
+ children
1348
+ }
1349
+ ) }),
1350
+ overflow.overflowing && /* @__PURE__ */ jsx(TooltipContent, { children })
1351
+ ] });
1352
+ }
1280
1353
  return /* @__PURE__ */ jsx(
1281
1354
  "td",
1282
1355
  {
1283
1356
  ref,
1284
1357
  ...slot(tableAnatomy, "cell"),
1285
- className: cn(
1286
- // 13px, fg-2, soft 1px row divider, tabular nums; airier vertical
1287
- // rhythm for the taller rows in the catalog layout.
1288
- "ds:text-fg-2 ds:px-(--table-cell-padding-x) ds:py-(--table-cell-padding-y) ds:align-middle ds:text-(length:--control-font-size-md) ds:tabular-nums",
1289
- "ds:[&:has([role=checkbox])]:pr-0",
1290
- muted && "ds:text-fg-3",
1291
- cellCommon({ align, numeric, truncate, sticky }, STICKY_CELL_SURFACE),
1292
- className
1293
- ),
1294
- style: widthStyle(width, style),
1295
- ...props
1358
+ className: cellClassName,
1359
+ style: cellStyle,
1360
+ onPointerEnter,
1361
+ onFocus,
1362
+ ...props,
1363
+ children
1296
1364
  }
1297
1365
  );
1298
1366
  });
1299
1367
  TableCell.displayName = "TableCell";
1368
+ var STICKY_GROUP_ROW_Z = "ds:z-[var(--z-base)]";
1369
+ var TableGroupRow = forwardRef(
1370
+ function TableGroupRow2({
1371
+ colSpan,
1372
+ label,
1373
+ trailing,
1374
+ collapsible = false,
1375
+ open = true,
1376
+ onOpenChange,
1377
+ messages: messagesProp,
1378
+ className,
1379
+ ...props
1380
+ }, ref) {
1381
+ const messages = useDsMessages("table", messagesProp);
1382
+ const { stickyHeader } = useContext(TableContext);
1383
+ return /* @__PURE__ */ jsx("tr", { ref, ...slot(tableAnatomy, "group-row"), ...props, children: /* @__PURE__ */ jsx(
1384
+ "td",
1385
+ {
1386
+ colSpan,
1387
+ className: cn(
1388
+ "ds:bg-surface-2 ds:border-rule ds:h-(--table-row-height) ds:border-b ds:px-(--table-cell-padding-x) ds:align-middle",
1389
+ // Stuck under the sticky header (W6-10's own token, so the two
1390
+ // heights can never drift apart) rather than on the `<tr>`: a
1391
+ // sticky `<tr>` in a collapsed-border table is the flaky part
1392
+ // across engines, a sticky cell is the reliable one — the same
1393
+ // choice `TableHead`'s own sticky rule makes above.
1394
+ stickyHeader && cn("ds:sticky ds:top-(--table-row-height) ds:[box-shadow:inset_0_-1px_0_var(--color-rule)]", STICKY_GROUP_ROW_Z),
1395
+ className
1396
+ ),
1397
+ children: /* @__PURE__ */ jsxs("div", { className: "ds:flex ds:items-center ds:gap-1.5", children: [
1398
+ collapsible && /* @__PURE__ */ jsx(
1399
+ Pressable,
1400
+ {
1401
+ ...slot(tableAnatomy, "group-row-toggle"),
1402
+ "aria-expanded": open,
1403
+ onClick: () => onOpenChange?.(!open),
1404
+ "aria-label": open ? messages.collapseSection : messages.expandSection,
1405
+ className: "ds:-ml-1 ds:inline-flex ds:size-5 ds:shrink-0 ds:items-center ds:justify-center ds:rounded-icon ds:text-fg-4 ds:hover:text-fg-2",
1406
+ children: /* @__PURE__ */ jsx(
1407
+ ChevronDownIcon,
1408
+ {
1409
+ className: cn(
1410
+ "ds:size-3.5 ds:transition-transform ds:duration-[var(--duration-fast)] ds:ease-[var(--ease-out-quart)] ds:motion-reduce:transition-none",
1411
+ !open && "ds:-rotate-90"
1412
+ ),
1413
+ "aria-hidden": "true"
1414
+ }
1415
+ )
1416
+ }
1417
+ ),
1418
+ /* @__PURE__ */ jsx(
1419
+ "span",
1420
+ {
1421
+ ...slot(tableAnatomy, "group-row-label"),
1422
+ className: "ds:font-mono ds:text-overline ds:text-fg-4 ds:font-medium ds:tracking-[0.14em] ds:uppercase",
1423
+ children: label
1424
+ }
1425
+ ),
1426
+ trailing && /* @__PURE__ */ jsx(
1427
+ "span",
1428
+ {
1429
+ ...slot(tableAnatomy, "group-row-trailing"),
1430
+ className: "ds:text-fg-3 ds:ml-auto ds:shrink-0 ds:text-xs",
1431
+ children: trailing
1432
+ }
1433
+ )
1434
+ ] })
1435
+ }
1436
+ ) });
1437
+ }
1438
+ );
1439
+ TableGroupRow.displayName = "TableGroupRow";
1300
1440
  var TableCaption = forwardRef(
1301
1441
  function TableCaption2({ className, ...props }, ref) {
1302
1442
  return /* @__PURE__ */ jsx(
@@ -1321,7 +1461,7 @@ var SEGMENTED_ITEM_CLASSES = cn(
1321
1461
  );
1322
1462
  var itemVariants = cva(
1323
1463
  cn(
1324
- "ds:inline-flex ds:items-center ds:justify-center ds:rounded-pill ds:px-3 ds:py-1.5 ds:text-(length:--control-font-size-md) ds:font-medium",
1464
+ "ds:inline-flex ds:cursor-pointer ds:items-center ds:justify-center ds:rounded-pill ds:px-3 ds:py-1.5 ds:text-(length:--control-font-size-md) ds:font-medium",
1325
1465
  "ds:text-fg-3",
1326
1466
  microInteractions.selection,
1327
1467
  "ds:hover:bg-surface-hover ds:hover:text-fg",
@@ -1344,7 +1484,7 @@ var itemVariants = cva(
1344
1484
  );
1345
1485
  var sizedItemVariants = cva(
1346
1486
  cn(
1347
- "ds:inline-flex ds:items-center ds:justify-center ds:rounded-pill ds:font-medium",
1487
+ "ds:inline-flex ds:cursor-pointer ds:items-center ds:justify-center ds:rounded-pill ds:font-medium",
1348
1488
  "ds:text-fg-3",
1349
1489
  microInteractions.selection,
1350
1490
  "ds:hover:bg-surface-hover ds:hover:text-fg",
@@ -1365,11 +1505,11 @@ var sizedItemVariants = cva(
1365
1505
  }
1366
1506
  }
1367
1507
  );
1368
- var ToggleGroupContext = React2.createContext({
1508
+ var ToggleGroupContext = React3.createContext({
1369
1509
  variant: "default",
1370
1510
  size: void 0
1371
1511
  });
1372
- var ToggleGroup = React2.forwardRef(function ToggleGroup2({
1512
+ var ToggleGroup = React3.forwardRef(function ToggleGroup2({
1373
1513
  className,
1374
1514
  variant,
1375
1515
  size,
@@ -1411,11 +1551,11 @@ var ToggleGroup = React2.forwardRef(function ToggleGroup2({
1411
1551
  defaultProp: defaultValue ?? emptyValue,
1412
1552
  onChange: onValueChange
1413
1553
  });
1414
- const initialValue = React2.useRef(valueProp ?? defaultValue ?? emptyValue);
1415
- const rootRef = React2.useRef(null);
1554
+ const initialValue = React3.useRef(valueProp ?? defaultValue ?? emptyValue);
1555
+ const rootRef = React3.useRef(null);
1416
1556
  const mergedRef = useMergedRefs(ref, rootRef);
1417
1557
  const labelledBy = wiring["aria-labelledby"] ?? (fieldset?.legendMounted ? fieldset.legendId : void 0);
1418
- const context = React2.useMemo(() => ({ variant, size }), [variant, size]);
1558
+ const context = React3.useMemo(() => ({ variant, size }), [variant, size]);
1419
1559
  const radixProps = {
1420
1560
  ...props,
1421
1561
  type,
@@ -1462,8 +1602,8 @@ var ToggleGroup = React2.forwardRef(function ToggleGroup2({
1462
1602
  ] });
1463
1603
  });
1464
1604
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
1465
- var ToggleGroupItem = React2.forwardRef(function ToggleGroupItem2({ className, variant, ...props }, ref) {
1466
- const ctx = React2.useContext(ToggleGroupContext);
1605
+ var ToggleGroupItem = React3.forwardRef(function ToggleGroupItem2({ className, variant, ...props }, ref) {
1606
+ const ctx = React3.useContext(ToggleGroupContext);
1467
1607
  const resolvedVariant = variant ?? ctx.variant;
1468
1608
  return /* @__PURE__ */ jsx(
1469
1609
  ToggleGroupPrimitive.Item,
@@ -1478,13 +1618,13 @@ var ToggleGroupItem = React2.forwardRef(function ToggleGroupItem2({ className, v
1478
1618
  );
1479
1619
  });
1480
1620
  ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
1481
- var Tabs = React2.forwardRef(
1621
+ var Tabs = React3.forwardRef(
1482
1622
  function Tabs2({ className, ...props }, ref) {
1483
1623
  return /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, className: cn(className), ...props });
1484
1624
  }
1485
1625
  );
1486
1626
  Tabs.displayName = TabsPrimitive.Root.displayName;
1487
- var TabsList = React2.forwardRef(function TabsList2({ className, variant = "default", ...props }, ref) {
1627
+ var TabsList = React3.forwardRef(function TabsList2({ className, variant = "default", ...props }, ref) {
1488
1628
  return /* @__PURE__ */ jsx(
1489
1629
  TabsPrimitive.List,
1490
1630
  {
@@ -1507,7 +1647,7 @@ var TabsList = React2.forwardRef(function TabsList2({ className, variant = "defa
1507
1647
  TabsList.displayName = TabsPrimitive.List.displayName;
1508
1648
  var triggerVariants = cva(
1509
1649
  cn(
1510
- "ds:inline-flex ds:items-center ds:justify-center ds:gap-2 ds:text-(length:--control-font-size-md) ds:font-medium",
1650
+ "ds:inline-flex ds:cursor-pointer ds:items-center ds:justify-center ds:gap-2 ds:text-(length:--control-font-size-md) ds:font-medium",
1511
1651
  "ds:text-fg-3",
1512
1652
  microInteractions.selection,
1513
1653
  "ds:focus-visible:outline-none ds:focus-visible:[box-shadow:var(--shadow-focus-ring)]",
@@ -1553,7 +1693,7 @@ var triggerVariants = cva(
1553
1693
  }
1554
1694
  }
1555
1695
  );
1556
- var TabsTrigger = React2.forwardRef(function TabsTrigger2({ className, variant, ...props }, ref) {
1696
+ var TabsTrigger = React3.forwardRef(function TabsTrigger2({ className, variant, ...props }, ref) {
1557
1697
  return /* @__PURE__ */ jsx(
1558
1698
  TabsPrimitive.Trigger,
1559
1699
  {
@@ -1564,7 +1704,7 @@ var TabsTrigger = React2.forwardRef(function TabsTrigger2({ className, variant,
1564
1704
  );
1565
1705
  });
1566
1706
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1567
- var TabsContent = React2.forwardRef(function TabsContent2({ className, ...props }, ref) {
1707
+ var TabsContent = React3.forwardRef(function TabsContent2({ className, ...props }, ref) {
1568
1708
  return /* @__PURE__ */ jsx(
1569
1709
  TabsPrimitive.Content,
1570
1710
  {
@@ -1590,7 +1730,7 @@ function TeamMemberSelect({
1590
1730
  className,
1591
1731
  size
1592
1732
  }) {
1593
- const options = React2.useMemo(() => {
1733
+ const options = React3.useMemo(() => {
1594
1734
  const meBadge = /* @__PURE__ */ jsx(
1595
1735
  Badge,
1596
1736
  {
@@ -2863,7 +3003,7 @@ function MetaText({
2863
3003
  if (presentValues.length === 0) {
2864
3004
  return null;
2865
3005
  }
2866
- return /* @__PURE__ */ jsx("div", { className, children: presentValues.map((value, index) => /* @__PURE__ */ jsxs(React2.Fragment, { children: [
3006
+ return /* @__PURE__ */ jsx("div", { className, children: presentValues.map((value, index) => /* @__PURE__ */ jsxs(React3.Fragment, { children: [
2867
3007
  index > 0 && /* @__PURE__ */ jsx(
2868
3008
  "span",
2869
3009
  {
@@ -2948,7 +3088,7 @@ function MoreActions({ menu }) {
2948
3088
  /* @__PURE__ */ jsx(DropdownMenuContent, { align: "end", onClick: (event) => event.stopPropagation(), children: menu })
2949
3089
  ] });
2950
3090
  }
2951
- var DocumentFileRow = React2.forwardRef(
3091
+ var DocumentFileRow = React3.forwardRef(
2952
3092
  function DocumentFileRow2({
2953
3093
  name,
2954
3094
  fileType,
@@ -3015,7 +3155,7 @@ var DocumentFileRow = React2.forwardRef(
3015
3155
  }
3016
3156
  );
3017
3157
  DocumentFileRow.displayName = "DocumentFileRow";
3018
- var DocumentFileCard = React2.forwardRef(
3158
+ var DocumentFileCard = React3.forwardRef(
3019
3159
  function DocumentFileCard2({
3020
3160
  name,
3021
3161
  fileType,
@@ -3091,7 +3231,7 @@ var lineCaptionToneClass = {
3091
3231
  warning: "ds:text-warning-fg",
3092
3232
  danger: "ds:text-danger-fg"
3093
3233
  };
3094
- var DocumentFileLine = React2.forwardRef(
3234
+ var DocumentFileLine = React3.forwardRef(
3095
3235
  function DocumentFileLine2({
3096
3236
  name,
3097
3237
  fileType = "",
@@ -3265,7 +3405,7 @@ function FileGroup({ files }) {
3265
3405
  file.id
3266
3406
  )) });
3267
3407
  }
3268
- var DocumentChecklist = React2.forwardRef(
3408
+ var DocumentChecklist = React3.forwardRef(
3269
3409
  function DocumentChecklist2({
3270
3410
  items,
3271
3411
  title = "Your documents",
@@ -4234,14 +4374,23 @@ var DocumentRequestCard = forwardRef(
4234
4374
  docWord
4235
4375
  ] }),
4236
4376
  assignees.length > 0 && /* @__PURE__ */ jsxs("span", { className: "ds:text-fg-3 ds:ml-auto ds:flex ds:items-center ds:gap-2 ds:text-[12.5px]", children: [
4237
- /* @__PURE__ */ jsx("span", { className: "ds:flex ds:items-center ds:-space-x-1.5", children: assignees.map((name) => /* @__PURE__ */ jsx(
4238
- "span",
4239
- {
4240
- title: name,
4241
- className: "ds:border-surface ds:bg-surface-2 ds:text-fg-3 ds:ring-surface ds:grid ds:size-6 ds:place-items-center ds:rounded-full ds:border ds:text-[10px] ds:font-semibold ds:ring-1",
4242
- children: initials(name)
4243
- },
4244
- name
4377
+ /* @__PURE__ */ jsx("span", { className: "ds:flex ds:items-center ds:-space-x-1.5", children: assignees.map((name) => (
4378
+ // C-DOM-15 (assure-pro) freezes this row's exact markup —
4379
+ // Pro selects on it without a DS fork. A DS `Tooltip`
4380
+ // here (even `TooltipTrigger asChild`, which adds no
4381
+ // element) still stamps a `data-state="closed"` attribute
4382
+ // onto this span, which the freeze's structure snapshot
4383
+ // also protects, so this one stays on native `title=`
4384
+ // until the freeze lifts (module moves to Pro).
4385
+ /* @__PURE__ */ jsx(
4386
+ "span",
4387
+ {
4388
+ title: name,
4389
+ className: "ds:border-surface ds:bg-surface-2 ds:text-fg-3 ds:ring-surface ds:grid ds:size-6 ds:place-items-center ds:rounded-full ds:border ds:text-[10px] ds:font-semibold ds:ring-1",
4390
+ children: initials(name)
4391
+ },
4392
+ name
4393
+ )
4245
4394
  )) }),
4246
4395
  "Assigned"
4247
4396
  ] })
@@ -4745,7 +4894,9 @@ var DocumentSourceFilter = forwardRef(
4745
4894
  {
4746
4895
  className: cn(
4747
4896
  "ds:rounded-md ds:px-1.5 ds:py-px ds:text-[11px] ds:font-bold ds:tabular-nums",
4748
- active ? "ds:bg-brand-bg-active ds:text-brand" : "ds:bg-surface-2 ds:text-fg-4"
4897
+ // `text-brand` measured 4.26:1 on the active tint at 11px; the
4898
+ // brand's deeper (pressed) step clears AA in both themes.
4899
+ active ? "ds:bg-brand-bg-active ds:text-brand-active" : "ds:bg-surface-2 ds:text-fg-4"
4749
4900
  ),
4750
4901
  children: count
4751
4902
  }
@@ -5598,6 +5749,6 @@ function SignatureEditor({
5598
5749
  }
5599
5750
  SignatureEditor.displayName = "SignatureEditor";
5600
5751
 
5601
- export { AIReceiptPanel, AiDraftCard, Assignee, AttentionItem, Badge, Blockquote, BottomNav, CategoryDivider, CategoryTag, ChannelTabs, ClientRailGroupHeader, ClientRailItem, Dash, DashGrid, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DataTableView, DocumentChecklist, DocumentFileCard, DocumentFileLine, DocumentFileRow, DocumentRequestCard, DocumentRequestDetail, DocumentRequestField, DocumentRequestUpload, DocumentSourceFilter, DocumentSourceTag, DocumentsWorkspaceLayout, EmailMessageCard, EmptyValue, EngagementCard, EngagementTimeline, EngagementTimelineStep, IntentBadge, MissingDocumentsPanel, MoneyCell, NewMenu, PROGRESS_LEGACY_TO_INTENT, Pagination, ProgressBar, ProgressRing, SERVICE_TONES, STATUS_DOT_TONE_TO_INTENT, Section, SectionHead, SectionHeader, SegmentedProgress, SignatureEditor, Skeleton, SkeletonCircle, SkeletonText, StagePill, Stat, StatusDot, StatusPill, SuggestionPills, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagsCell, TeamMemberSelect, TimeLogger, TimeLoggerActions, TimeLoggerBillable, TimeLoggerContextRow, TimeLoggerEntry, TimeLoggerEntryList, TimeLoggerField, TimeLoggerFooter, TimeLoggerHeader, TimeLoggerNotes, TimeLoggerTimer, ToggleGroup, ToggleGroupItem, badgeVariants, compareSortValues, formatClock, formatCurrency, formatDuration, nextSortDirection, parseDuration, progressBarVariants, progressRingVariants, resolveBadgeAppearance, serviceToneLabel, serviceToneStyle, statusDotVariants, useDataTable, useStopwatch };
5602
- //# sourceMappingURL=chunk-PC6M4QZ2.js.map
5603
- //# sourceMappingURL=chunk-PC6M4QZ2.js.map
5752
+ export { AIReceiptPanel, AiDraftCard, Assignee, AttentionItem, Badge, Blockquote, BottomNav, CategoryDivider, CategoryTag, ChannelTabs, ClientRailGroupHeader, ClientRailItem, Dash, DashGrid, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DataTableView, DocumentChecklist, DocumentFileCard, DocumentFileLine, DocumentFileRow, DocumentRequestCard, DocumentRequestDetail, DocumentRequestField, DocumentRequestUpload, DocumentSourceFilter, DocumentSourceTag, DocumentsWorkspaceLayout, EmailMessageCard, EmptyValue, EngagementCard, EngagementTimeline, EngagementTimelineStep, IntentBadge, MissingDocumentsPanel, MoneyCell, NewMenu, PROGRESS_LEGACY_TO_INTENT, Pagination, ProgressBar, ProgressRing, SERVICE_TONES, STATUS_DOT_TONE_TO_INTENT, Section, SectionHead, SectionHeader, SegmentedProgress, SignatureEditor, Skeleton, SkeletonCircle, SkeletonText, StagePill, Stat, StatusDot, StatusPill, SuggestionPills, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableGroupRow, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagsCell, TeamMemberSelect, TimeLogger, TimeLoggerActions, TimeLoggerBillable, TimeLoggerContextRow, TimeLoggerEntry, TimeLoggerEntryList, TimeLoggerField, TimeLoggerFooter, TimeLoggerHeader, TimeLoggerNotes, TimeLoggerTimer, ToggleGroup, ToggleGroupItem, badgeVariants, compareSortValues, formatClock, formatCurrency, formatDuration, nextSortDirection, parseDuration, progressBarVariants, progressRingVariants, resolveBadgeAppearance, serviceToneLabel, serviceToneStyle, statusDotVariants, useDataTable, useOverflowTooltip, useStopwatch };
5753
+ //# sourceMappingURL=chunk-FIRPQWYR.js.map
5754
+ //# sourceMappingURL=chunk-FIRPQWYR.js.map