@wpmoo/ui 0.9.0 → 1.0.0-rc.10

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 (99) hide show
  1. package/ASSET_LICENSE.md +4 -2
  2. package/LICENSE +28 -0
  3. package/README.md +105 -100
  4. package/certification.json +25 -3
  5. package/dist/assets/css/moo-ui.css +14005 -12457
  6. package/dist/assets/css/moo-ui.min.css +10 -28
  7. package/dist/assets/css/moo.css +2606 -902
  8. package/dist/assets/css/moo.min.css +10 -29
  9. package/dist/js/chart.js +15312 -0
  10. package/dist/js/chart.min.js +27 -0
  11. package/dist/js/combobox.js +129 -85
  12. package/dist/js/context-menu.js +35 -66
  13. package/dist/js/datatable.js +390 -188
  14. package/dist/js/datepicker.js +1197 -0
  15. package/dist/js/datepicker.min.js +7 -0
  16. package/dist/js/moo-ui.js +3947 -0
  17. package/dist/js/moo-ui.min.js +7 -0
  18. package/dist/js/sheet.js +46 -0
  19. package/dist/js/sidebar.js +190 -172
  20. package/dist/js/slider.js +289 -0
  21. package/dist/js/state.js +76 -0
  22. package/dist/release-manifest.json +24 -0
  23. package/package.json +39 -9
  24. package/scss/_components.scss +70 -0
  25. package/scss/_config.scss +18 -0
  26. package/scss/_settings.scss +5 -0
  27. package/scss/components/_accordion.scss +54 -0
  28. package/scss/components/_alert.scss +82 -0
  29. package/scss/components/_avatar.scss +139 -0
  30. package/scss/components/_badge.scss +34 -0
  31. package/scss/components/_breadcrumb.scss +119 -0
  32. package/scss/components/_button.scss +200 -0
  33. package/scss/components/_button_group.scss +57 -0
  34. package/scss/components/_card.scss +114 -0
  35. package/scss/components/_checkbox.scss +78 -0
  36. package/scss/components/_close_button.scss +56 -0
  37. package/scss/components/_collapsible.scss +44 -0
  38. package/scss/components/_combobox.scss +253 -0
  39. package/scss/components/_context-menu.scss +18 -0
  40. package/scss/components/_datatable.scss +1067 -0
  41. package/scss/components/_datepicker.scss +237 -0
  42. package/scss/components/_dialog.scss +69 -0
  43. package/scss/components/_dropdown.scss +201 -0
  44. package/scss/components/_field.scss +94 -0
  45. package/scss/components/_input.scss +31 -0
  46. package/scss/components/_input_group.scss +151 -0
  47. package/scss/components/_kbd.scss +11 -0
  48. package/scss/components/_menubar.scss +17 -0
  49. package/scss/components/_navigation.scss +36 -0
  50. package/scss/components/_pagination.scss +58 -0
  51. package/scss/components/_popover.scss +26 -0
  52. package/scss/components/_progress.scss +5 -0
  53. package/scss/components/_radio_group.scss +108 -0
  54. package/scss/components/_search_trigger.scss +61 -0
  55. package/scss/components/_select.scss +8 -0
  56. package/scss/components/_separator.scss +10 -0
  57. package/scss/components/_sheet.scss +16 -0
  58. package/scss/components/_sidebar.scss +5 -0
  59. package/scss/components/_skeleton.scss +10 -0
  60. package/scss/components/_slider.scss +213 -0
  61. package/scss/components/_spinner.scss +11 -0
  62. package/scss/components/_switch.scss +30 -0
  63. package/scss/components/_table.scss +12 -0
  64. package/scss/components/_tabs.scss +116 -0
  65. package/scss/components/_textarea.scss +8 -0
  66. package/scss/components/_toast.scss +116 -0
  67. package/scss/components/_toggle_group.scss +17 -0
  68. package/scss/components/_tooltip.scss +64 -0
  69. package/scss/components/sidebar/_base.scss +86 -0
  70. package/scss/components/sidebar/_collapsed.scss +112 -0
  71. package/scss/components/sidebar/_identity.scss +71 -0
  72. package/scss/components/sidebar/_menus.scss +219 -0
  73. package/scss/foundations/_backdrop.scss +102 -0
  74. package/scss/foundations/_focus.scss +83 -0
  75. package/scss/foundations/_globals.scss +5 -0
  76. package/scss/foundations/_scope.scss +26 -0
  77. package/scss/layouts/_app.scss +75 -0
  78. package/scss/layouts/_page_grid.scss +27 -0
  79. package/scss/layouts/app/sidebar/_base.scss +84 -0
  80. package/scss/layouts/app/sidebar/_default.scss +20 -0
  81. package/scss/layouts/app/sidebar/_floating.scss +36 -0
  82. package/scss/layouts/app/sidebar/_inset.scss +32 -0
  83. package/scss/mixins/_banner.scss +9 -0
  84. package/scss/moo-core.scss +16 -0
  85. package/scss/moo-ui.scss +54 -0
  86. package/scss/settings/_bootstrap_overrides.scss +7 -0
  87. package/scss/settings/_component_variables.scss +244 -0
  88. package/scss/settings/_forms.scss +28 -0
  89. package/scss/settings/_options.scss +2 -0
  90. package/scss/settings/_palette.scss +90 -0
  91. package/scss/themes/_forms.scss +15 -0
  92. package/scss/themes/_root.scss +20 -0
  93. package/scss/themes/_standalone.scss +3 -0
  94. package/scss/themes/_theme.scss +244 -0
  95. package/scss/utilities/_background_color.scss +18 -0
  96. package/scss/utilities/_scroll_fade.scss +193 -0
  97. package/scss/utilities/_scroll_fade_primitives.scss +43 -0
  98. package/scss/_facade-settings.scss +0 -51
  99. package/scss/settings/_facade_public.scss +0 -23
