@keenthemes/ktui 1.2.2 → 1.2.4

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.
Files changed (166) hide show
  1. package/dist/ktui.js +1738 -986
  2. package/dist/ktui.min.js +1 -1
  3. package/dist/ktui.min.js.map +1 -1
  4. package/dist/styles.css +110 -197
  5. package/lib/cjs/components/context-menu/context-menu.d.ts +66 -0
  6. package/lib/cjs/components/context-menu/context-menu.d.ts.map +1 -0
  7. package/lib/cjs/components/context-menu/context-menu.js +423 -0
  8. package/lib/cjs/components/context-menu/context-menu.js.map +1 -0
  9. package/lib/cjs/components/context-menu/index.d.ts +7 -0
  10. package/lib/cjs/components/context-menu/index.d.ts.map +1 -0
  11. package/lib/cjs/components/context-menu/index.js +10 -0
  12. package/lib/cjs/components/context-menu/index.js.map +1 -0
  13. package/lib/cjs/components/context-menu/types.d.ts +30 -0
  14. package/lib/cjs/components/context-menu/types.d.ts.map +1 -0
  15. package/lib/cjs/components/context-menu/types.js +7 -0
  16. package/lib/cjs/components/context-menu/types.js.map +1 -0
  17. package/lib/cjs/components/datatable/datatable-contracts.d.ts +66 -0
  18. package/lib/cjs/components/datatable/datatable-contracts.d.ts.map +1 -0
  19. package/lib/cjs/components/datatable/datatable-contracts.js +7 -0
  20. package/lib/cjs/components/datatable/datatable-contracts.js.map +1 -0
  21. package/lib/cjs/components/datatable/datatable-event-adapter.d.ts +7 -0
  22. package/lib/cjs/components/datatable/datatable-event-adapter.d.ts.map +1 -0
  23. package/lib/cjs/components/datatable/datatable-event-adapter.js +16 -0
  24. package/lib/cjs/components/datatable/datatable-event-adapter.js.map +1 -0
  25. package/lib/cjs/components/datatable/datatable-local-provider.d.ts +25 -0
  26. package/lib/cjs/components/datatable/datatable-local-provider.d.ts.map +1 -0
  27. package/lib/cjs/components/datatable/datatable-local-provider.js +184 -0
  28. package/lib/cjs/components/datatable/datatable-local-provider.js.map +1 -0
  29. package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts +15 -0
  30. package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts.map +1 -0
  31. package/lib/cjs/components/datatable/datatable-pagination-renderer.js +128 -0
  32. package/lib/cjs/components/datatable/datatable-pagination-renderer.js.map +1 -0
  33. package/lib/cjs/components/datatable/datatable-remote-provider.d.ts +25 -0
  34. package/lib/cjs/components/datatable/datatable-remote-provider.d.ts.map +1 -0
  35. package/lib/cjs/components/datatable/datatable-remote-provider.js +188 -0
  36. package/lib/cjs/components/datatable/datatable-remote-provider.js.map +1 -0
  37. package/lib/cjs/components/datatable/datatable-state-store.d.ts +21 -0
  38. package/lib/cjs/components/datatable/datatable-state-store.d.ts.map +1 -0
  39. package/lib/cjs/components/datatable/datatable-state-store.js +81 -0
  40. package/lib/cjs/components/datatable/datatable-state-store.js.map +1 -0
  41. package/lib/cjs/components/datatable/datatable-table-renderer.d.ts +16 -0
  42. package/lib/cjs/components/datatable/datatable-table-renderer.d.ts.map +1 -0
  43. package/lib/cjs/components/datatable/datatable-table-renderer.js +133 -0
  44. package/lib/cjs/components/datatable/datatable-table-renderer.js.map +1 -0
  45. package/lib/cjs/components/datatable/datatable.d.ts +9 -87
  46. package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
  47. package/lib/cjs/components/datatable/datatable.js +115 -687
  48. package/lib/cjs/components/datatable/datatable.js.map +1 -1
  49. package/lib/cjs/components/modal/modal.d.ts.map +1 -1
  50. package/lib/cjs/components/modal/modal.js +19 -13
  51. package/lib/cjs/components/modal/modal.js.map +1 -1
  52. package/lib/cjs/components/select/index.d.ts +1 -1
  53. package/lib/cjs/components/select/index.d.ts.map +1 -1
  54. package/lib/cjs/components/theme-switch/theme-switch.d.ts +3 -0
  55. package/lib/cjs/components/theme-switch/theme-switch.d.ts.map +1 -1
  56. package/lib/cjs/components/theme-switch/theme-switch.js +17 -4
  57. package/lib/cjs/components/theme-switch/theme-switch.js.map +1 -1
  58. package/lib/cjs/components/toggle/toggle.d.ts +2 -0
  59. package/lib/cjs/components/toggle/toggle.d.ts.map +1 -1
  60. package/lib/cjs/components/toggle/toggle.js +11 -2
  61. package/lib/cjs/components/toggle/toggle.js.map +1 -1
  62. package/lib/cjs/index.d.ts +5 -1
  63. package/lib/cjs/index.d.ts.map +1 -1
  64. package/lib/cjs/index.js +7 -7
  65. package/lib/cjs/index.js.map +1 -1
  66. package/lib/cjs/init-all.d.ts +6 -0
  67. package/lib/cjs/init-all.d.ts.map +1 -0
  68. package/lib/cjs/init-all.js +17 -0
  69. package/lib/cjs/init-all.js.map +1 -0
  70. package/lib/cjs/legacy.d.ts +8 -0
  71. package/lib/cjs/legacy.d.ts.map +1 -0
  72. package/lib/cjs/legacy.js +26 -0
  73. package/lib/cjs/legacy.js.map +1 -0
  74. package/lib/esm/components/context-menu/context-menu.d.ts +66 -0
  75. package/lib/esm/components/context-menu/context-menu.d.ts.map +1 -0
  76. package/lib/esm/components/context-menu/context-menu.js +420 -0
  77. package/lib/esm/components/context-menu/context-menu.js.map +1 -0
  78. package/lib/esm/components/context-menu/index.d.ts +7 -0
  79. package/lib/esm/components/context-menu/index.d.ts.map +1 -0
  80. package/lib/esm/components/context-menu/index.js +6 -0
  81. package/lib/esm/components/context-menu/index.js.map +1 -0
  82. package/lib/esm/components/context-menu/types.d.ts +30 -0
  83. package/lib/esm/components/context-menu/types.d.ts.map +1 -0
  84. package/lib/esm/components/context-menu/types.js +6 -0
  85. package/lib/esm/components/context-menu/types.js.map +1 -0
  86. package/lib/esm/components/datatable/datatable-contracts.d.ts +66 -0
  87. package/lib/esm/components/datatable/datatable-contracts.d.ts.map +1 -0
  88. package/lib/esm/components/datatable/datatable-contracts.js +6 -0
  89. package/lib/esm/components/datatable/datatable-contracts.js.map +1 -0
  90. package/lib/esm/components/datatable/datatable-event-adapter.d.ts +7 -0
  91. package/lib/esm/components/datatable/datatable-event-adapter.d.ts.map +1 -0
  92. package/lib/esm/components/datatable/datatable-event-adapter.js +13 -0
  93. package/lib/esm/components/datatable/datatable-event-adapter.js.map +1 -0
  94. package/lib/esm/components/datatable/datatable-local-provider.d.ts +25 -0
  95. package/lib/esm/components/datatable/datatable-local-provider.d.ts.map +1 -0
  96. package/lib/esm/components/datatable/datatable-local-provider.js +181 -0
  97. package/lib/esm/components/datatable/datatable-local-provider.js.map +1 -0
  98. package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts +15 -0
  99. package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts.map +1 -0
  100. package/lib/esm/components/datatable/datatable-pagination-renderer.js +125 -0
  101. package/lib/esm/components/datatable/datatable-pagination-renderer.js.map +1 -0
  102. package/lib/esm/components/datatable/datatable-remote-provider.d.ts +25 -0
  103. package/lib/esm/components/datatable/datatable-remote-provider.d.ts.map +1 -0
  104. package/lib/esm/components/datatable/datatable-remote-provider.js +185 -0
  105. package/lib/esm/components/datatable/datatable-remote-provider.js.map +1 -0
  106. package/lib/esm/components/datatable/datatable-state-store.d.ts +21 -0
  107. package/lib/esm/components/datatable/datatable-state-store.d.ts.map +1 -0
  108. package/lib/esm/components/datatable/datatable-state-store.js +78 -0
  109. package/lib/esm/components/datatable/datatable-state-store.js.map +1 -0
  110. package/lib/esm/components/datatable/datatable-table-renderer.d.ts +16 -0
  111. package/lib/esm/components/datatable/datatable-table-renderer.d.ts.map +1 -0
  112. package/lib/esm/components/datatable/datatable-table-renderer.js +130 -0
  113. package/lib/esm/components/datatable/datatable-table-renderer.js.map +1 -0
  114. package/lib/esm/components/datatable/datatable.d.ts +9 -87
  115. package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
  116. package/lib/esm/components/datatable/datatable.js +115 -687
  117. package/lib/esm/components/datatable/datatable.js.map +1 -1
  118. package/lib/esm/components/modal/modal.d.ts.map +1 -1
  119. package/lib/esm/components/modal/modal.js +19 -13
  120. package/lib/esm/components/modal/modal.js.map +1 -1
  121. package/lib/esm/components/select/index.d.ts +1 -1
  122. package/lib/esm/components/select/index.d.ts.map +1 -1
  123. package/lib/esm/components/theme-switch/theme-switch.d.ts +3 -0
  124. package/lib/esm/components/theme-switch/theme-switch.d.ts.map +1 -1
  125. package/lib/esm/components/theme-switch/theme-switch.js +17 -4
  126. package/lib/esm/components/theme-switch/theme-switch.js.map +1 -1
  127. package/lib/esm/components/toggle/toggle.d.ts +2 -0
  128. package/lib/esm/components/toggle/toggle.d.ts.map +1 -1
  129. package/lib/esm/components/toggle/toggle.js +11 -2
  130. package/lib/esm/components/toggle/toggle.js.map +1 -1
  131. package/lib/esm/index.d.ts +5 -1
  132. package/lib/esm/index.d.ts.map +1 -1
  133. package/lib/esm/index.js +4 -5
  134. package/lib/esm/index.js.map +1 -1
  135. package/lib/esm/init-all.d.ts +6 -0
  136. package/lib/esm/init-all.d.ts.map +1 -0
  137. package/lib/esm/init-all.js +13 -0
  138. package/lib/esm/init-all.js.map +1 -0
  139. package/lib/esm/legacy.d.ts +8 -0
  140. package/lib/esm/legacy.d.ts.map +1 -0
  141. package/lib/esm/legacy.js +8 -0
  142. package/lib/esm/legacy.js.map +1 -0
  143. package/package.json +34 -4
  144. package/src/__tests__/entrypoints.test.ts +71 -0
  145. package/src/components/context-menu/__tests__/context-menu.test.ts +117 -0
  146. package/src/components/context-menu/context-menu.css +32 -0
  147. package/src/components/context-menu/context-menu.ts +529 -0
  148. package/src/components/context-menu/index.ts +10 -0
  149. package/src/components/context-menu/types.ts +32 -0
  150. package/src/components/datatable/__tests__/architecture-boundaries.test.ts +259 -0
  151. package/src/components/datatable/datatable-contracts.ts +96 -0
  152. package/src/components/datatable/datatable-event-adapter.ts +21 -0
  153. package/src/components/datatable/datatable-local-provider.ts +194 -0
  154. package/src/components/datatable/datatable-pagination-renderer.ts +211 -0
  155. package/src/components/datatable/datatable-remote-provider.ts +175 -0
  156. package/src/components/datatable/datatable-state-store.ts +94 -0
  157. package/src/components/datatable/datatable-table-renderer.ts +206 -0
  158. package/src/components/datatable/datatable.ts +128 -839
  159. package/src/components/modal/modal.ts +22 -14
  160. package/src/components/select/index.ts +1 -1
  161. package/src/components/theme-switch/theme-switch.ts +22 -4
  162. package/src/components/toggle/toggle.ts +12 -2
  163. package/src/index.ts +9 -5
  164. package/src/init-all.ts +15 -0
  165. package/src/legacy.ts +9 -0
  166. package/styles.css +1 -0
