@haiilo/catalyst 10.2.0 → 10.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/dist/catalyst/assets/fonts/Lato-Black.ttf +0 -0
  2. package/dist/catalyst/assets/fonts/Lato-Black.woff +0 -0
  3. package/dist/catalyst/assets/fonts/Lato-Black.woff2 +0 -0
  4. package/dist/catalyst/assets/fonts/Lato-BlackItalic.ttf +0 -0
  5. package/dist/catalyst/assets/fonts/Lato-BlackItalic.woff +0 -0
  6. package/dist/catalyst/assets/fonts/Lato-BlackItalic.woff2 +0 -0
  7. package/dist/catalyst/assets/fonts/Lato-Bold.ttf +0 -0
  8. package/dist/catalyst/assets/fonts/Lato-Bold.woff +0 -0
  9. package/dist/catalyst/assets/fonts/Lato-Bold.woff2 +0 -0
  10. package/dist/catalyst/assets/fonts/Lato-BoldItalic.ttf +0 -0
  11. package/dist/catalyst/assets/fonts/Lato-BoldItalic.woff +0 -0
  12. package/dist/catalyst/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  13. package/dist/catalyst/assets/fonts/Lato-Hairline.ttf +0 -0
  14. package/dist/catalyst/assets/fonts/Lato-Hairline.woff +0 -0
  15. package/dist/catalyst/assets/fonts/Lato-Hairline.woff2 +0 -0
  16. package/dist/catalyst/assets/fonts/Lato-HairlineItalic.ttf +0 -0
  17. package/dist/catalyst/assets/fonts/Lato-HairlineItalic.woff +0 -0
  18. package/dist/catalyst/assets/fonts/Lato-HairlineItalic.woff2 +0 -0
  19. package/dist/catalyst/assets/fonts/Lato-Heavy.ttf +0 -0
  20. package/dist/catalyst/assets/fonts/Lato-Heavy.woff +0 -0
  21. package/dist/catalyst/assets/fonts/Lato-Heavy.woff2 +0 -0
  22. package/dist/catalyst/assets/fonts/Lato-HeavyItalic.ttf +0 -0
  23. package/dist/catalyst/assets/fonts/Lato-HeavyItalic.woff +0 -0
  24. package/dist/catalyst/assets/fonts/Lato-HeavyItalic.woff2 +0 -0
  25. package/dist/catalyst/assets/fonts/Lato-Italic.ttf +0 -0
  26. package/dist/catalyst/assets/fonts/Lato-Italic.woff +0 -0
  27. package/dist/catalyst/assets/fonts/Lato-Italic.woff2 +0 -0
  28. package/dist/catalyst/assets/fonts/Lato-Light.ttf +0 -0
  29. package/dist/catalyst/assets/fonts/Lato-Light.woff +0 -0
  30. package/dist/catalyst/assets/fonts/Lato-Light.woff2 +0 -0
  31. package/dist/catalyst/assets/fonts/Lato-LightItalic.ttf +0 -0
  32. package/dist/catalyst/assets/fonts/Lato-LightItalic.woff +0 -0
  33. package/dist/catalyst/assets/fonts/Lato-LightItalic.woff2 +0 -0
  34. package/dist/catalyst/assets/fonts/Lato-Medium.ttf +0 -0
  35. package/dist/catalyst/assets/fonts/Lato-Medium.woff +0 -0
  36. package/dist/catalyst/assets/fonts/Lato-Medium.woff2 +0 -0
  37. package/dist/catalyst/assets/fonts/Lato-MediumItalic.ttf +0 -0
  38. package/dist/catalyst/assets/fonts/Lato-MediumItalic.woff +0 -0
  39. package/dist/catalyst/assets/fonts/Lato-MediumItalic.woff2 +0 -0
  40. package/dist/catalyst/assets/fonts/Lato-Regular.ttf +0 -0
  41. package/dist/catalyst/assets/fonts/Lato-Regular.woff +0 -0
  42. package/dist/catalyst/assets/fonts/Lato-Regular.woff2 +0 -0
  43. package/dist/catalyst/assets/fonts/Lato-Semibold.ttf +0 -0
  44. package/dist/catalyst/assets/fonts/Lato-Semibold.woff +0 -0
  45. package/dist/catalyst/assets/fonts/Lato-Semibold.woff2 +0 -0
  46. package/dist/catalyst/assets/fonts/Lato-SemiboldItalic.ttf +0 -0
  47. package/dist/catalyst/assets/fonts/Lato-SemiboldItalic.woff +0 -0
  48. package/dist/catalyst/assets/fonts/Lato-SemiboldItalic.woff2 +0 -0
  49. package/dist/catalyst/assets/fonts/Lato-Thin.ttf +0 -0
  50. package/dist/catalyst/assets/fonts/Lato-Thin.woff +0 -0
  51. package/dist/catalyst/assets/fonts/Lato-Thin.woff2 +0 -0
  52. package/dist/catalyst/assets/fonts/Lato-ThinItalic.ttf +0 -0
  53. package/dist/catalyst/assets/fonts/Lato-ThinItalic.woff +0 -0
  54. package/dist/catalyst/assets/fonts/Lato-ThinItalic.woff2 +0 -0
  55. package/dist/catalyst/catalyst.css +10 -1
  56. package/dist/catalyst/catalyst.esm.js +1 -1
  57. package/dist/catalyst/catalyst.esm.js.map +1 -1
  58. package/dist/catalyst/index.esm.js +1 -1
  59. package/dist/catalyst/p-81800b65.js +2 -0
  60. package/dist/catalyst/p-81800b65.js.map +1 -0
  61. package/dist/catalyst/p-8a1d505d.entry.js +10 -0
  62. package/dist/catalyst/p-8a1d505d.entry.js.map +1 -0
  63. package/dist/catalyst/scss/core/_form.scss +12 -3
  64. package/dist/cjs/{cat-alert_26.cjs.entry.js → cat-alert_28.cjs.entry.js} +2293 -128
  65. package/dist/cjs/cat-alert_28.cjs.entry.js.map +1 -0
  66. package/dist/cjs/catalyst.cjs.js +1 -1
  67. package/dist/cjs/index.cjs.js +1 -1
  68. package/dist/cjs/loader.cjs.js +1 -1
  69. package/dist/cjs/{of-a6e7c491.js → of-45281229.js} +34 -19
  70. package/dist/cjs/of-45281229.js.map +1 -0
  71. package/dist/collection/assets/fonts/Lato-Black.ttf +0 -0
  72. package/dist/collection/assets/fonts/Lato-Black.woff +0 -0
  73. package/dist/collection/assets/fonts/Lato-Black.woff2 +0 -0
  74. package/dist/collection/assets/fonts/Lato-BlackItalic.ttf +0 -0
  75. package/dist/collection/assets/fonts/Lato-BlackItalic.woff +0 -0
  76. package/dist/collection/assets/fonts/Lato-BlackItalic.woff2 +0 -0
  77. package/dist/collection/assets/fonts/Lato-Bold.ttf +0 -0
  78. package/dist/collection/assets/fonts/Lato-Bold.woff +0 -0
  79. package/dist/collection/assets/fonts/Lato-Bold.woff2 +0 -0
  80. package/dist/collection/assets/fonts/Lato-BoldItalic.ttf +0 -0
  81. package/dist/collection/assets/fonts/Lato-BoldItalic.woff +0 -0
  82. package/dist/collection/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  83. package/dist/collection/assets/fonts/Lato-Hairline.ttf +0 -0
  84. package/dist/collection/assets/fonts/Lato-Hairline.woff +0 -0
  85. package/dist/collection/assets/fonts/Lato-Hairline.woff2 +0 -0
  86. package/dist/collection/assets/fonts/Lato-HairlineItalic.ttf +0 -0
  87. package/dist/collection/assets/fonts/Lato-HairlineItalic.woff +0 -0
  88. package/dist/collection/assets/fonts/Lato-HairlineItalic.woff2 +0 -0
  89. package/dist/collection/assets/fonts/Lato-Heavy.ttf +0 -0
  90. package/dist/collection/assets/fonts/Lato-Heavy.woff +0 -0
  91. package/dist/collection/assets/fonts/Lato-Heavy.woff2 +0 -0
  92. package/dist/collection/assets/fonts/Lato-HeavyItalic.ttf +0 -0
  93. package/dist/collection/assets/fonts/Lato-HeavyItalic.woff +0 -0
  94. package/dist/collection/assets/fonts/Lato-HeavyItalic.woff2 +0 -0
  95. package/dist/collection/assets/fonts/Lato-Italic.ttf +0 -0
  96. package/dist/collection/assets/fonts/Lato-Italic.woff +0 -0
  97. package/dist/collection/assets/fonts/Lato-Italic.woff2 +0 -0
  98. package/dist/collection/assets/fonts/Lato-Light.ttf +0 -0
  99. package/dist/collection/assets/fonts/Lato-Light.woff +0 -0
  100. package/dist/collection/assets/fonts/Lato-Light.woff2 +0 -0
  101. package/dist/collection/assets/fonts/Lato-LightItalic.ttf +0 -0
  102. package/dist/collection/assets/fonts/Lato-LightItalic.woff +0 -0
  103. package/dist/collection/assets/fonts/Lato-LightItalic.woff2 +0 -0
  104. package/dist/collection/assets/fonts/Lato-Medium.ttf +0 -0
  105. package/dist/collection/assets/fonts/Lato-Medium.woff +0 -0
  106. package/dist/collection/assets/fonts/Lato-Medium.woff2 +0 -0
  107. package/dist/collection/assets/fonts/Lato-MediumItalic.ttf +0 -0
  108. package/dist/collection/assets/fonts/Lato-MediumItalic.woff +0 -0
  109. package/dist/collection/assets/fonts/Lato-MediumItalic.woff2 +0 -0
  110. package/dist/collection/assets/fonts/Lato-Regular.ttf +0 -0
  111. package/dist/collection/assets/fonts/Lato-Regular.woff +0 -0
  112. package/dist/collection/assets/fonts/Lato-Regular.woff2 +0 -0
  113. package/dist/collection/assets/fonts/Lato-Semibold.ttf +0 -0
  114. package/dist/collection/assets/fonts/Lato-Semibold.woff +0 -0
  115. package/dist/collection/assets/fonts/Lato-Semibold.woff2 +0 -0
  116. package/dist/collection/assets/fonts/Lato-SemiboldItalic.ttf +0 -0
  117. package/dist/collection/assets/fonts/Lato-SemiboldItalic.woff +0 -0
  118. package/dist/collection/assets/fonts/Lato-SemiboldItalic.woff2 +0 -0
  119. package/dist/collection/assets/fonts/Lato-Thin.ttf +0 -0
  120. package/dist/collection/assets/fonts/Lato-Thin.woff +0 -0
  121. package/dist/collection/assets/fonts/Lato-Thin.woff2 +0 -0
  122. package/dist/collection/assets/fonts/Lato-ThinItalic.ttf +0 -0
  123. package/dist/collection/assets/fonts/Lato-ThinItalic.woff +0 -0
  124. package/dist/collection/assets/fonts/Lato-ThinItalic.woff2 +0 -0
  125. package/dist/collection/collection-manifest.json +3 -1
  126. package/dist/collection/components/cat-alert/cat-alert.spec.js +2 -9
  127. package/dist/collection/components/cat-alert/cat-alert.spec.js.map +1 -1
  128. package/dist/collection/components/cat-avatar/cat-avatar.spec.js +3 -7
  129. package/dist/collection/components/cat-avatar/cat-avatar.spec.js.map +1 -1
  130. package/dist/collection/components/cat-badge/cat-badge.spec.js +2 -6
  131. package/dist/collection/components/cat-badge/cat-badge.spec.js.map +1 -1
  132. package/dist/collection/components/cat-button/cat-button.css +29 -0
  133. package/dist/collection/components/cat-button/cat-button.spec.js +1 -1
  134. package/dist/collection/components/cat-button/cat-button.spec.js.map +1 -1
  135. package/dist/collection/components/cat-button-group/cat-button-group.spec.js +2 -6
  136. package/dist/collection/components/cat-button-group/cat-button-group.spec.js.map +1 -1
  137. package/dist/collection/components/cat-card/cat-card.spec.js +2 -6
  138. package/dist/collection/components/cat-card/cat-card.spec.js.map +1 -1
  139. package/dist/collection/components/cat-checkbox/cat-checkbox.spec.js +2 -17
  140. package/dist/collection/components/cat-checkbox/cat-checkbox.spec.js.map +1 -1
  141. package/dist/collection/components/cat-date/cat-date-locale.js +54 -0
  142. package/dist/collection/components/cat-date/cat-date-locale.js.map +1 -0
  143. package/dist/collection/components/cat-date/cat-date-math.js +28 -0
  144. package/dist/collection/components/cat-date/cat-date-math.js.map +1 -0
  145. package/dist/collection/components/cat-date/cat-date.css +122 -0
  146. package/dist/collection/components/cat-date/cat-date.e2e.js +11 -0
  147. package/dist/collection/components/cat-date/cat-date.e2e.js.map +1 -0
  148. package/dist/collection/components/cat-date/cat-date.js +923 -0
  149. package/dist/collection/components/cat-date/cat-date.js.map +1 -0
  150. package/dist/collection/components/cat-date/cat-date.spec.js +16 -0
  151. package/dist/collection/components/cat-date/cat-date.spec.js.map +1 -0
  152. package/dist/collection/components/cat-datepicker/cat-datepicker.js +3 -3
  153. package/dist/collection/components/cat-datepicker/cat-datepicker.spec.js +3 -8
  154. package/dist/collection/components/cat-datepicker/cat-datepicker.spec.js.map +1 -1
  155. package/dist/collection/components/cat-datepicker-inline/cat-datepicker-inline.js +2 -2
  156. package/dist/collection/components/cat-datepicker-inline/cat-datepicker-inline.spec.js +2 -8
  157. package/dist/collection/components/cat-datepicker-inline/cat-datepicker-inline.spec.js.map +1 -1
  158. package/dist/collection/components/cat-dropdown/cat-dropdown.js +100 -30
  159. package/dist/collection/components/cat-dropdown/cat-dropdown.js.map +1 -1
  160. package/dist/collection/components/cat-dropdown/cat-dropdown.spec.js +2 -8
  161. package/dist/collection/components/cat-dropdown/cat-dropdown.spec.js.map +1 -1
  162. package/dist/collection/components/cat-form-group/cat-form-group.js +1 -1
  163. package/dist/collection/components/cat-form-group/cat-form-group.spec.js +2 -6
  164. package/dist/collection/components/cat-form-group/cat-form-group.spec.js.map +1 -1
  165. package/dist/collection/components/cat-form-hint/cat-form-hint.spec.js +1 -1
  166. package/dist/collection/components/cat-form-hint/cat-form-hint.spec.js.map +1 -1
  167. package/dist/collection/components/cat-icon/cat-icon-registry.js +27 -15
  168. package/dist/collection/components/cat-icon/cat-icon-registry.js.map +1 -1
  169. package/dist/collection/components/cat-icon/cat-icon.js +1 -1
  170. package/dist/collection/components/cat-icon/cat-icon.spec.js +1 -1
  171. package/dist/collection/components/cat-icon/cat-icon.spec.js.map +1 -1
  172. package/dist/collection/components/cat-input/cat-input.css +15 -0
  173. package/dist/collection/components/cat-input/cat-input.js +44 -6
  174. package/dist/collection/components/cat-input/cat-input.js.map +1 -1
  175. package/dist/collection/components/cat-input/cat-input.spec.js +2 -23
  176. package/dist/collection/components/cat-input/cat-input.spec.js.map +1 -1
  177. package/dist/collection/components/cat-pagination/cat-pagination.js +2 -2
  178. package/dist/collection/components/cat-pagination/cat-pagination.spec.js +2 -18
  179. package/dist/collection/components/cat-pagination/cat-pagination.spec.js.map +1 -1
  180. package/dist/collection/components/cat-radio/cat-radio.js +1 -1
  181. package/dist/collection/components/cat-radio/cat-radio.spec.js +3 -13
  182. package/dist/collection/components/cat-radio/cat-radio.spec.js.map +1 -1
  183. package/dist/collection/components/cat-radio-group/cat-radio-group.js +1 -1
  184. package/dist/collection/components/cat-radio-group/cat-radio-group.spec.js +2 -8
  185. package/dist/collection/components/cat-radio-group/cat-radio-group.spec.js.map +1 -1
  186. package/dist/collection/components/cat-scrollable/cat-scrollable.js +3 -3
  187. package/dist/collection/components/cat-scrollable/cat-scrollable.spec.js +2 -13
  188. package/dist/collection/components/cat-scrollable/cat-scrollable.spec.js.map +1 -1
  189. package/dist/collection/components/cat-select/cat-select.js +4 -4
  190. package/dist/collection/components/cat-select/cat-select.spec.js +2 -28
  191. package/dist/collection/components/cat-select/cat-select.spec.js.map +1 -1
  192. package/dist/collection/components/cat-select-demo/cat-select-demo.js +1 -1
  193. package/dist/collection/components/cat-select-demo/cat-select-demo.js.map +1 -1
  194. package/dist/collection/components/cat-skeleton/cat-skeleton.js +1 -1
  195. package/dist/collection/components/cat-skeleton/cat-skeleton.spec.js +2 -6
  196. package/dist/collection/components/cat-skeleton/cat-skeleton.spec.js.map +1 -1
  197. package/dist/collection/components/cat-spinner/cat-spinner.js +2 -2
  198. package/dist/collection/components/cat-spinner/cat-spinner.spec.js +1 -1
  199. package/dist/collection/components/cat-spinner/cat-spinner.spec.js.map +1 -1
  200. package/dist/collection/components/cat-tab/cat-tab.js +1 -1
  201. package/dist/collection/components/cat-tab/cat-tab.spec.js +2 -5
  202. package/dist/collection/components/cat-tab/cat-tab.spec.js.map +1 -1
  203. package/dist/collection/components/cat-tabs/cat-tabs.js +1 -1
  204. package/dist/collection/components/cat-tabs/cat-tabs.spec.js +2 -5
  205. package/dist/collection/components/cat-tabs/cat-tabs.spec.js.map +1 -1
  206. package/dist/collection/components/cat-textarea/cat-textarea.js +3 -3
  207. package/dist/collection/components/cat-textarea/cat-textarea.spec.js +2 -21
  208. package/dist/collection/components/cat-textarea/cat-textarea.spec.js.map +1 -1
  209. package/dist/collection/components/cat-time/cat-time-locale.js +15 -0
  210. package/dist/collection/components/cat-time/cat-time-locale.js.map +1 -0
  211. package/dist/collection/components/cat-time/cat-time-math.js +28 -0
  212. package/dist/collection/components/cat-time/cat-time-math.js.map +1 -0
  213. package/dist/collection/components/cat-time/cat-time.css +41 -0
  214. package/dist/collection/components/cat-time/cat-time.e2e.js +11 -0
  215. package/dist/collection/components/cat-time/cat-time.e2e.js.map +1 -0
  216. package/dist/collection/components/cat-time/cat-time.js +801 -0
  217. package/dist/collection/components/cat-time/cat-time.js.map +1 -0
  218. package/dist/collection/components/cat-time/cat-time.spec.js +16 -0
  219. package/dist/collection/components/cat-time/cat-time.spec.js.map +1 -0
  220. package/dist/collection/components/cat-toggle/cat-toggle.js +1 -1
  221. package/dist/collection/components/cat-toggle/cat-toggle.spec.js +2 -10
  222. package/dist/collection/components/cat-toggle/cat-toggle.spec.js.map +1 -1
  223. package/dist/collection/components/cat-tooltip/cat-tooltip.js +2 -2
  224. package/dist/collection/components/cat-tooltip/cat-tooltip.spec.js +1 -9
  225. package/dist/collection/components/cat-tooltip/cat-tooltip.spec.js.map +1 -1
  226. package/dist/collection/scss/core/_form.scss +12 -3
  227. package/dist/components/cat-button2.js +1 -1
  228. package/dist/components/cat-button2.js.map +1 -1
  229. package/dist/components/cat-date.d.ts +11 -0
  230. package/dist/components/cat-date.js +469 -0
  231. package/dist/components/cat-date.js.map +1 -0
  232. package/dist/components/cat-datepicker-inline.js +2 -2
  233. package/dist/components/cat-datepicker.js +2 -2
  234. package/dist/components/cat-dropdown2.js +35 -30
  235. package/dist/components/cat-dropdown2.js.map +1 -1
  236. package/dist/components/cat-form-group.js +1 -1
  237. package/dist/components/cat-icon-registry.js +33 -18
  238. package/dist/components/cat-icon-registry.js.map +1 -1
  239. package/dist/components/cat-icon2.js +1 -1
  240. package/dist/components/cat-input2.js +1572 -6
  241. package/dist/components/cat-input2.js.map +1 -1
  242. package/dist/components/cat-pagination.js +2 -2
  243. package/dist/components/cat-radio-group.js +1 -1
  244. package/dist/components/cat-radio.js +1 -1
  245. package/dist/components/cat-scrollable2.js +3 -3
  246. package/dist/components/cat-select-demo.js +1 -1
  247. package/dist/components/cat-select-demo.js.map +1 -1
  248. package/dist/components/cat-skeleton2.js +1 -1
  249. package/dist/components/cat-spinner2.js +2 -2
  250. package/dist/components/cat-tab.js +1 -1
  251. package/dist/components/cat-tabs.js +1 -1
  252. package/dist/components/cat-textarea.js +3 -3
  253. package/dist/components/cat-time.d.ts +11 -0
  254. package/dist/components/cat-time.js +303 -0
  255. package/dist/components/cat-time.js.map +1 -0
  256. package/dist/components/cat-toggle.js +1 -1
  257. package/dist/components/cat-tooltip.js +2 -2
  258. package/dist/esm/{cat-alert_26.entry.js → cat-alert_28.entry.js} +2293 -130
  259. package/dist/esm/cat-alert_28.entry.js.map +1 -0
  260. package/dist/esm/catalyst.js +1 -1
  261. package/dist/esm/index.js +2 -2
  262. package/dist/esm/loader.js +1 -1
  263. package/dist/esm/{of-d37c1933.js → of-19888f3b.js} +34 -19
  264. package/dist/esm/of-19888f3b.js.map +1 -0
  265. package/dist/types/components/cat-date/cat-date-locale.d.ts +24 -0
  266. package/dist/types/components/cat-date/cat-date-math.d.ts +7 -0
  267. package/dist/types/components/cat-date/cat-date.d.ts +180 -0
  268. package/dist/types/components/cat-dropdown/cat-dropdown.d.ts +9 -3
  269. package/dist/types/components/cat-input/cat-input.d.ts +9 -2
  270. package/dist/types/components/cat-time/cat-time-locale.d.ts +6 -0
  271. package/dist/types/components/cat-time/cat-time-math.d.ts +3 -0
  272. package/dist/types/components/cat-time/cat-time.d.ts +168 -0
  273. package/dist/types/components.d.ts +551 -8
  274. package/package.json +7 -5
  275. package/dist/catalyst/p-37905c93.entry.js +0 -10
  276. package/dist/catalyst/p-37905c93.entry.js.map +0 -1
  277. package/dist/catalyst/p-8fc7b0f0.js +0 -2
  278. package/dist/catalyst/p-8fc7b0f0.js.map +0 -1
  279. package/dist/cjs/cat-alert_26.cjs.entry.js.map +0 -1
  280. package/dist/cjs/of-a6e7c491.js.map +0 -1
  281. package/dist/esm/cat-alert_26.entry.js.map +0 -1
  282. package/dist/esm/of-d37c1933.js.map +0 -1
