tyrell-components 1.0.0-RC13 → 1.0.0-RC15

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 (358) hide show
  1. package/README.md +10 -2
  2. package/css/tyrell-theme.css +192 -180
  3. package/css/tyrell.css +23 -0
  4. package/dist/tyrell-colors-static.css +1 -316
  5. package/dist/tyrell-theme.css +1 -1454
  6. package/dist/tyrell.css +1 -1371
  7. package/dist/tyrell.js +1 -1
  8. package/lib/base/ty-component.d.ts +20 -10
  9. package/lib/base/ty-component.js +196 -319
  10. package/lib/components/button.d.ts +3 -17
  11. package/lib/components/button.js +261 -295
  12. package/lib/components/calendar-month.d.ts +4 -50
  13. package/lib/components/calendar-month.js +443 -582
  14. package/lib/components/calendar-navigation.d.ts +3 -48
  15. package/lib/components/calendar-navigation.js +239 -362
  16. package/lib/components/calendar.d.ts +8 -83
  17. package/lib/components/calendar.js +616 -829
  18. package/lib/components/checkbox.d.ts +5 -72
  19. package/lib/components/checkbox.js +273 -416
  20. package/lib/components/copy.d.ts +4 -57
  21. package/lib/components/copy.js +280 -397
  22. package/lib/components/date-picker.d.ts +21 -163
  23. package/lib/components/date-picker.js +1143 -1674
  24. package/lib/components/file-upload.d.ts +9 -15
  25. package/lib/components/file-upload.js +404 -426
  26. package/lib/components/icon.d.ts +3 -24
  27. package/lib/components/icon.js +141 -230
  28. package/lib/components/input.d.ts +8 -108
  29. package/lib/components/input.js +593 -784
  30. package/lib/components/modal.d.ts +17 -26
  31. package/lib/components/modal.js +340 -484
  32. package/lib/components/option.d.ts +2 -9
  33. package/lib/components/option.js +168 -216
  34. package/lib/components/popup.d.ts +2 -17
  35. package/lib/components/popup.js +249 -380
  36. package/lib/components/radio.d.ts +5 -25
  37. package/lib/components/radio.js +407 -461
  38. package/lib/components/resize-observer.d.ts +3 -30
  39. package/lib/components/resize-observer.js +69 -103
  40. package/lib/components/scroll-container.d.ts +2 -12
  41. package/lib/components/scroll-container.js +293 -338
  42. package/lib/components/select.d.ts +87 -159
  43. package/lib/components/select.js +1609 -2090
  44. package/lib/components/selected-tags.d.ts +5 -48
  45. package/lib/components/selected-tags.js +188 -276
  46. package/lib/components/step.d.ts +1 -6
  47. package/lib/components/step.js +62 -68
  48. package/lib/components/switch.d.ts +1 -12
  49. package/lib/components/switch.js +214 -247
  50. package/lib/components/tab.d.ts +1 -6
  51. package/lib/components/tab.js +62 -69
  52. package/lib/components/tabs.d.ts +6 -63
  53. package/lib/components/tabs.js +545 -777
  54. package/lib/components/tag.d.ts +3 -37
  55. package/lib/components/tag.js +236 -335
  56. package/lib/components/textarea.d.ts +7 -87
  57. package/lib/components/textarea.js +457 -627
  58. package/lib/components/tooltip.d.ts +3 -11
  59. package/lib/components/tooltip.js +307 -443
  60. package/lib/components/wizard.d.ts +6 -54
  61. package/lib/components/wizard.js +405 -618
  62. package/lib/icons/fontawesome/brands.d.ts +0 -1
  63. package/lib/icons/fontawesome/brands.js +0 -8
  64. package/lib/icons/fontawesome/regular.d.ts +0 -1
  65. package/lib/icons/fontawesome/regular.js +0 -8
  66. package/lib/icons/fontawesome/solid.d.ts +0 -1
  67. package/lib/icons/fontawesome/solid.js +0 -8
  68. package/lib/icons/heroicons/micro.d.ts +0 -1
  69. package/lib/icons/heroicons/micro.js +392 -400
  70. package/lib/icons/heroicons/mini.d.ts +0 -1
  71. package/lib/icons/heroicons/mini.js +382 -390
  72. package/lib/icons/heroicons/outline.d.ts +0 -1
  73. package/lib/icons/heroicons/outline.js +337 -345
  74. package/lib/icons/heroicons/solid.d.ts +0 -1
  75. package/lib/icons/heroicons/solid.js +407 -415
  76. package/lib/icons/lucide.d.ts +0 -1
  77. package/lib/icons/lucide.js +24479 -26351
  78. package/lib/icons/material/filled.d.ts +0 -1
  79. package/lib/icons/material/filled.js +9653 -9663
  80. package/lib/icons/material/outlined.d.ts +0 -1
  81. package/lib/icons/material/outlined.js +10271 -10281
  82. package/lib/icons/material/round.d.ts +0 -1
  83. package/lib/icons/material/round.js +10495 -10505
  84. package/lib/icons/material/sharp.d.ts +0 -1
  85. package/lib/icons/material/sharp.js +9905 -9915
  86. package/lib/icons/material/two-tone.d.ts +0 -1
  87. package/lib/icons/material/two-tone.js +12792 -12802
  88. package/lib/index.d.ts +0 -1
  89. package/lib/index.js +21 -41
  90. package/lib/styles/button.d.ts +2 -20
  91. package/lib/styles/button.js +202 -404
  92. package/lib/styles/calendar-month.d.ts +1 -5
  93. package/lib/styles/calendar-month.js +127 -244
  94. package/lib/styles/calendar-navigation.d.ts +2 -6
  95. package/lib/styles/calendar-navigation.js +64 -104
  96. package/lib/styles/calendar.d.ts +1 -2
  97. package/lib/styles/calendar.js +9 -22
  98. package/lib/styles/checkbox.d.ts +0 -1
  99. package/lib/styles/checkbox.js +45 -94
  100. package/lib/styles/copy.d.ts +0 -1
  101. package/lib/styles/copy.js +67 -106
  102. package/lib/styles/custom-scrollbar.d.ts +1 -2
  103. package/lib/styles/custom-scrollbar.js +80 -115
  104. package/lib/styles/date-picker.d.ts +1 -5
  105. package/lib/styles/date-picker.js +261 -335
  106. package/lib/styles/field-size.d.ts +6 -0
  107. package/lib/styles/field-size.js +91 -0
  108. package/lib/styles/file-upload.d.ts +1 -2
  109. package/lib/styles/file-upload.js +143 -188
  110. package/lib/styles/icon.d.ts +2 -6
  111. package/lib/styles/icon.js +92 -170
  112. package/lib/styles/input.d.ts +1 -6
  113. package/lib/styles/input.js +125 -290
  114. package/lib/styles/modal.d.ts +1 -2
  115. package/lib/styles/modal.js +71 -108
  116. package/lib/styles/option.d.ts +2 -6
  117. package/lib/styles/option.js +49 -64
  118. package/lib/styles/popup.d.ts +1 -2
  119. package/lib/styles/popup.js +42 -77
  120. package/lib/styles/radio.d.ts +0 -1
  121. package/lib/styles/radio.js +69 -110
  122. package/lib/styles/resize-observer.d.ts +1 -2
  123. package/lib/styles/resize-observer.js +2 -12
  124. package/lib/styles/scroll-container.d.ts +1 -2
  125. package/lib/styles/scroll-container.js +100 -149
  126. package/lib/styles/select-base.d.ts +0 -1
  127. package/lib/styles/select-base.js +597 -785
  128. package/lib/styles/select.d.ts +1 -2
  129. package/lib/styles/select.js +140 -236
  130. package/lib/styles/step.d.ts +1 -2
  131. package/lib/styles/step.js +22 -33
  132. package/lib/styles/switch.d.ts +0 -1
  133. package/lib/styles/switch.js +34 -73
  134. package/lib/styles/tab.d.ts +1 -2
  135. package/lib/styles/tab.js +22 -34
  136. package/lib/styles/tabs.d.ts +3 -11
  137. package/lib/styles/tabs.js +190 -222
  138. package/lib/styles/tag.d.ts +1 -5
  139. package/lib/styles/tag.js +136 -218
  140. package/lib/styles/textarea.d.ts +1 -2
  141. package/lib/styles/textarea.js +210 -319
  142. package/lib/styles/tooltip.d.ts +0 -1
  143. package/lib/styles/tooltip.js +3 -13
  144. package/lib/styles/wizard.d.ts +5 -21
  145. package/lib/styles/wizard.js +170 -306
  146. package/lib/types/common.d.ts +2 -2
  147. package/lib/types/common.js +6 -17
  148. package/lib/utils/calendar-utils.d.ts +4 -21
  149. package/lib/utils/calendar-utils.js +100 -273
  150. package/lib/utils/custom-scrollbar.d.ts +6 -20
  151. package/lib/utils/custom-scrollbar.js +273 -317
  152. package/lib/utils/flavor-sheet.d.ts +0 -1
  153. package/lib/utils/flavor-sheet.js +14 -37
  154. package/lib/utils/icon-registry.d.ts +0 -2
  155. package/lib/utils/icon-registry.js +137 -243
  156. package/lib/utils/icons.d.ts +0 -1
  157. package/lib/utils/icons.js +0 -9
  158. package/lib/utils/loader-registry.d.ts +0 -1
  159. package/lib/utils/loader-registry.js +3 -35
  160. package/lib/utils/locale.d.ts +2 -23
  161. package/lib/utils/locale.js +34 -120
  162. package/lib/utils/mobile.d.ts +0 -1
  163. package/lib/utils/mobile.js +1 -18
  164. package/lib/utils/number-format.d.ts +6 -3
  165. package/lib/utils/number-format.js +54 -110
  166. package/lib/utils/positioning.d.ts +50 -7
  167. package/lib/utils/positioning.js +224 -234
  168. package/lib/utils/property-capture.d.ts +5 -27
  169. package/lib/utils/property-capture.js +36 -144
  170. package/lib/utils/property-manager.d.ts +0 -1
  171. package/lib/utils/property-manager.js +126 -196
  172. package/lib/utils/resize-observer.d.ts +0 -1
  173. package/lib/utils/resize-observer.js +23 -59
  174. package/lib/utils/scroll-lock.d.ts +4 -11
  175. package/lib/utils/scroll-lock.js +65 -172
  176. package/lib/utils/styles.d.ts +0 -1
  177. package/lib/utils/styles.js +17 -41
  178. package/lib/version.d.ts +1 -2
  179. package/lib/version.js +1 -11
  180. package/package.json +4 -4
  181. package/lib/base/ty-component.d.ts.map +0 -1
  182. package/lib/base/ty-component.js.map +0 -1
  183. package/lib/components/button.d.ts.map +0 -1
  184. package/lib/components/button.js.map +0 -1
  185. package/lib/components/calendar-month.d.ts.map +0 -1
  186. package/lib/components/calendar-month.js.map +0 -1
  187. package/lib/components/calendar-navigation.d.ts.map +0 -1
  188. package/lib/components/calendar-navigation.js.map +0 -1
  189. package/lib/components/calendar.d.ts.map +0 -1
  190. package/lib/components/calendar.js.map +0 -1
  191. package/lib/components/checkbox.d.ts.map +0 -1
  192. package/lib/components/checkbox.js.map +0 -1
  193. package/lib/components/copy.d.ts.map +0 -1
  194. package/lib/components/copy.js.map +0 -1
  195. package/lib/components/date-picker.d.ts.map +0 -1
  196. package/lib/components/date-picker.js.map +0 -1
  197. package/lib/components/file-upload.d.ts.map +0 -1
  198. package/lib/components/file-upload.js.map +0 -1
  199. package/lib/components/icon.d.ts.map +0 -1
  200. package/lib/components/icon.js.map +0 -1
  201. package/lib/components/input.d.ts.map +0 -1
  202. package/lib/components/input.js.map +0 -1
  203. package/lib/components/modal.d.ts.map +0 -1
  204. package/lib/components/modal.js.map +0 -1
  205. package/lib/components/option.d.ts.map +0 -1
  206. package/lib/components/option.js.map +0 -1
  207. package/lib/components/popup.d.ts.map +0 -1
  208. package/lib/components/popup.js.map +0 -1
  209. package/lib/components/radio.d.ts.map +0 -1
  210. package/lib/components/radio.js.map +0 -1
  211. package/lib/components/resize-observer.d.ts.map +0 -1
  212. package/lib/components/resize-observer.js.map +0 -1
  213. package/lib/components/scroll-container.d.ts.map +0 -1
  214. package/lib/components/scroll-container.js.map +0 -1
  215. package/lib/components/select.d.ts.map +0 -1
  216. package/lib/components/select.js.map +0 -1
  217. package/lib/components/selected-tags.d.ts.map +0 -1
  218. package/lib/components/selected-tags.js.map +0 -1
  219. package/lib/components/step.d.ts.map +0 -1
  220. package/lib/components/step.js.map +0 -1
  221. package/lib/components/switch.d.ts.map +0 -1
  222. package/lib/components/switch.js.map +0 -1
  223. package/lib/components/tab.d.ts.map +0 -1
  224. package/lib/components/tab.js.map +0 -1
  225. package/lib/components/tabs.d.ts.map +0 -1
  226. package/lib/components/tabs.js.map +0 -1
  227. package/lib/components/tag.d.ts.map +0 -1
  228. package/lib/components/tag.js.map +0 -1
  229. package/lib/components/textarea.d.ts.map +0 -1
  230. package/lib/components/textarea.js.map +0 -1
  231. package/lib/components/tooltip.d.ts.map +0 -1
  232. package/lib/components/tooltip.js.map +0 -1
  233. package/lib/components/wizard.d.ts.map +0 -1
  234. package/lib/components/wizard.js.map +0 -1
  235. package/lib/icons/fontawesome/brands.d.ts.map +0 -1
  236. package/lib/icons/fontawesome/brands.js.map +0 -1
  237. package/lib/icons/fontawesome/regular.d.ts.map +0 -1
  238. package/lib/icons/fontawesome/regular.js.map +0 -1
  239. package/lib/icons/fontawesome/solid.d.ts.map +0 -1
  240. package/lib/icons/fontawesome/solid.js.map +0 -1
  241. package/lib/icons/heroicons/micro.d.ts.map +0 -1
  242. package/lib/icons/heroicons/micro.js.map +0 -1
  243. package/lib/icons/heroicons/mini.d.ts.map +0 -1
  244. package/lib/icons/heroicons/mini.js.map +0 -1
  245. package/lib/icons/heroicons/outline.d.ts.map +0 -1
  246. package/lib/icons/heroicons/outline.js.map +0 -1
  247. package/lib/icons/heroicons/solid.d.ts.map +0 -1
  248. package/lib/icons/heroicons/solid.js.map +0 -1
  249. package/lib/icons/lucide.d.ts.map +0 -1
  250. package/lib/icons/lucide.js.map +0 -1
  251. package/lib/icons/material/filled.d.ts.map +0 -1
  252. package/lib/icons/material/filled.js.map +0 -1
  253. package/lib/icons/material/outlined.d.ts.map +0 -1
  254. package/lib/icons/material/outlined.js.map +0 -1
  255. package/lib/icons/material/round.d.ts.map +0 -1
  256. package/lib/icons/material/round.js.map +0 -1
  257. package/lib/icons/material/sharp.d.ts.map +0 -1
  258. package/lib/icons/material/sharp.js.map +0 -1
  259. package/lib/icons/material/two-tone.d.ts.map +0 -1
  260. package/lib/icons/material/two-tone.js.map +0 -1
  261. package/lib/index.d.ts.map +0 -1
  262. package/lib/index.js.map +0 -1
  263. package/lib/styles/button.d.ts.map +0 -1
  264. package/lib/styles/button.js.map +0 -1
  265. package/lib/styles/calendar-month.d.ts.map +0 -1
  266. package/lib/styles/calendar-month.js.map +0 -1
  267. package/lib/styles/calendar-navigation.d.ts.map +0 -1
  268. package/lib/styles/calendar-navigation.js.map +0 -1
  269. package/lib/styles/calendar.d.ts.map +0 -1
  270. package/lib/styles/calendar.js.map +0 -1
  271. package/lib/styles/checkbox.d.ts.map +0 -1
  272. package/lib/styles/checkbox.js.map +0 -1
  273. package/lib/styles/copy.d.ts.map +0 -1
  274. package/lib/styles/copy.js.map +0 -1
  275. package/lib/styles/custom-scrollbar.d.ts.map +0 -1
  276. package/lib/styles/custom-scrollbar.js.map +0 -1
  277. package/lib/styles/date-picker.d.ts.map +0 -1
  278. package/lib/styles/date-picker.js.map +0 -1
  279. package/lib/styles/file-upload.d.ts.map +0 -1
  280. package/lib/styles/file-upload.js.map +0 -1
  281. package/lib/styles/icon.d.ts.map +0 -1
  282. package/lib/styles/icon.js.map +0 -1
  283. package/lib/styles/input.d.ts.map +0 -1
  284. package/lib/styles/input.js.map +0 -1
  285. package/lib/styles/modal.d.ts.map +0 -1
  286. package/lib/styles/modal.js.map +0 -1
  287. package/lib/styles/multiselect.d.ts +0 -8
  288. package/lib/styles/multiselect.d.ts.map +0 -1
  289. package/lib/styles/multiselect.js +0 -849
  290. package/lib/styles/multiselect.js.map +0 -1
  291. package/lib/styles/option.d.ts.map +0 -1
  292. package/lib/styles/option.js.map +0 -1
  293. package/lib/styles/popup.d.ts.map +0 -1
  294. package/lib/styles/popup.js.map +0 -1
  295. package/lib/styles/radio.d.ts.map +0 -1
  296. package/lib/styles/radio.js.map +0 -1
  297. package/lib/styles/resize-observer.d.ts.map +0 -1
  298. package/lib/styles/resize-observer.js.map +0 -1
  299. package/lib/styles/scroll-container.d.ts.map +0 -1
  300. package/lib/styles/scroll-container.js.map +0 -1
  301. package/lib/styles/select-base.d.ts.map +0 -1
  302. package/lib/styles/select-base.js.map +0 -1
  303. package/lib/styles/select.d.ts.map +0 -1
  304. package/lib/styles/select.js.map +0 -1
  305. package/lib/styles/step.d.ts.map +0 -1
  306. package/lib/styles/step.js.map +0 -1
  307. package/lib/styles/switch.d.ts.map +0 -1
  308. package/lib/styles/switch.js.map +0 -1
  309. package/lib/styles/tab.d.ts.map +0 -1
  310. package/lib/styles/tab.js.map +0 -1
  311. package/lib/styles/tabs.d.ts.map +0 -1
  312. package/lib/styles/tabs.js.map +0 -1
  313. package/lib/styles/tag.d.ts.map +0 -1
  314. package/lib/styles/tag.js.map +0 -1
  315. package/lib/styles/textarea.d.ts.map +0 -1
  316. package/lib/styles/textarea.js.map +0 -1
  317. package/lib/styles/tooltip.d.ts.map +0 -1
  318. package/lib/styles/tooltip.js.map +0 -1
  319. package/lib/styles/wizard.d.ts.map +0 -1
  320. package/lib/styles/wizard.js.map +0 -1
  321. package/lib/types/common.d.ts.map +0 -1
  322. package/lib/types/common.js.map +0 -1
  323. package/lib/utils/calendar-utils.d.ts.map +0 -1
  324. package/lib/utils/calendar-utils.js.map +0 -1
  325. package/lib/utils/custom-scrollbar.d.ts.map +0 -1
  326. package/lib/utils/custom-scrollbar.js.map +0 -1
  327. package/lib/utils/flavor-sheet.d.ts.map +0 -1
  328. package/lib/utils/flavor-sheet.js.map +0 -1
  329. package/lib/utils/icon-registry.d.ts.map +0 -1
  330. package/lib/utils/icon-registry.js.map +0 -1
  331. package/lib/utils/icons.d.ts.map +0 -1
  332. package/lib/utils/icons.js.map +0 -1
  333. package/lib/utils/loader-registry.d.ts.map +0 -1
  334. package/lib/utils/loader-registry.js.map +0 -1
  335. package/lib/utils/locale.d.ts.map +0 -1
  336. package/lib/utils/locale.js.map +0 -1
  337. package/lib/utils/mobile.d.ts.map +0 -1
  338. package/lib/utils/mobile.js.map +0 -1
  339. package/lib/utils/number-format.d.ts.map +0 -1
  340. package/lib/utils/number-format.js.map +0 -1
  341. package/lib/utils/parse-boolean.d.ts +0 -39
  342. package/lib/utils/parse-boolean.d.ts.map +0 -1
  343. package/lib/utils/parse-boolean.js +0 -58
  344. package/lib/utils/parse-boolean.js.map +0 -1
  345. package/lib/utils/positioning.d.ts.map +0 -1
  346. package/lib/utils/positioning.js.map +0 -1
  347. package/lib/utils/property-capture.d.ts.map +0 -1
  348. package/lib/utils/property-capture.js.map +0 -1
  349. package/lib/utils/property-manager.d.ts.map +0 -1
  350. package/lib/utils/property-manager.js.map +0 -1
  351. package/lib/utils/resize-observer.d.ts.map +0 -1
  352. package/lib/utils/resize-observer.js.map +0 -1
  353. package/lib/utils/scroll-lock.d.ts.map +0 -1
  354. package/lib/utils/scroll-lock.js.map +0 -1
  355. package/lib/utils/styles.d.ts.map +0 -1
  356. package/lib/utils/styles.js.map +0 -1
  357. package/lib/version.d.ts.map +0 -1
  358. package/lib/version.js.map +0 -1