package/dist/styles.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
@@ -34,7 +34,6 @@
34
34
  --color-green-950: oklch(26.6% 0.065 152.934);
35
35
  --color-blue-50: oklch(97% 0.014 254.604);
36
36
  --color-blue-100: oklch(93.2% 0.032 255.585);
37
- --color-blue-200: oklch(88.2% 0.059 254.128);
38
37
  --color-blue-400: oklch(70.7% 0.165 254.624);
39
38
  --color-blue-500: oklch(62.3% 0.214 259.815);
40
39
  --color-blue-600: oklch(54.6% 0.245 262.881);
@@ -50,8 +49,6 @@
50
49
  --color-violet-800: oklch(43.2% 0.232 292.759);
51
50
  --color-violet-950: oklch(28.3% 0.141 291.089);
52
51
  --color-purple-500: oklch(62.7% 0.265 303.9);
53
- --color-purple-600: oklch(55.8% 0.288 302.321);
54
- --color-purple-700: oklch(49.6% 0.265 301.924);
55
52
  --color-pink-500: oklch(65.6% 0.241 354.308);
56
53
  --color-gray-50: oklch(98.5% 0.002 247.839);
57
54
  --color-gray-100: oklch(96.7% 0.003 264.542);
@@ -84,8 +81,6 @@
84
81
  --container-2xl: 42rem;