@@ -0,0 +1,469 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { c as catI18nRegistry } from './cat-i18n-registry.js';
3
+ import { d as defineCustomElement$6 } from './cat-button2.js';
4
+ import { d as defineCustomElement$5 } from './cat-dropdown2.js';
5
+ import { d as defineCustomElement$4 } from './cat-icon2.js';
6
+ import { d as defineCustomElement$3 } from './cat-input2.js';
7
+ import { d as defineCustomElement$2 } from './cat-spinner2.js';
8
+
9
+ function getDays(language, weekday = 'long') {
10
+ const date = new Date();
11
+ const firstDayOfWeek = (date.getUTCDate() - date.getUTCDay() + 7) % 7;
12
+ const format = new Intl.DateTimeFormat(language, { weekday }).format;
13
+ return [...Array(7).keys()].map(day => format(new Date(date.getTime()).setUTCDate(firstDayOfWeek + day)));
14
+ }
15
+ function getMonths(language, month = 'long') {
16
+ const date = new Date(0);
17
+ const format = new Intl.DateTimeFormat(language, { month }).format;
18
+ return [...Array(12).keys()].map(month => format(new Date(date.getTime()).setUTCMonth(month)));
19
+ }
20
+ function getWeekInfo(language) {
21
+ const locale = new Intl.Locale(language);
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ const weekInfo = locale.getWeekInfo?.() ?? locale.weekInfo;
24
+ return {
25
+ firstDay: weekInfo?.firstDay ?? 1,
26
+ minDays: weekInfo?.minDays ?? 4,
27
+ weekend: weekInfo?.weekend ?? [6, 7]
28
+ };
29
+ }
30
+ function getFormat(language) {
31
+ const format = new Intl.DateTimeFormat(language, { year: 'numeric', month: '2-digit', day: '2-digit' })
32
+ .format(new Date(3456, 10, 22))
33
+ .replace('3456', 'YYYY')
34
+ .replace('56', 'YY')
35
+ .replace('11', 'MM')
36
+ .replace('22', 'DD');
37
+ return /^(YYYY|YY|MM|DD)\W(YYYY|YY|MM|DD)\W(YYYY|YY|MM|DD)$/.test(format) ? format : 'DD-MM-YYYY';
38
+ }
39
+ function getLocale(language) {
40
+ return {
41
+ prevYear: catI18nRegistry.t('datepicker.prevYear'),
42
+ nextYear: catI18nRegistry.t('datepicker.nextYear'),
43
+ prevMonth: catI18nRegistry.t('datepicker.prevMonth'),
44
+ nextMonth: catI18nRegistry.t('datepicker.nextMonth'),
45
+ arrowKeys: catI18nRegistry.t('datepicker.arrowKeys'),
46
+ today: catI18nRegistry.t('datepicker.today'),
47
+ change: catI18nRegistry.t('datepicker.change'),
48
+ choose: catI18nRegistry.t('datepicker.choose'),
49
+ formatStr: getFormat(language),
50
+ weekInfo: getWeekInfo(language),
51
+ days: {
52
+ short: getDays(language, 'short'),
53
+ long: getDays(language, 'long')
54
+ },
55
+ months: {
56
+ short: getMonths(language, 'short'),
57
+ long: getMonths(language, 'long')
58
+ }
59
+ };
60
+ }
61
+
62
+ function isLeapYear(year) {
63
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
64
+ }
65
+ function addDays(date, n) {
66
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + n);
67
+ }
68
+ function addMonth(date, n) {
69
+ const [year, month, day] = [date.getFullYear(), date.getMonth(), date.getDate()];
70
+ const maxDays = [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
71
+ const newDate = new Date(date);
72
+ newDate.setDate(1);
73
+ newDate.setMonth(newDate.getMonth() + n);
74
+ newDate.setDate(Math.min(day, maxDays[(month + (n % 12) + 12) % 12]));
75
+ return newDate;
76
+ }
77
+ function isSameYear(date1, date2) {
78
+ return !!date1 && !!date2 && date1.getFullYear() === date2.getFullYear();
79
+ }
80
+ function isSameMonth(date1, date2) {
81
+ return !!date1 && !!date2 && date1.getMonth() === date2.getMonth() && isSameYear(date1, date2);
82
+ }
83
+ function isSameDay(date1, date2) {
84
+ return !!date1 && !!date2 && date1.getDate() === date2.getDate() && isSameMonth(date1, date2);
85
+ }
86
+ function clampDate(min, date, max) {
87
+ return new Date(Math.min(Math.max(date.getTime(), min?.getTime() ?? -Infinity), max?.getTime() ?? Infinity));
88
+ }
89
+
90
+ const catDateCss = ":host{display:block}:host([hidden]){display:none}.label-aria{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.picker{padding:1rem;display:inline-flex;flex-direction:column}.picker-head{display:flex;gap:0.5rem;align-items:center}.picker-head h3{flex:1;text-align:center;margin:0}.picker-grid{display:grid;grid-template-rows:2rem repeat(6, 1fr);grid-template-columns:2rem repeat(7, 1fr);grid-template-areas:\". h h h h h h h\" \"w d d d d d d d\" \"w d d d d d d d\" \"w d d d d d d d\" \"w d d d d d d d\" \"w d d d d d d d\" \"w d d d d d d d\";margin:1rem 0 0.5rem}.picker-grid-head{grid-area:h;display:grid;grid-template-columns:repeat(7, 1fr);place-items:end center;padding-bottom:0.5rem}.picker-grid-weeks{grid-area:w;display:grid;grid-template-rows:repeat(6, 1fr);place-items:center right;padding-right:0.5rem}.picker-grid-days{grid-area:d;display:grid;grid-template-rows:repeat(6, 1fr);grid-template-columns:repeat(7, 1fr)}.picker-grid-head>*,.picker-grid-weeks>*{font-size:0.75rem;line-height:1rem;font-weight:600;color:rgb(var(--cat-font-color-muted, 81, 92, 108)) !important;text-decoration:none}.date-other{opacity:0.5}.date-disabled{opacity:0.25}.picker-foot{display:flex;gap:1rem;align-items:center}.cursor-help{flex:1;margin:0;font-size:0.875rem;line-height:1.125rem;font-weight:var(--cat-font-weight-body, 400);color:rgb(var(--cat-font-color-muted, 81, 92, 108)) !important;text-align:center}.cursor-help.cursor-right{text-align:right}.cursor-aria{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}";
91
+ const CatDateStyle0 = catDateCss;
92
+
93
+ const CatDate$1 = /*@__PURE__*/ proxyCustomElement(class CatDate extends HTMLElement {
94
+ constructor() {
95
+ super();
96
+ this.__registerHost();
97
+ this.__attachShadow();
98
+ this.catChange = createEvent(this, "catChange", 7);
99
+ this.catFocus = createEvent(this, "catFocus", 7);
100
+ this.catBlur = createEvent(this, "catBlur", 7);
101
+ this.language = catI18nRegistry.getLocale();
102
+ this.locale = getLocale(this.language);
103
+ this.isOpen = false;
104
+ // additonally store the focus date to ensure correct focus after potential re-render
105
+ this.focusDate = null;
106
+ this.hasSlottedLabel = false;
107
+ this.hasSlottedHint = false;
108
+ this.viewDate = this.now;
109
+ this.selectionDate = null;
110
+ this.requiredMarker = 'optional';
111
+ this.horizontal = false;
112
+ this.autoComplete = undefined;
113
+ this.clearable = false;
114
+ this.disabled = false;
115
+ this.hint = undefined;
116
+ this.icon = undefined;
117
+ this.iconRight = false;
118
+ this.identifier = undefined;
119
+ this.label = '';
120
+ this.labelHidden = false;
121
+ this.max = undefined;
122
+ this.min = undefined;
123
+ this.name = undefined;
124
+ this.placeholder = undefined;
125
+ this.textPrefix = undefined;
126
+ this.textSuffix = undefined;
127
+ this.readonly = false;
128
+ this.required = false;
129
+ this.value = undefined;
130
+ this.errors = undefined;
131
+ this.errorUpdate = 0;
132
+ this.nativeAttributes = undefined;
133
+ this.placement = 'bottom-end';
134
+ }
135
+ get maxDate() {
136
+ const [y, m, d] = this.max?.split('-').map(Number) || [];
137
+ return this.max ? new Date(y, m - 1, d) : null;
138
+ }
139
+ get minDate() {
140
+ const [y, m, d] = this.min?.split('-').map(Number) || [];
141
+ return this.min ? new Date(y, m - 1, d) : null;
142
+ }
143
+ get now() {
144
+ const date = new Date();
145
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
146
+ }
147
+ get focusedDate() {
148
+ const [all, year, month, day] = this.hostElement.shadowRoot
149
+ ?.querySelector(`[data-date]:focus`)
150
+ ?.dataset.date?.match(/^(\d{4})-(\d{2})-(\d{2})/) ?? [];
151
+ return all ? new Date(Number(year), Number(month) - 1, Number(day)) : null;
152
+ }
153
+ componentWillLoad() {
154
+ const [match, year, month, day] = this.value?.match(/^(\d{4})-(\d{2})-(\d{2})/) ?? [];
155
+ if (match) {
156
+ this.select(new Date(Number(year), Number(month) - 1, Number(day)));
157
+ }
158
+ }
159
+ componentWillRender() {
160
+ this.hasSlottedLabel = !!this.hostElement.querySelector('[slot="label"]');
161
+ this.hasSlottedHint = !!this.hostElement.querySelector('[slot="hint"]');
162
+ }
163
+ componentDidLoad() {
164
+ const format = this.locale.formatStr.replace('YYYY', 'Y').replace('YY', 'y').replace('MM', 'm').replace('DD', 'd');
165
+ const [, p1, d1, p2, p3] = /(\w+)([^\w]+)(\w+)[^\w]+(\w+)/.exec(format) || [];
166
+ this.input?.mask({
167
+ date: true,
168
+ dateMin: this.min,
169
+ dateMax: this.max,
170
+ delimiter: d1,
171
+ datePattern: [p1, p2, p3]
172
+ });
173
+ }
174
+ componentDidRender() {
175
+ if (this.focusDate) {
176
+ this.hostElement.shadowRoot
177
+ ?.querySelector(`[data-date="${this.toLocalISO(this.focusDate)}"]`)
178
+ ?.doFocus();
179
+ this.focusDate = null;
180
+ }
181
+ }
182
+ onOpen() {
183
+ this.isOpen = true;
184
+ this.setAriaLive('');
185
+ const viewDate = this.selectionDate
186
+ ? new Date(this.selectionDate.getFullYear(), this.selectionDate.getMonth(), 1)
187
+ : this.now;
188
+ this.viewDate = clampDate(this.minDate, viewDate, this.maxDate);
189
+ }
190
+ onClose() {
191
+ this.isOpen = false;
192
+ }
193
+ onKeyDown(e) {
194
+ if (!this.isOpen || !['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) {
195
+ return;
196
+ }
197
+ const focused = this.focusedDate;
198
+ if (!focused) {
199
+ e.preventDefault();
200
+ this.focus(this.selectionDate || this.now);
201
+ }
202
+ else if (e.key === 'ArrowLeft') {
203
+ e.preventDefault();
204
+ this.focus(e.shiftKey ? addMonth(focused, -1) : addDays(focused, -1));
205
+ }
206
+ else if (e.key === 'ArrowRight') {
207
+ e.preventDefault();
208
+ this.focus(e.shiftKey ? addMonth(focused, 1) : addDays(focused, 1));
209
+ }
210
+ else if (e.key === 'ArrowUp') {
211
+ e.preventDefault();
212
+ this.focus(addDays(focused, -7));
213
+ }
214
+ else if (e.key === 'ArrowDown') {
215
+ e.preventDefault();
216
+ this.focus(addDays(focused, 7));
217
+ }
218
+ }
219
+ /**
220
+ * Select a date in the picker.
221
+ *
222
+ * @param date The date to select.
223
+ */
224
+ async select(date) {
225
+ const oldValue = this.value;
226
+ const newDate = clampDate(this.minDate, new Date(date.getFullYear(), date.getMonth(), date.getDate()), this.maxDate);
227
+ this.focus(newDate);
228
+ this.selectionDate = newDate;
229
+ this.value = newDate.toISOString();
230
+ if (oldValue !== this.value) {
231
+ this.catChange.emit(this.value);
232
+ }
233
+ }
234
+ /**
235
+ * Programmatically move focus to the input. Use this method instead of
236
+ * `input.focus()`.
237
+ *
238
+ * @param options An optional object providing options to control aspects of
239
+ * the focusing process.
240
+ */
241
+ async doFocus(options) {
242
+ this.input?.doFocus(options);
243
+ }
244
+ /**
245
+ * Programmatically remove focus from the input. Use this method instead of
246
+ * `input.blur()`.
247
+ */
248
+ async doBlur() {
249
+ this.input?.doBlur();
250
+ }
251
+ /**
252
+ * Clear the input.
253
+ */
254
+ async clear() {
255
+ this.input?.clear();
256
+ }
257
+ render() {
258
+ const dateGrid = this.dateGrid(this.viewDate.getFullYear(), this.viewDate.getMonth());
259
+ return (h(Host, { key: 'ebb5f193ca43bc3306449c91d2e391cb25b3287c' }, h("cat-input", { key: '27292844d077a8d79022074a191c47e72736d2c5', class: "cat-date-input", ref: el => (this.input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, value: this.getInputValue(), onCatFocus: e => this.catFocus.emit(e.detail), onCatBlur: e => this.onInputBlur(e.detail) }, h("span", { key: 'e9c9ad5b5374fcf944396a7ae45ae61775336be4', slot: "label" }, this.label, h("span", { key: '5a05917857fdc967bb122e0403f64b8b71ecf08a', class: "label-aria" }, " (", this.locale.formatStr, ")")), h("cat-dropdown", { key: 'ac1b7f5e1efae2648fa82acb31059ab41d0adb55', slot: "addon", placement: this.placement, arrowNavigation: "none", noResize: true }, h("cat-button", { key: 'bfaabd6f8120333b497b262894489628beb1d886', slot: "trigger", icon: "$cat:datepicker-calendar", iconOnly: true, class: "cat-date-toggle", disabled: this.disabled, a11yLabel: this.selectionDate
260
+ ? `${this.locale.change}, ${this.getA11yLabelDay(this.selectionDate)}`
261
+ : this.locale.choose }), h("div", { key: '9cfb02ca034584dcdd23fadb5f41ca598552a605', class: "picker", slot: "content" }, h("div", { key: '4d09c5f3ca84346bbcc68f4c83f3413159b8b608', class: "picker-head" }, h("cat-button", { key: '9e8d1695f1a882f2388a2b57ccd8cc51e8b52483', icon: "$cat:datepicker-year-prev", iconOnly: true, size: "xs", variant: "text", "a11y-label": this.locale.prevYear, disabled: isSameYear(this.viewDate, this.minDate), onClick: () => this.navigate('prev', 'year'), "data-dropdown-no-close": true }), h("cat-button", { key: '5af1b092c2f0d13e5c12d49699e85ea5dded7580', icon: "$cat:datepicker-month-prev", iconOnly: true, size: "xs", variant: "text", "a11y-label": this.locale.prevMonth, disabled: isSameMonth(this.viewDate, this.minDate), onClick: () => this.navigate('prev', 'month'), "data-dropdown-no-close": true }), h("h3", { key: 'cd730386e0fc19a4b12ee2910e6de7f079133584' }, this.getHeadline()), h("cat-button", { key: 'f0c76ac04573977e255956d2e377dd197080a5b8', icon: "$cat:datepicker-month-next", iconOnly: true, size: "xs", variant: "text", "a11y-label": this.locale.nextMonth, disabled: isSameMonth(this.viewDate, this.maxDate), onClick: () => this.navigate('next', 'month'), "data-dropdown-no-close": true }), h("cat-button", { key: 'd58917e0665df029acc6dac35e7ab05eab60f9d4', icon: "$cat:datepicker-year-next", iconOnly: true, size: "xs", variant: "text", "a11y-label": this.locale.nextYear, disabled: isSameYear(this.viewDate, this.maxDate), onClick: () => this.navigate('next', 'year'), "data-dropdown-no-close": true })), h("div", { key: '5307170ba72c90fceef4276aa5feb74dc569c74d', class: "picker-grid", onFocusin: () => this.setAriaLive(this.locale.arrowKeys) }, h("div", { key: 'acd6b0e720722ed3e3d013463645fe294a75b68d', class: "picker-grid-head" }, Array.from(Array(7), (_, i) => (h("abbr", { title: this.locale.days.long[i] }, this.locale.days.short[i])))), h("div", { key: 'a8b349d48f3595b7a29a037fb48b130dfb9af438', class: "picker-grid-weeks" }, dateGrid
262
+ .filter((_, i) => i % 7 === 0)
263
+ .map(day => (h("div", null, this.getWeekNumber(day))))), h("div", { key: '1e7750157710763ad977d866bb2e511b6ec44d03', class: "picker-grid-days" }, dateGrid.map(day => (h("cat-button", { class: {
264
+ 'cat-date-item': true,
265
+ 'date-other': !isSameMonth(this.viewDate, day),
266
+ 'date-today': isSameDay(this.now, day),
267
+ 'date-selected': isSameDay(this.selectionDate, day),
268
+ 'date-focusable': this.canFocus(day),
269
+ 'date-disabled': !this.canClick(day)
270
+ }, nativeAttributes: !this.canFocus(day) ? { tabindex: '-1' } : {}, variant: isSameDay(this.selectionDate, day) ? 'filled' : isSameDay(this.now, day) ? 'outlined' : 'text', a11yLabel: this.getA11yLabelDay(day), active: isSameDay(this.selectionDate, day), color: isSameDay(this.selectionDate, day) || isSameDay(this.now, day) ? 'primary' : 'secondary', disabled: !this.canClick(day), onClick: () => this.select(day), "data-date": this.toLocalISO(day) }, day.getDate()))))), h("div", { key: 'd8874097357312b5ddd4bda5e4018d3e642aaf99', class: "picker-foot" }, this.canClick(this.now) && (h("cat-button", { size: "s", "data-dropdown-no-close": true, onClick: () => this.select(this.now) }, this.locale.today)), h("p", { key: '42d936d44ef0cb07375415ae42a95565cd7f342b', class: {
271
+ 'cursor-help': true,
272
+ 'cursor-right': this.canClick(this.now)
273
+ } }, this.locale.arrowKeys), h("p", { key: '6df5566486d5082b3c2cb79fde22cedd7608c8bf', class: "cursor-aria", "aria-live": "polite" })))))));
274
+ }
275
+ parse(value) {
276
+ const [, p1, d1, p2, p3] = /(\w+)([^\w]+)(\w+)[^\w]+(\w+)/.exec(this.locale.formatStr) || [];
277
+ const formatParts = [p1, p2, p3];
278
+ const parts = value.split(d1).map(s => Number(s || 'x'));
279
+ let year = parts[formatParts.indexOf('YYYY') || formatParts.indexOf('YY')] || this.now.getFullYear();
280
+ const month = parts[formatParts.indexOf('MM')];
281
+ const day = parts[formatParts.indexOf('DD')];
282
+ if (!Number.isInteger(month) || !Number.isInteger(day)) {
283
+ return null;
284
+ }
285
+ else if (year < 100) {
286
+ year += year < 50 ? 2000 : 1900;
287
+ }
288
+ return new Date(year, month - 1, day);
289
+ }
290
+ focus(date) {
291
+ this.focusDate = clampDate(this.minDate, date, this.maxDate);
292
+ this.viewDate = new Date(this.focusDate.getFullYear(), this.focusDate.getMonth());
293
+ this.hostElement.shadowRoot
294
+ ?.querySelector(`[data-date="${this.toLocalISO(this.focusDate)}"]`)
295
+ ?.doFocus();
296
+ }
297
+ navigate(direction, period) {
298
+ this.viewDate = new Date(direction === 'prev'
299
+ ? period === 'year'
300
+ ? this.viewDate.setFullYear(this.viewDate.getFullYear() - 1)
301
+ : this.viewDate.setMonth(this.viewDate.getMonth() - 1)
302
+ : period === 'year'
303
+ ? this.viewDate.setFullYear(this.viewDate.getFullYear() + 1)
304
+ : this.viewDate.setMonth(this.viewDate.getMonth() + 1));
305
+ // announce the new month and year
306
+ this.setAriaLive(this.getHeadline());
307
+ }
308
+ setAriaLive(text) {
309
+ const node = this.hostElement.shadowRoot?.querySelector('.cursor-aria');
310
+ if (node) {
311
+ node.innerHTML = text;
312
+ }
313
+ }
314
+ onInputBlur(e) {
315
+ if (!this.input) {
316
+ return;
317
+ }
318
+ const oldValue = this.value;
319
+ const value = this.parse(this.input.value ?? '');
320
+ this.selectionDate = value ? clampDate(this.minDate, value, this.maxDate) : value;
321
+ this.value = this.selectionDate?.toISOString();
322
+ if (oldValue !== this.value) {
323
+ this.catChange.emit(this.value);
324
+ }
325
+ this.input.value = this.getInputValue();
326
+ this.catBlur.emit(e);
327
+ }
328
+ dateGrid(year, month) {
329
+ const firstDayOfWeek = new Date(year, month, 1).getDay();
330
+ const daysInMonth = new Date(year, month + 1, 0).getDate();
331
+ const days = [...Array(daysInMonth).keys()];
332
+ const daysBefore = [...Array(firstDayOfWeek).keys()].map(day => new Date(year, month, day - firstDayOfWeek).getDate());
333
+ const daysAfter = [...Array(42 - days.length - daysBefore.length).keys()];
334
+ return [
335
+ ...daysBefore.map(day => new Date(year, month - 1, day + 1)),
336
+ ...days.map(day => new Date(year, month, day + 1)),
337
+ ...daysAfter.map(day => new Date(year, month + 1, day + 1))
338
+ ];
339
+ }
340
+ getHeadline() {
341
+ return `${this.locale.months.long[this.viewDate.getMonth()]} ${this.viewDate.getFullYear()}`;
342
+ }
343
+ getInputValue() {
344
+ const format = new Intl.DateTimeFormat(this.language, { year: 'numeric', month: '2-digit', day: '2-digit' });
345
+ return this.selectionDate ? format.format(this.selectionDate) : '';
346
+ }
347
+ getA11yLabelDay(date) {
348
+ const format = new Intl.DateTimeFormat(this.language, {
349
+ year: 'numeric',
350
+ month: 'long',
351
+ day: 'numeric',
352
+ weekday: 'long'
353
+ });
354
+ return format.format(date);
355
+ }
356
+ getWeekNumber(date, iso8601 = true) {
357
+ const currentDate = new Date(date.getTime());
358
+ const dayNum = iso8601 ? currentDate.getDay() || 7 : currentDate.getDay();
359
+ currentDate.setDate(currentDate.getDate() + 4 - dayNum);
360
+ const yearStart = new Date(currentDate.getFullYear(), 0, 1);
361
+ return Math.ceil(((+currentDate - +yearStart) / 86400000 + 1) / 7);
362
+ }
363
+ canFocus(date) {
364
+ const now = this.now;
365
+ const focused = this.focusedDate;
366
+ if (focused && isSameMonth(focused, this.viewDate)) {
367
+ return isSameMonth(focused, date) && isSameDay(focused, date);
368
+ }
369
+ else if (this.selectionDate && isSameMonth(this.selectionDate, this.viewDate)) {
370
+ return isSameMonth(this.selectionDate, date) && isSameDay(this.selectionDate, date);
371
+ }
372
+ else if (isSameMonth(this.viewDate, now) && (!this.minDate || this.minDate <= now)) {
373
+ return isSameMonth(this.viewDate, date) && isSameDay(now, date);
374
+ }
375
+ const minDay = isSameMonth(date, this.minDate) ? this.minDate?.getDate() ?? 1 : 1;
376
+ return isSameMonth(this.viewDate, date) && date.getDate() === minDay;
377
+ }
378
+ canClick(date) {
379
+ const min = this.minDate;
380
+ const max = this.maxDate;
381
+ return (!min || min <= date) && (!max || max >= date);
382
+ }
383
+ toLocalISO(date) {
384
+ const year = date.getFullYear();
385
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
386
+ const day = date.getDate().toString().padStart(2, '0');
387
+ return `${year}-${month}-${day}`;
388
+ }
389
+ get hostElement() { return this; }
390
+ static get style() { return CatDateStyle0; }
391
+ }, [1, "cat-date", {
392
+ "requiredMarker": [1, "required-marker"],
393
+ "horizontal": [4],
394
+ "autoComplete": [1, "auto-complete"],
395
+ "clearable": [4],
396
+ "disabled": [4],
397
+ "hint": [1],
398
+ "icon": [1],
399
+ "iconRight": [4, "icon-right"],
400
+ "identifier": [1],
401
+ "label": [1],
402
+ "labelHidden": [4, "label-hidden"],
403
+ "max": [1],
404
+ "min": [1],
405
+ "name": [1],
406
+ "placeholder": [1],
407
+ "textPrefix": [1, "text-prefix"],
408
+ "textSuffix": [1, "text-suffix"],
409
+ "readonly": [4],
410
+ "required": [4],
411
+ "value": [1025],
412
+ "errors": [4],
413
+ "errorUpdate": [8, "error-update"],
414
+ "nativeAttributes": [16],
415
+ "placement": [1],
416
+ "hasSlottedLabel": [32],
417
+ "hasSlottedHint": [32],
418
+ "viewDate": [32],
419
+ "selectionDate": [32],
420
+ "select": [64],
421
+ "doFocus": [64],
422
+ "doBlur": [64],
423
+ "clear": [64]
424
+ }, [[0, "catOpen", "onOpen"], [0, "catClose", "onClose"], [0, "keydown", "onKeyDown"]]]);
425
+ function defineCustomElement$1() {
426
+ if (typeof customElements === "undefined") {
427
+ return;
428
+ }
429
+ const components = ["cat-date", "cat-button", "cat-dropdown", "cat-icon", "cat-input", "cat-spinner"];
430
+ components.forEach(tagName => { switch (tagName) {
431
+ case "cat-date":
432
+ if (!customElements.get(tagName)) {
433
+ customElements.define(tagName, CatDate$1);
434
+ }
435
+ break;
436
+ case "cat-button":
437
+ if (!customElements.get(tagName)) {
438
+ defineCustomElement$6();
439
+ }
440
+ break;
441
+ case "cat-dropdown":
442
+ if (!customElements.get(tagName)) {
443
+ defineCustomElement$5();
444
+ }
445
+ break;
446
+ case "cat-icon":
447
+ if (!customElements.get(tagName)) {
448
+ defineCustomElement$4();
449
+ }
450
+ break;
451
+ case "cat-input":
452
+ if (!customElements.get(tagName)) {
453
+ defineCustomElement$3();
454
+ }
455
+ break;
456
+ case "cat-spinner":
457
+ if (!customElements.get(tagName)) {
458
+ defineCustomElement$2();
459
+ }
460
+ break;
461
+ } });
462
+ }
463
+
464
+ const CatDate = CatDate$1;
465
+ const defineCustomElement = defineCustomElement$1;
466
+
467
+ export { CatDate, defineCustomElement };
468
+
469
+ //# sourceMappingURL=cat-date.js.map
@@ -0,0 +1 @@
1
+ {"file":"cat-date.js","mappings":"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","names":["i18n","CatDate"],"sources":["src/components/cat-date/cat-date-locale.ts","src/components/cat-date/cat-date-math.ts","src/components/cat-date/cat-date.scss?tag=cat-date&encapsulation=shadow","src/components/cat-date/cat-date.tsx"],"sourcesContent":["import { catI18nRegistry as i18n } from '../cat-i18n/cat-i18n-registry';\n\nfunction getDays(language: string, weekday: 'long' | 'short' | 'narrow' = 'long') {\n const date = new Date();\n const firstDayOfWeek = (date.getUTCDate() - date.getUTCDay() + 7) % 7;\n const format = new Intl.DateTimeFormat(language, { weekday }).format;\n return [...Array(7).keys()].map(day => format(new Date(date.getTime()).setUTCDate(firstDayOfWeek + day)));\n}\n\nfunction getMonths(language: string, month: 'long' | 'short' = 'long') {\n const date = new Date(0);\n const format = new Intl.DateTimeFormat(language, { month }).format;\n return [...Array(12).keys()].map(month => format(new Date(date.getTime()).setUTCMonth(month)));\n}\n\nfunction getWeekInfo(language: string) {\n const locale = new Intl.Locale(language);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const weekInfo = (locale as any).getWeekInfo?.() ?? (locale as any).weekInfo;\n return {\n firstDay: weekInfo?.firstDay ?? 1,\n minDays: weekInfo?.minDays ?? 4,\n weekend: weekInfo?.weekend ?? [6, 7]\n };\n}\n\nfunction getFormat(language: string) {\n const format = new Intl.DateTimeFormat(language, { year: 'numeric', month: '2-digit', day: '2-digit' })\n .format(new Date(3456, 10, 22))\n .replace('3456', 'YYYY')\n .replace('56', 'YY')\n .replace('11', 'MM')\n .replace('22', 'DD');\n return /^(YYYY|YY|MM|DD)\\W(YYYY|YY|MM|DD)\\W(YYYY|YY|MM|DD)$/.test(format) ? format : 'DD-MM-YYYY';\n}\n\nexport function getLocale(language: string) {\n return {\n prevYear: i18n.t('datepicker.prevYear'),\n nextYear: i18n.t('datepicker.nextYear'),\n prevMonth: i18n.t('datepicker.prevMonth'),\n nextMonth: i18n.t('datepicker.nextMonth'),\n arrowKeys: i18n.t('datepicker.arrowKeys'),\n today: i18n.t('datepicker.today'),\n change: i18n.t('datepicker.change'),\n choose: i18n.t('datepicker.choose'),\n formatStr: getFormat(language),\n weekInfo: getWeekInfo(language),\n days: {\n short: getDays(language, 'short'),\n long: getDays(language, 'long')\n },\n months: {\n short: getMonths(language, 'short'),\n long: getMonths(language, 'long')\n }\n };\n}\n","export function isLeapYear(year: number): boolean {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nexport function addDays(date: Date, n: number): Date {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + n);\n}\n\nexport function addMonth(date: Date, n: number): Date {\n const [year, month, day] = [date.getFullYear(), date.getMonth(), date.getDate()];\n const maxDays = [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n const newDate = new Date(date);\n newDate.setDate(1);\n newDate.setMonth(newDate.getMonth() + n);\n newDate.setDate(Math.min(day, maxDays[(month + (n % 12) + 12) % 12]));\n return newDate;\n}\n\nexport function isSameYear(date1: Date | null, date2: Date | null): boolean {\n return !!date1 && !!date2 && date1.getFullYear() === date2.getFullYear();\n}\n\nexport function isSameMonth(date1: Date | null, date2: Date | null): boolean {\n return !!date1 && !!date2 && date1.getMonth() === date2.getMonth() && isSameYear(date1, date2);\n}\n\nexport function isSameDay(date1: Date | null, date2: Date | null): boolean {\n return !!date1 && !!date2 && date1.getDate() === date2.getDate() && isSameMonth(date1, date2);\n}\n\nexport function clampDate(min: Date | null, date: Date, max: Date | null): Date {\n return new Date(Math.min(Math.max(date.getTime(), min?.getTime() ?? -Infinity), max?.getTime() ?? Infinity));\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.label-aria {\n @include cat-visually-hidden;\n}\n\n.picker {\n padding: 1rem;\n display: inline-flex;\n flex-direction: column;\n}\n\n.picker-head {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n\n h3 {\n flex: 1;\n text-align: center;\n margin: 0;\n }\n}\n\n.picker-grid {\n display: grid;\n /* stylelint-disable declaration-block-no-redundant-longhand-properties */\n grid-template-rows: 2rem repeat(6, 1fr);\n grid-template-columns: 2rem repeat(7, 1fr);\n grid-template-areas:\n '. h h h h h h h'\n 'w d d d d d d d'\n 'w d d d d d d d'\n 'w d d d d d d d'\n 'w d d d d d d d'\n 'w d d d d d d d'\n 'w d d d d d d d';\n /* stylelint-enable declaration-block-no-redundant-longhand-properties */\n margin: 1rem 0 0.5rem;\n}\n\n.picker-grid-head {\n grid-area: h;\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n place-items: end center;\n padding-bottom: 0.5rem;\n}\n\n.picker-grid-weeks {\n grid-area: w;\n display: grid;\n grid-template-rows: repeat(6, 1fr);\n place-items: center right;\n padding-right: 0.5rem;\n}\n\n.picker-grid-days {\n grid-area: d;\n display: grid;\n grid-template-rows: repeat(6, 1fr);\n grid-template-columns: repeat(7, 1fr);\n}\n\n.picker-grid-head > *,\n.picker-grid-weeks > * {\n @include cat-body('xs', 600);\n color: cat-token('color.ui.font.muted') !important;\n text-decoration: none;\n}\n\n.date-other {\n opacity: 0.5;\n}\n\n.date-disabled {\n opacity: 0.25;\n}\n\n.picker-foot {\n display: flex;\n gap: 1rem;\n align-items: center;\n}\n\n.cursor-help {\n flex: 1;\n margin: 0;\n @include cat-body('s');\n color: cat-token('color.ui.font.muted') !important;\n text-align: center;\n\n &.cursor-right {\n text-align: right;\n }\n}\n\n.cursor-aria {\n @include cat-visually-hidden;\n}\n","import { Placement } from '@floating-ui/dom';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, h } from '@stencil/core';\nimport { ErrorMap } from '../cat-form-hint/cat-form-hint';\nimport { catI18nRegistry as i18n } from '../cat-i18n/cat-i18n-registry';\nimport { getLocale } from './cat-date-locale';\nimport { addDays, addMonth, clampDate, isSameDay, isSameMonth, isSameYear } from './cat-date-math';\n\n@Component({\n tag: 'cat-date',\n styleUrl: 'cat-date.scss',\n shadow: true\n})\nexport class CatDate {\n private readonly language = i18n.getLocale();\n private readonly locale = getLocale(this.language);\n private input?: HTMLCatInputElement;\n private isOpen = false;\n // additonally store the focus date to ensure correct focus after potential re-render\n private focusDate: Date | null = null;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n @State() hasSlottedHint = false;\n\n @State() viewDate: Date = this.now;\n\n @State() selectionDate: Date | null = null;\n\n /**\n * Whether the label need a marker to shown if the input is required or optional.\n */\n @Prop() requiredMarker?: 'none' | 'required' | 'optional' | 'none!' | 'optional!' | 'required!' = 'optional';\n\n /**\n * Whether the label is on top or left.\n */\n @Prop() horizontal = false;\n\n /**\n * Hint for form autofill feature.\n */\n @Prop() autoComplete?: string;\n\n /**\n * Whether the input should show a clear button.\n */\n @Prop() clearable = false;\n\n /**\n * Whether the input is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Optional hint text(s) to be displayed with the input.\n */\n @Prop() hint?: string | string[];\n\n /**\n * The name of an icon to be displayed in the input.\n */\n @Prop() icon?: string;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * A unique identifier for the input.\n */\n @Prop() identifier?: string;\n\n /**\n * The label for the input.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A maximum value for the date, given in local ISO 8601 date format YYYY-MM-DD.\n */\n @Prop() max?: string;\n\n get maxDate() {\n const [y, m, d] = this.max?.split('-').map(Number) || [];\n return this.max ? new Date(y, m - 1, d) : null;\n }\n\n /**\n * A minimum value for the date, given in local ISO 8601 date format YYYY-MM-DD.\n */\n @Prop() min?: string;\n\n get minDate() {\n const [y, m, d] = this.min?.split('-').map(Number) || [];\n return this.min ? new Date(y, m - 1, d) : null;\n }\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * A textual prefix to be displayed in the input.\n */\n @Prop() textPrefix?: string;\n\n /**\n * A textual suffix to be displayed in the input.\n */\n @Prop() textSuffix?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * The value of the control, given in local ISO 8601 date format YYYY-MM-DD.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * The validation errors for this input. Will render a hint under the input\n * with the translated error message(s) `error.${key}`. If an object is\n * passed, the keys will be used as error keys and the values translation\n * parameters.\n * If the value is `true`, the input will be marked as invalid without any\n * hints under the input.\n */\n @Prop() errors?: boolean | string[] | ErrorMap;\n\n /**\n * Fine-grained control over when the errors are shown. Can be `false` to\n * never show errors, `true` to show errors on blur, or a number to show\n * errors on change with the given delay in milliseconds.\n */\n @Prop() errorUpdate: boolean | number = 0;\n\n /**\n * Attributes that will be added to the native HTML input element.\n */\n @Prop() nativeAttributes?: { [key: string]: string };\n\n /**\n * The placement of the dropdown.\n */\n @Prop() placement: Placement = 'bottom-end';\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter<string>;\n\n /**\n * Emitted when the input received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n private get now() {\n const date = new Date();\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n private get focusedDate() {\n const [all, year, month, day] =\n this.hostElement.shadowRoot\n ?.querySelector<HTMLCatButtonElement>(`[data-date]:focus`)\n ?.dataset.date?.match(/^(\\d{4})-(\\d{2})-(\\d{2})/) ?? [];\n return all ? new Date(Number(year), Number(month) - 1, Number(day)) : null;\n }\n\n componentWillLoad() {\n const [match, year, month, day] = this.value?.match(/^(\\d{4})-(\\d{2})-(\\d{2})/) ?? [];\n if (match) {\n this.select(new Date(Number(year), Number(month) - 1, Number(day)));\n }\n }\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n this.hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n }\n\n componentDidLoad() {\n const format = this.locale.formatStr.replace('YYYY', 'Y').replace('YY', 'y').replace('MM', 'm').replace('DD', 'd');\n const [, p1, d1, p2, p3] = /(\\w+)([^\\w]+)(\\w+)[^\\w]+(\\w+)/.exec(format) || [];\n this.input?.mask({\n date: true,\n dateMin: this.min,\n dateMax: this.max,\n delimiter: d1,\n datePattern: [p1, p2, p3]\n });\n }\n\n componentDidRender() {\n if (this.focusDate) {\n this.hostElement.shadowRoot\n ?.querySelector<HTMLCatButtonElement>(`[data-date=\"${this.toLocalISO(this.focusDate)}\"]`)\n ?.doFocus();\n this.focusDate = null;\n }\n }\n\n @Listen('catOpen')\n onOpen() {\n this.isOpen = true;\n this.setAriaLive('');\n const viewDate = this.selectionDate\n ? new Date(this.selectionDate.getFullYear(), this.selectionDate.getMonth(), 1)\n : this.now;\n this.viewDate = clampDate(this.minDate, viewDate, this.maxDate);\n }\n\n @Listen('catClose')\n onClose() {\n this.isOpen = false;\n }\n\n @Listen('keydown')\n onKeyDown(e: KeyboardEvent) {\n if (!this.isOpen || !['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n return;\n }\n const focused = this.focusedDate;\n if (!focused) {\n e.preventDefault();\n this.focus(this.selectionDate || this.now);\n } else if (e.key === 'ArrowLeft') {\n e.preventDefault();\n this.focus(e.shiftKey ? addMonth(focused, -1) : addDays(focused, -1));\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n this.focus(e.shiftKey ? addMonth(focused, 1) : addDays(focused, 1));\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n this.focus(addDays(focused, -7));\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.focus(addDays(focused, 7));\n }\n }\n\n /**\n * Select a date in the picker.\n *\n * @param date The date to select.\n */\n @Method()\n async select(date: Date): Promise<void> {\n const oldValue = this.value;\n const newDate = clampDate(\n this.minDate,\n new Date(date.getFullYear(), date.getMonth(), date.getDate()),\n this.maxDate\n );\n this.focus(newDate);\n this.selectionDate = newDate;\n this.value = newDate.toISOString();\n if (oldValue !== this.value) {\n this.catChange.emit(this.value);\n }\n }\n\n /**\n * Programmatically move focus to the input. Use this method instead of\n * `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async doFocus(options?: FocusOptions): Promise<void> {\n this.input?.doFocus(options);\n }\n\n /**\n * Programmatically remove focus from the input. Use this method instead of\n * `input.blur()`.\n */\n @Method()\n async doBlur(): Promise<void> {\n this.input?.doBlur();\n }\n\n /**\n * Clear the input.\n */\n @Method()\n async clear(): Promise<void> {\n this.input?.clear();\n }\n\n render() {\n const dateGrid = this.dateGrid(this.viewDate.getFullYear(), this.viewDate.getMonth());\n return (\n <Host>\n <cat-input\n class=\"cat-date-input\"\n ref={el => (this.input = el as HTMLCatInputElement)}\n requiredMarker={this.requiredMarker}\n horizontal={this.horizontal}\n autoComplete={this.autoComplete}\n clearable={this.clearable}\n disabled={this.disabled}\n hint={this.hint}\n icon={this.icon}\n iconRight={this.iconRight}\n identifier={this.identifier}\n labelHidden={this.labelHidden}\n name={this.name}\n placeholder={this.placeholder}\n textPrefix={this.textPrefix}\n textSuffix={this.textSuffix}\n readonly={this.readonly}\n required={this.required}\n errors={this.errors}\n errorUpdate={this.errorUpdate}\n nativeAttributes={this.nativeAttributes}\n value={this.getInputValue()}\n onCatFocus={e => this.catFocus.emit(e.detail)}\n onCatBlur={e => this.onInputBlur(e.detail)}\n >\n <span slot=\"label\">\n {this.label}\n <span class=\"label-aria\"> ({this.locale.formatStr})</span>\n </span>\n <cat-dropdown slot=\"addon\" placement={this.placement} arrowNavigation=\"none\" noResize>\n <cat-button\n slot=\"trigger\"\n icon=\"$cat:datepicker-calendar\"\n iconOnly\n class=\"cat-date-toggle\"\n disabled={this.disabled}\n a11yLabel={\n this.selectionDate\n ? `${this.locale.change}, ${this.getA11yLabelDay(this.selectionDate)}`\n : this.locale.choose\n }\n ></cat-button>\n <div class=\"picker\" slot=\"content\">\n <div class=\"picker-head\">\n <cat-button\n icon=\"$cat:datepicker-year-prev\"\n iconOnly\n size=\"xs\"\n variant=\"text\"\n a11y-label={this.locale.prevYear}\n disabled={isSameYear(this.viewDate, this.minDate)}\n onClick={() => this.navigate('prev', 'year')}\n data-dropdown-no-close\n ></cat-button>\n <cat-button\n icon=\"$cat:datepicker-month-prev\"\n iconOnly\n size=\"xs\"\n variant=\"text\"\n a11y-label={this.locale.prevMonth}\n disabled={isSameMonth(this.viewDate, this.minDate)}\n onClick={() => this.navigate('prev', 'month')}\n data-dropdown-no-close\n ></cat-button>\n <h3>{this.getHeadline()}</h3>\n <cat-button\n icon=\"$cat:datepicker-month-next\"\n iconOnly\n size=\"xs\"\n variant=\"text\"\n a11y-label={this.locale.nextMonth}\n disabled={isSameMonth(this.viewDate, this.maxDate)}\n onClick={() => this.navigate('next', 'month')}\n data-dropdown-no-close\n ></cat-button>\n <cat-button\n icon=\"$cat:datepicker-year-next\"\n iconOnly\n size=\"xs\"\n variant=\"text\"\n a11y-label={this.locale.nextYear}\n disabled={isSameYear(this.viewDate, this.maxDate)}\n onClick={() => this.navigate('next', 'year')}\n data-dropdown-no-close\n ></cat-button>\n </div>\n <div class=\"picker-grid\" onFocusin={() => this.setAriaLive(this.locale.arrowKeys)}>\n <div class=\"picker-grid-head\">\n {Array.from(Array(7), (_, i) => (\n <abbr title={this.locale.days.long[i]}>{this.locale.days.short[i]}</abbr>\n ))}\n </div>\n <div class=\"picker-grid-weeks\">\n {dateGrid\n .filter((_, i) => i % 7 === 0)\n .map(day => (\n <div>{this.getWeekNumber(day)}</div>\n ))}\n </div>\n <div class=\"picker-grid-days\">\n {dateGrid.map(day => (\n <cat-button\n class={{\n 'cat-date-item': true,\n 'date-other': !isSameMonth(this.viewDate, day),\n 'date-today': isSameDay(this.now, day),\n 'date-selected': isSameDay(this.selectionDate, day),\n 'date-focusable': this.canFocus(day),\n 'date-disabled': !this.canClick(day)\n }}\n nativeAttributes={!this.canFocus(day) ? { tabindex: '-1' } : {}}\n variant={\n isSameDay(this.selectionDate, day) ? 'filled' : isSameDay(this.now, day) ? 'outlined' : 'text'\n }\n a11yLabel={this.getA11yLabelDay(day)}\n active={isSameDay(this.selectionDate, day)}\n color={isSameDay(this.selectionDate, day) || isSameDay(this.now, day) ? 'primary' : 'secondary'}\n disabled={!this.canClick(day)}\n onClick={() => this.select(day)}\n data-date={this.toLocalISO(day)}\n >\n {day.getDate()}\n </cat-button>\n ))}\n </div>\n </div>\n <div class=\"picker-foot\">\n {this.canClick(this.now) && (\n <cat-button size=\"s\" data-dropdown-no-close onClick={() => this.select(this.now)}>\n {this.locale.today}\n </cat-button>\n )}\n <p\n class={{\n 'cursor-help': true,\n 'cursor-right': this.canClick(this.now)\n }}\n >\n {this.locale.arrowKeys}\n </p>\n <p class=\"cursor-aria\" aria-live=\"polite\"></p>\n </div>\n </div>\n </cat-dropdown>\n </cat-input>\n </Host>\n );\n }\n\n private parse(value: string) {\n const [, p1, d1, p2, p3] = /(\\w+)([^\\w]+)(\\w+)[^\\w]+(\\w+)/.exec(this.locale.formatStr) || [];\n const formatParts = [p1, p2, p3];\n const parts = value.split(d1).map(s => Number(s || 'x'));\n let year = parts[formatParts.indexOf('YYYY') || formatParts.indexOf('YY')] || this.now.getFullYear();\n const month = parts[formatParts.indexOf('MM')];\n const day = parts[formatParts.indexOf('DD')];\n if (!Number.isInteger(month) || !Number.isInteger(day)) {\n return null;\n } else if (year < 100) {\n year += year < 50 ? 2000 : 1900;\n }\n return new Date(year, month - 1, day);\n }\n\n private focus(date: Date) {\n this.focusDate = clampDate(this.minDate, date, this.maxDate);\n this.viewDate = new Date(this.focusDate.getFullYear(), this.focusDate.getMonth());\n this.hostElement.shadowRoot\n ?.querySelector<HTMLCatButtonElement>(`[data-date=\"${this.toLocalISO(this.focusDate)}\"]`)\n ?.doFocus();\n }\n\n private navigate(direction: 'prev' | 'next', period: 'year' | 'month') {\n this.viewDate = new Date(\n direction === 'prev'\n ? period === 'year'\n ? this.viewDate.setFullYear(this.viewDate.getFullYear() - 1)\n : this.viewDate.setMonth(this.viewDate.getMonth() - 1)\n : period === 'year'\n ? this.viewDate.setFullYear(this.viewDate.getFullYear() + 1)\n : this.viewDate.setMonth(this.viewDate.getMonth() + 1)\n );\n // announce the new month and year\n this.setAriaLive(this.getHeadline());\n }\n\n private setAriaLive(text: string) {\n const node = this.hostElement.shadowRoot?.querySelector('.cursor-aria');\n if (node) {\n node.innerHTML = text;\n }\n }\n\n private onInputBlur(e: FocusEvent) {\n if (!this.input) {\n return;\n }\n const oldValue = this.value;\n const value = this.parse(this.input.value ?? '');\n this.selectionDate = value ? clampDate(this.minDate, value, this.maxDate) : value;\n this.value = this.selectionDate?.toISOString();\n if (oldValue !== this.value) {\n this.catChange.emit(this.value);\n }\n this.input.value = this.getInputValue();\n this.catBlur.emit(e);\n }\n\n private dateGrid(year: number, month: number) {\n const firstDayOfWeek = new Date(year, month, 1).getDay();\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const days = [...Array(daysInMonth).keys()];\n const daysBefore = [...Array(firstDayOfWeek).keys()].map(day =>\n new Date(year, month, day - firstDayOfWeek).getDate()\n );\n const daysAfter = [...Array(42 - days.length - daysBefore.length).keys()];\n return [\n ...daysBefore.map(day => new Date(year, month - 1, day + 1)),\n ...days.map(day => new Date(year, month, day + 1)),\n ...daysAfter.map(day => new Date(year, month + 1, day + 1))\n ];\n }\n\n private getHeadline() {\n return `${this.locale.months.long[this.viewDate.getMonth()]} ${this.viewDate.getFullYear()}`;\n }\n\n private getInputValue() {\n const format = new Intl.DateTimeFormat(this.language, { year: 'numeric', month: '2-digit', day: '2-digit' });\n return this.selectionDate ? format.format(this.selectionDate) : '';\n }\n\n private getA11yLabelDay(date: Date) {\n const format = new Intl.DateTimeFormat(this.language, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n weekday: 'long'\n });\n return format.format(date);\n }\n\n private getWeekNumber(date: Date, iso8601 = true) {\n const currentDate = new Date(date.getTime());\n const dayNum = iso8601 ? currentDate.getDay() || 7 : currentDate.getDay();\n currentDate.setDate(currentDate.getDate() + 4 - dayNum);\n const yearStart = new Date(currentDate.getFullYear(), 0, 1);\n return Math.ceil(((+currentDate - +yearStart) / 86400000 + 1) / 7);\n }\n\n private canFocus(date: Date): boolean {\n const now = this.now;\n const focused = this.focusedDate;\n if (focused && isSameMonth(focused, this.viewDate)) {\n return isSameMonth(focused, date) && isSameDay(focused, date);\n } else if (this.selectionDate && isSameMonth(this.selectionDate, this.viewDate)) {\n return isSameMonth(this.selectionDate, date) && isSameDay(this.selectionDate, date);\n } else if (isSameMonth(this.viewDate, now) && (!this.minDate || this.minDate <= now)) {\n return isSameMonth(this.viewDate, date) && isSameDay(now, date);\n }\n const minDay = isSameMonth(date, this.minDate) ? this.minDate?.getDate() ?? 1 : 1;\n return isSameMonth(this.viewDate, date) && date.getDate() === minDay;\n }\n\n private canClick(date: Date) {\n const min = this.minDate;\n const max = this.maxDate;\n return (!min || min <= date) && (!max || max >= date);\n }\n\n private toLocalISO(date: Date) {\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const day = date.getDate().toString().padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n}\n"],"version":3}
@@ -42,11 +42,11 @@ const CatDatepickerInline$1 = /*@__PURE__*/ proxyCustomElement(class CatDatepick
42
42
  this.pickr = this.initDatepicker(this.input);
43
43
  }
44
44
  render() {
45
- return (h(Host, { key: '76c2554d2968d81f9610a48498a2cc688d65f596' }, h("div", { key: '029811c7aaec4382d62be054965864556112a017', tabIndex: this.disabled || this.readonly ? -1 : undefined, class: {
45
+ return (h(Host, { key: 'bb9ebb60420d1268751f6136e38d1aed5bc74602' }, h("div", { key: 'b84cc674ab3b677ceb646dee84b1b83d5d969746', tabIndex: this.disabled || this.readonly ? -1 : undefined, class: {
46
46
  'datepicker-wrapper': true,
47
47
  'datepicker-disabled': this.disabled,
48
48
  'datepicker-readonly': this.readonly
49
- } }, h("input", { key: '2f4ccdf0392adcb7d231639d078b12eba82cd477', ref: el => (this.input = el), value: this.value, disabled: this.disabled, readonly: this.readonly }))));
49
+ } }, h("input", { key: '6f7706220aa7465a907391e78f97a5e1ad91fdf0', ref: el => (this.input = el), value: this.value, disabled: this.disabled, readonly: this.readonly }))));
50
50
  }
51
51
  initDatepicker(input) {
52
52
  if (!input) {
@@ -123,7 +123,7 @@ const CatDatepickerFlat = /*@__PURE__*/ proxyCustomElement(class CatDatepickerFl
123
123
  }
124
124
  render() {
125
125
  return [
126
- h("cat-input", { key: 'd3848f35807c0d52c576af50c46fb609afb043d2', ref: el => (this._input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, label: this.label, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, value: this.value, errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, onCatChange: e => {
126
+ h("cat-input", { key: '30fb619a94e93a583bf7df28945917562c6b184f', ref: el => (this._input = el), requiredMarker: this.requiredMarker, horizontal: this.horizontal, autoComplete: this.autoComplete, clearable: this.clearable, disabled: this.disabled, hint: this.hint, icon: this.icon, iconRight: this.iconRight, identifier: this.identifier, label: this.label, labelHidden: this.labelHidden, name: this.name, placeholder: this.placeholder, textPrefix: this.textPrefix, textSuffix: this.textSuffix, readonly: this.readonly, required: this.required, value: this.value, errors: this.errors, errorUpdate: this.errorUpdate, nativeAttributes: this.nativeAttributes, onCatChange: e => {
127
127
  e.stopPropagation();
128
128
  this.value = e.detail || undefined;
129
129
  }, onCatFocus: e => {
@@ -133,7 +133,7 @@ const CatDatepickerFlat = /*@__PURE__*/ proxyCustomElement(class CatDatepickerFl
133
133
  e.stopPropagation();
134
134
  this.catBlur.emit(e.detail);
135
135
  } }, this.hasSlottedLabel && (h("span", { slot: "label" }, h("slot", { name: "label" }))), this.hasSlottedHint && (h("span", { slot: "hint" }, h("slot", { name: "hint" })))),
136
- h("div", { key: 'f773fd3007b93efbaf270376e6029f45e94e42b3', ref: el => (this._calendarWrapper = el), class: "datepicker-wrapper" })
136
+ h("div", { key: 'f28f001436363260ec7c9dff26a8f82475c98ac5', ref: el => (this._calendarWrapper = el), class: "datepicker-wrapper" })
137
137
  ];
138
138
  }
139
139
  initDatepicker(input) {