@drecchia/tom-select 2.5.2-virtual-scroll.0 → 2.5.2-virtual-scroll.1

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 (248) hide show
  1. package/dist/cjs/constants.js +16 -0
  2. package/dist/cjs/constants.js.map +1 -0
  3. package/dist/cjs/contrib/highlight.js +69 -0
  4. package/dist/cjs/contrib/highlight.js.map +1 -0
  5. package/dist/cjs/contrib/microevent.js +64 -0
  6. package/dist/cjs/contrib/microevent.js.map +1 -0
  7. package/dist/cjs/contrib/microplugin.js +112 -0
  8. package/dist/cjs/contrib/microplugin.js.map +1 -0
  9. package/dist/cjs/defaults.js +85 -0
  10. package/dist/cjs/defaults.js.map +1 -0
  11. package/dist/cjs/getSettings.js +146 -0
  12. package/dist/cjs/getSettings.js.map +1 -0
  13. package/dist/cjs/package.json +1 -0
  14. package/dist/cjs/plugins/caret_position/plugin.js +66 -0
  15. package/dist/cjs/plugins/caret_position/plugin.js.map +1 -0
  16. package/dist/cjs/plugins/change_listener/plugin.js +25 -0
  17. package/dist/cjs/plugins/change_listener/plugin.js.map +1 -0
  18. package/dist/cjs/plugins/checkbox_options/plugin.js +108 -0
  19. package/dist/cjs/plugins/checkbox_options/plugin.js.map +1 -0
  20. package/dist/cjs/plugins/checkbox_options/types.js +3 -0
  21. package/dist/cjs/plugins/checkbox_options/types.js.map +1 -0
  22. package/dist/cjs/plugins/clear_button/plugin.js +47 -0
  23. package/dist/cjs/plugins/clear_button/plugin.js.map +1 -0
  24. package/dist/cjs/plugins/clear_button/types.js +3 -0
  25. package/dist/cjs/plugins/clear_button/types.js.map +1 -0
  26. package/dist/cjs/plugins/drag_drop/plugin.js +117 -0
  27. package/dist/cjs/plugins/drag_drop/plugin.js.map +1 -0
  28. package/dist/cjs/plugins/dropdown_header/plugin.js +50 -0
  29. package/dist/cjs/plugins/dropdown_header/plugin.js.map +1 -0
  30. package/dist/cjs/plugins/dropdown_header/types.js +3 -0
  31. package/dist/cjs/plugins/dropdown_header/types.js.map +1 -0
  32. package/dist/cjs/plugins/dropdown_input/plugin.js +88 -0
  33. package/dist/cjs/plugins/dropdown_input/plugin.js.map +1 -0
  34. package/dist/cjs/plugins/input_autogrow/plugin.js +47 -0
  35. package/dist/cjs/plugins/input_autogrow/plugin.js.map +1 -0
  36. package/dist/cjs/plugins/local_virtual_scroll/plugin.js +293 -0
  37. package/dist/cjs/plugins/local_virtual_scroll/plugin.js.map +1 -0
  38. package/dist/cjs/plugins/local_virtual_scroll/types.js +3 -0
  39. package/dist/cjs/plugins/local_virtual_scroll/types.js.map +1 -0
  40. package/dist/cjs/plugins/no_active_items/plugin.js +22 -0
  41. package/dist/cjs/plugins/no_active_items/plugin.js.map +1 -0
  42. package/dist/cjs/plugins/no_backspace_delete/plugin.js +28 -0
  43. package/dist/cjs/plugins/no_backspace_delete/plugin.js.map +1 -0
  44. package/dist/cjs/plugins/optgroup_columns/plugin.js +51 -0
  45. package/dist/cjs/plugins/optgroup_columns/plugin.js.map +1 -0
  46. package/dist/cjs/plugins/remove_button/plugin.js +61 -0
  47. package/dist/cjs/plugins/remove_button/plugin.js.map +1 -0
  48. package/dist/cjs/plugins/remove_button/types.js +3 -0
  49. package/dist/cjs/plugins/remove_button/types.js.map +1 -0
  50. package/dist/cjs/plugins/restore_on_backspace/plugin.js +24 -0
  51. package/dist/cjs/plugins/restore_on_backspace/plugin.js.map +1 -0
  52. package/dist/cjs/plugins/virtual_scroll/plugin.js +170 -0
  53. package/dist/cjs/plugins/virtual_scroll/plugin.js.map +1 -0
  54. package/dist/cjs/tom-select.complete.js +35 -0
  55. package/dist/cjs/tom-select.complete.js.map +1 -0
  56. package/dist/cjs/tom-select.js +2303 -0
  57. package/dist/cjs/tom-select.js.map +1 -0
  58. package/dist/cjs/tom-select.popular.js +15 -0
  59. package/dist/cjs/tom-select.popular.js.map +1 -0
  60. package/dist/cjs/types/core.js +3 -0
  61. package/dist/cjs/types/core.js.map +1 -0
  62. package/dist/cjs/types/index.js +19 -0
  63. package/dist/cjs/types/index.js.map +1 -0
  64. package/dist/cjs/types/settings.js +3 -0
  65. package/dist/cjs/types/settings.js.map +1 -0
  66. package/dist/cjs/utils.js +212 -0
  67. package/dist/cjs/utils.js.map +1 -0
  68. package/dist/cjs/vanilla.js +190 -0
  69. package/dist/cjs/vanilla.js.map +1 -0
  70. package/dist/css/tom-select.bootstrap4.css +16 -4
  71. package/dist/css/tom-select.bootstrap4.css.map +1 -0
  72. package/dist/css/tom-select.bootstrap4.min.css +2 -0
  73. package/dist/css/tom-select.bootstrap4.min.css.map +1 -0
  74. package/dist/css/tom-select.bootstrap5.css +16 -4
  75. package/dist/css/tom-select.bootstrap5.css.map +1 -0
  76. package/dist/css/tom-select.bootstrap5.min.css +2 -0
  77. package/dist/css/tom-select.bootstrap5.min.css.map +1 -0
  78. package/dist/css/tom-select.css +12 -4
  79. package/dist/css/tom-select.css.map +1 -0
  80. package/dist/css/tom-select.default.css +11 -5
  81. package/dist/css/tom-select.default.css.map +1 -1
  82. package/dist/css/tom-select.default.min.css +2 -0
  83. package/dist/css/tom-select.default.min.css.map +1 -0
  84. package/dist/css/tom-select.min.css +2 -0
  85. package/dist/css/tom-select.min.css.map +1 -0
  86. package/dist/esm/constants.d.ts +12 -0
  87. package/dist/esm/constants.js +13 -0
  88. package/dist/esm/constants.js.map +1 -0
  89. package/dist/esm/contrib/highlight.d.ts +13 -0
  90. package/dist/esm/contrib/highlight.js +64 -0
  91. package/dist/esm/contrib/highlight.js.map +1 -0
  92. package/dist/esm/contrib/microevent.d.ts +20 -0
  93. package/dist/esm/contrib/microevent.js +61 -0
  94. package/dist/esm/contrib/microevent.js.map +1 -0
  95. package/dist/esm/contrib/microplugin.d.ts +71 -0
  96. package/dist/esm/contrib/microplugin.js +109 -0
  97. package/dist/esm/contrib/microplugin.js.map +1 -0
  98. package/dist/esm/defaults.d.ts +53 -0
  99. package/dist/esm/defaults.js +83 -0
  100. package/dist/esm/defaults.js.map +1 -0
  101. package/dist/esm/getSettings.d.ts +3 -0
  102. package/dist/esm/getSettings.js +143 -0
  103. package/dist/esm/getSettings.js.map +1 -0
  104. package/dist/esm/plugins/caret_position/plugin.d.ts +16 -0
  105. package/dist/esm/plugins/caret_position/plugin.js +1 -1
  106. package/dist/esm/plugins/change_listener/plugin.d.ts +16 -0
  107. package/dist/esm/plugins/change_listener/plugin.js +1 -1
  108. package/dist/esm/plugins/checkbox_options/plugin.d.ts +17 -0
  109. package/dist/esm/plugins/checkbox_options/plugin.js +1 -1
  110. package/dist/esm/plugins/checkbox_options/types.d.ts +14 -0
  111. package/dist/esm/plugins/checkbox_options/types.js +2 -0
  112. package/dist/esm/plugins/checkbox_options/types.js.map +1 -0
  113. package/dist/esm/plugins/clear_button/plugin.d.ts +17 -0
  114. package/dist/esm/plugins/clear_button/plugin.js +1 -1
  115. package/dist/esm/plugins/clear_button/types.d.ts +7 -0
  116. package/dist/esm/plugins/clear_button/types.js +2 -0
  117. package/dist/esm/plugins/clear_button/types.js.map +1 -0
  118. package/dist/esm/plugins/drag_drop/plugin.d.ts +16 -0
  119. package/dist/esm/plugins/drag_drop/plugin.js +1 -1
  120. package/dist/esm/plugins/dropdown_header/plugin.d.ts +17 -0
  121. package/dist/esm/plugins/dropdown_header/plugin.js +1 -1
  122. package/dist/esm/plugins/dropdown_header/types.d.ts +8 -0
  123. package/dist/esm/plugins/dropdown_header/types.js +2 -0
  124. package/dist/esm/plugins/dropdown_header/types.js.map +1 -0
  125. package/dist/esm/plugins/dropdown_input/plugin.d.ts +16 -0
  126. package/dist/esm/plugins/dropdown_input/plugin.js +1 -1
  127. package/dist/esm/plugins/input_autogrow/plugin.d.ts +15 -0
  128. package/dist/esm/plugins/input_autogrow/plugin.js +1 -1
  129. package/dist/esm/plugins/local_virtual_scroll/plugin.d.ts +19 -0
  130. package/dist/esm/plugins/local_virtual_scroll/plugin.js +92 -1
  131. package/dist/esm/plugins/local_virtual_scroll/plugin.js.map +1 -1
  132. package/dist/esm/plugins/local_virtual_scroll/types.d.ts +14 -0
  133. package/dist/esm/plugins/local_virtual_scroll/types.js +2 -0
  134. package/dist/esm/plugins/local_virtual_scroll/types.js.map +1 -0
  135. package/dist/esm/plugins/no_active_items/plugin.d.ts +15 -0
  136. package/dist/esm/plugins/no_active_items/plugin.js +1 -1
  137. package/dist/esm/plugins/no_backspace_delete/plugin.d.ts +15 -0
  138. package/dist/esm/plugins/no_backspace_delete/plugin.js +1 -1
  139. package/dist/esm/plugins/optgroup_columns/plugin.d.ts +16 -0
  140. package/dist/esm/plugins/optgroup_columns/plugin.js +1 -1
  141. package/dist/esm/plugins/remove_button/plugin.d.ts +17 -0
  142. package/dist/esm/plugins/remove_button/plugin.js +1 -1
  143. package/dist/esm/plugins/remove_button/types.d.ts +6 -0
  144. package/dist/esm/plugins/remove_button/types.js +2 -0
  145. package/dist/esm/plugins/remove_button/types.js.map +1 -0
  146. package/dist/esm/plugins/restore_on_backspace/plugin.d.ts +21 -0
  147. package/dist/esm/plugins/restore_on_backspace/plugin.js +1 -1
  148. package/dist/esm/plugins/virtual_scroll/plugin.d.ts +16 -0
  149. package/dist/esm/plugins/virtual_scroll/plugin.js +1 -1
  150. package/dist/esm/tom-select.complete.d.ts +2 -0
  151. package/dist/esm/tom-select.complete.js +33 -0
  152. package/dist/esm/tom-select.complete.js.map +1 -0
  153. package/dist/esm/tom-select.d.ts +594 -0
  154. package/dist/esm/tom-select.js +2300 -0
  155. package/dist/esm/tom-select.js.map +1 -0
  156. package/dist/esm/tom-select.popular.d.ts +2 -0
  157. package/dist/esm/tom-select.popular.js +13 -0
  158. package/dist/esm/tom-select.popular.js.map +1 -0
  159. package/dist/esm/types/core.d.ts +50 -0
  160. package/dist/esm/types/core.js +2 -0
  161. package/dist/esm/types/core.js.map +1 -0
  162. package/dist/esm/types/index.d.ts +2 -0
  163. package/dist/esm/types/index.js +3 -0
  164. package/dist/esm/types/index.js.map +1 -0
  165. package/dist/esm/types/settings.d.ts +81 -0
  166. package/dist/esm/types/settings.js +2 -0
  167. package/dist/esm/types/settings.js.map +1 -0
  168. package/dist/esm/utils.d.ts +95 -0
  169. package/dist/esm/utils.js +195 -0
  170. package/dist/esm/utils.js.map +1 -0
  171. package/dist/esm/vanilla.d.ts +76 -0
  172. package/dist/esm/vanilla.js +172 -0
  173. package/dist/esm/vanilla.js.map +1 -0
  174. package/dist/js/package.json +1 -0
  175. package/dist/js/plugins/caret_position.js +1 -1
  176. package/dist/js/plugins/change_listener.js +1 -1
  177. package/dist/js/plugins/checkbox_options.js +1 -1
  178. package/dist/js/plugins/clear_button.js +1 -1
  179. package/dist/js/plugins/drag_drop.js +1 -1
  180. package/dist/js/plugins/dropdown_header.js +1 -1
  181. package/dist/js/plugins/dropdown_input.js +1 -1
  182. package/dist/js/plugins/input_autogrow.js +1 -1
  183. package/dist/js/plugins/local_virtual_scroll.js +92 -1
  184. package/dist/js/plugins/local_virtual_scroll.js.map +1 -1
  185. package/dist/js/plugins/no_active_items.js +1 -1
  186. package/dist/js/plugins/no_backspace_delete.js +1 -1
  187. package/dist/js/plugins/optgroup_columns.js +1 -1
  188. package/dist/js/plugins/remove_button.js +1 -1
  189. package/dist/js/plugins/restore_on_backspace.js +1 -1
  190. package/dist/js/plugins/virtual_scroll.js +1 -1
  191. package/dist/js/tom-select.base.js +1 -1
  192. package/dist/js/tom-select.base.min.js +1 -1
  193. package/dist/js/tom-select.complete.js +19 -1
  194. package/dist/js/tom-select.complete.js.map +1 -1
  195. package/dist/js/tom-select.complete.min.js +51 -45
  196. package/dist/js/tom-select.complete.min.js.map +1 -1
  197. package/dist/js/tom-select.popular.js +1 -1
  198. package/dist/js/tom-select.popular.min.js +1 -1
  199. package/dist/scss/_dropdown.scss +99 -0
  200. package/dist/scss/_items.scss +114 -0
  201. package/dist/scss/plugins/checkbox_options.scss +11 -0
  202. package/dist/scss/plugins/clear_button.scss +33 -0
  203. package/dist/scss/plugins/drag_drop.scss +10 -0
  204. package/dist/scss/plugins/dropdown_header.scss +24 -0
  205. package/dist/scss/plugins/dropdown_input.scss +43 -0
  206. package/dist/scss/plugins/input_autogrow.scss +15 -0
  207. package/dist/scss/plugins/optgroup_columns.scss +25 -0
  208. package/dist/scss/plugins/remove_button.scss +70 -0
  209. package/dist/scss/tom-select.bootstrap4.scss +218 -0
  210. package/dist/scss/tom-select.bootstrap5.scss +270 -0
  211. package/dist/scss/tom-select.default.scss +89 -0
  212. package/dist/scss/tom-select.scss +179 -0
  213. package/package.json +2 -2
  214. package/src/plugins/local_virtual_scroll/plugin.ts +19 -0
  215. /package/dist/{types → cjs}/constants.d.ts +0 -0
  216. /package/dist/{types → cjs}/contrib/highlight.d.ts +0 -0
  217. /package/dist/{types → cjs}/contrib/microevent.d.ts +0 -0
  218. /package/dist/{types → cjs}/contrib/microplugin.d.ts +0 -0
  219. /package/dist/{types → cjs}/defaults.d.ts +0 -0
  220. /package/dist/{types → cjs}/getSettings.d.ts +0 -0
  221. /package/dist/{types → cjs}/plugins/caret_position/plugin.d.ts +0 -0
  222. /package/dist/{types → cjs}/plugins/change_listener/plugin.d.ts +0 -0
  223. /package/dist/{types → cjs}/plugins/checkbox_options/plugin.d.ts +0 -0
  224. /package/dist/{types → cjs}/plugins/checkbox_options/types.d.ts +0 -0
  225. /package/dist/{types → cjs}/plugins/clear_button/plugin.d.ts +0 -0
  226. /package/dist/{types → cjs}/plugins/clear_button/types.d.ts +0 -0
  227. /package/dist/{types → cjs}/plugins/drag_drop/plugin.d.ts +0 -0
  228. /package/dist/{types → cjs}/plugins/dropdown_header/plugin.d.ts +0 -0
  229. /package/dist/{types → cjs}/plugins/dropdown_header/types.d.ts +0 -0
  230. /package/dist/{types → cjs}/plugins/dropdown_input/plugin.d.ts +0 -0
  231. /package/dist/{types → cjs}/plugins/input_autogrow/plugin.d.ts +0 -0
  232. /package/dist/{types → cjs}/plugins/local_virtual_scroll/plugin.d.ts +0 -0
  233. /package/dist/{types → cjs}/plugins/local_virtual_scroll/types.d.ts +0 -0
  234. /package/dist/{types → cjs}/plugins/no_active_items/plugin.d.ts +0 -0
  235. /package/dist/{types → cjs}/plugins/no_backspace_delete/plugin.d.ts +0 -0
  236. /package/dist/{types → cjs}/plugins/optgroup_columns/plugin.d.ts +0 -0
  237. /package/dist/{types → cjs}/plugins/remove_button/plugin.d.ts +0 -0
  238. /package/dist/{types → cjs}/plugins/remove_button/types.d.ts +0 -0
  239. /package/dist/{types → cjs}/plugins/restore_on_backspace/plugin.d.ts +0 -0
  240. /package/dist/{types → cjs}/plugins/virtual_scroll/plugin.d.ts +0 -0
  241. /package/dist/{types → cjs}/tom-select.complete.d.ts +0 -0
  242. /package/dist/{types → cjs}/tom-select.d.ts +0 -0
  243. /package/dist/{types → cjs}/tom-select.popular.d.ts +0 -0
  244. /package/dist/{types → cjs}/types/core.d.ts +0 -0
  245. /package/dist/{types → cjs}/types/index.d.ts +0 -0
  246. /package/dist/{types → cjs}/types/settings.d.ts +0 -0
  247. /package/dist/{types → cjs}/utils.d.ts +0 -0
  248. /package/dist/{types → cjs}/vanilla.d.ts +0 -0
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Tom Select Bootstrap 5
3
+ */
4
+
5
+ // Import Bootstrap 5 functions and variables
6
+ $state-valid: map-get($form-validation-states,'valid') !default;
7
+ $state-invalid: map-get($form-validation-states,'invalid') !default;
8
+ $enable-shadows: true !default;
9
+ $select-font-family: inherit !default;
10
+ $select-font-size: inherit !default;
11
+ $select-line-height: $input-btn-line-height !default; // formerly line-height-computed
12
+
13
+ $select-color-text: $gray-800 !default;
14
+ $select-color-highlight: rgba(255, 237, 40, 40%) !default;
15
+ $select-color-input: $input-bg !default;
16
+ $select-color-input-full: $input-bg !default;
17
+ $select-color-disabled: $input-disabled-bg !default;
18
+ $select-color-item: #efefef !default;
19
+ $select-color-item-border: $border-color !default;
20
+ $select-color-item-active: $component-active-bg !default;
21
+ $select-color-item-active-text: #fff !default;
22
+ $select-color-item-active-border: rgba(0, 0, 0, 0%) !default;
23
+ $select-color-optgroup: $dropdown-bg !default;
24
+ $select-color-optgroup-text: $dropdown-header-color !default;
25
+ $select-color-optgroup-border: $dropdown-divider-bg !default;
26
+ $select-color-dropdown: $dropdown-bg !default;
27
+ $select-color-dropdown-border-top: color-mix($input-border-color, $input-bg, 80%) !default;
28
+ $select-color-dropdown-item-active: $dropdown-link-hover-bg !default;
29
+ $select-color-dropdown-item-active-text: $dropdown-link-hover-color !default;
30
+ $select-color-dropdown-item-create-active-text: $dropdown-link-hover-color !default;
31
+ $select-opacity-disabled: 1 !default;
32
+ $select-border: 1px solid $input-border-color !default;
33
+ $select-border-radius: $input-border-radius !default;
34
+ $select-width-item-border: 0 !default;
35
+ $select-padding-x: $input-padding-x !default;
36
+ $select-padding-y: $input-padding-y !default;
37
+ $select-padding-dropdown-item-x: $input-btn-padding-x !default;
38
+ $select-padding-dropdown-item-y: 3px !default;
39
+ $select-padding-item-x: 5px !default;
40
+ $select-padding-item-y: 1px !default;
41
+ $select-margin-item-x: 3px !default;
42
+ $select-margin-item-y: 3px !default;
43
+ $select-arrow-size: 5px !default;
44
+ $select-arrow-color: $select-color-text !default;
45
+ $select-arrow-offset: calc(#{$select-padding-x} + 5px) !default;
46
+
47
+ @import "tom-select";
48
+
49
+ @mixin ts-form-validation-state-selector($state) {
50
+ $state-map: map-get($form-validation-states,$state);
51
+
52
+ .#{$select-ns}-wrapper.is-#{$state},
53
+ .was-validated .#{$state},
54
+ .was-validated :#{$state} + .#{$select-ns}-wrapper {
55
+ $color: map-get($state-map,'color');
56
+ $icon: map-get($state-map,'icon');
57
+
58
+ border-color: $color;
59
+
60
+ &:not(.single) {
61
+ background-image: escape-svg($icon);
62
+ background-position: right $input-height-inner-quarter center;
63
+ background-size: $input-height-inner-half $input-height-inner-half;
64
+ background-repeat: no-repeat;
65
+ }
66
+
67
+ &.single {
68
+ background-image: escape-svg($form-select-indicator), escape-svg($icon);
69
+ background-position: $form-select-bg-position, $form-select-feedback-icon-position;
70
+ background-size: $form-select-bg-size, $form-select-feedback-icon-size;
71
+ background-repeat: no-repeat;
72
+ }
73
+
74
+ &.focus .#{$select-ns}-control {
75
+ border-color: $color;
76
+ box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity);
77
+ }
78
+ }
79
+ }
80
+
81
+
82
+ .#{$select-ns}-dropdown,
83
+ .#{$select-ns}-dropdown.form-control,
84
+ .#{$select-ns}-dropdown.form-select {
85
+ height: auto;
86
+ padding: 0;
87
+ z-index: $zindex-dropdown;
88
+ background: $select-color-dropdown;
89
+ border: 1px solid $dropdown-border-color; // $dropdown-fallback-border
90
+ border-radius: $border-radius;
91
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 17.5%);
92
+ }
93
+
94
+ .#{$select-ns}-dropdown {
95
+ .optgroup-header {
96
+ font-size: $font-size-sm;
97
+ line-height: $line-height-base;
98
+ }
99
+
100
+ .optgroup:first-child::before {
101
+ display: none;
102
+ }
103
+
104
+ .optgroup::before {
105
+ content: ' ';
106
+ display: block;
107
+ height: 0;
108
+ margin: $dropdown-divider-margin-y 0;
109
+ overflow: hidden;
110
+ border-top: 1px solid $dropdown-divider-bg;
111
+ margin-left: $select-padding-dropdown-item-x * -1;
112
+ margin-right: $select-padding-dropdown-item-x * -1;
113
+ }
114
+
115
+ .create {
116
+ padding-left: $select-padding-dropdown-item-x;
117
+ }
118
+ }
119
+
120
+ .#{$select-ns}-dropdown-content {
121
+ padding: 5px 0;
122
+ }
123
+
124
+ .#{$select-ns}-control {
125
+ @include box-shadow($input-box-shadow);
126
+ @include transition($input-transition);
127
+
128
+ display:flex;
129
+ align-items: center;
130
+
131
+ .focus & {
132
+ border-color: $input-focus-border-color;
133
+ outline: 0;
134
+ @if $enable-shadows {
135
+ box-shadow: $input-box-shadow, $input-focus-box-shadow;
136
+ } @else {
137
+ box-shadow: $input-focus-box-shadow;
138
+ }
139
+ }
140
+
141
+ .item {
142
+ display: flex;
143
+ align-items: center;
144
+ }
145
+
146
+ input::placeholder {
147
+ color: var(--bs-secondary-color, #a7aeb8);
148
+ opacity: 1;
149
+ }
150
+ }
151
+
152
+ @include ts-form-validation-state-selector('invalid');
153
+ @include ts-form-validation-state-selector('valid');
154
+
155
+ .#{$select-ns}-wrapper {
156
+ min-height: $input-height;
157
+ display:flex;
158
+
159
+ .input-group-sm > &,
160
+ &.form-select-sm,
161
+ &.form-control-sm {
162
+ min-height: $input-height-sm;
163
+
164
+ .#{$select-ns}-control {
165
+ @include border-radius($input-border-radius-sm);
166
+ @include font-size($input-font-size-sm);
167
+ }
168
+
169
+ &.has-items .#{$select-ns}-control {
170
+ font-size: $input-font-size-sm;
171
+ }
172
+ }
173
+
174
+ .input-group-sm > &.multi.has-items,
175
+ &.form-select-sm.multi.has-items,
176
+ &.form-control-sm.multi.has-items {
177
+ .#{$select-ns}-control {
178
+ // padding-top = ($input-height-sm - border-width - item-height) / 2;
179
+ // item-height = ($select-line-height * $input-font-size-sm) + ($select-padding-item-y * 2)
180
+ $border-and-padding: calc(($input-border-width + $select-padding-item-y) * 2);
181
+ $ts-select-padding-sm: calc((#{$input-height-sm} - (#{$select-line-height} * #{$input-font-size-sm}) - #{$border-and-padding})/2);
182
+
183
+ padding-top: $ts-select-padding-sm !important;
184
+ }
185
+ }
186
+
187
+ &.multi {
188
+ &.has-items .#{$select-ns}-control {
189
+ padding-left: calc(#{$select-padding-x} - #{$select-padding-item-x});
190
+
191
+ --ts-pr-min: calc(#{$select-padding-x} - #{$select-padding-item-x});
192
+ }
193
+ .#{$select-ns}-control > div {
194
+ border-radius: calc(#{$select-border-radius} - 1px);
195
+ }
196
+ }
197
+
198
+ .input-group-lg > &,
199
+ &.form-control-lg,
200
+ &.form-select-lg {
201
+ min-height: $input-height-lg;
202
+ .#{$select-ns}-control{
203
+ @include border-radius($input-border-radius-lg);
204
+ @include font-size($input-font-size-lg);
205
+ }
206
+ }
207
+
208
+ &:not(.form-control, .form-select) {
209
+ padding: 0;
210
+ border: none;
211
+ height: auto;
212
+ box-shadow: none;
213
+ background: none;
214
+
215
+ &.single .#{$select-ns}-control {
216
+ background-image: escape-svg($form-select-indicator);
217
+ background-repeat: no-repeat;
218
+ background-position: $form-select-bg-position;
219
+ background-size: $form-select-bg-size;
220
+ }
221
+ }
222
+
223
+ &.form-select,
224
+ &.single {
225
+ --ts-pr-caret: #{$form-select-indicator-padding};
226
+ }
227
+
228
+ &.form-control,
229
+ &.form-select {
230
+ padding:0 !important;
231
+ height: auto;
232
+ box-shadow: none;
233
+ display: flex;
234
+
235
+ .#{$select-ns}-control,
236
+ &.single.input-active .#{$select-ns}-control {
237
+ border: none !important;
238
+ }
239
+
240
+ &:not(.disabled) .#{$select-ns}-control,
241
+ &:not(.disabled).single.input-active .#{$select-ns}-control {
242
+ background: transparent !important; // let the background of .form-select show through
243
+ }
244
+ }
245
+ }
246
+
247
+ .input-group{
248
+ & > .#{$select-ns}-wrapper {
249
+ flex-grow: 1;
250
+ width: 1%;
251
+ }
252
+
253
+ & > .#{$select-ns}-wrapper:not(:nth-child(2)) > .#{$select-ns}-control {
254
+ border-top-left-radius: 0;
255
+ border-bottom-left-radius: 0;
256
+ }
257
+
258
+ & > .#{$select-ns}-wrapper:not(:last-child) > .#{$select-ns}-control {
259
+ border-top-right-radius: 0;
260
+ border-bottom-right-radius: 0;
261
+ }
262
+ }
263
+
264
+ .form-select {
265
+ .#{$select-ns}-dropdown,
266
+ .#{$select-ns}-control,
267
+ .#{$select-ns}-control input {
268
+ color: $form-select-color;
269
+ }
270
+ }
@@ -0,0 +1,89 @@
1
+ $select-color-item: #1da7ee;
2
+ $select-color-item-text: #fff;
3
+ $select-color-item-active-text: #fff;
4
+ $select-color-item-border: #0073bb;
5
+ $select-color-item-active: #92c836;
6
+ $select-color-item-active-border: #00578d;
7
+ $select-width-item-border: 1px;
8
+ $select-shadow-input: inset 0 1px 1px rgba(0, 0, 0, 10%) !default;
9
+ $select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 15%) !default;
10
+
11
+ @import "tom-select";
12
+ @include ts-caret;
13
+
14
+ .#{$select-ns}-wrapper {
15
+ display:flex;
16
+ min-height:$select-line-height + ($select-padding-y*2) + ($select-border-width *2);
17
+
18
+ &.multi {
19
+ &.has-items .#{$select-ns}-control {
20
+ $padding-x: $select-padding-x - 3px;
21
+
22
+ padding-left: $padding-x;
23
+
24
+ --ts-pr-min: #{$padding-x};
25
+ }
26
+
27
+ .#{$select-ns}-control {
28
+ [data-value] {
29
+ text-shadow: 0 1px 0 rgba(0, 51, 83, 30%);
30
+ border-radius: 3px;
31
+ @include selectize-vertical-gradient(#1da7ee, #178ee9);
32
+
33
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 20%),inset 0 1px rgba(255, 255, 255, 3%);
34
+
35
+ &.active {
36
+ @include selectize-vertical-gradient(#008fd8, #0075cf);
37
+ }
38
+ }
39
+ }
40
+
41
+ &.disabled .#{$select-ns}-control [data-value] {
42
+ color: #999;
43
+ text-shadow: none;
44
+ background: none;
45
+ box-shadow: none;
46
+
47
+ &, .remove {
48
+ border-color: #e6e6e6;
49
+ }
50
+
51
+ .remove {
52
+ background: none;
53
+ }
54
+ }
55
+ }
56
+
57
+ &.single {
58
+ .#{$select-ns}-control {
59
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 5%), inset 0 1px 0 rgba(255, 255, 255, 80%);
60
+ @include selectize-vertical-gradient(#fefefe, #f2f2f2);
61
+ }
62
+ }
63
+ }
64
+
65
+ .#{$select-ns}-wrapper.single .#{$select-ns}-control, .#{$select-ns}-dropdown.single {
66
+ border-color: #b8b8b8;
67
+ }
68
+
69
+ .#{$select-ns}-control {
70
+ .dropdown-active & {
71
+ border-radius: $select-border-radius $select-border-radius 0 0;
72
+ }
73
+ }
74
+
75
+ .#{$select-ns}-dropdown {
76
+ .optgroup-header {
77
+ padding-top: $select-padding-dropdown-item-y + 2px;
78
+ font-weight: bold;
79
+ font-size: 0.85em;
80
+ }
81
+
82
+ .optgroup {
83
+ border-top: 1px solid $select-color-dropdown-border-top;
84
+
85
+ &:first-child {
86
+ border-top: 0 none;
87
+ }
88
+ }
89
+ }
@@ -0,0 +1,179 @@
1
+ /**
2
+ * tom-select.css (v2.5.2-virtual-scroll.1)
3
+ * Copyright (c) contributors
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
6
+ * file except in compliance with the License. You may obtain a copy of the License at:
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software distributed under
10
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ * ANY KIND, either express or implied. See the License for the specific language
12
+ * governing permissions and limitations under the License.
13
+ *
14
+ */
15
+
16
+ // base styles
17
+ $select-ns: 'ts' !default;
18
+ $select-font-family: inherit !default;
19
+ $select-font-size: 13px !default;
20
+ $select-line-height: 18px !default;
21
+ $select-color-text: #303030 !default;
22
+ $select-color-border: #d0d0d0 !default;
23
+ $select-color-highlight: rgba(125, 168, 208, 20%) !default;
24
+ $select-color-input: #fff !default;
25
+ $select-color-input-full: $select-color-input !default;
26
+ $select-color-disabled: #fafafa !default;
27
+ $select-color-item: #f2f2f2 !default;
28
+ $select-color-item-text: $select-color-text !default;
29
+ $select-color-item-border: #d0d0d0 !default;
30
+ $select-color-item-active: #e8e8e8 !default;
31
+ $select-color-item-active-text: $select-color-text !default;
32
+ $select-color-item-active-border: #cacaca !default;
33
+ $select-color-dropdown: #fff !default;
34
+ $select-color-dropdown-border: $select-color-border !default;
35
+ $select-color-dropdown-border-top: #f0f0f0 !default;
36
+ $select-color-dropdown-item-active: #f5fafd !default;
37
+ $select-color-dropdown-item-active-text: #495c68 !default;
38
+ $select-color-dropdown-item-create-text: rgba(red($select-color-text), green($select-color-text), blue($select-color-text), 50%) !default;
39
+ $select-color-dropdown-item-create-active-text: $select-color-dropdown-item-active-text !default;
40
+ $select-color-optgroup: $select-color-dropdown !default;
41
+ $select-color-optgroup-text: $select-color-text !default;
42
+ $select-lighten-disabled-item: 30% !default;
43
+ $select-lighten-disabled-item-text: 30% !default;
44
+ $select-lighten-disabled-item-border: 30% !default;
45
+ $select-opacity-disabled: 0.5 !default;
46
+ $select-shadow-input: none !default;
47
+ $select-shadow-input-focus: none !default;
48
+ $select-border-width: 1px !default;
49
+ $select-border: $select-border-width solid $select-color-border !default;
50
+ $select-dropdown-border: 1px solid $select-color-dropdown-border !default;
51
+ $select-border-radius: 3px !default;
52
+ $select-width-item-border: 0px !default;
53
+ $select-max-height-dropdown: 200px !default;
54
+ $select-padding-x: 8px !default;
55
+ $select-padding-y: 8px !default;
56
+ $select-padding-item-x: 6px !default;
57
+ $select-padding-item-y: 2px !default;
58
+ $select-padding-dropdown-item-x: $select-padding-x !default;
59
+ $select-padding-dropdown-item-y: 5px !default;
60
+ $select-margin-item-x: 3px !default;
61
+ $select-margin-item-y: 3px !default;
62
+ $select-arrow-size: 5px !default;
63
+ $select-arrow-color: #808080 !default;
64
+ $select-arrow-offset: 15px !default;
65
+ $select-caret-margin: 0px 4px !default;
66
+ $select-caret-margin-rtl: 0px 4px 0px -2px !default;
67
+ $select-spinner-size: 30px !default;
68
+ $select-spinner-border-size: 5px !default;
69
+ $select-spinner-border-color: $select-color-border !default;
70
+
71
+ @import 'items';
72
+ @import 'dropdown';
73
+
74
+ @import "./plugins/drag_drop.scss";
75
+ @import "./plugins/checkbox_options.scss";
76
+ @import "./plugins/clear_button.scss";
77
+ @import "./plugins/dropdown_header.scss";
78
+ @import "./plugins/dropdown_input.scss";
79
+ @import "./plugins/input_autogrow.scss";
80
+ @import "./plugins/optgroup_columns.scss";
81
+ @import "./plugins/remove_button.scss";
82
+
83
+ :root {
84
+ --ts-pr-clear-button: 0px;
85
+ --ts-pr-caret: 0px;
86
+ --ts-pr-min: .75rem;
87
+ }
88
+
89
+ @mixin selectize-vertical-gradient($color-top, $color-bottom) {
90
+ background-color: color-mix($color-top, $color-bottom, 60%);
91
+ background-image: linear-gradient(to bottom, $color-top, $color-bottom);
92
+ background-repeat: repeat-x;
93
+ }
94
+
95
+ .#{$select-ns}-wrapper.single {
96
+ .#{$select-ns}-control {
97
+ &, input {
98
+ cursor: pointer;
99
+ }
100
+ }
101
+ }
102
+
103
+ .#{$select-ns}-control:not(.rtl) {
104
+ padding-right: max( var(--ts-pr-min), calc( var(--ts-pr-clear-button) + var(--ts-pr-caret)) ) !important;
105
+ }
106
+
107
+ .#{$select-ns}-control.rtl {
108
+ padding-left: max( var(--ts-pr-min), calc( var(--ts-pr-clear-button) + var(--ts-pr-caret)) ) !important;
109
+ }
110
+
111
+ @mixin ts-caret() {
112
+ .#{$select-ns}-wrapper.single {
113
+ .#{$select-ns}-control {
114
+ --ts-pr-caret: 2rem;
115
+
116
+ &::after {
117
+ content: ' ';
118
+ display: block;
119
+ position: absolute;
120
+ top: 50%;
121
+ margin-top: round(-0.5 * $select-arrow-size);
122
+ width: 0;
123
+ height: 0;
124
+ border-style: solid;
125
+ border-width: $select-arrow-size $select-arrow-size 0 $select-arrow-size;
126
+ border-color: $select-arrow-color transparent transparent transparent;
127
+ }
128
+
129
+ &:not(.rtl)::after {
130
+ right: $select-arrow-offset;
131
+ }
132
+
133
+ &.rtl::after {
134
+ left: $select-arrow-offset;
135
+ }
136
+ }
137
+
138
+ &.dropdown-active .#{$select-ns}-control::after {
139
+ margin-top: $select-arrow-size * -0.8;
140
+ border-width: 0 $select-arrow-size $select-arrow-size $select-arrow-size;
141
+ border-color: transparent transparent $select-arrow-color transparent;
142
+ }
143
+
144
+ &.input-active .#{$select-ns}-control,
145
+ &.input-active .#{$select-ns}-control input {
146
+ cursor: text;
147
+ }
148
+ }
149
+ }
150
+
151
+ .#{$select-ns}-wrapper {
152
+ position: relative;
153
+ }
154
+
155
+ .#{$select-ns}-dropdown,
156
+ .#{$select-ns}-control,
157
+ .#{$select-ns}-control input {
158
+ color: $select-color-text;
159
+ font-family: $select-font-family;
160
+ font-size: $select-font-size;
161
+ line-height: $select-line-height;
162
+ }
163
+
164
+ .#{$select-ns}-control,
165
+ .#{$select-ns}-wrapper.single.input-active .#{$select-ns}-control {
166
+ background: $select-color-input;
167
+ cursor: text;
168
+ }
169
+
170
+ .ts-hidden-accessible {
171
+ border: 0 !important;
172
+ clip: rect(0 0 0 0) !important;
173
+ clip-path: inset(50%) !important;
174
+ overflow: hidden !important;
175
+ padding: 0 !important;
176
+ position: absolute !important;
177
+ width: 1px !important;
178
+ white-space: nowrap !important;
179
+ }
package/package.json CHANGED
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "description": "Tom Select is a versatile and dynamic <select> UI control. Forked from Selectize.js to provide a framework agnostic autocomplete widget with native-feeling keyboard navigation, it's useful for tagging, contact lists, country selectors, etc.",
44
44
  "homepage": "https://tom-select.js.org",