85
82
  --container-3xl: 48rem;
86
83
  --container-4xl: 56rem;
87
- --container-5xl: 64rem;
88
- --container-6xl: 72rem;
89
84
  --text-xs: 0.75rem;
90
85
  --text-xs--line-height: calc(1 / 0.75);
91
86
  --text-sm: 0.875rem;
@@ -350,9 +345,6 @@
350
345
  max-width: 96rem;
351
346
  }
352
347
  }
353
- .mx-2 {
354
- margin-inline: calc(var(--spacing) * 2);
355
- }
356
348
  .mx-4 {
357
349
  margin-inline: calc(var(--spacing) * 4);
358
350
  }
@@ -410,9 +402,6 @@
410
402
  .ml-2 {
411
403
  margin-left: calc(var(--spacing) * 2);
412
404
  }
413
- .ml-4 {
414
- margin-left: calc(var(--spacing) * 4);
415
- }
416
405
  .block {
417
406
  display: block;
418
407
  }
@@ -454,18 +443,12 @@
454
443
  width: calc(var(--spacing) * 16);
455
444
  height: calc(var(--spacing) * 16);
456
445
  }
457
- .h-4 {
458
- height: calc(var(--spacing) * 4);
459
- }
460
446
  .h-5 {
461
447
  height: calc(var(--spacing) * 5);
462
448
  }
