@ardium-ui/ui 5.0.0-alpha.36 → 5.0.0-alpha.38

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 (98) hide show
  1. package/fesm2022/ardium-ui-ui.mjs +2842 -1364
  2. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  3. package/lib/_internal/utils/date.utils.d.ts +16 -0
  4. package/lib/buttons/_button-base.d.ts +9 -6
  5. package/lib/buttons/_button-base.defaults.d.ts +3 -2
  6. package/lib/buttons/button/button.component.d.ts +3 -4
  7. package/lib/buttons/button/button.defaults.d.ts +0 -2
  8. package/lib/buttons/button/button.directive.d.ts +17 -0
  9. package/lib/buttons/button/button.module.d.ts +3 -2
  10. package/lib/buttons/button/index.d.ts +1 -0
  11. package/lib/buttons/fab/fab.component.d.ts +3 -1
  12. package/lib/buttons/icon-button/icon-button.component.d.ts +2 -1
  13. package/lib/buttons/icon-button/icon-button.defaults.d.ts +2 -1
  14. package/lib/calendar/abstract-calendar.d.ts +127 -0
  15. package/lib/calendar/calendar.component.d.ts +8 -97
  16. package/lib/calendar/calendar.defaults.d.ts +12 -1
  17. package/lib/calendar/calendar.internal-directives.d.ts +24 -8
  18. package/lib/calendar/calendar.internal-types.d.ts +1 -0
  19. package/lib/calendar/calendar.module.d.ts +4 -9
  20. package/lib/calendar/calendar.types.d.ts +19 -5
  21. package/lib/calendar/index.d.ts +3 -0
  22. package/lib/calendar/range-calendar.component.d.ts +16 -0
  23. package/lib/calendar/range-calendar.directives.d.ts +51 -0
  24. package/lib/calendar/range-calendar.module.d.ts +10 -0
  25. package/lib/calendar/views/calendar-views.module.d.ts +13 -0
  26. package/lib/calendar/views/days-view/days-view.component.d.ts +20 -2
  27. package/lib/calendar/views/days-view/days-view.helpers.d.ts +2 -2
  28. package/lib/calendar/views/months-view/months-view.component.d.ts +15 -3
  29. package/lib/calendar/views/years-view/years-view.component.d.ts +15 -3
  30. package/lib/inputs/date-input/abstract-date-input.d.ts +112 -0
  31. package/lib/inputs/date-input/date-input.component.d.ts +19 -82
  32. package/lib/inputs/date-input/date-input.defaults.d.ts +21 -3
  33. package/lib/inputs/date-input/{date-input.directive.d.ts → date-input.directives.d.ts} +2 -2
  34. package/lib/inputs/date-input/date-input.module.d.ts +5 -4
  35. package/lib/inputs/date-input/date-input.serializers.d.ts +4 -2
  36. package/lib/inputs/date-input/date-input.types.d.ts +5 -4
  37. package/lib/inputs/date-input/date-range-input.component.d.ts +29 -0
  38. package/lib/inputs/date-input/date-range-input.directives.d.ts +82 -0
  39. package/lib/inputs/date-input/date-range-input.module.d.ts +17 -0
  40. package/lib/inputs/date-input/index.d.ts +7 -1
  41. package/lib/inputs/date-input/multipage-date-range-input.component.d.ts +44 -0
  42. package/lib/inputs/date-input/multipage-date-range-input.directives.d.ts +82 -0
  43. package/lib/inputs/date-input/multipage-date-range-input.module.d.ts +17 -0
  44. package/lib/inputs/number-input/number-input.component.d.ts +3 -2
  45. package/package.json +1 -1
  46. package/prebuilt-themes/default/buttons/button.css +26 -37
  47. package/prebuilt-themes/default/buttons/button.css.map +1 -1
  48. package/prebuilt-themes/default/buttons/fab.css +27 -33
  49. package/prebuilt-themes/default/buttons/fab.css.map +1 -1
  50. package/prebuilt-themes/default/buttons/icon-button.css +23 -30
  51. package/prebuilt-themes/default/buttons/icon-button.css.map +1 -1
  52. package/prebuilt-themes/default/calendar.css +134 -54
  53. package/prebuilt-themes/default/calendar.css.map +1 -1
  54. package/prebuilt-themes/default/checkbox-list.css +4 -4
  55. package/prebuilt-themes/default/checkbox.css +4 -4
  56. package/prebuilt-themes/default/chips.css +8 -8
  57. package/prebuilt-themes/default/inputs/autocomplete-input.css +69 -24
  58. package/prebuilt-themes/default/inputs/autocomplete-input.css.map +1 -1
  59. package/prebuilt-themes/default/inputs/color-input.css +4 -43
  60. package/prebuilt-themes/default/inputs/color-input.css.map +1 -1
  61. package/prebuilt-themes/default/inputs/date-input.css +76 -20
  62. package/prebuilt-themes/default/inputs/date-input.css.map +1 -1
  63. package/prebuilt-themes/default/inputs/file-input.css +109 -61
  64. package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
  65. package/prebuilt-themes/default/inputs/hex-input.css +42 -17
  66. package/prebuilt-themes/default/inputs/hex-input.css.map +1 -1
  67. package/prebuilt-themes/default/inputs/input.css +36 -13
  68. package/prebuilt-themes/default/inputs/input.css.map +1 -1
  69. package/prebuilt-themes/default/inputs/number-input.css +26 -21
  70. package/prebuilt-themes/default/inputs/number-input.css.map +1 -1
  71. package/prebuilt-themes/default/inputs/password-input.css +64 -21
  72. package/prebuilt-themes/default/inputs/password-input.css.map +1 -1
  73. package/prebuilt-themes/default/inputs/search-bar.css +38 -15
  74. package/prebuilt-themes/default/inputs/search-bar.css.map +1 -1
  75. package/prebuilt-themes/default/radio.css +4 -4
  76. package/prebuilt-themes/default/segment.css +4 -4
  77. package/prebuilt-themes/default/select.css +4 -4
  78. package/prebuilt-themes/default/slide-toggle.css +4 -4
  79. package/prebuilt-themes/default/slider.css +4 -4
  80. package/prebuilt-themes/default/stars.css +4 -4
  81. package/prebuilt-themes/default/statebox.css +4 -4
  82. package/prebuilt-themes/default/tabber.css +4 -4
  83. package/themes/default/_mixins.scss +4 -4
  84. package/themes/default/buttons/_button-mixins.scss +13 -16
  85. package/themes/default/buttons/button.scss +8 -17
  86. package/themes/default/buttons/fab.scss +12 -17
  87. package/themes/default/buttons/icon-button.scss +7 -12
  88. package/themes/default/calendar.scss +146 -55
  89. package/themes/default/inputs/_shared.scss +27 -8
  90. package/themes/default/inputs/autocomplete-input.scss +68 -14
  91. package/themes/default/inputs/color-input.scss +1 -1
  92. package/themes/default/inputs/date-input.scss +54 -5
  93. package/themes/default/inputs/file-input.scss +83 -23
  94. package/themes/default/inputs/hex-input.scss +42 -7
  95. package/themes/default/inputs/input.scss +37 -3
  96. package/themes/default/inputs/number-input.scss +30 -14
  97. package/themes/default/inputs/password-input.scss +70 -15
  98. package/themes/default/inputs/search-bar.scss +39 -5
