@odx/ui 4.9.0 → 4.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/ag-grid-theme.css +1 -261
  3. package/charts-theme.css +1 -45
  4. package/core-theme.css +1 -7475
  5. package/package.json +9 -3
  6. package/scss/_application.scss +59 -0
  7. package/scss/_base.scss +31 -0
  8. package/scss/_breakpoints.scss +86 -0
  9. package/scss/_color-palettes-dark.scss +53 -0
  10. package/scss/_color-palettes.scss +96 -0
  11. package/scss/_colors-dark.scss +53 -0
  12. package/scss/_colors.scss +98 -0
  13. package/scss/_content.scss +25 -0
  14. package/scss/_controls.scss +57 -0
  15. package/scss/_description-list.scss +30 -0
  16. package/scss/_dimensions.scss +81 -0
  17. package/scss/_helpers.scss +85 -0
  18. package/scss/_index.scss +8 -0
  19. package/scss/_layout.scss +162 -0
  20. package/scss/_motion.scss +14 -0
  21. package/scss/_skeleton.scss +49 -0
  22. package/scss/_text-list.scss +18 -0
  23. package/scss/_typography.scss +21 -0
  24. package/scss/_utils.scss +131 -0
  25. package/scss/_vertical-rythm.scss +3 -0
  26. package/scss/_visuals.scss +27 -0
  27. package/scss/accordion-item.component.scss +56 -0
  28. package/scss/accordion.component.scss +3 -0
  29. package/scss/action-group.component.scss +29 -0
  30. package/scss/active-indicator.scss +25 -0
  31. package/scss/ag-grid/theme.scss +303 -0
  32. package/scss/area-header.component.scss +163 -0
  33. package/scss/autocomplete.component.scss +14 -0
  34. package/scss/avatar.component.scss +68 -0
  35. package/scss/badge.component.scss +49 -0
  36. package/scss/bar.component.scss +93 -0
  37. package/scss/brand-logo.component.scss +17 -0
  38. package/scss/breadcrumbs.component.scss +45 -0
  39. package/scss/button-group.component.scss +101 -0
  40. package/scss/button.component.scss +143 -0
  41. package/scss/calendar.component.scss +243 -0
  42. package/scss/card.component.scss +232 -0
  43. package/scss/cdk/connected-overlay.scss +4 -0
  44. package/scss/checkbox.component.scss +136 -0
  45. package/scss/chip-list.component.scss +23 -0
  46. package/scss/chip.component.scss +74 -0
  47. package/scss/circular-progress.component.scss +75 -0
  48. package/scss/components/card.component.scss +6 -6
  49. package/scss/components/table.component.scss +1 -0
  50. package/scss/connected-overlay.scss +63 -0
  51. package/scss/content-box.component.scss +46 -0
  52. package/scss/datepicker.component.scss +36 -0
  53. package/scss/daterangepicker.component.scss +45 -0
  54. package/scss/dropdown.component.scss +37 -0
  55. package/scss/error-page.component.scss +46 -0
  56. package/scss/expandable-list-item.component.scss +59 -0
  57. package/scss/footer.component.scss +86 -0
  58. package/scss/form-field.component.scss +264 -0
  59. package/scss/header-navigation.component.scss +35 -0
  60. package/scss/header.component.scss +73 -0
  61. package/scss/icon.component.scss +21 -0
  62. package/scss/inline-message.component.scss +34 -0
  63. package/scss/launch-tile.component.scss +119 -0
  64. package/scss/link.component.scss +28 -0
  65. package/scss/list-item.component.scss +119 -0
  66. package/scss/list.component.scss +27 -0
  67. package/scss/loading-spinner.component.scss +70 -0
  68. package/scss/logo.component.scss +33 -0
  69. package/scss/main-menu-button.component.scss +11 -0
  70. package/scss/main-menu-item.component.scss +55 -0
  71. package/scss/main-menu.component.scss +139 -0
  72. package/scss/mainfilter-group.component.scss +163 -0
  73. package/scss/menu.component.scss +51 -0
  74. package/scss/modal.component.scss +219 -0
  75. package/scss/navigation-back.component.scss +23 -0
  76. package/scss/notification-center.component.scss +74 -0
  77. package/scss/notification-item.component.scss +41 -0
  78. package/scss/option.component.scss +40 -0
  79. package/scss/paginator.component.scss +34 -0
  80. package/scss/progress.component.scss +41 -0
  81. package/scss/radio-button.component.scss +127 -0
  82. package/scss/radio-group.component.scss +14 -0
  83. package/scss/rail-navigation-item.component.scss +99 -0
  84. package/scss/rail-navigation.component.scss +53 -0
  85. package/scss/rich-list-item-header.component.scss +25 -0
  86. package/scss/rich-list-item.component.scss +59 -0
  87. package/scss/rich-list.component.scss +3 -0
  88. package/scss/search-bar.component.scss +47 -0
  89. package/scss/select.component.scss +75 -0
  90. package/scss/slider.component.scss +132 -0
  91. package/scss/spinbox.component.scss +128 -0
  92. package/scss/switch.component.scss +175 -0
  93. package/scss/tab-bar-item.component.scss +58 -0
  94. package/scss/tab-bar.component.scss +124 -0
  95. package/scss/table.component.scss +95 -0
  96. package/scss/theme.scss +303 -0
  97. package/scss/timepicker.component.scss +58 -0
  98. package/scss/toast-item.component.scss +79 -0
  99. package/scss/toast.component.scss +33 -0
  100. package/scss/toggle-button-group.component.scss +65 -0
  101. package/scss/toggle-button.component.scss +79 -0
  102. package/scss/tooltip.component.scss +37 -0
  103. package/scss/wizard-step.component.scss +256 -0
  104. package/scss/wizard.component.scss +18 -0
  105. package/24031beb1b96a58f519c.woff2 +0 -0
  106. package/323d385340fb9fee6450.svg +0 -6
  107. package/5eabf29514e9649c8c73.woff2 +0 -0
  108. package/eb2051d1f9da906e0b3e.woff2 +0 -0
