@studiolxd/brand 49.28.0 → 50.0.0

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 (279) hide show
  1. package/LICENSE +61 -0
  2. package/README.md +26 -4
  3. package/dist/_shared/assign-ref.js +6 -0
  4. package/dist/_shared/calendargrid.js +57 -57
  5. package/dist/_shared/datepicker.js +67 -65
  6. package/dist/_shared/default-render-link.js +7 -0
  7. package/dist/_shared/dialogsurface.js +1 -1
  8. package/dist/_shared/dropdownitems.js +14 -20
  9. package/dist/_shared/imagecropdialog.js +38 -441
  10. package/dist/_shared/overflow-focusable.js +15 -0
  11. package/dist/_shared/side-offset.js +13 -0
  12. package/dist/_shared/tokens.js +31 -129
  13. package/dist/_shared/useasyncoptions.js +30 -0
  14. package/dist/_types/atoms/Accordion/Accordion.d.ts +7 -1
  15. package/dist/_types/atoms/AsyncMultiSelect/AsyncMultiSelect.d.ts +8 -4
  16. package/dist/_types/atoms/AsyncSelect/AsyncSelect.d.ts +8 -4
  17. package/dist/_types/atoms/Autocomplete/Autocomplete.d.ts +10 -6
  18. package/dist/_types/atoms/CloseButton/CloseButton.d.ts +13 -3
  19. package/dist/_types/atoms/Fieldset/Fieldset.d.ts +1 -1
  20. package/dist/_types/atoms/InputPhone/InputPhone.d.ts +2 -0
  21. package/dist/_types/atoms/MultiSelect/MultiSelect.d.ts +11 -10
  22. package/dist/_types/atoms/Select/Select.d.ts +6 -0
  23. package/dist/_types/atoms/Skeleton/Skeleton.d.ts +1 -1
  24. package/dist/_types/atoms/Spinner/Spinner.d.ts +3 -1
  25. package/dist/_types/atoms/TypingIndicator/TypingIndicator.d.ts +3 -1
  26. package/dist/_types/atoms/_shared/useAsyncOptions.d.ts +36 -0
  27. package/dist/_types/constants/assign-ref.d.ts +12 -0
  28. package/dist/_types/constants/default-render-link.d.ts +13 -0
  29. package/dist/_types/constants/overflow-focusable.d.ts +15 -0
  30. package/dist/_types/constants/side-offset.d.ts +18 -0
  31. package/dist/_types/email/EmailLayout.d.ts +38 -21
  32. package/dist/_types/messages/BrandMessages.d.ts +8 -2
  33. package/dist/_types/messages/index.d.ts +1 -1
  34. package/dist/_types/molecules/AppLauncher/AppLauncher.d.ts +9 -3
  35. package/dist/_types/molecules/Calendar/Calendar.d.ts +10 -1
  36. package/dist/_types/molecules/CalendarPlanner/CalendarPlanner.d.ts +43 -13
  37. package/dist/_types/molecules/CalendarRoster/CalendarRoster.d.ts +10 -2
  38. package/dist/_types/molecules/ContextMenu/ContextMenu.d.ts +8 -1
  39. package/dist/_types/molecules/DatePicker/DatePicker.d.ts +6 -0
  40. package/dist/_types/molecules/DateTimeField/DateTimeField.d.ts +2 -0
  41. package/dist/_types/molecules/DocsSearch/DocsSearch.d.ts +2 -2
  42. package/dist/_types/molecules/FloatingToolbar/FloatingToolbar.d.ts +83 -0
  43. package/dist/_types/molecules/FormField/FormField.d.ts +5 -6
  44. package/dist/_types/molecules/LanguageSwitcher/LanguageSwitcher.d.ts +7 -3
  45. package/dist/_types/molecules/LoadingRegion/LoadingRegion.d.ts +12 -4
  46. package/dist/_types/molecules/Modal/Modal.d.ts +10 -4
  47. package/dist/_types/molecules/OrgSwitcher/OrgSwitcher.d.ts +7 -1
  48. package/dist/_types/molecules/PasswordField/PasswordField.d.ts +9 -2
  49. package/dist/_types/molecules/PrevNextNav/PrevNextNav.d.ts +3 -1
  50. package/dist/_types/molecules/RecurrenceField/RecurrenceField.d.ts +6 -1
  51. package/dist/_types/molecules/SidebarNav/SidebarNav.d.ts +18 -2
  52. package/dist/_types/molecules/SiteNav/SiteNav.d.ts +4 -1
  53. package/dist/_types/molecules/StatTile/StatTile.d.ts +15 -1
  54. package/dist/_types/molecules/Table/Table.d.ts +1 -1
  55. package/dist/_types/molecules/ThemeSwitcher/ThemeSwitcher.d.ts +38 -3
  56. package/dist/_types/molecules/Toast/Toaster.d.ts +8 -0
  57. package/dist/_types/molecules/UserMenu/UserMenu.d.ts +7 -1
  58. package/dist/_types/molecules/_shared/calendarGrid.d.ts +15 -2
  59. package/dist/_types/molecules/_shared/dialogSurface.d.ts +6 -1
  60. package/dist/_types/molecules/_shared/dropdownItems.d.ts +0 -2
  61. package/dist/_types/sections/AppHeader/AppHeader.d.ts +3 -1
  62. package/dist/_types/sections/AppShell/AppShell.d.ts +6 -1
  63. package/dist/_types/sections/LegalFooter/LegalFooter.d.ts +7 -1
  64. package/dist/_types/sections/Sidebar/Sidebar.d.ts +3 -1
  65. package/dist/_types/sections/SiteFooter/SiteFooter.d.ts +6 -2
  66. package/dist/_types/sections/SiteHeader/SiteHeader.d.ts +2 -2
  67. package/dist/_types/templates/ConnectorAuth/ConnectorAuthShell.d.ts +5 -2
  68. package/dist/_types/templates/ConnectorAuth/ConnectorConsentPage.d.ts +1 -1
  69. package/dist/_types/templates/ConnectorAuth/ConnectorExternalSignInPage.d.ts +1 -1
  70. package/dist/_types/templates/ConnectorAuth/ConnectorRejectionPage.d.ts +1 -1
  71. package/dist/_types/templates/ConnectorAuth/ConnectorSignInPage.d.ts +1 -1
  72. package/dist/_types/templates/ErrorPage/ErrorPage.d.ts +7 -1
  73. package/dist/_types/templates/NotFoundPage/NotFoundPage.d.ts +7 -1
  74. package/dist/_types/templates/PublicPageShell/PublicPageShell.d.ts +6 -0
  75. package/dist/accordion.css +1 -1
  76. package/dist/accordion.js +6 -5
  77. package/dist/alert.css +1 -1
  78. package/dist/app-header.js +16 -21
  79. package/dist/app-launcher.css +1 -1
  80. package/dist/app-launcher.js +29 -21
  81. package/dist/app-shell.js +43 -43
  82. package/dist/async-multi-select.css +1 -1
  83. package/dist/async-multi-select.js +104 -173
  84. package/dist/async-select.css +1 -1
  85. package/dist/async-select.js +81 -137
  86. package/dist/autocomplete.css +1 -1
  87. package/dist/autocomplete.js +76 -115
  88. package/dist/brand.css +77 -987
  89. package/dist/breadcrumb.js +11 -16
  90. package/dist/button.css +1 -1
  91. package/dist/calendar-planner.css +1 -1
  92. package/dist/calendar-planner.js +100 -95
  93. package/dist/calendar-roster.css +1 -1
  94. package/dist/calendar-roster.js +69 -61
  95. package/dist/calendar.css +1 -1
  96. package/dist/calendar.js +86 -85
  97. package/dist/card.css +1 -1
  98. package/dist/card.js +42 -41
  99. package/dist/chart.css +1 -1
  100. package/dist/chat-shell.js +48 -47
  101. package/dist/checkbox.css +1 -1
  102. package/dist/close-button.js +14 -12
  103. package/dist/command-palette.css +1 -1
  104. package/dist/connector-consent-page.js +19 -18
  105. package/dist/connector-external-sign-in-page.js +6 -5
  106. package/dist/connector-rejection-page.js +5 -4
  107. package/dist/connector-sign-in-page.js +10 -9
  108. package/dist/consent.css +1 -1
  109. package/dist/context-menu.js +3 -2
  110. package/dist/conversation-list.css +1 -1
  111. package/dist/conversation-thread.css +1 -1
  112. package/dist/conversation-thread.js +1 -0
  113. package/dist/data-table.js +74 -1625
  114. package/dist/date-time-field.js +7 -6
  115. package/dist/docs-search.js +36 -38
  116. package/dist/email.js +10 -7
  117. package/dist/error-page.js +2 -2
  118. package/dist/fieldset.css +1 -1
  119. package/dist/figure.js +1 -0
  120. package/dist/file-upload.css +1 -1
  121. package/dist/file-upload.js +48 -50
  122. package/dist/floating-toolbar.css +1 -0
  123. package/dist/floating-toolbar.js +64 -0
  124. package/dist/form-field.js +55 -53
  125. package/dist/imagecropdialog.css +1 -1
  126. package/dist/input-phone.css +1 -1
  127. package/dist/input-phone.js +30 -31
  128. package/dist/input.css +1 -1
  129. package/dist/label.css +1 -1
  130. package/dist/language-switcher.js +37 -44
  131. package/dist/legal-footer.js +12 -17
  132. package/dist/loading-region.css +1 -1
  133. package/dist/loading-region.js +8 -8
  134. package/dist/menu.css +1 -1
  135. package/dist/menu.js +4 -3
  136. package/dist/message-bubble.css +1 -1
  137. package/dist/message-composer.css +1 -1
  138. package/dist/modal.css +1 -1
  139. package/dist/modal.js +9 -9
  140. package/dist/multi-select.css +1 -1
  141. package/dist/multi-select.js +104 -172
  142. package/dist/not-found-page.js +8 -5
  143. package/dist/notification-list.js +16 -21
  144. package/dist/notification-panel.js +34 -46
  145. package/dist/number-badge.css +1 -1
  146. package/dist/number-input.css +1 -1
  147. package/dist/org-switcher.css +1 -1
  148. package/dist/org-switcher.js +13 -11
  149. package/dist/password-field.js +40 -39
  150. package/dist/popover.css +1 -1
  151. package/dist/popover.js +9 -15
  152. package/dist/prev-next-nav.js +8 -7
  153. package/dist/public-page-shell.js +7 -6
  154. package/dist/radio.css +1 -1
  155. package/dist/recurrence-field.css +1 -1
  156. package/dist/recurrence-field.js +38 -37
  157. package/dist/select.css +1 -1
  158. package/dist/select.js +3 -2
  159. package/dist/sheet.css +1 -1
  160. package/dist/sidebar-nav.css +1 -1
  161. package/dist/sidebar-nav.js +75 -70
  162. package/dist/sidebar.css +1 -1
  163. package/dist/sidebar.js +46 -42
  164. package/dist/site-footer.js +28 -28
  165. package/dist/site-header.js +39 -44
  166. package/dist/site-nav.js +10 -19
  167. package/dist/site-search.js +34 -36
  168. package/dist/site-shell.js +17 -16
  169. package/dist/skeleton.js +8 -6
  170. package/dist/sortable.js +20 -19
  171. package/dist/spinner.js +11 -7
  172. package/dist/stat-tile.js +24 -26
  173. package/dist/switcher.css +1 -1
  174. package/dist/table.css +1 -1
  175. package/dist/table.js +57 -45
  176. package/dist/textarea.css +1 -1
  177. package/dist/theme-switcher.js +57 -56
  178. package/dist/toaster.css +1 -1
  179. package/dist/toggle.css +1 -1
  180. package/dist/tokens.css +75 -986
  181. package/dist/tooltip.css +1 -1
  182. package/dist/tooltip.js +20 -27
  183. package/dist/typing-indicator.css +1 -1
  184. package/dist/typing-indicator.js +4 -4
  185. package/dist/user-menu.css +1 -1
  186. package/dist/user-menu.js +38 -45
  187. package/dist/visuallyhidden.css +1 -1
  188. package/package.json +26 -14
  189. package/src/tokens/components/async-multi-select.css +4 -0
  190. package/src/tokens/components/async-select.css +3 -0
  191. package/src/tokens/components/autocomplete.css +1 -0
  192. package/src/tokens/components/breadcrumb.css +0 -2
  193. package/src/tokens/components/button.css +0 -23
  194. package/src/tokens/components/control.css +0 -4
  195. package/src/tokens/components/file-upload.css +0 -4
  196. package/src/tokens/components/radio.css +2 -0
  197. package/src/tokens/components/site-header.css +0 -1
  198. package/src/tokens/index.css +5 -7
  199. package/src/tokens/molecules/async-multi-select-field.css +0 -6
  200. package/src/tokens/molecules/async-select-field.css +0 -6
  201. package/src/tokens/molecules/autocomplete-field.css +0 -5
  202. package/src/tokens/molecules/avatar-upload.css +0 -6
  203. package/src/tokens/molecules/calendar-roster.css +5 -0
  204. package/src/tokens/molecules/chart.css +0 -3
  205. package/src/tokens/molecules/checkbox-field.css +0 -6
  206. package/src/tokens/molecules/consent.css +1 -0
  207. package/src/tokens/molecules/conversation-thread.css +10 -0
  208. package/src/tokens/molecules/date-picker-field.css +0 -6
  209. package/src/tokens/molecules/date-time-field.css +0 -6
  210. package/src/tokens/molecules/dropdown-field.css +0 -6
  211. package/src/tokens/molecules/file-upload-field.css +0 -6
  212. package/src/tokens/molecules/floating-toolbar.css +18 -0
  213. package/src/tokens/molecules/floating-toolbar.ts +4 -0
  214. package/src/tokens/molecules/input-field.css +0 -1
  215. package/src/tokens/molecules/input-phone-field.css +0 -6
  216. package/src/tokens/molecules/modal.css +1 -0
  217. package/src/tokens/molecules/multi-select-field.css +0 -6
  218. package/src/tokens/molecules/number-input-field.css +0 -6
  219. package/src/tokens/molecules/otp-field.css +0 -6
  220. package/src/tokens/molecules/radio-field.css +0 -6
  221. package/src/tokens/molecules/recurrence-field.css +1 -0
  222. package/src/tokens/molecules/select-field.css +0 -6
  223. package/src/tokens/molecules/sidebar-nav.css +0 -6
  224. package/src/tokens/molecules/site-search.css +0 -2
  225. package/src/tokens/molecules/switcher-field.css +0 -1
  226. package/src/tokens/molecules/table.css +1 -0
  227. package/src/tokens/molecules/textarea-field.css +0 -6
  228. package/src/tokens/molecules/time-field.css +0 -6
  229. package/src/tokens/scss/_index.legacy.scss +1 -0
  230. package/src/tokens/scss/_index.scss +1 -0
  231. package/src/tokens/scss/components/_async-multi-select.scss +4 -0
  232. package/src/tokens/scss/components/_async-select.scss +3 -0
  233. package/src/tokens/scss/components/_autocomplete.scss +1 -0
  234. package/src/tokens/scss/components/_breadcrumb.scss +0 -2
  235. package/src/tokens/scss/components/_button.scss +0 -23
  236. package/src/tokens/scss/components/_control.scss +0 -4
  237. package/src/tokens/scss/components/_file-upload.scss +0 -4
  238. package/src/tokens/scss/components/_site-header.scss +0 -1
  239. package/src/tokens/scss/molecules/_async-multi-select-field.scss +0 -5
  240. package/src/tokens/scss/molecules/_async-select-field.scss +0 -5
  241. package/src/tokens/scss/molecules/_autocomplete-field.scss +0 -5
  242. package/src/tokens/scss/molecules/_avatar-upload.scss +0 -5
  243. package/src/tokens/scss/molecules/_calendar-roster.scss +4 -0
  244. package/src/tokens/scss/molecules/_chart.scss +0 -2
  245. package/src/tokens/scss/molecules/_checkbox-field.scss +0 -5
  246. package/src/tokens/scss/molecules/_consent.scss +1 -0
  247. package/src/tokens/scss/molecules/_conversation-thread.scss +3 -0
  248. package/src/tokens/scss/molecules/_date-picker-field.scss +0 -5
  249. package/src/tokens/scss/molecules/_date-time-field.scss +0 -5
  250. package/src/tokens/scss/molecules/_dropdown-field.scss +0 -5
  251. package/src/tokens/scss/molecules/_file-upload-field.scss +0 -5
  252. package/src/tokens/scss/molecules/_floating-toolbar.scss +15 -0
  253. package/src/tokens/scss/molecules/_input-field.scss +0 -1
  254. package/src/tokens/scss/molecules/_input-phone-field.scss +0 -5
  255. package/src/tokens/scss/molecules/_modal.scss +1 -0
  256. package/src/tokens/scss/molecules/_multi-select-field.scss +0 -5
  257. package/src/tokens/scss/molecules/_number-input-field.scss +0 -5
  258. package/src/tokens/scss/molecules/_otp-field.scss +0 -5
  259. package/src/tokens/scss/molecules/_radio-field.scss +0 -5
  260. package/src/tokens/scss/molecules/_recurrence-field.scss +1 -0
  261. package/src/tokens/scss/molecules/_select-field.scss +0 -5
  262. package/src/tokens/scss/molecules/_sidebar-nav.scss +0 -4
  263. package/src/tokens/scss/molecules/_site-search.scss +0 -2
  264. package/src/tokens/scss/molecules/_switcher-field.scss +0 -1
  265. package/src/tokens/scss/molecules/_table.scss +1 -0
  266. package/src/tokens/scss/molecules/_textarea-field.scss +0 -5
  267. package/src/tokens/scss/molecules/_time-field.scss +0 -5
  268. package/src/tokens/surface-dark-derived.css +2 -1
  269. package/src/tokens/surface-invert.css +15 -21
  270. package/src/tokens/surface-public.css +0 -19
  271. package/src/tokens/tokens.json +31 -129
  272. package/CHANGELOG.md +0 -8154
  273. package/dist/_types/data/home.d.ts +0 -83
  274. package/dist/_types/pages/Auth/AuthPage.d.ts +0 -24
  275. package/dist/_types/pages/Onboarding/OnboardingPage.d.ts +0 -37
  276. package/dist/_types/pages/Status/StatusPage.d.ts +0 -37
  277. package/dist/_types/pages/Status/_datos.d.ts +0 -47
  278. package/src/tokens/surface-light.css +0 -782
  279. package/src/tokens/utils.test.ts +0 -86