45
- "version": "2.5.2-virtual-scroll.0",
45
+ "version": "2.5.2-virtual-scroll.1",
46
46
  "files": [
47
47
  "/dist",
48
48
  "/src"
@@ -55,7 +55,7 @@
55
55
  "license": "Apache-2.0",
56
56
  "repository": {
57
57
  "type": "git",
58
- "url": "https://github.com/drecchia/tom-select.git"
58
+ "url": "https://github.com/orchidjs/tom-select.git"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@11ty/eleventy": "^3.0.0",
@@ -17,6 +17,7 @@
17
17
 
18
18
  import type TomSelect from '../../tom-select.ts';
19
19
  import type { LVSOptions, FlatItem } from './types.ts';
20
+ import { highlight, removeHighlight } from '../../contrib/highlight.ts';
20
21
 
21
22
  export default function (this: TomSelect, userOptions: LVSOptions) {
22
23
  const self = this;
@@ -133,6 +134,19 @@ export default function (this: TomSelect, userOptions: LVSOptions) {
133
134
  return self.getOption(item.id, true) as HTMLElement;
134
135
  };
135
136
 
137
+ // ─── Re-apply search highlights to an element ─────────────────────────
138
+
139
+ const applyHighlights = (el: HTMLElement) => {
140
+ if (!self.settings.highlight) return;
141
+ removeHighlight(el);
142
+ const results = self.currentResults;
143
+ if (results && results.query.length && results.tokens.length) {
144
+ for (const tok of results.tokens) {
145
+ if (tok.regex) highlight(el, tok.regex);
146
+ }
147
+ }
148
+ };
149
+
136
150
  // ─── Helpers ─────────────────────────────────────────────────────────
137
151
 
138
152
  const measureHeight = (elements: HTMLElement[]): number =>
@@ -183,6 +197,7 @@ export default function (this: TomSelect, userOptions: LVSOptions) {
183
197
  const to = Math.min(flat_list.length, visible_end + page_size * pages);
184
198
  const new_els = renderRange(from, to);
185
199
  for (const el of new_els) dropdown_content.append(el);
200
+ for (const el of new_els) applyHighlights(el);
186
201
  visible_end = to;
187
202
 
188
203
  // Recycle items from top to stay within max_dom
@@ -214,6 +229,7 @@ export default function (this: TomSelect, userOptions: LVSOptions) {
214
229
  const first_child = dropdown_content.firstChild;
215
230
  for (const el of new_els)
216
231
  dropdown_content.insertBefore(el, first_child);
232
+ for (const el of new_els) applyHighlights(el);
217
233
 
218
234
  // Compensate scrollTop so existing content stays in place
219
235
  setScrollTop(dropdown_content.scrollTop + measureHeight(new_els));
@@ -272,6 +288,9 @@ export default function (this: TomSelect, userOptions: LVSOptions) {
272
288
  dropdown_content.innerHTML = '';
273
289
  const first_page = renderRange(0, visible_end);
274
290
  for (const el of first_page) dropdown_content.append(el);
291
+ // Re-apply highlights: the core applied them before we cleared the DOM,
292
+ // and items from optgroup expansion never went through the core highlight pass.
293
+ applyHighlights(dropdown_content);
275
294
  }
276
295
 
277
296
  updateSentinel();
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes