tyrell-components 1.0.0-TC51 → 1.0.0-TC53

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/css/tyrell-theme.css +25 -2
  2. package/css/tyrell.css +4 -0
  3. package/dist/tyrell-colors-static.css +1 -316
  4. package/dist/tyrell-theme.css +1 -1443
  5. package/dist/tyrell.css +1 -1390
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.js +196 -196
  8. package/lib/components/button.d.ts +1 -1
  9. package/lib/components/button.js +260 -259
  10. package/lib/components/calendar-month.d.ts +2 -2
  11. package/lib/components/calendar-month.js +426 -416
  12. package/lib/components/calendar-navigation.js +238 -238
  13. package/lib/components/calendar.js +605 -602
  14. package/lib/components/checkbox.d.ts +1 -1
  15. package/lib/components/checkbox.js +273 -272
  16. package/lib/components/copy.d.ts +1 -1
  17. package/lib/components/copy.js +279 -278
  18. package/lib/components/date-picker.d.ts +1 -1
  19. package/lib/components/date-picker.js +1103 -1108
  20. package/lib/components/file-upload.js +404 -404
  21. package/lib/components/icon.js +141 -141
  22. package/lib/components/input.d.ts +1 -1
  23. package/lib/components/input.js +593 -596
  24. package/lib/components/modal.js +319 -319
  25. package/lib/components/option.js +167 -167
  26. package/lib/components/popup.js +233 -233
  27. package/lib/components/radio.d.ts +2 -2
  28. package/lib/components/radio.js +407 -406
  29. package/lib/components/resize-observer.js +67 -67
  30. package/lib/components/scroll-container.js +294 -294
  31. package/lib/components/select.d.ts +1 -1
  32. package/lib/components/select.js +1524 -1532
  33. package/lib/components/selected-tags.js +184 -184
  34. package/lib/components/step.js +62 -62
  35. package/lib/components/switch.d.ts +1 -1
  36. package/lib/components/switch.js +214 -213
  37. package/lib/components/tab.js +62 -62
  38. package/lib/components/tabs.d.ts +1 -0
  39. package/lib/components/tabs.js +507 -479
  40. package/lib/components/tag.d.ts +1 -1
  41. package/lib/components/tag.js +236 -235
  42. package/lib/components/textarea.d.ts +1 -1
  43. package/lib/components/textarea.js +457 -456
  44. package/lib/components/tooltip.js +283 -283
  45. package/lib/components/wizard.js +384 -384
  46. package/lib/icons/heroicons/micro.js +392 -392
  47. package/lib/icons/heroicons/mini.js +382 -382
  48. package/lib/icons/heroicons/outline.js +337 -337
  49. package/lib/icons/heroicons/solid.js +407 -407
  50. package/lib/icons/lucide.js +22843 -22843
  51. package/lib/icons/material/filled.js +9653 -9653
  52. package/lib/icons/material/outlined.js +10271 -10271
  53. package/lib/icons/material/round.js +10495 -10495
  54. package/lib/icons/material/sharp.js +9905 -9905
  55. package/lib/icons/material/two-tone.js +12792 -12792
  56. package/lib/index.js +21 -21
  57. package/lib/styles/button.js +176 -288
  58. package/lib/styles/calendar-month.js +123 -183
  59. package/lib/styles/calendar-navigation.js +60 -79
  60. package/lib/styles/calendar.js +8 -9
  61. package/lib/styles/checkbox.js +45 -72
  62. package/lib/styles/copy.js +67 -91
  63. package/lib/styles/custom-scrollbar.js +80 -100
  64. package/lib/styles/date-picker.js +261 -331
  65. package/lib/styles/field-size.d.ts +6 -0
  66. package/lib/styles/field-size.js +91 -0
  67. package/lib/styles/file-upload.js +139 -169
  68. package/lib/styles/icon.js +92 -156
  69. package/lib/styles/input.js +125 -241
  70. package/lib/styles/modal.js +67 -102
  71. package/lib/styles/option.d.ts +1 -1
  72. package/lib/styles/option.js +47 -67
  73. package/lib/styles/popup.js +34 -65
  74. package/lib/styles/radio.js +69 -96
  75. package/lib/styles/resize-observer.js +2 -5
  76. package/lib/styles/scroll-container.js +100 -130
  77. package/lib/styles/select-base.js +525 -778
  78. package/lib/styles/select.js +140 -228
  79. package/lib/styles/step.js +22 -29
  80. package/lib/styles/switch.js +34 -55
  81. package/lib/styles/tab.d.ts +1 -1
  82. package/lib/styles/tab.js +22 -29
  83. package/lib/styles/tabs.d.ts +1 -1
  84. package/lib/styles/tabs.js +175 -237
  85. package/lib/styles/tag.js +135 -188
  86. package/lib/styles/textarea.d.ts +1 -1
  87. package/lib/styles/textarea.js +205 -271
  88. package/lib/styles/tooltip.js +3 -3
  89. package/lib/styles/wizard.js +170 -226
  90. package/lib/types/common.d.ts +2 -0
  91. package/lib/types/common.js +6 -5
  92. package/lib/utils/calendar-utils.js +100 -100
  93. package/lib/utils/custom-scrollbar.js +272 -272
  94. package/lib/utils/flavor-sheet.js +14 -14
  95. package/lib/utils/icon-registry.js +127 -127
  96. package/lib/utils/loader-registry.js +3 -3
  97. package/lib/utils/locale.js +34 -34
  98. package/lib/utils/mobile.js +1 -1
  99. package/lib/utils/number-format.js +54 -54
  100. package/lib/utils/positioning.js +212 -212
  101. package/lib/utils/property-capture.js +36 -36
  102. package/lib/utils/property-manager.js +125 -125
  103. package/lib/utils/resize-observer.js +23 -23
  104. package/lib/utils/scroll-lock.js +57 -57
  105. package/lib/utils/styles.js +17 -17
  106. package/lib/version.d.ts +1 -1
  107. package/lib/version.js +1 -1
  108. package/package.json +4 -4
