bootstrap-select2-rails 4.1.0.pre.rc.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/LICENSE.md +7 -0
  4. data/README.MD +88 -0
  5. data/bootstrap-select2-rails.gemspec +23 -0
  6. data/lib/bootstrap-select2-rails/engine.rb +6 -0
  7. data/lib/bootstrap-select2-rails/version.rb +5 -0
  8. data/lib/bootstrap-select2-rails.rb +8 -0
  9. data/lib/tasks/utilities.thor +64 -0
  10. data/rakefile.rb +4 -0
  11. data/vendor/assets/javascripts/bootstrap-select2-rails/index.js +2 -0
  12. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/af.js +3 -0
  13. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ar.js +3 -0
  14. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/az.js +3 -0
  15. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/bg.js +3 -0
  16. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/bn.js +3 -0
  17. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/bs.js +3 -0
  18. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ca.js +3 -0
  19. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/cs.js +3 -0
  20. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/da.js +3 -0
  21. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/de.js +3 -0
  22. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/dsb.js +3 -0
  23. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/el.js +3 -0
  24. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/en.js +3 -0
  25. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/eo.js +3 -0
  26. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/es.js +3 -0
  27. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/et.js +3 -0
  28. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/eu.js +3 -0
  29. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/fa.js +3 -0
  30. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/fi.js +3 -0
  31. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/fr.js +3 -0
  32. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/gl.js +3 -0
  33. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/he.js +3 -0
  34. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/hi.js +3 -0
  35. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/hr.js +3 -0
  36. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/hsb.js +3 -0
  37. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/hu.js +3 -0
  38. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/hy.js +3 -0
  39. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/id.js +3 -0
  40. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/is.js +3 -0
  41. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/it.js +3 -0
  42. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ja.js +3 -0
  43. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ka.js +3 -0
  44. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/km.js +3 -0
  45. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ko.js +3 -0
  46. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/lt.js +3 -0
  47. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/lv.js +3 -0
  48. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/mk.js +3 -0
  49. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ms.js +3 -0
  50. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/nb.js +3 -0
  51. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ne.js +3 -0
  52. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/nl.js +3 -0
  53. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/pa.js +3 -0
  54. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/pl.js +3 -0
  55. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ps.js +3 -0
  56. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/pt-BR.js +3 -0
  57. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/pt.js +3 -0
  58. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ro.js +3 -0
  59. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/ru.js +3 -0
  60. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/sk.js +3 -0
  61. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/sl.js +3 -0
  62. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/sq.js +3 -0
  63. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/sr-Cyrl.js +3 -0
  64. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/sr.js +3 -0
  65. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/sv.js +3 -0
  66. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/te.js +3 -0
  67. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/th.js +3 -0
  68. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/tk.js +3 -0
  69. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/tr.js +3 -0
  70. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/uk.js +3 -0
  71. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/vi.js +3 -0
  72. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/zh-CN.js +3 -0
  73. data/vendor/assets/javascripts/bootstrap-select2-rails/locales/zh-TW.js +3 -0
  74. data/vendor/assets/javascripts/bootstrap-select2-rails/select2.js +6209 -0
  75. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_disabled.scss +37 -0
  76. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_dropdown.scss +117 -0
  77. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_include-all.scss +10 -0
  78. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_input-group.scss +38 -0
  79. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_layout.scss +90 -0
  80. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_multiple.scss +73 -0
  81. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_single.scss +29 -0
  82. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_sizing.scss +125 -0
  83. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_validation.scss +63 -0
  84. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/_variables.scss +154 -0
  85. data/vendor/assets/stylesheets/bootstrap-select2-rails/bootstrap5/select2-bootstrap-5-theme.scss +9 -0
  86. data/vendor/assets/stylesheets/bootstrap-select2-rails/index.scss +2 -0
  87. data/vendor/assets/stylesheets/bootstrap-select2-rails/select2.css +537 -0
  88. metadata +213 -0
