@tutti-os/ui-system 0.0.139 → 0.0.141

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.
@@ -626,7 +626,7 @@ var MenuSurface = React4.forwardRef(
626
626
  MenuSurface.displayName = "MenuSurface";
627
627
 
628
628
  // src/components/context-menu/context-menu.tsx
629
- import { jsx as jsx9 } from "react/jsx-runtime";
629
+ import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
630
630
  function ContextMenu({
631
631
  ...props
632
632
  }) {
@@ -686,11 +686,75 @@ function ContextMenuItem({
686
686
  }
687
687
  );
688
688
  }
689
+ function ContextMenuSeparator({
690
+ className,
691
+ ...props
692
+ }) {
693
+ return /* @__PURE__ */ jsx9(
694
+ ContextMenuPrimitive.Separator,
695
+ {
696
+ "data-slot": "context-menu-separator",
697
+ className: cn("mx-2 my-0.5 h-px bg-[var(--border-1)]", className),
698
+ ...props
699
+ }
700
+ );
701
+ }
702
+ function ContextMenuSub({
703
+ ...props
704
+ }) {
705
+ return /* @__PURE__ */ jsx9(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
706
+ }
707
+ function ContextMenuSubTrigger({
708
+ className,
709
+ children,
710
+ ...props
711
+ }) {
712
+ return /* @__PURE__ */ jsxs4(
713
+ ContextMenuPrimitive.SubTrigger,
714
+ {
715
+ "data-slot": "context-menu-sub-trigger",
716
+ className: cn(
717
+ menuItemClassName,
718
+ "data-open:bg-[var(--transparency-block)] data-open:text-[var(--text-primary)]",
719
+ className
720
+ ),
721
+ ...props,
722
+ children: [
723
+ children,
724
+ /* @__PURE__ */ jsx9(ArrowRightIcon, { className: "ml-auto text-[var(--text-tertiary)]" })
725
+ ]
726
+ }
727
+ );
728
+ }
729
+ function ContextMenuSubContent({
730
+ className,
731
+ children,
732
+ style,
733
+ ...props
734
+ }) {
735
+ return /* @__PURE__ */ jsx9(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx9(
736
+ ContextMenuPrimitive.SubContent,
737
+ {
738
+ asChild: true,
739
+ "data-slot": "context-menu-sub-content",
740
+ ...props,
741
+ children: /* @__PURE__ */ jsx9(
742
+ MenuSurface,
743
+ {
744
+ "data-slot": "context-menu-sub-content",
745
+ className: cn("z-50 min-w-[96px] overflow-hidden", className),
746
+ style: { zIndex: "var(--z-popover)", ...style },
747
+ children
748
+ }
749
+ )
750
+ }
751
+ ) });
752
+ }
689
753
 
690
754
  // src/components/date-picker/date-picker.tsx
691
755
  import * as React5 from "react";
692
756
  import { createPortal } from "react-dom";
693
- import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
757
+ import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
694
758
  var defaultLabels = {
695
759
  placeholder: "Year / Month / Day",
696
760
  previousMonth: "Previous month",
@@ -893,7 +957,7 @@ var DatePicker = React5.forwardRef(
893
957
  setIsOpen(false);
894
958
  triggerRef.current?.focus();
895
959
  };
896
- return /* @__PURE__ */ jsxs4(Fragment2, { children: [
960
+ return /* @__PURE__ */ jsxs5(Fragment2, { children: [
897
961
  /* @__PURE__ */ jsx10(
898
962
  "button",
899
963
  {
@@ -929,7 +993,7 @@ var DatePicker = React5.forwardRef(
929
993
  }
930
994
  ),
931
995
  isOpen && popoverPosition ? createPortal(
932
- /* @__PURE__ */ jsxs4(
996
+ /* @__PURE__ */ jsxs5(
933
997
  "div",
934
998
  {
935
999
  ref: popoverRef,
@@ -942,9 +1006,9 @@ var DatePicker = React5.forwardRef(
942
1006
  zIndex: "var(--z-popover)"
943
1007
  },
944
1008
  children: [
945
- /* @__PURE__ */ jsxs4("div", { className: "mb-3 flex items-center justify-between gap-2", children: [
1009
+ /* @__PURE__ */ jsxs5("div", { className: "mb-3 flex items-center justify-between gap-2", children: [
946
1010
  /* @__PURE__ */ jsx10("div", { className: "text-[13px] font-semibold text-foreground", children: formatMonthLabel(visibleMonth) }),
947
- /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-1", children: [
1011
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-1", children: [
948
1012
  /* @__PURE__ */ jsx10(
949
1013
  "button",
950
1014
  {
@@ -1009,7 +1073,7 @@ var DatePicker = React5.forwardRef(
1009
1073
  })
1010
1074
  }
1011
1075
  ),
1012
- /* @__PURE__ */ jsxs4("div", { className: "mt-3 flex items-center justify-between gap-2 border-t border-border/70 pt-3", children: [
1076
+ /* @__PURE__ */ jsxs5("div", { className: "mt-3 flex items-center justify-between gap-2 border-t border-border/70 pt-3", children: [
1013
1077
  /* @__PURE__ */ jsx10(
1014
1078
  "button",
1015
1079
  {
@@ -1045,7 +1109,7 @@ DatePicker.displayName = "DatePicker";
1045
1109
 
1046
1110
  // src/components/drawer/drawer.tsx
1047
1111
  import { Drawer as DrawerPrimitive } from "vaul";
1048
- import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
1112
+ import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
1049
1113
  function Drawer({
1050
1114
  ...props
1051
1115
  }) {
@@ -1092,9 +1156,9 @@ function DrawerContent({
1092
1156
  style,
1093
1157
  ...props
1094
1158
  }) {
1095
- return /* @__PURE__ */ jsxs5(DrawerPortal, { "data-slot": "drawer-portal", container: portalContainer, children: [
1159
+ return /* @__PURE__ */ jsxs6(DrawerPortal, { "data-slot": "drawer-portal", container: portalContainer, children: [
1096
1160
  showOverlay ? /* @__PURE__ */ jsx11(DrawerOverlay, {}) : null,
1097
- /* @__PURE__ */ jsxs5(
1161
+ /* @__PURE__ */ jsxs6(
1098
1162
  DrawerPrimitive.Content,
1099
1163
  {
1100
1164
  "data-slot": "drawer-content",
@@ -1171,7 +1235,7 @@ function DrawerDescription({
1171
1235
 
1172
1236
  // src/components/dropdown-menu/dropdown-menu.tsx
1173
1237
  import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
1174
- import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
1238
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
1175
1239
  function DropdownMenu({
1176
1240
  ...props
1177
1241
  }) {
@@ -1266,7 +1330,7 @@ function DropdownMenuCheckboxItem({
1266
1330
  inset,
1267
1331
  ...props
1268
1332
  }) {
1269
- return /* @__PURE__ */ jsxs6(
1333
+ return /* @__PURE__ */ jsxs7(
1270
1334
  DropdownMenuPrimitive.CheckboxItem,
1271
1335
  {
1272
1336
  checked,
@@ -1311,7 +1375,7 @@ function DropdownMenuRadioItem({
1311
1375
  inset,
1312
1376
  ...props
1313
1377
  }) {
1314
- return /* @__PURE__ */ jsxs6(
1378
+ return /* @__PURE__ */ jsxs7(
1315
1379
  DropdownMenuPrimitive.RadioItem,
1316
1380
  {
1317
1381
  "data-inset": inset,
@@ -1394,7 +1458,7 @@ function DropdownMenuSubTrigger({
1394
1458
  children,
1395
1459
  ...props
1396
1460
  }) {
1397
- return /* @__PURE__ */ jsxs6(
1461
+ return /* @__PURE__ */ jsxs7(
1398
1462
  DropdownMenuPrimitive.SubTrigger,
1399
1463
  {
1400
1464
  "data-inset": inset,
@@ -1536,7 +1600,7 @@ function TooltipContent({
1536
1600
  }
1537
1601
 
1538
1602
  // src/components/mention-pill/truncating-pill-label.tsx
1539
- import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
1603
+ import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
1540
1604
  function useTextOverflow(watch, descendantSelector) {
1541
1605
  const ref = React6.useRef(null);
1542
1606
  const [overflowing, setOverflowing] = React6.useState(false);
@@ -1587,7 +1651,7 @@ function TruncatingPillLabel({
1587
1651
  if (!tooltip) {
1588
1652
  return label;
1589
1653
  }
1590
- const tooltipElement = /* @__PURE__ */ jsxs7(Tooltip, { children: [
1654
+ const tooltipElement = /* @__PURE__ */ jsxs8(Tooltip, { children: [
1591
1655
  /* @__PURE__ */ jsx15(TooltipTrigger, { asChild: true, children: label }),
1592
1656
  overflowing ? /* @__PURE__ */ jsx15(TooltipContent, { className: "max-w-[min(420px,calc(100vw-32px))] whitespace-normal text-left [overflow-wrap:anywhere]", children: tooltip }) : null
1593
1657
  ] });
@@ -1595,7 +1659,7 @@ function TruncatingPillLabel({
1595
1659
  }
1596
1660
 
1597
1661
  // src/components/mention-pill/mention-pill.tsx
1598
- import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
1662
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
1599
1663
  var mentionPillTokenByKind = {
1600
1664
  app: "var(--rich-text-folder)",
1601
1665
  issue: "var(--rich-text-mention-issue)",
@@ -1635,7 +1699,7 @@ function MentionPill({
1635
1699
  const tooltipText = [label, summary].filter(
1636
1700
  (part) => typeof part === "string" && part.trim() !== ""
1637
1701
  ).join(" ");
1638
- return /* @__PURE__ */ jsxs8(
1702
+ return /* @__PURE__ */ jsxs9(
1639
1703
  "span",
1640
1704
  {
1641
1705
  className: cn(
@@ -1652,7 +1716,7 @@ function MentionPill({
1652
1716
  },
1653
1717
  ...props,
1654
1718
  children: [
1655
- /* @__PURE__ */ jsxs8(
1719
+ /* @__PURE__ */ jsxs9(
1656
1720
  "span",
1657
1721
  {
1658
1722
  ...iconContainerProps,
@@ -1708,14 +1772,14 @@ function MentionPill({
1708
1772
  ]
1709
1773
  }
1710
1774
  ),
1711
- /* @__PURE__ */ jsxs8(
1775
+ /* @__PURE__ */ jsxs9(
1712
1776
  TruncatingPillLabel,
1713
1777
  {
1714
1778
  tooltip: tooltipEnabled ? tooltipText : "",
1715
1779
  withTooltipProvider,
1716
1780
  children: [
1717
1781
  /* @__PURE__ */ jsx16("span", { children: label }),
1718
- summary ? /* @__PURE__ */ jsxs8("span", { className: "text-current", children: [
1782
+ summary ? /* @__PURE__ */ jsxs9("span", { className: "text-current", children: [
1719
1783
  " ",
1720
1784
  summary
1721
1785
  ] }) : null
@@ -1855,7 +1919,7 @@ function ResizableHandle({
1855
1919
 
1856
1920
  // src/components/scroll-area/scroll-area.tsx
1857
1921
  import * as React8 from "react";
1858
- import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
1922
+ import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
1859
1923
  var MIN_THUMB_SIZE_PX = 24;
1860
1924
  function ScrollArea({
1861
1925
  className,
@@ -1954,7 +2018,7 @@ function CustomScrollArea({
1954
2018
  const contentRef = React8.useRef(null);
1955
2019
  const [active, setActive] = React8.useState(false);
1956
2020
  const alwaysVisible = type === "always" || type === "scroll" || hasAlwaysVisibleScrollbarSelector(className);
1957
- return /* @__PURE__ */ jsxs9(
2021
+ return /* @__PURE__ */ jsxs10(
1958
2022
  ScrollAreaFrame,
1959
2023
  {
1960
2024
  ...props,
@@ -2417,7 +2481,7 @@ function clamp(value, min, max) {
2417
2481
 
2418
2482
  // src/components/select/select.tsx
2419
2483
  import { Select as SelectPrimitive } from "radix-ui";
2420
- import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
2484
+ import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
2421
2485
  function Select({
2422
2486
  ...props
2423
2487
  }) {
@@ -2448,7 +2512,7 @@ function SelectTrigger({
2448
2512
  children,
2449
2513
  ...props
2450
2514
  }) {
2451
- return /* @__PURE__ */ jsxs10(
2515
+ return /* @__PURE__ */ jsxs11(
2452
2516
  SelectPrimitive.Trigger,
2453
2517
  {
2454
2518
  "data-slot": "select-trigger",
@@ -2489,7 +2553,7 @@ function SelectContent({
2489
2553
  position,
2490
2554
  align,
2491
2555
  ...props,
2492
- children: /* @__PURE__ */ jsxs10(
2556
+ children: /* @__PURE__ */ jsxs11(
2493
2557
  MenuSurface,
2494
2558
  {
2495
2559
  "data-slot": "select-content",
@@ -2618,7 +2682,7 @@ function SelectItem({
2618
2682
  forceSelectedIndicator = false,
2619
2683
  ...props
2620
2684
  }) {
2621
- return /* @__PURE__ */ jsxs10(
2685
+ return /* @__PURE__ */ jsxs11(
2622
2686
  SelectPrimitive.Item,
2623
2687
  {
2624
2688
  "data-slot": "select-item",
@@ -2713,7 +2777,7 @@ function Separator2({
2713
2777
  }
2714
2778
 
2715
2779
  // src/components/section-tabs/section-tabs.tsx
2716
- import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
2780
+ import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
2717
2781
  function SectionTabs({
2718
2782
  tabs,
2719
2783
  value,
@@ -2732,7 +2796,7 @@ function SectionTabs({
2732
2796
  role: "tablist",
2733
2797
  children: tabs.map((tab) => {
2734
2798
  const isActive = value === tab.value;
2735
- return /* @__PURE__ */ jsxs11(
2799
+ return /* @__PURE__ */ jsxs12(
2736
2800
  "button",
2737
2801
  {
2738
2802
  "aria-selected": isActive,
@@ -2963,7 +3027,7 @@ function Textarea({ className, ...props }) {
2963
3027
  import * as React9 from "react";
2964
3028
  import { Toast as ToastPrimitive } from "radix-ui";
2965
3029
  import { cva as cva5 } from "class-variance-authority";
2966
- import { jsx as jsx30, jsxs as jsxs12 } from "react/jsx-runtime";
3030
+ import { jsx as jsx30, jsxs as jsxs13 } from "react/jsx-runtime";
2967
3031
  var toastDefaultDurationMs = 3e3;
2968
3032
  function ToastProvider({
2969
3033
  duration = toastDefaultDurationMs,
@@ -3055,7 +3119,7 @@ function ToastTitle({
3055
3119
  }) {
3056
3120
  const toastVisual = React9.useContext(ToastVisualContext);
3057
3121
  const StatusIcon = toastVisual?.variant && hasToastStatusIcon(toastVisual.variant) ? toastStatusIconByVariant[toastVisual.variant] : null;
3058
- return /* @__PURE__ */ jsxs12(
3122
+ return /* @__PURE__ */ jsxs13(
3059
3123
  ToastPrimitive.Title,
3060
3124
  {
3061
3125
  "data-slot": "toast-title",
@@ -3133,7 +3197,7 @@ function ToastViewport({
3133
3197
 
3134
3198
  // src/components/underline-tabs/underline-tabs.tsx
3135
3199
  import { useEffect as useEffect5, useLayoutEffect as useLayoutEffect2, useRef as useRef4, useState as useState6 } from "react";
3136
- import { jsx as jsx31, jsxs as jsxs13 } from "react/jsx-runtime";
3200
+ import { jsx as jsx31, jsxs as jsxs14 } from "react/jsx-runtime";
3137
3201
  function UnderlineTabs({
3138
3202
  tabs,
3139
3203
  value,
@@ -3216,7 +3280,7 @@ function UnderlineTabs({
3216
3280
  behavior: "smooth"
3217
3281
  });
3218
3282
  };
3219
- return /* @__PURE__ */ jsxs13(
3283
+ return /* @__PURE__ */ jsxs14(
3220
3284
  "div",
3221
3285
  {
3222
3286
  "aria-label": ariaLabel,
@@ -3242,7 +3306,7 @@ function UnderlineTabs({
3242
3306
  "data-can-scroll-right": overflow.canScrollRight ? "true" : "false",
3243
3307
  "data-slot": "underline-tabs-viewport",
3244
3308
  "data-testid": viewportTestId,
3245
- children: /* @__PURE__ */ jsxs13(
3309
+ children: /* @__PURE__ */ jsxs14(
3246
3310
  "div",
3247
3311
  {
3248
3312
  ref: rowRef,
@@ -3250,7 +3314,7 @@ function UnderlineTabs({
3250
3314
  children: [
3251
3315
  tabs.map((tab) => {
3252
3316
  const isActive = value === tab.value;
3253
- return /* @__PURE__ */ jsxs13(
3317
+ return /* @__PURE__ */ jsxs14(
3254
3318
  "button",
3255
3319
  {
3256
3320
  ref: (element) => {
@@ -3670,6 +3734,10 @@ export {
3670
3734
  ContextMenuTrigger,
3671
3735
  ContextMenuContent,
3672
3736
  ContextMenuItem,
3737
+ ContextMenuSeparator,
3738
+ ContextMenuSub,
3739
+ ContextMenuSubTrigger,
3740
+ ContextMenuSubContent,
3673
3741
  DatePicker,
3674
3742
  Drawer,
3675
3743
  DrawerTrigger,
@@ -3752,4 +3820,4 @@ export {
3752
3820
  UnderlineTabs,
3753
3821
  ViewportMenuSurface
3754
3822
  };
3755
- //# sourceMappingURL=chunk-AVDBPOD4.js.map
3823
+ //# sourceMappingURL=chunk-HVIT4MKC.js.map