@@ -1,251 +1,191 @@
1
1
  import { FLAVORS } from "../types/common.js";
2
2
  const calendarMonthFlavor = (f, fb) => {
3
- const color = (s) => fb
4
- ? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
5
- : `var(--ty-color-${f}${s})`;
6
- const bg = (s) => fb
7
- ? `var(--ty-bg-${f}${s}, var(--ty-bg-${fb}${s}))`
8
- : `var(--ty-bg-${f}${s})`;
9
- return `
3
+ const color = (s) => fb
4
+ ? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
5
+ : `var(--ty-color-${f}${s})`;
6
+ const bg = (s) => fb
7
+ ? `var(--ty-bg-${f}${s}, var(--ty-bg-${fb}${s}))`
8
+ : `var(--ty-bg-${f}${s})`;
9
+ return `
10
10
  :host([flavor="${f}"]) {
11
- --calendar-month-accent: ${color("")};
12
- --calendar-month-selected-bg: ${bg("")};
13
- --calendar-month-selected-color: ${color("-strong")};
14
- --calendar-month-selected-hover-bg: ${bg("-bold")};
11
+ --calendar-month-accent: ${color("")};
12
+ --calendar-month-selected-bg: ${bg("")};
13
+ --calendar-month-selected-color: ${color("-strong")};
14
+ --calendar-month-selected-hover-bg: ${bg("-bold")};
15
15
  }
16
16
  :host([flavor="${f}+"]) {
17
- --calendar-month-accent: ${color("-strong")};
18
- --calendar-month-selected-bg: ${bg("-bold")};
19
- --calendar-month-selected-color: ${color("-strong")};
20
- --calendar-month-selected-hover-bg: ${bg("-bold")};
17
+ --calendar-month-accent: ${color("-strong")};
18
+ --calendar-month-selected-bg: ${bg("-bold")};
19
+ --calendar-month-selected-color: ${color("-strong")};
20
+ --calendar-month-selected-hover-bg: ${bg("-bold")};
21
21
  }
22
22
  :host([flavor="${f}-"]) {
23
- --calendar-month-accent: ${color("-soft")};
24
- --calendar-month-selected-bg: ${bg("-soft")};
25
- --calendar-month-selected-color: ${color("")};
26
- --calendar-month-selected-hover-bg: ${bg("")};
23
+ --calendar-month-accent: ${color("-soft")};
24
+ --calendar-month-selected-bg: ${bg("-soft")};
25
+ --calendar-month-selected-color: ${color("")};
26
+ --calendar-month-selected-hover-bg: ${bg("")};
27
27
  }
28
28
  `;
29
29
  };
30
30
  export const calendarMonthCustomFlavorCss = (base) => calendarMonthFlavor(base, "neutral");
31
31
  export const calendarMonthStyles = `
32
- /* Theming tokens are applied as var(--ty-calendar-*, <default>) at point
33
- of use (not declared on :host) so consumers can override any of them
34
- from outside the shadow root. The 3 accent aliases — --ty-calendar-accent,
35
- --ty-calendar-today-accent, --ty-calendar-muted — still cascade into the
36
- derived defaults, so overriding one retints the related cells. */
37
-
38
32
  .calendar-flex-container {
39
- display: flex;
40
- flex-direction: column;
41
- box-sizing: border-box;
42
- gap: 0;
43
- padding: 0.75rem;
44
- border-radius: var(--ty-radius-md);
45
- font-family: inherit;
46
- user-select: none;
47
- width: var(--calendar-width, fit-content);
48
- min-width: 280px;
49
- max-width: var(--calendar-max-width, none);
50
- }
51
-
52
- /* Rows: header + 6 day rows */
33
+ display: flex;
34
+ flex-direction: column;
35
+ box-sizing: border-box;
36
+ gap: 0;
37
+ padding: 0.75rem;
38
+ border-radius: var(--ty-radius-md);
39
+ font-family: inherit;
40
+ user-select: none;
41
+ width: var(--calendar-width, fit-content);
42
+ min-width: 280px;
43
+ max-width: var(--calendar-max-width, none);
44
+ }
53
45
  .calendar-row {
54
- display: flex;
55
- flex: 1;
56
- min-height: 0;
46
+ display: flex;
47
+ flex: 1;
48
+ min-height: 0;
57
49
  }
