@k2b/ui 0.24.0 → 0.26.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 (166) hide show
  1. package/README.md +2 -2
  2. package/dist/browser/actions/Dropdown.js +67 -52
  3. package/dist/browser/actions/Dropdown.js.map +1 -1
  4. package/dist/browser/actions/GestureMenu.js +5 -5
  5. package/dist/browser/actions/GestureMenu.js.map +1 -1
  6. package/dist/browser/actions/SpotlightSearch.js +13 -6
  7. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  8. package/dist/browser/actions/Toolbar.js +75 -1
  9. package/dist/browser/actions/Toolbar.js.map +1 -1
  10. package/dist/browser/content/Calendar.js +1539 -911
  11. package/dist/browser/content/Calendar.js.map +1 -1
  12. package/dist/browser/content/CalendarDayView.js +5 -4
  13. package/dist/browser/content/CalendarDayView.js.map +1 -1
  14. package/dist/browser/content/CalendarWeekView.js +5 -4
  15. package/dist/browser/content/CalendarWeekView.js.map +1 -1
  16. package/dist/browser/content/Kbd.js +51 -0
  17. package/dist/browser/content/Kbd.js.map +1 -0
  18. package/dist/browser/content/LabelChip.js +38 -0
  19. package/dist/browser/content/LabelChip.js.map +1 -0
  20. package/dist/browser/content/MarkdownView.js +2 -1
  21. package/dist/browser/content/MarkdownView.js.map +1 -1
  22. package/dist/browser/content/Steps.js +34 -0
  23. package/dist/browser/content/Steps.js.map +1 -0
  24. package/dist/browser/content/Timeline.js +3 -3
  25. package/dist/browser/content/Timeline.js.map +1 -1
  26. package/dist/browser/content/VirtualFeed.js +33 -1
  27. package/dist/browser/content/VirtualFeed.js.map +1 -1
  28. package/dist/browser/content/calendar-dialogs.js +32 -60
  29. package/dist/browser/content/calendar-dialogs.js.map +1 -1
  30. package/dist/browser/content/calendar-month-scroll.js +80 -0
  31. package/dist/browser/content/calendar-month-scroll.js.map +1 -0
  32. package/dist/browser/content/calendar-time-view.js +0 -1
  33. package/dist/browser/content/calendar-time-view.js.map +1 -1
  34. package/dist/browser/content/index.js +4 -1
  35. package/dist/browser/content/index.js.map +1 -1
  36. package/dist/browser/content/markdown-info-blocks.js +33 -5
  37. package/dist/browser/content/markdown-info-blocks.js.map +1 -1
  38. package/dist/browser/feedback/prompts.js +17 -3
  39. package/dist/browser/feedback/prompts.js.map +1 -1
  40. package/dist/browser/index.js +1 -0
  41. package/dist/browser/index.js.map +1 -1
  42. package/dist/browser/inputs/Combobox.js +22 -3
  43. package/dist/browser/inputs/Combobox.js.map +1 -1
  44. package/dist/browser/inputs/QrScanner.js +2 -1
  45. package/dist/browser/inputs/QrScanner.js.map +1 -1
  46. package/dist/browser/intl/index.js +1 -0
  47. package/dist/browser/intl/index.js.map +1 -1
  48. package/dist/browser/intl/shortcut-messages.js +77 -0
  49. package/dist/browser/intl/shortcut-messages.js.map +1 -0
  50. package/dist/browser/intl/shortcut.js +123 -0
  51. package/dist/browser/intl/shortcut.js.map +1 -0
  52. package/dist/browser/layout/AppWorkspace.js +355 -338
  53. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  54. package/dist/browser/layout/TableOfContents.js +115 -0
  55. package/dist/browser/layout/TableOfContents.js.map +1 -0
  56. package/dist/browser/layout/app-workspace-controller.js +7 -50
  57. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  58. package/dist/browser/layout/index.js +1 -0
  59. package/dist/browser/layout/index.js.map +1 -1
  60. package/dist/browser/layout/scroll-fade.js +14 -9
  61. package/dist/browser/layout/scroll-fade.js.map +1 -1
  62. package/dist/browser/layout/sidebar-scroll-memory.js +38 -0
  63. package/dist/browser/layout/sidebar-scroll-memory.js.map +1 -0
  64. package/dist/browser/layout/table-of-contents-messages.js +19 -0
  65. package/dist/browser/layout/table-of-contents-messages.js.map +1 -0
  66. package/dist/browser/motion.js +7 -0
  67. package/dist/browser/motion.js.map +1 -0
  68. package/dist/browser/surfaces/LinkCard.js +40 -24
  69. package/dist/browser/surfaces/LinkCard.js.map +1 -1
  70. package/dist/ssr/actions/Dropdown.js +11 -5
  71. package/dist/ssr/actions/Dropdown.js.map +1 -1
  72. package/dist/ssr/actions/GestureMenu.js +5 -5
  73. package/dist/ssr/actions/GestureMenu.js.map +1 -1
  74. package/dist/ssr/actions/SpotlightSearch.js +9 -3
  75. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  76. package/dist/ssr/actions/Toolbar.js +67 -1
  77. package/dist/ssr/actions/Toolbar.js.map +1 -1
  78. package/dist/ssr/content/Calendar.js +864 -312
  79. package/dist/ssr/content/Calendar.js.map +1 -1
  80. package/dist/ssr/content/CalendarDayView.js +5 -4
  81. package/dist/ssr/content/CalendarDayView.js.map +1 -1
  82. package/dist/ssr/content/CalendarWeekView.js +5 -4
  83. package/dist/ssr/content/CalendarWeekView.js.map +1 -1
  84. package/dist/ssr/content/Kbd.js +38 -0
  85. package/dist/ssr/content/Kbd.js.map +1 -0
  86. package/dist/ssr/content/LabelChip.js +21 -0
  87. package/dist/ssr/content/LabelChip.js.map +1 -0
  88. package/dist/ssr/content/MarkdownView.js +2 -1
  89. package/dist/ssr/content/MarkdownView.js.map +1 -1
  90. package/dist/ssr/content/Steps.js +14 -0
  91. package/dist/ssr/content/Steps.js.map +1 -0
  92. package/dist/ssr/content/Timeline.js +3 -3
  93. package/dist/ssr/content/Timeline.js.map +1 -1
  94. package/dist/ssr/content/VirtualFeed.js +33 -1
  95. package/dist/ssr/content/VirtualFeed.js.map +1 -1
  96. package/dist/ssr/content/calendar-dialogs.js +12 -32
  97. package/dist/ssr/content/calendar-dialogs.js.map +1 -1
  98. package/dist/ssr/content/calendar-month-scroll.js +80 -0
  99. package/dist/ssr/content/calendar-month-scroll.js.map +1 -0
  100. package/dist/ssr/content/calendar-time-view.js +0 -1
  101. package/dist/ssr/content/calendar-time-view.js.map +1 -1
  102. package/dist/ssr/content/index.js +4 -1
  103. package/dist/ssr/content/index.js.map +1 -1
  104. package/dist/ssr/content/markdown-info-blocks.js +33 -5
  105. package/dist/ssr/content/markdown-info-blocks.js.map +1 -1
  106. package/dist/ssr/feedback/prompts.js +17 -3
  107. package/dist/ssr/feedback/prompts.js.map +1 -1
  108. package/dist/ssr/index.js +1 -0
  109. package/dist/ssr/index.js.map +1 -1
  110. package/dist/ssr/inputs/Combobox.js +18 -3
  111. package/dist/ssr/inputs/Combobox.js.map +1 -1
  112. package/dist/ssr/inputs/QrScanner.js +2 -1
  113. package/dist/ssr/inputs/QrScanner.js.map +1 -1
  114. package/dist/ssr/intl/index.js +1 -0
  115. package/dist/ssr/intl/index.js.map +1 -1
  116. package/dist/ssr/intl/shortcut-messages.js +77 -0
  117. package/dist/ssr/intl/shortcut-messages.js.map +1 -0
  118. package/dist/ssr/intl/shortcut.js +123 -0
  119. package/dist/ssr/intl/shortcut.js.map +1 -0
  120. package/dist/ssr/layout/AppWorkspace.js +77 -72
  121. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  122. package/dist/ssr/layout/TableOfContents.js +79 -0
  123. package/dist/ssr/layout/TableOfContents.js.map +1 -0
  124. package/dist/ssr/layout/app-workspace-controller.js +7 -50
  125. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  126. package/dist/ssr/layout/index.js +1 -0
  127. package/dist/ssr/layout/index.js.map +1 -1
  128. package/dist/ssr/layout/scroll-fade.js +14 -9
  129. package/dist/ssr/layout/scroll-fade.js.map +1 -1
  130. package/dist/ssr/layout/sidebar-scroll-memory.js +38 -0
  131. package/dist/ssr/layout/sidebar-scroll-memory.js.map +1 -0
  132. package/dist/ssr/layout/table-of-contents-messages.js +19 -0
  133. package/dist/ssr/layout/table-of-contents-messages.js.map +1 -0
  134. package/dist/ssr/motion.js +7 -0
  135. package/dist/ssr/motion.js.map +1 -0
  136. package/dist/ssr/surfaces/LinkCard.js +26 -10
  137. package/dist/ssr/surfaces/LinkCard.js.map +1 -1
  138. package/dist/styles.css +1 -1
  139. package/dist/types/actions/Dropdown.d.ts +12 -0
  140. package/dist/types/actions/SpotlightSearch.d.ts +2 -0
  141. package/dist/types/content/Calendar.d.ts +16 -6
  142. package/dist/types/content/Kbd.d.ts +16 -0
  143. package/dist/types/content/LabelChip.d.ts +12 -0
  144. package/dist/types/content/MarkdownView.d.ts +2 -1
  145. package/dist/types/content/Steps.d.ts +12 -0
  146. package/dist/types/content/VirtualFeed.d.ts +8 -0
  147. package/dist/types/content/calendar-dialogs.d.ts +0 -2
  148. package/dist/types/content/calendar-month-scroll.d.ts +25 -0
  149. package/dist/types/content/calendar-time-view.d.ts +0 -1
  150. package/dist/types/content/index.d.ts +7 -1
  151. package/dist/types/content/markdown-info-blocks.d.ts +21 -4
  152. package/dist/types/feedback/prompts.d.ts +8 -2
  153. package/dist/types/index.d.ts +1 -0
  154. package/dist/types/inputs/Combobox.d.ts +1 -0
  155. package/dist/types/intl/index.d.ts +2 -0
  156. package/dist/types/intl/shortcut-messages.d.ts +35 -0
  157. package/dist/types/intl/shortcut.d.ts +29 -0
  158. package/dist/types/layout/AppWorkspace.d.ts +3 -1
  159. package/dist/types/layout/TableOfContents.d.ts +24 -0
  160. package/dist/types/layout/index.d.ts +2 -0
  161. package/dist/types/layout/scroll-fade.d.ts +2 -0
  162. package/dist/types/layout/sidebar-scroll-memory.d.ts +6 -0
  163. package/dist/types/layout/table-of-contents-messages.d.ts +4 -0
  164. package/dist/types/motion.d.ts +6 -0
  165. package/dist/types/surfaces/LinkCard.d.ts +3 -0
  166. package/package.json +3 -3
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Scroll rules of the continuous month view, free of the DOM so they can be tested.
3
+ *
4
+ * Uniform week rows run below a sticky weekday header without stops. The center row names the month, and rows
5
+ * visible by more than half supply the host's dates. Calendar day keys keep week arithmetic independent of DST.
6
+ */
7
+ import { addDayKeys, dayKeyNumber } from "./calendar-days";
8
+ export const MONTH_ROWS_IN_VIEW = 5;
9
+ export const MONTH_ROW_BLOCK = 8;
10
+
11
+ /** Whole weeks covering the loaded days, with an exclusive end and the date context's first weekday. */
12
+ export const monthWeekKeys = (first, to, firstDayOfWeek) => {
13
+ if (first >= to) return [];
14
+ const weekday = ((dayKeyNumber(first) + 4) % 7 + 7) % 7;
15
+ const start = addDayKeys(first, -((weekday - firstDayOfWeek + 7) % 7));
16
+ const count = Math.ceil((dayKeyNumber(to) - dayKeyNumber(start)) / 7);
17
+ return Array.from({
18
+ length: count
19
+ }, (_, index) => addDayKeys(start, index * 7));
20
+ };
21
+
22
+ /** The row at the center of the area below the weekday header, clamped to the loaded weeks. */
23
+ export const monthFocusRow = (top, viewHeight, rowHeight, total) => Math.max(0, Math.min(total - 1, rowHeight > 0 ? Math.floor((top + viewHeight / 2) / rowHeight) : 0));
24
+
25
+ /** The middle day of a week names its month: Thursday for Monday weeks, Wednesday for Sunday weeks. */
26
+ export const monthOfWeek = week => `${addDayKeys(week, 3).slice(0, 7)}-01`;
27
+
28
+ /** The loaded row containing a day, including the first of a month; absent outside the loaded weeks. */
29
+ export const monthRowOf = (weeks, key) => {
30
+ if (!weeks.length) return undefined;
31
+ const row = Math.floor((dayKeyNumber(key) - dayKeyNumber(weeks[0])) / 7);
32
+ return row >= 0 && row < weeks.length ? row : undefined;
33
+ };
34
+
35
+ /** The half-open interval of rows whose visible height exceeds half a row. */
36
+ export const monthVisibleRows = (top, viewHeight, rowHeight, total) => {
37
+ if (rowHeight <= 0 || total === 0) return {
38
+ first: 0,
39
+ end: 0
40
+ };
41
+ const first = Math.max(0, Math.min(total, Math.floor(top / rowHeight + 0.5)));
42
+ const end = Math.max(first, Math.min(total, Math.ceil((top + viewHeight) / rowHeight - 0.5)));
43
+ return {
44
+ first,
45
+ end
46
+ };
47
+ };
48
+
49
+ /** One block above and below the visible rows' blocks; the window changes only at their block boundaries. */
50
+ export const monthRenderWindow = (top, viewHeight, rowHeight, total) => {
51
+ if (rowHeight <= 0 || total === 0) return {
52
+ first: 0,
53
+ end: 0
54
+ };
55
+ const {
56
+ first,
57
+ end
58
+ } = monthVisibleRows(top, viewHeight, rowHeight, total);
59
+ const last = Math.max(first, end - 1);
60
+ return {
61
+ first: Math.max(0, (Math.floor(first / MONTH_ROW_BLOCK) - 1) * MONTH_ROW_BLOCK),
62
+ end: Math.min(total, (Math.floor(last / MONTH_ROW_BLOCK) + 2) * MONTH_ROW_BLOCK)
63
+ };
64
+ };
65
+
66
+ /** The least movement that shows a row whole, or nothing when it is already fully in view. */
67
+ export const monthRevealTop = (row, top, viewHeight, rowHeight) => {
68
+ const start = row * rowHeight;
69
+ if (start < top) return start;
70
+ if (start + rowHeight > top + viewHeight) return Math.max(0, start + rowHeight - viewHeight);
71
+ return undefined;
72
+ };
73
+
74
+ /** Today points up or down until more than half its row is visible. */
75
+ export const monthTodayDirection = (row, top, viewHeight, rowHeight) => {
76
+ const start = row * rowHeight;
77
+ const visible = Math.min(start + rowHeight, top + viewHeight) - Math.max(start, top);
78
+ return visible > rowHeight / 2 ? "" : start < top ? "up" : "down";
79
+ };
80
+ //# sourceMappingURL=calendar-month-scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["content/calendar-month-scroll.ts"],"sourcesContent":["/**\n * Scroll rules of the continuous month view, free of the DOM so they can be tested.\n *\n * Uniform week rows run below a sticky weekday header without stops. The center row names the month, and rows\n * visible by more than half supply the host's dates. Calendar day keys keep week arithmetic independent of DST.\n */\nimport { addDayKeys, dayKeyNumber } from \"./calendar-days\";\nimport type { TodayDirection } from \"./calendar-time-view\";\n\nexport const MONTH_ROWS_IN_VIEW = 5;\nexport const MONTH_ROW_BLOCK = 8;\n\n/** Whole weeks covering the loaded days, with an exclusive end and the date context's first weekday. */\nexport const monthWeekKeys = (first: string, to: string, firstDayOfWeek: 0 | 1): string[] => {\n if (first >= to) return [];\n const weekday = (((dayKeyNumber(first) + 4) % 7) + 7) % 7;\n const start = addDayKeys(first, -((weekday - firstDayOfWeek + 7) % 7));\n const count = Math.ceil((dayKeyNumber(to) - dayKeyNumber(start)) / 7);\n return Array.from({ length: count }, (_, index) => addDayKeys(start, index * 7));\n};\n\n/** The row at the center of the area below the weekday header, clamped to the loaded weeks. */\nexport const monthFocusRow = (top: number, viewHeight: number, rowHeight: number, total: number): number =>\n Math.max(0, Math.min(total - 1, rowHeight > 0 ? Math.floor((top + viewHeight / 2) / rowHeight) : 0));\n\n/** The middle day of a week names its month: Thursday for Monday weeks, Wednesday for Sunday weeks. */\nexport const monthOfWeek = (week: string): string => `${addDayKeys(week, 3).slice(0, 7)}-01`;\n\n/** The loaded row containing a day, including the first of a month; absent outside the loaded weeks. */\nexport const monthRowOf = (weeks: readonly string[], key: string): number | undefined => {\n if (!weeks.length) return undefined;\n const row = Math.floor((dayKeyNumber(key) - dayKeyNumber(weeks[0]!)) / 7);\n return row >= 0 && row < weeks.length ? row : undefined;\n};\n\n/** The half-open interval of rows whose visible height exceeds half a row. */\nexport const monthVisibleRows = (top: number, viewHeight: number, rowHeight: number, total: number): { first: number; end: number } => {\n if (rowHeight <= 0 || total === 0) return { first: 0, end: 0 };\n const first = Math.max(0, Math.min(total, Math.floor(top / rowHeight + 0.5)));\n const end = Math.max(first, Math.min(total, Math.ceil((top + viewHeight) / rowHeight - 0.5)));\n return { first, end };\n};\n\n/** One block above and below the visible rows' blocks; the window changes only at their block boundaries. */\nexport const monthRenderWindow = (top: number, viewHeight: number, rowHeight: number, total: number): { first: number; end: number } => {\n if (rowHeight <= 0 || total === 0) return { first: 0, end: 0 };\n const { first, end } = monthVisibleRows(top, viewHeight, rowHeight, total);\n const last = Math.max(first, end - 1);\n return {\n first: Math.max(0, (Math.floor(first / MONTH_ROW_BLOCK) - 1) * MONTH_ROW_BLOCK),\n end: Math.min(total, (Math.floor(last / MONTH_ROW_BLOCK) + 2) * MONTH_ROW_BLOCK),\n };\n};\n\n/** The least movement that shows a row whole, or nothing when it is already fully in view. */\nexport const monthRevealTop = (row: number, top: number, viewHeight: number, rowHeight: number): number | undefined => {\n const start = row * rowHeight;\n if (start < top) return start;\n if (start + rowHeight > top + viewHeight) return Math.max(0, start + rowHeight - viewHeight);\n return undefined;\n};\n\n/** Today points up or down until more than half its row is visible. */\nexport const monthTodayDirection = (row: number, top: number, viewHeight: number, rowHeight: number): TodayDirection => {\n const start = row * rowHeight;\n const visible = Math.min(start + rowHeight, top + viewHeight) - Math.max(start, top);\n return visible > rowHeight / 2 ? \"\" : start < top ? \"up\" : \"down\";\n};\n"],"mappings":"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","ignoreList":[]}
@@ -50,7 +50,6 @@ export const eventAccent = event => event.colorHex ?? COLOR_TOKENS[event.color ?
50
50
 
51
51
  /** Minimum minutes an overlap counts for a band, about the height of its title. */
52
52
  const LANE_MINUTES = 20;
53
- export const reducedMotion = () => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
54
53
 
55
54
  /** Swallows the click a browser sends right after a gesture ends, never the next one. */
56
55
  export const swallowNextClick = () => {