@@ -210,10 +210,10 @@
210
210
  }
211
211
  .ard-star-button .ard-focus-overlay {
212
212
  position: absolute;
213
- top: -0;
214
- bottom: -0;
215
- left: -0;
216
- right: -0;
213
+ top: calc(-1 * 0);
214
+ bottom: calc(-1 * 0);
215
+ left: calc(-1 * 0);
216
+ right: calc(-1 * 0);
217
217
  opacity: 0;
218
218
  border-radius: inherit;
219
219
  pointer-events: none;
@@ -152,10 +152,10 @@
152
152
  }
153
153
  .ard-statebox .ard-focus-overlay {
154
154
  position: absolute;
155
- top: -0;
156
- bottom: -0;
157
- left: -0;
158
- right: -0;
155
+ top: calc(-1 * 0);
156
+ bottom: calc(-1 * 0);
157
+ left: calc(-1 * 0);
158
+ right: calc(-1 * 0);
159
159
  opacity: 0;
160
160
  border-radius: inherit;
161
161
  pointer-events: none;
@@ -195,10 +195,10 @@ ard-tabber {
195
195
  }
196
196
  .ard-tabber .ard-tabber-tabs .ard-tab-button .ard-focus-overlay {
197
197
  position: absolute;
198
- top: -0;
199
- bottom: -0;
200
- left: -0;
201
- right: -0;
198
+ top: calc(-1 * 0);
199
+ bottom: calc(-1 * 0);
200
+ left: calc(-1 * 0);
201
+ right: calc(-1 * 0);
202
202
  opacity: 0;
203
203
  border-radius: inherit;
204
204
  pointer-events: none;
@@ -12,10 +12,10 @@
12
12
 
13
13
  @mixin focus-overlay($size: 0) {
14
14
  position: absolute;
15
- top: -#{$size};
16
- bottom: -#{$size};
17
- left: -#{$size};
18
- right: -#{$size};
15
+ top: calc(-1 * #{$size});
16
+ bottom: calc(-1 * #{$size});
17
+ left: calc(-1 * #{$size});
18
+ right: calc(-1 * #{$size});
19
19
  opacity: 0;
20
20
  border-radius: inherit;
21
21
  pointer-events: none;
@@ -25,33 +25,30 @@
25
25
  cursor: pointer;
26
26
  outline: none;
27
27
 
28
- //! button icon
29
- .ard-button-icon {
30
- @include defaultMixins.icon(1);
31
- }
32
28
  //! button focus inficator
33
- .ard-focus-overlay {
29
+ &::before {
30
+ content: '';
34
31
  @include defaultMixins.focus-overlay;
35
32
  background-color: var(--ard-cmpcl--overlay);
36
33
  }
37
34
  &:hover {
38
- .ard-focus-overlay {
35
+ &::before {
39
36
  opacity: $hover-opacity;
40
37
  }
41
38
  }
42
39
  &:focus {
43
- .ard-focus-overlay {
40
+ &::before {
44
41
  opacity: $focus-opacity;
45
42
  }
46
43
  }
47
44
  &.ard-active,
48
45
  &:active {
49
- .ard-focus-overlay {
46
+ &::before {
50
47
  opacity: $active-opacity;
51
48
  }
52
49
  }
53
50
  &:focus-visible {
54
- .ard-focus-overlay {
51
+ &::before {
55
52
  opacity: $focus-visible-opacity;
56
53
  }
57
54
  }
@@ -62,7 +59,7 @@
62
59
  color: var(--ard-cmpcl--content);
63
60
  border: none;
64
61
 
65
- .ard-focus-overlay {
62
+ &::before {
66
63
  background: var(--ard-cmpcl--overlay-colored);
67
64
  }
68
65
  }
@@ -85,7 +82,7 @@
85
82
  color: var(--ard-cmpcl--content);
86
83
  border: 1px solid ARD.$border-light;
87
84
 
88
- .ard-focus-overlay {
85
+ &::before {
89
86
  background: var(--ard-cmpcl--overlay-colored);
90
87
  }
91
88
  }
@@ -94,7 +91,7 @@
94
91
  color: var(--ard-cmpcl--content);
95
92
  border: 1px solid ARD.$border-light;
96
93
 
97
- .ard-focus-overlay {
94
+ &::before {
98
95
  display: none;
99
96
  }
100
97
 
@@ -111,7 +108,7 @@
111
108
  color: var(--ard-cmpcl--on-bg-colored);
112
109
  border: 1px solid var(--ard-cmpcl--bg-colored);
113
110
 
114
- .ard-focus-overlay {
111
+ &::before {
115
112
  background: var(--ard-cmpcl--on-bg);
116
113
  }
117
114
  &:focus-visible {
@@ -122,7 +119,7 @@
122
119
  &.ard-appearance-transparent.ard-light-coloring {
123
120
  color: var(--ard-cmpcl--content-light);
124
121
 
125
- .ard-focus-overlay {
122
+ &::before {
126
123
  background: var(--ard-cmpcl--overlay-colored-light);
127
124
  }
128
125
  }
@@ -134,7 +131,7 @@
134
131
  opacity: $opacity;
135
132
  cursor: not-allowed;
136
133
 
137
- .ard-focus-overlay {
134
+ &::before {
138
135
  opacity: $overlay-opacity;
139
136
  transform: scale(1);
140
137
  }
@@ -145,7 +142,7 @@
145
142
  .ard-button-content {
146
143
  opacity: $opacity;
147
144
  }
148
- .ard-focus-overlay {
145
+ &::before {
149
146
  background: var(--ard-cmpcl--overlay);
150
147
  }
151
148
  }
@@ -8,6 +8,7 @@
8
8
  --ard-button-padding-compact: 0 0.9em;
9
9
  --ard-button-padding-vertical: 0.3em 1em;
10
10
  --ard-button-padding-vertical-compact: 0.2em 0.8em;
11
+ --ard-button-gap: 0.375rem;
11
12
  --ard-button-font-size: 0.875rem;
12
13
  --ard-button-font-size-compact: 0.75rem;
13
14
  --ard-button-font-weight: 500;
@@ -38,22 +39,17 @@ ard-button {
38
39
  var(--ard-button-overlay-focus-visible-opacity, 0.24)
39
40
  );
40
41
  background: transparent;
41
- gap: 0.375rem;
42
+ gap: var(--ard-button-gap, 0.375rem);
42
43
  font-size: var(--ard-button-font-size, 0.875rem);
43
44
  height: var(--ard-button-height, 2.5em);
44
45
  padding: var(--ard-button-padding, 0 1.2em);
45
- letter-spacing: 0.5px;
46
- width: 100%;
46
+ width: max-content;
47
47
  min-width: max-content;
48
+ letter-spacing: 0.5px;
48
49
  justify-content: center;
49
50
  margin: 0;
50
51
  user-select: none;
51
-
52
- .ard-button-content {
53
- display: flex;
54
- align-items: center;
55
- gap: 0.375rem;
56
- }
52
+ text-decoration: none;
57
53
 
58
54
  //! aligns
59
55
  &.ard-align-left {
@@ -93,16 +89,11 @@ ard-button {
93
89
  gap: 0;
94
90
  }
95
91
  }
96
- }
97
-
98
- ard-button.ard-disabled {
99
- > .ard-button {
92
+ //! disabled
93
+ &.ard-disabled {
100
94
  @include shared.button-disabled(var(--ard-button-disabled-opacity, 0.6), var(--ard-button-overlay-disabled-opacity, 0.2));
101
- }
102
- &.ard-button-with-pointer-events-when-disabled {
103
- pointer-events: all;
104
95
 
105
- > .ard-button {
96
+ &.ard-button-with-pointer-events-when-disabled {
106
97
  pointer-events: all;
107
98
  }
108
99
  }
@@ -8,6 +8,7 @@
8
8
  --ard-fab-size-standard-font-size: 1.75rem;
9
9
  --ard-fab-size-small-font-size: 1.375rem;
10
10
  --ard-fab-font-weight: 900;
11
+ --ard-fab-extended-gap: 0.75em;
11
12
  --ard-fab-overlay-hover-opacity: 0.04;
12
13
  --ard-fab-overlay-focus-opacity: 0.12;
13
14
  --ard-fab-overlay-active-opacity: 0.18;
@@ -37,10 +38,17 @@ ard-fab {
37
38
  );
38
39
  height: var(--ard-_fab-size);
39
40
  width: var(--ard-_fab-size);
41
+ max-height: var(--ard-_fab-size);
42
+ max-width: var(--ard-_fab-size);
43
+ min-height: var(--ard-_fab-size);
44
+ min-width: var(--ard-_fab-size);
40
45
  user-select: none;
41
46
  border-radius: 9999px;
42
47
  justify-content: center;
43
48
  margin: 0;
49
+ font-weight: 500;
50
+ overflow: hidden;
51
+ transition: max-width 0.5s ease;
44
52
 
45
53
  &.ard-fab-size-standard {
46
54
  --ard-_fab-size: var(--ard-fab-size-standard, 3.5rem);
@@ -54,26 +62,13 @@ ard-fab {
54
62
  min-width: var(--ard-_fab-size);
55
63
  width: max-content;
56
64
  font-weight: unset;
57
-
58
- .ard-button-content {
59
- gap: 0.75em;
60
- max-width: 10em;
61
- }
65
+ gap: var(--ard-fab-extended-gap, 1em);
66
+ max-width: 10em;
62
67
  }
63
68
 
64
- .ard-button-content {
65
- gap: 1em;
66
- font-weight: 500;
67
- justify-content: flex-start !important;
68
- max-width: 1.5em;
69
- overflow: hidden;
70
- transition: max-width 0.5s ease;
71
-
72
- ard-icon {
73
- font-size: 1em;
74
- }
69
+ ard-icon {
70
+ font-size: 1em;
75
71
  }
76
-
77
72
  &.ard-appearance-transparent {
78
73
  @include CM.focus-overlay-scale-addon();
79
74
  }
@@ -5,6 +5,7 @@
5
5
  --ard-icon-button-height-compact: 2.25em;
6
6
  --ard-icon-button-margin: 0;
7
7
  --ard-icon-button-font-size: 1rem;
8
+ --ard-icon-button-icon-font-size: 1.5em;
8
9
  --ard-icon-button-font-size-compact: 0.75rem;
9
10
  --ard-icon-button-font-weight: 600;
10
11
  --ard-icon-button-overlay-hover-opacity: var(--ard-button-overlay-hover-opacity, 0.04);
@@ -37,7 +38,7 @@ ard-icon-button {
37
38
  var(--ard-icon-button-overlay-focus-visible-opacity, var(--ard-button-overlay-focus-visible-opacity, 0.24))
38
39
  );
39
40
  background: transparent;
40
- height: 2.1875em;
41
+ height: var(--ard-icon-button-height, 2.1875em);
41
42
  aspect-ratio: 1;
42
43
  border-radius: 9999px;
43
44
  align-items: center;
@@ -46,20 +47,14 @@ ard-icon-button {
46
47
  overflow: hidden;
47
48
  color: var(--ard-cmpcl--bg-colored);
48
49
 
49
- .ard-button-content {
50
- display: flex;
51
- align-items: center;
52
-
53
- > ard-icon {
54
- font-weight: 500;
55
- font-size: 1.5em;
56
- }
50
+ > ard-icon {
51
+ font-weight: 500;
52
+ font-size: var(--ard-icon-button-icon-font-size);
57
53
  }
58
-
59
54
  //! compact
60
55
  &.ard-compact {
61
- height: 2.25em;
62
- font-size: 0.75em;
56
+ height: var(--ard-icon-button-height-compact, 2.25em);
57
+ font-size: var(--ard-icon-button-font-size-compact, 0.75rem);
63
58
  }
64
59
  //! light coloring
65
60
  &.ard-light-coloring {
@@ -3,21 +3,52 @@
3
3
  @use './coloring.scss' as CM;
4
4
  @use '../variables' as ARD;
5
5
 
6
- $grid-size: 2.5rem;
6
+ :root {
7
+ --ard-calendar-grid-size: 2.25rem;
8
+ --ard-calendar-grid-gap: 0.25rem;
9
+ --ard-calendar-padding: 0.375rem;
10
+ --ard-calendar-header-padding: 0.375rem 0 0.75rem 0;
11
+ --ard-calendar-weekday-padding: 0 0 0.5rem 0;
12
+ --ard-calendar-weekday-font-size: 0.875rem;
13
+ --ard-calendar-weekday-font-weight: 500;
14
+ --ard-calendar-weekday-color: #{ARD.$text};
15
+ --ard-calendar-floating-month-transform: none;
16
+ --ard-calendar-floating-month-padding: 0 0 0 1rem;
17
+ --ard-calendar-floating-month-font-size: 0.875rem;
18
+ --ard-calendar-floating-month-font-weight: 500;
19
+ --ard-calendar-floating-month-color: #{ARD.$text3};
20
+ --ard-calendar-entry-padding: 0;
21
+ --ard-calendar-entry-font-size: 0.875rem;
22
+ --ard-calendar-entry-font-weight: 400;
23
+ --ard-calendar-entry-border-radius: 9999px;
24
+ --ard-calendar-entry-range-overlay-border-width: 1px;
25
+ --ard-calendar-entry-range-overlay-border-style: dashed;
26
+ --ard-calendar-entry-today-border-color: #{ARD.$detail};
27
+ --ard-calendar-entry-today-selected-border: 2px solid #{ARD.$bg};
28
+ --ard-calendar-entry-highlighted-overlay-opacity: 20%;
29
+ --ard-calendar-entry-selected-overlay-opacity: 100%;
30
+ --ard-calendar-entry-selected-range-overlay-opacity: 12%;
31
+ --ard-calendar-entry-disabled-overlay-opacity: 12%;
32
+ --ard-calendar-entry-disabled-highlighted-overlay-opacity: 15%;
33
+ --ard-calendar-entry-disabled-opacity: 50%;
34
+ }
7
35
 
8
36
  .ard-calendar {
9
37
  @include CM.typeColors();
10
- width: 18.5rem;
38
+ min-width: calc(var(--ard-calendar-grid-size) * 7 + var(--ard-calendar-grid-gap) * 6);
11
39
  user-select: none;
40
+ padding: var(--ard-calendar-padding, 0 0.375rem 0.375rem 0.375rem);
41
+ box-sizing: content-box;
12
42
 
13
43
  //! top toolbar
14
44
  .ard-calendar__top-toolbar {
15
45
  .ard-calendar__calendar-header {
16
- display: flex;
17
- justify-content: space-between;
46
+ display: grid;
47
+ grid-template-columns: 1fr 5fr 1fr;
18
48
  align-items: center;
49
+ justify-items: center;
19
50
  width: 100%;
20
- padding: 0.75rem 0;
51
+ padding: var(--ard-calendar-header-padding, 0.75rem 0);
21
52
 
22
53
  .ard-dropdown-arrow {
23
54
  @include DA.dropdown-arrow();
@@ -32,59 +63,64 @@ $grid-size: 2.5rem;
32
63
  //! weekdays
33
64
  .ard-calendar__weekdays {
34
65
  display: grid;
35
- grid-template-columns: repeat(7, $grid-size);
66
+ grid-template-columns: repeat(7, var(--ard-calendar-grid-size, 2.25rem));
67
+ gap: var(--ard-calendar-grid-gap, 0.25rem);
36
68
  align-items: center;
37
- padding: 0 0.375rem 0.5rem 0.375rem;
69
+ padding: var(--ard-calendar-weekday-padding, 0 0 0.5rem 0);
38
70
 
39
71
  .ard-calendar__weekday {
40
72
  text-align: center;
41
- font-size: 0.875rem;
42
- font-weight: 500;
43
- color: ARD.$text;
73
+ font-size: var(--ard-calendar-weekday-font-size, 0.875rem);
74
+ font-weight: var(--ard-calendar-weekday-font-weight, 500);
75
+ color: var(--ard-calendar-weekday-color, #{ARD.$text});
44
76
  }
45
77
  }
46
78
  //! days grid
47
79
  .ard-calendar__days-grid {
48
- padding: 0.375rem;
49
- padding-top: 0;
80
+ padding: 0;
50
81
  display: grid;
51
- grid-template-columns: repeat(7, $grid-size);
82
+ grid-template-columns: repeat(7, var(--ard-calendar-grid-size));
52
83
  position: relative;
53
84
  outline: none;
85
+ gap: var(--ard-calendar-grid-gap, 0.25rem);
54
86
 
55
87
  > * {
56
- max-width: 100%;
88
+ width: var(--ard-calendar-grid-size);
89
+ max-width: var(--ard-calendar-grid-size);
90
+ height: var(--ard-calendar-grid-size);
91
+ max-height: var(--ard-calendar-grid-size);
57
92
  box-sizing: border-box;
58
- aspect-ratio: 1;
59
93
  }
60
94
  &.ard-reserve-top-row {
61
- padding-top: $grid-size;
95
+ padding-top: calc(var(--ard-calendar-grid-size) + var(--ard-calendar-grid-gap));
62
96
  }
63
97
  .ard-calendar__floating-month {
64
98
  position: absolute;
65
99
  top: 0;
66
100
  left: 0;
101
+ transform: var(--ard-calendar-floating-month-transform, none);
67
102
  width: 100%;
68
103
  box-sizing: border-box;
69
104
  aspect-ratio: 7;
70
- padding-left: 1rem;
105
+ padding: var(--ard-calendar-floating-month-padding, 0 0 0 1rem);
71
106
  display: flex;
72
107
  align-items: center;
73
- font-size: 0.875rem;
74
- font-weight: 500;
75
- color: ARD.$text3;
108
+ font-size: var(--ard-calendar-floating-month-font-size, 0.875rem);
109
+ font-weight: var(--ard-calendar-floating-month-font-weight, 500);
110
+ color: var(--ard-calendar-floating-month-color, #{ARD.$text3});
76
111
  letter-spacing: 0.5px;
77
112
  }
78
113
  }
79
114
  //! years grid
80
115
  .ard-calendar__simple-grid {
81
116
  border-top: 1px solid ARD.$detail-ultralight;
82
- margin-top: 0.25rem;
83
117
  display: grid;
84
118
  grid-template-columns: repeat(4, 1fr);
85
- grid-template-rows: repeat(6, $grid-size);
119
+ grid-template-rows: repeat(6, var(--ard-calendar-grid-size));
86
120
  position: relative;
87
121
  outline: none;
122
+ padding: 0;
123
+ gap: var(--ard-calendar-grid-gap, 0.25rem);
88
124
 
89
125
  > * {
90
126
  max-width: 100%;
@@ -99,7 +135,8 @@ $grid-size: 2.5rem;
99
135
  z-index: 1;
100
136
  cursor: pointer;
101
137
  outline: none;
102
- padding: 0.125rem;
138
+ padding: var(--ard-calendar-entry-padding, 0);
139
+ box-sizing: border-box;
103
140
 
104
141
  .ard-calendar__entry-button {
105
142
  width: 100%;
@@ -108,21 +145,33 @@ $grid-size: 2.5rem;
108
145
  display: flex;
109
146
  align-items: center;
110
147
  justify-content: center;
111
- font-size: 0.875rem;
148
+ font-size: var(--ard-calendar-entry-font-size, 0.875rem);
149
+ font-weight: var(--ard-calendar-entry-font-weight, 400);
112
150
  background: transparent;
113
151
  border: 1px solid transparent;
114
- border-radius: 9999px;
152
+ border-radius: var(--ard-calendar-entry-border-radius, 9999px);
115
153
  position: relative;
116
154
  cursor: pointer;
155
+ outline: none;
156
+ box-sizing: border-box;
117
157
 
118
158
  .ard-focus-overlay {
119
159
  @include DM.focus-overlay();
120
160
  z-index: -1;
121
- background: var(--ard-cmpcl--bg-colored);
122
- border: 2px solid transparent;
123
- transition:
124
- border-color 0.1s ease,
125
- opacity 0.1s ease;
161
+ background: var(--ard-cmpcl--overlay);
162
+ transition: border-color 0.1s ease, opacity 0.1s ease;
163
+ }
164
+ .ard-range-overlay {
165
+ @include DM.focus-overlay();
166
+ z-index: -1;
167
+ opacity: 1;
168
+ left: -calc(var(--ard-calendar-grid-gap, 0.25rem) / 2);
169
+ right: -calc(var(--ard-calendar-grid-gap, 0.25rem) / 2);
170
+ border: var(--ard-calendar-entry-range-overlay-border-width, 1px)
171
+ var(--ard-calendar-entry-range-overlay-border-style, dashed) transparent;
172
+ background: transparent;
173
+ transition: none;
174
+ border-radius: 0;
126
175
  }
127
176
  }
128
177
  &.ard-calendar__entry-empty {
@@ -130,12 +179,51 @@ $grid-size: 2.5rem;
130
179
  }
131
180
  &.ard-calendar-today {
132
181
  .ard-calendar__entry-button {
133
- border-color: ARD.$detail;
182
+ border-color: var(--ard-calendar-entry-today-border-color, #{ARD.$detail});
183
+ }
184
+ }
185
+ &.ard-calendar__entry-highlighted-in-range {
186
+ .ard-range-overlay {
187
+ opacity: 1;
188
+ border-top-color: var(--ard-cmpcl--bg-colored);
189
+ border-bottom-color: var(--ard-cmpcl--bg-colored);
190
+ }
191
+ &.ard-calendar__entry-selected-start {
192
+ .ard-range-overlay {
193
+ border-left-color: var(--ard-cmpcl--bg-colored);
194
+ }
195
+ }
196
+ &.ard-calendar__entry-selected-end,
197
+ &.ard-calendar__entry-highlighted {
198
+ .ard-range-overlay {
199
+ border-right-color: var(--ard-cmpcl--bg-colored);
200
+ }
134
201
  }
135
202
  }
136
203
  &.ard-calendar__entry-highlighted {
137
204
  .ard-focus-overlay {
138
- opacity: 20%;
205
+ opacity: var(--ard-calendar-entry-highlighted-overlay-opacity, 20%);
206
+ }
207
+ }
208
+ &.ard-calendar__entry-selected-start {
209
+ .ard-range-overlay {
210
+ left: 0;
211
+ border-top-left-radius: var(--ard-calendar-entry-border-radius);
212
+ border-bottom-left-radius: var(--ard-calendar-entry-border-radius);
213
+ }
214
+ }
215
+ &.ard-calendar__entry-selected-end,
216
+ &.ard-calendar__entry-highlighted:not(.ard-calendar__entry-selected-in-range) {
217
+ .ard-range-overlay {
218
+ right: 0;
219
+ border-top-right-radius: var(--ard-calendar-entry-border-radius);
220
+ border-bottom-right-radius: var(--ard-calendar-entry-border-radius);
221
+ }
222
+ }
223
+ &.ard-calendar__entry-selected-in-range {
224
+ .ard-range-overlay {
225
+ opacity: var(--ard-calendar-entry-selected-range-overlay-opacity, 12%);
226
+ background-color: var(--ard-cmpcl--bg-colored);
139
227
  }
140
228
  }
141
229
  &.ard-calendar__entry-selected {
@@ -143,18 +231,19 @@ $grid-size: 2.5rem;
143
231
  color: var(--ard-cmpcl--on-bg-colored);
144
232
  }
145
233
  .ard-focus-overlay {
146
- opacity: 100%;
234
+ opacity: var(--ard-calendar-entry-selected-overlay-opacity, 100%);
235
+ background: var(--ard-cmpcl--bg-colored);
147
236
  }
148
237
 
149
238
  &.ard-calendar-today {
150
239
  .ard-focus-overlay {
151
- border-color: ARD.$bg;
240
+ border: var(--ard-calendar-entry-today-selected-border, 2px solid #{ARD.$bg});
152
241
  }
153
242
  }
154
243
  }
155
244
  &.ard-calendar__entry-disabled {
156
245
  pointer-events: none;
157
- opacity: 50%;
246
+ opacity: var(--ard-calendar-entry-disabled-overlay-opacity, 50%);
158
247
 
159
248
  .ard-calendar__entry-button {
160
249
  cursor: default;
@@ -164,30 +253,32 @@ $grid-size: 2.5rem;
164
253
  }
165
254
  &.ard-calendar__entry-highlighted {
166
255
  .ard-focus-overlay {
167
- opacity: 15%;
256
+ opacity: var(--ard-calendar-entry-disabled-highlighted-overlay-opacity, 15%);
168
257
  }
169
258
  }
170
259
  }
171
260
  }
172
- .ard-calendar__day-labels {
173
- font-size: 0.8125rem;
174
- color: ARD.$text3;
175
- height: 1.25rem;
176
- position: relative;
261
+ .ard-years-view,
262
+ .ard-months-view {
263
+ .ard-calendar__entry {
264
+ .ard-calendar__entry-button {
265
+ .ard-range-overlay {
266
+ left: calc(-var(--ard-calendar-grid-gap) / 2 - 1px);
267
+ right: calc(-var(--ard-calendar-grid-gap) / 2 - 1px);
268
+ border: none;
269
+ }
270
+ }
177
271
 
178
- > * {
179
- display: flex;
180
- align-items: center;
181
- justify-content: center;
182
- aspect-ratio: unset;
183
- }
184
- &::after {
185
- content: '';
186
- position: absolute;
187
- width: 100%;
188
- height: 1px;
189
- background: ARD.$detail-ultralight;
190
- bottom: 0;
272
+ &.ard-calendar__entry-selected-start {
273
+ .ard-range-overlay {
274
+ left: 0;
275
+ }
276
+ }
277
+ &.ard-calendar__entry-selected-end {
278
+ .ard-range-overlay {
279
+ right: 0;
280
+ }
281
+ }
191
282
  }
192
283
  }
193
284
  }
@@ -199,6 +290,6 @@ $grid-size: 2.5rem;
199
290
  }
200
291
  .ard-disabled {
201
292
  .ard-calendar {
202
- opacity: 50%;
293
+ opacity: var(--ard-calendar-entry-disabled-opacity, 50%);
203
294
  }
204
295
  }