@@ -3,24 +3,26 @@ import './calendar-roster.css';
3
3
  import { n as e } from "./_shared/brandmessagescontext.js";
4
4
  import { Tag as t } from "./tag.js";
5
5
  import { PrevNextNav as n } from "./prev-next-nav.js";
6
- import { a as r, l as i } from "./_shared/calendargrid.js";
7
- import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ import { t as r } from "./_shared/overflow-focusable.js";
7
+ import { a as i, l as a, m as o } from "./_shared/calendargrid.js";
8
+ import { useId as s, useRef as c } from "react";
9
+ import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
8
10
  //#region src/stories/molecules/CalendarRoster/CalendarRoster.tsx
9
- function c(e) {
11
+ function f(e) {
10
12
  let t = e.getDay();
11
13
  return t === 0 || t === 6;
12
14
  }
13
- function l(e) {
15
+ function p(e) {
14
16
  let t = e.getFullYear(), n = e.getMonth(), r = new Date(t, n + 1, 0).getDate();
15
17
  return Array.from({ length: r }, (e, r) => new Date(t, n, r + 1));
16
18
  }
17
- var u = {
19
+ var m = {
18
20
  holiday: "neutral",
19
21
  vacation: "info",
20
22
  absence: "danger",
21
23
  recovery: "success",
22
24
  birthday: "info"
23
- }, d = [
25
+ }, h = [
24
26
  {
25
27
  type: "holiday",
26
28
  key: "holiday"
@@ -46,96 +48,102 @@ var u = {
46
48
  key: "nonWorking"
47
49
  }
48
50
  ];
49
- function f({ rows: f, month: p, onMonthChange: m, hrefBuilder: h, linkComponent: g, renderCell: _, nameLabel: v, birthdayPrefix: y = "🎂 ", showLegend: b = !0, locale: x = "es-ES", legendItems: S, legendLabel: C, previousMonthLabel: w, nextMonthLabel: T, className: E }) {
50
- let D = e("calendar"), O = e("calendarRoster"), k = S ?? (b ? d.map(({ type: e, key: t }) => ({
51
+ function g({ rows: g, month: _, onMonthChange: v, hrefBuilder: y, linkComponent: b, renderCell: x, nameLabel: S, birthdayPrefix: C = "🎂 ", showLegend: w = !0, locale: T = "es-ES", legendItems: E, legendLabel: D, previousMonthLabel: O, nextMonthLabel: k, today: A, className: j }) {
52
+ let M = e("calendar"), N = e("calendarRoster"), P = E ?? (w ? h.map(({ type: e, key: t }) => ({
51
53
  type: e,
52
- label: O(t)
53
- })) : []), A = /* @__PURE__ */ new Date(), j = l(p), M = i(p, -1), N = i(p, 1), P = new Intl.DateTimeFormat(x, {
54
+ label: N(t)
55
+ })) : []), F = o(A), I = p(_), L = a(_, -1), R = a(_, 1), z = new Intl.DateTimeFormat(T, {
54
56
  month: "long",
55
57
  year: "numeric"
56
- }).format(p), F = new Intl.DateTimeFormat(x, { weekday: "narrow" }), I = new Intl.DateTimeFormat(x, { weekday: "long" }), L = m ? (e) => (t) => {
57
- h && t.preventDefault(), m(e);
58
- } : void 0, R = `roster-title-${p.getFullYear()}-${p.getMonth()}`;
59
- return /* @__PURE__ */ s("div", {
60
- className: ["calendar-roster", E].filter(Boolean).join(" "),
58
+ }).format(_), B = new Intl.DateTimeFormat(T, { weekday: "narrow" }), V = new Intl.DateTimeFormat(T, { weekday: "long" }), H = v ? (e) => (t) => {
59
+ y && t.preventDefault(), v(e);
60
+ } : void 0, U = s(), W = c(null), G = r(W);
61
+ return /* @__PURE__ */ d("div", {
62
+ className: ["calendar-roster", j].filter(Boolean).join(" "),
61
63
  children: [
62
- /* @__PURE__ */ o("div", {
64
+ /* @__PURE__ */ u("div", {
63
65
  className: "calendar-roster__nav",
64
- children: /* @__PURE__ */ o(n, {
65
- label: P,
66
- labelId: R,
67
- prevHref: h?.(M),
68
- nextHref: h?.(N),
69
- prevOnClick: L?.(M),
70
- nextOnClick: L?.(N),
71
- prevLabel: D("previousMonth", w),
72
- nextLabel: D("nextMonth", T),
73
- linkComponent: g
66
+ children: /* @__PURE__ */ u(n, {
67
+ label: z,
68
+ labelId: U,
69
+ prevHref: y?.(L),
70
+ nextHref: y?.(R),
71
+ prevOnClick: H?.(L),
72
+ nextOnClick: H?.(R),
73
+ prevLabel: M("previousMonth", O),
74
+ nextLabel: M("nextMonth", k),
75
+ linkComponent: b
74
76
  })
75
77
  }),
76
- /* @__PURE__ */ o("div", {
78
+ /* @__PURE__ */ u("div", {
79
+ ref: W,
77
80
  className: "calendar-roster__wrap",
78
- children: /* @__PURE__ */ s("table", {
81
+ ...G && {
82
+ tabIndex: 0,
83
+ role: "region",
84
+ "aria-labelledby": U
85
+ },
86
+ children: /* @__PURE__ */ d("table", {
79
87
  className: "calendar-roster__table",
80
- "aria-labelledby": R,
81
- children: [/* @__PURE__ */ o("thead", { children: /* @__PURE__ */ s("tr", { children: [/* @__PURE__ */ o("th", {
88
+ "aria-labelledby": U,
89
+ children: [/* @__PURE__ */ u("thead", { children: /* @__PURE__ */ d("tr", { children: [/* @__PURE__ */ u("th", {
82
90
  className: "calendar-roster__th-name",
83
91
  scope: "col",
84
- children: O("name", v)
85
- }), j.map((e) => {
86
- let t = r(e, A), n = [
92
+ children: N("name", S)
93
+ }), I.map((e) => {
94
+ let t = i(e, F), n = [
87
95
  "calendar-roster__th-day",
88
- c(e) && "calendar-roster__th-day--weekend",
96
+ f(e) && "calendar-roster__th-day--weekend",
89
97
  t && "calendar-roster__th-day--today"
90
- ].filter(Boolean).join(" "), i = String(e.getDate()).padStart(2, "0"), a = F.format(e), l = I.format(e);
91
- return /* @__PURE__ */ s("th", {
98
+ ].filter(Boolean).join(" "), r = String(e.getDate()).padStart(2, "0"), a = B.format(e), o = V.format(e);
99
+ return /* @__PURE__ */ d("th", {
92
100
  className: n,
93
101
  scope: "col",
94
- children: [/* @__PURE__ */ o("div", {
102
+ children: [/* @__PURE__ */ u("div", {
95
103
  className: "calendar-roster__th-day-number",
96
- children: i
97
- }), /* @__PURE__ */ o("div", {
104
+ children: r
105
+ }), /* @__PURE__ */ u("div", {
98
106
  className: "calendar-roster__th-day-sub",
99
- children: /* @__PURE__ */ o("abbr", {
100
- title: l,
107
+ children: /* @__PURE__ */ u("abbr", {
108
+ title: o,
101
109
  children: a
102
110
  })
103
111
  })]
104
112
  }, e.getDate());
105
- })] }) }), /* @__PURE__ */ o("tbody", { children: f.map((e) => /* @__PURE__ */ s("tr", { children: [/* @__PURE__ */ o("th", {
113
+ })] }) }), /* @__PURE__ */ u("tbody", { children: g.map((e) => /* @__PURE__ */ d("tr", { children: [/* @__PURE__ */ u("th", {
106
114
  scope: "row",
107
115
  className: "calendar-roster__th-name-row",
108
116
  title: e.name,
109
117
  children: e.name
110
- }), j.map((n) => {
111
- let i = n.getDate(), l = e.cells[i] ?? null, d = c(n), f = r(n, A), p = l?.type === "holiday", m = l?.type === "non-working";
112
- return /* @__PURE__ */ o("td", {
118
+ }), I.map((n) => {
119
+ let r = n.getDate(), a = e.cells[r] ?? null, o = f(n), s = i(n, F), c = a?.type === "holiday", p = a?.type === "non-working";
120
+ return /* @__PURE__ */ u("td", {
113
121
  className: [
114
122
  "calendar-roster__cell",
115
- d && "calendar-roster__cell--weekend",
116
- p && "calendar-roster__cell--holiday",
117
- m && "calendar-roster__cell--non-working",
118
- f && "calendar-roster__cell--today"
123
+ o && "calendar-roster__cell--weekend",
124
+ c && "calendar-roster__cell--holiday",
125
+ p && "calendar-roster__cell--non-working",
126
+ s && "calendar-roster__cell--today"
119
127
  ].filter(Boolean).join(" "),
120
- children: _ ? _(i, n, l) : /* @__PURE__ */ s(a, { children: [l?.type === "schedule" && /* @__PURE__ */ o("span", {
128
+ children: x ? x(r, n, a) : /* @__PURE__ */ d(l, { children: [a?.type === "schedule" && /* @__PURE__ */ u("span", {
121
129
  className: "calendar-roster__schedule",
122
- children: l.label
123
- }), l && l.type !== "schedule" && l.type !== "non-working" && /* @__PURE__ */ o(t, {
124
- variant: u[l.type],
125
- children: l.type === "birthday" ? `${y}${l.label}` : l.label
130
+ children: a.label
131
+ }), a && a.type !== "schedule" && a.type !== "non-working" && /* @__PURE__ */ u(t, {
132
+ variant: m[a.type],
133
+ children: a.type === "birthday" ? `${C}${a.label}` : a.label
126
134
  })] })
127
- }, i);
135
+ }, r);
128
136
  })] }, e.id)) })]
129
137
  })
130
138
  }),
131
- b && /* @__PURE__ */ o("div", {
139
+ w && /* @__PURE__ */ u("div", {
132
140
  className: "calendar-roster__legend",
133
141
  role: "group",
134
- "aria-label": O("legend", C),
135
- children: k.map(({ type: e, label: n }) => /* @__PURE__ */ o("span", {
142
+ "aria-label": N("legend", D),
143
+ children: P.map(({ type: e, label: n }) => /* @__PURE__ */ u("span", {
136
144
  className: "calendar-roster__legend-item",
137
- children: e === "non-working" ? /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o("span", { className: "calendar-roster__legend-swatch calendar-roster__legend-swatch--non-working" }), n] }) : /* @__PURE__ */ o(t, {
138
- variant: u[e],
145
+ children: e === "non-working" ? /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("span", { className: "calendar-roster__legend-swatch calendar-roster__legend-swatch--non-working" }), n] }) : /* @__PURE__ */ u(t, {
146
+ variant: m[e],
139
147
  children: n
140
148
  })
141
149
  }, e))
@@ -144,4 +152,4 @@ function f({ rows: f, month: p, onMonthChange: m, hrefBuilder: h, linkComponent:
144
152
  });
145
153
  }
146
154
  //#endregion
147
- export { f as CalendarRoster };
155
+ export { g as CalendarRoster };
package/dist/calendar.css CHANGED
@@ -1 +1 @@
1
- .calendar{gap:var(--calendar-gap);padding-block:var(--calendar-padding-block);padding-inline:var(--calendar-padding-inline);font-family:var(--calendar-font-family);flex-direction:column;display:inline-flex}.calendar__header{justify-content:space-between;align-items:center;gap:var(--calendar-grid-gap);display:flex}.calendar__title{text-align:center;font-family:var(--calendar-font-family);font-size:var(--calendar-title-font-size);font-weight:var(--calendar-title-font-weight);color:var(--calendar-title-color);flex:1;margin-block:0}.calendar__title-button{font:inherit;color:inherit;padding-block:0;padding-inline:var(--calendar-title-button-padding-inline);cursor:var(--calendar-title-button-cursor);border-radius:var(--calendar-day-radius);transition-property:box-shadow;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);background:0 0;border:none}.calendar__title-button:hover{box-shadow:inset 0 calc(-1 * var(--calendar-hover-line-width)) 0 0 var(--calendar-hover-line-color)}.calendar__title-button:focus-visible{outline:var(--calendar-nav-focus-ring-width) solid var(--calendar-nav-focus-ring-color);outline-offset:var(--calendar-nav-focus-ring-offset)}.calendar__nav{padding-block:var(--calendar-grid-gap);padding-inline:var(--calendar-grid-gap);border-radius:var(--calendar-day-radius);color:var(--calendar-nav-color);cursor:pointer;transition-property:box-shadow;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);background-color:#0000;border:none;justify-content:center;align-items:center;display:inline-flex}.calendar__nav:focus-visible{outline:var(--calendar-nav-focus-ring-width) solid var(--calendar-nav-focus-ring-color);outline-offset:var(--calendar-nav-focus-ring-offset)}.calendar__nav:disabled{color:var(--calendar-nav-disabled-color);cursor:var(--calendar-nav-disabled-cursor)}.calendar__chevron--prev{transform:rotate(180deg)}.calendar__grid{gap:var(--calendar-grid-gap);grid-template-columns:repeat(7,1fr);display:grid}.calendar__row{display:contents}.calendar__weekday abbr{cursor:inherit;text-decoration:none}.calendar__weekday{width:var(--calendar-day-size);height:var(--calendar-day-size);font-size:var(--calendar-weekday-font-size);color:var(--calendar-weekday-color);font-family:var(--calendar-font-family);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex}.calendar__day{width:var(--calendar-day-size);height:var(--calendar-day-size);border-radius:var(--calendar-day-radius);background-color:var(--calendar-day-bg);color:var(--calendar-day-color);font-family:var(--calendar-font-family);font-size:var(--calendar-day-font-size);font-weight:var(--calendar-day-font-weight);cursor:pointer;transition-property:box-shadow,background-color,color;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.calendar__day:hover:not(.calendar__day--disabled):not(.calendar__day--selected){box-shadow:inset 0 calc(-1 * var(--calendar-hover-line-width)) 0 0 var(--calendar-hover-line-color)}.calendar__day:focus-visible{outline:var(--calendar-day-focus-ring-width) solid var(--calendar-day-focus-ring-color);outline-offset:var(--calendar-day-focus-ring-offset)}.calendar__day.calendar__day--outside{color:var(--calendar-outside-color)}.calendar__day.calendar__day--today{color:var(--calendar-today-color);font-weight:var(--calendar-today-font-weight)}.calendar__day.calendar__day--today:after{content:"";bottom:var(--calendar-today-marker-offset);width:var(--calendar-today-marker-size);height:var(--calendar-today-marker-size);border-radius:var(--calendar-today-marker-radius);background-color:var(--calendar-today-marker-color);position:absolute;left:50%;transform:translate(-50%)}.calendar__day.calendar__day--selected{background-color:var(--calendar-selected-bg);color:var(--calendar-selected-color)}.calendar__day.calendar__day--selected.calendar__day--today:after{background-color:var(--calendar-selected-color)}.calendar__day.calendar__day--disabled{color:var(--calendar-disabled-color);cursor:var(--calendar-disabled-cursor);pointer-events:none}.calendar__years{grid-template-columns:repeat(var(--calendar-year-columns), 1fr);gap:var(--calendar-grid-gap);min-inline-size:var(--calendar-year-grid-min-inline-size);display:grid}.calendar__year{block-size:var(--calendar-year-height);padding-block:0;padding-inline:var(--calendar-year-padding-inline);border-radius:var(--calendar-day-radius);background-color:var(--calendar-year-bg);color:var(--calendar-year-color);font-family:var(--calendar-font-family);font-size:var(--calendar-year-font-size);font-weight:var(--calendar-day-font-weight);cursor:pointer;transition-property:box-shadow,background-color,color;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);border:none;justify-content:center;align-items:center;display:inline-flex}.calendar__year:hover:not(.calendar__year--disabled):not(.calendar__year--selected){box-shadow:inset 0 calc(-1 * var(--calendar-hover-line-width)) 0 0 var(--calendar-hover-line-color)}.calendar__year:focus-visible{outline:var(--calendar-day-focus-ring-width) solid var(--calendar-day-focus-ring-color);outline-offset:var(--calendar-day-focus-ring-offset)}.calendar__year.calendar__year--current{color:var(--calendar-year-current-color);font-weight:var(--calendar-year-current-font-weight)}.calendar__year.calendar__year--selected{background-color:var(--calendar-year-selected-bg);color:var(--calendar-year-selected-color)}.calendar__year.calendar__year--disabled{color:var(--calendar-year-disabled-color);cursor:var(--calendar-disabled-cursor);pointer-events:none}.calendar.calendar--sm .calendar__title{font-size:var(--calendar-sm-title-font-size)}.calendar.calendar--sm .calendar__day,.calendar.calendar--sm .calendar__weekday{width:var(--calendar-sm-day-size);height:var(--calendar-sm-day-size)}.calendar.calendar--lg .calendar__title{font-size:var(--calendar-lg-title-font-size)}.calendar.calendar--lg .calendar__day,.calendar.calendar--lg .calendar__weekday{width:var(--calendar-lg-day-size);height:var(--calendar-lg-day-size)}.calendar.calendar--lg .calendar__day{font-size:var(--calendar-lg-day-font-size)}.calendar.calendar--sm .calendar__years{min-inline-size:var(--calendar-sm-year-grid-min-inline-size)}.calendar.calendar--sm .calendar__year{block-size:var(--calendar-sm-year-height)}.calendar.calendar--lg .calendar__years{min-inline-size:var(--calendar-lg-year-grid-min-inline-size)}.calendar.calendar--lg .calendar__year{block-size:var(--calendar-lg-year-height);font-size:var(--calendar-lg-year-font-size)}
1
+ .calendar{gap:var(--calendar-gap);padding-block:var(--calendar-padding-block);padding-inline:var(--calendar-padding-inline);font-family:var(--calendar-font-family);flex-direction:column;display:inline-flex}.calendar__header{justify-content:space-between;align-items:center;gap:var(--calendar-grid-gap);display:flex}.calendar__title{text-align:center;font-family:var(--calendar-font-family);font-size:var(--calendar-title-font-size);font-weight:var(--calendar-title-font-weight);color:var(--calendar-title-color);flex:1;margin-block:0}.calendar__title-button{font:inherit;color:inherit;padding-block:0;padding-inline:var(--calendar-title-button-padding-inline);cursor:var(--calendar-title-button-cursor);border-radius:var(--calendar-day-radius);transition-property:box-shadow;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);background:0 0;border:none}.calendar__title-button:hover{box-shadow:inset 0 calc(-1 * var(--calendar-hover-line-width)) 0 0 var(--calendar-hover-line-color)}.calendar__title-button:focus-visible{outline:var(--calendar-nav-focus-ring-width) solid var(--calendar-nav-focus-ring-color);outline-offset:var(--calendar-nav-focus-ring-offset)}.calendar__nav{padding-block:var(--calendar-grid-gap);padding-inline:var(--calendar-grid-gap);border-radius:var(--calendar-day-radius);color:var(--calendar-nav-color);cursor:pointer;transition-property:box-shadow;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);background-color:#0000;border:none;justify-content:center;align-items:center;display:inline-flex}.calendar__nav:focus-visible{outline:var(--calendar-nav-focus-ring-width) solid var(--calendar-nav-focus-ring-color);outline-offset:var(--calendar-nav-focus-ring-offset)}.calendar__nav:disabled{color:var(--calendar-nav-disabled-color);cursor:var(--calendar-nav-disabled-cursor)}.calendar__chevron--prev{transform:rotate(180deg)}.calendar__grid{gap:var(--calendar-grid-gap);grid-template-columns:repeat(7,1fr);display:grid}.calendar__row{display:contents}.calendar__weekday abbr{cursor:inherit;text-decoration:none}.calendar__weekday{inline-size:var(--calendar-day-size);block-size:var(--calendar-day-size);font-size:var(--calendar-weekday-font-size);color:var(--calendar-weekday-color);font-family:var(--calendar-font-family);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex}.calendar__day{inline-size:var(--calendar-day-size);block-size:var(--calendar-day-size);border-radius:var(--calendar-day-radius);background-color:var(--calendar-day-bg);color:var(--calendar-day-color);font-family:var(--calendar-font-family);font-size:var(--calendar-day-font-size);font-weight:var(--calendar-day-font-weight);cursor:pointer;transition-property:box-shadow,background-color,color;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.calendar__day:hover:not(.calendar__day--disabled):not(.calendar__day--selected){box-shadow:inset 0 calc(-1 * var(--calendar-hover-line-width)) 0 0 var(--calendar-hover-line-color)}.calendar__day:focus-visible{outline:var(--calendar-day-focus-ring-width) solid var(--calendar-day-focus-ring-color);outline-offset:var(--calendar-day-focus-ring-offset)}.calendar__day.calendar__day--outside{color:var(--calendar-outside-color)}.calendar__day.calendar__day--today{color:var(--calendar-today-color);font-weight:var(--calendar-today-font-weight)}.calendar__day.calendar__day--today:after{content:"";inset-block-end:var(--calendar-today-marker-offset);inline-size:var(--calendar-today-marker-size);block-size:var(--calendar-today-marker-size);border-radius:var(--calendar-today-marker-radius);background-color:var(--calendar-today-marker-color);position:absolute;left:50%;transform:translate(-50%)}.calendar__day.calendar__day--selected{background-color:var(--calendar-selected-bg);color:var(--calendar-selected-color)}.calendar__day.calendar__day--selected.calendar__day--today:after{background-color:var(--calendar-selected-color)}.calendar__day.calendar__day--disabled{color:var(--calendar-disabled-color);cursor:var(--calendar-disabled-cursor);pointer-events:none}.calendar__years{grid-template-columns:repeat(var(--calendar-year-columns), 1fr);gap:var(--calendar-grid-gap);min-inline-size:var(--calendar-year-grid-min-inline-size);display:grid}.calendar__year{block-size:var(--calendar-year-height);padding-block:0;padding-inline:var(--calendar-year-padding-inline);border-radius:var(--calendar-day-radius);background-color:var(--calendar-year-bg);color:var(--calendar-year-color);font-family:var(--calendar-font-family);font-size:var(--calendar-year-font-size);font-weight:var(--calendar-day-font-weight);cursor:pointer;transition-property:box-shadow,background-color,color;transition-duration:var(--calendar-transition-duration);transition-timing-function:var(--calendar-transition-easing);border:none;justify-content:center;align-items:center;display:inline-flex}.calendar__year:hover:not(.calendar__year--disabled):not(.calendar__year--selected){box-shadow:inset 0 calc(-1 * var(--calendar-hover-line-width)) 0 0 var(--calendar-hover-line-color)}.calendar__year:focus-visible{outline:var(--calendar-day-focus-ring-width) solid var(--calendar-day-focus-ring-color);outline-offset:var(--calendar-day-focus-ring-offset)}.calendar__year.calendar__year--current{color:var(--calendar-year-current-color);font-weight:var(--calendar-year-current-font-weight)}.calendar__year.calendar__year--selected{background-color:var(--calendar-year-selected-bg);color:var(--calendar-year-selected-color)}.calendar__year.calendar__year--disabled{color:var(--calendar-year-disabled-color);cursor:var(--calendar-disabled-cursor);pointer-events:none}.calendar.calendar--sm .calendar__title{font-size:var(--calendar-sm-title-font-size)}.calendar.calendar--sm .calendar__day,.calendar.calendar--sm .calendar__weekday{inline-size:var(--calendar-sm-day-size);block-size:var(--calendar-sm-day-size)}.calendar.calendar--lg .calendar__title{font-size:var(--calendar-lg-title-font-size)}.calendar.calendar--lg .calendar__day,.calendar.calendar--lg .calendar__weekday{inline-size:var(--calendar-lg-day-size);block-size:var(--calendar-lg-day-size)}.calendar.calendar--lg .calendar__day{font-size:var(--calendar-lg-day-font-size)}.calendar.calendar--sm .calendar__years{min-inline-size:var(--calendar-sm-year-grid-min-inline-size)}.calendar.calendar--sm .calendar__year{block-size:var(--calendar-sm-year-height)}.calendar.calendar--lg .calendar__years{min-inline-size:var(--calendar-lg-year-grid-min-inline-size)}.calendar.calendar--lg .calendar__year{block-size:var(--calendar-lg-year-height);font-size:var(--calendar-lg-year-font-size)}
package/dist/calendar.js CHANGED
@@ -1,122 +1,123 @@
1
1
  'use client';
2
2
  import './calendar.css';
3
3
  import { n as e } from "./_shared/brandmessagescontext.js";
4
- import { a as t, c as n, f as r, i, l as a, n as o, o as s, s as c, t as ee } from "./_shared/calendargrid.js";
5
- import { useCallback as l, useEffect as u, useId as d, useRef as f, useState as p } from "react";
6
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
4
+ import { a as t, c as n, f as r, i, l as a, m as o, n as ee, o as s, s as te, t as c } from "./_shared/calendargrid.js";
5
+ import { useCallback as l, useEffect as u, useId as ne, useRef as d, useState as f } from "react";
6
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
7
7
  //#region src/stories/molecules/Calendar/Calendar.tsx
8
- var g = 12, _ = 4;
9
- function v(e) {
10
- return Math.floor(e / g) * g;
8
+ var h = 12, g = 4;
9
+ function _(e) {
10
+ return Math.floor(e / h) * h;
11
11
  }
12
- function y({ value: y, onChange: te, defaultMonth: ne, month: b, onMonthChange: x, navigable: S = !0, disabledDates: C, minDate: w, maxDate: T, locale: E = "es-ES", previousMonthLabel: re, nextMonthLabel: ie, previousYearsLabel: ae, nextYearsLabel: oe, yearGridLabel: D, gridLabel: O, size: k = "md", className: A }) {
13
- let j = e("calendar"), [se, ce] = p(() => b ?? ne ?? (y instanceof Date ? y : /* @__PURE__ */ new Date())), M = b ?? se, N = l((e) => {
14
- ce(e), x?.(e);
15
- }, [x]), P = /* @__PURE__ */ new Date(), le = l((e) => w && e < w || T && e > T ? !0 : Array.isArray(C) ? C.some((n) => t(n, e)) : typeof C == "function" ? C(e) : !1, [
12
+ function v({ value: v, onChange: y, defaultMonth: re, month: b, onMonthChange: x, navigable: S = !0, disabledDates: C, minDate: w, maxDate: T, locale: E = "es-ES", previousMonthLabel: ie, nextMonthLabel: D, previousYearsLabel: O, nextYearsLabel: ae, yearGridLabel: oe, gridLabel: k, today: se, size: A = "md", className: j }) {
13
+ let M = e("calendar"), N = o(se), [ce, le] = f(() => b ?? re ?? (v instanceof Date ? v : N)), P = b ?? ce, F = l((e) => {
14
+ le(e), x?.(e);
15
+ }, [x]), ue = l((e) => w && e < w || T && e > T ? !0 : Array.isArray(C) ? C.some((n) => t(n, e)) : typeof C == "function" ? C(e) : !1, [
16
16
  C,
17
17
  w,
18
18
  T
19
- ]), F = r({
20
- month: M,
21
- onMonthChange: N,
22
- selected: y ?? null,
19
+ ]), I = r({
20
+ month: P,
21
+ onMonthChange: F,
22
+ selected: v ?? null,
23
+ today: N,
23
24
  minDate: w,
24
25
  maxDate: T
25
- }), [I, L] = p("days"), [R, z] = p(() => v(M.getFullYear())), [B, V] = p(() => M.getFullYear()), H = f(null), U = f(/* @__PURE__ */ new Map()), W = f(null), ue = l(() => {
26
- let e = M.getFullYear();
27
- z(v(e)), V(e), W.current = "year", L("years");
28
- }, [M]), G = l(() => {
29
- W.current = "title", L("days");
30
- }, []), de = l((e) => {
31
- N(new Date(e, M.getMonth(), 1)), G();
26
+ }), [L, R] = f("days"), [z, B] = f(() => _(P.getFullYear())), [V, H] = f(() => P.getFullYear()), U = d(null), W = d(/* @__PURE__ */ new Map()), G = d(null), de = l(() => {
27
+ let e = P.getFullYear();
28
+ B(_(e)), H(e), G.current = "year", R("years");
29
+ }, [P]), K = l(() => {
30
+ G.current = "title", R("days");
31
+ }, []), fe = l((e) => {
32
+ F(new Date(e, P.getMonth(), 1)), K();
32
33
  }, [
33
- G,
34
- M,
35
- N
34
+ K,
35
+ P,
36
+ F
36
37
  ]);
37
38
  u(() => {
38
- if (!W.current) return;
39
- let e = W.current;
40
- W.current = null, e === "title" ? H.current?.focus() : U.current.get(B)?.focus();
41
- }, [I, B]);
42
- let fe = k === "lg" ? "md" : "sm", pe = new Intl.DateTimeFormat(E, {
39
+ if (!G.current) return;
40
+ let e = G.current;
41
+ G.current = null, e === "title" ? U.current?.focus() : W.current.get(V)?.focus();
42
+ }, [L, V]);
43
+ let pe = A === "lg" ? "md" : "sm", me = new Intl.DateTimeFormat(E, {
43
44
  month: "long",
44
45
  year: "numeric"
45
- }).format(M), me = new Intl.DateTimeFormat(E, { year: "numeric" }), K = (e) => me.format(new Date(e, 0, 1)), he = Array.from({ length: g }, (e, t) => R + t), ge = `${K(R)}–${K(R + g - 1)}`, _e = new Intl.DateTimeFormat(E, {
46
+ }).format(P), he = new Intl.DateTimeFormat(E, { year: "numeric" }), q = (e) => he.format(new Date(e, 0, 1)), ge = Array.from({ length: h }, (e, t) => z + t), _e = `${q(z)}–${q(z + h - 1)}`, ve = new Intl.DateTimeFormat(E, {
46
47
  weekday: "long",
47
48
  day: "numeric",
48
49
  month: "long",
49
50
  year: "numeric"
50
- }), ve = i(E, "narrow"), ye = ee(o(M)), q = a(M, -1), J = a(M, 1), be = w ? !s(q, w) && q < w : !1, xe = T ? !s(J, T) && J > T : !1, Se = (e) => (w ? e < w.getFullYear() : !1) || (T ? e > T.getFullYear() : !1), Ce = w ? R - 1 < w.getFullYear() : !1, we = T ? R + g > T.getFullYear() : !1, Y = I === "years", X = B >= R && B <= R + g - 1 ? B : R, Te = (e) => {
51
- (e < R || e > R + g - 1) && z(v(e)), W.current = "year", V(e);
52
- }, Z = (e) => {
51
+ }), ye = i(E, "narrow"), be = c(ee(P)), J = a(P, -1), Y = a(P, 1), xe = w ? !s(J, w) && J < w : !1, Se = T ? !s(Y, T) && Y > T : !1, Ce = (e) => (w ? e < w.getFullYear() : !1) || (T ? e > T.getFullYear() : !1), we = w ? z - 1 < w.getFullYear() : !1, Te = T ? z + h > T.getFullYear() : !1, X = L === "years", Z = V >= z && V <= z + h - 1 ? V : z, Ee = (e) => {
52
+ (e < z || e > z + h - 1) && B(_(e)), G.current = "year", H(e);
53
+ }, De = (e) => {
53
54
  let t = null;
54
55
  switch (e.key) {
55
56
  case "ArrowLeft":
56
- t = X - 1;
57
+ t = Z - 1;
57
58
  break;
58
59
  case "ArrowRight":
59
- t = X + 1;
60
+ t = Z + 1;
60
61
  break;
61
62
  case "ArrowUp":
62
- t = X - _;
63
+ t = Z - g;
63
64
  break;
64
65
  case "ArrowDown":
65
- t = X + _;
66
+ t = Z + g;
66
67
  break;
67
68
  case "Home":
68
- t = R;
69
+ t = z;
69
70
  break;
70
71
  case "End":
71
- t = R + g - 1;
72
+ t = z + h - 1;
72
73
  break;
73
74
  case "PageUp":
74
- t = X - g;
75
+ t = Z - h;
75
76
  break;
76
77
  case "PageDown":
77
- t = X + g;
78
+ t = Z + h;
78
79
  break;
79
80
  case "Escape":
80
- e.preventDefault(), G();
81
+ e.preventDefault(), K();
81
82
  return;
82
83
  default: return;
83
84
  }
84
- e.preventDefault(), Te(t);
85
- }, Q = d(), $ = Y ? `${Q}-calendar-title-${R}` : `${Q}-calendar-title-${M.getFullYear()}-${M.getMonth()}`;
86
- return /* @__PURE__ */ h("div", {
85
+ e.preventDefault(), Ee(t);
86
+ }, Q = ne(), $ = X ? `${Q}-calendar-title-${z}` : `${Q}-calendar-title-${P.getFullYear()}-${P.getMonth()}`;
87
+ return /* @__PURE__ */ m("div", {
87
88
  className: [
88
89
  "calendar",
89
- `calendar--${k}`,
90
- A
90
+ `calendar--${A}`,
91
+ j
91
92
  ].filter(Boolean).join(" "),
92
- children: [c({
93
+ children: [te({
93
94
  block: "calendar",
94
- title: Y ? ge : pe,
95
+ title: X ? _e : me,
95
96
  titleId: $,
96
97
  navigable: S,
97
- previousLabel: S ? Y ? j("previousYears", ae) : j("previousMonth", re) : void 0,
98
- nextLabel: S ? Y ? j("nextYears", oe) : j("nextMonth", ie) : void 0,
99
- prevDisabled: Y ? Ce : be,
100
- nextDisabled: Y ? we : xe,
101
- onPrev: Y ? () => z(R - g) : () => N(q),
102
- onNext: Y ? () => z(R + g) : () => N(J),
103
- chevronSize: fe,
104
- onTitleClick: Y ? G : ue,
105
- titleExpanded: Y,
106
- titleRef: H
107
- }), Y ? /* @__PURE__ */ m("div", {
98
+ previousLabel: S ? X ? M("previousYears", O) : M("previousMonth", ie) : void 0,
99
+ nextLabel: S ? X ? M("nextYears", ae) : M("nextMonth", D) : void 0,
100
+ prevDisabled: X ? we : xe,
101
+ nextDisabled: X ? Te : Se,
102
+ onPrev: X ? () => B(z - h) : () => F(J),
103
+ onNext: X ? () => B(z + h) : () => F(Y),
104
+ chevronSize: pe,
105
+ onTitleClick: X ? K : de,
106
+ titleExpanded: X,
107
+ titleRef: U
108
+ }), X ? /* @__PURE__ */ p("div", {
108
109
  className: "calendar__years",
109
110
  role: "grid",
110
- "aria-label": j("yearGrid", D),
111
- onKeyDown: Z,
112
- children: Array.from({ length: g / _ }, (e, t) => /* @__PURE__ */ m("div", {
111
+ "aria-label": M("yearGrid", oe),
112
+ onKeyDown: De,
113
+ children: Array.from({ length: h / g }, (e, t) => /* @__PURE__ */ p("div", {
113
114
  role: "row",
114
115
  className: "calendar__row",
115
- children: he.slice(t * _, t * _ + _).map((e) => {
116
- let t = Se(e), n = e === P.getFullYear(), r = y instanceof Date ? y.getFullYear() === e : !1;
117
- return /* @__PURE__ */ m("button", {
116
+ children: ge.slice(t * g, t * g + g).map((e) => {
117
+ let t = Ce(e), n = e === N.getFullYear(), r = v instanceof Date ? v.getFullYear() === e : !1;
118
+ return /* @__PURE__ */ p("button", {
118
119
  ref: (t) => {
119
- t ? U.current.set(e, t) : U.current.delete(e);
120
+ t ? W.current.set(e, t) : W.current.delete(e);
120
121
  },
121
122
  type: "button",
122
123
  role: "gridcell",
@@ -129,45 +130,45 @@ function y({ value: y, onChange: te, defaultMonth: ne, month: b, onMonthChange:
129
130
  "aria-selected": r,
130
131
  "aria-disabled": t ? "true" : void 0,
131
132
  "aria-current": n ? "date" : void 0,
132
- tabIndex: e === X ? 0 : -1,
133
- onFocus: () => V(e),
134
- onClick: t ? void 0 : () => de(e),
135
- children: K(e)
133
+ tabIndex: e === Z ? 0 : -1,
134
+ onFocus: () => H(e),
135
+ onClick: t ? void 0 : () => fe(e),
136
+ children: q(e)
136
137
  }, e);
137
138
  })
138
139
  }, t))
139
- }) : /* @__PURE__ */ h("div", {
140
+ }) : /* @__PURE__ */ m("div", {
140
141
  className: "calendar__grid",
141
142
  role: "grid",
142
- "aria-label": O,
143
- "aria-labelledby": O ? void 0 : $,
144
- onKeyDown: F.onKeyDown,
143
+ "aria-label": k,
144
+ "aria-labelledby": k ? void 0 : $,
145
+ onKeyDown: I.onKeyDown,
145
146
  children: [n({
146
147
  block: "calendar",
147
- weekdays: ve
148
- }), ye.map((e, n) => /* @__PURE__ */ m("div", {
148
+ weekdays: ye
149
+ }), be.map((e, n) => /* @__PURE__ */ p("div", {
149
150
  role: "row",
150
151
  className: "calendar__row",
151
152
  children: e.map(({ date: e, outside: n }) => {
152
- let r = le(e), i = t(e, P), a = y instanceof Date ? t(e, y) : !1, o = [
153
+ let r = ue(e), i = t(e, N), a = v instanceof Date ? t(e, v) : !1, o = [
153
154
  "calendar__day",
154
155
  n && "calendar__day--outside",
155
156
  i && "calendar__day--today",
156
157
  a && "calendar__day--selected",
157
158
  r && "calendar__day--disabled"
158
159
  ].filter(Boolean).join(" ");
159
- return /* @__PURE__ */ m("button", {
160
- ref: F.cellRef(e),
160
+ return /* @__PURE__ */ p("button", {
161
+ ref: I.cellRef(e),
161
162
  type: "button",
162
163
  role: "gridcell",
163
164
  className: o,
164
- "aria-label": _e.format(e),
165
+ "aria-label": ve.format(e),
165
166
  "aria-selected": a,
166
167
  "aria-disabled": r ? "true" : void 0,
167
168
  "aria-current": i ? "date" : void 0,
168
- tabIndex: F.isTabbable(e) ? 0 : -1,
169
- onFocus: () => F.onCellFocus(e),
170
- onClick: r ? void 0 : () => te?.(e),
169
+ tabIndex: I.isTabbable(e) ? 0 : -1,
170
+ onFocus: () => I.onCellFocus(e),
171
+ onClick: r ? void 0 : () => y?.(e),
171
172
  children: e.getDate()
172
173
  }, e.toISOString());
173
174
  })
@@ -176,4 +177,4 @@ function y({ value: y, onChange: te, defaultMonth: ne, month: b, onMonthChange:
176
177
  });
177
178
  }
178
179
  //#endregion
179
- export { y as Calendar };
180
+ export { v as Calendar };
package/dist/card.css CHANGED
@@ -1 +1 @@
1
- .card{box-shadow:none;color:inherit;padding-inline:var(--card-padding-inline);align-items:flex-start;gap:var(--card-gap);border-radius:var(--card-border-radius);flex-direction:column;padding-block-start:var(--card-padding-block-start);padding-block-end:var(--card-padding-block-end);text-decoration:none;display:flex}.card p:not(.paragraph){font-size:var(--card-description-font-size);margin-block-end:var(--card-description-margin-block-end)}.card .arrow{margin-block-start:auto}:where(button.card){appearance:none;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;inline-size:100%;margin:0}.card__footer.card__footer--column{flex-direction:column;align-items:stretch}.card.card--primary{background-color:var(--card-primary-bg);color:var(--card-primary-color);--text-list-color:var(--card-primary-color);--text-h1-color:var(--card-primary-color);--text-h2-color:var(--card-primary-color);--text-h3-color:var(--card-primary-color);--text-h4-color:var(--card-primary-color);--text-h5-color:var(--card-primary-color);--text-h6-color:var(--card-primary-color)}.card.card--outline{background-color:var(--card-outline-bg);color:var(--card-outline-color);border:var(--card-outline-border-width) solid var(--card-outline-border-color)}.card.card--accent-1{background-color:var(--card-accent-1-bg);color:var(--card-accent-1-color);--text-list-color:var(--card-accent-1-color)}.card.card--accent-2{background-color:var(--card-accent-2-bg);color:var(--card-accent-2-color);--text-list-color:var(--card-accent-2-color)}.card.card--support-1{background-color:var(--card-support-1-bg);color:var(--card-support-1-color);--text-list-color:var(--card-support-1-color)}.card.card--support-2{background-color:var(--card-support-2-bg);color:var(--card-support-2-color);--text-list-color:var(--card-support-2-color)}.card.card--square,.card.card--split{gap:0;padding-block:0;padding-inline:0}.card__body{align-items:flex-start;gap:var(--card-gap);inline-size:100%;padding-inline:var(--card-padding-inline);flex-direction:column;flex:1;padding-block-start:var(--card-padding-block-start);padding-block-end:var(--card-padding-block-end);display:flex}.card__media img{object-fit:cover;block-size:100%;inline-size:100%;display:block}.card--square .card__media,.card--split .card__media{aspect-ratio:1;inline-size:100%}@media (width>=768px){.card.card--split{flex-direction:row;align-items:stretch}.card--split .card__media,.card--split .card__body{flex:50%;inline-size:50%}.card--split .card__media{aspect-ratio:auto}}.card__header,.card__content,.card__footer{inline-size:100%}.card__header{align-items:start;column-gap:var(--card-header-gap);row-gap:var(--card-header-row-gap);grid-template-columns:minmax(0,1fr) auto;display:grid}.card__header>*{grid-column:1}.card__header>.card__action{grid-area:1/2;justify-self:end}.card__header:has(>.card__selection){grid-template-columns:auto minmax(0,1fr) auto}.card__header:has(>.card__selection)>*{grid-column:2}.card__header>.card__selection{grid-area:1/1;align-self:start}.card__header:has(>.card__selection)>.card__action{grid-area:1/3;justify-self:end}.card__title{font-weight:var(--card-title-font-weight);color:inherit;margin-block:0}.card__description{color:inherit;margin-block:0}.card__description--lines-1{min-block-size:1lh}.card__description--lines-2{min-block-size:2lh}.card__description--lines-3{min-block-size:3lh}.card__footer{align-items:stretch;gap:var(--card-footer-gap);flex-direction:column;margin-block-start:auto;display:flex}.card__footer>*{inline-size:100%}@media (width>=768px){.card__footer:not(.card__footer--column){flex-direction:row}.card__footer:not(.card__footer--column)>*{inline-size:auto}}.card.card--selectable{cursor:pointer;position:relative}.card--selectable .radio-field,.card--selectable .checkbox-field{margin:0;position:absolute;inset:0}.card--selectable .radio-field__control,.card--selectable .checkbox-field__control{opacity:0;cursor:pointer;position:absolute;inset:0}.card.card--selectable:has(input:focus-visible){outline:var(--card-selectable-focus-ring-width) solid var(--card-selectable-focus-ring-color);outline-offset:var(--card-selectable-focus-ring-offset)}.card.card--selectable.card--selected{background-color:var(--card-accent-1-bg);color:var(--card-accent-1-color);border-color:var(--card-accent-1-bg);--text-list-color:var(--card-accent-1-color)}.card.card--selectable:has(input:checked){background-color:var(--card-accent-1-bg);color:var(--card-accent-1-color);border-color:var(--card-accent-1-bg);--text-list-color:var(--card-accent-1-color)}.card.card--link-overlay{position:relative}.card.card--link-overlay .card__title a:after{content:"";position:absolute;inset:0}.card.card--link-overlay .card__action,.card.card--link-overlay .card__selection,.card.card--link-overlay .card__interactive{z-index:1;position:relative}
1
+ .card{box-shadow:none;color:inherit;padding-inline:var(--card-padding-inline);align-items:flex-start;gap:var(--card-gap);border-radius:var(--card-border-radius);flex-direction:column;padding-block-start:var(--card-padding-block-start);padding-block-end:var(--card-padding-block-end);text-decoration:none;display:flex}.card p:not(.paragraph){font-size:var(--card-description-font-size);margin-block-end:var(--card-description-margin-block-end)}.card .arrow{margin-block-start:auto}:where(button.card){appearance:none;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;inline-size:100%;margin:0}.card__footer.card__footer--column{flex-direction:column;align-items:stretch}.card.card--primary{background-color:var(--card-primary-bg);color:var(--card-primary-color);--text-list-color:var(--card-primary-color);--text-h1-color:var(--card-primary-color);--text-h2-color:var(--card-primary-color);--text-h3-color:var(--card-primary-color);--text-h4-color:var(--card-primary-color);--text-h5-color:var(--card-primary-color);--text-h6-color:var(--card-primary-color)}.card.card--outline{background-color:var(--card-outline-bg);color:var(--card-outline-color);border:var(--card-outline-border-width) solid var(--card-outline-border-color)}.card.card--accent-1{background-color:var(--card-accent-1-bg);color:var(--card-accent-1-color);--text-list-color:var(--card-accent-1-color);--text-h1-color:var(--card-accent-1-color);--text-h2-color:var(--card-accent-1-color);--text-h3-color:var(--card-accent-1-color);--text-h4-color:var(--card-accent-1-color);--text-h5-color:var(--card-accent-1-color);--text-h6-color:var(--card-accent-1-color)}.card.card--accent-2{background-color:var(--card-accent-2-bg);color:var(--card-accent-2-color);--text-list-color:var(--card-accent-2-color);--text-h1-color:var(--card-accent-2-color);--text-h2-color:var(--card-accent-2-color);--text-h3-color:var(--card-accent-2-color);--text-h4-color:var(--card-accent-2-color);--text-h5-color:var(--card-accent-2-color);--text-h6-color:var(--card-accent-2-color)}.card.card--support-1{background-color:var(--card-support-1-bg);color:var(--card-support-1-color);--text-list-color:var(--card-support-1-color);--text-h1-color:var(--card-support-1-color);--text-h2-color:var(--card-support-1-color);--text-h3-color:var(--card-support-1-color);--text-h4-color:var(--card-support-1-color);--text-h5-color:var(--card-support-1-color);--text-h6-color:var(--card-support-1-color)}.card.card--support-2{background-color:var(--card-support-2-bg);color:var(--card-support-2-color);--text-list-color:var(--card-support-2-color);--text-h1-color:var(--card-support-2-color);--text-h2-color:var(--card-support-2-color);--text-h3-color:var(--card-support-2-color);--text-h4-color:var(--card-support-2-color);--text-h5-color:var(--card-support-2-color);--text-h6-color:var(--card-support-2-color)}.card.card--square,.card.card--split{gap:0;padding-block:0;padding-inline:0}.card__body{align-items:flex-start;gap:var(--card-gap);inline-size:100%;padding-inline:var(--card-padding-inline);flex-direction:column;flex:1;padding-block-start:var(--card-padding-block-start);padding-block-end:var(--card-padding-block-end);display:flex}.card__media img{object-fit:cover;block-size:100%;inline-size:100%;display:block}.card--square .card__media,.card--split .card__media{aspect-ratio:1;inline-size:100%}@media (width>=768px){.card.card--split{flex-direction:row;align-items:stretch}.card--split .card__media,.card--split .card__body{flex:50%;inline-size:50%}.card--split .card__media{aspect-ratio:auto}}.card__header,.card__content,.card__footer{inline-size:100%}.card__header{align-items:start;column-gap:var(--card-header-gap);row-gap:var(--card-header-row-gap);grid-template-columns:minmax(0,1fr) auto;display:grid}.card__header>*{grid-column:1}.card__header>.card__action{grid-area:1/2;justify-self:end}.card__header:has(>.card__selection){grid-template-columns:auto minmax(0,1fr) auto}.card__header:has(>.card__selection)>*{grid-column:2}.card__header>.card__selection{grid-area:1/1;align-self:start}.card__header:has(>.card__selection)>.card__action{grid-area:1/3;justify-self:end}.card__title{font-weight:var(--card-title-font-weight);color:inherit;margin-block:0}.card__description{color:inherit;margin-block:0}.card__description--lines-1{min-block-size:1lh}.card__description--lines-2{min-block-size:2lh}.card__description--lines-3{min-block-size:3lh}.card__footer{align-items:stretch;gap:var(--card-footer-gap);flex-direction:column;margin-block-start:auto;display:flex}.card__footer>*{inline-size:100%}@media (width>=768px){.card__footer:not(.card__footer--column){flex-direction:row}.card__footer:not(.card__footer--column)>*{inline-size:auto}}.card.card--selectable{cursor:pointer;position:relative}.card--selectable .radio-field,.card--selectable .checkbox-field{margin:0;position:absolute;inset:0}.card--selectable .radio-field__control,.card--selectable .checkbox-field__control{opacity:0;cursor:pointer;position:absolute;inset:0}.card.card--selectable:has(input:focus-visible){outline:var(--card-selectable-focus-ring-width) solid var(--card-selectable-focus-ring-color);outline-offset:var(--card-selectable-focus-ring-offset)}.card.card--selectable.card--selected{background-color:var(--card-accent-1-bg);color:var(--card-accent-1-color);border-color:var(--card-accent-1-bg);--text-list-color:var(--card-accent-1-color)}.card.card--selectable:has(input:checked){background-color:var(--card-accent-1-bg);color:var(--card-accent-1-color);border-color:var(--card-accent-1-bg);--text-list-color:var(--card-accent-1-color)}.card.card--link-overlay{position:relative}.card.card--link-overlay .card__title a:after{content:"";position:absolute;inset:0}.card.card--link-overlay .card__action,.card.card--link-overlay .card__selection,.card.card--link-overlay .card__interactive{z-index:1;position:relative}