@@ -1,8 +1,4 @@
1
- /**
2
- * Calendar Month Styles
3
- * Improved design with better visual hierarchy and size variants
4
- */
1
+ /** Calendar Month Styles */
5
2
  /** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
6
3
  export declare const calendarMonthCustomFlavorCss: (base: string) => string;
7
4
  export declare const calendarMonthStyles: string;
8
- //# sourceMappingURL=calendar-month.d.ts.map
@@ -1,308 +1,191 @@
1
- /**
2
- * Calendar Month Styles
3
- * Improved design with better visual hierarchy and size variants
4
- */
5
1
  import { FLAVORS } from "../types/common.js";
6
- /* Flavor rules set --calendar-month-* local vars, wired in as the fallback
7
- BEHIND every existing --ty-calendar-* public override (so those keep
8
- working exactly as before) and AHEAD of the hardcoded primary default.
9
- Doubles as the per-instance override API for a specific flavor: e.g.
10
- `ty-calendar-month { --calendar-month-accent: ... }`. Fallback flavor
11
- `fb` is used for custom flavors so missing tokens degrade to neutral. */
12
2
  const calendarMonthFlavor = (f, fb) => {
13
- const color = (s) => fb
14
- ? `var(--ty-color-${f}${s}, var(--ty-color-${fb}${s}))`
15
- : `var(--ty-color-${f}${s})`;
16
- const bg = (s) => fb
17
- ? `var(--ty-bg-${f}${s}, var(--ty-bg-${fb}${s}))`
18
- : `var(--ty-bg-${f}${s})`;
19
- 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 `
20
10
  :host([flavor="${f}"]) {
21
- --calendar-month-accent: ${color("")};
22
- --calendar-month-selected-bg: ${bg("")};
23
- --calendar-month-selected-color: ${color("-strong")};
24
- --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")};
25
15
  }
26
16
  :host([flavor="${f}+"]) {
27
- --calendar-month-accent: ${color("-strong")};
28
- --calendar-month-selected-bg: ${bg("-bold")};
29
- --calendar-month-selected-color: ${color("-strong")};
30
- --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")};
31
21
  }
32
22
  :host([flavor="${f}-"]) {
33
- --calendar-month-accent: ${color("-soft")};
34
- --calendar-month-selected-bg: ${bg("-soft")};
35
- --calendar-month-selected-color: ${color("")};
36
- --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("")};
37
27
  }
38
28
  `;
39
29
  };