@@ -0,0 +1,114 @@
1
+ /* Card */
2
+ .card {
3
+ --bs-card-bg: color-mix(in srgb, var(--bs-secondary-bg) #{$moo-card-bg-mix}, var(--bs-body-bg));
4
+ --bs-card-color: var(--moo-foreground);
5
+ --bs-card-border-color: var(--moo-border);
6
+ --bs-card-border-radius: var(--bs-border-radius-xl);
7
+ --bs-card-inner-border-radius: calc(var(--bs-card-border-radius) - var(--bs-card-border-width));
8
+ --bs-card-box-shadow: var(--bs-box-shadow-sm);
9
+ --bs-card-cap-bg: transparent;
10
+ --bs-card-cap-color: var(--moo-foreground);
11
+ --bs-card-title-color: var(--moo-foreground);
12
+ --bs-card-subtitle-color: var(--moo-muted-foreground);
13
+ --moo-card-footer-bg: #{$moo-card-footer-bg};
14
+ --moo-card-spacing: #{$moo-card-spacing};
15
+
16
+ gap: var(--moo-card-spacing);
17
+ padding-block: var(--moo-card-spacing);
18
+
19
+ &:has(.card-footer) {
20
+ padding-block-end: 0;
21
+ }
22
+
23
+ &:has(> .card-image) {
24
+ padding-block-start: 0;
25
+ }
26
+
27
+ border: var(--bs-card-border-width) solid var(--bs-card-border-color);
28
+ box-shadow: var(--bs-card-box-shadow);
29
+
30
+ }
31
+
32
+ :scope[data-bs-theme="dark"] .card {
33
+ --bs-card-bg: color-mix(in srgb, var(--bs-secondary-bg) #{$moo-card-bg-mix-dark}, var(--bs-body-bg));
34
+ --moo-card-footer-bg: #{$moo-card-footer-bg-dark};
35
+ }
36
+
37
+ .card--sm {
38
+ --moo-card-spacing: #{$moo-card-spacing-sm};
39
+ }
40
+
41
+ .card-header {
42
+ display: grid;
43
+ grid-template-columns: 1fr auto;
44
+ column-gap: var(--moo-card-spacing);
45
+ align-items: flex-start;
46
+ border-bottom: 0;
47
+ }
48
+
49
+ .card-header__text {
50
+ display: flex;
51
+ flex-direction: column;
52
+ gap: $spacer * 0.25;
53
+ min-width: 0;
54
+ grid-column: 1;
55
+ }
56
+
57
+ .card-action {
58
+ grid-column: 2;
59
+ grid-row: 1;
60
+ }
61
+
62
+ .card-header,
63
+ .card-body,
64
+ .card-footer {
65
+ padding-block: 0;
66
+ }
67
+
68
+ .card-header,
69
+ .card-body {
70
+ padding-inline: var(--moo-card-spacing);
71
+ }
72
+
73
+ .card-footer {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: $spacer * 0.5;
77
+ padding: var(--moo-card-spacing);
78
+ border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
79
+ background-color: var(--moo-card-footer-bg);
80
+ }
81
+
82
+ .card-img-top {
83
+ border-top-left-radius: var(--bs-card-border-radius);
84
+ border-top-right-radius: var(--bs-card-border-radius);
85
+ }
86
+
87
+ .card-image {
88
+ aspect-ratio: 16 / 9;
89
+ overflow: hidden;
90
+ border-top-left-radius: var(--bs-card-border-radius);
91
+ border-top-right-radius: var(--bs-card-border-radius);
92
+ background-color: var(--moo-muted-surface);
93
+ }
94
+
95
+ .card-image .card-img-top {
96
+ width: 100%;
97
+ height: 100%;
98
+ object-fit: cover;
99
+ border-radius: 0;
100
+ }
101
+
102
+ .card-title {
103
+ margin-bottom: 0;
104
+ font-size: $card-title-font-size;
105
+ font-weight: $headings-font-weight;
106
+ line-height: $line-height-sm;
107
+ letter-spacing: $card-title-letter-spacing;
108
+ }
109
+
110
+ .card-subtitle {
111
+ margin-top: 0;
112
+ font-size: $font-size-base;
113
+ color: var(--moo-muted-foreground);
114
+ }
@@ -0,0 +1,78 @@
1
+ /* Checkbox */
2
+ .form-check-input {
3
+ margin-top: 0.125rem;
4
+ }
5
+
6
+ .form-check-input[type="checkbox"]:checked:not([role="switch"]) {
7
+ --#{$prefix}form-check-bg-image: none;
8
+
9
+ position: relative;
10
+ overflow: hidden;
11
+ }
12
+
13
+ .form-check-input[type="checkbox"]:checked:not([role="switch"])::after {
14
+ position: absolute;
15
+ top: 45%;
16
+ left: 50%;
17
+ width: 0.32em;
18
+ height: 0.58em;
19
+ border-color: var(--moo-primary-foreground);
20
+ border-style: solid;
21
+ border-width: $moo-form-checkmark-border-width;
22
+ content: "";
23
+ transform: translate(-50%, -55%) rotate(45deg);
24
+ transform-origin: center;
25
+ }
26
+
27
+ .form-check-input[type="checkbox"]:indeterminate:not([role="switch"]) {
28
+ --#{$prefix}form-check-bg-image: linear-gradient(var(--moo-primary-foreground), var(--moo-primary-foreground));
29
+
30
+ background-size: $moo-form-check-indeterminate-bg-size;
31
+ background-position: $moo-form-check-indeterminate-bg-position;
32
+ }
33
+
34
+ .form-check-input[type="radio"]:checked {
35
+ --#{$prefix}form-check-bg-image: radial-gradient(circle at center, var(--moo-primary-foreground) 0 34%, transparent 36%);
36
+ }
37
+
38
+ .form-check-input:is([type="checkbox"], [type="radio"]):not(.is-invalid):focus:active,
39
+ .form-check-input:is([type="checkbox"], [type="radio"]):not(.is-invalid):focus:not(:focus-visible) {
40
+ border-color: var(--bs-border-color);
41
+ box-shadow: none;
42
+ }
43
+
44
+ .form-check-input:is([type="checkbox"], [type="radio"]):checked:not(.is-invalid):focus:active,
45
+ .form-check-input:is([type="checkbox"], [type="radio"]):checked:not(.is-invalid):focus:not(:focus-visible) {
46
+ border-color: $form-check-input-checked-border-color;
47
+ }
48
+
49
+ .form-check-input[type="checkbox"]:not(.is-invalid):indeterminate:focus:active,
50
+ .form-check-input[type="checkbox"]:not(.is-invalid):indeterminate:focus:not(:focus-visible) {
51
+ border-color: $form-check-input-indeterminate-border-color;
52
+ }
53
+
54
+ .form-check-input.is-invalid {
55
+ box-shadow: 0 0 0 #{$moo-form-focus-ring-width} var(--moo-form-invalid-ring-color);
56
+ }
57
+
58
+ .form-check-input.is-invalid:focus:active,
59
+ .form-check-input.is-invalid:focus:not(:focus-visible) {
60
+ box-shadow: 0 0 0 #{$moo-form-focus-ring-width} var(--moo-form-invalid-ring-color);
61
+ }
62
+
63
+ .form-check-input:is([type="checkbox"], [type="radio"]).is-invalid:checked:focus:active,
64
+ .form-check-input:is([type="checkbox"], [type="radio"]).is-invalid:checked:focus:not(:focus-visible) {
65
+ box-shadow: 0 0 0 #{$moo-form-focus-ring-width} var(--moo-form-invalid-ring-color);
66
+ }
67
+
68
+ .form-check-input[type="checkbox"].is-invalid:indeterminate:focus:active,
69
+ .form-check-input[type="checkbox"].is-invalid:indeterminate:focus:not(:focus-visible) {
70
+ box-shadow: 0 0 0 #{$moo-form-focus-ring-width} var(--moo-form-invalid-ring-color);
71
+ }
72
+
73
+ .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked,
74
+ .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked:focus:active,
75
+ .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked:focus:not(:focus-visible) {
76
+ border-color: var(--moo-primary);
77
+ background-color: var(--moo-primary);
78
+ }
@@ -0,0 +1,56 @@
1
+ /* Close Button */
2
+ .btn-close {
3
+ --bs-btn-close-color: var(--moo-foreground);
4
+ --bs-btn-hover-color: var(--bs-btn-close-color);
5
+ --bs-btn-hover-bg: var(--moo-muted-surface);
6
+ --bs-btn-hover-border-color: #{$moo-close-button-border-color};
7
+ --bs-btn-close-bg: #{escape-svg($moo-close-button-bg-image)};
8
+
9
+ display: inline-flex;
10
+ flex: 0 0 auto;
11
+ align-items: center;
12
+ justify-content: center;
13
+ border-width: var(--bs-border-width);
14
+ border-style: var(--bs-border-style);
15
+ border-color: $moo-close-button-border-color;
16
+ border-radius: var(--bs-border-radius-pill);
17
+ color: var(--bs-btn-close-color);
18
+ background-image: none;
19
+ transition: $btn-transition;
20
+ }
21
+
22
+ .btn-close::before {
23
+ width: $btn-close-width;
24
+ height: $btn-close-height;
25
+ content: "";
26
+ background-color: currentColor;
27
+ -webkit-mask: var(--bs-btn-close-bg) center / contain no-repeat;
28
+ mask: var(--bs-btn-close-bg) center / contain no-repeat;
29
+ }
30
+
31
+ :scope[data-bs-theme="light"] .btn-close,
32
+ :scope[data-bs-theme="dark"] .btn-close {
33
+ filter: none;
34
+ }
35
+
36
+ .btn-close:hover {
37
+ border-color: var(--bs-btn-hover-border-color);
38
+ color: var(--bs-btn-hover-color);
39
+ background-color: var(--bs-btn-hover-bg);
40
+ }
41
+
42
+ .btn-close:focus-visible {
43
+ border-color: var(--moo-ring);
44
+ color: var(--bs-btn-hover-color);
45
+ background-color: var(--bs-btn-hover-bg);
46
+ }
47
+
48
+ .btn-close:focus:not(:focus-visible) {
49
+ box-shadow: none;
50
+ }
51
+
52
+ .btn-close:disabled,
53
+ .btn-close.disabled {
54
+ pointer-events: none;
55
+ opacity: var(--moo-disabled-control-opacity);
56
+ }
@@ -0,0 +1,44 @@
1
+ /* Collapsible */
2
+ .collapsible {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: $spacer * 0.5;
6
+ width: 100%;
7
+ max-width: 100%;
8
+ min-width: 0;
9
+ }
10
+
11
+ .collapsible-header {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ padding-inline: $spacer * 0.5;
16
+ gap: $spacer * 0.5;
17
+ }
18
+
19
+ .collapsible-title {
20
+ margin-bottom: 0;
21
+ font-size: $font-size-sm;
22
+ font-weight: $font-weight-medium;
23
+ color: var(--moo-foreground);
24
+ }
25
+
26
+ .collapsible .btn[data-bs-toggle='collapse'] {
27
+ color: var(--moo-muted-foreground);
28
+ line-height: 1;
29
+ }
30
+
31
+ .collapsible .btn[data-bs-toggle='collapse'] [data-icon] {
32
+ width: $font-size-base;
33
+ height: $font-size-base;
34
+ }
35
+
36
+
37
+ .collapsible-content {
38
+ padding: $spacer * 0.5 $spacer * 0.75;
39
+ border: var(--bs-border-width) solid var(--bs-border-color);
40
+ border-radius: var(--bs-border-radius);
41
+ font-size: $font-size-sm;
42
+ color: var(--moo-muted-foreground);
43
+ width: 100%;
44
+ }
@@ -0,0 +1,253 @@
1
+ /* Combobox */
2
+ .combobox {
3
+ --moo-combobox-width: #{$moo-combobox-width};
4
+ --moo-combobox-multiple-width: #{$moo-combobox-multiple-width};
5
+ --moo-combobox-menu-max-height: #{$moo-combobox-menu-max-height};
6
+ --moo-combobox-option-line-height: #{$moo-combobox-option-line-height};
7
+ --moo-combobox-description-font-size: #{$moo-combobox-description-font-size};
8
+
9
+ width: 100%;
10
+ max-width: var(--moo-combobox-width);
11
+ }
12
+
13
+ .combobox--multiple {
14
+ max-width: var(--moo-combobox-multiple-width);
15
+ }
16
+
17
+ .combobox-control {
18
+ position: relative;
19
+ width: 100%;
20
+ }
21
+
22
+ .combobox-control:has(.combobox-input:disabled) {
23
+ opacity: var(--moo-disabled-control-opacity);
24
+ }
25
+
26
+ .combobox-control:has(.combobox-input:disabled) .combobox-input:disabled {
27
+ opacity: 1;
28
+ }
29
+
30
+ .combobox-input {
31
+ padding-inline-end: calc(#{$input-padding-x} + #{$input-height});
32
+ }
33
+
34
+ .combobox-input.is-invalid {
35
+ padding-inline-end: calc(#{$input-padding-x} + #{$input-height});
36
+ background-image: none;
37
+ }
38
+
39
+ .combobox-indicator {
40
+ position: absolute;
41
+ inset-block: 0;
42
+ inset-inline-end: 0;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ width: $input-height;
47
+ color: var(--bs-secondary-color);
48
+ pointer-events: none;
49
+ }
50
+
51
+ .combobox-indicator > [data-icon] {
52
+ width: 1rem;
53
+ height: 1rem;
54
+ flex: 0 0 auto;
55
+ }
56
+
57
+ .combobox-clear {
58
+ position: absolute;
59
+ inset-block: 0;
60
+ inset-inline-end: 0;
61
+ display: flex;
62
+ width: $input-height;
63
+ align-items: center;
64
+ justify-content: center;
65
+ padding: 0;
66
+ border: 0;
67
+ background: transparent;
68
+ color: var(--bs-secondary-color);
69
+ cursor: pointer;
70
+ }
71
+
72
+ .combobox-clear:hover,
73
+ .combobox-clear:focus-visible {
74
+ color: var(--bs-body-color);
75
+ }
76
+
77
+ .combobox-clear > [data-icon] {
78
+ width: $small-font-size;
79
+ height: $small-font-size;
80
+ flex: 0 0 auto;
81
+ }
82
+
83
+ .combobox-chips {
84
+ display: flex;
85
+ min-height: $input-height;
86
+ align-items: center;
87
+ gap: $spacer * 0.25;
88
+ flex-wrap: wrap;
89
+ padding-block: $input-padding-y;
90
+ padding-inline: $input-padding-x;
91
+ cursor: text;
92
+ }
93
+
94
+
95
+ .combobox-value {
96
+ display: flex;
97
+ min-width: 0;
98
+ align-items: center;
99
+ gap: $spacer * 0.25;
100
+ flex-wrap: wrap;
101
+ }
102
+
103
+ .combobox-chip {
104
+ display: inline-flex;
105
+ max-width: 100%;
106
+ align-items: center;
107
+ gap: $spacer * 0.25;
108
+ cursor: default;
109
+ }
110
+
111
+ .combobox-chip__label {
112
+ min-width: 0;
113
+ overflow: hidden;
114
+ text-overflow: ellipsis;
115
+ }
116
+
117
+ .combobox-chip__remove {
118
+ display: inline-flex;
119
+ align-items: center;
120
+ justify-content: center;
121
+ padding: 0;
122
+ border: 0;
123
+ border-radius: var(--bs-border-radius-pill);
124
+ background: transparent;
125
+ color: inherit;
126
+ cursor: pointer;
127
+ opacity: 0.65;
128
+ }
129
+
130
+ .combobox-chip__remove:hover,
131
+ .combobox-chip__remove:focus-visible {
132
+ opacity: 1;
133
+ }
134
+
135
+ .combobox-chip__remove > [data-icon] {
136
+ width: $font-size-base;
137
+ height: $font-size-base;
138
+ flex: 0 0 auto;
139
+ }
140
+
141
+ .combobox-chips-input {
142
+ min-width: $input-height * 2.5;
143
+ flex: 1 1 $input-height * 2.5;
144
+ padding: 0;
145
+ border: 0;
146
+ outline: 0;
147
+ background: transparent;
148
+ color: inherit;
149
+ }
150
+
151
+ .combobox-chips-input::placeholder {
152
+ color: var(--bs-tertiary-color);
153
+ }
154
+
155
+ .combobox-menu {
156
+ position: absolute;
157
+ inset-block-start: calc(100% + #{$dropdown-spacer});
158
+ inset-inline-start: 0;
159
+ z-index: $zindex-dropdown;
160
+ width: max-content;
161
+ min-width: 100%;
162
+ max-width: calc(100vw - #{$spacer});
163
+ max-height: var(--moo-combobox-menu-max-height);
164
+ overflow-y: auto;
165
+ overscroll-behavior: contain;
166
+ scrollbar-width: none;
167
+ }
168
+
169
+ .combobox-menu::-webkit-scrollbar {
170
+ display: none;
171
+ }
172
+
173
+ .combobox-option {
174
+ display: grid;
175
+ grid-template-columns: minmax(0, 1fr) $spacer;
176
+ align-items: center;
177
+ gap: $spacer * 0.5;
178
+ padding-inline-end: $dropdown-item-padding-x;
179
+ line-height: var(--moo-combobox-option-line-height);
180
+ }
181
+
182
+ .combobox-option__content {
183
+ display: flex;
184
+ min-width: 0;
185
+ flex: 1 1 auto;
186
+ flex-direction: column;
187
+ }
188
+
189
+ .combobox:not(.combobox--multiple) .combobox-option[aria-selected="true"],
190
+ .combobox-option[aria-current="true"] {
191
+ background-color: var(--bs-dropdown-link-hover-bg);
192
+ }
193
+
194
+ .combobox:not(.combobox--multiple)
195
+ .combobox-menu:has(.combobox-option:not([aria-selected="true"]):hover)
196
+ .combobox-option[aria-selected="true"]:not(:hover):not([aria-current="true"]),
197
+ .combobox:not(.combobox--multiple)
198
+ .combobox-menu:has(.combobox-option[aria-current="true"]:not([aria-selected="true"]))
199
+ .combobox-option[aria-selected="true"]:not([aria-current="true"]) {
200
+ background-color: transparent;
201
+ }
202
+
203
+ .combobox-option[aria-selected="true"] {
204
+ font-weight: $font-weight-medium;
205
+ }
206
+
207
+ .combobox-option__label {
208
+ min-width: 0;
209
+ overflow: hidden;
210
+ text-overflow: ellipsis;
211
+ }
212
+
213
+ .combobox--custom-items .combobox-option__label {
214
+ font-weight: $font-weight-medium;
215
+ }
216
+
217
+ .combobox-option__description {
218
+ min-width: 0;
219
+ overflow: hidden;
220
+ color: var(--bs-secondary-color);
221
+ font-size: var(--moo-combobox-description-font-size);
222
+ line-height: $line-height-base;
223
+ text-overflow: ellipsis;
224
+ }
225
+
226
+ .combobox-option__check {
227
+ display: inline-flex;
228
+ justify-self: end;
229
+ visibility: hidden;
230
+ }
231
+
232
+ .combobox-option[aria-selected="true"] .combobox-option__check {
233
+ visibility: visible;
234
+ }
235
+
236
+ .combobox-option__check > [data-icon] {
237
+ width: 1rem;
238
+ height: 1rem;
239
+ flex: 0 0 auto;
240
+ }
241
+
242
+ .combobox-group-label {
243
+ padding: ($spacer * 0.375) ($spacer * 0.5);
244
+ font-size: var(--moo-combobox-description-font-size);
245
+ font-weight: $font-weight-normal;
246
+ line-height: $spacer;
247
+ }
248
+
249
+ .combobox-empty {
250
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
251
+ color: var(--bs-secondary-color);
252
+ text-align: center;
253
+ }
@@ -0,0 +1,18 @@
1
+ /* Context Menu */
2
+ .context-menu {
3
+ position: relative;
4
+ }
5
+
6
+ .context-menu-trigger:not([data-context-menu-fallback]) {
7
+ cursor: default;
8
+ }
9
+
10
+ .context-menu-trigger[data-context-menu-fallback] {
11
+ position: absolute;
12
+ inset-block-start: 0.5rem;
13
+ inset-inline-end: 0.5rem;
14
+ }
15
+
16
+ ul.context-menu-menu:focus-visible {
17
+ outline: 0;
18
+ }