463
449
  .h-6 {
464
450
  height: calc(var(--spacing) * 6);
465
451
  }
466
- .h-64 {
467
- height: calc(var(--spacing) * 64);
468
- }
469
452
  .max-h-48 {
470
453
  max-height: calc(var(--spacing) * 48);
471
454
  }
@@ -478,9 +461,6 @@
478
461
  .max-h-\[250px\] {
479
462
  max-height: 250px;
480
463
  }
481
- .min-h-16 {
482
- min-height: calc(var(--spacing) * 16);
483
- }
484
464
  .min-h-\[3rem\] {
485
465
  min-height: 3rem;
486
466
  }
@@ -490,39 +470,12 @@
490
470
  .min-h-screen {
491
471
  min-height: 100vh;
492
472
  }
493
- .w-4 {
494
- width: calc(var(--spacing) * 4);
495
- }
496
473
  .w-5 {
497
474
  width: calc(var(--spacing) * 5);
498
475
  }
499
476
  .w-6 {
500
477
  width: calc(var(--spacing) * 6);
501
478
  }
502
- .w-12 {
503
- width: calc(var(--spacing) * 12);
504
- }
505
- .w-16 {
506
- width: calc(var(--spacing) * 16);
507
- }
508
- .w-20 {
509
- width: calc(var(--spacing) * 20);
510
- }
511
- .w-24 {
512
- width: calc(var(--spacing) * 24);
513
- }
514
- .w-32 {
515
- width: calc(var(--spacing) * 32);
516
- }
517
- .w-40 {
518
- width: calc(var(--spacing) * 40);
519
- }
520
- .w-48 {
521
- width: calc(var(--spacing) * 48);
522
- }
523
- .w-64 {
524
- width: calc(var(--spacing) * 64);
525
- }
526
479
  .w-full {
527
480
  width: 100%;
528
481
  }
@@ -535,12 +488,6 @@
535
488
  .max-w-4xl {
536
489
  max-width: var(--container-4xl);
537
490
  }
538
- .max-w-5xl {
539
- max-width: var(--container-5xl);
540
- }
541
- .max-w-6xl {
542
- max-width: var(--container-6xl);
543
- }
544
491
  .max-w-lg {
545
492
  max-width: var(--container-lg);
546
493
  }
@@ -550,12 +497,6 @@
550
497
  .max-w-sm {
551
498
  max-width: var(--container-sm);
552
499
  }
553
- .min-w-\[60px\] {
554
- min-width: 60px;
555
- }
556
- .min-w-\[130px\] {
557
- min-width: 130px;
558
- }
559
500
  .shrink-0 {
560
501
  flex-shrink: 0;
561
502
  }
@@ -588,9 +529,6 @@
588
529
  .list-decimal {
589
530
  list-style-type: decimal;
590
531
  }
591
- .list-disc {
592
- list-style-type: disc;
593
- }
594
532
  .appearance-none {
595
533
  appearance: none;
596
534
  }
@@ -630,9 +568,6 @@
630
568
  .gap-2 {
631
569
  gap: calc(var(--spacing) * 2);
632
570
  }
633
- .gap-2\.5 {
634
- gap: calc(var(--spacing) * 2.5);
635
- }
636
571
  .gap-3 {
637
572
  gap: calc(var(--spacing) * 3);
638
573
  }
@@ -652,13 +587,6 @@
652
587
  margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
653
588
  }
654
589
  }
