@keenthemes/ktui 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/dist/ktui.js +2244 -1061
  2. package/dist/ktui.min.js +1 -1
  3. package/dist/ktui.min.js.map +1 -1
  4. package/dist/styles.css +185 -40
  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-checkbox.d.ts.map +1 -1
  18. package/lib/cjs/components/datatable/datatable-checkbox.js +34 -15
  19. package/lib/cjs/components/datatable/datatable-checkbox.js.map +1 -1
  20. package/lib/cjs/components/datatable/datatable-contracts.d.ts +66 -0
  21. package/lib/cjs/components/datatable/datatable-contracts.d.ts.map +1 -0
  22. package/lib/cjs/components/datatable/datatable-contracts.js +7 -0
  23. package/lib/cjs/components/datatable/datatable-contracts.js.map +1 -0
  24. package/lib/cjs/components/datatable/datatable-event-adapter.d.ts +7 -0
  25. package/lib/cjs/components/datatable/datatable-event-adapter.d.ts.map +1 -0
  26. package/lib/cjs/components/datatable/datatable-event-adapter.js +16 -0
  27. package/lib/cjs/components/datatable/datatable-event-adapter.js.map +1 -0
  28. package/lib/cjs/components/datatable/datatable-local-provider.d.ts +25 -0
  29. package/lib/cjs/components/datatable/datatable-local-provider.d.ts.map +1 -0
  30. package/lib/cjs/components/datatable/datatable-local-provider.js +190 -0
  31. package/lib/cjs/components/datatable/datatable-local-provider.js.map +1 -0
  32. package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts +15 -0
  33. package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts.map +1 -0
  34. package/lib/cjs/components/datatable/datatable-pagination-renderer.js +144 -0
  35. package/lib/cjs/components/datatable/datatable-pagination-renderer.js.map +1 -0
  36. package/lib/cjs/components/datatable/datatable-remote-provider.d.ts +25 -0
  37. package/lib/cjs/components/datatable/datatable-remote-provider.d.ts.map +1 -0
  38. package/lib/cjs/components/datatable/datatable-remote-provider.js +191 -0
  39. package/lib/cjs/components/datatable/datatable-remote-provider.js.map +1 -0
  40. package/lib/cjs/components/datatable/datatable-state-store.d.ts +21 -0
  41. package/lib/cjs/components/datatable/datatable-state-store.d.ts.map +1 -0
  42. package/lib/cjs/components/datatable/datatable-state-store.js +81 -0
  43. package/lib/cjs/components/datatable/datatable-state-store.js.map +1 -0
  44. package/lib/cjs/components/datatable/datatable-table-renderer.d.ts +16 -0
  45. package/lib/cjs/components/datatable/datatable-table-renderer.d.ts.map +1 -0
  46. package/lib/cjs/components/datatable/datatable-table-renderer.js +141 -0
  47. package/lib/cjs/components/datatable/datatable-table-renderer.js.map +1 -0
  48. package/lib/cjs/components/datatable/datatable.d.ts +9 -87
  49. package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
  50. package/lib/cjs/components/datatable/datatable.js +234 -740
  51. package/lib/cjs/components/datatable/datatable.js.map +1 -1
  52. package/lib/cjs/components/dropdown/dropdown.d.ts +2 -2
  53. package/lib/cjs/components/dropdown/dropdown.d.ts.map +1 -1
  54. package/lib/cjs/components/dropdown/dropdown.js +68 -31
  55. package/lib/cjs/components/dropdown/dropdown.js.map +1 -1
  56. package/lib/cjs/components/input-number/index.d.ts +7 -0
  57. package/lib/cjs/components/input-number/index.d.ts.map +1 -0
  58. package/lib/cjs/components/input-number/index.js +10 -0
  59. package/lib/cjs/components/input-number/index.js.map +1 -0
  60. package/lib/cjs/components/input-number/input-number.d.ts +40 -0
  61. package/lib/cjs/components/input-number/input-number.d.ts.map +1 -0
  62. package/lib/cjs/components/input-number/input-number.js +248 -0
  63. package/lib/cjs/components/input-number/input-number.js.map +1 -0
  64. package/lib/cjs/components/input-number/types.d.ts +30 -0
  65. package/lib/cjs/components/input-number/types.d.ts.map +1 -0
  66. package/lib/cjs/components/input-number/types.js +7 -0
  67. package/lib/cjs/components/input-number/types.js.map +1 -0
  68. package/lib/cjs/components/select/config.d.ts +1 -0
  69. package/lib/cjs/components/select/config.d.ts.map +1 -1
  70. package/lib/cjs/components/select/config.js +2 -1
  71. package/lib/cjs/components/select/config.js.map +1 -1
  72. package/lib/cjs/components/select/index.d.ts +1 -1
  73. package/lib/cjs/components/select/index.d.ts.map +1 -1
  74. package/lib/cjs/components/select/select.d.ts +8 -1
  75. package/lib/cjs/components/select/select.d.ts.map +1 -1
  76. package/lib/cjs/components/select/select.js +14 -1
  77. package/lib/cjs/components/select/select.js.map +1 -1
  78. package/lib/cjs/components/select/tags.d.ts.map +1 -1
  79. package/lib/cjs/components/select/tags.js +10 -0
  80. package/lib/cjs/components/select/tags.js.map +1 -1
  81. package/lib/cjs/index.d.ts +9 -1
  82. package/lib/cjs/index.d.ts.map +1 -1
  83. package/lib/cjs/index.js +11 -7
  84. package/lib/cjs/index.js.map +1 -1
  85. package/lib/cjs/init-all.d.ts +6 -0
  86. package/lib/cjs/init-all.d.ts.map +1 -0
  87. package/lib/cjs/init-all.js +17 -0
  88. package/lib/cjs/init-all.js.map +1 -0
  89. package/lib/cjs/legacy.d.ts +8 -0
  90. package/lib/cjs/legacy.d.ts.map +1 -0
  91. package/lib/cjs/legacy.js +26 -0
  92. package/lib/cjs/legacy.js.map +1 -0
  93. package/lib/esm/components/context-menu/context-menu.d.ts +66 -0
  94. package/lib/esm/components/context-menu/context-menu.d.ts.map +1 -0
  95. package/lib/esm/components/context-menu/context-menu.js +420 -0
  96. package/lib/esm/components/context-menu/context-menu.js.map +1 -0
  97. package/lib/esm/components/context-menu/index.d.ts +7 -0
  98. package/lib/esm/components/context-menu/index.d.ts.map +1 -0
  99. package/lib/esm/components/context-menu/index.js +6 -0
  100. package/lib/esm/components/context-menu/index.js.map +1 -0
  101. package/lib/esm/components/context-menu/types.d.ts +30 -0
  102. package/lib/esm/components/context-menu/types.d.ts.map +1 -0
  103. package/lib/esm/components/context-menu/types.js +6 -0
  104. package/lib/esm/components/context-menu/types.js.map +1 -0
  105. package/lib/esm/components/datatable/datatable-checkbox.d.ts.map +1 -1
  106. package/lib/esm/components/datatable/datatable-checkbox.js +34 -15
  107. package/lib/esm/components/datatable/datatable-checkbox.js.map +1 -1
  108. package/lib/esm/components/datatable/datatable-contracts.d.ts +66 -0
  109. package/lib/esm/components/datatable/datatable-contracts.d.ts.map +1 -0
  110. package/lib/esm/components/datatable/datatable-contracts.js +6 -0
  111. package/lib/esm/components/datatable/datatable-contracts.js.map +1 -0
  112. package/lib/esm/components/datatable/datatable-event-adapter.d.ts +7 -0
  113. package/lib/esm/components/datatable/datatable-event-adapter.d.ts.map +1 -0
  114. package/lib/esm/components/datatable/datatable-event-adapter.js +13 -0
  115. package/lib/esm/components/datatable/datatable-event-adapter.js.map +1 -0
  116. package/lib/esm/components/datatable/datatable-local-provider.d.ts +25 -0
  117. package/lib/esm/components/datatable/datatable-local-provider.d.ts.map +1 -0
  118. package/lib/esm/components/datatable/datatable-local-provider.js +187 -0
  119. package/lib/esm/components/datatable/datatable-local-provider.js.map +1 -0
  120. package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts +15 -0
  121. package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts.map +1 -0
  122. package/lib/esm/components/datatable/datatable-pagination-renderer.js +141 -0
  123. package/lib/esm/components/datatable/datatable-pagination-renderer.js.map +1 -0
  124. package/lib/esm/components/datatable/datatable-remote-provider.d.ts +25 -0
  125. package/lib/esm/components/datatable/datatable-remote-provider.d.ts.map +1 -0
  126. package/lib/esm/components/datatable/datatable-remote-provider.js +188 -0
  127. package/lib/esm/components/datatable/datatable-remote-provider.js.map +1 -0
  128. package/lib/esm/components/datatable/datatable-state-store.d.ts +21 -0
  129. package/lib/esm/components/datatable/datatable-state-store.d.ts.map +1 -0
  130. package/lib/esm/components/datatable/datatable-state-store.js +78 -0
  131. package/lib/esm/components/datatable/datatable-state-store.js.map +1 -0
  132. package/lib/esm/components/datatable/datatable-table-renderer.d.ts +16 -0
  133. package/lib/esm/components/datatable/datatable-table-renderer.d.ts.map +1 -0
  134. package/lib/esm/components/datatable/datatable-table-renderer.js +138 -0
  135. package/lib/esm/components/datatable/datatable-table-renderer.js.map +1 -0
  136. package/lib/esm/components/datatable/datatable.d.ts +9 -87
  137. package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
  138. package/lib/esm/components/datatable/datatable.js +234 -740
  139. package/lib/esm/components/datatable/datatable.js.map +1 -1
  140. package/lib/esm/components/dropdown/dropdown.d.ts +2 -2
  141. package/lib/esm/components/dropdown/dropdown.d.ts.map +1 -1
  142. package/lib/esm/components/dropdown/dropdown.js +68 -31
  143. package/lib/esm/components/dropdown/dropdown.js.map +1 -1
  144. package/lib/esm/components/input-number/index.d.ts +7 -0
  145. package/lib/esm/components/input-number/index.d.ts.map +1 -0
  146. package/lib/esm/components/input-number/index.js +6 -0
  147. package/lib/esm/components/input-number/index.js.map +1 -0
  148. package/lib/esm/components/input-number/input-number.d.ts +40 -0
  149. package/lib/esm/components/input-number/input-number.d.ts.map +1 -0
  150. package/lib/esm/components/input-number/input-number.js +245 -0
  151. package/lib/esm/components/input-number/input-number.js.map +1 -0
  152. package/lib/esm/components/input-number/types.d.ts +30 -0
  153. package/lib/esm/components/input-number/types.d.ts.map +1 -0
  154. package/lib/esm/components/input-number/types.js +6 -0
  155. package/lib/esm/components/input-number/types.js.map +1 -0
  156. package/lib/esm/components/select/config.d.ts +1 -0
  157. package/lib/esm/components/select/config.d.ts.map +1 -1
  158. package/lib/esm/components/select/config.js +2 -1
  159. package/lib/esm/components/select/config.js.map +1 -1
  160. package/lib/esm/components/select/index.d.ts +1 -1
  161. package/lib/esm/components/select/index.d.ts.map +1 -1
  162. package/lib/esm/components/select/select.d.ts +8 -1
  163. package/lib/esm/components/select/select.d.ts.map +1 -1
  164. package/lib/esm/components/select/select.js +14 -1
  165. package/lib/esm/components/select/select.js.map +1 -1
  166. package/lib/esm/components/select/tags.d.ts.map +1 -1
  167. package/lib/esm/components/select/tags.js +11 -1
  168. package/lib/esm/components/select/tags.js.map +1 -1
  169. package/lib/esm/index.d.ts +9 -1
  170. package/lib/esm/index.d.ts.map +1 -1
  171. package/lib/esm/index.js +7 -5
  172. package/lib/esm/index.js.map +1 -1
  173. package/lib/esm/init-all.d.ts +6 -0
  174. package/lib/esm/init-all.d.ts.map +1 -0
  175. package/lib/esm/init-all.js +13 -0
  176. package/lib/esm/init-all.js.map +1 -0
  177. package/lib/esm/legacy.d.ts +8 -0
  178. package/lib/esm/legacy.d.ts.map +1 -0
  179. package/lib/esm/legacy.js +8 -0
  180. package/lib/esm/legacy.js.map +1 -0
  181. package/package.json +35 -11
  182. package/src/__tests__/entrypoints.test.ts +71 -0
  183. package/src/components/context-menu/__tests__/context-menu.test.ts +117 -0
  184. package/src/components/context-menu/context-menu.css +32 -0
  185. package/src/components/context-menu/context-menu.ts +529 -0
  186. package/src/components/context-menu/index.ts +10 -0
  187. package/src/components/context-menu/types.ts +32 -0
  188. package/src/components/datatable/__tests__/architecture-boundaries.test.ts +259 -0
  189. package/src/components/datatable/datatable-checkbox.ts +34 -23
  190. package/src/components/datatable/datatable-contracts.ts +96 -0
  191. package/src/components/datatable/datatable-event-adapter.ts +21 -0
  192. package/src/components/datatable/datatable-local-provider.ts +193 -0
  193. package/src/components/datatable/datatable-pagination-renderer.ts +225 -0
  194. package/src/components/datatable/datatable-remote-provider.ts +178 -0
  195. package/src/components/datatable/datatable-state-store.ts +94 -0
  196. package/src/components/datatable/datatable-table-renderer.ts +214 -0
  197. package/src/components/datatable/datatable.ts +250 -918
  198. package/src/components/dropdown/dropdown.ts +86 -58
  199. package/src/components/input/input-group.css +14 -1
  200. package/src/components/input-number/__tests__/input-number.test.ts +278 -0
  201. package/src/components/input-number/index.ts +11 -0
  202. package/src/components/input-number/input-number.ts +267 -0
  203. package/src/components/input-number/types.ts +32 -0
  204. package/src/components/select/__tests__/ux-behaviors.test.ts +72 -0
  205. package/src/components/select/config.ts +3 -1
  206. package/src/components/select/index.ts +1 -1
  207. package/src/components/select/select.css +23 -20
  208. package/src/components/select/select.ts +15 -1
  209. package/src/components/select/tags.ts +14 -1
  210. package/src/index.ts +18 -5
  211. package/src/init-all.ts +15 -0
  212. package/src/legacy.ts +9 -0
  213. package/styles.css +1 -0
