@k2b/ui 0.29.0 → 0.31.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 (243) hide show
  1. package/README.md +2 -2
  2. package/dist/base.css +2 -2
  3. package/dist/browser/actions/Dropdown.js +6 -3
  4. package/dist/browser/actions/Dropdown.js.map +1 -1
  5. package/dist/browser/actions/FilterChip.js +137 -7
  6. package/dist/browser/actions/FilterChip.js.map +1 -1
  7. package/dist/browser/actions/SegmentedControl.js +5 -9
  8. package/dist/browser/actions/SegmentedControl.js.map +1 -1
  9. package/dist/browser/actions/SpotlightSearch.js +6 -3
  10. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  11. package/dist/browser/actions/Tabs.js +5 -2
  12. package/dist/browser/actions/Tabs.js.map +1 -1
  13. package/dist/browser/actions/Toolbar.js +2 -0
  14. package/dist/browser/actions/Toolbar.js.map +1 -1
  15. package/dist/browser/actions/ViewTabs.js +294 -0
  16. package/dist/browser/actions/ViewTabs.js.map +1 -0
  17. package/dist/browser/actions/filter-messages.js +6 -2
  18. package/dist/browser/actions/filter-messages.js.map +1 -1
  19. package/dist/browser/actions/index.js +2 -1
  20. package/dist/browser/actions/index.js.map +1 -1
  21. package/dist/browser/chat/ChatComposer.js +1108 -604
  22. package/dist/browser/chat/ChatComposer.js.map +1 -1
  23. package/dist/browser/chat/ChatDecision.js +146 -84
  24. package/dist/browser/chat/ChatDecision.js.map +1 -1
  25. package/dist/browser/chat/ChatPrimitives.js +292 -159
  26. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  27. package/dist/browser/chat/chat-messages.js +8 -0
  28. package/dist/browser/chat/chat-messages.js.map +1 -1
  29. package/dist/browser/chat/command-search.js +26 -15
  30. package/dist/browser/chat/command-search.js.map +1 -1
  31. package/dist/browser/chat/index.js +4 -2
  32. package/dist/browser/chat/index.js.map +1 -1
  33. package/dist/browser/content/Calendar.js +143 -116
  34. package/dist/browser/content/Calendar.js.map +1 -1
  35. package/dist/browser/content/CalendarWeekView.js +291 -266
  36. package/dist/browser/content/CalendarWeekView.js.map +1 -1
  37. package/dist/browser/content/DataTable.js +224 -155
  38. package/dist/browser/content/DataTable.js.map +1 -1
  39. package/dist/browser/content/MapAttribution.js +27 -0
  40. package/dist/browser/content/MapAttribution.js.map +1 -0
  41. package/dist/browser/content/MapView.js +553 -0
  42. package/dist/browser/content/MapView.js.map +1 -0
  43. package/dist/browser/content/MapViewFrame.js +395 -0
  44. package/dist/browser/content/MapViewFrame.js.map +1 -0
  45. package/dist/browser/content/data-table-messages.js +4 -2
  46. package/dist/browser/content/data-table-messages.js.map +1 -1
  47. package/dist/browser/content/index.js +5 -0
  48. package/dist/browser/content/index.js.map +1 -1
  49. package/dist/browser/content/map-palette.js +39 -0
  50. package/dist/browser/content/map-palette.js.map +1 -0
  51. package/dist/browser/content/map-style.js +276 -0
  52. package/dist/browser/content/map-style.js.map +1 -0
  53. package/dist/browser/content/map-view-geometry.js +269 -0
  54. package/dist/browser/content/map-view-geometry.js.map +1 -0
  55. package/dist/browser/content/map-view-live.js +28 -0
  56. package/dist/browser/content/map-view-live.js.map +1 -0
  57. package/dist/browser/content/map-view-messages.js +53 -0
  58. package/dist/browser/content/map-view-messages.js.map +1 -0
  59. package/dist/browser/content/map-view-types.js +2 -0
  60. package/dist/browser/content/map-view-types.js.map +1 -0
  61. package/dist/browser/content/map-view-worker.js +10 -0
  62. package/dist/browser/feedback/MovedHint.js +197 -0
  63. package/dist/browser/feedback/MovedHint.js.map +1 -0
  64. package/dist/browser/feedback/dialog-core.js +85 -9
  65. package/dist/browser/feedback/dialog-core.js.map +1 -1
  66. package/dist/browser/feedback/index.js +1 -0
  67. package/dist/browser/feedback/index.js.map +1 -1
  68. package/dist/browser/feedback/prompts.js +6 -1
  69. package/dist/browser/feedback/prompts.js.map +1 -1
  70. package/dist/browser/inputs/DatePicker.js +337 -212
  71. package/dist/browser/inputs/DatePicker.js.map +1 -1
  72. package/dist/browser/inputs/date-picker.js +59 -5
  73. package/dist/browser/inputs/date-picker.js.map +1 -1
  74. package/dist/browser/intl/messages.js +12 -0
  75. package/dist/browser/intl/messages.js.map +1 -1
  76. package/dist/browser/intl/weekend.js +39 -0
  77. package/dist/browser/intl/weekend.js.map +1 -0
  78. package/dist/browser/layout/AppOverview.js +0 -1
  79. package/dist/browser/layout/AppOverview.js.map +1 -1
  80. package/dist/browser/layout/AppWorkspace.js +701 -476
  81. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  82. package/dist/browser/layout/PageTitle.js +3 -2
  83. package/dist/browser/layout/PageTitle.js.map +1 -1
  84. package/dist/browser/layout/SettingsModal.js +2 -2
  85. package/dist/browser/layout/SettingsModal.js.map +1 -1
  86. package/dist/browser/layout/SidebarSwitcher.js +13 -12
  87. package/dist/browser/layout/SidebarSwitcher.js.map +1 -1
  88. package/dist/browser/layout/TabBar.js +1 -1
  89. package/dist/browser/layout/TabBar.js.map +1 -1
  90. package/dist/browser/layout/app-host-width.js +44 -0
  91. package/dist/browser/layout/app-host-width.js.map +1 -0
  92. package/dist/browser/layout/app-workspace-controller.js +331 -45
  93. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  94. package/dist/browser/layout/app-workspace-width.js +26 -0
  95. package/dist/browser/layout/app-workspace-width.js.map +1 -0
  96. package/dist/browser/layout/index.js +2 -1
  97. package/dist/browser/layout/index.js.map +1 -1
  98. package/dist/browser/surfaces/Placeholder.js +36 -13
  99. package/dist/browser/surfaces/Placeholder.js.map +1 -1
  100. package/dist/licenses/maplibre-gl.txt +116 -0
  101. package/dist/ssr/actions/Dropdown.js +5 -2
  102. package/dist/ssr/actions/Dropdown.js.map +1 -1
  103. package/dist/ssr/actions/FilterChip.js +59 -7
  104. package/dist/ssr/actions/FilterChip.js.map +1 -1
  105. package/dist/ssr/actions/SegmentedControl.js +1 -2
  106. package/dist/ssr/actions/SegmentedControl.js.map +1 -1
  107. package/dist/ssr/actions/SpotlightSearch.js +2 -2
  108. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  109. package/dist/ssr/actions/Tabs.js +2 -2
  110. package/dist/ssr/actions/Tabs.js.map +1 -1
  111. package/dist/ssr/actions/Toolbar.js +2 -0
  112. package/dist/ssr/actions/Toolbar.js.map +1 -1
  113. package/dist/ssr/actions/ViewTabs.js +211 -0
  114. package/dist/ssr/actions/ViewTabs.js.map +1 -0
  115. package/dist/ssr/actions/filter-messages.js +6 -2
  116. package/dist/ssr/actions/filter-messages.js.map +1 -1
  117. package/dist/ssr/actions/index.js +2 -1
  118. package/dist/ssr/actions/index.js.map +1 -1
  119. package/dist/ssr/chat/ChatComposer.js +546 -131
  120. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  121. package/dist/ssr/chat/ChatDecision.js +44 -19
  122. package/dist/ssr/chat/ChatDecision.js.map +1 -1
  123. package/dist/ssr/chat/ChatPrimitives.js +95 -24
  124. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  125. package/dist/ssr/chat/chat-messages.js +8 -0
  126. package/dist/ssr/chat/chat-messages.js.map +1 -1
  127. package/dist/ssr/chat/command-search.js +26 -15
  128. package/dist/ssr/chat/command-search.js.map +1 -1
  129. package/dist/ssr/chat/index.js +4 -2
  130. package/dist/ssr/chat/index.js.map +1 -1
  131. package/dist/ssr/content/Calendar.js +109 -100
  132. package/dist/ssr/content/Calendar.js.map +1 -1
  133. package/dist/ssr/content/CalendarWeekView.js +42 -28
  134. package/dist/ssr/content/CalendarWeekView.js.map +1 -1
  135. package/dist/ssr/content/DataTable.js +78 -31
  136. package/dist/ssr/content/DataTable.js.map +1 -1
  137. package/dist/ssr/content/MapAttribution.js +19 -0
  138. package/dist/ssr/content/MapAttribution.js.map +1 -0
  139. package/dist/ssr/content/MapView.js +474 -0
  140. package/dist/ssr/content/MapView.js.map +1 -0
  141. package/dist/ssr/content/MapViewFrame.js +193 -0
  142. package/dist/ssr/content/MapViewFrame.js.map +1 -0
  143. package/dist/ssr/content/data-table-messages.js +4 -2
  144. package/dist/ssr/content/data-table-messages.js.map +1 -1
  145. package/dist/ssr/content/index.js +5 -0
  146. package/dist/ssr/content/index.js.map +1 -1
  147. package/dist/ssr/content/map-palette.js +39 -0
  148. package/dist/ssr/content/map-palette.js.map +1 -0
  149. package/dist/ssr/content/map-style.js +276 -0
  150. package/dist/ssr/content/map-style.js.map +1 -0
  151. package/dist/ssr/content/map-view-geometry.js +269 -0
  152. package/dist/ssr/content/map-view-geometry.js.map +1 -0
  153. package/dist/ssr/content/map-view-live.js +1 -0
  154. package/dist/ssr/content/map-view-messages.js +53 -0
  155. package/dist/ssr/content/map-view-messages.js.map +1 -0
  156. package/dist/ssr/content/map-view-types.js +2 -0
  157. package/dist/ssr/content/map-view-types.js.map +1 -0
  158. package/dist/ssr/feedback/MovedHint.js +166 -0
  159. package/dist/ssr/feedback/MovedHint.js.map +1 -0
  160. package/dist/ssr/feedback/dialog-core.js +85 -9
  161. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  162. package/dist/ssr/feedback/index.js +1 -0
  163. package/dist/ssr/feedback/index.js.map +1 -1
  164. package/dist/ssr/feedback/prompts.js +6 -1
  165. package/dist/ssr/feedback/prompts.js.map +1 -1
  166. package/dist/ssr/inputs/DatePicker.js +138 -69
  167. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  168. package/dist/ssr/inputs/date-picker.js +59 -5
  169. package/dist/ssr/inputs/date-picker.js.map +1 -1
  170. package/dist/ssr/intl/messages.js +12 -0
  171. package/dist/ssr/intl/messages.js.map +1 -1
  172. package/dist/ssr/intl/weekend.js +39 -0
  173. package/dist/ssr/intl/weekend.js.map +1 -0
  174. package/dist/ssr/layout/AppOverview.js +0 -1
  175. package/dist/ssr/layout/AppOverview.js.map +1 -1
  176. package/dist/ssr/layout/AppWorkspace.js +216 -44
  177. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  178. package/dist/ssr/layout/PageTitle.js +3 -2
  179. package/dist/ssr/layout/PageTitle.js.map +1 -1
  180. package/dist/ssr/layout/SettingsModal.js +2 -2
  181. package/dist/ssr/layout/SettingsModal.js.map +1 -1
  182. package/dist/ssr/layout/SidebarSwitcher.js +13 -12
  183. package/dist/ssr/layout/SidebarSwitcher.js.map +1 -1
  184. package/dist/ssr/layout/TabBar.js +1 -1
  185. package/dist/ssr/layout/TabBar.js.map +1 -1
  186. package/dist/ssr/layout/app-host-width.js +44 -0
  187. package/dist/ssr/layout/app-host-width.js.map +1 -0
  188. package/dist/ssr/layout/app-workspace-controller.js +331 -45
  189. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  190. package/dist/ssr/layout/app-workspace-width.js +26 -0
  191. package/dist/ssr/layout/app-workspace-width.js.map +1 -0
  192. package/dist/ssr/layout/index.js +2 -1
  193. package/dist/ssr/layout/index.js.map +1 -1
  194. package/dist/ssr/surfaces/Placeholder.js +24 -7
  195. package/dist/ssr/surfaces/Placeholder.js.map +1 -1
  196. package/dist/styles.css +1 -1
  197. package/dist/types/actions/Dropdown.d.ts +4 -0
  198. package/dist/types/actions/FilterChip.d.ts +22 -0
  199. package/dist/types/actions/ViewTabs.d.ts +30 -0
  200. package/dist/types/actions/filter-messages.d.ts +2 -0
  201. package/dist/types/actions/index.d.ts +4 -2
  202. package/dist/types/chat/ChatComposer.d.ts +52 -0
  203. package/dist/types/chat/ChatDecision.d.ts +18 -2
  204. package/dist/types/chat/ChatPrimitives.d.ts +10 -0
  205. package/dist/types/chat/chat-messages.d.ts +4 -0
  206. package/dist/types/chat/command-search.d.ts +2 -0
  207. package/dist/types/chat/index.d.ts +9 -8
  208. package/dist/types/content/DataTable.d.ts +3 -0
  209. package/dist/types/content/MapAttribution.d.ts +6 -0
  210. package/dist/types/content/MapView.d.ts +5 -0
  211. package/dist/types/content/MapViewFrame.d.ts +31 -0
  212. package/dist/types/content/data-table-messages.d.ts +1 -0
  213. package/dist/types/content/index.d.ts +6 -0
  214. package/dist/types/content/map-palette.d.ts +58 -0
  215. package/dist/types/content/map-style.d.ts +29 -0
  216. package/dist/types/content/map-view-geometry.d.ts +55 -0
  217. package/dist/types/content/map-view-live.d.ts +2 -0
  218. package/dist/types/content/map-view-messages.d.ts +21 -0
  219. package/dist/types/content/map-view-types.d.ts +61 -0
  220. package/dist/types/feedback/MovedHint.d.ts +25 -0
  221. package/dist/types/feedback/dialog-core.d.ts +6 -2
  222. package/dist/types/feedback/index.d.ts +2 -0
  223. package/dist/types/feedback/prompts.d.ts +2 -0
  224. package/dist/types/inputs/DatePicker.d.ts +7 -0
  225. package/dist/types/inputs/date-picker.d.ts +25 -1
  226. package/dist/types/intl/messages.d.ts +6 -0
  227. package/dist/types/intl/weekend.d.ts +12 -0
  228. package/dist/types/layout/AppWorkspace.d.ts +48 -8
  229. package/dist/types/layout/app-host-width.d.ts +6 -0
  230. package/dist/types/layout/app-workspace-width.d.ts +13 -0
  231. package/dist/types/layout/index.d.ts +3 -2
  232. package/dist/types/surfaces/Placeholder.d.ts +2 -1
  233. package/map-glyphs/IBM Plex Sans Medium/0-255.pbf +0 -0
  234. package/map-glyphs/IBM Plex Sans Medium/1024-1279.pbf +0 -0
  235. package/map-glyphs/IBM Plex Sans Medium/256-511.pbf +0 -0
  236. package/map-glyphs/IBM Plex Sans Medium/512-767.pbf +0 -0
  237. package/map-glyphs/IBM Plex Sans Medium/768-1023.pbf +0 -0
  238. package/map-glyphs/IBM Plex Sans Medium/7680-7935.pbf +0 -0
  239. package/map-glyphs/IBM Plex Sans Medium/8192-8447.pbf +0 -0
  240. package/map-glyphs/IBM Plex Sans Medium/8448-8703.pbf +0 -0
  241. package/map-glyphs/IBM Plex Sans Medium/8704-8959.pbf +0 -0
  242. package/map-glyphs/OFL.txt +93 -0
  243. package/package.json +11 -6