40
- /** Rules for one custom (non-built-in) flavor — see utils/flavor-sheet.ts. */
41
30
  export const calendarMonthCustomFlavorCss = (base) => calendarMonthFlavor(base, "neutral");
42
31
  export const calendarMonthStyles = `
43
- /* ============================================================================
44
- Theming Tokens
45
- Override these to retheme the calendar without touching the global palette.
46
- Defaults chain back to the global --ty-color-* / --ty-bg-* / --ty-border tokens.
47
- ============================================================================ */
48
-
49
- /* Theming tokens are applied as var(--ty-calendar-*, <default>) at point
50
- of use (not declared on :host) so consumers can override any of them
51
- from outside the shadow root. The 3 accent aliases — --ty-calendar-accent,
52
- --ty-calendar-today-accent, --ty-calendar-muted — still cascade into the
53
- derived defaults, so overriding one retints the related cells. */
54
-
55
- /* ============================================================================
56
- Base Calendar Container
57
- ============================================================================ */
58
-
59
32
  .calendar-flex-container {
60
- display: flex;
61
- flex-direction: column;
62
- box-sizing: border-box;
63
- gap: 0;
64
- padding: 0.75rem;
65
- border-radius: var(--ty-radius-md);
66
- font-family: system-ui, sans-serif;
67
- user-select: none;
68
- width: var(--calendar-width, fit-content);
69
- min-width: 280px;
70
- max-width: var(--calendar-max-width, none);
71
- }
72
-
73
- /* ============================================================================
74
- Rows (Header + 6 Day Rows)
75
- ============================================================================ */
76
-
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: var(--ty-calendar-width, 280px);
43
+ max-width: var(--calendar-max-width, none);
44
+ }
77
45
  .calendar-row {
78
- display: flex;
79
- flex: 1;
80
- min-height: 0;
46
+ display: flex;
47
+ flex: 1;
48
+ min-height: 0;
81
49
  }
82
-
83
50
  .calendar-header-row {
84
- flex: 0 0 auto;
85
- 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));
86
53
  }
87
-
88
54
  .calendar-day-row {
89
- flex: 1;
90
- min-height: 2rem;
91
- margin-bottom: 0.125rem;
92
- }
93
-
94
- /* ============================================================================
95
- Base Cell Styles
96
- ============================================================================ */
97
-
55
+ flex: 1;
56
+ min-height: 2rem;
57
+ margin-bottom: 0.125rem;
58
+ }
98
59
  .calendar-cell {
99
- flex: 1;
100
- display: flex;
101
- align-items: center;
102
- justify-content: center;
103
- min-width: 0;
104
- position: relative;
105
- box-sizing: border-box;
106
- }
107
-
108
- /* ============================================================================
109
- Header Cells
110
- ============================================================================ */
111
-
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
+ }
112
68
  .calendar-header-cell {
113
- text-align: center;
114
- font-weight: 500;
115
- text-transform: uppercase;
116
- padding: 0.25rem;
117
- letter-spacing: 0.05em;
118
- }
119
-
120
- /* ============================================================================
121
- Day Cells - Square with Better Visual Hierarchy
122
- ============================================================================ */
123
-
69
+ text-align: center;
70
+ font-weight: 500;
71
+ text-transform: uppercase;
72
+ padding: 0.25rem;
73
+ letter-spacing: 0.05em;
74
+ }
124
75
  .calendar-day-cell {
125
- /* Square cells */
126
- aspect-ratio: 1;
127
-
128
- /* Layout */
129
- display: flex;
130
- align-items: center;
131
- justify-content: center;
132
- flex-direction: column;
133
-
134
- /* Spacing */
135
- margin: 0.125rem;
136
-
137
- /* Visual: ghost cells — no boxes; the border is a theming hook only */
138
- border-radius: var(--ty-calendar-day-radius, 0.5rem);
139
- border: 1px solid var(--ty-calendar-day-border, transparent);
140
- background-color: var(--ty-calendar-day-bg, transparent);
141
- color: var(--ty-calendar-day-color, var(--ty-calendar-muted, var(--ty-text)));
142
- cursor: pointer;
143
- transition: var(--ty-local-transition, background-color 0.15s ease, color 0.15s ease);
144
-
145
- /* Typography */
146
- font-weight: 400;
147
- font-variant-numeric: tabular-nums;
148
- }
149
-
150
- /* 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
+ }
151
91
  .calendar-day-cell:hover {
152
- color: var(--ty-calendar-day-hover-color, var(--ty-text-strong));
153
- background-color: var(--ty-calendar-day-hover-bg, var(--ty-bg-neutral-soft));
154
- border-color: var(--ty-calendar-day-hover-border, transparent);
155
- }
156
-
157
- /* Keyboard focus ring (roving tabindex — see calendar-month.ts's render()).
158
- :focus-visible, not :focus, so mouse/pointerdown activation doesn't flash
159
- 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
+ }
160
96
  .calendar-day-cell:focus-visible {
161
- outline: none;
162
- box-shadow: 0 0 0 2px var(--calendar-month-accent, var(--ty-color-primary));
163
- }
164
-
165
- /* ============================================================================
166
- Day States
167
- ============================================================================ */
168
-
169
- /* Today: accent number, no slab — never collides with hover, and the
170
- selected pill wins when today is picked */
97
+ outline: none;
98
+ box-shadow: 0 0 0 2px var(--calendar-month-accent, var(--ty-color-primary));
99
+ }
171
100
  .calendar-day-cell.today {
172
- background-color: var(--ty-calendar-today-bg, transparent);
173
- color: var(--ty-calendar-today-color, var(--ty-calendar-today-accent, var(--calendar-month-accent, var(--ty-color-primary))));
174
- border-color: var(--ty-calendar-today-border, transparent);
175
- 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;
176
105
  }
177
-
178
- /* Weekend: no distinction by default (hook kept for theming) */
179
106
  .calendar-day-cell.weekend {
180
- color: var(--ty-calendar-weekend-color, var(--ty-calendar-day-color, var(--ty-text)));
181
- }
182
-
183
- /* Other Month - Muted.
184
- Was color: var(--ty-color-neutral-faint) at opacity 0.5 — -faint alone is
185
- only ~2.5:1 against the content surface (already under the 4.5:1 AA text
186
- minimum), and blending it toward the background via opacity made it
187
- worse (~1.5:1 in light mode). --ty-calendar-other-month-color is its own
188
- token (tyrell.css :root / html.dark) calibrated to actually pass, with
189
- opacity dropped rather than layered on top. */
107
+ color: var(--ty-calendar-weekend-color, var(--ty-calendar-day-color, var(--ty-text)));
108
+ }
190
109
  .calendar-day-cell.other-month {
191
- color: var(--ty-calendar-other-month-color, #6b7280);
110
+ color: var(--ty-calendar-other-month-color, #6b7280);
192
111
  }
193
-
194
112
  .calendar-day-cell.other-month:hover {
195
- color: var(--ty-calendar-day-hover-color, var(--ty-color-neutral-strong));
196
- background-color: var(--ty-calendar-day-hover-bg, var(--ty-bg-neutral-soft));
197
- 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;
198
116
  }
199
-
200
- /* Disabled - outside min/max bounds */
201
117
  .calendar-day-cell.disabled {
202
- color: var(--ty-calendar-disabled-color, var(--ty-color-neutral-faint));
203
- opacity: var(--ty-calendar-disabled-opacity, 0.35);
204
- cursor: default;
205
- 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;
206
122
  }
207
-
208
- /* Selected: the one strong element in the grid */
209
123
  .calendar-day-cell.selected {
210
- background-color: var(--ty-calendar-selected-bg, var(--calendar-month-selected-bg, var(--ty-bg-primary)));
211
- color: var(--ty-calendar-selected-color, var(--calendar-month-selected-color, var(--ty-color-primary-strong)));
212
- border-color: var(--ty-calendar-selected-border, var(--ty-calendar-accent, var(--calendar-month-accent, transparent)));
213
- 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;
214
128
  }
215
-
216
129
  .calendar-day-cell.selected:hover {
217
- background-color: var(--ty-calendar-selected-hover-bg, var(--calendar-month-selected-hover-bg, var(--ty-bg-primary-bold)));
218
- 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);
219
132
  }
220
-
221
133
  .calendar-day-cell.selected.other-month {
222
- opacity: 0.7;
223
- }
224
-
225
- /* ============================================================================
226
- Size Variants
227
- ============================================================================ */
228
-
229
- /* Small - Compact (240px min-width) */
134
+ opacity: 0.7;
135
+ }
230
136
  .calendar-size-sm {
231
- padding: 0.5rem;
232
- min-width: 240px;
137
+ padding: 0.5rem;
138
+ min-width: var(--ty-calendar-width, 240px);
233
139
  }
234
-
235
140
  .calendar-size-sm .calendar-header-cell {
236
- font-size: 0.625rem;
237
- padding: 0.125rem;
141
+ font-size: 0.625rem;
142
+ padding: 0.125rem;
238
143
  }
239
-
240
144
  .calendar-size-sm .calendar-day-cell {
241
- font-size: 0.75rem;
242
- margin: 0.0625rem;
145
+ font-size: 0.75rem;
146
+ margin: 0.0625rem;
243
147
  }
244
-
245
148
  .calendar-size-sm .calendar-day-row {
246
- min-height: 1.5rem;
149
+ min-height: 1.5rem;
247
150
  }
248
-
249
- /* Medium - Default (280px min-width) */
250
151
  .calendar-size-md {
251
- padding: 0.75rem;
252
- min-width: 280px;
152
+ padding: 0.75rem;
153
+ min-width: var(--ty-calendar-width, 280px);
253
154
  }
254
-
255
155
  .calendar-size-md .calendar-header-cell {
256
- font-size: 0.6875rem;
257
- padding: 0.25rem;
156
+ font-size: 0.6875rem;
157
+ padding: 0.25rem;
258
158
  }
259
-
260
159
  .calendar-size-md .calendar-day-cell {
261
- font-size: 0.8125rem;
262
- margin: 0.125rem;
160
+ font-size: 0.8125rem;
161
+ margin: 0.125rem;
263
162
  }
264
-
265
163
  .calendar-size-md .calendar-day-row {
266
- min-height: 2rem;
164
+ min-height: 2rem;
267
165
  }
268
-
269
- /* Large - Spacious (360px min-width) */
270
166
  .calendar-size-lg {
271
- padding: 1rem;
272
- min-width: 360px;
167
+ padding: 1rem;
168
+ min-width: var(--ty-calendar-width, 360px);
273
169
  }
274
-
275
170
  .calendar-size-lg .calendar-header-cell {
276
- font-size: 0.75rem;
277
- padding: 0.375rem;
171
+ font-size: 0.75rem;
172
+ padding: 0.375rem;
278
173
  }
279
-
280
174
  .calendar-size-lg .calendar-day-cell {
281
- font-size: 0.875rem;
282
- margin: 0.1875rem;
175
+ font-size: 0.875rem;
176
+ margin: 0.1875rem;
283
177
  }
284
-
285
178
  .calendar-size-lg .calendar-day-row {
286
- min-height: 2.5rem;
179
+ min-height: 2.5rem;
287
180
  }
288
-
289
- /* ============================================================================
290
- Backwards Compatibility
291
- ============================================================================ */
292
-
293
181
  .calendar-day {
294
- width: 100%;
295
- height: 100%;
296
- display: flex;
297
- flex-direction: column;
298
- align-items: center;
299
- justify-content: center;
300
- box-sizing: border-box;
301
- }
302
-
303
- /* ============================================================================
304
- Flavor Variants (set --calendar-month-*, consumed above)
305
- ============================================================================ */
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
+ }
306
190
  ${FLAVORS.map((f) => calendarMonthFlavor(f)).join("")}
307
191
  `;