package/dist/styles.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.2.3 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
@@ -312,12 +312,6 @@
312
312
  .inset-0 {
313
313
  inset: calc(var(--spacing) * 0);
314
314
  }
315
- .start {
316
- inset-inline-start: var(--spacing);
317
- }
318
- .end {
319
- inset-inline-end: var(--spacing);
320
- }
321
315
  .top-1\/2 {
322
316
  top: calc(1 / 2 * 100%);
323
317
  }
@@ -476,6 +470,9 @@
476
470
  .w-6 {
477
471
  width: calc(var(--spacing) * 6);
478
472
  }
473
+ .w-20 {
474
+ width: calc(var(--spacing) * 20);
475
+ }
479
476
  .w-full {
480
477
  width: 100%;
481
478
  }
@@ -767,6 +764,9 @@
767
764
  .py-2 {
768
765
  padding-block: calc(var(--spacing) * 2);
769
766
  }
767
+ .py-3 {
768
+ padding-block: calc(var(--spacing) * 3);
769
+ }
770
770
  .py-4 {
771
771
  padding-block: calc(var(--spacing) * 4);
772
772
  }
@@ -896,6 +896,9 @@
896
896
  .text-red-600 {
897
897
  color: var(--color-red-600);
898
898
  }
899
+ .text-secondary-foreground {
900
+ color: var(--secondary-foreground);
901
+ }
899
902
  .text-transparent {
900
903
  color: transparent;
901
904
  }
