@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,27 @@
1
+ [data-page-container] {
2
+ container: moo-page / inline-size;
3
+ }
4
+
5
+ [data-page-container] [data-page-show-from] {
6
+ display: none !important;
7
+ }
8
+
9
+ @each $breakpoint, $min-width in $grid-breakpoints {
10
+ @if $breakpoint != xs {
11
+ @container moo-page (min-width: #{$min-width}) {
12
+ @for $span from 1 through $grid-columns {
13
+ [data-page-container] .row[data-layout="page-grid"] > [data-page-col-#{$breakpoint}="#{$span}"] {
14
+ width: percentage(divide($span, $grid-columns));
15
+ }
16
+ }
17
+
18
+ [data-page-container] [data-page-show-from="#{$breakpoint}"] {
19
+ display: block !important;
20
+ }
21
+
22
+ [data-page-container] [data-page-hide-from="#{$breakpoint}"] {
23
+ display: none !important;
24
+ }
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,84 @@
1
+
2
+ .sidebar {
3
+ --moo-sidebar-width: #{$moo-sidebar-width};
4
+ --moo-sidebar-width-icon: #{$moo-sidebar-width-icon};
5
+ --bs-offcanvas-width: var(--moo-sidebar-width);
6
+ flex: 0 0 var(--moo-sidebar-width);
7
+ width: var(--moo-sidebar-width);
8
+ color: var(--moo-sidebar-foreground);
9
+ }
10
+
11
+ .sidebar-rail {
12
+ position: absolute;
13
+ inset-block: 0;
14
+ inset-inline-end: 0;
15
+ z-index: 20;
16
+ width: $spacer;
17
+ padding: 0;
18
+ transform: translateX(50%);
19
+ border: 0;
20
+ background: transparent;
21
+ cursor: pointer;
22
+ }
23
+
24
+ .sidebar:dir(rtl) .sidebar-rail {
25
+ transform: translateX(-50%);
26
+ }
27
+
28
+ .sidebar-rail::after {
29
+ content: "";
30
+ position: absolute;
31
+ inset-block: 0;
32
+ inset-inline-start: 50%;
33
+ width: var(--bs-border-width);
34
+ background: transparent;
35
+ transition: background 0.15s ease;
36
+ }
37
+
38
+ .sidebar-rail:hover::after {
39
+ background: var(--moo-sidebar-border);
40
+ }
41
+
42
+ .wrapper[data-layout="app"][data-shell-mode="contained"] .sidebar-inner {
43
+ position: relative;
44
+ height: 100%;
45
+ max-height: 100%;
46
+ }
47
+
48
+ @include media-breakpoint-up(lg) {
49
+ .sidebar {
50
+ position: relative;
51
+ }
52
+
53
+ .sidebar.offcanvas-lg[data-collapsible="offcanvas"] {
54
+ visibility: visible;
55
+ transform: none;
56
+ }
57
+
58
+ .wrapper[data-layout="app"][data-sidebar-state="collapsed"] > .sidebar.offcanvas-lg[data-collapsible="offcanvas"] {
59
+ flex-basis: 0;
60
+ width: 0;
61
+ overflow: hidden;
62
+ visibility: hidden;
63
+ }
64
+
65
+ .wrapper[data-layout="app"]:has([data-sidebar-dropdown-positioned] > .dropdown-menu.show) > .sidebar {
66
+ position: relative;
67
+ z-index: $zindex-fixed + 1;
68
+ }
69
+
70
+ .wrapper[data-layout="app"]:has([data-sidebar-dropdown-positioned] > .dropdown-menu.show) > .sidebar > .sidebar-inner {
71
+ z-index: $zindex-fixed + 1;
72
+ }
73
+
74
+ .wrapper[data-layout="app"][data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] {
75
+ flex-basis: var(--moo-sidebar-width-icon);
76
+ width: var(--moo-sidebar-width-icon);
77
+ }
78
+ }
79
+
80
+ @include media-breakpoint-down(lg) {
81
+ .sidebar-rail {
82
+ display: none;
83
+ }
84
+ }
@@ -0,0 +1,20 @@
1
+
2
+ .sidebar[data-side="left"]:not([data-variant="inset"]) .sidebar-inner {
3
+ border-right: var(--bs-border-width) solid var(--moo-sidebar-border);
4
+ }
5
+
6
+ .sidebar[data-side="right"] {
7
+ order: 1;
8
+ }
9
+
10
+ .wrapper[data-layout="app"]:dir(rtl) > .sidebar[data-side="left"] {
11
+ order: 1;
12
+ }
13
+
14
+ .wrapper[data-layout="app"]:dir(rtl) > .sidebar[data-side="right"] {
15
+ order: 0;
16
+ }
17
+
18
+ .sidebar[data-side="right"]:not([data-variant="inset"]) .sidebar-inner {
19
+ border-left: var(--bs-border-width) solid var(--moo-sidebar-border);
20
+ }
@@ -0,0 +1,36 @@
1
+
2
+ @include media-breakpoint-up(lg) {
3
+ :where(.wrapper[data-layout="app"][data-sidebar-ready]) > .sidebar {
4
+ transition: flex-basis 0.2s ease, width 0.2s ease;
5
+ }
6
+
7
+ .sidebar[data-variant="floating"] .sidebar-inner {
8
+ width: auto;
9
+ height: calc(100svh - #{$spacer});
10
+ max-height: calc(100svh - #{$spacer});
11
+ margin: $spacer * 0.5;
12
+ border: var(--bs-border-width) solid var(--moo-sidebar-border);
13
+ border-radius: var(--bs-border-radius-lg);
14
+ box-shadow: var(--bs-box-shadow-sm);
15
+ }
16
+
17
+ .wrapper[data-layout="app"][data-shell-mode="contained"] .sidebar[data-variant="floating"] .sidebar-inner {
18
+ height: calc(100% - #{$spacer});
19
+ max-height: calc(100% - #{$spacer});
20
+ }
21
+
22
+ .wrapper[data-layout="app"][data-sidebar-state="collapsed"] .sidebar[data-variant="floating"][data-collapsible="icon"] {
23
+ flex-basis: calc(var(--moo-sidebar-width-icon) + #{$spacer});
24
+ width: calc(var(--moo-sidebar-width-icon) + #{$spacer});
25
+ }
26
+
27
+ .wrapper[data-layout="app"][data-sidebar-state="collapsed"] .sidebar[data-variant="floating"][data-collapsible="icon"] .sidebar-inner {
28
+ box-shadow: var(--bs-box-shadow);
29
+ }
30
+ }
31
+
32
+ @media (prefers-reduced-motion: reduce) {
33
+ .sidebar {
34
+ transition: none;
35
+ }
36
+ }
@@ -0,0 +1,32 @@
1
+
2
+ @include media-breakpoint-up(lg) {
3
+ .wrapper[data-layout="app"]:has(> .sidebar[data-variant="inset"]) {
4
+ background: var(--moo-sidebar);
5
+ }
6
+
7
+ .wrapper[data-layout="app"]:has(> .sidebar[data-variant="inset"]) > [data-slot="page"] {
8
+ margin: $spacer * 0.5;
9
+ margin-left: 0;
10
+ border-radius: var(--bs-border-radius-xl);
11
+ box-shadow: var(--bs-box-shadow-sm);
12
+ background: var(--bs-body-bg);
13
+ }
14
+
15
+ .wrapper[data-layout="app"]:has(> .sidebar[data-variant="inset"]) > [data-slot="page"] > header {
16
+ border-top-left-radius: inherit;
17
+ border-top-right-radius: inherit;
18
+ }
19
+
20
+ .wrapper[data-layout="app"][data-sidebar-state="collapsed"]:has(> .sidebar[data-variant="inset"]) > [data-slot="page"] {
21
+ margin-left: $spacer * 0.5;
22
+ }
23
+
24
+ .wrapper[data-layout="app"]:has(> .sidebar[data-variant="inset"][data-side="right"]) > [data-slot="page"] {
25
+ margin-left: $spacer * 0.5;
26
+ margin-right: 0;
27
+ }
28
+
29
+ .wrapper[data-layout="app"][data-sidebar-state="collapsed"]:has(> .sidebar[data-variant="inset"][data-side="right"]) > [data-slot="page"] {
30
+ margin-right: $spacer * 0.5;
31
+ }
32
+ }
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Moo UI v1.0.0-rc.10 (https://wpmoo.org/)
3
+ * Copyright 2026 WPMoo Authors
4
+ * Licensed under MIT (https://github.com/wpmoo-org/ui/blob/main/LICENSE)
5
+ *
6
+ * Bootstrap v5.3.3 (https://getbootstrap.com/)
7
+ * Copyright 2011-2024 The Bootstrap Authors
8
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
9
+ */
@@ -0,0 +1,16 @@
1
+ @import "mixins/banner";
2
+ @import "settings/options";
3
+ @import "bootstrap/scss/functions";
4
+ @import "settings";
5
+ @import "bootstrap/scss/variables";
6
+ @import "bootstrap/scss/variables-dark";
7
+ @import "bootstrap/scss/maps";
8
+ @import "bootstrap/scss/mixins";
9
+ @import "bootstrap/scss/utilities";
10
+ @import "themes/theme";
11
+ /* Global styles */
12
+ @import "foundations/globals";
13
+ @import "foundations/backdrop";
14
+ /* Theme tokens */
15
+ @import "themes/root";
16
+ @import "foundations/scope";
@@ -0,0 +1,54 @@
1
+ @import "mixins/banner";
2
+ @import "settings";
3
+
4
+ /* Bootstrap configuration */
5
+ @import "bootstrap/scss/functions";
6
+ @import "bootstrap/scss/variables";
7
+ @import "bootstrap/scss/variables-dark";
8
+ @import "bootstrap/scss/maps";
9
+ @import "bootstrap/scss/mixins";
10
+ @import "bootstrap/scss/utilities";
11
+ @import "themes/theme";
12
+
13
+ /* Bootstrap layout and standalone-only components */
14
+ @import "bootstrap/scss/root";
15
+ /* Theme tokens */
16
+ @import "themes/root";
17
+ @import "themes/standalone";
18
+ /* Base styles and typography */
19
+ @import "bootstrap/scss/reboot";
20
+ @import "bootstrap/scss/type";
21
+ @import "bootstrap/scss/images";
22
+ /* Containers and grid */
23
+ @import "bootstrap/scss/containers";
24
+ @import "bootstrap/scss/grid";
25
+ @import "bootstrap/scss/forms/form-range";
26
+ @import "bootstrap/scss/forms/floating-labels";
27
+ @import "bootstrap/scss/transitions";
28
+ @import "bootstrap/scss/navbar";
29
+ @import "bootstrap/scss/progress";
30
+ @import "bootstrap/scss/list-group";
31
+ @import "bootstrap/scss/carousel";
32
+ @import "bootstrap/scss/spinners";
33
+ @import "bootstrap/scss/placeholders";
34
+
35
+ /* Bootstrap helpers */
36
+ @import "bootstrap/scss/helpers/clearfix";
37
+ @import "bootstrap/scss/helpers/colored-links";
38
+ @import "bootstrap/scss/helpers/focus-ring";
39
+ @import "bootstrap/scss/helpers/icon-link";
40
+ @import "bootstrap/scss/helpers/ratio";
41
+ @import "bootstrap/scss/helpers/position";
42
+ @import "bootstrap/scss/helpers/stacks";
43
+ @import "bootstrap/scss/helpers/visually-hidden";
44
+ @import "bootstrap/scss/helpers/stretched-link";
45
+ @import "bootstrap/scss/helpers/text-truncation";
46
+ @import "bootstrap/scss/helpers/vr";
47
+
48
+ /* Bootstrap utilities */
49
+ @import "utilities/background_color";
50
+ @import "bootstrap/scss/utilities/api";
51
+
52
+ @import "utilities/scroll_fade_primitives";
53
+ @import "foundations/backdrop";
54
+ @import "foundations/scope";
@@ -0,0 +1,7 @@
1
+ $btn-box-shadow: none !default;
2
+ $btn-focus-box-shadow: none !default;
3
+ $btn-active-box-shadow: none !default;
4
+
5
+ $enable-cssgrid: true !default;
6
+
7
+ $enable-validation-icons: false !default;
@@ -0,0 +1,244 @@
1
+ $nav-link-padding-y: 0.375rem !default;
2
+ $nav-link-padding-x: 0.75rem !default;
3
+ $dropdown-min-width: 8rem !default;
4
+ $dropdown-padding-x: 0.25rem !default;
5
+ $dropdown-padding-y: 0.25rem !default;
6
+ $dropdown-item-padding-y: 0.25rem !default;
7
+ $dropdown-item-padding-x: 0.375rem !default;
8
+ $dropdown-header-padding-x: $dropdown-item-padding-x !default;
9
+ $moo-small-font-size: 0.75rem !default;
10
+ $moo-paragraph-margin-top: 0 !default;
11
+ $moo-combobox-width: 12.5rem !default;
12
+ $moo-combobox-multiple-width: $moo-combobox-width * 1.6 !default;
13
+ $moo-combobox-menu-max-height: $input-height * 8 !default;
14
+ $moo-combobox-option-line-height: 1.25rem !default;
15
+ $moo-combobox-description-font-size: 0.75rem !default;
16
+ $moo-chip-height: 1.25rem !default;
17
+ $badge-font-size: 0.75rem !default;
18
+ $badge-font-weight: 500 !default;
19
+ $badge-padding-y: 0.125rem !default;
20
+ $badge-padding-x: 0.5rem !default;
21
+ $badge-border-radius: var(--bs-border-radius-pill) !default;
22
+ $badge-border-color: transparent !default;
23
+ $kbd-padding-y: 0 !default;
24
+ $kbd-padding-x: 0.25rem !default;
25
+ $kbd-font-size: 0.75rem !default;
26
+ $kbd-color: var(--bs-secondary-text-emphasis) !default;
27
+ $kbd-bg: var(--moo-muted-surface) !default;
28
+ $moo-code-padding-y: 0.125rem !default;
29
+ $moo-code-padding-x: 0.375rem !default;
30
+ $moo-code-color: var(--bs-secondary-text-emphasis) !default;
31
+
32
+ $moo-code-bg: var(--moo-muted-surface) !default;
33
+ $breadcrumb-divider: quote(">") !default;
34
+ $breadcrumb-divider-flipped: quote("<") !default;
35
+ $moo-control-active-translate-y: 0.5px !default;
36
+ $pagination-margin-start: 0.25rem !default;
37
+ $pagination-padding-y: 0 !default;
38
+ $pagination-padding-x: 0 !default;
39
+ $moo-pagination-square-inset: 0.625rem !default;
40
+ $pagination-font-size: 0.875rem !default;
41
+ $pagination-border-radius: var(--bs-border-radius-lg) !default;
42
+ $pagination-color: var(--moo-muted-foreground) !default;
43
+ $pagination-bg: transparent !default;
44
+ $pagination-border-color: transparent !default;
45
+ $pagination-hover-color: var(--bs-body-color) !default;
46
+ $pagination-hover-bg: color-mix(in srgb, var(--moo-muted-surface) 50%, transparent) !default;
47
+ $pagination-hover-border-color: transparent !default;
48
+ $pagination-focus-bg: color-mix(in srgb, var(--moo-muted-surface) 50%, transparent) !default;
49
+ $pagination-active-color: var(--bs-body-color) !default;
50
+ $pagination-active-bg: color-mix(in srgb, var(--moo-muted-surface) 50%, transparent) !default;
51
+ $pagination-active-border-color: var(--moo-border) !default;
52
+ $pagination-disabled-color: var(--moo-disabled-foreground) !default;
53
+ $pagination-disabled-bg: transparent !default;
54
+ $pagination-disabled-border-color: transparent !default;
55
+ $progress-height: 0.25rem !default;
56
+ $progress-bar-color: var(--moo-primary-foreground) !default;
57
+ $progress-bar-bg: var(--moo-primary) !default;
58
+ $form-check-input-width: 1rem !default;
59
+ $form-check-padding-start: 1.5rem !default;
60
+ $moo-form-check-card-description-color: color-mix(in srgb, var(--moo-muted-foreground) 95%, var(--moo-foreground)) !default;
61
+ $form-switch-width: 2rem !default;
62
+ $form-switch-padding-start: 2.5rem !default;
63
+ $moo-switch-height: 1.15rem !default;
64
+ $moo-switch-checked-bg-image-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$moo-primary-foreground-dark}'/></svg>") !default;
65
+ $accordion-button-active-bg: var(--bs-accordion-bg) !default;
66
+ $accordion-button-active-color: var(--bs-accordion-color) !default;
67
+
68
+ $moo-accordion-contained-bg: transparent !default;
69
+ $moo-tabs-list-padding: 0.1875rem !default;
70
+ $moo-tabs-list-gap: 0.125rem !default;
71
+ $moo-tabs-content-gap: 0.75rem !default;
72
+ $moo-tabs-trigger-padding-y: 0.125rem !default;
73
+ $moo-tabs-trigger-padding-x: 0.75rem !default;
74
+
75
+ $moo-menubar-gap: 0.125rem !default;
76
+ $moo-menubar-padding: 0.1875rem !default;
77
+ $card-spacer-y: 0 !default;
78
+ $card-spacer-x: 1.5rem !default;
79
+ $card-cap-padding-y: $card-spacer-y !default;
80
+ $card-cap-padding-x: $card-spacer-x !default;
81
+ $card-title-font-size: 1rem !default;
82
+ $card-title-letter-spacing: -0.01em !default;
83
+ $moo-card-spacing: 1rem !default;
84
+ $moo-card-spacing-sm: 0.75rem !default;
85
+
86
+ $moo-card-bg-mix: 5% !default;
87
+ $moo-card-bg-mix-dark: 30% !default;
88
+
89
+ $moo-card-footer-bg: color-mix(in srgb, var(--bs-secondary-bg) 20%, var(--bs-body-bg)) !default;
90
+ $moo-card-footer-bg-dark: color-mix(in srgb, var(--bs-secondary-bg) 50%, var(--bs-body-bg)) !default;
91
+
92
+ $table-th-font-weight: 500 !default;
93
+
94
+ $avatar-size: 2rem !default;
95
+ $avatar-size-sm: $avatar-size * 0.75 !default;
96
+ $avatar-size-lg: $avatar-size * 1.25 !default;
97
+ $avatar-font-size-sm: 0.75rem !default;
98
+ $avatar-font-size-lg: 1rem !default;
99
+ $avatar-line-height: 1 !default;
100
+ $avatar-group-overlap: -0.5rem !default;
101
+ $avatar-badge-dot-size: 0.625rem !default;
102
+ $avatar-badge-icon-size: $avatar-badge-dot-size !default;
103
+ $avatar-badge-icon-glyph-size: 0.5rem !default;
104
+ $avatar-badge-ring-width: 2px !default;
105
+ $avatar-group-ring-width: 2px !default;
106
+ $avatar-badge-ring-shadow: 0 0 0 $avatar-badge-ring-width var(--bs-body-bg) !default;
107
+ $avatar-group-ring-shadow: 0 0 0 $avatar-group-ring-width var(--bs-body-bg) !default;
108
+ $moo-tooltip-motion-duration: 150ms !default;
109
+ $moo-tooltip-motion-easing: cubic-bezier(0.16, 1, 0.3, 1) !default;
110
+ $moo-tooltip-motion-scale: 0.95 !default;
111
+ $moo-tooltip-motion-translate: 0.25rem !default;
112
+
113
+ $btn-font-weight: 500 !default;
114
+ $btn-font-size: 0.875rem !default;
115
+ $btn-line-height: 1.25rem !default;
116
+ $btn-focus-width: 0.2rem !default;
117
+ $moo-spinner-animation-name: spinner-border !default;
118
+
119
+ $btn-font-size-sm: 0.8rem !default;
120
+ $btn-font-size-lg: 0.875rem !default;
121
+
122
+ $btn-padding-y: 0.3125rem !default;
123
+ $btn-padding-x: 0.625rem !default;
124
+ $btn-padding-y-sm: 0.3125rem !default;
125
+ $btn-padding-x-sm: 0.625rem !default;
126
+ $btn-padding-y-lg: 0.4375rem !default;
127
+ $btn-padding-x-lg: 0.625rem !default;
128
+
129
+ $moo-search-trigger-height: 2rem !default;
130
+ $moo-search-trigger-width: 10rem !default;
131
+ $moo-search-trigger-width-lg: 13rem !default;
132
+ $moo-search-trigger-width-xxl: 16rem !default;
133
+ $moo-search-trigger-padding-y: 0.5rem !default;
134
+ $moo-search-trigger-padding-x: 0.75rem !default;
135
+ $moo-search-trigger-border-color: transparent !default;
136
+ $moo-search-trigger-label-gap: 0.5rem !default;
137
+ $moo-search-trigger-shortcut-gap: 0.25rem !default;
138
+ $moo-btn-icon-size: calc(
139
+ var(--bs-btn-line-height) +
140
+ var(--bs-btn-padding-y) * 2 +
141
+ var(--bs-btn-border-width) * 2
142
+ ) !default;
143
+
144
+ $btn-close-width: 0.75rem !default;
145
+ $btn-close-height: $btn-close-width !default;
146
+ $btn-close-padding-x: 0.34375rem !default;
147
+ $btn-close-padding-y: $btn-close-padding-x !default;
148
+ $btn-close-opacity: 1 !default;
149
+ $btn-close-hover-opacity: $btn-close-opacity !default;
150
+ $btn-close-focus-opacity: $btn-close-opacity !default;
151
+ $btn-close-disabled-opacity: $moo-disabled-control-opacity !default;
152
+ $moo-close-button-border-color: transparent !default;
153
+ $moo-close-button-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{$black}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>") !default;
154
+
155
+ $focus-ring-width: 2px !default;
156
+
157
+ $moo-form-focus-ring-width: 3px !default;
158
+ $moo-form-focus-ring-color: var(--moo-ring) !default;
159
+
160
+ $moo-overlay-motion-duration: .3s !default;
161
+ $modal-transition: transform var(--moo-overlay-motion-duration, #{$moo-overlay-motion-duration}) ease-out !default;
162
+ $offcanvas-transition-duration: var(--moo-overlay-motion-duration, #{$moo-overlay-motion-duration}) !default;
163
+ $moo-overlay-backdrop-opacity: 1 !default;
164
+ $moo-overlay-backdrop-bg: color-mix(in srgb, #0a0a0a 10%, transparent) !default;
165
+ $moo-overlay-backdrop-filter: blur(6px) !default;
166
+
167
+ $box-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !default;
168
+ $box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1) !default;
169
+ $box-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1) !default;
170
+
171
+ $border-radius-xl: 0.75rem !default;
172
+
173
+ $moo-sidebar-width: 16rem !default;
174
+ $moo-sidebar-width-icon: 3rem !default;
175
+
176
+ $moo-dropdown-item-icon-size: 1.5rem !default;
177
+
178
+ $moo-dropdown-sidebar-min-width: 14rem !default;
179
+
180
+ $moo-dropdown-item-check-border-radius: .25em !default;
181
+
182
+ $moo-field-gap: 0.5rem !default;
183
+ $moo-field-group-gap: 1.25rem !default;
184
+ $moo-field-switch-gap: $moo-field-group-gap !default;
185
+ $moo-field-form-gap: $moo-field-group-gap !default;
186
+ $moo-field-fieldset-gap: 1rem !default;
187
+ $moo-field-fieldset-sibling-gap: $moo-field-group-gap !default;
188
+ $moo-field-legend-font-size: 1rem !default;
189
+ $moo-field-legend-margin-bottom: 0.375rem !default;
190
+ $moo-field-separator-opacity: 0.1 !default;
191
+
192
+ $moo-datepicker-width: 17.5rem !default;
193
+ $moo-datepicker-popover-offset: 0.375rem !default;
194
+
195
+ $moo-datepicker-day-size: 2rem !default;
196
+ $moo-datepicker-gap: 0.25rem !default;
197
+ $moo-datepicker-padding: 0.75rem !default;
198
+ $moo-datepicker-preset-gap: 0.375rem !default;
199
+ $moo-datepicker-day-border-radius: var(--bs-border-radius-sm) !default;
200
+ $moo-datepicker-day-range-joined-border-radius: 0 !default;
201
+ $moo-datepicker-day-focus-ring-shadow: 0 0 0 #{$moo-form-focus-ring-width} color-mix(in srgb, #{$moo-form-focus-ring-color} 50%, transparent) !default;
202
+
203
+ $moo-datatable-bulk-actions-hover-scale: 1.02 !default;
204
+ $moo-datatable-bulk-actions-backdrop-blur: 8px !default;
205
+
206
+ $moo-datatable-bulk-actions-bottom: 1rem !default;
207
+ $moo-table-contained-bg: transparent !default;
208
+ $moo-datatable-min-width: 48rem !default;
209
+ $moo-datatable-release-review-min-width: 64rem !default;
210
+ $moo-datatable-card-min-width: 20rem !default;
211
+ $moo-datatable-card-label-width: 7rem !default;
212
+ $moo-datatable-responsive-breakpoint: () !default;
213
+ $moo-datatable-actions-cell-fade-width: 1.25rem !default;
214
+ $moo-datatable-actions-cell-bg: var(--bs-body-bg) !default;
215
+ $moo-datatable-frame-header-min-height: 2.78125rem !default;
216
+ $moo-datatable-select-checkbox-size: 1rem !default;
217
+ $moo-datatable-facet-item-border-radius: .25em !default;
218
+ $moo-datatable-select-cell-inset: ($moo-datatable-frame-header-min-height - $moo-datatable-select-checkbox-size) * 0.5 - 0.0625rem !default;
219
+ $moo-datatable-table-select-all-offset-y: 0.046875rem !default;
220
+ $moo-datatable-toolbar-control-height: calc(#{$input-height} + var(--bs-border-width) * 2) !default;
221
+ $moo-datatable-icon-label-gap: 0.5rem !default;
222
+ $moo-datatable-search-filter-menu-width: 12.5rem !default;
223
+ $moo-datatable-search-filter-options-menu-width: 17rem !default;
224
+ $moo-datatable-facet-menu-min-width: 12.5rem !default;
225
+ $moo-datatable-facet-trigger-font-size: $btn-font-size-sm !default;
226
+ $moo-datatable-facet-trigger-min-height: 2rem !default;
227
+ $moo-datatable-facet-item-height: 2rem !default;
228
+ $moo-datatable-facet-options-max-height: $moo-datatable-facet-item-height * 10 !default;
229
+ $moo-scrollbar-thin-size: 0.375rem !default;
230
+ $moo-datatable-scrollbar-size: $moo-scrollbar-thin-size !default;
231
+ $moo-datatable-page-size-trigger-min-width: 3.25rem !default;
232
+ $moo-datatable-page-size-menu-min-width: 4rem !default;
233
+ $moo-datatable-preview-shell-max-width: 82rem !default;
234
+
235
+ $moo-toast-status-icon-size: 1rem !default;
236
+ $moo-toast-status-icon-gap: .5rem !default;
237
+ $moo-toast-stack-gap: .75rem !default;
238
+ $moo-toast-stack-peek: .75rem !default;
239
+ $moo-toast-stack-scale-step: .1 !default;
240
+ $moo-toast-stack-min-scale: .5 !default;
241
+ $moo-toast-stack-enter-y: 150% !default;
242
+ $moo-toast-stack-transition-duration: .5s !default;
243
+ $moo-toast-stack-height-transition-duration: .15s !default;
244
+ $moo-toast-stack-transition-timing-function: cubic-bezier(.22, 1, .36, 1) !default;
@@ -0,0 +1,28 @@
1
+ $input-padding-y: 0.25rem !default;
2
+ $input-padding-x: 0.625rem !default;
3
+ $input-height: 2rem !default;
4
+ $input-line-height: 1.4285714286 !default;
5
+ $input-bg: var(--moo-input-bg, transparent) !default;
6
+ $input-border-color: var(--moo-border) !default;
7
+ $input-border-radius: var(--bs-border-radius-lg) !default;
8
+ $input-placeholder-color: var(--bs-tertiary-color) !default;
9
+ $input-focus-bg: var(--moo-input-bg, transparent) !default;
10
+ $input-disabled-color: var(--moo-disabled-foreground) !default;
11
+ $form-select-disabled-color: $input-disabled-color !default;
12
+ $moo-disabled-control-opacity: 0.5 !default;
13
+ $input-disabled-bg: color-mix(in srgb, var(--moo-border) 40%, transparent) !default;
14
+ $form-file-button-hover-bg: var(--moo-border) !default;
15
+ $form-text-margin-top: 0.5rem !default;
16
+ $form-check-input-focus-border: var(--moo-border) !default;
17
+ $form-check-input-focus-box-shadow: 0 0 0 var(--bs-focus-ring-width) color-mix(in srgb, var(--moo-ring) 50%, transparent) !default;
18
+ $form-check-input-checked-bg-color: var(--moo-primary) !default;
19
+ $form-check-input-checked-border-color: var(--moo-primary) !default;
20
+ $form-check-input-indeterminate-bg-color: var(--moo-primary) !default;
21
+ $form-check-input-indeterminate-border-color: var(--moo-primary) !default;
22
+ $moo-form-checkmark-border-width: 0 0.14em 0.14em 0 !default;
23
+ $moo-form-check-indeterminate-bg-size: 62% 14% !default;
24
+ $moo-form-check-indeterminate-bg-position: center !default;
25
+ $form-range-thumb-bg: var(--moo-primary) !default;
26
+ $form-range-thumb-active-bg: color-mix(in srgb, var(--moo-primary) 85%, var(--moo-surface)) !default;
27
+ $moo-input-group-border-radius: var(--bs-border-radius-lg) !default;
28
+ $input-group-addon-bg: $input-bg !default;
@@ -0,0 +1,2 @@
1
+ $enable-dark-mode: false;
2
+ $moo-spinner-animation-name: moo-spinner-rotate;
@@ -0,0 +1,90 @@
1
+ $white: #fff !default;
2
+ $black: #0a0a0a !default;
3
+
4
+ $headings-font-weight: 600 !default;
5
+ $lead-font-size: 1.125rem !default;
6
+ $lead-font-weight: 400 !default;
7
+ $display-font-sizes: (
8
+ 1: 3.5rem,
9
+ 2: 3rem,
10
+ 3: 2.5rem,
11
+ 4: 2.25rem,
12
+ 5: 1.875rem,
13
+ 6: 1.5rem
14
+ ) !default;
15
+ $display-font-weight: $headings-font-weight !default;
16
+
17
+ $moo-surface: $body-bg !default;
18
+ $moo-muted-surface: $secondary !default;
19
+ $moo-border: $border-color !default;
20
+ $moo-primary: $primary !default;
21
+ $moo-primary-foreground: $light !default;
22
+ $moo-foreground: $body-color !default;
23
+ $moo-muted-foreground: #71717a !default;
24
+ $moo-ring: color-mix(in srgb, $white 60%, $primary) !default;
25
+ $moo-destructive: $danger !default;
26
+ $moo-destructive-surface: color-mix(in srgb, $moo-destructive 3%, transparent) !default;
27
+ $moo-destructive-surface-hover: color-mix(in srgb, $moo-destructive 6%, transparent) !default;
28
+ $moo-destructive-foreground: $moo-destructive !default;
29
+ $moo-form-invalid-border-color: $moo-destructive !default;
30
+ $moo-form-invalid-ring-color: color-mix(in srgb, $moo-destructive 20%, transparent) !default;
31
+ $moo-warning: $warning !default;
32
+ $moo-warning-surface: color-mix(in srgb, $moo-warning 10%, transparent) !default;
33
+ $moo-warning-surface-hover: color-mix(in srgb, $moo-warning 20%, transparent) !default;
34
+ $moo-warning-foreground: $moo-warning !default;
35
+ $moo-success: $success !default;
36
+ $moo-success-surface: color-mix(in srgb, $moo-success 10%, transparent) !default;
37
+ $moo-success-surface-hover: color-mix(in srgb, $moo-success 20%, transparent) !default;
38
+ $moo-success-foreground: $moo-success !default;
39
+ $moo-info: $info !default;
40
+ $moo-info-surface: color-mix(in srgb, $moo-info 10%, transparent) !default;
41
+ $moo-info-surface-hover: color-mix(in srgb, $moo-info 20%, transparent) !default;
42
+ $moo-info-foreground: $moo-info !default;
43
+ $moo-sidebar: $light !default;
44
+ $moo-chart-1: #52525b !default;
45
+ $moo-chart-2: #71717a !default;
46
+ $moo-chart-3: #a1a1aa !default;
47
+ $moo-chart-4: #3f3f46 !default;
48
+ $moo-chart-5: #27272a !default;
49
+ $moo-surface-dark: $black !default;
50
+ $moo-muted-surface-dark: #27272a !default;
51
+ $moo-border-dark: #3f3f46 !default;
52
+ $moo-primary-dark: $moo-border !default;
53
+ $moo-primary-foreground-dark: $dark !default;
54
+ $moo-foreground-dark: $light !default;
55
+ $moo-muted-foreground-dark: #a1a1aa !default;
56
+ $moo-ring-dark: color-mix(in srgb, $white 40%, $primary) !default;
57
+ $moo-destructive-dark: #ff6467 !default;
58
+ $moo-destructive-surface-dark: color-mix(in srgb, $moo-destructive-dark 20%, transparent) !default;
59
+ $moo-destructive-surface-hover-dark: color-mix(in srgb, $moo-destructive-dark 30%, transparent) !default;
60
+ $moo-destructive-foreground-dark: $moo-destructive-dark !default;
61
+ $moo-form-invalid-border-color-dark: color-mix(in srgb, $moo-destructive-dark 50%, transparent) !default;
62
+ $moo-form-invalid-ring-color-dark: color-mix(in srgb, $moo-destructive-dark 40%, transparent) !default;
63
+ $moo-warning-dark: color-mix(in srgb, $light 60%, $warning) !default;
64
+ $moo-warning-surface-dark: color-mix(in srgb, $moo-warning-dark 20%, transparent) !default;
65
+ $moo-warning-surface-hover-dark: color-mix(in srgb, $moo-warning-dark 30%, transparent) !default;
66
+ $moo-warning-foreground-dark: $moo-warning-dark !default;
67
+ $moo-success-dark: color-mix(in srgb, $light 60%, $success) !default;
68
+ $moo-success-surface-dark: color-mix(in srgb, $moo-success-dark 20%, transparent) !default;
69
+ $moo-success-surface-hover-dark: color-mix(in srgb, $moo-success-dark 30%, transparent) !default;
70
+ $moo-success-foreground-dark: $moo-success-dark !default;
71
+ $moo-info-dark: color-mix(in srgb, $light 60%, $info) !default;
72
+ $moo-info-surface-dark: color-mix(in srgb, $moo-info-dark 20%, transparent) !default;
73
+ $moo-info-surface-hover-dark: color-mix(in srgb, $moo-info-dark 30%, transparent) !default;
74
+ $moo-info-foreground-dark: $moo-info-dark !default;
75
+ $moo-sidebar-dark: #1c1c1f !default;
76
+ $moo-input-bg-dark: color-mix(in srgb, $moo-muted-surface-dark 50%, $moo-surface-dark) !default;
77
+
78
+ $body-tertiary-color: #a1a1aa !default;
79
+ $body-tertiary-bg: $light !default;
80
+ $code-color: #d63384 !default;
81
+ $mark-bg: #fff3cd !default;
82
+ $border-color-translucent: rgba(24, 24, 27, 0.175) !default;
83
+ $body-tertiary-color-dark: $moo-muted-foreground !default;
84
+ $body-tertiary-bg-dark: #202024 !default;
85
+ $code-color-dark: #e685b5 !default;
86
+ $mark-bg-dark: #664d03 !default;
87
+ $border-color-translucent-dark: rgba(250, 250, 250, 0.15) !default;
88
+
89
+ $moo-disabled-foreground: $body-tertiary-color !default;
90
+ $moo-disabled-foreground-dark: $body-tertiary-color-dark !default;
@@ -0,0 +1,15 @@
1
+ :scope[data-bs-theme="light"] .form-select {
2
+ --#{$prefix}form-select-bg-img: #{escape-svg($form-select-indicator)};
3
+ }
4
+
5
+ :scope[data-bs-theme="dark"] .form-select {
6
+ --#{$prefix}form-select-bg-img: #{escape-svg($form-select-indicator-dark)};
7
+ }
8
+
9
+ :scope[data-bs-theme="light"] .form-switch .form-check-input:not(:checked):not(:focus) {
10
+ --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image)};
11
+ }
12
+
13
+ :scope[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus) {
14
+ --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image-dark)};
15
+ }