@@ -85,6 +85,7 @@ import { GestureMenu } from "../actions/GestureMenu";
85
85
  import SegmentedControl from "../actions/SegmentedControl";
86
86
  import { useDateConfigLocale } from "../intl/locale";
87
87
  import { useUiMessages } from "../intl/messages";
88
+ import { isWeekendColumn, isWeekendKey } from "../intl/weekend";
88
89
  import { prefersReducedMotion } from "../motion";
89
90
  import { CalendarDayView } from "./CalendarDayView";
90
91
  import { CalendarWeekView } from "./CalendarWeekView";
@@ -905,9 +906,10 @@ const MonthPickerView = props => {
905
906
  get each() {
906
907
  return weekdays();
907
908
  },
908
- children: day => (() => {
909
+ children: (day, index) => (() => {
909
910
  var _el$44 = _$getNextElement(_tmpl$11);
910
911
  _$insert(_el$44, day);
912
+ _$effect(() => _$setAttribute(_el$44, "data-weekend", isWeekendColumn(index(), dateConfig().firstDayOfWeek ?? 1, dateConfig().locale) ? "true" : undefined));
911
913
  return _el$44;
912
914
  })()
913
915
  }), _el$41, _co$1);
@@ -1138,12 +1140,12 @@ const MonthPickerView = props => {
1138
1140
  children: event => (() => {
1139
1141
  var _el$76 = _$getNextElement(_tmpl$20);
1140
1142
  _$effect(_p$ => {
1141
- var _v$5 = event.colorHex ? undefined : event.color ?? "blue",
1142
- _v$6 = event.colorHex ? {
1143
+ var _v$7 = event.colorHex ? undefined : event.color ?? "blue",
1144
+ _v$8 = event.colorHex ? {
1143
1145
  "background-color": event.colorHex
1144
1146
  } : undefined;
1145
- _v$5 !== _p$.e && _$setAttribute(_el$76, "data-color", _p$.e = _v$5);
1146
- _p$.t = _$style(_el$76, _v$6, _p$.t);
1147
+ _v$7 !== _p$.e && _$setAttribute(_el$76, "data-color", _p$.e = _v$7);
1148
+ _p$.t = _$style(_el$76, _v$8, _p$.t);
1147
1149
  return _p$;
1148
1150
  }, {
1149
1151
  e: undefined,
@@ -1152,7 +1154,16 @@ const MonthPickerView = props => {
1152
1154
  return _el$76;
1153
1155
  })()
1154
1156
  }));
1155
- _$effect(() => _$setAttribute(_el$51, "data-drop-preview", movePreview()?.start && calendar.formatDateKey(movePreview().start, dateConfig()) === dayKey ? "true" : undefined));
1157
+ _$effect(_p$ => {
1158
+ var _v$5 = isWeekendKey(dayKey, dateConfig().locale) ? "true" : undefined,
1159
+ _v$6 = movePreview()?.start && calendar.formatDateKey(movePreview().start, dateConfig()) === dayKey ? "true" : undefined;
1160
+ _v$5 !== _p$.e && _$setAttribute(_el$51, "data-weekend", _p$.e = _v$5);
1161
+ _v$6 !== _p$.t && _$setAttribute(_el$51, "data-drop-preview", _p$.t = _v$6);
1162
+ return _p$;
1163
+ }, {
1164
+ e: undefined,
1165
+ t: undefined
1166
+ });
1156
1167
  return _el$51;
1157
1168
  })();