58
-
59
50
  .calendar-header-row {
60
- flex: 0 0 auto;
61
- color: var(--ty-calendar-header-color, var(--ty-color-neutral-soft));
51
+ flex: 0 0 auto;
52
+ color: var(--ty-calendar-header-color, var(--ty-color-neutral-soft));
62
53
  }
63
-
64
54
  .calendar-day-row {
65
- flex: 1;
66
- min-height: 2rem;
67
- margin-bottom: 0.125rem;
55
+ flex: 1;
56
+ min-height: 2rem;
57
+ margin-bottom: 0.125rem;
68
58
  }
69
-
70
59
  .calendar-cell {
71
- flex: 1;
72
- display: flex;
73
- align-items: center;
74
- justify-content: center;
75
- min-width: 0;
76
- position: relative;
77
- box-sizing: border-box;
78
- }
79
-
60
+ flex: 1;
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: center;
64
+ min-width: 0;
65
+ position: relative;
66
+ box-sizing: border-box;
67
+ }
80
68
  .calendar-header-cell {
81
- text-align: center;
82
- font-weight: 500;
83
- text-transform: uppercase;
84
- padding: 0.25rem;
85
- letter-spacing: 0.05em;
69
+ text-align: center;
70
+ font-weight: 500;
71
+ text-transform: uppercase;
72
+ padding: 0.25rem;
73
+ letter-spacing: 0.05em;
86
74
  }