@@ -3765,6 +3768,115 @@
3765
3768
  }
3766
3769
  }
3767
3770
  }
3771
+ @layer components {
3772
+ .kt-context-menu {
3773
+ :where(& > :not(:last-child)) {
3774
+ --tw-space-y-reverse: 0;
3775
+ margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
3776
+ margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
3777
+ }
3778
+ border-radius: calc(var(--radius) - 2px);
3779
+ border-style: var(--tw-border-style);
3780
+ border-width: 1px;
3781
+ border-color: var(--border);
3782
+ background-color: var(--popover);
3783
+ padding: calc(var(--spacing) * 1.5);
3784
+ color: var(--popover-foreground);
3785
+ --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));
3786
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3787
+ --tw-shadow-color: rgba(0,0,0,0.05);
3788
+ @supports (color: color-mix(in lab, red, red)) {
3789
+ --tw-shadow-color: color-mix(in oklab, rgba(0,0,0,0.05) var(--tw-shadow-alpha), transparent);
3790
+ }
3791
+ &:not(.open) {
3792
+ display: none;
3793
+ }
3794
+ }
3795
+ .kt-context-menu-sub {
3796
+ width: 100%;
3797
+ :where(& > :not(:last-child)) {
3798
+ --tw-space-y-reverse: 0;
3799
+ margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
3800
+ margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
3801
+ }
3802
+ }
3803
+ .kt-context-menu-toggle {
3804
+ display: flex;
3805
+ width: 100%;
3806
+ cursor: pointer;
3807
+ align-items: center;
3808
+ column-gap: calc(var(--spacing) * 2);
3809
+ border-radius: calc(var(--radius) - 2px);
3810
+ padding-inline: calc(var(--spacing) * 2);
3811
+ padding-block: calc(var(--spacing) * 1.5);
3812
+ text-align: start;
3813
+ font-size: var(--text-sm);
3814
+ line-height: var(--tw-leading, var(--text-sm--line-height));
3815
+ --tw-font-weight: var(--font-weight-medium);
3816
+ font-weight: var(--font-weight-medium);
3817
+ &:disabled {
3818
+ pointer-events: none;
3819
+ }
3820
+ &:disabled {
3821
+ opacity: 50%;
3822
+ }
3823
+ color: var(--foreground);
3824
+ &:hover {
3825
+ @media (hover: hover) {
3826
+ background-color: var(--accent);
3827
+ }
3828
+ }
3829
+ &:hover {
3830
+ @media (hover: hover) {
3831
+ color: var(--accent-foreground);
3832
+ }
3833
+ }
3834
+ }
3835
+ .kt-context-menu-link {
3836
+ display: flex;
3837
+ width: 100%;
3838
+ cursor: pointer;
3839
+ align-items: center;
3840
+ column-gap: calc(var(--spacing) * 2);
3841
+ border-radius: calc(var(--radius) - 2px);
3842
+ padding-inline: calc(var(--spacing) * 2);
3843
+ padding-block: calc(var(--spacing) * 1.5);
3844
+ text-align: start;
3845
+ font-size: var(--text-sm);
3846
+ line-height: var(--tw-leading, var(--text-sm--line-height));
3847
+ --tw-font-weight: var(--font-weight-medium);
3848
+ font-weight: var(--font-weight-medium);
3849
+ &:disabled {
3850
+ pointer-events: none;
3851
+ }
3852
+ &:disabled {
3853
+ opacity: 50%;
3854
+ }
3855
+ color: var(--foreground);
3856
+ &:hover {
3857
+ @media (hover: hover) {
3858
+ background-color: var(--accent);
3859
+ }
3860
+ }
3861
+ &:hover {
3862
+ @media (hover: hover) {
3863
+ color: var(--accent-foreground);
3864
+ }
3865
+ }
3866
+ }
3867
+ .kt-context-menu-separator {
3868
+ margin-inline: calc(var(--spacing) * -2);
3869
+ margin-block: calc(var(--spacing) * 2.5);
3870
+ height: 1px;
3871
+ background-color: var(--border);
3872
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
3873
+ rotate: 180deg;
3874
+ }
3875
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
3876
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
3877
+ }
3878
+ }
3879
+ }
3768
3880
  @layer components {
3769
3881
  .kt-image-input {
3770
3882
  position: relative;
@@ -4189,9 +4301,21 @@
4189
4301
  border-start-end-radius: 0 !important;
4190
4302
  border-end-end-radius: 0 !important;
4191
4303
  }
4304
+ .kt-btn:has(+ input.kt-input), .kt-btn:has(+ textarea.kt-input), .kt-btn:has(+ .kt-input) {
4305
+ border-start-end-radius: 0 !important;
4306
+ border-end-end-radius: 0 !important;
4307
+ --tw-shadow: 0 0 #0000 !important;
4308
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
4309
+ }
4310
+ .kt-btn:has(+ input.kt-input).kt-btn-outline, .kt-btn:has(+ textarea.kt-input).kt-btn-outline, .kt-btn:has(+ .kt-input).kt-btn-outline {
4311
+ border-inline-end-style: var(--tw-border-style) !important;
4312
+ border-inline-end-width: 0px !important;
4313
+ }
4192
4314
  .kt-input + .kt-btn {
4193
4315
  border-start-start-radius: 0 !important;
4194
4316
  border-end-start-radius: 0 !important;
4317
+ --tw-shadow: 0 0 #0000 !important;
4318
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
4195
4319
  }
4196
4320
  .kt-input + .kt-btn.kt-btn-outline {
4197
4321
  border-inline-start-style: var(--tw-border-style) !important;
@@ -4749,17 +4873,22 @@
4749
4873
  .kt-select-tag {
4750
4874
  display: inline-flex;
4751
4875
  align-items: center;
4752
- gap: calc(var(--spacing) * 2);
4753
- border-radius: var(--radius);
4754
- padding-inline: calc(var(--spacing) * 3);
4755
- padding-block: calc(var(--spacing) * 1.5);
4756
- font-size: var(--text-sm);
4757
- line-height: var(--tw-leading, var(--text-sm--line-height));
4876
+ gap: calc(var(--spacing) * 1);
4877
+ border-radius: 0;
4878
+ padding-inline: calc(var(--spacing) * 2);
4879
+ padding-block: calc(var(--spacing) * 1);
4880
+ font-size: var(--text-xs);
4881
+ line-height: var(--tw-leading, var(--text-xs--line-height));
4882
+ --tw-leading: var(--leading-tight);
4883
+ line-height: var(--leading-tight);
4758
4884
  --tw-font-weight: var(--font-weight-medium);
4759
4885
  font-weight: var(--font-weight-medium);
4760
4886
  border-style: var(--tw-border-style);
4761
- border-width: 1px;
4887
+ border-width: 0.5px;
4762
4888
  border-color: var(--border);
4889
+ @supports (color: color-mix(in lab, red, red)) {
4890
+ border-color: color-mix(in oklab, var(--border) 80%, transparent);
4891
+ }
4763
4892
  background-color: var(--accent);
4764
4893
  @supports (color: color-mix(in lab, red, red)) {
4765
4894
  background-color: color-mix(in oklab, var(--accent) 10%, transparent);
@@ -4770,18 +4899,20 @@
4770
4899
  overflow: hidden;
4771
4900
  text-overflow: ellipsis;
4772
4901
  white-space: nowrap;
4773
- --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));
4774
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4775
- --tw-leading: var(--leading-tight);
4776
- line-height: var(--leading-tight);
4777
4902
  }
4778
4903
  .kt-select-tag-remove {
4779
4904
  display: flex;
4780
- height: calc(var(--spacing) * 5);
4781
- width: calc(var(--spacing) * 5);
4905
+ width: calc(var(--spacing) * 4);
4906
+ height: calc(var(--spacing) * 4);
4782
4907
  align-items: center;
4783
4908
  justify-content: center;
4784
4909
  border-radius: calc(infinity * 1px);
4910
+ border-style: var(--tw-border-style);
4911
+ border-width: 0px;
4912
+ background-color: transparent;
4913
+ padding: calc(var(--spacing) * 0);
4914
+ --tw-shadow: 0 0 #0000;
4915
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4785
4916
  color: var(--muted-foreground);
4786
4917
  &:hover {
4787
4918
  @media (hover: hover) {
@@ -4797,7 +4928,7 @@
4797
4928
  }
4798
4929
  }
4799
4930
  cursor: pointer;
4800
- transition-property: all;
4931
+ transition-property: color,background-color,transform;
4801
4932
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
4802
4933
  transition-duration: var(--tw-duration, var(--default-transition-duration));
4803
4934
  --tw-duration: 200ms;
@@ -4806,16 +4937,16 @@
4806
4937
  opacity: 100%;
4807
4938
  &:hover {
4808
4939
  @media (hover: hover) {
4809
- --tw-scale-x: 110%;
4810
- --tw-scale-y: 110%;
4811
- --tw-scale-z: 110%;
4940
+ --tw-scale-x: 105%;
4941
+ --tw-scale-y: 105%;
4942
+ --tw-scale-z: 105%;
4812
4943
  scale: var(--tw-scale-x) var(--tw-scale-y);
4813
4944
  }
4814
4945
  }
4815
4946
  }
4816
4947
  .kt-select-tag-remove svg {
4817
- height: calc(var(--spacing) * 3.5);
4818
- width: calc(var(--spacing) * 3.5);
4948
+ width: calc(var(--spacing) * 3);
4949
+ height: calc(var(--spacing) * 3);
4819
4950
  transition-property: transform, translate, scale, rotate;
4820
4951
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
4821
4952
  transition-duration: var(--tw-duration, var(--default-transition-duration));
@@ -4823,18 +4954,29 @@
4823
4954
  transition-duration: 200ms;
4824
4955
  }
4825
4956
  .kt-select-tag-remove:hover svg {
4826
- --tw-scale-x: 110%;
4827
- --tw-scale-y: 110%;
4828
- --tw-scale-z: 110%;
4957
+ --tw-scale-x: 105%;
4958
+ --tw-scale-y: 105%;
4959
+ --tw-scale-z: 105%;
4829
4960
  scale: var(--tw-scale-x) var(--tw-scale-y);
4830
4961
  }
4962
+ .kt-select-selected-count {
4963
+ display: inline-flex;
4964
+ flex-shrink: 0;
4965
+ align-items: center;
4966
+ font-size: var(--text-xs);
4967
+ line-height: var(--tw-leading, var(--text-xs--line-height));
4968
+ --tw-leading: var(--leading-tight);
4969
+ line-height: var(--leading-tight);
4970
+ --tw-font-weight: var(--font-weight-medium);
4971
+ font-weight: var(--font-weight-medium);
4972
+ color: var(--muted-foreground);
4973
+ }
4831
4974
  .kt-select-display[data-multiple='true'] {
4832
4975
  display: flex;
4833
- min-height: 3rem;
4834
4976
  flex-wrap: wrap;
4835
4977
  align-items: center;
4836
- gap: calc(var(--spacing) * 2);
4837
- padding: calc(var(--spacing) * 3);
4978
+ gap: calc(var(--spacing) * 1);
4979
+ min-height: calc(var(--spacing) * 0);
4838
4980
  width: 100%;
4839
4981
  border-radius: calc(var(--radius) - 2px);
4840
4982
  border-style: var(--tw-border-style);
@@ -4876,8 +5018,8 @@
4876
5018
  height: auto;
4877
5019
  min-height: calc(var(--spacing) * 8.5);
4878
5020
  flex-wrap: wrap;
4879
- padding-block: calc(var(--spacing) * 1.5);
4880
- background-position: right 0.5rem top 0.675rem;
5021
+ padding-block: calc(var(--spacing) * 0);
5022
+ background-position: right 0.5rem center;
4881
5023
  }
4882
5024
  }
