@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,237 @@
1
+ /* Date Picker */
2
+ .moo-datepicker {
3
+ --moo-datepicker-width: #{$moo-datepicker-width};
4
+ --moo-datepicker-popover-offset: #{$moo-datepicker-popover-offset};
5
+
6
+ position: relative;
7
+ width: 100%;
8
+ max-width: var(--moo-datepicker-width);
9
+ }
10
+
11
+ .moo-datepicker__trigger {
12
+ width: 100%;
13
+ justify-content: flex-start;
14
+ text-align: start;
15
+ }
16
+
17
+ .moo-datepicker__trigger [data-datepicker-label] {
18
+ min-width: 0;
19
+ overflow: hidden;
20
+ text-overflow: ellipsis;
21
+ }
22
+
23
+ .moo-datepicker__trigger.is-invalid {
24
+ border-color: var(--bs-form-invalid-border-color);
25
+ color: var(--bs-form-invalid-color);
26
+ }
27
+
28
+ .moo-datepicker-time-row {
29
+ display: flex;
30
+ flex-wrap: wrap;
31
+ align-items: flex-end;
32
+ gap: $spacer * .75;
33
+ width: 100%;
34
+ }
35
+
36
+ .moo-datepicker-time-row > :first-child {
37
+ min-width: 0;
38
+ }
39
+
40
+ .moo-datepicker-time {
41
+ flex: 0 0 auto;
42
+ width: calc(#{$moo-datepicker-width} / 2);
43
+ max-width: 9rem;
44
+ }
45
+
46
+ .moo-datepicker__popover {
47
+ position: absolute;
48
+ inset-block-start: calc(100% + var(--moo-datepicker-popover-offset));
49
+ inset-inline-start: 0;
50
+ z-index: $zindex-dropdown;
51
+ width: max-content;
52
+ max-width: calc(100vw - #{$spacer});
53
+ padding: $moo-datepicker-padding;
54
+ border: var(--bs-border-width) solid var(--bs-border-color);
55
+ border-radius: var(--bs-border-radius-lg);
56
+ background: var(--bs-body-bg);
57
+ color: var(--bs-body-color);
58
+ box-shadow: var(--bs-box-shadow-lg);
59
+ }
60
+
61
+ .moo-datepicker__popover[hidden] {
62
+ display: none !important;
63
+ }
64
+
65
+ .moo-datepicker__popover.show {
66
+ display: block;
67
+ }
68
+
69
+ .moo-datepicker__popover[data-datepicker-placement] {
70
+ inset: auto;
71
+ }
72
+
73
+ .moo-calendar {
74
+ --moo-datepicker-day-size: #{$moo-datepicker-day-size};
75
+ --moo-datepicker-gap: #{$moo-datepicker-gap};
76
+ --moo-datepicker-padding: #{$moo-datepicker-padding};
77
+ --moo-datepicker-preset-gap: #{$moo-datepicker-preset-gap};
78
+ --moo-datepicker-day-border-radius: #{$moo-datepicker-day-border-radius};
79
+ --moo-datepicker-day-range-joined-border-radius: #{$moo-datepicker-day-range-joined-border-radius};
80
+
81
+ width: calc(var(--moo-datepicker-day-size) * 7 + var(--moo-datepicker-gap) * 6);
82
+ max-width: 100%;
83
+ color: var(--bs-body-color);
84
+ }
85
+
86
+ .moo-calendar__header {
87
+ display: grid;
88
+ grid-template-columns: var(--moo-datepicker-day-size) minmax(0, 1fr) var(--moo-datepicker-day-size);
89
+ align-items: center;
90
+ gap: var(--moo-datepicker-gap);
91
+ margin-bottom: $spacer * 0.75;
92
+ }
93
+
94
+ .moo-calendar__caption {
95
+ display: inline-flex;
96
+ min-width: 0;
97
+ align-items: center;
98
+ justify-content: center;
99
+ gap: var(--moo-datepicker-gap);
100
+ font-weight: $font-weight-medium;
101
+ }
102
+
103
+ .moo-calendar__select {
104
+ min-width: 0;
105
+ height: $input-height-sm;
106
+ padding: 0 $spacer * 0.375;
107
+ border: var(--bs-border-width) solid var(--bs-border-color);
108
+ border-radius: var(--bs-border-radius-sm);
109
+ background: var(--bs-body-bg);
110
+ color: var(--bs-body-color);
111
+ font: inherit;
112
+ }
113
+
114
+ .moo-calendar__nav {
115
+ color: var(--bs-secondary-color);
116
+ }
117
+
118
+ .moo-calendar__nav:hover,
119
+ .moo-calendar__nav:focus-visible {
120
+ color: var(--bs-body-color);
121
+ }
122
+
123
+ .moo-calendar__nav-icon {
124
+ font-size: $font-size-lg;
125
+ line-height: 1;
126
+ }
127
+
128
+ .moo-calendar__weekdays,
129
+ .moo-calendar__week {
130
+ display: grid;
131
+ grid-template-columns: repeat(7, var(--moo-datepicker-day-size));
132
+ gap: var(--moo-datepicker-gap);
133
+ }
134
+
135
+ .moo-calendar__week + .moo-calendar__week {
136
+ margin-top: var(--moo-datepicker-gap);
137
+ }
138
+
139
+ .moo-calendar__weekdays {
140
+ margin-bottom: var(--moo-datepicker-gap);
141
+ }
142
+
143
+ .moo-calendar__weekday {
144
+ display: inline-flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ width: var(--moo-datepicker-day-size);
148
+ height: $spacer * 1.5;
149
+ color: var(--bs-secondary-color);
150
+ font-size: $font-size-sm;
151
+ font-weight: $font-weight-medium;
152
+ }
153
+
154
+ .moo-calendar__cell {
155
+ position: relative;
156
+ width: var(--moo-datepicker-day-size);
157
+ height: var(--moo-datepicker-day-size);
158
+ }
159
+
160
+ .moo-calendar__day {
161
+ position: relative;
162
+ display: inline-flex;
163
+ width: var(--moo-datepicker-day-size);
164
+ height: var(--moo-datepicker-day-size);
165
+ align-items: center;
166
+ justify-content: center;
167
+ padding: 0;
168
+ border: 0;
169
+ border-radius: var(--moo-datepicker-day-border-radius);
170
+ background: transparent;
171
+ color: var(--bs-body-color);
172
+ font: inherit;
173
+ line-height: 1;
174
+ }
175
+
176
+ .moo-calendar__day:hover:not(:disabled),
177
+ .moo-calendar__day:focus-visible {
178
+ background: var(--moo-muted-surface);
179
+ outline: 0;
180
+ }
181
+
182
+ .moo-calendar__day:focus-visible {
183
+ box-shadow: $moo-datepicker-day-focus-ring-shadow;
184
+ }
185
+
186
+ .moo-calendar__day[data-calendar-selected="true"] {
187
+ background: var(--moo-primary);
188
+ color: var(--moo-primary-foreground);
189
+ }
190
+
191
+ .moo-calendar__day[data-calendar-selected="true"]:hover:not(:disabled),
192
+ .moo-calendar__day[data-calendar-selected="true"]:focus-visible {
193
+ background: var(--moo-primary);
194
+ color: var(--moo-primary-foreground);
195
+ }
196
+
197
+ .moo-calendar__day[data-calendar-range="middle"] {
198
+ border-radius: var(--moo-datepicker-day-range-joined-border-radius);
199
+ background: color-mix(in srgb, var(--moo-primary) 14%, transparent);
200
+ color: var(--bs-body-color);
201
+ }
202
+
203
+ .moo-calendar__day[data-calendar-range="start"] {
204
+ border-start-end-radius: var(--moo-datepicker-day-range-joined-border-radius);
205
+ border-end-end-radius: var(--moo-datepicker-day-range-joined-border-radius);
206
+ }
207
+
208
+ .moo-calendar__day[data-calendar-range="end"] {
209
+ border-start-start-radius: var(--moo-datepicker-day-range-joined-border-radius);
210
+ border-end-start-radius: var(--moo-datepicker-day-range-joined-border-radius);
211
+ }
212
+
213
+ .moo-calendar__day[data-calendar-outside="true"] {
214
+ color: var(--bs-secondary-color);
215
+ }
216
+
217
+ .moo-calendar__day[data-calendar-today="true"]:not([data-calendar-selected="true"]) {
218
+ outline: var(--bs-border-width) solid var(--bs-border-color);
219
+ outline-offset: calc(-1 * var(--bs-border-width));
220
+ }
221
+
222
+ .moo-calendar__day:disabled {
223
+ color: var(--moo-disabled-foreground);
224
+ cursor: default;
225
+ opacity: var(--moo-disabled-control-opacity);
226
+ }
227
+
228
+ .moo-calendar__presets {
229
+ display: flex;
230
+ flex-wrap: wrap;
231
+ gap: var(--moo-datepicker-preset-gap);
232
+ margin-top: $spacer * 0.75;
233
+ }
234
+
235
+ .moo-calendar__preset {
236
+ flex: 0 0 auto;
237
+ }
@@ -0,0 +1,69 @@
1
+ /* Dialog */
2
+ .modal {
3
+ --bs-modal-border-radius: var(--bs-border-radius-xl);
4
+ --bs-modal-border-color: var(--moo-border);
5
+ --bs-modal-header-border-width: 0;
6
+ --bs-modal-footer-border-color: var(--moo-border);
7
+ --bs-modal-footer-bg: color-mix(in srgb, var(--bs-secondary-bg) 50%, transparent);
8
+ --bs-modal-title-line-height: 1;
9
+ }
10
+
11
+ .modal[tabindex]:focus-visible {
12
+ outline: none;
13
+ }
14
+
15
+ .modal-content {
16
+ box-shadow: var(--bs-box-shadow-lg);
17
+ }
18
+
19
+ .modal-title {
20
+ font-size: 1rem;
21
+ font-weight: $font-weight-medium;
22
+ }
23
+
24
+ .modal-header {
25
+ gap: calc(var(--bs-modal-padding) * 0.75);
26
+ }
27
+
28
+ .modal-header:has(> .btn-close) {
29
+ position: relative;
30
+ padding-inline-end: calc(
31
+ var(--bs-modal-padding) + #{$btn-close-width} + #{$btn-close-padding-x * 2} + 0.5rem
32
+ );
33
+ }
34
+
35
+ .modal-header:has(> .btn-close) > .btn-close {
36
+ position: absolute;
37
+ inset-block-start: 0.5rem;
38
+ inset-inline-end: 0.5rem;
39
+ margin: 0;
40
+ }
41
+
42
+ .modal--alert {
43
+ --bs-modal-width: 24rem;
44
+ --bs-modal-padding: 1rem;
45
+ --bs-modal-footer-bg: color-mix(in srgb, var(--bs-secondary-bg) 50%, transparent);
46
+ }
47
+
48
+ .modal-header--alert {
49
+ align-items: flex-start;
50
+ padding: var(--bs-modal-padding);
51
+ }
52
+
53
+ .modal-header__content {
54
+ min-width: 0;
55
+ }
56
+
57
+ .modal-description {
58
+ margin-top: calc(var(--bs-modal-padding) * 0.375);
59
+ margin-bottom: 0;
60
+ color: var(--bs-secondary-color);
61
+ }
62
+
63
+ .modal--alert .modal-footer {
64
+ padding: var(--bs-modal-padding);
65
+ }
66
+
67
+ .modal-footer {
68
+ padding: $spacer;
69
+ }
@@ -0,0 +1,201 @@
1
+ /* Dropdown */
2
+ .dropdown-menu {
3
+ --bs-dropdown-bg: var(--moo-surface);
4
+ --bs-dropdown-border-color: var(--moo-border);
5
+ --bs-dropdown-border-radius: var(--bs-border-radius-lg);
6
+ --bs-dropdown-box-shadow: var(--bs-box-shadow);
7
+ --bs-dropdown-link-color: var(--moo-foreground);
8
+ --bs-dropdown-link-hover-color: var(--moo-foreground);
9
+ --bs-dropdown-link-hover-bg: var(--moo-muted-surface);
10
+ --bs-dropdown-link-active-color: var(--moo-foreground);
11
+ --bs-dropdown-link-active-bg: var(--moo-muted-surface);
12
+ --bs-dropdown-link-disabled-color: var(--moo-disabled-foreground);
13
+ --bs-dropdown-header-color: var(--moo-muted-foreground);
14
+
15
+ box-shadow: var(--bs-dropdown-box-shadow);
16
+ }
17
+
18
+ .dropdown-item {
19
+ --bs-dropdown-item-border-radius: var(--bs-border-radius);
20
+
21
+ display: flex;
22
+ align-items: center;
23
+ gap: $spacer * 0.5;
24
+ }
25
+
26
+ .dropdown-item:focus:not(:focus-visible):not(:hover) {
27
+ color: var(--bs-dropdown-link-color);
28
+ background-color: transparent;
29
+ }
30
+
31
+ .dropdown-menu:has(.dropdown-item:hover) .dropdown-item.active:not(:hover) {
32
+ background-color: transparent;
33
+ }
34
+
35
+ .dropdown-item > [data-icon] {
36
+ width: 1rem;
37
+ height: 1rem;
38
+ flex: 0 0 auto;
39
+ }
40
+
41
+ .dropdown-item[data-variant="destructive"] {
42
+ color: var(--moo-destructive) !important;
43
+ }
44
+
45
+ .dropdown-item[data-variant="destructive"]:hover,
46
+ .dropdown-item[data-variant="destructive"]:focus {
47
+ color: var(--moo-destructive) !important;
48
+ background-color: var(--moo-destructive-surface) !important;
49
+ }
50
+
51
+ .dropdown-item[data-variant="destructive"] > [data-icon] {
52
+ color: var(--moo-destructive) !important;
53
+ }
54
+
55
+ .dropdown-menu .dropdown-divider {
56
+ margin-inline: calc(-1 * var(--bs-dropdown-padding-x));
57
+ border-block-start: var(--bs-border-width) solid var(--bs-dropdown-divider-bg);
58
+ }
59
+
60
+ .dropdown-item-check.active {
61
+ color: var(--bs-dropdown-link-color);
62
+ background-color: transparent;
63
+ }
64
+
65
+ .dropdown-item-check.active:hover,
66
+ .dropdown-item-check.active:focus {
67
+ color: var(--bs-dropdown-link-hover-color);
68
+ background-color: var(--bs-dropdown-link-hover-bg);
69
+ }
70
+
71
+ .dropdown-item-check__indicator {
72
+ --moo-dropdown-item-check-border-radius: #{$moo-dropdown-item-check-border-radius};
73
+
74
+ display: inline-flex;
75
+ flex: 0 0 auto;
76
+ align-items: center;
77
+ justify-content: center;
78
+ width: $form-check-input-width;
79
+ height: $form-check-input-width;
80
+ border: var(--bs-border-width) solid var(--bs-border-color);
81
+ border-radius: var(--moo-dropdown-item-check-border-radius);
82
+ color: transparent;
83
+ }
84
+
85
+ .dropdown-item-check.active .dropdown-item-check__indicator {
86
+ background-color: var(--moo-foreground);
87
+ border-color: var(--moo-foreground);
88
+ color: var(--moo-surface);
89
+ }
90
+
91
+ .dropdown-item-check__indicator > [data-icon] {
92
+ width: 0.75rem;
93
+ height: 0.75rem;
94
+ }
95
+
96
+ .dropdown-item-check--radio .dropdown-item-check__indicator {
97
+ border-color: transparent;
98
+ background-color: transparent;
99
+ }
100
+
101
+ .dropdown-item-check--radio.active .dropdown-item-check__indicator {
102
+ background-color: transparent;
103
+ border-color: transparent;
104
+ color: var(--bs-dropdown-link-color);
105
+ }
106
+
107
+ .dropdown-item__icon-box {
108
+ --moo-dropdown-item-icon-size: #{$moo-dropdown-item-icon-size};
109
+
110
+ display: flex;
111
+ flex: 0 0 auto;
112
+ align-items: center;
113
+ justify-content: center;
114
+ width: var(--moo-dropdown-item-icon-size);
115
+ height: var(--moo-dropdown-item-icon-size);
116
+ border: var(--bs-border-width) solid var(--moo-border);
117
+ border-radius: var(--bs-border-radius);
118
+ }
119
+
120
+ .dropdown-item__icon-box > [data-icon] {
121
+ width: 0.875rem;
122
+ height: 0.875rem;
123
+ }
124
+
125
+ [data-slot="sidebar-header"] .dropdown-menu,
126
+ [data-slot="sidebar-footer"] .dropdown-menu {
127
+ --moo-dropdown-sidebar-min-width: #{$moo-dropdown-sidebar-min-width};
128
+
129
+ min-width: #{unquote("max(100%, var(--moo-dropdown-sidebar-min-width))")};
130
+ }
131
+
132
+ [data-identity-trigger="1"] + .dropdown-menu {
133
+ --moo-dropdown-sidebar-min-width: #{$moo-dropdown-sidebar-min-width};
134
+ min-width: var(--moo-dropdown-sidebar-min-width);
135
+ }
136
+
137
+ @include media-breakpoint-down(sm) {
138
+ [data-slot="sidebar-header"] .dropend > .dropdown-menu,
139
+ [data-slot="sidebar-footer"] .dropend > .dropdown-menu {
140
+ left: 0 !important;
141
+ right: 0 !important;
142
+ min-width: 100%;
143
+ margin: 0;
144
+ transform: none !important;
145
+ }
146
+
147
+ [data-slot="sidebar-header"] .dropend > .dropdown-menu {
148
+ top: calc(100% + #{$spacer * 0.25}) !important;
149
+ bottom: auto !important;
150
+ }
151
+
152
+ [data-slot="sidebar-footer"] .dropend > .dropdown-menu {
153
+ top: auto !important;
154
+ bottom: calc(100% + #{$spacer * 0.25}) !important;
155
+ }
156
+ }
157
+
158
+ @include media-breakpoint-between(sm, lg) {
159
+ [data-slot="sidebar-header"] .dropend > .dropdown-menu,
160
+ [data-slot="sidebar-footer"] .dropend > .dropdown-menu {
161
+ left: 0 !important;
162
+ right: 0 !important;
163
+ min-width: 100%;
164
+ margin: 0;
165
+ transform: none !important;
166
+ }
167
+
168
+ [data-slot="sidebar-header"] .dropend > .dropdown-menu {
169
+ top: calc(100% + #{$spacer * 0.25}) !important;
170
+ bottom: auto !important;
171
+ }
172
+
173
+ [data-slot="sidebar-footer"] .dropend > .dropdown-menu {
174
+ top: auto !important;
175
+ bottom: calc(100% + #{$spacer * 0.25}) !important;
176
+ }
177
+ }
178
+
179
+ @include media-breakpoint-up(lg) {
180
+ [data-slot="sidebar-header"] [data-sidebar-dropdown-positioned] > .dropdown-menu,
181
+ [data-slot="sidebar-footer"] [data-sidebar-dropdown-positioned] > .dropdown-menu {
182
+ position: fixed !important;
183
+ z-index: $zindex-dropdown;
184
+ left: var(--moo-sidebar-dropdown-left, auto) !important;
185
+ right: var(--moo-sidebar-dropdown-right, auto) !important;
186
+ width: var(--moo-dropdown-sidebar-min-width);
187
+ min-width: var(--moo-dropdown-sidebar-min-width);
188
+ margin: 0;
189
+ transform: none !important;
190
+ }
191
+
192
+ [data-slot="sidebar-header"] [data-sidebar-dropdown-positioned] > .dropdown-menu {
193
+ inset-block-start: var(--moo-sidebar-dropdown-block-start) !important;
194
+ }
195
+
196
+ [data-slot="sidebar-footer"] [data-sidebar-dropdown-positioned] > .dropdown-menu {
197
+ inset-block-start: auto !important;
198
+ inset-block-end: var(--moo-sidebar-dropdown-block-end) !important;
199
+ }
200
+
201
+ }
@@ -0,0 +1,94 @@
1
+ /* Field */
2
+ .field {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: $moo-field-gap;
6
+
7
+ > .form-label {
8
+ margin-bottom: 0;
9
+ font-weight: $font-weight-medium;
10
+ }
11
+
12
+ &[data-invalid="true"] {
13
+ color: var(--bs-form-invalid-color);
14
+ }
15
+ }
16
+
17
+ .field--switch {
18
+ flex-direction: row;
19
+ align-items: flex-start;
20
+ justify-content: space-between;
21
+ gap: $moo-field-switch-gap;
22
+
23
+ > :first-child {
24
+ min-width: 0;
25
+ }
26
+
27
+ > label {
28
+ flex: 0 0 auto;
29
+ margin: 0;
30
+ }
31
+
32
+ .form-label {
33
+ margin-bottom: $moo-field-gap * 0.5;
34
+ font-weight: $font-weight-medium;
35
+ }
36
+ }
37
+
38
+ .field--disabled {
39
+ opacity: $moo-disabled-control-opacity;
40
+ pointer-events: none;
41
+ }
42
+
43
+ .field-description,
44
+ .field-error {
45
+ margin-top: 0;
46
+ font-size: $font-size-base;
47
+ }
48
+
49
+ .field-group {
50
+ display: flex;
51
+ flex-direction: column;
52
+ gap: $moo-field-group-gap;
53
+
54
+ > hr {
55
+ margin-block: 0;
56
+ }
57
+
58
+ &.row {
59
+ flex-direction: row;
60
+ gap: 0;
61
+ }
62
+ }
63
+
64
+ .field-form {
65
+ display: flex;
66
+ flex-direction: column;
67
+ gap: $moo-field-form-gap;
68
+ }
69
+
70
+ .field-legend {
71
+ font-size: $moo-field-legend-font-size;
72
+ font-weight: $font-weight-medium;
73
+ margin-bottom: $moo-field-legend-margin-bottom;
74
+ }
75
+
76
+ .field-fieldset > * + * {
77
+ margin-top: $moo-field-fieldset-gap;
78
+ }
79
+
80
+ .field-fieldset > .field-legend + .field-description {
81
+ margin-top: 0;
82
+ }
83
+
84
+ .field-fieldset + .field-fieldset {
85
+ margin-top: $moo-field-fieldset-sibling-gap;
86
+ }
87
+
88
+ .field-form > .field-fieldset + .field-fieldset {
89
+ margin-top: 0;
90
+ }
91
+
92
+ .field-fieldset + hr {
93
+ opacity: $moo-field-separator-opacity;
94
+ }
@@ -0,0 +1,31 @@
1
+ /* Input */
2
+ .form-control {
3
+ min-height: $input-height;
4
+ }
5
+
6
+ .form-control:not(textarea):not([type="file"]):not(.form-control-sm, .form-control-lg) {
7
+ min-height: calc(#{$input-height} + #{$input-border-width} * 2);
8
+ }
9
+
10
+ .form-control[type="file"]:not(.form-control-sm, .form-control-lg)::file-selector-button {
11
+ min-height: calc(#{$input-height} - #{$input-border-width} * 2);
12
+ }
13
+
14
+ .form-control[type="time"] {
15
+ appearance: none;
16
+ position: relative;
17
+ }
18
+
19
+ .form-control[type="time"]::-webkit-calendar-picker-indicator {
20
+ position: absolute;
21
+ inset: 0;
22
+ width: 100%;
23
+ height: 100%;
24
+ opacity: 0;
25
+ cursor: pointer;
26
+ }
27
+
28
+ .form-control:disabled,
29
+ .form-select:disabled {
30
+ opacity: var(--moo-disabled-control-opacity);
31
+ }