308
- //# sourceMappingURL=calendar-month.js.map
@@ -1,6 +1,2 @@
1
- /**
2
- * Calendar Navigation Styles
3
- * Clean, modern design with proper visual hierarchy and size variants
4
- */
5
- export declare const calendarNavigationStyles = "\n/* ============================================================================\n Size Variants (CSS Custom Properties)\n ============================================================================ */\n\n/* Theming tokens applied as var(--ty-calendar-nav-*, <default>) at point of\n use (NOT on :host) so consumers can override them from outside \u2014 this\n component is nested inside ty-calendar's shadow, so a :host default would\n block inherited overrides. --ty-calendar-accent still cascades in. */\n\n:host([data-size=\"md\"]) {\n --nav-btn-size: 2rem;\n --nav-btn-icon-size: 1.25rem;\n --nav-font-size: 1rem;\n --nav-padding: 0.5rem 0.75rem;\n --nav-default-width: 280px;\n}\n\n:host([data-size=\"sm\"]) {\n --nav-btn-size: 1.5rem;\n --nav-btn-icon-size: 1rem;\n --nav-font-size: 0.875rem;\n --nav-padding: 0.375rem 0.5rem;\n --nav-default-width: 240px;\n}\n\n:host([data-size=\"lg\"]) {\n --nav-btn-size: 2.5rem;\n --nav-btn-icon-size: 1.5rem;\n --nav-font-size: 1.125rem;\n --nav-padding: 0.625rem 1rem;\n --nav-default-width: 360px;\n}\n\n/* ============================================================================\n Main Navigation Header\n ============================================================================ */\n\n.calendar-navigation-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--nav-padding);\n font-family: system-ui, sans-serif;\n user-select: none;\n width: var(--nav-width, var(--nav-default-width));\n box-sizing: border-box;\n}\n\n/* ============================================================================\n Navigation Groups (Left, Center, Right)\n ============================================================================ */\n\n.nav-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.nav-group-left,\n.nav-group-right {\n flex: 0 0 auto;\n}\n\n.nav-group-center {\n flex: 1;\n justify-content: center;\n}\n\n/* ============================================================================\n Navigation Buttons\n ============================================================================ */\n\n.nav-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nav-btn-size);\n height: var(--nav-btn-size);\n padding: 0;\n border: none;\n border-radius: var(--ty-radius-base);\n background-color: transparent;\n color: var(--ty-calendar-nav-color, var(--ty-color-neutral));\n cursor: pointer;\n transition: var(--ty-local-transition, all 0.15s ease);\n outline: none;\n}\n\n.nav-btn:hover {\n background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));\n color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));\n}\n\n.nav-btn:active {\n background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));\n transform: scale(0.95);\n}\n\n.nav-btn:disabled {\n opacity: 0.35;\n cursor: default;\n pointer-events: none;\n}\n\n.nav-btn:focus-visible {\n outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));\n outline-offset: 2px;\n}\n\n/* SVG sizing */\n.nav-btn svg {\n width: var(--nav-btn-icon-size);\n height: var(--nav-btn-icon-size);\n display: block;\n}\n\n/* ============================================================================\n Month/Year Display (Center)\n ============================================================================ */\n\n.month-year-display {\n font-size: var(--nav-font-size);\n font-weight: 600;\n color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));\n text-align: center;\n white-space: nowrap;\n letter-spacing: -0.01em;\n}\n";
6
- //# sourceMappingURL=calendar-navigation.d.ts.map
1
+ /** Calendar Navigation Styles */
2
+ export declare const calendarNavigationStyles = "\n/* Theming tokens applied as var(--ty-calendar-nav-*, <default>) at point of\n use (NOT on :host) so consumers can override them from outside \u2014 this\n component is nested inside ty-calendar's shadow, so a :host default would\n block inherited overrides. --ty-calendar-accent still cascades in. */\n\n:host([data-size=\"md\"]) {\n --nav-btn-size: 2rem;\n --nav-btn-icon-size: 1.25rem;\n --nav-font-size: 0.875rem;\n --nav-padding: 0.5rem 0.75rem;\n --nav-default-width: 280px;\n}\n\n:host([data-size=\"sm\"]) {\n --nav-btn-size: 1.5rem;\n --nav-btn-icon-size: 1rem;\n --nav-font-size: 0.875rem;\n --nav-padding: 0.375rem 0.5rem;\n --nav-default-width: 240px;\n}\n\n:host([data-size=\"lg\"]) {\n --nav-btn-size: 2.5rem;\n --nav-btn-icon-size: 1.5rem;\n --nav-font-size: 0.875rem;\n --nav-padding: 0.625rem 1rem;\n --nav-default-width: 360px;\n}\n\n.calendar-navigation-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--nav-padding);\n font-family: inherit;\n user-select: none;\n /* --ty-calendar-width is the public knob: set it on ty-calendar (or any\n ancestor) and BOTH the nav and the day grid follow it, because custom\n properties inherit through shadow boundaries. --nav-default-width can't\n serve that role \u2014 it's declared on :host([data-size]) inside this shadow\n root, and a declaration on the element always beats a value inherited\n into it, so an outside override of it is silently dead. --nav-width\n (set inline by the width attribute) still wins over both. */\n width: var(--nav-width, var(--ty-calendar-width, var(--nav-default-width)));\n box-sizing: border-box;\n}\n\n/* Navigation groups: left, center, right */\n.nav-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.nav-group-left,\n.nav-group-right {\n flex: 0 0 auto;\n}\n\n.nav-group-center {\n flex: 1;\n justify-content: center;\n /* Flex items default to min-width:auto, i.e. they refuse to shrink below\n their content. A long month name (\"September 2026\") therefore widened\n this group and shoved the arrow groups outward \u2014 the nav visibly\n re-laid-out as you paged month to month. min-width:0 lets the centre\n take exactly the leftover space, so the arrows stay pinned whatever the\n label says, and an over-long label ellipsizes instead of pushing. */\n min-width: 0;\n}\n\n.nav-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nav-btn-size);\n height: var(--nav-btn-size);\n padding: 0;\n border: none;\n border-radius: var(--ty-radius-base);\n background-color: transparent;\n color: var(--ty-calendar-nav-color, var(--ty-color-neutral));\n cursor: pointer;\n transition: var(--ty-local-transition, all 0.15s ease);\n outline: none;\n}\n\n.nav-btn:hover {\n background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));\n color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));\n}\n\n.nav-btn:active {\n background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));\n transform: scale(0.95);\n}\n\n.nav-btn:disabled {\n opacity: 0.35;\n cursor: default;\n pointer-events: none;\n}\n\n.nav-btn:focus-visible {\n outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));\n outline-offset: 2px;\n}\n\n.nav-btn svg {\n width: var(--nav-btn-icon-size);\n height: var(--nav-btn-icon-size);\n display: block;\n}\n\n/* 14px uppercase at every size, not a per-size type scale: the label is the\n widest thing in the bar and the only one whose width depends on the data\n (\"May\" vs \"September\"), so scaling it up on lg was what made the arrows\n shuffle around. Small caps read as chrome, stay legible, and leave the\n centre column comfortably wider than the longest localized month name.\n Ellipsis is a backstop for a narrow --nav-width, not the sizing strategy. */\n.month-year-display {\n font-size: var(--nav-font-size);\n font-weight: 600;\n color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));\n text-align: center;\n white-space: nowrap;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n";
@@ -1,135 +1,95 @@
1
- /**
2
- * Calendar Navigation Styles
3
- * Clean, modern design with proper visual hierarchy and size variants
4
- */
5
1
  export const calendarNavigationStyles = `
6
- /* ============================================================================
7
- Size Variants (CSS Custom Properties)
8
- ============================================================================ */
9
-
10
- /* Theming tokens applied as var(--ty-calendar-nav-*, <default>) at point of
11
- use (NOT on :host) so consumers can override them from outside — this
12
- component is nested inside ty-calendar's shadow, so a :host default would
13
- block inherited overrides. --ty-calendar-accent still cascades in. */
14
-
15
2
  :host([data-size="md"]) {
16
- --nav-btn-size: 2rem;
17
- --nav-btn-icon-size: 1.25rem;
18
- --nav-font-size: 1rem;
19
- --nav-padding: 0.5rem 0.75rem;
20
- --nav-default-width: 280px;
3
+ --nav-btn-size: 2rem;
4
+ --nav-btn-icon-size: 1.25rem;
5
+ --nav-font-size: 0.875rem;
6
+ --nav-padding: 0.5rem 0.75rem;
7
+ --nav-default-width: 280px;
21
8
  }
22
-
23
9
  :host([data-size="sm"]) {
24
- --nav-btn-size: 1.5rem;
25
- --nav-btn-icon-size: 1rem;
26
- --nav-font-size: 0.875rem;
27
- --nav-padding: 0.375rem 0.5rem;
28
- --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;
29
15
  }
30
-
31
16
  :host([data-size="lg"]) {
32
- --nav-btn-size: 2.5rem;
33
- --nav-btn-icon-size: 1.5rem;
34
- --nav-font-size: 1.125rem;
35
- --nav-padding: 0.625rem 1rem;
36
- --nav-default-width: 360px;
17
+ --nav-btn-size: 2.5rem;
18
+ --nav-btn-icon-size: 1.5rem;
19
+ --nav-font-size: 0.875rem;
20
+ --nav-padding: 0.625rem 1rem;
21
+ --nav-default-width: 360px;
37
22
  }
38
-
39
- /* ============================================================================
40
- Main Navigation Header
41
- ============================================================================ */
42
-
43
23
  .calendar-navigation-header {
44
- display: flex;
45
- align-items: center;
46
- justify-content: space-between;
47
- padding: var(--nav-padding);
48
- font-family: system-ui, sans-serif;
49
- user-select: none;
50
- width: var(--nav-width, var(--nav-default-width));
51
- 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(--ty-calendar-width, var(--nav-default-width)));
31
+ box-sizing: border-box;
52
32
  }
53
-
54
- /* ============================================================================
55
- Navigation Groups (Left, Center, Right)
56
- ============================================================================ */
57
-
58
33
  .nav-group {
59
- display: flex;
60
- align-items: center;
61
- gap: 0.25rem;
34
+ display: flex;
35
+ align-items: center;
36
+ gap: 0.25rem;
62
37
  }
63
-
64
38
  .nav-group-left,
65
39
  .nav-group-right {
66
- flex: 0 0 auto;
40
+ flex: 0 0 auto;
67
41
  }
68
-
69
42
  .nav-group-center {
70
- flex: 1;
71
- justify-content: center;
43
+ flex: 1;
44
+ justify-content: center;
45
+ min-width: 0;
72
46
  }
73
-
74
- /* ============================================================================
75
- Navigation Buttons
76
- ============================================================================ */
77
-
78
47
  .nav-btn {
79
- display: inline-flex;
80
- align-items: center;
81
- justify-content: center;
82
- width: var(--nav-btn-size);
83
- height: var(--nav-btn-size);
84
- padding: 0;
85
- border: none;
86
- border-radius: var(--ty-radius-base);
87
- background-color: transparent;
88
- color: var(--ty-calendar-nav-color, var(--ty-color-neutral));
89
- cursor: pointer;
90
- transition: var(--ty-local-transition, all 0.15s ease);
91
- outline: none;
48
+ display: inline-flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ width: var(--nav-btn-size);
52
+ height: var(--nav-btn-size);
53
+ padding: 0;
54
+ border: none;
55
+ border-radius: var(--ty-radius-base);
56
+ background-color: transparent;
57
+ color: var(--ty-calendar-nav-color, var(--ty-color-neutral));
58
+ cursor: pointer;
59
+ transition: var(--ty-local-transition, all 0.15s ease);
60
+ outline: none;
92
61
  }
93
-
94
62
  .nav-btn:hover {
95
- background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));
96
- color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));
63
+ background-color: var(--ty-calendar-nav-hover-bg, var(--ty-bg-neutral-soft));
64
+ color: var(--ty-calendar-nav-hover-color, var(--ty-color-neutral-strong));
97
65
  }
98
-
99
66
  .nav-btn:active {
100
- background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));
101
- transform: scale(0.95);
67
+ background-color: var(--ty-calendar-nav-active-bg, var(--ty-bg-neutral));
68
+ transform: scale(0.95);
102
69
  }
103
-
104
70
  .nav-btn:disabled {
105
- opacity: 0.35;
106
- cursor: default;
107
- pointer-events: none;
71
+ opacity: 0.35;
72
+ cursor: default;
73
+ pointer-events: none;
108
74
  }
109
-
110
75
  .nav-btn:focus-visible {
111
- outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));
112
- outline-offset: 2px;
76
+ outline: 2px solid var(--ty-calendar-nav-focus-outline, var(--ty-calendar-accent, var(--ty-color-primary)));
77
+ outline-offset: 2px;
113
78
  }
114
-
115
- /* SVG sizing */
116
79
  .nav-btn svg {
117
- width: var(--nav-btn-icon-size);
118
- height: var(--nav-btn-icon-size);
119
- display: block;
80
+ width: var(--nav-btn-icon-size);
81
+ height: var(--nav-btn-icon-size);
82
+ display: block;
120
83
  }
121
-
122
- /* ============================================================================
123
- Month/Year Display (Center)
124
- ============================================================================ */
125
-
126
84
  .month-year-display {
127
- font-size: var(--nav-font-size);
128
- font-weight: 600;
129
- color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));
130
- text-align: center;
131
- white-space: nowrap;
132
- letter-spacing: -0.01em;
85
+ font-size: var(--nav-font-size);
86
+ font-weight: 600;
87
+ color: var(--ty-calendar-nav-title-color, var(--ty-color-neutral-strong));
88
+ text-align: center;
89
+ white-space: nowrap;
90
+ text-transform: uppercase;
91
+ letter-spacing: 0.04em;
92
+ overflow: hidden;
93
+ text-overflow: ellipsis;
133
94
  }
134
95
  `;
135
- //# sourceMappingURL=calendar-navigation.js.map