655
- .space-y-1\.5 {
656
- :where(& > :not(:last-child)) {
657
- --tw-space-y-reverse: 0;
658
- margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));
659
- margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));
660
- }
661
- }
662
590
  .space-y-2 {
663
591
  :where(& > :not(:last-child)) {
664
592
  --tw-space-y-reverse: 0;
@@ -694,20 +622,6 @@
694
622
  margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
695
623
  }
696
624
  }
697
- .space-x-1 {
698
- :where(& > :not(:last-child)) {
699
- --tw-space-x-reverse: 0;
700
- margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));
701
- margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));
702
- }
703
- }
704
- .space-x-2 {
705
- :where(& > :not(:last-child)) {
706
- --tw-space-x-reverse: 0;
707
- margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
708
- margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
709
- }
710
- }
711
625
  .space-x-4 {
712
626
  :where(& > :not(:last-child)) {
713
627
  --tw-space-x-reverse: 0;
@@ -718,9 +632,6 @@
718
632
  .overflow-auto {
719
633
  overflow: auto;
720
634
  }
721
- .overflow-x-auto {
722
- overflow-x: auto;
723
- }
724
635
  .overflow-y-auto {
725
636
  overflow-y: auto;
726
637
  }
@@ -748,14 +659,6 @@
748
659
  border-top-style: var(--tw-border-style);
749
660
  border-top-width: 1px;
750
661
  }
751
- .border-r {
752
- border-right-style: var(--tw-border-style);
753
- border-right-width: 1px;
754
- }
755
- .border-r-0 {
756
- border-right-style: var(--tw-border-style);
757
- border-right-width: 0px;
758
- }
759
662
  .border-b {
760
663
  border-bottom-style: var(--tw-border-style);
761
664
  border-bottom-width: 1px;
@@ -768,9 +671,6 @@
768
671
  --tw-border-style: dashed;
769
672
  border-style: dashed;
770
673
  }
771
- .border-blue-200 {
772
- border-color: var(--color-blue-200);
773
- }
774
674
  .border-gray-200 {
775
675
  border-color: var(--color-gray-200);
776
676
  }
@@ -792,9 +692,6 @@
792
692
  .bg-background {
793
693
  background-color: var(--background);
794
694
  }
795
- .bg-blue-50 {
796
- background-color: var(--color-blue-50);
797
- }
798
695
  .bg-blue-500 {
799
696
  background-color: var(--color-blue-500);
800
697
  }
@@ -807,9 +704,6 @@
807
704
  .bg-gray-100 {
808
705
  background-color: var(--color-gray-100);
809
706
  }
810
- .bg-gray-200 {
811
- background-color: var(--color-gray-200);
812
- }
813
707
  .bg-gray-500 {
814
708
  background-color: var(--color-gray-500);
815
709
  }
@@ -819,9 +713,6 @@
819
713
  .bg-green-500 {
820
714
  background-color: var(--color-green-500);
821
715
  }
822
- .bg-green-600 {
823
- background-color: var(--color-green-600);
824
- }
825
716
  .bg-pink-500 {
826
717
  background-color: var(--color-pink-500);
827
718
  }
@@ -831,15 +722,6 @@
831
722
  .bg-purple-500 {
832
723
  background-color: var(--color-purple-500);
833
724
  }
834
- .bg-purple-600 {
835
- background-color: var(--color-purple-600);
836
- }
837
- .bg-red-50 {
838
- background-color: var(--color-red-50);
839
- }
840
- .bg-red-600 {
841
- background-color: var(--color-red-600);
842
- }
843
725
  .bg-transparent {
844
726
  background-color: transparent;
845
727
  }
@@ -864,9 +746,6 @@
864
746
  .px-1 {
865
747
  padding-inline: calc(var(--spacing) * 1);
866
748
  }
867
- .px-1\.5 {
868
- padding-inline: calc(var(--spacing) * 1.5);
869
- }
870
749
  .px-2 {
871
750
  padding-inline: calc(var(--spacing) * 2);
872
751
  }
@@ -879,9 +758,6 @@
879
758
  .px-6 {
880
759
  padding-inline: calc(var(--spacing) * 6);
881
760
  }
882
- .py-0\.5 {
883
- padding-block: calc(var(--spacing) * 0.5);
884
- }
885
761
  .py-1 {
886
762
  padding-block: calc(var(--spacing) * 1);
887
763
  }
@@ -906,9 +782,6 @@
906
782
  .ps-5 {
907
783
  padding-inline-start: calc(var(--spacing) * 5);
908
784
  }
909
- .pb-2 {
910
- padding-bottom: calc(var(--spacing) * 2);
911
- }
912
785
  .pl-3 {
913
786
  padding-left: calc(var(--spacing) * 3);
914
787
  }
@@ -975,21 +848,12 @@
975
848
  --tw-font-weight: var(--font-weight-semibold);
976
849
  font-weight: var(--font-weight-semibold);
977
850
  }