87
-
88
75
  .calendar-day-cell {
89
- aspect-ratio: 1;
90
-
91
- display: flex;
92
- align-items: center;
93
- justify-content: center;
94
- flex-direction: column;
95
-
96
- margin: 0.125rem;
97
-
98
- /* Visual: ghost cells — no boxes; the border is a theming hook only */
99
- border-radius: var(--ty-calendar-day-radius, 0.5rem);
100
- border: 1px solid var(--ty-calendar-day-border, transparent);
101
- background-color: var(--ty-calendar-day-bg, transparent);
102
- color: var(--ty-calendar-day-color, var(--ty-calendar-muted, var(--ty-text)));
103
- cursor: pointer;
104
- transition: var(--ty-local-transition, background-color 0.15s ease, color 0.15s ease);
105
-
106
- font-weight: 400;
107
- font-variant-numeric: tabular-nums;
108
- }
109
-
110
- /* Hover: soft rounded pill, no border flash */
76
+ aspect-ratio: 1;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ flex-direction: column;
81
+ margin: 0.125rem;
82
+ border-radius: var(--ty-calendar-day-radius, 0.5rem);
83
+ border: 1px solid var(--ty-calendar-day-border, transparent);
84
+ background-color: var(--ty-calendar-day-bg, transparent);
85
+ color: var(--ty-calendar-day-color, var(--ty-calendar-muted, var(--ty-text)));
86
+ cursor: pointer;
87
+ transition: var(--ty-local-transition, background-color 0.15s ease, color 0.15s ease);
88
+ font-weight: 400;
89
+ font-variant-numeric: tabular-nums;
90
+ }
111
91
  .calendar-day-cell:hover {
112
- color: var(--ty-calendar-day-hover-color, var(--ty-text-strong));
113
- background-color: var(--ty-calendar-day-hover-bg, var(--ty-bg-neutral-soft));
114
- border-color: var(--ty-calendar-day-hover-border, transparent);
115
- }
116
-
117
- /* Keyboard focus ring (roving tabindex — see calendar-month.ts's render()).
118
- :focus-visible, not :focus, so mouse/pointerdown activation doesn't flash
119
- a ring; only Tab-in / arrow-key navigation does. */
92
+ color: var(--ty-calendar-day-hover-color, var(--ty-text-strong));
93
+ background-color: var(--ty-calendar-day-hover-bg, var(--ty-bg-neutral-soft));
94
+ border-color: var(--ty-calendar-day-hover-border, transparent);
95
+ }
120
96
  .calendar-day-cell:focus-visible {
121
- outline: none;
122
- box-shadow: 0 0 0 2px var(--calendar-month-accent, var(--ty-color-primary));
97
+ outline: none;
98
+ box-shadow: 0 0 0 2px var(--calendar-month-accent, var(--ty-color-primary));
123
99
  }
124
-
125
- /* Today: accent number, no slab — never collides with hover, and the
126
- selected pill wins when today is picked */
127
100
  .calendar-day-cell.today {
128
- background-color: var(--ty-calendar-today-bg, transparent);
129
- color: var(--ty-calendar-today-color, var(--ty-calendar-today-accent, var(--calendar-month-accent, var(--ty-color-primary))));
130
- border-color: var(--ty-calendar-today-border, transparent);
131
- font-weight: 600;
101
+ background-color: var(--ty-calendar-today-bg, transparent);
102
+ color: var(--ty-calendar-today-color, var(--ty-calendar-today-accent, var(--calendar-month-accent, var(--ty-color-primary))));
103
+ border-color: var(--ty-calendar-today-border, transparent);
104
+ font-weight: 600;
132
105
  }