@@ -0,0 +1,45 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/utils';
4
+ @use '../abstract/typography';
5
+ @use '@odx/icons/core/core-utils' as icons;
6
+
7
+ .odx-breadcrumbs {
8
+ @include dimensions.padding-x(1);
9
+ @include dimensions.padding-y(math.div(12, 24));
10
+ @include utils.vertical-center-content();
11
+
12
+ flex-wrap: wrap;
13
+ gap: dimensions.get-size(math.div(8, 24));
14
+
15
+ .odx-link {
16
+ white-space: nowrap;
17
+
18
+ &:not(:last-child) {
19
+ @include dimensions.margin(math.div(20, 24), right);
20
+
21
+ &::after {
22
+ color: var(--gray-500);
23
+ content: icons.get-icon-glyph('chevron-right');
24
+ display: inline-block;
25
+ font-family: icons.get-font-family();
26
+ font-size: dimensions.get-size(math.div(12, 24));
27
+ pointer-events: none;
28
+ position: absolute;
29
+
30
+ @include dimensions.margin(math.div(12, 24), left);
31
+ }
32
+ }
33
+
34
+ &:visited {
35
+ color: var(--odx-c-link);
36
+ }
37
+
38
+ &:last-child,
39
+ &:last-child:visited {
40
+ @include typography.font-weight(semibold);
41
+
42
+ color: var(--odx-c-text);
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,101 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+
4
+ @mixin buttons-radius($vertical: false, $reversed: false) {
5
+ $start: 'first';
6
+ $end: 'last';
7
+
8
+ @if $reversed {
9
+ $start: 'last';
10
+ $end: 'first';
11
+ }
12
+
13
+ @if $vertical {
14
+ margin: 0;
15
+
16
+ &:#{$start}-of-type {
17
+ border-bottom-left-radius: 0;
18
+ border-bottom-right-radius: 0;
19
+ }
20
+
21
+ &:#{$end}-of-type {
22
+ border-top-left-radius: 0;
23
+ border-top-right-radius: 0;
24
+ }
25
+ } @else {
26
+ &:#{$start}-of-type {
27
+ border-bottom-right-radius: 0;
28
+ border-top-right-radius: 0;
29
+ }
30
+
31
+ &:#{$end}-of-type {
32
+ border-bottom-left-radius: 0;
33
+ border-top-left-radius: 0;
34
+ }
35
+ }
36
+
37
+ &:not(:first-of-type, :last-of-type) {
38
+ border-radius: 0;
39
+ }
40
+ }
41
+
42
+ .odx-button-group {
43
+ display: inline-flex;
44
+ gap: dimensions.get-size(math.div(2, 24));
45
+
46
+ &--reverse {
47
+ flex-direction: row-reverse;
48
+ justify-content: flex-end;
49
+ }
50
+
51
+ &--reverse#{&}--vertical#{&}--block {
52
+ flex-direction: column-reverse;
53
+ justify-content: flex-end;
54
+ }
55
+
56
+ &--block {
57
+ display: flex;
58
+ width: 100%;
59
+ }
60
+
61
+ &:not(#{&}--vertical)#{&}--align-right {
62
+ justify-content: flex-end;
63
+ }
64
+
65
+ &:not(#{&}--vertical)#{&}--align-right#{&}--reverse {
66
+ justify-content: flex-start;
67
+ }
68
+
69
+ &:not(#{&}--vertical, #{&}--reverse) > .odx-button {
70
+ @include buttons-radius();
71
+ }
72
+
73
+ &:not(#{&}--vertical)#{&}--reverse > .odx-button {
74
+ @include buttons-radius(false, true);
75
+ }
76
+
77
+ &--vertical {
78
+ @include dimensions.margin-y(math.div(10, 24));
79
+
80
+ flex-direction: column;
81
+
82
+ > .odx-button {
83
+ @include dimensions.height(math.div(35, 24));
84
+ }
85
+ }
86
+
87
+ &:not(#{&}--reverse)#{&}--vertical {
88
+ > .odx-button {
89
+ @include buttons-radius(true);
90
+ }
91
+ }
92
+
93
+ &#{&}--reverse#{&}--vertical {
94
+ display: inline-flex;
95
+ flex-direction: column-reverse;
96
+
97
+ > .odx-button {
98
+ @include buttons-radius(true, true);
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,143 @@
1
+ @use 'sass:map';
2
+ @use 'sass:math';
3
+ @use '../abstract/breakpoints';
4
+ @use '../abstract/dimensions';
5
+ @use '../abstract/motion';
6
+ @use '../abstract/typography';
7
+ @use '../abstract/utils';
8
+ @use 'avatar.component' as avatar;
9
+ @use 'dropdown.component' as dropdown;
10
+ @use 'icon.component';
11
+
12
+ .odx-button {
13
+ $variants: secondary, primary, highlight, success, danger, confirmation, ghost;
14
+ $icon-margin: 0.25;
15
+
16
+ @extend .odx-button--secondary;
17
+ @include dimensions.height(2, 1.5);
18
+ @include dimensions.padding-x(2 * $icon-margin);
19
+ @include motion.transition(background-color color outline);
20
+ @include typography.font-size(0);
21
+ @include typography.font-weight(medium);
22
+ @include utils.center-content(true);
23
+ @include utils.interactive($with-background: false);
24
+ @include utils.with-outline-bold();
25
+
26
+ appearance: none;
27
+ border-radius: var(--odx-v-border-radius-controls);
28
+ min-width: dimensions.get-size(1.5);
29
+ overflow-wrap: anywhere;
30
+ overflow-y: clip;
31
+ vertical-align: middle;
32
+
33
+ &:not(:has(> .odx-icon, > .odx-avatar)) {
34
+ min-width: dimensions.get-size(3);
35
+ }
36
+
37
+ > .odx-icon {
38
+ @include dimensions.margin-x(-$icon-margin);
39
+ }
40
+
41
+ > .odx-icon[alignLeft] {
42
+ @include dimensions.margin($icon-margin, right);
43
+ }
44
+
45
+ > .odx-icon[alignRight] {
46
+ @include dimensions.margin($icon-margin, left);
47
+ }
48
+
49
+ > .odx-avatar {
50
+ @include avatar.avatar-size(1.5, math.div(32, 24), -1, 1);
51
+ @include dimensions.margin-x(-2 * $icon-margin);
52
+ }
53
+
54
+ &[data-breakpoint]:has(> .odx-icon, > .odx-avatar) {
55
+ min-width: dimensions.get-size(1.5);
56
+ }
57
+
58
+ @each $breakpoint in breakpoints.get-breakpoint-names() {
59
+ @include breakpoints.down($breakpoint) {
60
+ &[data-breakpoint='#{$breakpoint}'] {
61
+ font-size: 0;
62
+
63
+ > .odx-icon {
64
+ @include dimensions.margin-x(-$icon-margin);
65
+ }
66
+ }
67
+ }
68
+ }
69
+
70
+ &--highlight:focus-visible {
71
+ outline-color: var(--odx-c-focus-outline-dark);
72
+ }
73
+
74
+ @each $variant in $variants {
75
+ &--#{$variant} {
76
+ background-color: var(--odx-c-#{$variant});
77
+ color: var(--odx-c-#{$variant}-text);
78
+
79
+ &:hover {
80
+ background-color: var(--odx-c-#{$variant}-hover);
81
+ }
82
+
83
+ &#{dropdown.$dropdown-open-selector},
84
+ &.is-active,
85
+ &:active {
86
+ background-color: var(--odx-c-#{$variant}-active);
87
+ }
88
+
89
+ &:disabled,
90
+ &.is-disabled {
91
+ background-color: var(--odx-c-#{$variant}-disabled);
92
+ color: var(--odx-c-#{$variant}-text-disabled);
93
+ }
94
+ }
95
+ }
96
+
97
+ &--small {
98
+ $icon-margin: math.div(1, 8);
99
+
100
+ @include dimensions.height(1);
101
+ @include dimensions.padding-x(2 * $icon-margin);
102
+ @include typography.font-size(-1);
103
+
104
+ line-height: dimensions.get-size(1);
105
+ min-width: dimensions.get-size(1);
106
+
107
+ &:not(:has(> .odx-icon, > .odx-avatar)) {
108
+ min-width: dimensions.get-size(2);
109
+ }
110
+
111
+ > .odx-icon {
112
+ @include dimensions.margin-x(-2 * $icon-margin);
113
+ }
114
+
115
+ > .odx-icon[alignLeft] {
116
+ @include dimensions.margin($icon-margin, right);
117
+ }
118
+
119
+ > .odx-icon[alignRight] {
120
+ @include dimensions.margin($icon-margin, left);
121
+ }
122
+ }
123
+
124
+ &--large {
125
+ $icon-margin: 0.5;
126
+
127
+ @include dimensions.height(2, 2);
128
+ @include dimensions.padding-x(2 * $icon-margin);
129
+ @include typography.font-size(1);
130
+
131
+ > .odx-icon {
132
+ @include dimensions.margin-x(-$icon-margin * math.div(2, 3));
133
+ }
134
+
135
+ > .odx-icon[alignLeft] {
136
+ @include dimensions.margin($icon-margin * math.div(2, 3), right);
137
+ }
138
+
139
+ > .odx-icon[alignRight] {
140
+ @include dimensions.margin($icon-margin * math.div(2, 3), left);
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,243 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/motion';
4
+ @use '../abstract/typography';
5
+ @use '../abstract/utils';
6
+
7
+ .odx-calendar {
8
+ $root: &;
9
+ --max-calendar-height: 300px;
10
+
11
+ display: inline-block;
12
+ flex-direction: column;
13
+ max-height: inherit;
14
+
15
+ &:has(#{$root}-years) {
16
+ max-height: var(--max-calendar-height);
17
+ }
18
+
19
+ &-header {
20
+ @include motion.transition(background-color outline-color color border-radius);
21
+ @include utils.vertical-center-content();
22
+ @include typography.font-weight(normal);
23
+
24
+ background-color: var(--odx-c-background-content);
25
+ border-bottom: 1px solid var(--odx-input-control-outline-color);
26
+
27
+ .odx-action-group {
28
+ width: 100%;
29
+
30
+ @include dimensions.margin(0, top);
31
+ @include dimensions.margin(math.div(4, 24), bottom);
32
+ }
33
+
34
+ &__title {
35
+ flex: 1 1 auto;
36
+ }
37
+ }
38
+
39
+ &-cell {
40
+ @include dimensions.container(1.5);
41
+ @include motion.transition(background-color outline-color color border-radius);
42
+ @include utils.interactive(false);
43
+ @include utils.with-outline-bold();
44
+ @include typography.font-weight(normal);
45
+
46
+ border-radius: var(--odx-v-border-radius-controls);
47
+ cursor: pointer;
48
+ outline-color: transparent;
49
+ position: relative;
50
+ text-align: center;
51
+ vertical-align: middle;
52
+ z-index: 1;
53
+
54
+ &--adjacent,
55
+ &.is-disabled {
56
+ color: var(--odx-input-control-color-disabled);
57
+ }
58
+
59
+ &:focus {
60
+ &:disabled,
61
+ &.is-disabled {
62
+ outline-color: var(--odx-c-focus-outline-disabled);
63
+ }
64
+ }
65
+
66
+ &:hover:not(.is-in-any-range) {
67
+ background-color: var(--blue-700-10);
68
+ }
69
+
70
+ &--is-current,
71
+ &.is-selected:not(.is-in-any-range) {
72
+ @include typography.font-weight(medium);
73
+ }
74
+
75
+ &.is-selected:not(.is-in-any-range) {
76
+ background-color: var(--odx-c-focus);
77
+
78
+ &:hover {
79
+ background-color: var(--cyan-500-20);
80
+ }
81
+ }
82
+ }
83
+
84
+ &-month {
85
+ #{$root}__table {
86
+ border-collapse: separate;
87
+ border-spacing: dimensions.get-size(math.div(4, 24));
88
+
89
+ @include dimensions.margin-x(math.div(-4, 24));
90
+ }
91
+
92
+ #{$root}__weekdays {
93
+ @include typography.font-weight(semibold);
94
+ @include typography.font-size(-1);
95
+ @include utils.non-interactive();
96
+
97
+ text-align: center;
98
+
99
+ td {
100
+ @include dimensions.container(1.5);
101
+
102
+ vertical-align: middle;
103
+ }
104
+ }
105
+
106
+ #{$root}-cell {
107
+ border-radius: 0;
108
+
109
+ &--is-current::after {
110
+ @include dimensions.container(1);
111
+ @include dimensions.margin(0.25);
112
+
113
+ background-color: var(--blue-700-15);
114
+ border-radius: 50%;
115
+ content: '';
116
+ left: 0;
117
+ position: absolute;
118
+ top: 0;
119
+ z-index: -1;
120
+ }
121
+
122
+ &--is-in-range::before {
123
+ background-color: var(--odx-c-selected);
124
+ bottom: 0;
125
+ content: '';
126
+ left: 0;
127
+ position: absolute;
128
+ right: 0;
129
+ top: 0;
130
+ z-index: -1;
131
+ }
132
+
133
+ &--is-range-start {
134
+ @include typography.font-weight(medium);
135
+
136
+ &::before {
137
+ border-bottom-left-radius: var(--odx-v-border-radius-controls);
138
+ border-top-left-radius: var(--odx-v-border-radius-controls);
139
+ }
140
+ }
141
+
142
+ &--is-range-end {
143
+ @include typography.font-weight(medium);
144
+
145
+ &::before {
146
+ border-bottom-right-radius: var(--odx-v-border-radius-controls);
147
+ border-top-right-radius: var(--odx-v-border-radius-controls);
148
+ }
149
+ }
150
+
151
+ &--is-in-range:not(&--is-range-end) {
152
+ box-shadow: 4px 0 0 0 var(--odx-c-selected);
153
+ }
154
+
155
+ &--is-in-preview-range::before {
156
+ background-color: var(--cyan-500-5);
157
+ bottom: 0;
158
+ content: '';
159
+ left: 0;
160
+ position: absolute;
161
+ right: 0;
162
+ top: 0;
163
+ z-index: -1;
164
+ }
165
+
166
+ &--is-preview-range-start {
167
+ @include typography.font-weight(medium);
168
+
169
+ &::before {
170
+ background-color: var(--odx-c-selected);
171
+ border-bottom-left-radius: var(--odx-v-border-radius-controls);
172
+ border-top-left-radius: var(--odx-v-border-radius-controls);
173
+ }
174
+ }
175
+
176
+ &--is-preview-range-end {
177
+ @include typography.font-weight(medium);
178
+
179
+ &::before {
180
+ background-color: var(--odx-c-selected);
181
+ border-bottom-right-radius: var(--odx-v-border-radius-controls);
182
+ border-top-right-radius: var(--odx-v-border-radius-controls);
183
+ }
184
+ }
185
+
186
+ &--is-in-preview-range:not(&--is-preview-range-end) {
187
+ box-shadow: 4px 0 0 0 var(--cyan-500-5);
188
+ }
189
+ }
190
+ }
191
+
192
+ &-year,
193
+ &-years {
194
+ #{$root}-cell {
195
+ &--is-current {
196
+ background-color: var(--blue-700-10);
197
+ }
198
+ }
199
+ }
200
+
201
+ &-year {
202
+ #{$root}__body {
203
+ display: inline-table;
204
+
205
+ @include dimensions.margin-y(1.75);
206
+ }
207
+
208
+ #{$root}__table {
209
+ @include dimensions.margin(1.42, bottom);
210
+ }
211
+
212
+ #{$root}__season {
213
+ display: grid;
214
+ grid-gap: 50px;
215
+ grid-template-columns: repeat(3, 1fr);
216
+ margin: 2px 0;
217
+
218
+ @include dimensions.padding-x(1.16);
219
+ }
220
+
221
+ #{$root}-cell {
222
+ @include dimensions.container(math.div(5, 3));
223
+ }
224
+ }
225
+
226
+ &-years {
227
+ #{$root}__table {
228
+ margin: 0 28px;
229
+ }
230
+
231
+ #{$root}__year-row {
232
+ display: grid;
233
+ grid-gap: 36px;
234
+ grid-template-columns: repeat(3, 1fr);
235
+ margin: 2px 0;
236
+ }
237
+
238
+ #{$root}-cell {
239
+ height: dimensions.get-size(math.div(5, 3));
240
+ width: dimensions.get-size(2);
241
+ }
242
+ }
243
+ }