978
- .whitespace-nowrap {
979
- white-space: nowrap;
980
- }
981
- .text-blue-600 {
982
- color: var(--color-blue-600);
983
- }
984
851
  .text-card {
985
852
  color: var(--card);
986
853
  }
987
854
  .text-foreground {
988
855
  color: var(--foreground);
989
856
  }
990
- .text-gray-400 {
991
- color: var(--color-gray-400);
992
- }
993
857
  .text-gray-500 {
994
858
  color: var(--color-gray-500);
995
859
  }
@@ -1011,9 +875,6 @@
1011
875
  .text-green-600 {
1012
876
  color: var(--color-green-600);
1013
877
  }
1014
- .text-mono {
1015
- color: var(--mono);
1016
- }
1017
878
  .text-muted-foreground {
1018
879
  color: var(--muted-foreground);
1019
880
  }
@@ -1029,21 +890,12 @@
1029
890
  .text-primary-foreground {
1030
891
  color: var(--primary-foreground);
1031
892
  }
1032
- .text-purple-600 {
1033
- color: var(--color-purple-600);
1034
- }
1035
893
  .text-red-500 {
1036
894
  color: var(--color-red-500);
1037
895
  }
1038
896
  .text-red-600 {
1039
897
  color: var(--color-red-600);
1040
898
  }
1041
- .text-red-700 {
1042
- color: var(--color-red-700);
1043
- }
1044
- .text-secondary-foreground {
1045
- color: var(--secondary-foreground);
1046
- }
1047
899
  .text-transparent {
1048
900
  color: transparent;
1049
901
  }
@@ -1063,9 +915,6 @@
1063
915
  .opacity-75 {
1064
916
  opacity: 75%;
1065
917
  }
1066
- .opacity-100 {
1067
- opacity: 100%;
1068
- }
1069
918
  .shadow {
1070
919
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1071
920
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -1082,13 +931,6 @@
1082
931
  --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1083
932
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1084
933
  }
1085
- .ring-2 {
1086
- --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1087
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1088
- }
1089
- .ring-gray-400 {
1090
- --tw-ring-color: var(--color-gray-400);
1091
- }
1092
934
  .outline {
1093
935
  outline-style: var(--tw-outline-style);
1094
936
  outline-width: 1px;
@@ -1144,13 +986,6 @@
1144
986
  }
1145
987
  }
1146
988
  }
1147
- .hover\:bg-gray-300 {
1148
- &:hover {
1149
- @media (hover: hover) {
1150
- background-color: var(--color-gray-300);
1151
- }
1152
- }
1153
- }
1154
989
  .hover\:bg-gray-600 {
1155
990
  &:hover {
1156
991
  @media (hover: hover) {
@@ -1172,27 +1007,6 @@
1172
1007
  }
1173
1008
  }
1174
1009
  }
1175
- .hover\:bg-green-700 {
1176
- &:hover {
1177
- @media (hover: hover) {
1178
- background-color: var(--color-green-700);
1179
- }
1180
- }
1181
- }
1182
- .hover\:bg-purple-700 {
1183
- &:hover {
1184
- @media (hover: hover) {
1185
- background-color: var(--color-purple-700);
1186
- }
1187
- }
1188
- }
1189
- .hover\:bg-red-700 {
1190
- &:hover {
1191
- @media (hover: hover) {
1192
- background-color: var(--color-red-700);
1193
- }
1194
- }
1195
- }
1196
1010
  .focus\:bg-none {
1197
1011
  &:focus {
1198
1012
  background-image: none;
@@ -1215,11 +1029,6 @@
1215
1029
  --tw-ring-color: var(--color-blue-400);
1216
1030
  }
1217
1031
  }
1218
- .focus\:ring-blue-500 {
1219
- &:focus {
1220
- --tw-ring-color: var(--color-blue-500);
1221
- }
1222
- }
1223
1032
  .focus\:ring-gray-400 {
1224
1033
  &:focus {
1225
1034
  --tw-ring-color: var(--color-gray-400);
@@ -1237,11 +1046,6 @@
1237
1046
  outline-style: none;
1238
1047
  }
1239
1048
  }
1240
- .sm\:w-48 {
1241
- @media (width >= 40rem) {
1242
- width: calc(var(--spacing) * 48);
1243
- }
1244
- }
1245
1049
  .md\:grid-cols-2 {
1246
1050
  @media (width >= 48rem) {
1247
1051
  grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -3961,6 +3765,115 @@
3961
3765
  }
3962
3766
  }
3963
3767
  }
