@kopexa/theme 17.22.6 → 17.22.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/editor.css CHANGED
@@ -585,255 +585,176 @@
585
585
  /* =====================
586
586
  TABLE
587
587
  ===================== */
588
- .tiptap.ProseMirror {
589
- .table-wrapper {
590
- overflow-x: auto;
591
- width: fit-content;
592
- max-width: 100%;
593
- margin-top: 0.5rem;
594
- margin-bottom: 1rem;
595
- }
596
-
597
- table {
598
- border-collapse: collapse;
599
- border-style: solid;
600
- border-width: 1px;
601
- border-color: var(--color-border);
602
- width: 100%;
603
- table-layout: fixed;
604
- }
605
-
606
- td,
607
- th {
608
- border-style: solid;
609
- border-width: 1px;
610
- border-color: var(--color-border);
611
- min-width: 100px;
612
- padding: 0.5rem;
613
- text-align: left;
614
- vertical-align: top;
615
- box-sizing: border-box;
616
- position: relative;
617
- transition: background-color 0.3s ease;
618
-
619
- &:first-of-type:not(a) {
620
- margin-top: 0;
621
- }
622
-
623
- p {
624
- margin: 0 !important;
625
588
 
626
- &+p {
627
- margin-top: 0.75rem !important;
628
- }
629
- }
589
+ .ProseMirror .tableWrapper {
590
+ overflow-x: auto;
591
+ }
630
592
 
631
- >* {
632
- margin-bottom: 0;
633
- }
634
- }
635
593
 
636
- th {
637
- font-weight: 500;
638
- text-align: start;
639
- }
594
+ .ProseMirror table {
595
+ border-collapse: collapse;
596
+ table-layout: fixed;
597
+ width: 100%;
598
+ overflow: hidden;
599
+ }
640
600
 
641
- .column-resize-handle {
642
- background-color: var(--tt-resize-handle-color);
643
- position: absolute;
644
- right: 0;
645
- top: 0;
646
- width: 2px;
647
- height: 100%;
648
- z-index: 5;
649
- pointer-events: none;
650
- }
601
+ .ProseMirror td,
602
+ .ProseMirror th {
603
+ vertical-align: top;
604
+ box-sizing: border-box;
605
+ position: relative;
606
+ }
651
607
 
652
- .selectedCell {
653
- border-style: double;
654
- border-color: var(--tt-selection-color-border);
655
- background-color: var(--tt-selection-color);
656
- }
657
608
 
658
- /** Grip Column, Cell Column */
659
- .grip-column,
660
- .grip-row {
661
- display: flex;
662
- justify-content: center;
663
- align-items: center;
664
- position: absolute;
665
- z-index: 10;
666
- cursor: pointer;
667
- background-color: rgba(0, 0, 0, .05);
668
- }
609
+ .ProseMirror td:not([data-colwidth]):not(.column-resize-dragging),
610
+ .ProseMirror th:not([data-colwidth]):not(.column-resize-dragging) {
611
+ /* if there's no explicit width set and the column is not being resized, set a default width */
612
+ min-width: var(--default-cell-min-width);
613
+ }
669
614
 
670
- .grip-column {
671
- width: calc(100% - 1px);
672
- border-left-width: 1px;
673
- border-left-color: rgba(0, 0, 0, .2);
674
- height: .75rem;
675
- left: 0;
676
- margin-left: -1px;
677
- top: -.75rem;
678
-
679
- &:hover,
680
- &.selected {
681
- &::before {
682
- content: '';
683
- width: .625rem;
684
- }
685
- }
615
+ .ProseMirror.resize-cursor {
616
+ cursor: ew-resize;
617
+ cursor: col-resize;
618
+ }
619
+ /* Give selected cells a blue overlay */
620
+ .ProseMirror .selectedCell:after {
621
+ z-index: 2;
622
+ position: absolute;
623
+ content: "";
624
+ left: 0;
625
+ right: 0;
626
+ top: 0;
627
+ bottom: 0;
628
+ background: rgba(40, 137, 207, 0.4);
629
+ pointer-events: none;
630
+ }
686
631
 
687
- &:hover {
688
- background-color: rgba(0, 0, 0, .1);
632
+ :root {
633
+ --tt-table-cell-padding: 0.5rem;
634
+ --tt-table-margin-block: 1.25rem;
689
635
 
690
- &::before {
691
- border-bottom-width: 2px;
692
- border-style: dotted;
693
- border-color: rgba(0, 0, 0, .60);
694
- }
695
- }
636
+ --tt-table-pad-block-start: 1rem; /* 8px */
637
+ --tt-table-pad-block-end: 1.5rem; /* 24px */
638
+ --tt-table-pad-inline-start: 1rem; /* 8px */
639
+ --tt-table-pad-inline-end: 1.5rem; /* 24px */
696
640
 
697
- &.first {
698
- border-color: transparent;
699
- border-top-left-radius: .125rem;
700
- }
641
+ --tt-table-column-resize-handle-bg: var(--color-primary-400);
642
+ }
701
643
 
702
- &.last {
703
- border-top-right-radius: .125rem;
704
- }
644
+ .tiptap [data-content-type="table"] {
645
+ margin-block: var(--tt-table-margin-block);
646
+ }
705
647
 
706
- &.selected {
707
- --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
708
- --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
709
- background-color: rgba(0, 0, 0, .30);
710
- border-color: rgba(0, 0, 0, .30);
711
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
712
648
 
713
- &::before {
714
- border-bottom-width: 2px;
715
- border-style: dotted;
716
- }
717
- }
718
- }
649
+ .tiptap [data-content-type="table"] .tableWrapper {
650
+ padding-block-start: var(--tt-table-pad-block-start);
651
+ padding-inline-start: var(--tt-table-pad-inline-start);
652
+ padding-inline-end: var(--tt-table-pad-inline-end);
653
+ padding-block-end: var(--tt-table-pad-block-end);
654
+ margin-left: -1rem;
655
+ overflow-y: hidden;
656
+ position: relative;
657
+ width: 100%;
658
+ }
719
659
 
720
- .grip-row {
721
- height: calc(100% + 1px);
722
- border-top-width: 1px;
723
- border-color: rgba(0, 0, 0, .2);
724
- left: -.75rem;
725
- width: .75rem;
726
- margin-top: -1px;
727
- top: 0;
728
-
729
- &:hover,
730
- &.selected {
731
- &::before {
732
- content: '';
733
- height: .625rem;
734
- }
735
- }
736
660
 
737
- &:hover {
738
- background-color: rgba(0, 0, 0, .1);
661
+ .tiptap table {
662
+ width: auto !important;
663
+ word-break: break-word;
664
+ }
739
665
 
740
- &::before {
741
- border-left-width: 2px;
742
- border-style: dotted;
743
- border-color: rgba(0, 0, 0, .60);
744
- }
745
- }
666
+ .tiptap th,
667
+ .tiptap td {
668
+ border: 1px solid var(--color-border);
669
+ padding: var(--tt-table-cell-padding);
670
+ }
746
671
 
747
- &.first {
748
- border-color: transparent;
749
- border-top-left-radius: .125rem;
750
- }
751
672
 
752
- &.last {
753
- border-bottom-left-radius: .125rem;
754
- }
673
+ .tiptap table th {
674
+ background-color: var(--color-muted);
675
+ font-weight: 600;
676
+ text-align: left;
677
+ }
755
678
 
756
- &.selected {
757
- background-color: rgba(0, 0, 0, .30);
758
- border-color: rgba(0, 0, 0, .30);
759
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
679
+ .ProseMirror .column-resize-handle {
680
+ position: absolute;
681
+ top: 0;
682
+ right: 0;
683
+ width: 2px;
684
+ margin-inline-start: -1px;
685
+ margin-top: -1px;
686
+ height: calc(100% + 2px);
687
+ background: var(--tt-table-column-resize-handle-bg);
688
+ cursor: col-resize;
689
+ transition: background 150ms 50ms;
690
+ z-index: 1;
691
+ pointer-events: auto;
692
+ }
760
693
 
761
- &::before {
762
- border-left-width: 2px;
763
- }
764
- }
765
- }
694
+ /* ================================================================================================
695
+ * TABLE CELL ALIGNMENT STYLES
696
+ * ================================================================================================ */
766
697
 
767
- table {
698
+ .tiptap [data-content-type="table"] td[data-text-align="left"],
699
+ .tiptap [data-content-type="table"] th[data-text-align="left"] {
700
+ text-align: left;
701
+ }
768
702
 
769
- tr[background="none"],
770
- tr:not([background]) {
771
- th {
772
- background-color: var(--color-muted);
773
- }
774
- }
775
- }
703
+ .tiptap [data-content-type="table"] td[data-text-align="center"],
704
+ .tiptap [data-content-type="table"] th[data-text-align="center"] {
705
+ text-align: center;
706
+ }
776
707
 
777
- .table-controls {
778
- position: absolute;
779
- }
708
+ .tiptap [data-content-type="table"] td[data-text-align="right"],
709
+ .tiptap [data-content-type="table"] th[data-text-align="right"] {
710
+ text-align: right;
711
+ }
780
712
 
781
- .table-wrapper .table-controls .columns-control,
782
- .table-wrapper .table-controls .rows-control {
783
- transition: opacity ease-in 100ms;
784
- position: absolute;
785
- z-index: 5;
786
- display: flex;
787
- justify-content: center;
788
- align-items: center;
789
- }
713
+ .tiptap [data-content-type="table"] td[data-text-align="justify"],
714
+ .tiptap [data-content-type="table"] th[data-text-align="justify"] {
715
+ text-align: justify;
716
+ }
790
717
 
791
- .table-wrapper .table-controls .columns-control {
792
- height: 20px;
793
- transform: translateY(-50%);
794
- }
718
+ .tiptap [data-content-type="table"] td[data-vertical-align="top"],
719
+ .tiptap [data-content-type="table"] th[data-vertical-align="top"] {
720
+ vertical-align: top;
721
+ }
795
722
 
796
- .table-wrapper .table-controls .columns-control .columns-control-div {
797
- color: white;
798
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cpath fill='%238F95B2' d='M4.5 10.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S6 12.825 6 12s-.675-1.5-1.5-1.5zm15 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S21 12.825 21 12s-.675-1.5-1.5-1.5zm-7.5 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5z'/%3E%3C/svg%3E");
799
- width: 30px;
800
- height: 15px;
801
- }
723
+ .tiptap [data-content-type="table"] td[data-vertical-align="middle"],
724
+ .tiptap [data-content-type="table"] th[data-vertical-align="middle"] {
725
+ vertical-align: middle;
726
+ }
802
727
 
803
- .table-wrapper .table-controls .rows-control {
804
- width: 20px;
805
- transform: translateX(-50%);
806
- left: -8px;
807
- }
728
+ .tiptap [data-content-type="table"] td[data-vertical-align="bottom"],
729
+ .tiptap [data-content-type="table"] th[data-vertical-align="bottom"] {
730
+ vertical-align: bottom;
731
+ }
808
732
 
809
- .table-wrapper .table-controls .rows-control .rows-control-div {
810
- color: white;
811
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cpath fill='%238F95B2' d='M12 3c-.825 0-1.5.675-1.5 1.5S11.175 6 12 6s1.5-.675 1.5-1.5S12.825 3 12 3zm0 15c-.825 0-1.5.675-1.5 1.5S11.175 21 12 21s1.5-.675 1.5-1.5S12.825 18 12 18zm0-7.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5z'/%3E%3C/svg%3E");
812
- height: 30px;
813
- width: 15px;
814
- }
733
+ /* tiptap uses colwidth instead of data-colwidth, se we need to adjust this style from prosemirror-tables */
734
+ .ProseMirror td,
735
+ .ProseMirror th {
736
+ min-width: auto !important;
737
+ }
738
+ .ProseMirror td:not([colwidth]):not(.column-resize-dragging),
739
+ .ProseMirror th:not([colwidth]):not(.column-resize-dragging) {
740
+ /* if there's no explicit width set and the column is not being resized, set a default width */
741
+ min-width: var(--default-cell-min-width) !important;
742
+ }
815
743
 
816
- .table-wrapper .table-controls .rows-control-div,
817
- .table-wrapper .table-controls .columns-control-div {
818
- border: 1px solid var(--color-border);
819
- background-color: var(--color-muted);
820
- box-shadow: var(--shadow-sm);
821
- border-radius: 4px;
822
- background-size: 1.25rem;
823
- background-repeat: no-repeat;
824
- background-position: center;
825
- transition:
826
- transform ease-out 100ms,
827
- background-color ease-out 100ms;
828
- outline: none;
829
- cursor: pointer;
830
- }
744
+ .tiptap-table-dropcursor {
745
+ position: absolute;
746
+ z-index: 20;
747
+ background-color: var(--tt-table-column-resize-handle-bg);
748
+ pointer-events: none;
749
+ }
831
750
 
832
- .resize-cursor .table-wrapper .table-controls .rows-control,
833
- .table-wrapper.controls--disabled .table-controls .rows-control,
834
- .resize-cursor .table-wrapper .table-controls .columns-control,
835
- .table-wrapper.controls--disabled .table-controls .columns-control {
836
- opacity: 0;
837
- pointer-events: none;
838
- }
751
+ .table-cell-dragging-source {
752
+ z-index: 2;
753
+ position: absolute;
754
+ content: "";
755
+ left: 0;
756
+ right: 0;
757
+ top: 0;
758
+ bottom: 0;
759
+ background: rgba(40, 137, 207, 0.4);
839
760
  }
package/dist/index.d.mts CHANGED
@@ -76,5 +76,6 @@ export { ToggleRowSlots, ToggleRowVariantProps, toggleRow } from './components/t
76
76
  export { ToolbarVariantProps, toolbar } from './components/toolbar.mjs';
77
77
  export { TooltipVariants, tooltip } from './components/tooltip.mjs';
78
78
  export { VariableNodeVariants, variableNode } from './components/variable-node.mjs';
79
+ export { extensionTableHandleMenuContent, tableCellHandleMenu } from './components/extension-table.mjs';
79
80
  export { SlotsToClasses } from './utils/types.mjs';
80
81
  import 'tailwind-merge';
package/dist/index.d.ts CHANGED
@@ -76,5 +76,6 @@ export { ToggleRowSlots, ToggleRowVariantProps, toggleRow } from './components/t
76
76
  export { ToolbarVariantProps, toolbar } from './components/toolbar.js';
77
77
  export { TooltipVariants, tooltip } from './components/tooltip.js';
78
78
  export { VariableNodeVariants, variableNode } from './components/variable-node.js';
79
+ export { extensionTableHandleMenuContent, tableCellHandleMenu } from './components/extension-table.js';
79
80
  export { SlotsToClasses } from './utils/types.js';
80
81
  import 'tailwind-merge';
package/dist/index.js CHANGED
@@ -50,6 +50,7 @@ __export(index_exports, {
50
50
  editableText: () => editableText,
51
51
  editorBasic: () => editorBasic,
52
52
  editorSpinner: () => editorSpinner,
53
+ extensionTableHandleMenuContent: () => extensionTableHandleMenuContent,
53
54
  filter: () => filter,
54
55
  frameworkRow: () => frameworkRow,
55
56
  heading: () => heading,
@@ -93,6 +94,7 @@ __export(index_exports, {
93
94
  switchVariants: () => switchVariants,
94
95
  tabNav: () => tabNav,
95
96
  table: () => table,
97
+ tableCellHandleMenu: () => tableCellHandleMenu,
96
98
  tabs: () => tabs,
97
99
  textarea: () => textarea,
98
100
  toc: () => toc,
@@ -2363,18 +2365,18 @@ var import_tailwind_variants27 = require("tailwind-variants");
2363
2365
  var dropdownMenu = (0, import_tailwind_variants27.tv)({
2364
2366
  slots: {
2365
2367
  root: "",
2366
- content: "min-w-[8rem] bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
2368
+ content: "min-w-32 bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
2367
2369
  item: "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2368
2370
  checkboxItem: "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2369
2371
  iconWrapper: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
2370
2372
  icon: "size-4",
2371
2373
  radioItem: "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2372
2374
  radioItemIcon: "size-4 fill-current",
2373
- label: "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
2375
+ label: "px-2 py-1.5 text-sm font-medium data-inset:pl-8",
2374
2376
  separator: "bg-border -mx-1 my-1 h-px",
2375
2377
  shortcut: "text-muted-foreground ml-auto text-xs tracking-widest",
2376
- subTrigger: "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
2377
- subTriggerIcon: "size-4 ml-auto",
2378
+ subTrigger: "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2379
+ subTriggerIcon: "!text-muted-foreground !size-4 ml-auto",
2378
2380
  subContent: "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg"
2379
2381
  }
2380
2382
  });
@@ -2965,7 +2967,7 @@ var imagePlaceholder = (0, import_tailwind_variants37.tv)({
2965
2967
  "rounded-lg border-2 border-dashed",
2966
2968
  "transition-colors cursor-pointer"
2967
2969
  ],
2968
- content: "flex flex-col items-center gap-2 pointer-events-none",
2970
+ content: "flex flex-col items-center gap-2",
2969
2971
  icon: "text-muted-foreground",
2970
2972
  text: "text-muted-foreground",
2971
2973
  hint: "text-muted-foreground",
@@ -2994,7 +2996,8 @@ var imagePlaceholder = (0, import_tailwind_variants37.tv)({
2994
2996
  },
2995
2997
  variant: {
2996
2998
  default: {
2997
- root: "border-border bg-muted/20 hover:border-primary/50 hover:bg-muted/40"
2999
+ root: "border-border bg-muted/20 hover:border-primary/50 hover:bg-muted/40",
3000
+ content: "pointer-events-none"
2998
3001
  },
2999
3002
  error: {
3000
3003
  root: "border-destructive/50 bg-destructive/10 cursor-default",
@@ -3002,10 +3005,12 @@ var imagePlaceholder = (0, import_tailwind_variants37.tv)({
3002
3005
  text: "text-destructive"
3003
3006
  },
3004
3007
  disabled: {
3005
- root: "border-border bg-muted/10 cursor-not-allowed opacity-60"
3008
+ root: "border-border bg-muted/10 cursor-not-allowed opacity-60",
3009
+ content: "pointer-events-none"
3006
3010
  },
3007
3011
  uploading: {
3008
- root: "border-border bg-muted/30 cursor-wait"
3012
+ root: "border-border bg-muted/30 cursor-wait",
3013
+ content: "pointer-events-none"
3009
3014
  }
3010
3015
  }
3011
3016
  },
@@ -5067,6 +5072,73 @@ var variableNode = (0, import_tailwind_variants77.tv)({
5067
5072
  resolved: false
5068
5073
  }
5069
5074
  });
5075
+
5076
+ // src/components/extension-table.ts
5077
+ var import_tailwind_variants78 = require("tailwind-variants");
5078
+ var extensionTableHandleMenuContent = (0, import_tailwind_variants78.tv)({
5079
+ slots: {
5080
+ root: [
5081
+ "flex items-center justify-center bg-muted cursor-grab rounded-md",
5082
+ // orientation=column
5083
+ "data-[orientation=column]:w-(--table-handle-ref-width) data-[orientation=column]:h-3",
5084
+ // orientation=row
5085
+ "data-[orientation=row]:h-(--table-handle-ref-height) data-[orientation=row]:w-3",
5086
+ // dragging state
5087
+ "data-[dragging=true]:cursor-grabbing data-[dragging=true]:bg-primary data-[dragging=true]:text-primary-foreground",
5088
+ // menu open
5089
+ "data-[open=true]:bg-primary data-[open=true]:text-primary-foreground"
5090
+ ],
5091
+ icon: "size-4 shrink-0 data-[orientation=column]:rotate-90"
5092
+ }
5093
+ });
5094
+ var tableCellHandleMenu = (0, import_tailwind_variants78.tv)({
5095
+ slots: {
5096
+ trigger: [
5097
+ "group",
5098
+ // positioning
5099
+ "absolute top-1/2 -right-2 -translate-y-1/2",
5100
+ // sizing & appearance
5101
+ "size-4 bg-transparent rounded-full cursor-pointer",
5102
+ "flex items-center justify-center",
5103
+ "pointer-events-auto",
5104
+ // ::before pseudo-element (the expanding dot)
5105
+ "before:content-[''] before:absolute before:top-1/2 before:-translate-y-1/2",
5106
+ "before:right-0.75 before:size-2",
5107
+ "before:bg-primary before:rounded-full",
5108
+ "before:transition-[width,height,right,background-color] before:duration-[50ms]",
5109
+ // hover (hover-capable devices): dot expands
5110
+ "[@media(hover:hover)]:hover:before:size-4 [@media(hover:hover)]:hover:before:right-0",
5111
+ // focus-visible: dot expands + outline
5112
+ "focus-visible:before:size-4 focus-visible:before:right-0",
5113
+ "focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2",
5114
+ // open state: dot expands
5115
+ "data-[open=true]:before:size-4 data-[open=true]:before:right-0",
5116
+ // touch devices: always expanded
5117
+ "[@media(hover:none)]:before:size-4 [@media(hover:none)]:before:right-0",
5118
+ // disabled
5119
+ "disabled:cursor-not-allowed disabled:opacity-50",
5120
+ "disabled:before:bg-default-300",
5121
+ // reduced motion
5122
+ "motion-reduce:before:transition-none"
5123
+ ],
5124
+ icon: [
5125
+ "relative z-1 size-4 text-white",
5126
+ "opacity-0 scale-[0.9]",
5127
+ "pointer-events-none shrink-0",
5128
+ "transition-[opacity,transform] duration-50",
5129
+ // hover (hover-capable devices)
5130
+ "[@media(hover:hover)]:group-hover:opacity-100 [@media(hover:hover)]:group-hover:scale-100",
5131
+ // focus-visible
5132
+ "group-focus-visible:opacity-100 group-focus-visible:scale-100",
5133
+ // open state
5134
+ "group-data-[open=true]:opacity-100 group-data-[open=true]:scale-100",
5135
+ // touch devices: always visible
5136
+ "[@media(hover:none)]:opacity-100 [@media(hover:none)]:scale-100",
5137
+ // reduced motion
5138
+ "motion-reduce:transition-none"
5139
+ ]
5140
+ }
5141
+ });
5070
5142
  // Annotate the CommonJS export names for ESM import in node:
5071
5143
  0 && (module.exports = {
5072
5144
  accordion,
@@ -5099,6 +5171,7 @@ var variableNode = (0, import_tailwind_variants77.tv)({
5099
5171
  editableText,
5100
5172
  editorBasic,
5101
5173
  editorSpinner,
5174
+ extensionTableHandleMenuContent,
5102
5175
  filter,
5103
5176
  frameworkRow,
5104
5177
  heading,
@@ -5142,6 +5215,7 @@ var variableNode = (0, import_tailwind_variants77.tv)({
5142
5215
  switchVariants,
5143
5216
  tabNav,
5144
5217
  table,
5218
+ tableCellHandleMenu,
5145
5219
  tabs,
5146
5220
  textarea,
5147
5221
  toc,