4883
5025
  .kt-select-sm {
@@ -4892,7 +5034,9 @@
4892
5034
  &[data-multiple='true'] {
4893
5035
  height: auto;
4894
5036
  min-height: calc(var(--spacing) * 7);
4895
- background-position: right 0.5rem top 0.575rem;
5037
+ flex-wrap: wrap;
5038
+ padding-block: calc(var(--spacing) * 0);
5039
+ background-position: right 0.5rem center;
4896
5040
  }
4897
5041
  }
4898
5042
  .kt-select-lg {
@@ -4908,8 +5052,9 @@
4908
5052
  &[data-multiple='true'] {
4909
5053
  height: auto;
4910
5054
  min-height: calc(var(--spacing) * 10);
4911
- padding-block: calc(var(--spacing) * 2);
4912
- background-position: right 0.6rem top 0.85rem;
5055
+ flex-wrap: wrap;
5056
+ padding-block: calc(var(--spacing) * 0);
5057
+ background-position: right 0.6rem center;
4913
5058
  }
4914
5059
  }
4915
5060
  }
@@ -4918,19 +5063,19 @@
4918
5063
  .kt-select {
4919
5064
  background-position: left 0.5rem center;
4920
5065
  &[data-multiple='true'] {
4921
- background-position: left 0.5rem top 0.675rem;
5066
+ background-position: left 0.5rem center;
4922
5067
  }
4923
5068
  }
4924
5069
  .kt-select-sm {
4925
5070
  background-position: left 0.5rem center;
4926
5071
  &[data-multiple='true'] {
4927
- background-position: left 0.5rem top 0.575rem;
5072
+ background-position: left 0.5rem center;
4928
5073
  }
4929
5074
  }
4930
5075
  .kt-select-lg {
4931
5076
  background-position: left 0.75rem center;
4932
5077
  &[data-multiple='true'] {
4933
- background-position: left 0.75rem top 0.85rem;
5078
+ background-position: left 0.75rem center;
4934
5079
  }
4935
5080
  }
4936
5081
  }
@@ -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"}