3768
+ @layer components {
3769
+ .kt-context-menu {
3770
+ :where(& > :not(:last-child)) {
3771
+ --tw-space-y-reverse: 0;
3772
+ margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
3773
+ margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
3774
+ }
3775
+ border-radius: calc(var(--radius) - 2px);
3776
+ border-style: var(--tw-border-style);
3777
+ border-width: 1px;
3778
+ border-color: var(--border);
3779
+ background-color: var(--popover);
3780
+ padding: calc(var(--spacing) * 1.5);
3781
+ color: var(--popover-foreground);
3782
+ --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
3783
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3784
+ --tw-shadow-color: rgba(0,0,0,0.05);
3785
+ @supports (color: color-mix(in lab, red, red)) {
3786
+ --tw-shadow-color: color-mix(in oklab, rgba(0,0,0,0.05) var(--tw-shadow-alpha), transparent);
3787
+ }
3788
+ &:not(.open) {
3789
+ display: none;
3790
+ }
3791
+ }
3792
+ .kt-context-menu-sub {
3793
+ width: 100%;
3794
+ :where(& > :not(:last-child)) {
3795
+ --tw-space-y-reverse: 0;
3796
+ margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
3797
+ margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
3798
+ }
3799
+ }
3800
+ .kt-context-menu-toggle {
3801
+ display: flex;
3802
+ width: 100%;
3803
+ cursor: pointer;
3804
+ align-items: center;
3805
+ column-gap: calc(var(--spacing) * 2);
3806
+ border-radius: calc(var(--radius) - 2px);
3807
+ padding-inline: calc(var(--spacing) * 2);
3808
+ padding-block: calc(var(--spacing) * 1.5);
3809
+ text-align: start;
3810
+ font-size: var(--text-sm);
3811
+ line-height: var(--tw-leading, var(--text-sm--line-height));
3812
+ --tw-font-weight: var(--font-weight-medium);
3813
+ font-weight: var(--font-weight-medium);
3814
+ &:disabled {
3815
+ pointer-events: none;
3816
+ }
3817
+ &:disabled {
3818
+ opacity: 50%;
3819
+ }
3820
+ color: var(--foreground);
3821
+ &:hover {
3822
+ @media (hover: hover) {
3823
+ background-color: var(--accent);
3824
+ }
3825
+ }
3826
+ &:hover {
3827
+ @media (hover: hover) {
3828
+ color: var(--accent-foreground);
3829
+ }
3830
+ }
3831
+ }
3832
+ .kt-context-menu-link {
3833
+ display: flex;
3834
+ width: 100%;
3835
+ cursor: pointer;
3836
+ align-items: center;
3837
+ column-gap: calc(var(--spacing) * 2);
3838
+ border-radius: calc(var(--radius) - 2px);
3839
+ padding-inline: calc(var(--spacing) * 2);
3840
+ padding-block: calc(var(--spacing) * 1.5);
3841
+ text-align: start;
3842
+ font-size: var(--text-sm);
3843
+ line-height: var(--tw-leading, var(--text-sm--line-height));
3844
+ --tw-font-weight: var(--font-weight-medium);
3845
+ font-weight: var(--font-weight-medium);
3846
+ &:disabled {
3847
+ pointer-events: none;
3848
+ }
3849
+ &:disabled {
3850
+ opacity: 50%;
3851
+ }
3852
+ color: var(--foreground);
3853
+ &:hover {
3854
+ @media (hover: hover) {
3855
+ background-color: var(--accent);
3856
+ }
3857
+ }
3858
+ &:hover {
3859
+ @media (hover: hover) {
3860
+ color: var(--accent-foreground);
3861
+ }
3862
+ }
3863
+ }
3864
+ .kt-context-menu-separator {
3865
+ margin-inline: calc(var(--spacing) * -2);
3866
+ margin-block: calc(var(--spacing) * 2.5);
3867
+ height: 1px;
3868
+ background-color: var(--border);
3869
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
3870
+ rotate: 180deg;
3871
+ }
3872
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
3873
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
3874
+ }
3875
+ }
3876
+ }
3964
3877
  @layer components {
3965
3878
  .kt-image-input {
3966
3879
  position: relative;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ */
5
+ import { VirtualElement } from '@popperjs/core';
6
+ import KTComponent from '../component';
7
+ import { KTContextMenuConfigInterface, KTContextMenuInterface } from './types';
8
+ declare global {
9
+ interface Window {
10
+ KT_CONTEXT_MENU_INITIALIZED: boolean;
11
+ KTContextMenu: typeof KTContextMenu;
12
+ }
13
+ }
14
+ type Point = {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ export declare class KTContextMenu extends KTComponent implements KTContextMenuInterface {
19
+ protected _name: string;
20
+ protected _defaultConfig: KTContextMenuConfigInterface;
21
+ protected _config: KTContextMenuConfigInterface;
22
+ protected _menuElement: HTMLElement;
23
+ protected _targetElement: HTMLElement;
24
+ protected _isTransitioning: boolean;
25
+ protected _isOpen: boolean;
26
+ protected _shownAt: number;
27
+ protected _lastPoint: Point;
28
+ constructor(element: HTMLElement, config?: KTContextMenuConfigInterface);
29
+ protected _resolveTargetElement(root: HTMLElement): HTMLElement;
30
+ protected _resolveMenuElement(root: HTMLElement): HTMLElement;
31
+ protected _handleContainer(): void;
32
+ protected _setupNestedSubmenus(): void;
33
+ protected _updatePoint(x: number, y: number): void;
34
+ protected _toggleAtEvent(event: MouseEvent): void;
35
+ protected _showAtEvent(event: MouseEvent): void;
36
+ protected _showAt(x: number, y: number): void;
37
+ protected _hide(): void;
38
+ protected _getVirtualReference(): VirtualElement;
39
+ protected _initPopper(): void;
40
+ protected _destroyPopper(): void;
41
+ protected _getPopperConfig(): object;
42
+ protected _isContextMenuOpen(): boolean;
43
+ showAt(x: number, y: number): void;
44
+ showAtEvent(event: MouseEvent): void;
45
+ hide(): void;
46
+ toggleAtEvent(event: MouseEvent): void;
47
+ isOpen(): boolean;
48
+ getMenuElement(): HTMLElement;
49
+ getTargetElement(): HTMLElement;
50
+ static getElement(reference: HTMLElement): HTMLElement;
51
+ static getInstance(element: HTMLElement): KTContextMenu;
52
+ static getOrCreateInstance(element: HTMLElement, config?: KTContextMenuConfigInterface): KTContextMenu;
53
+ static update(): void;
54
+ static hide(skipElement?: HTMLElement): void;
55
+ static handleOpen(): void;
56
+ static handleToggle(): void;
57
+ static handleClickAway(): void;
58
+ static handleKeyboard(): void;
59
+ static handleDismiss(): void;
60
+ static initHandlers(): void;
61
+ static createInstances(): void;
62
+ static init(): void;
63
+ static reinit(): void;
64
+ }
65
+ export {};
66
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/context-menu/context-menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIN,cAAc,EACd,MAAM,gBAAgB,CAAC;AAIxB,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE/E,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,2BAA2B,EAAE,OAAO,CAAC;QACrC,aAAa,EAAE,OAAO,aAAa,CAAC;KACpC;CACD;AAED,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,qBAAa,aACZ,SAAQ,WACR,YAAW,sBAAsB;IAEjC,UAAmB,KAAK,SAAkB;IAC1C,UAAmB,cAAc,EAAE,4BAA4B,CAc7D;IACF,UAAmB,OAAO,EAAE,4BAA4B,CACnC;IACrB,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC;IACtC,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,QAAQ,SAAK;IACvB,SAAS,CAAC,UAAU,EAAE,KAAK,CAAkB;gBAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,4BAA4B;IAoBvE,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IAgB/D,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IAO7D,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAalC,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAStC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlD,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IASjD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAS/C,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAyC7C,SAAS,CAAC,KAAK,IAAI,IAAI;IA0BvB,SAAS,CAAC,oBAAoB,IAAI,cAAc;IAkBhD,SAAS,CAAC,WAAW,IAAI,IAAI;IAS7B,SAAS,CAAC,cAAc,IAAI,IAAI;IAOhC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAgCpC,SAAS,CAAC,kBAAkB,IAAI,OAAO;IAOhC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIpC,IAAI,IAAI,IAAI;IAIZ,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAItC,MAAM,IAAI,OAAO;IAIjB,cAAc,IAAI,WAAW;IAI7B,gBAAgB,IAAI,WAAW;WAIxB,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW;WA6B/C,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa;WAehD,mBAAmB,CAChC,OAAO,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,4BAA4B,GACnC,aAAa;WAIF,MAAM,IAAI,IAAI;WAYd,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;WAarC,UAAU,IAAI,IAAI;WAclB,YAAY,IAAI,IAAI;WAkBpB,eAAe,IAAI,IAAI;WA2BvB,cAAc,IAAI,IAAI;WAmBtB,aAAa,IAAI,IAAI;WAcrB,YAAY,IAAI,IAAI;WAQpB,eAAe,IAAI,IAAI;WAOvB,IAAI,IAAI,IAAI;WAQZ,MAAM,IAAI,IAAI;CAuB5B"}