@@ -0,0 +1,37 @@
1
+ .select2-container--bootstrap-5 {
2
+ &.select2-container--disabled,
3
+ &.select2-container--disabled.select2-container--focus {
4
+ // Base styling
5
+ .select2-selection {
6
+ color: $s2bs5-disabled-color;
7
+ cursor: not-allowed;
8
+ background-color: $s2bs5-disabled-bg;
9
+ border-color: $s2bs5-disabled-border-color;
10
+ box-shadow: none;
11
+ }
12
+
13
+ // Multiple
14
+ .select2-selection--multiple {
15
+ .select2-selection__clear {
16
+ display: none;
17
+ }
18
+
19
+ // Items
20
+ .select2-selection__choice {
21
+ cursor: not-allowed;
22
+ .select2-selection__choice__remove {
23
+ display: none;
24
+ }
25
+ }
26
+
27
+ // Remove search field if no items selected
28
+ .select2-selection__rendered:not(:empty) {
29
+ padding-bottom: 0;
30
+
31
+ + .select2-search {
32
+ display: none;
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,117 @@
1
+ .select2-container--bootstrap-5 {
2
+ + .select2-container--bootstrap-5 {
3
+ z-index: $s2bs5-zindex;
4
+ }
5
+
6
+ // Dropdown
7
+ .select2-dropdown {
8
+ z-index: $s2bs5-zindex;
9
+ overflow: hidden;
10
+ color: $s2bs5-color;
11
+ background-color: $s2bs5-bg;
12
+ border-color: $s2bs5-focus-border-color;
13
+ @include border-radius($s2bs5-border-radius);
14
+
15
+ // Open Below
16
+ &.select2-dropdown--below {
17
+ border-top: 0 solid transparent;
18
+ @include border-top-radius(0);
19
+ }
20
+
21
+ // Open Above
22
+ &.select2-dropdown--above {
23
+ border-bottom: 0 solid transparent;
24
+ @include border-bottom-radius(0);
25
+ }
26
+
27
+ // Search box
28
+ .select2-search {
29
+ padding: $s2bs5-padding-y $s2bs5-padding-x;
30
+
31
+ // Search field
32
+ .select2-search__field {
33
+ display: block;
34
+ width: 100%;
35
+ padding: $s2bs5-padding-y $s2bs5-padding-x;
36
+ font-family: $s2bs5-font-family;
37
+ @include font-size($s2bs5-font-size);
38
+ font-weight: $s2bs5-font-weight;
39
+ line-height: $s2bs5-line-height;
40
+ color: $s2bs5-color;
41
+ background-color: $s2bs5-bg;
42
+ background-clip: padding-box;
43
+ border: $s2bs5-border-width solid $s2bs5-border-color;
44
+ appearance: none;
45
+
46
+ @include border-radius($s2bs5-border-radius, 0);
47
+ @include box-shadow($s2bs5-box-shadow);
48
+ @include transition($s2bs5-transition);
49
+
50
+ &:focus {
51
+ border-color: $s2bs5-focus-border-color;
52
+ box-shadow: $s2bs5-focus-box-shadow;
53
+ }
54
+ }
55
+ }
56
+
57
+ // Items
58
+ .select2-results__options {
59
+ &:not(.select2-results__options--nested) {
60
+ max-height: $s2bs5-options-max-height;
61
+ overflow-y: auto;
62
+ }
63
+
64
+ // Item
65
+ .select2-results__option {
66
+ padding: $s2bs5-item-padding-y $s2bs5-item-padding-x;
67
+ @include font-size($s2bs5-font-size);
68
+ font-weight: $s2bs5-font-weight;
69
+ line-height: $s2bs5-line-height;
70
+
71
+ // No results message
72
+ &.select2-results__message {
73
+ color: $s2bs5-placeholder-color;
74
+ }
75
+
76
+ // Highlighted Item
77
+ &.select2-results__option--highlighted {
78
+ color: color-contrast($s2bs5-item-hover-bg);
79
+ background-color: $s2bs5-item-hover-bg;
80
+ }
81
+
82
+ // Selected Item
83
+ &.select2-results__option--selected,
84
+ &[aria-selected="true"]:not(.select2-results__option--highlighted) {
85
+ color: color-contrast($s2bs5-item-active-bg);
86
+ background-color: $s2bs5-item-active-bg;
87
+ }
88
+
89
+ // Disabled Item
90
+ &.select2-results__option--disabled,
91
+ &[aria-disabled="true"] {
92
+ color: $s2bs5-disabled-color;
93
+ }
94
+
95
+ // Optgroup
96
+ &[role="group"] {
97
+ padding: 0;
98
+
99
+ // Group Header
100
+ .select2-results__group {
101
+ padding: $s2bs5-group-padding-y $s2bs5-group-padding-x;
102
+ font-weight: $s2bs5-group-font-weight;
103
+ line-height: $s2bs5-line-height;
104
+ color: $s2bs5-group-color;
105
+ }
106
+
107
+ // Group Item
108
+ .select2-results__options--nested {
109
+ .select2-results__option {
110
+ padding: $s2bs5-item-padding-y $s2bs5-item-padding-x;
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ }
@@ -0,0 +1,10 @@
1
+ @import "variables";
2
+
3
+ @import "layout";
4
+ @import "dropdown";
5
+ @import "single";
6
+ @import "multiple";
7
+ @import "disabled";
8
+ @import "input-group";
9
+ @import "validation";
10
+ @import "sizing";
@@ -0,0 +1,38 @@
1
+ // Duplicated & altered from Bootstrap 5
2
+ .input-group {
3
+ &:not(.has-validation) {
4
+ > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
5
+ &.select2-container--bootstrap-5 {
6
+ .select2-selection {
7
+ @include border-end-radius(0);
8
+ }
9
+ }
10
+ }
11
+ }
12
+
13
+ &.has-validation {
14
+ > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu) {
15
+ &.select2-container--bootstrap-5 {
16
+ .select2-selection {
17
+ @include border-end-radius(0);
18
+ }
19
+ }
20
+ }
21
+ }
22
+
23
+ > .input-group-text ~ .select2-container--bootstrap-5,
24
+ > .btn ~ .select2-container--bootstrap-5,
25
+ > .dropdown-menu ~ .select2-container--bootstrap-5 {
26
+ .select2-selection {
27
+ @include border-start-radius(0);
28
+ }
29
+ }
30
+
31
+ // Ensure container takes up remaining room
32
+ .select2-container--bootstrap-5 {
33
+ flex-grow: 1;
34
+ .select2-selection {
35
+ height: 100%;
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,90 @@
1
+ // Base layout
2
+ .select2-container--bootstrap-5 {
3
+ display: block;
4
+
5
+ @at-root select + & {
6
+ z-index: 1;
7
+ }
8
+
9
+ *:focus {
10
+ outline: 0;
11
+ }
12
+
13
+ // Input
14
+ .select2-selection {
15
+ width: 100%;
16
+ min-height: $s2bs5-height;
17
+ padding: $s2bs5-padding-y $s2bs5-padding-x;
18
+ font-family: $s2bs5-font-family;
19
+ @include font-size($s2bs5-font-size);
20
+ font-weight: $s2bs5-font-weight;
21
+ line-height: $s2bs5-line-height;
22
+ color: $s2bs5-color;
23
+ background-color: $s2bs5-bg;
24
+ border: $s2bs5-border-width solid $s2bs5-border-color;
25
+ @include border-radius($s2bs5-border-radius, 0);
26
+ @include box-shadow($s2bs5-box-shadow);
27
+ @include transition($s2bs5-transition);
28
+ appearance: none;
29
+ }
30
+
31
+ // Focused/Open Input
32
+ &.select2-container--focus,
33
+ &.select2-container--open {
34
+ .select2-selection {
35
+ border-color: $s2bs5-focus-border-color;
36
+ box-shadow: $s2bs5-focus-box-shadow;
37
+ }
38
+ }
39
+
40
+ // Hide bottom border when open and below
41
+ &.select2-container--open.select2-container--below .select2-selection {
42
+ border-bottom: 0 solid transparent;
43
+ @include border-bottom-radius(0);
44
+ }
45
+
46
+ // Hide top border when open and above
47
+ &.select2-container--open.select2-container--above .select2-selection {
48
+ border-top: 0 solid transparent;
49
+ @include border-top-radius(0);
50
+ }
51
+
52
+ // Placeholder Width
53
+ .select2-search {
54
+ width: 100%;
55
+ }
56
+
57
+ .select2-search--inline {
58
+ .select2-search__field {
59
+ vertical-align: top;
60
+ }
61
+ }
62
+
63
+ // Clear Button
64
+ .select2-selection--single,
65
+ .select2-selection--multiple {
66
+ .select2-selection__clear {
67
+ position: absolute;
68
+ top: 50%;
69
+ right: $s2bs5-indicator-padding;
70
+ width: $s2bs5-clear-width;
71
+ height: $s2bs5-clear-height;
72
+ padding: $s2bs5-clear-padding-y $s2bs5-clear-padding-x;
73
+ overflow: hidden;
74
+ text-indent: 100%;
75
+ white-space: nowrap;
76
+ background: $s2bs5-clear-bg;
77
+ transform: translateY(-50%);
78
+
79
+ // Change icon on hover
80
+ &:hover {
81
+ background: $s2bs5-clear-hover-bg;
82
+ }
83
+
84
+ // Hide children
85
+ >span {
86
+ display: none;
87
+ }
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,73 @@
1
+ .select2-container--bootstrap-5 {
2
+ .select2-selection--multiple {
3
+ // List items
4
+ .select2-selection__rendered {
5
+ display: flex;
6
+ flex-direction: row;
7
+ flex-wrap: wrap;
8
+ padding-left: 0;
9
+ margin: 0;
10
+ list-style: none;
11
+
12
+ // Items
13
+ .select2-selection__choice {
14
+ display: flex;
15
+ flex-direction: row;
16
+ align-items: center;
17
+ padding: $s2bs5-multi-item-padding-y $s2bs5-multi-item-padding-x;
18
+ margin-right: .375rem;
19
+ margin-bottom: .375rem;
20
+ @include font-size($s2bs5-font-size);
21
+ color: $s2bs5-color;
22
+ cursor: auto;
23
+ border: $s2bs5-border-width solid $s2bs5-border-color;
24
+ @include border-radius($s2bs5-border-radius);
25
+
26
+ // Removal button
27
+ .select2-selection__choice__remove {
28
+ width: $s2bs5-clear-width;
29
+ height: $s2bs5-clear-height;
30
+ padding: $s2bs5-clear-padding-y $s2bs5-clear-padding-x;
31
+ margin-right: .25rem;
32
+ overflow: hidden;
33
+ text-indent: 100%;
34
+ white-space: nowrap;
35
+ background: $s2bs5-clear-bg;
36
+ border: 0;
37
+
38
+ &:hover {
39
+ background: $s2bs5-clear-hover-bg;
40
+ }
41
+
42
+ // Remove children
43
+ >span {
44
+ display: none;
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ // Input area
51
+ .select2-search {
52
+ display: block;
53
+ width: 100%;
54
+ height: $s2bs5-height-inner;
55
+
56
+ // Input field
57
+ .select2-search__field {
58
+ width: 100%;
59
+ height: $s2bs5-height-inner;
60
+ margin-top: 0;
61
+ margin-left: 0;
62
+ font-family: $s2bs5-font-family;
63
+ line-height: $s2bs5-line-height;
64
+ background-color: transparent;
65
+ }
66
+ }
67
+
68
+ // Clear button override
69
+ .select2-selection__clear {
70
+ right: $s2bs5-padding-x;
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,29 @@
1
+ .select2-container--bootstrap-5 {
2
+ .select2-selection--single {
3
+ padding: $s2bs5-padding-y $s2bs5-indicator-padding $s2bs5-padding-y $s2bs5-padding-x;
4
+ background-image: escape-svg($s2bs5-indicator);
5
+ background-repeat: no-repeat;
6
+ background-position: $s2bs5-bg-position;
7
+ background-size: $s2bs5-bg-size;
8
+
9
+ // Rendered view
10
+ .select2-selection__rendered {
11
+ padding: 0;
12
+ font-weight: $s2bs5-font-weight;
13
+ line-height: $s2bs5-line-height;
14
+ color: $s2bs5-color;
15
+
16
+ // Placeholder
17
+ .select2-selection__placeholder {
18
+ font-weight: $s2bs5-font-weight;
19
+ line-height: $s2bs5-line-height;
20
+ color: $s2bs5-placeholder-color;
21
+ }
22
+
23
+ // Disable arrow
24
+ .select2-selection__arrow {
25
+ display: none;
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,125 @@
1
+ @mixin s2bs5-sizing($size-list: $s2bs5-small, $selector: "") {
2
+ // Layout
3
+ #{$selector}.select2-selection {
4
+ min-height: map-get($size-list, height);
5
+ padding: map-get($size-list, padding-y) map-get($size-list, padding-x);
6
+ @include font-size(map-get($size-list, font-size));
7
+ @include border-radius(map-get($size-list, border-radius), 0);
8
+ }
9
+
10
+ #{$selector}.select2-selection--single,
11
+ #{$selector}.select2-selection--multiple {
12
+ .select2-selection__clear {
13
+ width: map-get($size-list, clear-width);
14
+ height: map-get($size-list, clear-height);
15
+ padding: map-get($size-list, clear-padding-y) map-get($size-list, clear-padding-x);
16
+ background: map-get($size-list, clear-bg);
17
+
18
+ &:hover {
19
+ background: map-get($size-list, clear-hover-bg);
20
+ }
21
+ }
22
+
23
+ .select2-search {
24
+ &,
25
+ .select2-search__field {
26
+ height: map-get($size-list, height-inner);
27
+ }
28
+ }
29
+ }
30
+
31
+ // Dropdown
32
+ #{$selector}.select2-dropdown {
33
+ @include border-radius(map-get($size-list, border-radius));
34
+
35
+ // Open Below
36
+ &.select2-dropdown--below {
37
+ @include border-top-radius(0);
38
+ }
39
+
40
+ // Open Above
41
+ &.select2-dropdown--above {
42
+ @include border-bottom-radius(0);
43
+ }
44
+
45
+ .select2-search {
46
+ .select2-search__field {
47
+ padding: map-get($size-list, padding-y) map-get($size-list, padding-x);
48
+ @include font-size(map-get($size-list, font-size));
49
+ }
50
+ }
51
+
52
+ .select2-results__options {
53
+ .select2-results__option {
54
+ padding: map-get($size-list, item-padding-y) map-get($size-list, item-padding-x);
55
+ @include font-size(map-get($size-list, font-size));
56
+
57
+ &[role="group"] {
58
+ .select2-results__group {
59
+ padding: map-get($size-list, group-padding-y) map-get($size-list, group-padding-x);
60
+ }
61
+
62
+ .select2-results__options--nested {
63
+ .select2-results__option {
64
+ padding: map-get($size-list, item-padding-y) map-get($size-list, item-padding-x);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ // Single
73
+ #{$selector}.select2-selection--single {
74
+ padding: map-get($size-list, padding-y) $s2bs5-indicator-padding map-get($size-list, padding-y) map-get($size-list, padding-x);
75
+ }
76
+
77
+ // Multiple
78
+ #{$selector}.select2-selection--multiple {
79
+ .select2-selection__rendered {
80
+ .select2-selection__choice {
81
+ padding: $s2bs5-multi-item-padding-y $s2bs5-multi-item-padding-x;
82
+ @include font-size(map-get($size-list, font-size));
83
+
84
+ .select2-selection__choice__remove {
85
+ width: map-get($size-list, clear-width);
86
+ height: map-get($size-list, clear-height);
87
+ padding: map-get($size-list, clear-padding-y) map-get($size-list, clear-padding-x);
88
+ background: map-get($size-list, clear-bg);
89
+
90
+ &:hover {
91
+ background: map-get($size-list, clear-hover-bg);
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ .select2-selection__clear {
98
+ right: map-get($size-list, padding-x);
99
+ }
100
+ }
101
+ }
102
+
103
+ // Using options
104
+ .select2-container--bootstrap-5 {
105
+ // Small
106
+ @include s2bs5-sizing($s2bs5-small, ".select2--small");
107
+
108
+ // Large
109
+ @include s2bs5-sizing($s2bs5-large, ".select2--large");
110
+ }
111
+
112
+ // Using bootstrap classes
113
+ // Small
114
+ .form-select-sm {
115
+ ~ .select2-container--bootstrap-5 {
116
+ @include s2bs5-sizing($s2bs5-small);
117
+ }
118
+ }
119
+
120
+ // Large
121
+ .form-select-lg {
122
+ ~ .select2-container--bootstrap-5 {
123
+ @include s2bs5-sizing($s2bs5-large);
124
+ }
125
+ }
@@ -0,0 +1,63 @@
1
+ .select2-container--bootstrap-5 {
2
+ // Valid
3
+ .is-valid + &,
4
+ .was-validated select:valid + & {
5
+ // Set border color
6
+ .select2-selection {
7
+ border-color: $s2bs5-valid-border-color;
8
+ }
9
+
10
+ &.select2-container--focus,
11
+ &.select2-container--open {
12
+ // Set border color & box shadow
13
+ .select2-selection {
14
+ border-color: $s2bs5-valid-border-color;
15
+ box-shadow: $s2bs5-valid-focus-box-shadow;
16
+ }
17
+ }
18
+
19
+ &.select2-container--open {
20
+ // Hide bottom border when open and below
21
+ &.select2-container--below .select2-selection {
22
+ border-bottom: 0 solid transparent;
23
+ }
24
+
25
+ // Hide top border when open and above
26
+ &.select2-container--above .select2-selection {
27
+ border-top: 0 solid transparent;
28
+ @include border-top-radius(0);
29
+ }
30
+ }
31
+ }
32
+
33
+ // Invalid
34
+ .is-invalid + &,
35
+ .was-validated select:invalid + & {
36
+ // Set border color
37
+ .select2-selection {
38
+ border-color: $s2bs5-invalid-border-color;
39
+ }
40
+
41
+ &.select2-container--focus,
42
+ &.select2-container--open {
43
+ // Set border color & box shadow
44
+ .select2-selection {
45
+ border-color: $s2bs5-invalid-border-color;
46
+ box-shadow: $s2bs5-invalid-focus-box-shadow;
47
+ }
48
+ }
49
+
50
+ &.select2-container--open {
51
+ // Hide bottom border when open and below
52
+ &.select2-container--below .select2-selection {
53
+ border-bottom: 0 solid transparent;
54
+ }
55
+
56
+ // Hide top border when open and above
57
+ &.select2-container--above .select2-selection {
58
+ border-top: 0 solid transparent;
59
+ @include border-top-radius(0);
60
+ }
61
+ }
62
+ }
63
+ }