1158
1169
  }
@@ -1253,6 +1264,7 @@ const MonthView = props => {
1253
1264
  equals: (previous, next) => previous.map(week => week[0]?.key).join() === next.map(week => week[0]?.key).join()
1254
1265
  });
1255
1266
  const weekdays = createMemo(() => calendar.weekdays(dateConfig()));
1267
+ const weekendColumn = index => isWeekendColumn(index, dateConfig().firstDayOfWeek ?? 1, dateConfig().locale);
1256
1268
  const todayKey = createMemo(() => calendar.formatDateKey(props.now, dateConfig()));
1257
1269
  const items = createMemo(() => monthItems(props.events));
1258
1270
  const [capacities, setCapacities] = createSignal([]);
@@ -2336,14 +2348,14 @@ const MonthView = props => {
2336
2348
  _el$83.$$click = () => openView(week()[0].key, "week");
2337
2349
  _$insert(_el$83, weekNumber);
2338
2350
  _$effect(_p$ => {
2339
- var _v$1 = calendarMessages().calendarOpenWeekNumber({
2351
+ var _v$11 = calendarMessages().calendarOpenWeekNumber({
2340
2352
  week: weekNumber()
2341
2353
  }),
2342
- _v$10 = calendarMessages().calendarOpenWeekNumber({
2354
+ _v$12 = calendarMessages().calendarOpenWeekNumber({
2343
2355
  week: weekNumber()
2344
2356
  });
2345
- _v$1 !== _p$.e && _$setAttribute(_el$83, "title", _p$.e = _v$1);
2346
- _v$10 !== _p$.t && _$setAttribute(_el$83, "aria-label", _p$.t = _v$10);
2357
+ _v$11 !== _p$.e && _$setAttribute(_el$83, "title", _p$.e = _v$11);
2358
+ _v$12 !== _p$.t && _$setAttribute(_el$83, "aria-label", _p$.t = _v$12);
2347
2359
  return _p$;
2348
2360
  }, {
2349
2361
  e: undefined,
@@ -2582,18 +2594,18 @@ const MonthView = props => {
2582
2594
  }));
2583
2595
  _$insert(_el$92, () => cell().hidden, _el$95, _co$24);
2584
2596
  _$effect(_p$ => {
2585
- var _v$11 = String(cell().top + cell().shown.length),
2586
- _v$12 = calendarMessages().calendarMoreEventsOn({
2597
+ var _v$13 = String(cell().top + cell().shown.length),
2598
+ _v$14 = calendarMessages().calendarMoreEventsOn({
2587
2599
  count: cell().hidden,
2588
2600
  label
2589
2601
  }),
2590
- _v$13 = (() => {
2602
+ _v$15 = (() => {
2591
2603
  const current = popover();
2592
2604
  return current?.kind === "day" && current.dayKey === key;
2593
2605
  })();
2594
- _v$11 !== _p$.e && _$setStyleProperty(_el$90, "--k2b-calendar-row", _p$.e = _v$11);
2595
- _v$12 !== _p$.t && _$setAttribute(_el$90, "aria-label", _p$.t = _v$12);
2596
- _v$13 !== _p$.a && _$setAttribute(_el$90, "aria-expanded", _p$.a = _v$13);
2606
+ _v$13 !== _p$.e && _$setStyleProperty(_el$90, "--k2b-calendar-row", _p$.e = _v$13);
2607
+ _v$14 !== _p$.t && _$setAttribute(_el$90, "aria-label", _p$.t = _v$14);
2608
+ _v$15 !== _p$.a && _$setAttribute(_el$90, "aria-expanded", _p$.a = _v$15);
2597
2609
  return _p$;
2598
2610
  }, {
2599
2611
  e: undefined,
@@ -2605,32 +2617,32 @@ const MonthView = props => {
2605
2617
  }
2606
2618
  }), _el$101, _co$27);
2607
2619
  _$effect(_p$ => {
2608
- var _v$14 = rovingKey() === key ? 0 : -1,
2609
- _v$15 = within(selection(), key) ? "true" : "false",
2610
- _v$16 = key === todayKey() ? "date" : undefined,
2611
- _v$17 = !sameMonth() ? "true" : undefined,
2612
- _v$18 = continuous() && key.endsWith("-01") ? "true" : undefined,
2613
- _v$19 = continuous() && Number(key.slice(8)) <= 7 ? "true" : undefined,
2614
- _v$20 = column() > 4 ? "true" : undefined,
2615
- _v$21 = key < todayKey() ? "true" : undefined,
2616
- _v$22 = selectionPart(key),
2617
- _v$23 = within(dropRange(), key) ? "true" : undefined,
2618
- _v$24 = continuous() && pulseKey() === key ? "true" : undefined,
2619
- _v$25 = key === todayKey() ? "true" : undefined,
2620
- _v$26 = !sameMonth() ? "true" : undefined;
2621
- _v$14 !== _p$.e && _$setAttribute(_el$84, "tabindex", _p$.e = _v$14);
2622
- _v$15 !== _p$.t && _$setAttribute(_el$84, "aria-selected", _p$.t = _v$15);
2623
- _v$16 !== _p$.a && _$setAttribute(_el$84, "aria-current", _p$.a = _v$16);
2624
- _v$17 !== _p$.o && _$setAttribute(_el$84, "data-outside", _p$.o = _v$17);
2625
- _v$18 !== _p$.i && _$setAttribute(_el$84, "data-month-first", _p$.i = _v$18);
2626
- _v$19 !== _p$.n && _$setAttribute(_el$84, "data-month-top", _p$.n = _v$19);
2627
- _v$20 !== _p$.s && _$setAttribute(_el$84, "data-weekend", _p$.s = _v$20);
2628
- _v$21 !== _p$.h && _$setAttribute(_el$84, "data-past", _p$.h = _v$21);
2629
- _v$22 !== _p$.r && _$setAttribute(_el$84, "data-selected", _p$.r = _v$22);
2630
- _v$23 !== _p$.d && _$setAttribute(_el$84, "data-drop-preview", _p$.d = _v$23);
2631
- _v$24 !== _p$.l && _$setAttribute(_el$86, "data-pulse", _p$.l = _v$24);
2632
- _v$25 !== _p$.u && _$setAttribute(_el$86, "data-today", _p$.u = _v$25);
2633
- _v$26 !== _p$.c && _$setAttribute(_el$86, "data-outside", _p$.c = _v$26);
2620
+ var _v$16 = rovingKey() === key ? 0 : -1,
2621
+ _v$17 = within(selection(), key) ? "true" : "false",
2622
+ _v$18 = key === todayKey() ? "date" : undefined,
2623
+ _v$19 = !sameMonth() ? "true" : undefined,
2624
+ _v$20 = continuous() && key.endsWith("-01") ? "true" : undefined,
2625
+ _v$21 = continuous() && Number(key.slice(8)) <= 7 ? "true" : undefined,
2626
+ _v$22 = isWeekendKey(key, dateConfig().locale) ? "true" : undefined,
2627
+ _v$23 = key < todayKey() ? "true" : undefined,
2628
+ _v$24 = selectionPart(key),
2629
+ _v$25 = within(dropRange(), key) ? "true" : undefined,
2630
+ _v$26 = continuous() && pulseKey() === key ? "true" : undefined,
2631
+ _v$27 = key === todayKey() ? "true" : undefined,
2632
+ _v$28 = !sameMonth() ? "true" : undefined;
2633
+ _v$16 !== _p$.e && _$setAttribute(_el$84, "tabindex", _p$.e = _v$16);
2634
+ _v$17 !== _p$.t && _$setAttribute(_el$84, "aria-selected", _p$.t = _v$17);
2635
+ _v$18 !== _p$.a && _$setAttribute(_el$84, "aria-current", _p$.a = _v$18);
2636
+ _v$19 !== _p$.o && _$setAttribute(_el$84, "data-outside", _p$.o = _v$19);
2637
+ _v$20 !== _p$.i && _$setAttribute(_el$84, "data-month-first", _p$.i = _v$20);
2638
+ _v$21 !== _p$.n && _$setAttribute(_el$84, "data-month-top", _p$.n = _v$21);
2639
+ _v$22 !== _p$.s && _$setAttribute(_el$84, "data-weekend", _p$.s = _v$22);
2640
+ _v$23 !== _p$.h && _$setAttribute(_el$84, "data-past", _p$.h = _v$23);
2641
+ _v$24 !== _p$.r && _$setAttribute(_el$84, "data-selected", _p$.r = _v$24);
2642
+ _v$25 !== _p$.d && _$setAttribute(_el$84, "data-drop-preview", _p$.d = _v$25);
2643
+ _v$26 !== _p$.l && _$setAttribute(_el$86, "data-pulse", _p$.l = _v$26);
2644
+ _v$27 !== _p$.u && _$setAttribute(_el$86, "data-today", _p$.u = _v$27);
2645
+ _v$28 !== _p$.c && _$setAttribute(_el$86, "data-outside", _p$.c = _v$28);
2634
2646
  return _p$;
2635
2647
  }, {
2636
2648
  e: undefined,
@@ -2653,16 +2665,16 @@ const MonthView = props => {
2653
2665
  }
2654
2666
  }), _el$82, _co$22);
2655
2667
  _$effect(_p$ => {
2656
- var _v$7 = continuous() ? week()[0]?.key : undefined,
2657
- _v$8 = continuous() ? weekIndex() + 2 : undefined,
2658
- _v$9 = continuous() ? {
2668
+ var _v$9 = continuous() ? week()[0]?.key : undefined,
2669
+ _v$0 = continuous() ? weekIndex() + 2 : undefined,
2670
+ _v$1 = continuous() ? {
2659
2671
  "--k2b-calendar-week-index": String(weekIndex())
2660
2672
  } : undefined,
2661
- _v$0 = props.owner.withWeekNumbers ? "true" : undefined;
2662
- _v$7 !== _p$.e && _$setAttribute(_el$77, "data-week-key", _p$.e = _v$7);
2663
- _v$8 !== _p$.t && _$setAttribute(_el$77, "aria-rowindex", _p$.t = _v$8);
2664
- _p$.a = _$style(_el$77, _v$9, _p$.a);
2665
- _v$0 !== _p$.o && _$setAttribute(_el$77, "data-week-numbers", _p$.o = _v$0);
2673
+ _v$10 = props.owner.withWeekNumbers ? "true" : undefined;
2674
+ _v$9 !== _p$.e && _$setAttribute(_el$77, "data-week-key", _p$.e = _v$9);
2675
+ _v$0 !== _p$.t && _$setAttribute(_el$77, "aria-rowindex", _p$.t = _v$0);
2676
+ _p$.a = _$style(_el$77, _v$1, _p$.a);
2677
+ _v$10 !== _p$.o && _$setAttribute(_el$77, "data-week-numbers", _p$.o = _v$10);
2666
2678
  return _p$;
2667
2679
  }, {
2668
2680
  e: undefined,
@@ -2698,7 +2710,7 @@ const MonthView = props => {
2698
2710
  children: (day, index) => (() => {
2699
2711
  var _el$116 = _$getNextElement(_tmpl$28);
2700
2712
  _$insert(_el$116, day);
2701
- _$effect(() => _$setAttribute(_el$116, "data-weekend", index() > 4 ? "true" : undefined));
2713
+ _$effect(() => _$setAttribute(_el$116, "data-weekend", weekendColumn(index()) ? "true" : undefined));
2702
2714
  return _el$116;
2703
2715
  })()
2704
2716
  }), _el$115, _co$31);
@@ -2719,10 +2731,10 @@ const MonthView = props => {
2719
2731
  children: (week, index) => weekRow(() => week, index)
2720
2732
  }), _el$121, _co$33);
2721
2733
  _$effect(_p$ => {
2722
- var _v$27 = formatMonth(props.date, dateConfig()),
2723
- _v$28 = `auto repeat(${weeks().length}, minmax(5rem, 1fr))`;
2724
- _v$27 !== _p$.e && _$setAttribute(_el$117, "aria-label", _p$.e = _v$27);
2725
- _v$28 !== _p$.t && _$setStyleProperty(_el$117, "grid-template-rows", _p$.t = _v$28);
2734
+ var _v$29 = formatMonth(props.date, dateConfig()),
2735
+ _v$30 = `auto repeat(${weeks().length}, minmax(5rem, 1fr))`;
2736
+ _v$29 !== _p$.e && _$setAttribute(_el$117, "aria-label", _p$.e = _v$29);
2737
+ _v$30 !== _p$.t && _$setStyleProperty(_el$117, "grid-template-rows", _p$.t = _v$30);
2726
2738
  return _p$;
2727
2739
  }, {
2728
2740
  e: undefined,
@@ -2769,14 +2781,14 @@ const MonthView = props => {
2769
2781
  }));
2770
2782
  _$insert(_el$127, () => formatMonth(parseKey(focusMonthKey()), dateConfig()));
2771
2783
  _$effect(_p$ => {
2772
- var _v$29 = formatMonth(parseKey(focusMonthKey()), dateConfig()),
2773
- _v$30 = trackWeeks().length + 1,
2774
- _v$31 = String(trackWeeks().length),
2775
- _v$32 = labelShown() ? "true" : "false";
2776
- _v$29 !== _p$.e && _$setAttribute(_el$123, "aria-label", _p$.e = _v$29);
2777
- _v$30 !== _p$.t && _$setAttribute(_el$123, "aria-rowcount", _p$.t = _v$30);
2778
- _v$31 !== _p$.a && _$setStyleProperty(_el$124, "--k2b-calendar-weeks", _p$.a = _v$31);
2779
- _v$32 !== _p$.o && _$setAttribute(_el$127, "data-show", _p$.o = _v$32);
2784
+ var _v$31 = formatMonth(parseKey(focusMonthKey()), dateConfig()),
2785
+ _v$32 = trackWeeks().length + 1,
2786
+ _v$33 = String(trackWeeks().length),
2787
+ _v$34 = labelShown() ? "true" : "false";
2788
+ _v$31 !== _p$.e && _$setAttribute(_el$123, "aria-label", _p$.e = _v$31);
2789
+ _v$32 !== _p$.t && _$setAttribute(_el$123, "aria-rowcount", _p$.t = _v$32);
2790
+ _v$33 !== _p$.a && _$setStyleProperty(_el$124, "--k2b-calendar-weeks", _p$.a = _v$33);
2791
+ _v$34 !== _p$.o && _$setAttribute(_el$127, "data-show", _p$.o = _v$34);
2780
2792
  return _p$;
2781
2793
  }, {
2782
2794
  e: undefined,
@@ -2961,16 +2973,16 @@ const MonthView = props => {
2961
2973
  }) : dayList(value.dayKey)
2962
2974
  }));
2963
2975
  _$effect(_p$ => {
2964
- var _v$33 = (() => {
2976
+ var _v$35 = (() => {
2965
2977
  const current = popover();
2966
2978
  if (current?.kind === "day") return dayLabel(parseKey(current.dayKey));
2967
2979
  return calendarMessages().calendarQuickCreate;
2968
2980
  })(),
2969
- _v$34 = popover()?.kind,
2970
- _v$35 = popover()?.kind === "create" && !createActive() ? "true" : undefined;
2971
- _v$33 !== _p$.e && _$setAttribute(_el$143, "aria-label", _p$.e = _v$33);
2972
- _v$34 !== _p$.t && _$setAttribute(_el$143, "data-kind", _p$.t = _v$34);
2973
- _v$35 !== _p$.a && _$setAttribute(_el$143, "data-quiet", _p$.a = _v$35);
2981
+ _v$36 = popover()?.kind,
2982
+ _v$37 = popover()?.kind === "create" && !createActive() ? "true" : undefined;
2983
+ _v$35 !== _p$.e && _$setAttribute(_el$143, "aria-label", _p$.e = _v$35);
2984
+ _v$36 !== _p$.t && _$setAttribute(_el$143, "data-kind", _p$.t = _v$36);
2985
+ _v$37 !== _p$.a && _$setAttribute(_el$143, "data-quiet", _p$.a = _v$37);
2974
2986
  return _p$;
2975
2987
  }, {
2976
2988
  e: undefined,
@@ -3245,8 +3257,11 @@ const TimeGridView = props => {
3245
3257
  get href() {
3246
3258
  return props.owner.getDateHref?.(day, "day") ?? "#";
3247
3259
  },
3248
- anchorProps: {
3249
- class: "k2b-calendar-time-grid__day"
3260
+ get anchorProps() {
3261
+ return {
3262
+ class: "k2b-calendar-time-grid__day",
3263
+ "data-weekend": isWeekendKey(calendar.formatDateKey(day, dateConfig()), dateConfig().locale) ? "true" : undefined
3264
+ };
3250
3265
  },
3251
3266
  get children() {
3252
3267
  return [(() => {
@@ -3310,6 +3325,9 @@ const TimeGridView = props => {
3310
3325
  [_el$172, _co$45] = _$getNextMarker(_el$171.nextSibling);
3311
3326
  _$setAttribute(_el$167, "data-calendar-day-key", dayKey);
3312
3327
  _$spread(_el$167, _$mergeProps({
3328
+ get ["data-weekend"]() {
3329
+ return isWeekendKey(dayKey, dateConfig().locale) ? "true" : undefined;
3330
+ },
3313
3331
  get ["data-drop-preview"]() {
3314
3332
  return timePreview()?.allDay && calendar.formatDateKey(timePreview().start, dateConfig()) === dayKey ? "true" : undefined;
3315
3333
  },
@@ -3359,10 +3377,10 @@ const TimeGridView = props => {
3359
3377
  }
3360
3378
  }), _el$152, _co$39);
3361
3379
  _$effect(_p$ => {
3362
- var _v$36 = columnTemplate(),
3363
- _v$37 = `${props.owner.allDayMaxHeightRem ?? 7}rem`;
3364
- _v$36 !== _p$.e && _$setStyleProperty(_el$149, "grid-template-columns", _p$.e = _v$36);
3365
- _v$37 !== _p$.t && _$setStyleProperty(_el$149, "max-height", _p$.t = _v$37);
3380
+ var _v$38 = columnTemplate(),
3381
+ _v$39 = `${props.owner.allDayMaxHeightRem ?? 7}rem`;
3382
+ _v$38 !== _p$.e && _$setStyleProperty(_el$149, "grid-template-columns", _p$.e = _v$38);
3383
+ _v$39 !== _p$.t && _$setStyleProperty(_el$149, "max-height", _p$.t = _v$39);
3366
3384
  return _p$;
3367
3385
  }, {
3368
3386
  e: undefined,
@@ -3483,10 +3501,10 @@ const TimeGridView = props => {
3483
3501
  _$insert(_el$194, () => formatTime(event.startDate, dateConfig()), _el$197, _co$52);
3484
3502
  _$insert(_el$194, () => formatTime(event.endDate, dateConfig()), _el$199, _co$53);
3485
3503
  _$effect(_p$ => {
3486
- var _v$42 = `${layout.top}%`,
3487
- _v$43 = `${layout.height}%`;
3488
- _v$42 !== _p$.e && _$setStyleProperty(_el$191, "top", _p$.e = _v$42);
3489
- _v$43 !== _p$.t && _$setStyleProperty(_el$191, "height", _p$.t = _v$43);
3504
+ var _v$46 = `${layout.top}%`,
3505
+ _v$47 = `${layout.height}%`;
3506
+ _v$46 !== _p$.e && _$setStyleProperty(_el$191, "top", _p$.e = _v$46);
3507
+ _v$47 !== _p$.t && _$setStyleProperty(_el$191, "height", _p$.t = _v$47);
3490
3508
  return _p$;
3491
3509
  }, {
3492
3510
  e: undefined,
@@ -3576,16 +3594,16 @@ const TimeGridView = props => {
3576
3594
  }
3577
3595
  }), _el$208, _co$56);
3578
3596
  _$effect(_p$ => {
3579
- var _v$44 = `${layout.top}%`,
3580
- _v$45 = `${layout.height}%`,
3581
- _v$46 = position.left,
3582
- _v$47 = position.width,
3583
- _v$48 = String(20 + layoutItem.lane);
3584
- _v$44 !== _p$.e && _$setStyleProperty(_el$202, "top", _p$.e = _v$44);
3585
- _v$45 !== _p$.t && _$setStyleProperty(_el$202, "height", _p$.t = _v$45);
3586
- _v$46 !== _p$.a && _$setStyleProperty(_el$202, "left", _p$.a = _v$46);
3587
- _v$47 !== _p$.o && _$setStyleProperty(_el$202, "width", _p$.o = _v$47);
3588
- _v$48 !== _p$.i && _$setStyleProperty(_el$202, "z-index", _p$.i = _v$48);
3597
+ var _v$48 = `${layout.top}%`,
3598
+ _v$49 = `${layout.height}%`,
3599
+ _v$50 = position.left,
3600
+ _v$51 = position.width,
3601
+ _v$52 = String(20 + layoutItem.lane);
3602
+ _v$48 !== _p$.e && _$setStyleProperty(_el$202, "top", _p$.e = _v$48);
3603
+ _v$49 !== _p$.t && _$setStyleProperty(_el$202, "height", _p$.t = _v$49);
3604
+ _v$50 !== _p$.a && _$setStyleProperty(_el$202, "left", _p$.a = _v$50);
3605
+ _v$51 !== _p$.o && _$setStyleProperty(_el$202, "width", _p$.o = _v$51);
3606
+ _v$52 !== _p$.i && _$setStyleProperty(_el$202, "z-index", _p$.i = _v$52);
3589
3607
  return _p$;
3590
3608
  }, {
3591
3609
  e: undefined,
@@ -3618,16 +3636,16 @@ const TimeGridView = props => {
3618
3636
  };
3619
3637
  _$insert(_el$210, () => overflow.hiddenEvents.length, _el$213, _co$57);
3620
3638
  _$effect(_p$ => {
3621
- var _v$49 = `${layout.top}%`,
3622
- _v$50 = `${layout.height}%`,
3623
- _v$51 = hiddenTitle(),
3624
- _v$52 = calendarMessages().hiddenOverlappingEvents({
3639
+ var _v$53 = `${layout.top}%`,
3640
+ _v$54 = `${layout.height}%`,
3641
+ _v$55 = hiddenTitle(),
3642
+ _v$56 = calendarMessages().hiddenOverlappingEvents({
3625
3643
  count: overflow.hiddenEvents.length
3626
3644
  });
3627
- _v$49 !== _p$.e && _$setStyleProperty(_el$209, "top", _p$.e = _v$49);
3628
- _v$50 !== _p$.t && _$setStyleProperty(_el$209, "height", _p$.t = _v$50);
3629
- _v$51 !== _p$.a && _$setAttribute(_el$209, "title", _p$.a = _v$51);
3630
- _v$52 !== _p$.o && _$setAttribute(_el$209, "aria-label", _p$.o = _v$52);
3645
+ _v$53 !== _p$.e && _$setStyleProperty(_el$209, "top", _p$.e = _v$53);
3646
+ _v$54 !== _p$.t && _$setStyleProperty(_el$209, "height", _p$.t = _v$54);
3647
+ _v$55 !== _p$.a && _$setAttribute(_el$209, "title", _p$.a = _v$55);
3648
+ _v$56 !== _p$.o && _$setAttribute(_el$209, "aria-label", _p$.o = _v$56);
3631
3649
  return _p$;
3632
3650
  }, {
3633
3651
  e: undefined,
@@ -3674,20 +3692,29 @@ const TimeGridView = props => {
3674
3692
  })];
3675
3693
  }
3676
3694
  }), _el$189, _co$51);
3677
- _$effect(_$p => _$setStyleProperty(_el$178, "grid-template-rows", `repeat(${hours().length}, minmax(4rem, 1fr))`));
3695
+ _$effect(_p$ => {
3696
+ var _v$44 = isWeekendKey(dayKey, dateConfig().locale) ? "true" : undefined,
3697
+ _v$45 = `repeat(${hours().length}, minmax(4rem, 1fr))`;
3698
+ _v$44 !== _p$.e && _$setAttribute(_el$178, "data-weekend", _p$.e = _v$44);
3699
+ _v$45 !== _p$.t && _$setStyleProperty(_el$178, "grid-template-rows", _p$.t = _v$45);
3700
+ return _p$;
3701
+ }, {
3702
+ e: undefined,
3703
+ t: undefined
3704
+ });
3678
3705
  return _el$178;
3679
3706
  })();
3680
3707
  }
3681
3708
  }), _el$157, _co$40);
3682
3709
  _$effect(_p$ => {
3683
- var _v$38 = isDayView() ? "day" : "week",
3684
- _v$39 = columnTemplate(),
3685
- _v$40 = columnTemplate(),
3686
- _v$41 = `repeat(${hours().length}, minmax(4rem, 1fr))`;
3687
- _v$38 !== _p$.e && _$setAttribute(_el$144, "data-view", _p$.e = _v$38);
3688
- _v$39 !== _p$.t && _$setStyleProperty(_el$145, "grid-template-columns", _p$.t = _v$39);
3689
- _v$40 !== _p$.a && _$setStyleProperty(_el$154, "grid-template-columns", _p$.a = _v$40);
3690
- _v$41 !== _p$.o && _$setStyleProperty(_el$155, "grid-template-rows", _p$.o = _v$41);
3710
+ var _v$40 = isDayView() ? "day" : "week",
3711
+ _v$41 = columnTemplate(),
3712
+ _v$42 = columnTemplate(),
3713
+ _v$43 = `repeat(${hours().length}, minmax(4rem, 1fr))`;
3714
+ _v$40 !== _p$.e && _$setAttribute(_el$144, "data-view", _p$.e = _v$40);
3715
+ _v$41 !== _p$.t && _$setStyleProperty(_el$145, "grid-template-columns", _p$.t = _v$41);
3716
+ _v$42 !== _p$.a && _$setStyleProperty(_el$154, "grid-template-columns", _p$.a = _v$42);
3717
+ _v$43 !== _p$.o && _$setStyleProperty(_el$155, "grid-template-rows", _p$.o = _v$43);
3691
3718
  return _p$;
3692
3719
  }, {
3693
3720
  e: undefined,
@@ -3772,14 +3799,14 @@ const YearView = props => {
3772
3799
  children: event => (() => {
3773
3800
  var _el$227 = _$getNextElement(_tmpl$56);
3774
3801
  _$effect(_p$ => {
3775
- var _v$53 = event().colorHex ? undefined : event().color ?? "blue",
3776
- _v$54 = day.isToday ? "true" : undefined,
3777
- _v$55 = event().colorHex ? {
3802
+ var _v$57 = event().colorHex ? undefined : event().color ?? "blue",
3803
+ _v$58 = day.isToday ? "true" : undefined,
3804
+ _v$59 = event().colorHex ? {
3778
3805
  "background-color": day.isToday ? "white" : event().colorHex
3779
3806
  } : undefined;
3780
- _v$53 !== _p$.e && _$setAttribute(_el$227, "data-color", _p$.e = _v$53);
3781
- _v$54 !== _p$.t && _$setAttribute(_el$227, "data-today", _p$.t = _v$54);
3782
- _p$.a = _$style(_el$227, _v$55, _p$.a);
3807
+ _v$57 !== _p$.e && _$setAttribute(_el$227, "data-color", _p$.e = _v$57);
3808
+ _v$58 !== _p$.t && _$setAttribute(_el$227, "data-today", _p$.t = _v$58);
3809
+ _p$.a = _$style(_el$227, _v$59, _p$.a);
3783
3810
  return _p$;
3784
3811
  }, {
3785
3812
  e: undefined,
@@ -4265,10 +4292,10 @@ const CalendarRoot = props => {
4265
4292
  }
4266
4293
  }), _el$242, _co$64);
4267
4294
  _$effect(_p$ => {
4268
- var _v$56 = `k2b-content-calendar ${props.class ?? ""}`,
4269
- _v$57 = props.navigationPending ? "true" : undefined;
4270
- _v$56 !== _p$.e && _$className(_el$238, _p$.e = _v$56);
4271
- _v$57 !== _p$.t && _$setAttribute(_el$238, "aria-busy", _p$.t = _v$57);
4295
+ var _v$60 = `k2b-content-calendar ${props.class ?? ""}`,
4296
+ _v$61 = props.navigationPending ? "true" : undefined;
4297
+ _v$60 !== _p$.e && _$className(_el$238, _p$.e = _v$60);
4298
+ _v$61 !== _p$.t && _$setAttribute(_el$238, "aria-busy", _p$.t = _v$61);
4272
4299
  return _p$;
4273
4300
  }, {
4274
4301
  e: undefined,