133
-
134
- /* Weekend: no distinction by default (hook kept for theming) */
135
106
  .calendar-day-cell.weekend {
136
- color: var(--ty-calendar-weekend-color, var(--ty-calendar-day-color, var(--ty-text)));
137
- }
138
-
139
- /* Other Month - Muted.
140
- Was color: var(--ty-color-neutral-faint) at opacity 0.5 — -faint alone is
141
- only ~2.5:1 against the content surface (already under the 4.5:1 AA text
142
- minimum), and blending it toward the background via opacity made it
143
- worse (~1.5:1 in light mode). --ty-calendar-other-month-color is its own
144
- token (tyrell.css :root / html.dark) calibrated to actually pass, with
145
- opacity dropped rather than layered on top. */
107
+ color: var(--ty-calendar-weekend-color, var(--ty-calendar-day-color, var(--ty-text)));
108
+ }
146
109
  .calendar-day-cell.other-month {
147
- color: var(--ty-calendar-other-month-color, #6b7280);
110
+ color: var(--ty-calendar-other-month-color, #6b7280);
148
111
  }
149
-
150
112
  .calendar-day-cell.other-month:hover {
151
- color: var(--ty-calendar-day-hover-color, var(--ty-color-neutral-strong));
152
- background-color: var(--ty-calendar-day-hover-bg, var(--ty-bg-neutral-soft));
153
- opacity: 0.7;
113
+ color: var(--ty-calendar-day-hover-color, var(--ty-color-neutral-strong));
114
+ background-color: var(--ty-calendar-day-hover-bg, var(--ty-bg-neutral-soft));
115
+ opacity: 0.7;
154
116
  }
155
-
156
- /* Disabled - outside min/max bounds */
157
117
  .calendar-day-cell.disabled {
158
- color: var(--ty-calendar-disabled-color, var(--ty-color-neutral-faint));
159
- opacity: var(--ty-calendar-disabled-opacity, 0.35);
160
- cursor: default;
161
- pointer-events: none;
118
+ color: var(--ty-calendar-disabled-color, var(--ty-color-neutral-faint));
119
+ opacity: var(--ty-calendar-disabled-opacity, 0.35);
120
+ cursor: default;
121
+ pointer-events: none;
162
122
  }
163
-
164
- /* Selected: the one strong element in the grid */
165
123
  .calendar-day-cell.selected {
166
- background-color: var(--ty-calendar-selected-bg, var(--calendar-month-selected-bg, var(--ty-bg-primary)));
167
- color: var(--ty-calendar-selected-color, var(--calendar-month-selected-color, var(--ty-color-primary-strong)));
168
- border-color: var(--ty-calendar-selected-border, var(--ty-calendar-accent, var(--calendar-month-accent, transparent)));
169
- font-weight: 600;
124
+ background-color: var(--ty-calendar-selected-bg, var(--calendar-month-selected-bg, var(--ty-bg-primary)));
125
+ color: var(--ty-calendar-selected-color, var(--calendar-month-selected-color, var(--ty-color-primary-strong)));
126
+ border-color: var(--ty-calendar-selected-border, var(--ty-calendar-accent, var(--calendar-month-accent, transparent)));
127
+ font-weight: 600;
170
128
  }
171
-
172
129
  .calendar-day-cell.selected:hover {
173
- background-color: var(--ty-calendar-selected-hover-bg, var(--calendar-month-selected-hover-bg, var(--ty-bg-primary-bold)));
174
- border-color: var(--ty-calendar-selected-hover-border, transparent);
130
+ background-color: var(--ty-calendar-selected-hover-bg, var(--calendar-month-selected-hover-bg, var(--ty-bg-primary-bold)));
131
+ border-color: var(--ty-calendar-selected-hover-border, transparent);
175
132
  }
176
-
177
133
  .calendar-day-cell.selected.other-month {
178
- opacity: 0.7;
134
+ opacity: 0.7;
179
135
  }
180
-
181
136
  .calendar-size-sm {
182
- padding: 0.5rem;
183
- min-width: 240px;
137
+ padding: 0.5rem;
138
+ min-width: 240px;
184
139
  }
185
-
186
140
  .calendar-size-sm .calendar-header-cell {
187
- font-size: 0.625rem;
188
- padding: 0.125rem;
141
+ font-size: 0.625rem;
142
+ padding: 0.125rem;
189
143
  }
190
-
191
144
  .calendar-size-sm .calendar-day-cell {
192
- font-size: 0.75rem;
193
- margin: 0.0625rem;
145
+ font-size: 0.75rem;
146
+ margin: 0.0625rem;
194
147
  }
195
-
196
148
  .calendar-size-sm .calendar-day-row {
197
- min-height: 1.5rem;
149
+ min-height: 1.5rem;
198
150
  }
199
-
200
151
  .calendar-size-md {
201
- padding: 0.75rem;
202
- min-width: 280px;
152
+ padding: 0.75rem;
153
+ min-width: 280px;
203
154
  }
204
-
205
155
  .calendar-size-md .calendar-header-cell {
206
- font-size: 0.6875rem;
207
- padding: 0.25rem;
156
+ font-size: 0.6875rem;
157
+ padding: 0.25rem;
208
158
  }
209
-
210
159
  .calendar-size-md .calendar-day-cell {
211
- font-size: 0.8125rem;
212
- margin: 0.125rem;
160
+ font-size: 0.8125rem;
161
+ margin: 0.125rem;
213
162
  }
214
-
215
163
  .calendar-size-md .calendar-day-row {
216
- min-height: 2rem;
164
+ min-height: 2rem;
217
165
  }
218
-
219
166
  .calendar-size-lg {
220
- padding: 1rem;
221
- min-width: 360px;
167
+ padding: 1rem;
168
+ min-width: 360px;
222
169
  }
223
-
224
170
  .calendar-size-lg .calendar-header-cell {
225
- font-size: 0.75rem;
226
- padding: 0.375rem;
171
+ font-size: 0.75rem;
172
+ padding: 0.375rem;
227
173
  }
228
-
229
174
  .calendar-size-lg .calendar-day-cell {
230
- font-size: 0.875rem;
231
- margin: 0.1875rem;
175
+ font-size: 0.875rem;
176
+ margin: 0.1875rem;
232
177
  }
233
-
234
178
  .calendar-size-lg .calendar-day-row {
235
- min-height: 2.5rem;
179
+ min-height: 2.5rem;
236
180
  }
237
-
238
- /* Kept for backwards compatibility */
239
181
  .calendar-day {
240
- width: 100%;
241
- height: 100%;
242
- display: flex;
243
- flex-direction: column;
244
- align-items: center;
245
- justify-content: center;
246
- box-sizing: border-box;
247
- }
248
-
249
- /* Flavor variants set --calendar-month-*, consumed above */
182
+ width: 100%;
183
+ height: 100%;
184
+ display: flex;
185
+ flex-direction: column;
186
+ align-items: center;
187
+ justify-content: center;
188
+ box-sizing: border-box;
189
+ }
250
190
  ${FLAVORS.map((f) => calendarMonthFlavor(f)).join("")}
251
191
  `;
@@ -1,110 +1,91 @@
1
1
  export const calendarNavigationStyles = `
2
- /* Theming tokens applied as var(--ty-calendar-nav-*, <default>) at point of
3
- use (NOT on :host) so consumers can override them from outside — this
4
- component is nested inside ty-calendar's shadow, so a :host default would
5
- block inherited overrides. --ty-calendar-accent still cascades in. */
6
-
7
2
  :host([data-size="md"]) {
8
- --nav-btn-size: 2rem;
9
- --nav-btn-icon-size: 1.25rem;
10
- --nav-font-size: 1rem;
11
- --nav-padding: 0.5rem 0.75rem;
12
- --nav-default-width: 280px;
3
+ --nav-btn-size: 2rem;
4
+ --nav-btn-icon-size: 1.25rem;
5
+ --nav-font-size: 1rem;
6
+ --nav-padding: 0.5rem 0.75rem;
7
+ --nav-default-width: 280px;
13
8
  }
14
-
15
9
  :host([data-size="sm"]) {
16
- --nav-btn-size: 1.5rem;
17
- --nav-btn-icon-size: 1rem;
18
- --nav-font-size: 0.875rem;
19
- --nav-padding: 0.375rem 0.5rem;
20
- --nav-default-width: 240px;
10
+ --nav-btn-size: 1.5rem;
11
+ --nav-btn-icon-size: 1rem;
12
+ --nav-font-size: 0.875rem;
13
+ --nav-padding: 0.375rem 0.5rem;
14
+ --nav-default-width: 240px;
21
15
  }
22
-
23
16
  :host([data-size="lg"]) {
24
- --nav-btn-size: 2.5rem;
25
- --nav-btn-icon-size: 1.5rem;
26
- --nav-font-size: 1.125rem;
27
- --nav-padding: 0.625rem 1rem;
28
- --nav-default-width: 360px;
17
+ --nav-btn-size: 2.5rem;
18
+ --nav-btn-icon-size: 1.5rem;
19
+ --nav-font-size: 1.125rem;
20
+ --nav-padding: 0.625rem 1rem;
21
+ --nav-default-width: 360px;
29
22
  }
30
-
31
23
  .calendar-navigation-header {
32
- display: flex;
33
- align-items: center;
34
- justify-content: space-between;
35
- padding: var(--nav-padding);
36
- font-family: inherit;
37
- user-select: none;
38
- width: var(--nav-width, var(--nav-default-width));
39
- box-sizing: border-box;
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: space-between;
27
+ padding: var(--nav-padding);
28
+ font-family: inherit;
29
+ user-select: none;
30
+ width: var(--nav-width, var(--nav-default-width));
31
+ box-sizing: border-box;
40
32
  }
41
-
42
- /* Navigation groups: left, center, right */
43
33
  .nav-group {
44
- display: flex;
45
- align-items: center;
46
- gap: 0.25rem;
34
+ display: flex;
35
+ align-items: center;
36
+ gap: 0.25rem;
47
37
  }
48
-
49
38
  .nav-group-left,
50
39
  .nav-group-right {
51
- flex: 0 0 auto;
40
+ flex: 0 0 auto;
52
41
  }
53
-
54
42
  .nav-group-center {
55
- flex: 1;
56
- justify-content: center;
43
+ flex: 1;
44
+ justify-content: center;
57
45
  }
58
-
59
46
  .nav-btn {
60
- display: inline-flex;
61
- align-items: center;
62
- justify-content: center;
63
- width: var(--nav-btn-size);
64
- height: var(--nav-btn-size);
65
- padding: 0;
66
- border: none;
67
- border-radius: var(--ty-radius-base);
68
- background-color: transparent;
69
- color: var(--ty-calendar-nav-color, var(--ty-color-neutral));
70
- cursor: pointer;
71
- transition: var(--ty-local-transition, all 0.15s ease);
72
- outline: none;
47
+ display: inline-flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ width: var(--nav-btn-size);
51
+ height: var(--nav-btn-size);
52
+ padding: 0;
53
+ border: none;
54
+ border-radius: var(--ty-radius-base);
55
+ background-color: transparent;
56
+ color: var(--ty-calendar-nav-color, var(--ty-color-neutral));
57
+ cursor: pointer;
58
+ transition: var(--ty-local-transition, all 0.15s ease);
59
+ outline: none;
73
60
  }
74
-
75
61
  .nav-btn:hover {
76
- background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));
77
- color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));
62
+ background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));
63
+ color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));
78
64
  }
79
-
80
65
  .nav-btn:active {
81
- background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));
82
- transform: scale(0.95);
66
+ background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));
67
+ transform: scale(0.95);
83
68
  }
84
-
85
69
  .nav-btn:disabled {
86
- opacity: 0.35;
87
- cursor: default;
88
- pointer-events: none;
70
+ opacity: 0.35;
71
+ cursor: default;
72
+ pointer-events: none;
89
73
  }
90
-
91
74
  .nav-btn:focus-visible {
92
- outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));
93
- outline-offset: 2px;
75
+ outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));
76
+ outline-offset: 2px;
94
77
  }
95
-
96
78
  .nav-btn svg {
97
- width: var(--nav-btn-icon-size);
98
- height: var(--nav-btn-icon-size);
99
- display: block;
79
+ width: var(--nav-btn-icon-size);
80
+ height: var(--nav-btn-icon-size);
81
+ display: block;
100
82
  }
101
-
102
83
  .month-year-display {
103
- font-size: var(--nav-font-size);
104
- font-weight: 600;
105
- color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));
106
- text-align: center;
107
- white-space: nowrap;
108
- letter-spacing: -0.01em;
84
+ font-size: var(--nav-font-size);
85
+ font-weight: 600;
86
+ color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));
87
+ text-align: center;
88
+ white-space: nowrap;
89
+ letter-spacing: -0.01em;
109
90
  }
110
91
  `;
@@ -1,15 +1,14 @@
1
1
  export const calendarStyles = `
2
2
  .calendar-container {
3
- display: flex;
4
- flex-direction: column;
5
- gap: 0.125rem;
6
- box-sizing: border-box;
7
- font-family: inherit;
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: 0.125rem;
6
+ box-sizing: border-box;
7
+ font-family: inherit;
8
8
  }
9
-
10
9
  @media (max-width: 320px) {
11
- .calendar-container {
12
- gap: 0.375rem;
13
- }
10
+ .calendar-container {
11
+ gap: 0.375rem;
12
+ }
14
13
  }
15
14
  `;